From 4210c025813404351da5dcf9540a314e9158dfcb Mon Sep 17 00:00:00 2001 From: Kevin Wezenter Date: Sun, 20 Sep 2020 00:25:48 -0400 Subject: [PATCH] first commit --- README.md | Bin 0 -> 58 bytes node_modules/.bin/concurrently | 15 + node_modules/.bin/concurrently.cmd | 17 + node_modules/.bin/concurrently.ps1 | 18 + node_modules/.bin/gravatar | 15 + node_modules/.bin/gravatar.cmd | 17 + node_modules/.bin/gravatar.ps1 | 18 + node_modules/.bin/is-ci | 15 + node_modules/.bin/is-ci.cmd | 17 + node_modules/.bin/is-ci.ps1 | 18 + node_modules/.bin/json5 | 15 + node_modules/.bin/json5.cmd | 17 + node_modules/.bin/json5.ps1 | 18 + node_modules/.bin/mime | 15 + node_modules/.bin/mime.cmd | 17 + node_modules/.bin/mime.ps1 | 18 + node_modules/.bin/nodemon | 15 + node_modules/.bin/nodemon.cmd | 17 + node_modules/.bin/nodemon.ps1 | 18 + node_modules/.bin/nodetouch | 15 + node_modules/.bin/nodetouch.cmd | 17 + node_modules/.bin/nodetouch.ps1 | 18 + node_modules/.bin/nopt | 15 + node_modules/.bin/nopt.cmd | 17 + node_modules/.bin/nopt.ps1 | 18 + node_modules/.bin/rc | 15 + node_modules/.bin/rc.cmd | 17 + node_modules/.bin/rc.ps1 | 18 + node_modules/.bin/semver | 15 + node_modules/.bin/semver.cmd | 17 + node_modules/.bin/semver.ps1 | 18 + node_modules/.bin/sshpk-conv | 15 + node_modules/.bin/sshpk-conv.cmd | 17 + node_modules/.bin/sshpk-conv.ps1 | 18 + node_modules/.bin/sshpk-sign | 15 + node_modules/.bin/sshpk-sign.cmd | 17 + node_modules/.bin/sshpk-sign.ps1 | 18 + node_modules/.bin/sshpk-verify | 15 + node_modules/.bin/sshpk-verify.cmd | 17 + node_modules/.bin/sshpk-verify.ps1 | 18 + node_modules/.bin/tree-kill | 15 + node_modules/.bin/tree-kill.cmd | 17 + node_modules/.bin/tree-kill.ps1 | 18 + node_modules/.bin/uuid | 15 + node_modules/.bin/uuid.cmd | 17 + node_modules/.bin/uuid.ps1 | 18 + node_modules/@sindresorhus/is/dist/index.d.ts | 132 + node_modules/@sindresorhus/is/dist/index.js | 245 + .../@sindresorhus/is/dist/index.js.map | 1 + node_modules/@sindresorhus/is/license | 9 + node_modules/@sindresorhus/is/package.json | 96 + node_modules/@sindresorhus/is/readme.md | 451 + node_modules/@szmarczak/http-timer/LICENSE | 21 + node_modules/@szmarczak/http-timer/README.md | 70 + .../@szmarczak/http-timer/package.json | 75 + .../@szmarczak/http-timer/source/index.js | 99 + node_modules/@types/color-name/LICENSE | 21 + node_modules/@types/color-name/README.md | 16 + node_modules/@types/color-name/index.d.ts | 161 + node_modules/@types/color-name/package.json | 52 + node_modules/abbrev/LICENSE | 46 + node_modules/abbrev/README.md | 23 + node_modules/abbrev/abbrev.js | 61 + node_modules/abbrev/package.json | 56 + node_modules/accepts/HISTORY.md | 236 + node_modules/accepts/LICENSE | 23 + node_modules/accepts/README.md | 142 + node_modules/accepts/index.js | 238 + node_modules/accepts/package.json | 86 + node_modules/ajv/.tonic_example.js | 20 + node_modules/ajv/LICENSE | 22 + node_modules/ajv/README.md | 1477 ++ node_modules/ajv/dist/ajv.bundle.js | 7189 ++++++ node_modules/ajv/dist/ajv.min.js | 3 + node_modules/ajv/dist/ajv.min.js.map | 1 + node_modules/ajv/lib/ajv.d.ts | 396 + node_modules/ajv/lib/ajv.js | 506 + node_modules/ajv/lib/cache.js | 26 + node_modules/ajv/lib/compile/async.js | 90 + node_modules/ajv/lib/compile/equal.js | 5 + node_modules/ajv/lib/compile/error_classes.js | 34 + node_modules/ajv/lib/compile/formats.js | 142 + node_modules/ajv/lib/compile/index.js | 387 + node_modules/ajv/lib/compile/resolve.js | 270 + node_modules/ajv/lib/compile/rules.js | 66 + node_modules/ajv/lib/compile/schema_obj.js | 9 + node_modules/ajv/lib/compile/ucs2length.js | 20 + node_modules/ajv/lib/compile/util.js | 239 + node_modules/ajv/lib/data.js | 49 + node_modules/ajv/lib/definition_schema.js | 37 + node_modules/ajv/lib/dot/_limit.jst | 113 + node_modules/ajv/lib/dot/_limitItems.jst | 12 + node_modules/ajv/lib/dot/_limitLength.jst | 12 + node_modules/ajv/lib/dot/_limitProperties.jst | 12 + node_modules/ajv/lib/dot/allOf.jst | 32 + node_modules/ajv/lib/dot/anyOf.jst | 46 + node_modules/ajv/lib/dot/coerce.def | 51 + node_modules/ajv/lib/dot/comment.jst | 9 + node_modules/ajv/lib/dot/const.jst | 11 + node_modules/ajv/lib/dot/contains.jst | 55 + node_modules/ajv/lib/dot/custom.jst | 191 + node_modules/ajv/lib/dot/defaults.def | 47 + node_modules/ajv/lib/dot/definitions.def | 203 + node_modules/ajv/lib/dot/dependencies.jst | 79 + node_modules/ajv/lib/dot/enum.jst | 30 + node_modules/ajv/lib/dot/errors.def | 194 + node_modules/ajv/lib/dot/format.jst | 106 + node_modules/ajv/lib/dot/if.jst | 73 + node_modules/ajv/lib/dot/items.jst | 98 + node_modules/ajv/lib/dot/missing.def | 39 + node_modules/ajv/lib/dot/multipleOf.jst | 22 + node_modules/ajv/lib/dot/not.jst | 43 + node_modules/ajv/lib/dot/oneOf.jst | 54 + node_modules/ajv/lib/dot/pattern.jst | 14 + node_modules/ajv/lib/dot/properties.jst | 245 + node_modules/ajv/lib/dot/propertyNames.jst | 52 + node_modules/ajv/lib/dot/ref.jst | 85 + node_modules/ajv/lib/dot/required.jst | 108 + node_modules/ajv/lib/dot/uniqueItems.jst | 62 + node_modules/ajv/lib/dot/validate.jst | 276 + node_modules/ajv/lib/dotjs/README.md | 3 + node_modules/ajv/lib/dotjs/_limit.js | 163 + node_modules/ajv/lib/dotjs/_limitItems.js | 80 + node_modules/ajv/lib/dotjs/_limitLength.js | 85 + .../ajv/lib/dotjs/_limitProperties.js | 80 + node_modules/ajv/lib/dotjs/allOf.js | 42 + node_modules/ajv/lib/dotjs/anyOf.js | 73 + node_modules/ajv/lib/dotjs/comment.js | 14 + node_modules/ajv/lib/dotjs/const.js | 56 + node_modules/ajv/lib/dotjs/contains.js | 81 + node_modules/ajv/lib/dotjs/custom.js | 228 + node_modules/ajv/lib/dotjs/dependencies.js | 168 + node_modules/ajv/lib/dotjs/enum.js | 66 + node_modules/ajv/lib/dotjs/format.js | 150 + node_modules/ajv/lib/dotjs/if.js | 103 + node_modules/ajv/lib/dotjs/index.js | 33 + node_modules/ajv/lib/dotjs/items.js | 140 + node_modules/ajv/lib/dotjs/multipleOf.js | 80 + node_modules/ajv/lib/dotjs/not.js | 84 + node_modules/ajv/lib/dotjs/oneOf.js | 73 + node_modules/ajv/lib/dotjs/pattern.js | 75 + node_modules/ajv/lib/dotjs/properties.js | 335 + node_modules/ajv/lib/dotjs/propertyNames.js | 81 + node_modules/ajv/lib/dotjs/ref.js | 124 + node_modules/ajv/lib/dotjs/required.js | 270 + node_modules/ajv/lib/dotjs/uniqueItems.js | 86 + node_modules/ajv/lib/dotjs/validate.js | 482 + node_modules/ajv/lib/keyword.js | 146 + node_modules/ajv/lib/refs/data.json | 17 + .../ajv/lib/refs/json-schema-draft-04.json | 149 + .../ajv/lib/refs/json-schema-draft-06.json | 154 + .../ajv/lib/refs/json-schema-draft-07.json | 168 + .../ajv/lib/refs/json-schema-secure.json | 94 + node_modules/ajv/package.json | 133 + node_modules/ajv/scripts/.eslintrc.yml | 3 + node_modules/ajv/scripts/bundle.js | 61 + node_modules/ajv/scripts/compile-dots.js | 73 + node_modules/ajv/scripts/info | 10 + node_modules/ajv/scripts/prepare-tests | 12 + .../ajv/scripts/publish-built-version | 32 + node_modules/ajv/scripts/travis-gh-pages | 23 + node_modules/ansi-align/CHANGELOG.md | 51 + node_modules/ansi-align/LICENSE | 13 + node_modules/ansi-align/README.md | 80 + node_modules/ansi-align/index.js | 61 + .../node_modules/ansi-regex/index.js | 14 + .../node_modules/ansi-regex/license | 9 + .../node_modules/ansi-regex/package.json | 85 + .../node_modules/ansi-regex/readme.md | 87 + .../node_modules/emoji-regex/LICENSE-MIT.txt | 20 + .../node_modules/emoji-regex/README.md | 73 + .../node_modules/emoji-regex/es2015/index.js | 6 + .../node_modules/emoji-regex/es2015/text.js | 6 + .../node_modules/emoji-regex/index.d.ts | 5 + .../node_modules/emoji-regex/index.js | 6 + .../node_modules/emoji-regex/package.json | 78 + .../node_modules/emoji-regex/text.js | 6 + .../is-fullwidth-code-point/index.js | 46 + .../is-fullwidth-code-point/license | 21 + .../is-fullwidth-code-point/package.json | 77 + .../is-fullwidth-code-point/readme.md | 39 + .../node_modules/string-width/index.js | 39 + .../node_modules/string-width/license | 9 + .../node_modules/string-width/package.json | 88 + .../node_modules/string-width/readme.md | 45 + .../node_modules/strip-ansi/index.d.ts | 15 + .../node_modules/strip-ansi/index.js | 7 + .../node_modules/strip-ansi/license | 9 + .../node_modules/strip-ansi/package.json | 86 + .../node_modules/strip-ansi/readme.md | 61 + node_modules/ansi-align/package.json | 70 + node_modules/ansi-regex/index.d.ts | 37 + node_modules/ansi-regex/index.js | 10 + node_modules/ansi-regex/license | 9 + node_modules/ansi-regex/package.json | 87 + node_modules/ansi-regex/readme.md | 78 + node_modules/ansi-styles/index.d.ts | 197 + node_modules/ansi-styles/index.js | 163 + node_modules/ansi-styles/license | 9 + node_modules/ansi-styles/package.json | 89 + node_modules/ansi-styles/readme.md | 158 + node_modules/anymatch/LICENSE | 15 + node_modules/anymatch/README.md | 87 + node_modules/anymatch/index.d.ts | 19 + node_modules/anymatch/index.js | 102 + node_modules/anymatch/package.json | 76 + node_modules/array-flatten/LICENSE | 21 + node_modules/array-flatten/README.md | 43 + node_modules/array-flatten/array-flatten.js | 64 + node_modules/array-flatten/package.json | 64 + node_modules/asn1/LICENSE | 19 + node_modules/asn1/README.md | 50 + node_modules/asn1/lib/ber/errors.js | 13 + node_modules/asn1/lib/ber/index.js | 27 + node_modules/asn1/lib/ber/reader.js | 262 + node_modules/asn1/lib/ber/types.js | 36 + node_modules/asn1/lib/ber/writer.js | 317 + node_modules/asn1/lib/index.js | 20 + node_modules/asn1/package.json | 75 + node_modules/assert-plus/AUTHORS | 6 + node_modules/assert-plus/CHANGES.md | 14 + node_modules/assert-plus/README.md | 162 + node_modules/assert-plus/assert.js | 211 + node_modules/assert-plus/package.json | 87 + node_modules/asynckit/LICENSE | 21 + node_modules/asynckit/README.md | 233 + node_modules/asynckit/bench.js | 76 + node_modules/asynckit/index.js | 6 + node_modules/asynckit/lib/abort.js | 29 + node_modules/asynckit/lib/async.js | 34 + node_modules/asynckit/lib/defer.js | 26 + node_modules/asynckit/lib/iterate.js | 75 + .../asynckit/lib/readable_asynckit.js | 91 + .../asynckit/lib/readable_parallel.js | 25 + node_modules/asynckit/lib/readable_serial.js | 25 + .../asynckit/lib/readable_serial_ordered.js | 29 + node_modules/asynckit/lib/state.js | 37 + node_modules/asynckit/lib/streamify.js | 141 + node_modules/asynckit/lib/terminator.js | 29 + node_modules/asynckit/package.json | 91 + node_modules/asynckit/parallel.js | 43 + node_modules/asynckit/serial.js | 17 + node_modules/asynckit/serialOrdered.js | 75 + node_modules/asynckit/stream.js | 21 + node_modules/aws-sign2/LICENSE | 55 + node_modules/aws-sign2/README.md | 4 + node_modules/aws-sign2/index.js | 212 + node_modules/aws-sign2/package.json | 50 + node_modules/aws4/.github/FUNDING.yml | 3 + node_modules/aws4/.travis.yml | 9 + node_modules/aws4/LICENSE | 19 + node_modules/aws4/README.md | 183 + node_modules/aws4/aws4.js | 357 + node_modules/aws4/lru.js | 96 + node_modules/aws4/package.json | 53 + node_modules/balanced-match/.npmignore | 5 + node_modules/balanced-match/LICENSE.md | 21 + node_modules/balanced-match/README.md | 91 + node_modules/balanced-match/index.js | 59 + node_modules/balanced-match/package.json | 77 + node_modules/bcrypt-pbkdf/CONTRIBUTING.md | 13 + node_modules/bcrypt-pbkdf/LICENSE | 66 + node_modules/bcrypt-pbkdf/README.md | 45 + node_modules/bcrypt-pbkdf/index.js | 556 + node_modules/bcrypt-pbkdf/package.json | 44 + node_modules/bcryptjs/.npmignore | 6 + node_modules/bcryptjs/.travis.yml | 18 + node_modules/bcryptjs/.vscode/settings.json | 3 + node_modules/bcryptjs/LICENSE | 50 + node_modules/bcryptjs/README.md | 251 + node_modules/bcryptjs/bin/bcrypt | 25 + node_modules/bcryptjs/bower.json | 22 + node_modules/bcryptjs/dist/README.md | 15 + node_modules/bcryptjs/dist/bcrypt.js | 1379 ++ node_modules/bcryptjs/dist/bcrypt.min.js | 48 + node_modules/bcryptjs/dist/bcrypt.min.js.gz | Bin 0 -> 9443 bytes node_modules/bcryptjs/dist/bcrypt.min.map | 8 + node_modules/bcryptjs/externs/bcrypt.js | 91 + node_modules/bcryptjs/externs/minimal-env.js | 98 + node_modules/bcryptjs/index.js | 29 + node_modules/bcryptjs/package.json | 94 + node_modules/bcryptjs/scripts/build.js | 37 + node_modules/bcryptjs/src/bcrypt.js | 327 + node_modules/bcryptjs/src/bcrypt/impl.js | 669 + .../bcryptjs/src/bcrypt/prng/README.md | 5 + .../bcryptjs/src/bcrypt/prng/accum.js | 133 + .../bcryptjs/src/bcrypt/prng/isaac.js | 140 + node_modules/bcryptjs/src/bcrypt/util.js | 33 + .../bcryptjs/src/bcrypt/util/base64.js | 115 + node_modules/bcryptjs/src/bower.json | 22 + node_modules/bcryptjs/src/wrap.js | 50 + node_modules/bcryptjs/tests/quickbrown.txt | 150 + node_modules/bcryptjs/tests/suite.js | 197 + .../binary-extensions/binary-extensions.json | 256 + .../binary-extensions.json.d.ts | 3 + node_modules/binary-extensions/index.d.ts | 14 + node_modules/binary-extensions/index.js | 1 + node_modules/binary-extensions/license | 9 + node_modules/binary-extensions/package.json | 70 + node_modules/binary-extensions/readme.md | 41 + node_modules/bl/.jshintrc | 60 + node_modules/bl/.travis.yml | 15 + node_modules/bl/LICENSE.md | 13 + node_modules/bl/README.md | 218 + node_modules/bl/bl.js | 392 + node_modules/bl/package.json | 63 + node_modules/bl/test/indexOf.js | 463 + node_modules/bl/test/test.js | 782 + node_modules/bluebird/LICENSE | 21 + node_modules/bluebird/README.md | 52 + node_modules/bluebird/changelog.md | 1 + .../bluebird/js/browser/bluebird.core.js | 3781 +++ .../bluebird/js/browser/bluebird.core.min.js | 31 + node_modules/bluebird/js/browser/bluebird.js | 5623 +++++ .../bluebird/js/browser/bluebird.min.js | 31 + node_modules/bluebird/js/release/any.js | 21 + node_modules/bluebird/js/release/assert.js | 55 + node_modules/bluebird/js/release/async.js | 161 + node_modules/bluebird/js/release/bind.js | 67 + node_modules/bluebird/js/release/bluebird.js | 11 + node_modules/bluebird/js/release/call_get.js | 123 + node_modules/bluebird/js/release/cancel.js | 129 + .../bluebird/js/release/catch_filter.js | 42 + node_modules/bluebird/js/release/context.js | 69 + .../bluebird/js/release/debuggability.js | 919 + .../bluebird/js/release/direct_resolve.js | 46 + node_modules/bluebird/js/release/each.js | 30 + node_modules/bluebird/js/release/errors.js | 116 + node_modules/bluebird/js/release/es5.js | 80 + node_modules/bluebird/js/release/filter.js | 12 + node_modules/bluebird/js/release/finally.js | 146 + .../bluebird/js/release/generators.js | 223 + node_modules/bluebird/js/release/join.js | 168 + node_modules/bluebird/js/release/map.js | 168 + node_modules/bluebird/js/release/method.js | 55 + node_modules/bluebird/js/release/nodeback.js | 51 + node_modules/bluebird/js/release/nodeify.js | 58 + node_modules/bluebird/js/release/promise.js | 775 + .../bluebird/js/release/promise_array.js | 185 + node_modules/bluebird/js/release/promisify.js | 314 + node_modules/bluebird/js/release/props.js | 118 + node_modules/bluebird/js/release/queue.js | 73 + node_modules/bluebird/js/release/race.js | 49 + node_modules/bluebird/js/release/reduce.js | 172 + node_modules/bluebird/js/release/schedule.js | 61 + node_modules/bluebird/js/release/settle.js | 43 + node_modules/bluebird/js/release/some.js | 148 + .../js/release/synchronous_inspection.js | 103 + node_modules/bluebird/js/release/thenables.js | 86 + node_modules/bluebird/js/release/timers.js | 93 + node_modules/bluebird/js/release/using.js | 226 + node_modules/bluebird/js/release/util.js | 380 + node_modules/bluebird/package.json | 101 + node_modules/blueimp-md5/LICENSE.txt | 20 + node_modules/blueimp-md5/README.md | 134 + node_modules/blueimp-md5/js/md5.js | 402 + node_modules/blueimp-md5/js/md5.min.js | 2 + node_modules/blueimp-md5/js/md5.min.js.map | 1 + node_modules/blueimp-md5/package.json | 101 + node_modules/body-parser/HISTORY.md | 609 + node_modules/body-parser/LICENSE | 23 + node_modules/body-parser/README.md | 443 + node_modules/body-parser/index.js | 157 + node_modules/body-parser/lib/read.js | 181 + node_modules/body-parser/lib/types/json.js | 230 + node_modules/body-parser/lib/types/raw.js | 101 + node_modules/body-parser/lib/types/text.js | 121 + .../body-parser/lib/types/urlencoded.js | 284 + node_modules/body-parser/package.json | 91 + node_modules/boxen/index.d.ts | 175 + node_modules/boxen/index.js | 139 + node_modules/boxen/license | 9 + .../boxen/node_modules/chalk/index.d.ts | 411 + node_modules/boxen/node_modules/chalk/license | 9 + .../boxen/node_modules/chalk/package.json | 95 + .../boxen/node_modules/chalk/readme.md | 304 + .../boxen/node_modules/chalk/source/index.js | 233 + .../node_modules/chalk/source/templates.js | 134 + .../boxen/node_modules/chalk/source/util.js | 39 + .../boxen/node_modules/has-flag/index.d.ts | 39 + .../boxen/node_modules/has-flag/index.js | 8 + .../boxen/node_modules/has-flag/license | 9 + .../boxen/node_modules/has-flag/package.json | 78 + .../boxen/node_modules/has-flag/readme.md | 89 + .../node_modules/supports-color/browser.js | 5 + .../node_modules/supports-color/index.js | 135 + .../boxen/node_modules/supports-color/license | 9 + .../node_modules/supports-color/package.json | 85 + .../node_modules/supports-color/readme.md | 76 + node_modules/boxen/package.json | 85 + node_modules/boxen/readme.md | 187 + node_modules/brace-expansion/LICENSE | 21 + node_modules/brace-expansion/README.md | 129 + node_modules/brace-expansion/index.js | 201 + node_modules/brace-expansion/package.json | 75 + node_modules/braces/CHANGELOG.md | 184 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 593 + node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 57 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 333 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 112 + node_modules/braces/package.json | 123 + node_modules/bson/HISTORY.md | 294 + node_modules/bson/LICENSE.md | 201 + node_modules/bson/README.md | 170 + node_modules/bson/bower.json | 26 + node_modules/bson/browser_build/bson.js | 18218 +++++++++++++++ node_modules/bson/browser_build/package.json | 8 + node_modules/bson/index.js | 46 + node_modules/bson/lib/bson/binary.js | 384 + node_modules/bson/lib/bson/bson.js | 386 + node_modules/bson/lib/bson/code.js | 24 + node_modules/bson/lib/bson/db_ref.js | 32 + node_modules/bson/lib/bson/decimal128.js | 820 + node_modules/bson/lib/bson/double.js | 33 + node_modules/bson/lib/bson/float_parser.js | 124 + node_modules/bson/lib/bson/int_32.js | 33 + node_modules/bson/lib/bson/long.js | 851 + node_modules/bson/lib/bson/map.js | 128 + node_modules/bson/lib/bson/max_key.js | 14 + node_modules/bson/lib/bson/min_key.js | 14 + node_modules/bson/lib/bson/objectid.js | 392 + .../bson/lib/bson/parser/calculate_size.js | 255 + .../bson/lib/bson/parser/deserializer.js | 782 + .../bson/lib/bson/parser/serializer.js | 1188 + node_modules/bson/lib/bson/parser/utils.js | 28 + node_modules/bson/lib/bson/regexp.js | 33 + node_modules/bson/lib/bson/symbol.js | 50 + node_modules/bson/lib/bson/timestamp.js | 854 + node_modules/bson/package.json | 90 + .../buffer-equal-constant-time/.npmignore | 2 + .../buffer-equal-constant-time/.travis.yml | 4 + .../buffer-equal-constant-time/LICENSE.txt | 12 + .../buffer-equal-constant-time/README.md | 50 + .../buffer-equal-constant-time/index.js | 41 + .../buffer-equal-constant-time/package.json | 55 + .../buffer-equal-constant-time/test.js | 42 + node_modules/bytes/History.md | 87 + node_modules/bytes/LICENSE | 23 + node_modules/bytes/Readme.md | 126 + node_modules/bytes/index.js | 162 + node_modules/bytes/package.json | 84 + node_modules/cacheable-request/LICENSE | 21 + node_modules/cacheable-request/README.md | 206 + .../node_modules/get-stream/buffer-stream.js | 52 + .../node_modules/get-stream/index.d.ts | 108 + .../node_modules/get-stream/index.js | 60 + .../node_modules/get-stream/license | 9 + .../node_modules/get-stream/package.json | 82 + .../node_modules/get-stream/readme.md | 124 + .../node_modules/lowercase-keys/index.d.ts | 16 + .../node_modules/lowercase-keys/index.js | 10 + .../node_modules/lowercase-keys/license | 9 + .../node_modules/lowercase-keys/package.json | 70 + .../node_modules/lowercase-keys/readme.md | 32 + node_modules/cacheable-request/package.json | 94 + node_modules/cacheable-request/src/index.js | 251 + node_modules/camelcase/index.d.ts | 63 + node_modules/camelcase/index.js | 76 + node_modules/camelcase/license | 9 + node_modules/camelcase/package.json | 75 + node_modules/camelcase/readme.md | 99 + node_modules/caseless/LICENSE | 28 + node_modules/caseless/README.md | 45 + node_modules/caseless/index.js | 67 + node_modules/caseless/package.json | 56 + node_modules/caseless/test.js | 67 + node_modules/chalk/index.js | 228 + node_modules/chalk/index.js.flow | 93 + node_modules/chalk/license | 9 + .../chalk/node_modules/ansi-styles/index.js | 165 + .../chalk/node_modules/ansi-styles/license | 9 + .../node_modules/ansi-styles/package.json | 88 + .../chalk/node_modules/ansi-styles/readme.md | 147 + .../node_modules/color-convert/CHANGELOG.md | 54 + .../chalk/node_modules/color-convert/LICENSE | 21 + .../node_modules/color-convert/README.md | 68 + .../node_modules/color-convert/conversions.js | 868 + .../chalk/node_modules/color-convert/index.js | 78 + .../node_modules/color-convert/package.json | 81 + .../chalk/node_modules/color-convert/route.js | 97 + .../node_modules/color-name/.eslintrc.json | 43 + .../chalk/node_modules/color-name/.npmignore | 107 + .../chalk/node_modules/color-name/LICENSE | 8 + .../chalk/node_modules/color-name/README.md | 11 + .../chalk/node_modules/color-name/index.js | 152 + .../node_modules/color-name/package.json | 53 + .../chalk/node_modules/color-name/test.js | 7 + .../node_modules/supports-color/browser.js | 5 + .../node_modules/supports-color/index.js | 131 + .../chalk/node_modules/supports-color/license | 9 + .../node_modules/supports-color/package.json | 85 + .../node_modules/supports-color/readme.md | 66 + node_modules/chalk/package.json | 105 + node_modules/chalk/readme.md | 314 + node_modules/chalk/templates.js | 128 + node_modules/chalk/types/index.d.ts | 97 + node_modules/chokidar/LICENSE | 21 + node_modules/chokidar/README.md | 306 + node_modules/chokidar/index.js | 958 + node_modules/chokidar/lib/constants.js | 63 + node_modules/chokidar/lib/fsevents-handler.js | 524 + node_modules/chokidar/lib/nodefs-handler.js | 645 + node_modules/chokidar/package.json | 162 + node_modules/chokidar/types/index.d.ts | 187 + node_modules/ci-info/CHANGELOG.md | 78 + node_modules/ci-info/LICENSE | 21 + node_modules/ci-info/README.md | 108 + node_modules/ci-info/index.js | 66 + node_modules/ci-info/package.json | 65 + node_modules/ci-info/vendors.json | 153 + node_modules/cli-boxes/boxes.json | 58 + node_modules/cli-boxes/index.d.ts | 113 + node_modules/cli-boxes/index.js | 6 + node_modules/cli-boxes/license | 9 + node_modules/cli-boxes/package.json | 74 + node_modules/cli-boxes/readme.md | 105 + node_modules/cliui/CHANGELOG.md | 76 + node_modules/cliui/LICENSE.txt | 14 + node_modules/cliui/README.md | 115 + node_modules/cliui/index.js | 354 + node_modules/cliui/package.json | 97 + node_modules/clone-response/LICENSE | 21 + node_modules/clone-response/README.md | 62 + node_modules/clone-response/package.json | 73 + node_modules/clone-response/src/index.js | 17 + node_modules/color-convert/CHANGELOG.md | 54 + node_modules/color-convert/LICENSE | 21 + node_modules/color-convert/README.md | 68 + node_modules/color-convert/conversions.js | 839 + node_modules/color-convert/index.js | 81 + node_modules/color-convert/package.json | 83 + node_modules/color-convert/route.js | 97 + node_modules/color-name/LICENSE | 8 + node_modules/color-name/README.md | 11 + node_modules/color-name/index.js | 152 + node_modules/color-name/package.json | 56 + node_modules/combined-stream/License | 19 + node_modules/combined-stream/Readme.md | 138 + .../combined-stream/lib/combined_stream.js | 208 + node_modules/combined-stream/package.json | 58 + node_modules/combined-stream/yarn.lock | 17 + node_modules/concat-map/.travis.yml | 4 + node_modules/concat-map/LICENSE | 18 + node_modules/concat-map/README.markdown | 62 + node_modules/concat-map/example/map.js | 6 + node_modules/concat-map/index.js | 13 + node_modules/concat-map/package.json | 88 + node_modules/concat-map/test/map.js | 39 + node_modules/concurrently/LICENSE | 21 + node_modules/concurrently/README.md | 291 + node_modules/concurrently/bin/concurrently.js | 173 + node_modules/concurrently/bin/epilogue.txt | 42 + node_modules/concurrently/index.js | 58 + .../node_modules/ansi-regex/index.js | 14 + .../node_modules/ansi-regex/license | 9 + .../node_modules/ansi-regex/package.json | 85 + .../node_modules/ansi-regex/readme.md | 87 + .../node_modules/ansi-styles/index.js | 165 + .../node_modules/ansi-styles/license | 9 + .../node_modules/ansi-styles/package.json | 88 + .../node_modules/ansi-styles/readme.md | 147 + .../node_modules/cliui/CHANGELOG.md | 65 + .../node_modules/cliui/LICENSE.txt | 14 + .../concurrently/node_modules/cliui/README.md | 115 + .../concurrently/node_modules/cliui/index.js | 324 + .../node_modules/cliui/package.json | 99 + .../node_modules/color-convert/CHANGELOG.md | 54 + .../node_modules/color-convert/LICENSE | 21 + .../node_modules/color-convert/README.md | 68 + .../node_modules/color-convert/conversions.js | 868 + .../node_modules/color-convert/index.js | 78 + .../node_modules/color-convert/package.json | 81 + .../node_modules/color-convert/route.js | 97 + .../node_modules/color-name/.eslintrc.json | 43 + .../node_modules/color-name/.npmignore | 107 + .../node_modules/color-name/LICENSE | 8 + .../node_modules/color-name/README.md | 11 + .../node_modules/color-name/index.js | 152 + .../node_modules/color-name/package.json | 53 + .../node_modules/color-name/test.js | 7 + .../node_modules/emoji-regex/LICENSE-MIT.txt | 20 + .../node_modules/emoji-regex/README.md | 73 + .../node_modules/emoji-regex/es2015/index.js | 6 + .../node_modules/emoji-regex/es2015/text.js | 6 + .../node_modules/emoji-regex/index.d.ts | 5 + .../node_modules/emoji-regex/index.js | 6 + .../node_modules/emoji-regex/package.json | 78 + .../node_modules/emoji-regex/text.js | 6 + .../node_modules/find-up/index.js | 46 + .../concurrently/node_modules/find-up/license | 9 + .../node_modules/find-up/package.json | 82 + .../node_modules/find-up/readme.md | 87 + .../is-fullwidth-code-point/index.js | 46 + .../is-fullwidth-code-point/license | 21 + .../is-fullwidth-code-point/package.json | 77 + .../is-fullwidth-code-point/readme.md | 39 + .../node_modules/locate-path/index.js | 24 + .../node_modules/locate-path/license | 9 + .../node_modules/locate-path/package.json | 76 + .../node_modules/locate-path/readme.md | 99 + .../node_modules/p-locate/index.js | 34 + .../node_modules/p-locate/license | 9 + .../node_modules/p-locate/package.json | 83 + .../node_modules/p-locate/readme.md | 88 + .../node_modules/path-exists/index.js | 17 + .../node_modules/path-exists/license | 21 + .../node_modules/path-exists/package.json | 72 + .../node_modules/path-exists/readme.md | 50 + .../node_modules/string-width/index.js | 39 + .../node_modules/string-width/license | 9 + .../node_modules/string-width/package.json | 90 + .../node_modules/string-width/readme.md | 45 + .../node_modules/strip-ansi/index.d.ts | 15 + .../node_modules/strip-ansi/index.js | 7 + .../node_modules/strip-ansi/license | 9 + .../node_modules/strip-ansi/package.json | 88 + .../node_modules/strip-ansi/readme.md | 61 + .../node_modules/wrap-ansi/index.js | 188 + .../node_modules/wrap-ansi/license | 9 + .../node_modules/wrap-ansi/package.json | 93 + .../node_modules/wrap-ansi/readme.md | 108 + .../node_modules/yargs-parser/CHANGELOG.md | 467 + .../node_modules/yargs-parser/LICENSE.txt | 14 + .../node_modules/yargs-parser/README.md | 396 + .../node_modules/yargs-parser/index.js | 916 + .../yargs-parser/lib/tokenize-arg-string.js | 40 + .../node_modules/yargs-parser/package.json | 79 + .../node_modules/yargs/CHANGELOG.md | 1335 ++ .../concurrently/node_modules/yargs/LICENSE | 22 + .../concurrently/node_modules/yargs/README.md | 122 + .../concurrently/node_modules/yargs/index.js | 32 + .../node_modules/yargs/lib/apply-extends.js | 53 + .../node_modules/yargs/lib/argsert.js | 68 + .../node_modules/yargs/lib/command.js | 437 + .../yargs/lib/completion-templates.js | 49 + .../node_modules/yargs/lib/completion.js | 115 + .../node_modules/yargs/lib/decamelize.js | 32 + .../node_modules/yargs/lib/is-promise.js | 3 + .../node_modules/yargs/lib/levenshtein.js | 58 + .../node_modules/yargs/lib/middleware.js | 65 + .../node_modules/yargs/lib/obj-filter.js | 11 + .../node_modules/yargs/lib/usage.js | 540 + .../node_modules/yargs/lib/validation.js | 341 + .../node_modules/yargs/lib/yerror.js | 11 + .../node_modules/yargs/locales/be.json | 39 + .../node_modules/yargs/locales/de.json | 39 + .../node_modules/yargs/locales/en.json | 42 + .../node_modules/yargs/locales/es.json | 39 + .../node_modules/yargs/locales/fr.json | 37 + .../node_modules/yargs/locales/hi.json | 42 + .../node_modules/yargs/locales/hu.json | 39 + .../node_modules/yargs/locales/id.json | 43 + .../node_modules/yargs/locales/it.json | 39 + .../node_modules/yargs/locales/ja.json | 42 + .../node_modules/yargs/locales/ko.json | 42 + .../node_modules/yargs/locales/nb.json | 37 + .../node_modules/yargs/locales/nl.json | 42 + .../node_modules/yargs/locales/nn.json | 39 + .../node_modules/yargs/locales/pirate.json | 13 + .../node_modules/yargs/locales/pl.json | 42 + .../node_modules/yargs/locales/pt.json | 38 + .../node_modules/yargs/locales/pt_BR.json | 42 + .../node_modules/yargs/locales/ru.json | 39 + .../node_modules/yargs/locales/th.json | 39 + .../node_modules/yargs/locales/tr.json | 41 + .../node_modules/yargs/locales/zh_CN.json | 41 + .../node_modules/yargs/locales/zh_TW.json | 40 + .../node_modules/yargs/package.json | 106 + .../concurrently/node_modules/yargs/yargs.js | 1215 + node_modules/concurrently/package.json | 108 + .../src/command-parser/expand-npm-shortcut.js | 13 + .../src/command-parser/expand-npm-wildcard.js | 34 + .../src/command-parser/strip-quotes.js | 12 + node_modules/concurrently/src/command.js | 60 + .../concurrently/src/completion-listener.js | 39 + node_modules/concurrently/src/concurrently.js | 87 + node_modules/concurrently/src/defaults.js | 29 + .../src/flow-control/fixtures/fake-command.js | 16 + .../src/flow-control/input-handler.js | 39 + .../src/flow-control/kill-on-signal.js | 30 + .../src/flow-control/kill-others.js | 35 + .../src/flow-control/log-error.js | 20 + .../concurrently/src/flow-control/log-exit.js | 13 + .../src/flow-control/log-output.js | 14 + .../src/flow-control/restart-process.js | 51 + .../concurrently/src/get-spawn-opts.js | 13 + node_modules/concurrently/src/logger.js | 109 + node_modules/config/History.md | 669 + node_modules/config/LICENSE | 19 + node_modules/config/README.md | 176 + node_modules/config/async.js | 70 + node_modules/config/defer.js | 23 + node_modules/config/lib/config.js | 1452 ++ node_modules/config/package.json | 81 + node_modules/config/parser.js | 331 + node_modules/config/raw.js | 15 + node_modules/configstore/index.js | 109 + node_modules/configstore/license | 25 + node_modules/configstore/package.json | 78 + node_modules/configstore/readme.md | 141 + node_modules/content-disposition/HISTORY.md | 55 + node_modules/content-disposition/LICENSE | 22 + node_modules/content-disposition/README.md | 148 + node_modules/content-disposition/index.js | 458 + node_modules/content-disposition/package.json | 79 + node_modules/content-type/HISTORY.md | 24 + node_modules/content-type/LICENSE | 22 + node_modules/content-type/README.md | 92 + node_modules/content-type/index.js | 222 + node_modules/content-type/package.json | 76 + node_modules/cookie-signature/.npmignore | 4 + node_modules/cookie-signature/History.md | 38 + node_modules/cookie-signature/Readme.md | 42 + node_modules/cookie-signature/index.js | 51 + node_modules/cookie-signature/package.json | 57 + node_modules/cookie/HISTORY.md | 123 + node_modules/cookie/LICENSE | 24 + node_modules/cookie/README.md | 253 + node_modules/cookie/index.js | 198 + node_modules/cookie/package.json | 78 + node_modules/core-util-is/LICENSE | 19 + node_modules/core-util-is/README.md | 3 + node_modules/core-util-is/float.patch | 604 + node_modules/core-util-is/lib/util.js | 107 + node_modules/core-util-is/package.json | 63 + node_modules/core-util-is/test.js | 68 + node_modules/crypto-random-string/index.d.ts | 17 + node_modules/crypto-random-string/index.js | 10 + node_modules/crypto-random-string/license | 9 + .../crypto-random-string/package.json | 72 + node_modules/crypto-random-string/readme.md | 51 + node_modules/dashdash/CHANGES.md | 364 + node_modules/dashdash/LICENSE.txt | 24 + node_modules/dashdash/README.md | 574 + .../dashdash/etc/dashdash.bash_completion.in | 389 + node_modules/dashdash/lib/dashdash.js | 1055 + node_modules/dashdash/package.json | 67 + node_modules/date-fns/CHANGELOG.md | 2168 ++ node_modules/date-fns/LICENSE.md | 6 + node_modules/date-fns/README.md | 88 + .../date-fns/_lib/addLeadingZeros/index.js | 19 + node_modules/date-fns/_lib/assign/index.js | 24 + .../date-fns/_lib/cloneObject/index.js | 16 + .../date-fns/_lib/format/formatters/index.js | 874 + .../_lib/format/lightFormatters/index.js | 93 + .../_lib/format/longFormatters/index.js | 105 + .../getTimezoneOffsetInMilliseconds/index.js | 34 + .../date-fns/_lib/getUTCDayOfYear/index.js | 28 + .../date-fns/_lib/getUTCISOWeek/index.js | 31 + .../date-fns/_lib/getUTCISOWeekYear/index.js | 40 + .../date-fns/_lib/getUTCWeek/index.js | 31 + .../date-fns/_lib/getUTCWeekYear/index.js | 52 + .../date-fns/_lib/isSameUTCWeek/index.js | 23 + .../date-fns/_lib/protectedTokens/index.js | 30 + .../date-fns/_lib/requiredArgs/index.js | 14 + node_modules/date-fns/_lib/setUTCDay/index.js | 40 + .../date-fns/_lib/setUTCISODay/index.js | 36 + .../date-fns/_lib/setUTCISOWeek/index.js | 29 + .../date-fns/_lib/setUTCWeek/index.js | 29 + .../date-fns/_lib/startOfUTCISOWeek/index.js | 27 + .../_lib/startOfUTCISOWeekYear/index.js | 28 + .../date-fns/_lib/startOfUTCWeek/index.js | 38 + .../date-fns/_lib/startOfUTCWeekYear/index.js | 35 + node_modules/date-fns/_lib/toInteger/index.js | 22 + node_modules/date-fns/add/index.d.ts | 4 + node_modules/date-fns/add/index.js | 82 + node_modules/date-fns/add/index.js.flow | 50 + node_modules/date-fns/add/package.json | 5 + .../date-fns/addBusinessDays/index.d.ts | 4 + .../date-fns/addBusinessDays/index.js | 73 + .../date-fns/addBusinessDays/index.js.flow | 50 + .../date-fns/addBusinessDays/package.json | 5 + node_modules/date-fns/addDays/index.d.ts | 4 + node_modules/date-fns/addDays/index.js | 56 + node_modules/date-fns/addDays/index.js.flow | 50 + node_modules/date-fns/addDays/package.json | 5 + node_modules/date-fns/addHours/index.d.ts | 4 + node_modules/date-fns/addHours/index.js | 46 + node_modules/date-fns/addHours/index.js.flow | 50 + node_modules/date-fns/addHours/package.json | 5 + .../date-fns/addISOWeekYears/index.d.ts | 4 + .../date-fns/addISOWeekYears/index.js | 53 + .../date-fns/addISOWeekYears/index.js.flow | 50 + .../date-fns/addISOWeekYears/package.json | 5 + .../date-fns/addMilliseconds/index.d.ts | 4 + .../date-fns/addMilliseconds/index.js | 45 + .../date-fns/addMilliseconds/index.js.flow | 50 + .../date-fns/addMilliseconds/package.json | 5 + node_modules/date-fns/addMinutes/index.d.ts | 4 + node_modules/date-fns/addMinutes/index.js | 46 + .../date-fns/addMinutes/index.js.flow | 50 + node_modules/date-fns/addMinutes/package.json | 5 + node_modules/date-fns/addMonths/index.d.ts | 4 + node_modules/date-fns/addMonths/index.js | 82 + node_modules/date-fns/addMonths/index.js.flow | 50 + node_modules/date-fns/addMonths/package.json | 5 + node_modules/date-fns/addQuarters/index.d.ts | 4 + node_modules/date-fns/addQuarters/index.js | 45 + .../date-fns/addQuarters/index.js.flow | 50 + .../date-fns/addQuarters/package.json | 5 + node_modules/date-fns/addSeconds/index.d.ts | 4 + node_modules/date-fns/addSeconds/index.js | 44 + .../date-fns/addSeconds/index.js.flow | 50 + node_modules/date-fns/addSeconds/package.json | 5 + node_modules/date-fns/addWeeks/index.d.ts | 4 + node_modules/date-fns/addWeeks/index.js | 45 + node_modules/date-fns/addWeeks/index.js.flow | 50 + node_modules/date-fns/addWeeks/package.json | 5 + node_modules/date-fns/addYears/index.d.ts | 4 + node_modules/date-fns/addYears/index.js | 44 + node_modules/date-fns/addYears/index.js.flow | 50 + node_modules/date-fns/addYears/package.json | 5 + .../areIntervalsOverlapping/index.d.ts | 4 + .../date-fns/areIntervalsOverlapping/index.js | 124 + .../areIntervalsOverlapping/index.js.flow | 56 + .../areIntervalsOverlapping/package.json | 5 + .../date-fns/closestIndexTo/index.d.ts | 4 + node_modules/date-fns/closestIndexTo/index.js | 85 + .../date-fns/closestIndexTo/index.js.flow | 53 + .../date-fns/closestIndexTo/package.json | 5 + node_modules/date-fns/closestTo/index.d.ts | 4 + node_modules/date-fns/closestTo/index.js | 83 + node_modules/date-fns/closestTo/index.js.flow | 53 + node_modules/date-fns/closestTo/package.json | 5 + node_modules/date-fns/compareAsc/index.d.ts | 4 + node_modules/date-fns/compareAsc/index.js | 65 + .../date-fns/compareAsc/index.js.flow | 53 + node_modules/date-fns/compareAsc/package.json | 5 + node_modules/date-fns/compareDesc/index.d.ts | 4 + node_modules/date-fns/compareDesc/index.js | 65 + .../date-fns/compareDesc/index.js.flow | 53 + .../date-fns/compareDesc/package.json | 5 + node_modules/date-fns/constants/index.d.ts | 2 + node_modules/date-fns/constants/index.js | 24 + node_modules/date-fns/constants/index.js.flow | 4 + .../differenceInBusinessDays/index.d.ts | 4 + .../differenceInBusinessDays/index.js | 71 + .../differenceInBusinessDays/index.js.flow | 53 + .../differenceInBusinessDays/package.json | 5 + .../differenceInCalendarDays/index.d.ts | 4 + .../differenceInCalendarDays/index.js | 64 + .../differenceInCalendarDays/index.js.flow | 53 + .../differenceInCalendarDays/package.json | 5 + .../index.d.ts | 4 + .../differenceInCalendarISOWeekYears/index.js | 51 + .../index.js.flow | 53 + .../package.json | 5 + .../differenceInCalendarISOWeeks/index.d.ts | 4 + .../differenceInCalendarISOWeeks/index.js | 57 + .../index.js.flow | 53 + .../differenceInCalendarISOWeeks/package.json | 5 + .../differenceInCalendarMonths/index.d.ts | 4 + .../differenceInCalendarMonths/index.js | 48 + .../differenceInCalendarMonths/index.js.flow | 53 + .../differenceInCalendarMonths/package.json | 5 + .../differenceInCalendarQuarters/index.d.ts | 4 + .../differenceInCalendarQuarters/index.js | 50 + .../index.js.flow | 53 + .../differenceInCalendarQuarters/package.json | 5 + .../differenceInCalendarWeeks/index.d.ts | 4 + .../differenceInCalendarWeeks/index.js | 69 + .../differenceInCalendarWeeks/index.js.flow | 57 + .../differenceInCalendarWeeks/package.json | 5 + .../differenceInCalendarYears/index.d.ts | 4 + .../differenceInCalendarYears/index.js | 46 + .../differenceInCalendarYears/index.js.flow | 53 + .../differenceInCalendarYears/package.json | 5 + .../date-fns/differenceInDays/index.d.ts | 4 + .../date-fns/differenceInDays/index.js | 101 + .../date-fns/differenceInDays/index.js.flow | 53 + .../date-fns/differenceInDays/package.json | 5 + .../date-fns/differenceInHours/index.d.ts | 4 + .../date-fns/differenceInHours/index.js | 47 + .../date-fns/differenceInHours/index.js.flow | 53 + .../date-fns/differenceInHours/package.json | 5 + .../differenceInISOWeekYears/index.d.ts | 4 + .../differenceInISOWeekYears/index.js | 68 + .../differenceInISOWeekYears/index.js.flow | 53 + .../differenceInISOWeekYears/package.json | 5 + .../differenceInMilliseconds/index.d.ts | 4 + .../differenceInMilliseconds/index.js | 47 + .../differenceInMilliseconds/index.js.flow | 53 + .../differenceInMilliseconds/package.json | 5 + .../date-fns/differenceInMinutes/index.d.ts | 4 + .../date-fns/differenceInMinutes/index.js | 55 + .../differenceInMinutes/index.js.flow | 53 + .../date-fns/differenceInMinutes/package.json | 5 + .../date-fns/differenceInMonths/index.d.ts | 4 + .../date-fns/differenceInMonths/index.js | 55 + .../date-fns/differenceInMonths/index.js.flow | 53 + .../date-fns/differenceInMonths/package.json | 5 + .../date-fns/differenceInQuarters/index.d.ts | 4 + .../date-fns/differenceInQuarters/index.js | 42 + .../differenceInQuarters/index.js.flow | 53 + .../differenceInQuarters/package.json | 5 + .../date-fns/differenceInSeconds/index.d.ts | 4 + .../date-fns/differenceInSeconds/index.js | 46 + .../differenceInSeconds/index.js.flow | 53 + .../date-fns/differenceInSeconds/package.json | 5 + .../date-fns/differenceInWeeks/index.d.ts | 4 + .../date-fns/differenceInWeeks/index.js | 63 + .../date-fns/differenceInWeeks/index.js.flow | 53 + .../date-fns/differenceInWeeks/package.json | 5 + .../date-fns/differenceInYears/index.d.ts | 4 + .../date-fns/differenceInYears/index.js | 58 + .../date-fns/differenceInYears/index.js.flow | 53 + .../date-fns/differenceInYears/package.json | 5 + node_modules/date-fns/docs/.eslintrc.js | 5 + node_modules/date-fns/docs/Duration.js | 19 + node_modules/date-fns/docs/Interval.js | 16 + node_modules/date-fns/docs/Locale.js | 64 + node_modules/date-fns/docs/constants.md | 47 + node_modules/date-fns/docs/esm.md | 24 + node_modules/date-fns/docs/fp.md | 70 + node_modules/date-fns/docs/gettingStarted.md | 83 + node_modules/date-fns/docs/i18n.md | 92 + .../date-fns/docs/i18nContributionGuide.md | 921 + node_modules/date-fns/docs/index.js | 143 + node_modules/date-fns/docs/logo.svg | 26 + node_modules/date-fns/docs/logotype.svg | 1 + node_modules/date-fns/docs/timeZones.md | 63 + node_modules/date-fns/docs/unicodeTokens.md | 54 + node_modules/date-fns/docs/upgradeGuide.md | 118 + node_modules/date-fns/docs/webpack.md | 48 + .../date-fns/eachDayOfInterval/index.d.ts | 4 + .../date-fns/eachDayOfInterval/index.js | 101 + .../date-fns/eachDayOfInterval/index.js.flow | 55 + .../date-fns/eachDayOfInterval/package.json | 5 + .../date-fns/eachHourOfInterval/index.d.ts | 4 + .../date-fns/eachHourOfInterval/index.js | 72 + .../date-fns/eachHourOfInterval/index.js.flow | 55 + .../date-fns/eachHourOfInterval/package.json | 5 + .../date-fns/eachMonthOfInterval/index.d.ts | 4 + .../date-fns/eachMonthOfInterval/index.js | 68 + .../eachMonthOfInterval/index.js.flow | 50 + .../date-fns/eachMonthOfInterval/package.json | 5 + .../date-fns/eachQuarterOfInterval/index.d.ts | 4 + .../date-fns/eachQuarterOfInterval/index.js | 69 + .../eachQuarterOfInterval/index.js.flow | 50 + .../eachQuarterOfInterval/package.json | 5 + .../date-fns/eachWeekOfInterval/index.d.ts | 4 + .../date-fns/eachWeekOfInterval/index.js | 87 + .../date-fns/eachWeekOfInterval/index.js.flow | 56 + .../date-fns/eachWeekOfInterval/package.json | 5 + .../date-fns/eachWeekendOfInterval/index.d.ts | 4 + .../date-fns/eachWeekendOfInterval/index.js | 63 + .../eachWeekendOfInterval/index.js.flow | 50 + .../eachWeekendOfInterval/package.json | 5 + .../date-fns/eachWeekendOfMonth/index.d.ts | 4 + .../date-fns/eachWeekendOfMonth/index.js | 56 + .../date-fns/eachWeekendOfMonth/index.js.flow | 50 + .../date-fns/eachWeekendOfMonth/package.json | 5 + .../date-fns/eachWeekendOfYear/index.d.ts | 4 + .../date-fns/eachWeekendOfYear/index.js | 53 + .../date-fns/eachWeekendOfYear/index.js.flow | 50 + .../date-fns/eachWeekendOfYear/package.json | 5 + .../date-fns/eachYearOfInterval/index.d.ts | 4 + .../date-fns/eachYearOfInterval/index.js | 65 + .../date-fns/eachYearOfInterval/index.js.flow | 50 + .../date-fns/eachYearOfInterval/package.json | 5 + node_modules/date-fns/endOfDay/index.d.ts | 4 + node_modules/date-fns/endOfDay/index.js | 43 + node_modules/date-fns/endOfDay/index.js.flow | 50 + node_modules/date-fns/endOfDay/package.json | 5 + node_modules/date-fns/endOfDecade/index.d.ts | 4 + node_modules/date-fns/endOfDecade/index.js | 48 + .../date-fns/endOfDecade/index.js.flow | 55 + .../date-fns/endOfDecade/package.json | 5 + node_modules/date-fns/endOfHour/index.d.ts | 4 + node_modules/date-fns/endOfHour/index.js | 43 + node_modules/date-fns/endOfHour/index.js.flow | 50 + node_modules/date-fns/endOfHour/package.json | 5 + node_modules/date-fns/endOfISOWeek/index.d.ts | 4 + node_modules/date-fns/endOfISOWeek/index.js | 45 + .../date-fns/endOfISOWeek/index.js.flow | 50 + .../date-fns/endOfISOWeek/package.json | 5 + .../date-fns/endOfISOWeekYear/index.d.ts | 4 + .../date-fns/endOfISOWeekYear/index.js | 57 + .../date-fns/endOfISOWeekYear/index.js.flow | 50 + .../date-fns/endOfISOWeekYear/package.json | 5 + node_modules/date-fns/endOfMinute/index.d.ts | 4 + node_modules/date-fns/endOfMinute/index.js | 43 + .../date-fns/endOfMinute/index.js.flow | 50 + .../date-fns/endOfMinute/package.json | 5 + node_modules/date-fns/endOfMonth/index.d.ts | 4 + node_modules/date-fns/endOfMonth/index.js | 45 + .../date-fns/endOfMonth/index.js.flow | 50 + node_modules/date-fns/endOfMonth/package.json | 5 + node_modules/date-fns/endOfQuarter/index.d.ts | 4 + node_modules/date-fns/endOfQuarter/index.js | 46 + .../date-fns/endOfQuarter/index.js.flow | 50 + .../date-fns/endOfQuarter/package.json | 5 + node_modules/date-fns/endOfSecond/index.d.ts | 4 + node_modules/date-fns/endOfSecond/index.js | 43 + .../date-fns/endOfSecond/index.js.flow | 50 + .../date-fns/endOfSecond/package.json | 5 + node_modules/date-fns/endOfToday/index.d.ts | 4 + node_modules/date-fns/endOfToday/index.js | 39 + .../date-fns/endOfToday/index.js.flow | 50 + node_modules/date-fns/endOfToday/package.json | 5 + .../date-fns/endOfTomorrow/index.d.ts | 4 + node_modules/date-fns/endOfTomorrow/index.js | 42 + .../date-fns/endOfTomorrow/index.js.flow | 50 + .../date-fns/endOfTomorrow/package.json | 5 + node_modules/date-fns/endOfWeek/index.d.ts | 4 + node_modules/date-fns/endOfWeek/index.js | 67 + node_modules/date-fns/endOfWeek/index.js.flow | 56 + node_modules/date-fns/endOfWeek/package.json | 5 + node_modules/date-fns/endOfYear/index.d.ts | 4 + node_modules/date-fns/endOfYear/index.js | 45 + node_modules/date-fns/endOfYear/index.js.flow | 50 + node_modules/date-fns/endOfYear/package.json | 5 + .../date-fns/endOfYesterday/index.d.ts | 4 + node_modules/date-fns/endOfYesterday/index.js | 42 + .../date-fns/endOfYesterday/index.js.flow | 50 + .../date-fns/endOfYesterday/package.json | 5 + .../esm/_lib/addLeadingZeros/index.js | 10 + .../date-fns/esm/_lib/assign/index.js | 15 + .../date-fns/esm/_lib/cloneObject/index.js | 4 + .../esm/_lib/format/formatters/index.js | 856 + .../esm/_lib/format/lightFormatters/index.js | 82 + .../esm/_lib/format/longFormatters/index.js | 96 + .../getTimezoneOffsetInMilliseconds/index.js | 26 + .../esm/_lib/getUTCDayOfYear/index.js | 15 + .../date-fns/esm/_lib/getUTCISOWeek/index.js | 16 + .../esm/_lib/getUTCISOWeekYear/index.js | 26 + .../date-fns/esm/_lib/getUTCWeek/index.js | 16 + .../date-fns/esm/_lib/getUTCWeekYear/index.js | 37 + .../date-fns/esm/_lib/isSameUTCWeek/index.js | 10 + .../esm/_lib/protectedTokens/index.js | 19 + .../date-fns/esm/_lib/requiredArgs/index.js | 5 + .../date-fns/esm/_lib/setUTCDay/index.js | 26 + .../date-fns/esm/_lib/setUTCISODay/index.js | 22 + .../date-fns/esm/_lib/setUTCISOWeek/index.js | 14 + .../date-fns/esm/_lib/setUTCWeek/index.js | 14 + .../esm/_lib/startOfUTCISOWeek/index.js | 14 + .../esm/_lib/startOfUTCISOWeekYear/index.js | 14 + .../date-fns/esm/_lib/startOfUTCWeek/index.js | 24 + .../esm/_lib/startOfUTCWeekYear/index.js | 20 + .../date-fns/esm/_lib/toInteger/index.js | 13 + node_modules/date-fns/esm/add/index.d.ts | 4 + node_modules/date-fns/esm/add/index.js | 67 + node_modules/date-fns/esm/add/index.js.flow | 50 + node_modules/date-fns/esm/add/package.json | 4 + .../date-fns/esm/addBusinessDays/index.d.ts | 4 + .../date-fns/esm/addBusinessDays/index.js | 57 + .../esm/addBusinessDays/index.js.flow | 50 + .../date-fns/esm/addBusinessDays/package.json | 4 + node_modules/date-fns/esm/addDays/index.d.ts | 4 + node_modules/date-fns/esm/addDays/index.js | 43 + .../date-fns/esm/addDays/index.js.flow | 50 + .../date-fns/esm/addDays/package.json | 4 + node_modules/date-fns/esm/addHours/index.d.ts | 4 + node_modules/date-fns/esm/addHours/index.js | 32 + .../date-fns/esm/addHours/index.js.flow | 50 + .../date-fns/esm/addHours/package.json | 4 + .../date-fns/esm/addISOWeekYears/index.d.ts | 4 + .../date-fns/esm/addISOWeekYears/index.js | 39 + .../esm/addISOWeekYears/index.js.flow | 50 + .../date-fns/esm/addISOWeekYears/package.json | 4 + .../date-fns/esm/addMilliseconds/index.d.ts | 4 + .../date-fns/esm/addMilliseconds/index.js | 32 + .../esm/addMilliseconds/index.js.flow | 50 + .../date-fns/esm/addMilliseconds/package.json | 4 + .../date-fns/esm/addMinutes/index.d.ts | 4 + node_modules/date-fns/esm/addMinutes/index.js | 32 + .../date-fns/esm/addMinutes/index.js.flow | 50 + .../date-fns/esm/addMinutes/package.json | 4 + .../date-fns/esm/addMonths/index.d.ts | 4 + node_modules/date-fns/esm/addMonths/index.js | 69 + .../date-fns/esm/addMonths/index.js.flow | 50 + .../date-fns/esm/addMonths/package.json | 4 + .../date-fns/esm/addQuarters/index.d.ts | 4 + .../date-fns/esm/addQuarters/index.js | 32 + .../date-fns/esm/addQuarters/index.js.flow | 50 + .../date-fns/esm/addQuarters/package.json | 4 + .../date-fns/esm/addSeconds/index.d.ts | 4 + node_modules/date-fns/esm/addSeconds/index.js | 31 + .../date-fns/esm/addSeconds/index.js.flow | 50 + .../date-fns/esm/addSeconds/package.json | 4 + node_modules/date-fns/esm/addWeeks/index.d.ts | 4 + node_modules/date-fns/esm/addWeeks/index.js | 32 + .../date-fns/esm/addWeeks/index.js.flow | 50 + .../date-fns/esm/addWeeks/package.json | 4 + node_modules/date-fns/esm/addYears/index.d.ts | 4 + node_modules/date-fns/esm/addYears/index.js | 31 + .../date-fns/esm/addYears/index.js.flow | 50 + .../date-fns/esm/addYears/package.json | 4 + .../esm/areIntervalsOverlapping/index.d.ts | 4 + .../esm/areIntervalsOverlapping/index.js | 112 + .../esm/areIntervalsOverlapping/index.js.flow | 56 + .../esm/areIntervalsOverlapping/package.json | 4 + .../date-fns/esm/closestIndexTo/index.d.ts | 4 + .../date-fns/esm/closestIndexTo/index.js | 73 + .../date-fns/esm/closestIndexTo/index.js.flow | 53 + .../date-fns/esm/closestIndexTo/package.json | 4 + .../date-fns/esm/closestTo/index.d.ts | 4 + node_modules/date-fns/esm/closestTo/index.js | 71 + .../date-fns/esm/closestTo/index.js.flow | 53 + .../date-fns/esm/closestTo/package.json | 4 + .../date-fns/esm/compareAsc/index.d.ts | 4 + node_modules/date-fns/esm/compareAsc/index.js | 53 + .../date-fns/esm/compareAsc/index.js.flow | 53 + .../date-fns/esm/compareAsc/package.json | 4 + .../date-fns/esm/compareDesc/index.d.ts | 4 + .../date-fns/esm/compareDesc/index.js | 53 + .../date-fns/esm/compareDesc/index.js.flow | 53 + .../date-fns/esm/compareDesc/package.json | 4 + .../date-fns/esm/constants/index.d.ts | 2 + node_modules/date-fns/esm/constants/index.js | 15 + .../date-fns/esm/constants/index.js.flow | 4 + .../esm/differenceInBusinessDays/index.d.ts | 4 + .../esm/differenceInBusinessDays/index.js | 53 + .../differenceInBusinessDays/index.js.flow | 53 + .../esm/differenceInBusinessDays/package.json | 4 + .../esm/differenceInCalendarDays/index.d.ts | 4 + .../esm/differenceInCalendarDays/index.js | 50 + .../differenceInCalendarDays/index.js.flow | 53 + .../esm/differenceInCalendarDays/package.json | 4 + .../index.d.ts | 4 + .../differenceInCalendarISOWeekYears/index.js | 39 + .../index.js.flow | 53 + .../package.json | 4 + .../differenceInCalendarISOWeeks/index.d.ts | 4 + .../esm/differenceInCalendarISOWeeks/index.js | 43 + .../index.js.flow | 53 + .../differenceInCalendarISOWeeks/package.json | 4 + .../esm/differenceInCalendarMonths/index.d.ts | 4 + .../esm/differenceInCalendarMonths/index.js | 36 + .../differenceInCalendarMonths/index.js.flow | 53 + .../differenceInCalendarMonths/package.json | 4 + .../differenceInCalendarQuarters/index.d.ts | 4 + .../esm/differenceInCalendarQuarters/index.js | 37 + .../index.js.flow | 53 + .../differenceInCalendarQuarters/package.json | 4 + .../esm/differenceInCalendarWeeks/index.d.ts | 4 + .../esm/differenceInCalendarWeeks/index.js | 55 + .../differenceInCalendarWeeks/index.js.flow | 57 + .../differenceInCalendarWeeks/package.json | 4 + .../esm/differenceInCalendarYears/index.d.ts | 4 + .../esm/differenceInCalendarYears/index.js | 34 + .../differenceInCalendarYears/index.js.flow | 53 + .../differenceInCalendarYears/package.json | 4 + .../date-fns/esm/differenceInDays/index.d.ts | 4 + .../date-fns/esm/differenceInDays/index.js | 87 + .../esm/differenceInDays/index.js.flow | 53 + .../esm/differenceInDays/package.json | 4 + .../date-fns/esm/differenceInHours/index.d.ts | 4 + .../date-fns/esm/differenceInHours/index.js | 34 + .../esm/differenceInHours/index.js.flow | 53 + .../esm/differenceInHours/package.json | 4 + .../esm/differenceInISOWeekYears/index.d.ts | 4 + .../esm/differenceInISOWeekYears/index.js | 53 + .../differenceInISOWeekYears/index.js.flow | 53 + .../esm/differenceInISOWeekYears/package.json | 4 + .../esm/differenceInMilliseconds/index.d.ts | 4 + .../esm/differenceInMilliseconds/index.js | 35 + .../differenceInMilliseconds/index.js.flow | 53 + .../esm/differenceInMilliseconds/package.json | 4 + .../esm/differenceInMinutes/index.d.ts | 4 + .../date-fns/esm/differenceInMinutes/index.js | 42 + .../esm/differenceInMinutes/index.js.flow | 53 + .../esm/differenceInMinutes/package.json | 4 + .../esm/differenceInMonths/index.d.ts | 4 + .../date-fns/esm/differenceInMonths/index.js | 41 + .../esm/differenceInMonths/index.js.flow | 53 + .../esm/differenceInMonths/package.json | 4 + .../esm/differenceInQuarters/index.d.ts | 4 + .../esm/differenceInQuarters/index.js | 30 + .../esm/differenceInQuarters/index.js.flow | 53 + .../esm/differenceInQuarters/package.json | 4 + .../esm/differenceInSeconds/index.d.ts | 4 + .../date-fns/esm/differenceInSeconds/index.js | 34 + .../esm/differenceInSeconds/index.js.flow | 53 + .../esm/differenceInSeconds/package.json | 4 + .../date-fns/esm/differenceInWeeks/index.d.ts | 4 + .../date-fns/esm/differenceInWeeks/index.js | 51 + .../esm/differenceInWeeks/index.js.flow | 53 + .../esm/differenceInWeeks/package.json | 4 + .../date-fns/esm/differenceInYears/index.d.ts | 4 + .../date-fns/esm/differenceInYears/index.js | 44 + .../esm/differenceInYears/index.js.flow | 53 + .../esm/differenceInYears/package.json | 4 + .../date-fns/esm/eachDayOfInterval/index.d.ts | 4 + .../date-fns/esm/eachDayOfInterval/index.js | 89 + .../esm/eachDayOfInterval/index.js.flow | 55 + .../esm/eachDayOfInterval/package.json | 4 + .../esm/eachHourOfInterval/index.d.ts | 4 + .../date-fns/esm/eachHourOfInterval/index.js | 59 + .../esm/eachHourOfInterval/index.js.flow | 55 + .../esm/eachHourOfInterval/package.json | 4 + .../esm/eachMonthOfInterval/index.d.ts | 4 + .../date-fns/esm/eachMonthOfInterval/index.js | 56 + .../esm/eachMonthOfInterval/index.js.flow | 50 + .../esm/eachMonthOfInterval/package.json | 4 + .../esm/eachQuarterOfInterval/index.d.ts | 4 + .../esm/eachQuarterOfInterval/index.js | 55 + .../esm/eachQuarterOfInterval/index.js.flow | 50 + .../esm/eachQuarterOfInterval/package.json | 4 + .../esm/eachWeekOfInterval/index.d.ts | 4 + .../date-fns/esm/eachWeekOfInterval/index.js | 73 + .../esm/eachWeekOfInterval/index.js.flow | 56 + .../esm/eachWeekOfInterval/package.json | 4 + .../esm/eachWeekendOfInterval/index.d.ts | 4 + .../esm/eachWeekendOfInterval/index.js | 49 + .../esm/eachWeekendOfInterval/index.js.flow | 50 + .../esm/eachWeekendOfInterval/package.json | 4 + .../esm/eachWeekendOfMonth/index.d.ts | 4 + .../date-fns/esm/eachWeekendOfMonth/index.js | 42 + .../esm/eachWeekendOfMonth/index.js.flow | 50 + .../esm/eachWeekendOfMonth/package.json | 4 + .../date-fns/esm/eachWeekendOfYear/index.d.ts | 4 + .../date-fns/esm/eachWeekendOfYear/index.js | 39 + .../esm/eachWeekendOfYear/index.js.flow | 50 + .../esm/eachWeekendOfYear/package.json | 4 + .../esm/eachYearOfInterval/index.d.ts | 4 + .../date-fns/esm/eachYearOfInterval/index.js | 53 + .../esm/eachYearOfInterval/index.js.flow | 50 + .../esm/eachYearOfInterval/package.json | 4 + node_modules/date-fns/esm/endOfDay/index.d.ts | 4 + node_modules/date-fns/esm/endOfDay/index.js | 31 + .../date-fns/esm/endOfDay/index.js.flow | 50 + .../date-fns/esm/endOfDay/package.json | 4 + .../date-fns/esm/endOfDecade/index.d.ts | 4 + .../date-fns/esm/endOfDecade/index.js | 36 + .../date-fns/esm/endOfDecade/index.js.flow | 55 + .../date-fns/esm/endOfDecade/package.json | 4 + .../date-fns/esm/endOfHour/index.d.ts | 4 + node_modules/date-fns/esm/endOfHour/index.js | 31 + .../date-fns/esm/endOfHour/index.js.flow | 50 + .../date-fns/esm/endOfHour/package.json | 4 + .../date-fns/esm/endOfISOWeek/index.d.ts | 4 + .../date-fns/esm/endOfISOWeek/index.js | 33 + .../date-fns/esm/endOfISOWeek/index.js.flow | 50 + .../date-fns/esm/endOfISOWeek/package.json | 4 + .../date-fns/esm/endOfISOWeekYear/index.d.ts | 4 + .../date-fns/esm/endOfISOWeekYear/index.js | 44 + .../esm/endOfISOWeekYear/index.js.flow | 50 + .../esm/endOfISOWeekYear/package.json | 4 + .../date-fns/esm/endOfMinute/index.d.ts | 4 + .../date-fns/esm/endOfMinute/index.js | 31 + .../date-fns/esm/endOfMinute/index.js.flow | 50 + .../date-fns/esm/endOfMinute/package.json | 4 + .../date-fns/esm/endOfMonth/index.d.ts | 4 + node_modules/date-fns/esm/endOfMonth/index.js | 33 + .../date-fns/esm/endOfMonth/index.js.flow | 50 + .../date-fns/esm/endOfMonth/package.json | 4 + .../date-fns/esm/endOfQuarter/index.d.ts | 4 + .../date-fns/esm/endOfQuarter/index.js | 34 + .../date-fns/esm/endOfQuarter/index.js.flow | 50 + .../date-fns/esm/endOfQuarter/package.json | 4 + .../date-fns/esm/endOfSecond/index.d.ts | 4 + .../date-fns/esm/endOfSecond/index.js | 31 + .../date-fns/esm/endOfSecond/index.js.flow | 50 + .../date-fns/esm/endOfSecond/package.json | 4 + .../date-fns/esm/endOfToday/index.d.ts | 4 + node_modules/date-fns/esm/endOfToday/index.js | 28 + .../date-fns/esm/endOfToday/index.js.flow | 50 + .../date-fns/esm/endOfToday/package.json | 4 + .../date-fns/esm/endOfTomorrow/index.d.ts | 4 + .../date-fns/esm/endOfTomorrow/index.js | 33 + .../date-fns/esm/endOfTomorrow/index.js.flow | 50 + .../date-fns/esm/endOfTomorrow/package.json | 4 + .../date-fns/esm/endOfWeek/index.d.ts | 4 + node_modules/date-fns/esm/endOfWeek/index.js | 54 + .../date-fns/esm/endOfWeek/index.js.flow | 56 + .../date-fns/esm/endOfWeek/package.json | 4 + .../date-fns/esm/endOfYear/index.d.ts | 4 + node_modules/date-fns/esm/endOfYear/index.js | 33 + .../date-fns/esm/endOfYear/index.js.flow | 50 + .../date-fns/esm/endOfYear/package.json | 4 + .../date-fns/esm/endOfYesterday/index.d.ts | 4 + .../date-fns/esm/endOfYesterday/index.js | 33 + .../date-fns/esm/endOfYesterday/index.js.flow | 50 + .../date-fns/esm/endOfYesterday/package.json | 4 + node_modules/date-fns/esm/format/index.d.ts | 4 + node_modules/date-fns/esm/format/index.js | 431 + .../date-fns/esm/format/index.js.flow | 60 + node_modules/date-fns/esm/format/package.json | 4 + .../date-fns/esm/formatDistance/index.d.ts | 4 + .../date-fns/esm/formatDistance/index.js | 213 + .../date-fns/esm/formatDistance/index.js.flow | 58 + .../date-fns/esm/formatDistance/package.json | 4 + .../esm/formatDistanceStrict/index.d.ts | 4 + .../esm/formatDistanceStrict/index.js | 247 + .../esm/formatDistanceStrict/index.js.flow | 59 + .../esm/formatDistanceStrict/package.json | 4 + .../esm/formatDistanceToNow/index.d.ts | 4 + .../date-fns/esm/formatDistanceToNow/index.js | 112 + .../esm/formatDistanceToNow/index.js.flow | 57 + .../esm/formatDistanceToNow/package.json | 4 + .../esm/formatDistanceToNowStrict/index.d.ts | 4 + .../esm/formatDistanceToNowStrict/index.js | 81 + .../formatDistanceToNowStrict/index.js.flow | 58 + .../formatDistanceToNowStrict/package.json | 4 + .../date-fns/esm/formatDuration/index.d.ts | 4 + .../date-fns/esm/formatDuration/index.js | 86 + .../date-fns/esm/formatDuration/index.js.flow | 58 + .../date-fns/esm/formatDuration/package.json | 4 + .../date-fns/esm/formatISO/index.d.ts | 4 + node_modules/date-fns/esm/formatISO/index.js | 107 + .../date-fns/esm/formatISO/index.js.flow | 56 + .../date-fns/esm/formatISO/package.json | 4 + .../date-fns/esm/formatISO9075/index.d.ts | 4 + .../date-fns/esm/formatISO9075/index.js | 90 + .../date-fns/esm/formatISO9075/index.js.flow | 56 + .../date-fns/esm/formatISO9075/package.json | 4 + .../date-fns/esm/formatISODuration/index.d.ts | 4 + .../date-fns/esm/formatISODuration/index.js | 45 + .../esm/formatISODuration/index.js.flow | 50 + .../esm/formatISODuration/package.json | 4 + .../date-fns/esm/formatRFC3339/index.d.ts | 4 + .../date-fns/esm/formatRFC3339/index.js | 84 + .../date-fns/esm/formatRFC3339/index.js.flow | 55 + .../date-fns/esm/formatRFC3339/package.json | 4 + .../date-fns/esm/formatRFC7231/index.d.ts | 4 + .../date-fns/esm/formatRFC7231/index.js | 46 + .../date-fns/esm/formatRFC7231/index.js.flow | 50 + .../date-fns/esm/formatRFC7231/package.json | 4 + .../date-fns/esm/formatRelative/index.d.ts | 4 + .../date-fns/esm/formatRelative/index.js | 91 + .../date-fns/esm/formatRelative/index.js.flow | 57 + .../date-fns/esm/formatRelative/package.json | 4 + .../date-fns/esm/fp/_lib/convertToFP/index.js | 12 + node_modules/date-fns/esm/fp/add/index.d.ts | 4 + node_modules/date-fns/esm/fp/add/index.js | 5 + .../date-fns/esm/fp/add/index.js.flow | 56 + node_modules/date-fns/esm/fp/add/package.json | 4 + .../esm/fp/addBusinessDays/index.d.ts | 4 + .../date-fns/esm/fp/addBusinessDays/index.js | 5 + .../esm/fp/addBusinessDays/index.js.flow | 56 + .../esm/fp/addBusinessDays/package.json | 4 + .../date-fns/esm/fp/addDays/index.d.ts | 4 + node_modules/date-fns/esm/fp/addDays/index.js | 5 + .../date-fns/esm/fp/addDays/index.js.flow | 56 + .../date-fns/esm/fp/addDays/package.json | 4 + .../date-fns/esm/fp/addHours/index.d.ts | 4 + .../date-fns/esm/fp/addHours/index.js | 5 + .../date-fns/esm/fp/addHours/index.js.flow | 56 + .../date-fns/esm/fp/addHours/package.json | 4 + .../esm/fp/addISOWeekYears/index.d.ts | 4 + .../date-fns/esm/fp/addISOWeekYears/index.js | 5 + .../esm/fp/addISOWeekYears/index.js.flow | 56 + .../esm/fp/addISOWeekYears/package.json | 4 + .../esm/fp/addMilliseconds/index.d.ts | 4 + .../date-fns/esm/fp/addMilliseconds/index.js | 5 + .../esm/fp/addMilliseconds/index.js.flow | 56 + .../esm/fp/addMilliseconds/package.json | 4 + .../date-fns/esm/fp/addMinutes/index.d.ts | 4 + .../date-fns/esm/fp/addMinutes/index.js | 5 + .../date-fns/esm/fp/addMinutes/index.js.flow | 56 + .../date-fns/esm/fp/addMinutes/package.json | 4 + .../date-fns/esm/fp/addMonths/index.d.ts | 4 + .../date-fns/esm/fp/addMonths/index.js | 5 + .../date-fns/esm/fp/addMonths/index.js.flow | 56 + .../date-fns/esm/fp/addMonths/package.json | 4 + .../date-fns/esm/fp/addQuarters/index.d.ts | 4 + .../date-fns/esm/fp/addQuarters/index.js | 5 + .../date-fns/esm/fp/addQuarters/index.js.flow | 56 + .../date-fns/esm/fp/addQuarters/package.json | 4 + .../date-fns/esm/fp/addSeconds/index.d.ts | 4 + .../date-fns/esm/fp/addSeconds/index.js | 5 + .../date-fns/esm/fp/addSeconds/index.js.flow | 56 + .../date-fns/esm/fp/addSeconds/package.json | 4 + .../date-fns/esm/fp/addWeeks/index.d.ts | 4 + .../date-fns/esm/fp/addWeeks/index.js | 5 + .../date-fns/esm/fp/addWeeks/index.js.flow | 56 + .../date-fns/esm/fp/addWeeks/package.json | 4 + .../date-fns/esm/fp/addYears/index.d.ts | 4 + .../date-fns/esm/fp/addYears/index.js | 5 + .../date-fns/esm/fp/addYears/index.js.flow | 56 + .../date-fns/esm/fp/addYears/package.json | 4 + .../esm/fp/areIntervalsOverlapping/index.d.ts | 4 + .../esm/fp/areIntervalsOverlapping/index.js | 5 + .../fp/areIntervalsOverlapping/index.js.flow | 56 + .../fp/areIntervalsOverlapping/package.json | 4 + .../index.d.ts | 4 + .../index.js | 5 + .../index.js.flow | 72 + .../package.json | 4 + .../date-fns/esm/fp/closestIndexTo/index.d.ts | 4 + .../date-fns/esm/fp/closestIndexTo/index.js | 5 + .../esm/fp/closestIndexTo/index.js.flow | 56 + .../esm/fp/closestIndexTo/package.json | 4 + .../date-fns/esm/fp/closestTo/index.d.ts | 4 + .../date-fns/esm/fp/closestTo/index.js | 5 + .../date-fns/esm/fp/closestTo/index.js.flow | 56 + .../date-fns/esm/fp/closestTo/package.json | 4 + .../date-fns/esm/fp/compareAsc/index.d.ts | 4 + .../date-fns/esm/fp/compareAsc/index.js | 5 + .../date-fns/esm/fp/compareAsc/index.js.flow | 56 + .../date-fns/esm/fp/compareAsc/package.json | 4 + .../date-fns/esm/fp/compareDesc/index.d.ts | 4 + .../date-fns/esm/fp/compareDesc/index.js | 5 + .../date-fns/esm/fp/compareDesc/index.js.flow | 56 + .../date-fns/esm/fp/compareDesc/package.json | 4 + .../fp/differenceInBusinessDays/index.d.ts | 4 + .../esm/fp/differenceInBusinessDays/index.js | 5 + .../fp/differenceInBusinessDays/index.js.flow | 56 + .../fp/differenceInBusinessDays/package.json | 4 + .../fp/differenceInCalendarDays/index.d.ts | 4 + .../esm/fp/differenceInCalendarDays/index.js | 5 + .../fp/differenceInCalendarDays/index.js.flow | 56 + .../fp/differenceInCalendarDays/package.json | 4 + .../index.d.ts | 4 + .../differenceInCalendarISOWeekYears/index.js | 5 + .../index.js.flow | 56 + .../package.json | 4 + .../differenceInCalendarISOWeeks/index.d.ts | 4 + .../fp/differenceInCalendarISOWeeks/index.js | 5 + .../index.js.flow | 56 + .../differenceInCalendarISOWeeks/package.json | 4 + .../fp/differenceInCalendarMonths/index.d.ts | 4 + .../fp/differenceInCalendarMonths/index.js | 5 + .../differenceInCalendarMonths/index.js.flow | 56 + .../differenceInCalendarMonths/package.json | 4 + .../differenceInCalendarQuarters/index.d.ts | 4 + .../fp/differenceInCalendarQuarters/index.js | 5 + .../index.js.flow | 56 + .../differenceInCalendarQuarters/package.json | 4 + .../fp/differenceInCalendarWeeks/index.d.ts | 4 + .../esm/fp/differenceInCalendarWeeks/index.js | 5 + .../differenceInCalendarWeeks/index.js.flow | 56 + .../fp/differenceInCalendarWeeks/package.json | 4 + .../index.d.ts | 4 + .../index.js | 5 + .../index.js.flow | 73 + .../package.json | 4 + .../fp/differenceInCalendarYears/index.d.ts | 4 + .../esm/fp/differenceInCalendarYears/index.js | 5 + .../differenceInCalendarYears/index.js.flow | 56 + .../fp/differenceInCalendarYears/package.json | 4 + .../esm/fp/differenceInDays/index.d.ts | 4 + .../date-fns/esm/fp/differenceInDays/index.js | 5 + .../esm/fp/differenceInDays/index.js.flow | 56 + .../esm/fp/differenceInDays/package.json | 4 + .../esm/fp/differenceInHours/index.d.ts | 4 + .../esm/fp/differenceInHours/index.js | 5 + .../esm/fp/differenceInHours/index.js.flow | 56 + .../esm/fp/differenceInHours/package.json | 4 + .../fp/differenceInISOWeekYears/index.d.ts | 4 + .../esm/fp/differenceInISOWeekYears/index.js | 5 + .../fp/differenceInISOWeekYears/index.js.flow | 56 + .../fp/differenceInISOWeekYears/package.json | 4 + .../fp/differenceInMilliseconds/index.d.ts | 4 + .../esm/fp/differenceInMilliseconds/index.js | 5 + .../fp/differenceInMilliseconds/index.js.flow | 56 + .../fp/differenceInMilliseconds/package.json | 4 + .../esm/fp/differenceInMinutes/index.d.ts | 4 + .../esm/fp/differenceInMinutes/index.js | 5 + .../esm/fp/differenceInMinutes/index.js.flow | 56 + .../esm/fp/differenceInMinutes/package.json | 4 + .../esm/fp/differenceInMonths/index.d.ts | 4 + .../esm/fp/differenceInMonths/index.js | 5 + .../esm/fp/differenceInMonths/index.js.flow | 56 + .../esm/fp/differenceInMonths/package.json | 4 + .../esm/fp/differenceInQuarters/index.d.ts | 4 + .../esm/fp/differenceInQuarters/index.js | 5 + .../esm/fp/differenceInQuarters/index.js.flow | 56 + .../esm/fp/differenceInQuarters/package.json | 4 + .../esm/fp/differenceInSeconds/index.d.ts | 4 + .../esm/fp/differenceInSeconds/index.js | 5 + .../esm/fp/differenceInSeconds/index.js.flow | 56 + .../esm/fp/differenceInSeconds/package.json | 4 + .../esm/fp/differenceInWeeks/index.d.ts | 4 + .../esm/fp/differenceInWeeks/index.js | 5 + .../esm/fp/differenceInWeeks/index.js.flow | 56 + .../esm/fp/differenceInWeeks/package.json | 4 + .../esm/fp/differenceInYears/index.d.ts | 4 + .../esm/fp/differenceInYears/index.js | 5 + .../esm/fp/differenceInYears/index.js.flow | 56 + .../esm/fp/differenceInYears/package.json | 4 + .../esm/fp/eachDayOfInterval/index.d.ts | 4 + .../esm/fp/eachDayOfInterval/index.js | 5 + .../esm/fp/eachDayOfInterval/index.js.flow | 52 + .../esm/fp/eachDayOfInterval/package.json | 4 + .../eachDayOfIntervalWithOptions/index.d.ts | 4 + .../fp/eachDayOfIntervalWithOptions/index.js | 5 + .../index.js.flow | 62 + .../eachDayOfIntervalWithOptions/package.json | 4 + .../esm/fp/eachHourOfInterval/index.d.ts | 4 + .../esm/fp/eachHourOfInterval/index.js | 5 + .../esm/fp/eachHourOfInterval/index.js.flow | 52 + .../esm/fp/eachHourOfInterval/package.json | 4 + .../eachHourOfIntervalWithOptions/index.d.ts | 4 + .../fp/eachHourOfIntervalWithOptions/index.js | 5 + .../index.js.flow | 62 + .../package.json | 4 + .../esm/fp/eachMonthOfInterval/index.d.ts | 4 + .../esm/fp/eachMonthOfInterval/index.js | 5 + .../esm/fp/eachMonthOfInterval/index.js.flow | 52 + .../esm/fp/eachMonthOfInterval/package.json | 4 + .../esm/fp/eachQuarterOfInterval/index.d.ts | 4 + .../esm/fp/eachQuarterOfInterval/index.js | 5 + .../fp/eachQuarterOfInterval/index.js.flow | 52 + .../esm/fp/eachQuarterOfInterval/package.json | 4 + .../esm/fp/eachWeekOfInterval/index.d.ts | 4 + .../esm/fp/eachWeekOfInterval/index.js | 5 + .../esm/fp/eachWeekOfInterval/index.js.flow | 52 + .../esm/fp/eachWeekOfInterval/package.json | 4 + .../eachWeekOfIntervalWithOptions/index.d.ts | 4 + .../fp/eachWeekOfIntervalWithOptions/index.js | 5 + .../index.js.flow | 63 + .../package.json | 4 + .../esm/fp/eachWeekendOfInterval/index.d.ts | 4 + .../esm/fp/eachWeekendOfInterval/index.js | 5 + .../fp/eachWeekendOfInterval/index.js.flow | 52 + .../esm/fp/eachWeekendOfInterval/package.json | 4 + .../esm/fp/eachWeekendOfMonth/index.d.ts | 4 + .../esm/fp/eachWeekendOfMonth/index.js | 5 + .../esm/fp/eachWeekendOfMonth/index.js.flow | 52 + .../esm/fp/eachWeekendOfMonth/package.json | 4 + .../esm/fp/eachWeekendOfYear/index.d.ts | 4 + .../esm/fp/eachWeekendOfYear/index.js | 5 + .../esm/fp/eachWeekendOfYear/index.js.flow | 52 + .../esm/fp/eachWeekendOfYear/package.json | 4 + .../esm/fp/eachYearOfInterval/index.d.ts | 4 + .../esm/fp/eachYearOfInterval/index.js | 5 + .../esm/fp/eachYearOfInterval/index.js.flow | 52 + .../esm/fp/eachYearOfInterval/package.json | 4 + .../date-fns/esm/fp/endOfDay/index.d.ts | 4 + .../date-fns/esm/fp/endOfDay/index.js | 5 + .../date-fns/esm/fp/endOfDay/index.js.flow | 52 + .../date-fns/esm/fp/endOfDay/package.json | 4 + .../date-fns/esm/fp/endOfDecade/index.d.ts | 4 + .../date-fns/esm/fp/endOfDecade/index.js | 5 + .../date-fns/esm/fp/endOfDecade/index.js.flow | 52 + .../date-fns/esm/fp/endOfDecade/package.json | 4 + .../esm/fp/endOfDecadeWithOptions/index.d.ts | 4 + .../esm/fp/endOfDecadeWithOptions/index.js | 5 + .../fp/endOfDecadeWithOptions/index.js.flow | 62 + .../fp/endOfDecadeWithOptions/package.json | 4 + .../date-fns/esm/fp/endOfHour/index.d.ts | 4 + .../date-fns/esm/fp/endOfHour/index.js | 5 + .../date-fns/esm/fp/endOfHour/index.js.flow | 52 + .../date-fns/esm/fp/endOfHour/package.json | 4 + .../date-fns/esm/fp/endOfISOWeek/index.d.ts | 4 + .../date-fns/esm/fp/endOfISOWeek/index.js | 5 + .../esm/fp/endOfISOWeek/index.js.flow | 52 + .../date-fns/esm/fp/endOfISOWeek/package.json | 4 + .../esm/fp/endOfISOWeekYear/index.d.ts | 4 + .../date-fns/esm/fp/endOfISOWeekYear/index.js | 5 + .../esm/fp/endOfISOWeekYear/index.js.flow | 52 + .../esm/fp/endOfISOWeekYear/package.json | 4 + .../date-fns/esm/fp/endOfMinute/index.d.ts | 4 + .../date-fns/esm/fp/endOfMinute/index.js | 5 + .../date-fns/esm/fp/endOfMinute/index.js.flow | 52 + .../date-fns/esm/fp/endOfMinute/package.json | 4 + .../date-fns/esm/fp/endOfMonth/index.d.ts | 4 + .../date-fns/esm/fp/endOfMonth/index.js | 5 + .../date-fns/esm/fp/endOfMonth/index.js.flow | 52 + .../date-fns/esm/fp/endOfMonth/package.json | 4 + .../date-fns/esm/fp/endOfQuarter/index.d.ts | 4 + .../date-fns/esm/fp/endOfQuarter/index.js | 5 + .../esm/fp/endOfQuarter/index.js.flow | 52 + .../date-fns/esm/fp/endOfQuarter/package.json | 4 + .../date-fns/esm/fp/endOfSecond/index.d.ts | 4 + .../date-fns/esm/fp/endOfSecond/index.js | 5 + .../date-fns/esm/fp/endOfSecond/index.js.flow | 52 + .../date-fns/esm/fp/endOfSecond/package.json | 4 + .../date-fns/esm/fp/endOfWeek/index.d.ts | 4 + .../date-fns/esm/fp/endOfWeek/index.js | 5 + .../date-fns/esm/fp/endOfWeek/index.js.flow | 52 + .../date-fns/esm/fp/endOfWeek/package.json | 4 + .../esm/fp/endOfWeekWithOptions/index.d.ts | 4 + .../esm/fp/endOfWeekWithOptions/index.js | 5 + .../esm/fp/endOfWeekWithOptions/index.js.flow | 63 + .../esm/fp/endOfWeekWithOptions/package.json | 4 + .../date-fns/esm/fp/endOfYear/index.d.ts | 4 + .../date-fns/esm/fp/endOfYear/index.js | 5 + .../date-fns/esm/fp/endOfYear/index.js.flow | 52 + .../date-fns/esm/fp/endOfYear/package.json | 4 + .../date-fns/esm/fp/format/index.d.ts | 4 + node_modules/date-fns/esm/fp/format/index.js | 5 + .../date-fns/esm/fp/format/index.js.flow | 56 + .../date-fns/esm/fp/format/package.json | 4 + .../date-fns/esm/fp/formatDistance/index.d.ts | 4 + .../date-fns/esm/fp/formatDistance/index.js | 5 + .../esm/fp/formatDistance/index.js.flow | 56 + .../esm/fp/formatDistance/package.json | 4 + .../esm/fp/formatDistanceStrict/index.d.ts | 4 + .../esm/fp/formatDistanceStrict/index.js | 5 + .../esm/fp/formatDistanceStrict/index.js.flow | 56 + .../esm/fp/formatDistanceStrict/package.json | 4 + .../index.d.ts | 4 + .../formatDistanceStrictWithOptions/index.js | 5 + .../index.js.flow | 75 + .../package.json | 4 + .../fp/formatDistanceWithOptions/index.d.ts | 4 + .../esm/fp/formatDistanceWithOptions/index.js | 5 + .../formatDistanceWithOptions/index.js.flow | 74 + .../fp/formatDistanceWithOptions/package.json | 4 + .../date-fns/esm/fp/formatDuration/index.d.ts | 4 + .../date-fns/esm/fp/formatDuration/index.js | 5 + .../esm/fp/formatDuration/index.js.flow | 52 + .../esm/fp/formatDuration/package.json | 4 + .../fp/formatDurationWithOptions/index.d.ts | 4 + .../esm/fp/formatDurationWithOptions/index.js | 5 + .../formatDurationWithOptions/index.js.flow | 65 + .../fp/formatDurationWithOptions/package.json | 4 + .../date-fns/esm/fp/formatISO/index.d.ts | 4 + .../date-fns/esm/fp/formatISO/index.js | 5 + .../date-fns/esm/fp/formatISO/index.js.flow | 52 + .../date-fns/esm/fp/formatISO/package.json | 4 + .../date-fns/esm/fp/formatISO9075/index.d.ts | 4 + .../date-fns/esm/fp/formatISO9075/index.js | 5 + .../esm/fp/formatISO9075/index.js.flow | 52 + .../esm/fp/formatISO9075/package.json | 4 + .../fp/formatISO9075WithOptions/index.d.ts | 4 + .../esm/fp/formatISO9075WithOptions/index.js | 5 + .../fp/formatISO9075WithOptions/index.js.flow | 63 + .../fp/formatISO9075WithOptions/package.json | 4 + .../esm/fp/formatISODuration/index.d.ts | 4 + .../esm/fp/formatISODuration/index.js | 5 + .../esm/fp/formatISODuration/index.js.flow | 52 + .../esm/fp/formatISODuration/package.json | 4 + .../esm/fp/formatISOWithOptions/index.d.ts | 4 + .../esm/fp/formatISOWithOptions/index.js | 5 + .../esm/fp/formatISOWithOptions/index.js.flow | 63 + .../esm/fp/formatISOWithOptions/package.json | 4 + .../date-fns/esm/fp/formatRFC3339/index.d.ts | 4 + .../date-fns/esm/fp/formatRFC3339/index.js | 5 + .../esm/fp/formatRFC3339/index.js.flow | 52 + .../esm/fp/formatRFC3339/package.json | 4 + .../fp/formatRFC3339WithOptions/index.d.ts | 4 + .../esm/fp/formatRFC3339WithOptions/index.js | 5 + .../fp/formatRFC3339WithOptions/index.js.flow | 62 + .../fp/formatRFC3339WithOptions/package.json | 4 + .../date-fns/esm/fp/formatRFC7231/index.d.ts | 4 + .../date-fns/esm/fp/formatRFC7231/index.js | 5 + .../esm/fp/formatRFC7231/index.js.flow | 52 + .../esm/fp/formatRFC7231/package.json | 4 + .../date-fns/esm/fp/formatRelative/index.d.ts | 4 + .../date-fns/esm/fp/formatRelative/index.js | 5 + .../esm/fp/formatRelative/index.js.flow | 56 + .../esm/fp/formatRelative/package.json | 4 + .../fp/formatRelativeWithOptions/index.d.ts | 4 + .../esm/fp/formatRelativeWithOptions/index.js | 5 + .../formatRelativeWithOptions/index.js.flow | 73 + .../fp/formatRelativeWithOptions/package.json | 4 + .../esm/fp/formatWithOptions/index.d.ts | 4 + .../esm/fp/formatWithOptions/index.js | 5 + .../esm/fp/formatWithOptions/index.js.flow | 76 + .../esm/fp/formatWithOptions/package.json | 4 + .../date-fns/esm/fp/fromUnixTime/index.d.ts | 4 + .../date-fns/esm/fp/fromUnixTime/index.js | 5 + .../esm/fp/fromUnixTime/index.js.flow | 52 + .../date-fns/esm/fp/fromUnixTime/package.json | 4 + .../date-fns/esm/fp/getDate/index.d.ts | 4 + node_modules/date-fns/esm/fp/getDate/index.js | 5 + .../date-fns/esm/fp/getDate/index.js.flow | 52 + .../date-fns/esm/fp/getDate/package.json | 4 + .../date-fns/esm/fp/getDay/index.d.ts | 4 + node_modules/date-fns/esm/fp/getDay/index.js | 5 + .../date-fns/esm/fp/getDay/index.js.flow | 52 + .../date-fns/esm/fp/getDay/package.json | 4 + .../date-fns/esm/fp/getDayOfYear/index.d.ts | 4 + .../date-fns/esm/fp/getDayOfYear/index.js | 5 + .../esm/fp/getDayOfYear/index.js.flow | 52 + .../date-fns/esm/fp/getDayOfYear/package.json | 4 + .../date-fns/esm/fp/getDaysInMonth/index.d.ts | 4 + .../date-fns/esm/fp/getDaysInMonth/index.js | 5 + .../esm/fp/getDaysInMonth/index.js.flow | 52 + .../esm/fp/getDaysInMonth/package.json | 4 + .../date-fns/esm/fp/getDaysInYear/index.d.ts | 4 + .../date-fns/esm/fp/getDaysInYear/index.js | 5 + .../esm/fp/getDaysInYear/index.js.flow | 52 + .../esm/fp/getDaysInYear/package.json | 4 + .../date-fns/esm/fp/getDecade/index.d.ts | 4 + .../date-fns/esm/fp/getDecade/index.js | 5 + .../date-fns/esm/fp/getDecade/index.js.flow | 52 + .../date-fns/esm/fp/getDecade/package.json | 4 + .../date-fns/esm/fp/getHours/index.d.ts | 4 + .../date-fns/esm/fp/getHours/index.js | 5 + .../date-fns/esm/fp/getHours/index.js.flow | 52 + .../date-fns/esm/fp/getHours/package.json | 4 + .../date-fns/esm/fp/getISODay/index.d.ts | 4 + .../date-fns/esm/fp/getISODay/index.js | 5 + .../date-fns/esm/fp/getISODay/index.js.flow | 52 + .../date-fns/esm/fp/getISODay/package.json | 4 + .../date-fns/esm/fp/getISOWeek/index.d.ts | 4 + .../date-fns/esm/fp/getISOWeek/index.js | 5 + .../date-fns/esm/fp/getISOWeek/index.js.flow | 52 + .../date-fns/esm/fp/getISOWeek/package.json | 4 + .../date-fns/esm/fp/getISOWeekYear/index.d.ts | 4 + .../date-fns/esm/fp/getISOWeekYear/index.js | 5 + .../esm/fp/getISOWeekYear/index.js.flow | 52 + .../esm/fp/getISOWeekYear/package.json | 4 + .../esm/fp/getISOWeeksInYear/index.d.ts | 4 + .../esm/fp/getISOWeeksInYear/index.js | 5 + .../esm/fp/getISOWeeksInYear/index.js.flow | 52 + .../esm/fp/getISOWeeksInYear/package.json | 4 + .../esm/fp/getMilliseconds/index.d.ts | 4 + .../date-fns/esm/fp/getMilliseconds/index.js | 5 + .../esm/fp/getMilliseconds/index.js.flow | 52 + .../esm/fp/getMilliseconds/package.json | 4 + .../date-fns/esm/fp/getMinutes/index.d.ts | 4 + .../date-fns/esm/fp/getMinutes/index.js | 5 + .../date-fns/esm/fp/getMinutes/index.js.flow | 52 + .../date-fns/esm/fp/getMinutes/package.json | 4 + .../date-fns/esm/fp/getMonth/index.d.ts | 4 + .../date-fns/esm/fp/getMonth/index.js | 5 + .../date-fns/esm/fp/getMonth/index.js.flow | 52 + .../date-fns/esm/fp/getMonth/package.json | 4 + .../getOverlappingDaysInIntervals/index.d.ts | 4 + .../fp/getOverlappingDaysInIntervals/index.js | 5 + .../index.js.flow | 56 + .../package.json | 4 + .../date-fns/esm/fp/getQuarter/index.d.ts | 4 + .../date-fns/esm/fp/getQuarter/index.js | 5 + .../date-fns/esm/fp/getQuarter/index.js.flow | 52 + .../date-fns/esm/fp/getQuarter/package.json | 4 + .../date-fns/esm/fp/getSeconds/index.d.ts | 4 + .../date-fns/esm/fp/getSeconds/index.js | 5 + .../date-fns/esm/fp/getSeconds/index.js.flow | 52 + .../date-fns/esm/fp/getSeconds/package.json | 4 + .../date-fns/esm/fp/getTime/index.d.ts | 4 + node_modules/date-fns/esm/fp/getTime/index.js | 5 + .../date-fns/esm/fp/getTime/index.js.flow | 52 + .../date-fns/esm/fp/getTime/package.json | 4 + .../date-fns/esm/fp/getUnixTime/index.d.ts | 4 + .../date-fns/esm/fp/getUnixTime/index.js | 5 + .../date-fns/esm/fp/getUnixTime/index.js.flow | 52 + .../date-fns/esm/fp/getUnixTime/package.json | 4 + .../date-fns/esm/fp/getWeek/index.d.ts | 4 + node_modules/date-fns/esm/fp/getWeek/index.js | 5 + .../date-fns/esm/fp/getWeek/index.js.flow | 52 + .../date-fns/esm/fp/getWeek/package.json | 4 + .../date-fns/esm/fp/getWeekOfMonth/index.d.ts | 4 + .../date-fns/esm/fp/getWeekOfMonth/index.js | 5 + .../esm/fp/getWeekOfMonth/index.js.flow | 52 + .../esm/fp/getWeekOfMonth/package.json | 4 + .../fp/getWeekOfMonthWithOptions/index.d.ts | 4 + .../esm/fp/getWeekOfMonthWithOptions/index.js | 5 + .../getWeekOfMonthWithOptions/index.js.flow | 63 + .../fp/getWeekOfMonthWithOptions/package.json | 4 + .../esm/fp/getWeekWithOptions/index.d.ts | 4 + .../esm/fp/getWeekWithOptions/index.js | 5 + .../esm/fp/getWeekWithOptions/index.js.flow | 64 + .../esm/fp/getWeekWithOptions/package.json | 4 + .../date-fns/esm/fp/getWeekYear/index.d.ts | 4 + .../date-fns/esm/fp/getWeekYear/index.js | 5 + .../date-fns/esm/fp/getWeekYear/index.js.flow | 52 + .../date-fns/esm/fp/getWeekYear/package.json | 4 + .../esm/fp/getWeekYearWithOptions/index.d.ts | 4 + .../esm/fp/getWeekYearWithOptions/index.js | 5 + .../fp/getWeekYearWithOptions/index.js.flow | 64 + .../fp/getWeekYearWithOptions/package.json | 4 + .../esm/fp/getWeeksInMonth/index.d.ts | 4 + .../date-fns/esm/fp/getWeeksInMonth/index.js | 5 + .../esm/fp/getWeeksInMonth/index.js.flow | 52 + .../esm/fp/getWeeksInMonth/package.json | 4 + .../fp/getWeeksInMonthWithOptions/index.d.ts | 4 + .../fp/getWeeksInMonthWithOptions/index.js | 5 + .../getWeeksInMonthWithOptions/index.js.flow | 63 + .../getWeeksInMonthWithOptions/package.json | 4 + .../date-fns/esm/fp/getYear/index.d.ts | 4 + node_modules/date-fns/esm/fp/getYear/index.js | 5 + .../date-fns/esm/fp/getYear/index.js.flow | 52 + .../date-fns/esm/fp/getYear/package.json | 4 + node_modules/date-fns/esm/fp/index.js | 209 + node_modules/date-fns/esm/fp/index.js.flow | 554 + .../esm/fp/intervalToDuration/index.d.ts | 4 + .../esm/fp/intervalToDuration/index.js | 5 + .../esm/fp/intervalToDuration/index.js.flow | 52 + .../esm/fp/intervalToDuration/package.json | 4 + .../date-fns/esm/fp/isAfter/index.d.ts | 4 + node_modules/date-fns/esm/fp/isAfter/index.js | 5 + .../date-fns/esm/fp/isAfter/index.js.flow | 56 + .../date-fns/esm/fp/isAfter/package.json | 4 + .../date-fns/esm/fp/isBefore/index.d.ts | 4 + .../date-fns/esm/fp/isBefore/index.js | 5 + .../date-fns/esm/fp/isBefore/index.js.flow | 56 + .../date-fns/esm/fp/isBefore/package.json | 4 + .../date-fns/esm/fp/isDate/index.d.ts | 4 + node_modules/date-fns/esm/fp/isDate/index.js | 5 + .../date-fns/esm/fp/isDate/index.js.flow | 52 + .../date-fns/esm/fp/isDate/package.json | 4 + .../esm/fp/isDateWithOptions/index.d.ts | 4 + .../esm/fp/isDateWithOptions/index.js | 5 + .../esm/fp/isDateWithOptions/index.js.flow | 57 + .../esm/fp/isDateWithOptions/package.json | 4 + .../date-fns/esm/fp/isEqual/index.d.ts | 4 + node_modules/date-fns/esm/fp/isEqual/index.js | 5 + .../date-fns/esm/fp/isEqual/index.js.flow | 56 + .../date-fns/esm/fp/isEqual/package.json | 4 + .../date-fns/esm/fp/isExists/index.d.ts | 4 + .../date-fns/esm/fp/isExists/index.js | 5 + .../date-fns/esm/fp/isExists/index.js.flow | 65 + .../date-fns/esm/fp/isExists/package.json | 4 + .../esm/fp/isFirstDayOfMonth/index.d.ts | 4 + .../esm/fp/isFirstDayOfMonth/index.js | 5 + .../esm/fp/isFirstDayOfMonth/index.js.flow | 52 + .../esm/fp/isFirstDayOfMonth/package.json | 4 + .../date-fns/esm/fp/isFriday/index.d.ts | 4 + .../date-fns/esm/fp/isFriday/index.js | 5 + .../date-fns/esm/fp/isFriday/index.js.flow | 52 + .../date-fns/esm/fp/isFriday/package.json | 4 + .../esm/fp/isLastDayOfMonth/index.d.ts | 4 + .../date-fns/esm/fp/isLastDayOfMonth/index.js | 5 + .../esm/fp/isLastDayOfMonth/index.js.flow | 52 + .../esm/fp/isLastDayOfMonth/package.json | 4 + .../date-fns/esm/fp/isLeapYear/index.d.ts | 4 + .../date-fns/esm/fp/isLeapYear/index.js | 5 + .../date-fns/esm/fp/isLeapYear/index.js.flow | 52 + .../date-fns/esm/fp/isLeapYear/package.json | 4 + .../date-fns/esm/fp/isMatch/index.d.ts | 4 + node_modules/date-fns/esm/fp/isMatch/index.js | 5 + .../date-fns/esm/fp/isMatch/index.js.flow | 56 + .../date-fns/esm/fp/isMatch/package.json | 4 + .../esm/fp/isMatchWithOptions/index.d.ts | 4 + .../esm/fp/isMatchWithOptions/index.js | 5 + .../esm/fp/isMatchWithOptions/index.js.flow | 76 + .../esm/fp/isMatchWithOptions/package.json | 4 + .../date-fns/esm/fp/isMonday/index.d.ts | 4 + .../date-fns/esm/fp/isMonday/index.js | 5 + .../date-fns/esm/fp/isMonday/index.js.flow | 52 + .../date-fns/esm/fp/isMonday/package.json | 4 + .../date-fns/esm/fp/isSameDay/index.d.ts | 4 + .../date-fns/esm/fp/isSameDay/index.js | 5 + .../date-fns/esm/fp/isSameDay/index.js.flow | 56 + .../date-fns/esm/fp/isSameDay/package.json | 4 + .../date-fns/esm/fp/isSameHour/index.d.ts | 4 + .../date-fns/esm/fp/isSameHour/index.js | 5 + .../date-fns/esm/fp/isSameHour/index.js.flow | 56 + .../date-fns/esm/fp/isSameHour/package.json | 4 + .../date-fns/esm/fp/isSameISOWeek/index.d.ts | 4 + .../date-fns/esm/fp/isSameISOWeek/index.js | 5 + .../esm/fp/isSameISOWeek/index.js.flow | 56 + .../esm/fp/isSameISOWeek/package.json | 4 + .../esm/fp/isSameISOWeekYear/index.d.ts | 4 + .../esm/fp/isSameISOWeekYear/index.js | 5 + .../esm/fp/isSameISOWeekYear/index.js.flow | 56 + .../esm/fp/isSameISOWeekYear/package.json | 4 + .../date-fns/esm/fp/isSameMinute/index.d.ts | 4 + .../date-fns/esm/fp/isSameMinute/index.js | 5 + .../esm/fp/isSameMinute/index.js.flow | 56 + .../date-fns/esm/fp/isSameMinute/package.json | 4 + .../date-fns/esm/fp/isSameMonth/index.d.ts | 4 + .../date-fns/esm/fp/isSameMonth/index.js | 5 + .../date-fns/esm/fp/isSameMonth/index.js.flow | 56 + .../date-fns/esm/fp/isSameMonth/package.json | 4 + .../date-fns/esm/fp/isSameQuarter/index.d.ts | 4 + .../date-fns/esm/fp/isSameQuarter/index.js | 5 + .../esm/fp/isSameQuarter/index.js.flow | 56 + .../esm/fp/isSameQuarter/package.json | 4 + .../date-fns/esm/fp/isSameSecond/index.d.ts | 4 + .../date-fns/esm/fp/isSameSecond/index.js | 5 + .../esm/fp/isSameSecond/index.js.flow | 56 + .../date-fns/esm/fp/isSameSecond/package.json | 4 + .../date-fns/esm/fp/isSameWeek/index.d.ts | 4 + .../date-fns/esm/fp/isSameWeek/index.js | 5 + .../date-fns/esm/fp/isSameWeek/index.js.flow | 56 + .../date-fns/esm/fp/isSameWeek/package.json | 4 + .../esm/fp/isSameWeekWithOptions/index.d.ts | 4 + .../esm/fp/isSameWeekWithOptions/index.js | 5 + .../fp/isSameWeekWithOptions/index.js.flow | 73 + .../esm/fp/isSameWeekWithOptions/package.json | 4 + .../date-fns/esm/fp/isSameYear/index.d.ts | 4 + .../date-fns/esm/fp/isSameYear/index.js | 5 + .../date-fns/esm/fp/isSameYear/index.js.flow | 56 + .../date-fns/esm/fp/isSameYear/package.json | 4 + .../date-fns/esm/fp/isSaturday/index.d.ts | 4 + .../date-fns/esm/fp/isSaturday/index.js | 5 + .../date-fns/esm/fp/isSaturday/index.js.flow | 52 + .../date-fns/esm/fp/isSaturday/package.json | 4 + .../date-fns/esm/fp/isSunday/index.d.ts | 4 + .../date-fns/esm/fp/isSunday/index.js | 5 + .../date-fns/esm/fp/isSunday/index.js.flow | 52 + .../date-fns/esm/fp/isSunday/package.json | 4 + .../date-fns/esm/fp/isThursday/index.d.ts | 4 + .../date-fns/esm/fp/isThursday/index.js | 5 + .../date-fns/esm/fp/isThursday/index.js.flow | 52 + .../date-fns/esm/fp/isThursday/package.json | 4 + .../date-fns/esm/fp/isTuesday/index.d.ts | 4 + .../date-fns/esm/fp/isTuesday/index.js | 5 + .../date-fns/esm/fp/isTuesday/index.js.flow | 52 + .../date-fns/esm/fp/isTuesday/package.json | 4 + .../date-fns/esm/fp/isValid/index.d.ts | 4 + node_modules/date-fns/esm/fp/isValid/index.js | 5 + .../date-fns/esm/fp/isValid/index.js.flow | 52 + .../date-fns/esm/fp/isValid/package.json | 4 + .../date-fns/esm/fp/isWednesday/index.d.ts | 4 + .../date-fns/esm/fp/isWednesday/index.js | 5 + .../date-fns/esm/fp/isWednesday/index.js.flow | 52 + .../date-fns/esm/fp/isWednesday/package.json | 4 + .../date-fns/esm/fp/isWeekend/index.d.ts | 4 + .../date-fns/esm/fp/isWeekend/index.js | 5 + .../date-fns/esm/fp/isWeekend/index.js.flow | 52 + .../date-fns/esm/fp/isWeekend/package.json | 4 + .../esm/fp/isWithinInterval/index.d.ts | 4 + .../date-fns/esm/fp/isWithinInterval/index.js | 5 + .../esm/fp/isWithinInterval/index.js.flow | 56 + .../esm/fp/isWithinInterval/package.json | 4 + .../esm/fp/lastDayOfDecade/index.d.ts | 4 + .../date-fns/esm/fp/lastDayOfDecade/index.js | 5 + .../esm/fp/lastDayOfDecade/index.js.flow | 52 + .../esm/fp/lastDayOfDecade/package.json | 4 + .../esm/fp/lastDayOfISOWeek/index.d.ts | 4 + .../date-fns/esm/fp/lastDayOfISOWeek/index.js | 5 + .../esm/fp/lastDayOfISOWeek/index.js.flow | 52 + .../esm/fp/lastDayOfISOWeek/package.json | 4 + .../esm/fp/lastDayOfISOWeekYear/index.d.ts | 4 + .../esm/fp/lastDayOfISOWeekYear/index.js | 5 + .../esm/fp/lastDayOfISOWeekYear/index.js.flow | 52 + .../esm/fp/lastDayOfISOWeekYear/package.json | 4 + .../date-fns/esm/fp/lastDayOfMonth/index.d.ts | 4 + .../date-fns/esm/fp/lastDayOfMonth/index.js | 5 + .../esm/fp/lastDayOfMonth/index.js.flow | 52 + .../esm/fp/lastDayOfMonth/package.json | 4 + .../esm/fp/lastDayOfQuarter/index.d.ts | 4 + .../date-fns/esm/fp/lastDayOfQuarter/index.js | 5 + .../esm/fp/lastDayOfQuarter/index.js.flow | 52 + .../esm/fp/lastDayOfQuarter/package.json | 4 + .../fp/lastDayOfQuarterWithOptions/index.d.ts | 4 + .../fp/lastDayOfQuarterWithOptions/index.js | 5 + .../lastDayOfQuarterWithOptions/index.js.flow | 62 + .../lastDayOfQuarterWithOptions/package.json | 4 + .../date-fns/esm/fp/lastDayOfWeek/index.d.ts | 4 + .../date-fns/esm/fp/lastDayOfWeek/index.js | 5 + .../esm/fp/lastDayOfWeek/index.js.flow | 52 + .../esm/fp/lastDayOfWeek/package.json | 4 + .../fp/lastDayOfWeekWithOptions/index.d.ts | 4 + .../esm/fp/lastDayOfWeekWithOptions/index.js | 5 + .../fp/lastDayOfWeekWithOptions/index.js.flow | 63 + .../fp/lastDayOfWeekWithOptions/package.json | 4 + .../date-fns/esm/fp/lastDayOfYear/index.d.ts | 4 + .../date-fns/esm/fp/lastDayOfYear/index.js | 5 + .../esm/fp/lastDayOfYear/index.js.flow | 52 + .../esm/fp/lastDayOfYear/package.json | 4 + .../date-fns/esm/fp/lightFormat/index.d.ts | 4 + .../date-fns/esm/fp/lightFormat/index.js | 5 + .../date-fns/esm/fp/lightFormat/index.js.flow | 56 + .../date-fns/esm/fp/lightFormat/package.json | 4 + node_modules/date-fns/esm/fp/max/index.d.ts | 4 + node_modules/date-fns/esm/fp/max/index.js | 5 + .../date-fns/esm/fp/max/index.js.flow | 52 + node_modules/date-fns/esm/fp/max/package.json | 4 + node_modules/date-fns/esm/fp/min/index.d.ts | 4 + node_modules/date-fns/esm/fp/min/index.js | 5 + .../date-fns/esm/fp/min/index.js.flow | 52 + node_modules/date-fns/esm/fp/min/package.json | 4 + node_modules/date-fns/esm/fp/package.json | 4 + node_modules/date-fns/esm/fp/parse/index.d.ts | 4 + node_modules/date-fns/esm/fp/parse/index.js | 5 + .../date-fns/esm/fp/parse/index.js.flow | 65 + .../date-fns/esm/fp/parse/package.json | 4 + .../date-fns/esm/fp/parseISO/index.d.ts | 4 + .../date-fns/esm/fp/parseISO/index.js | 5 + .../date-fns/esm/fp/parseISO/index.js.flow | 52 + .../date-fns/esm/fp/parseISO/package.json | 4 + .../esm/fp/parseISOWithOptions/index.d.ts | 4 + .../esm/fp/parseISOWithOptions/index.js | 5 + .../esm/fp/parseISOWithOptions/index.js.flow | 62 + .../esm/fp/parseISOWithOptions/package.json | 4 + .../date-fns/esm/fp/parseJSON/index.d.ts | 4 + .../date-fns/esm/fp/parseJSON/index.js | 5 + .../date-fns/esm/fp/parseJSON/index.js.flow | 52 + .../date-fns/esm/fp/parseJSON/package.json | 4 + .../esm/fp/parseWithOptions/index.d.ts | 4 + .../date-fns/esm/fp/parseWithOptions/index.js | 5 + .../esm/fp/parseWithOptions/index.js.flow | 92 + .../esm/fp/parseWithOptions/package.json | 4 + .../esm/fp/roundToNearestMinutes/index.d.ts | 4 + .../esm/fp/roundToNearestMinutes/index.js | 5 + .../fp/roundToNearestMinutes/index.js.flow | 52 + .../esm/fp/roundToNearestMinutes/package.json | 4 + .../index.d.ts | 4 + .../roundToNearestMinutesWithOptions/index.js | 5 + .../index.js.flow | 62 + .../package.json | 4 + node_modules/date-fns/esm/fp/set/index.d.ts | 4 + node_modules/date-fns/esm/fp/set/index.js | 5 + .../date-fns/esm/fp/set/index.js.flow | 68 + node_modules/date-fns/esm/fp/set/package.json | 4 + .../date-fns/esm/fp/setDate/index.d.ts | 4 + node_modules/date-fns/esm/fp/setDate/index.js | 5 + .../date-fns/esm/fp/setDate/index.js.flow | 56 + .../date-fns/esm/fp/setDate/package.json | 4 + .../date-fns/esm/fp/setDay/index.d.ts | 4 + node_modules/date-fns/esm/fp/setDay/index.js | 5 + .../date-fns/esm/fp/setDay/index.js.flow | 56 + .../date-fns/esm/fp/setDay/package.json | 4 + .../date-fns/esm/fp/setDayOfYear/index.d.ts | 4 + .../date-fns/esm/fp/setDayOfYear/index.js | 5 + .../esm/fp/setDayOfYear/index.js.flow | 56 + .../date-fns/esm/fp/setDayOfYear/package.json | 4 + .../esm/fp/setDayWithOptions/index.d.ts | 4 + .../esm/fp/setDayWithOptions/index.js | 5 + .../esm/fp/setDayWithOptions/index.js.flow | 73 + .../esm/fp/setDayWithOptions/package.json | 4 + .../date-fns/esm/fp/setHours/index.d.ts | 4 + .../date-fns/esm/fp/setHours/index.js | 5 + .../date-fns/esm/fp/setHours/index.js.flow | 56 + .../date-fns/esm/fp/setHours/package.json | 4 + .../date-fns/esm/fp/setISODay/index.d.ts | 4 + .../date-fns/esm/fp/setISODay/index.js | 5 + .../date-fns/esm/fp/setISODay/index.js.flow | 56 + .../date-fns/esm/fp/setISODay/package.json | 4 + .../date-fns/esm/fp/setISOWeek/index.d.ts | 4 + .../date-fns/esm/fp/setISOWeek/index.js | 5 + .../date-fns/esm/fp/setISOWeek/index.js.flow | 56 + .../date-fns/esm/fp/setISOWeek/package.json | 4 + .../date-fns/esm/fp/setISOWeekYear/index.d.ts | 4 + .../date-fns/esm/fp/setISOWeekYear/index.js | 5 + .../esm/fp/setISOWeekYear/index.js.flow | 56 + .../esm/fp/setISOWeekYear/package.json | 4 + .../esm/fp/setMilliseconds/index.d.ts | 4 + .../date-fns/esm/fp/setMilliseconds/index.js | 5 + .../esm/fp/setMilliseconds/index.js.flow | 56 + .../esm/fp/setMilliseconds/package.json | 4 + .../date-fns/esm/fp/setMinutes/index.d.ts | 4 + .../date-fns/esm/fp/setMinutes/index.js | 5 + .../date-fns/esm/fp/setMinutes/index.js.flow | 56 + .../date-fns/esm/fp/setMinutes/package.json | 4 + .../date-fns/esm/fp/setMonth/index.d.ts | 4 + .../date-fns/esm/fp/setMonth/index.js | 5 + .../date-fns/esm/fp/setMonth/index.js.flow | 56 + .../date-fns/esm/fp/setMonth/package.json | 4 + .../date-fns/esm/fp/setQuarter/index.d.ts | 4 + .../date-fns/esm/fp/setQuarter/index.js | 5 + .../date-fns/esm/fp/setQuarter/index.js.flow | 56 + .../date-fns/esm/fp/setQuarter/package.json | 4 + .../date-fns/esm/fp/setSeconds/index.d.ts | 4 + .../date-fns/esm/fp/setSeconds/index.js | 5 + .../date-fns/esm/fp/setSeconds/index.js.flow | 56 + .../date-fns/esm/fp/setSeconds/package.json | 4 + .../date-fns/esm/fp/setWeek/index.d.ts | 4 + node_modules/date-fns/esm/fp/setWeek/index.js | 5 + .../date-fns/esm/fp/setWeek/index.js.flow | 56 + .../date-fns/esm/fp/setWeek/package.json | 4 + .../esm/fp/setWeekWithOptions/index.d.ts | 4 + .../esm/fp/setWeekWithOptions/index.js | 5 + .../esm/fp/setWeekWithOptions/index.js.flow | 74 + .../esm/fp/setWeekWithOptions/package.json | 4 + .../date-fns/esm/fp/setWeekYear/index.d.ts | 4 + .../date-fns/esm/fp/setWeekYear/index.js | 5 + .../date-fns/esm/fp/setWeekYear/index.js.flow | 56 + .../date-fns/esm/fp/setWeekYear/package.json | 4 + .../esm/fp/setWeekYearWithOptions/index.d.ts | 4 + .../esm/fp/setWeekYearWithOptions/index.js | 5 + .../fp/setWeekYearWithOptions/index.js.flow | 74 + .../fp/setWeekYearWithOptions/package.json | 4 + .../date-fns/esm/fp/setYear/index.d.ts | 4 + node_modules/date-fns/esm/fp/setYear/index.js | 5 + .../date-fns/esm/fp/setYear/index.js.flow | 56 + .../date-fns/esm/fp/setYear/package.json | 4 + .../date-fns/esm/fp/startOfDay/index.d.ts | 4 + .../date-fns/esm/fp/startOfDay/index.js | 5 + .../date-fns/esm/fp/startOfDay/index.js.flow | 52 + .../date-fns/esm/fp/startOfDay/package.json | 4 + .../date-fns/esm/fp/startOfDecade/index.d.ts | 4 + .../date-fns/esm/fp/startOfDecade/index.js | 5 + .../esm/fp/startOfDecade/index.js.flow | 52 + .../esm/fp/startOfDecade/package.json | 4 + .../date-fns/esm/fp/startOfHour/index.d.ts | 4 + .../date-fns/esm/fp/startOfHour/index.js | 5 + .../date-fns/esm/fp/startOfHour/index.js.flow | 52 + .../date-fns/esm/fp/startOfHour/package.json | 4 + .../date-fns/esm/fp/startOfISOWeek/index.d.ts | 4 + .../date-fns/esm/fp/startOfISOWeek/index.js | 5 + .../esm/fp/startOfISOWeek/index.js.flow | 52 + .../esm/fp/startOfISOWeek/package.json | 4 + .../esm/fp/startOfISOWeekYear/index.d.ts | 4 + .../esm/fp/startOfISOWeekYear/index.js | 5 + .../esm/fp/startOfISOWeekYear/index.js.flow | 52 + .../esm/fp/startOfISOWeekYear/package.json | 4 + .../date-fns/esm/fp/startOfMinute/index.d.ts | 4 + .../date-fns/esm/fp/startOfMinute/index.js | 5 + .../esm/fp/startOfMinute/index.js.flow | 52 + .../esm/fp/startOfMinute/package.json | 4 + .../date-fns/esm/fp/startOfMonth/index.d.ts | 4 + .../date-fns/esm/fp/startOfMonth/index.js | 5 + .../esm/fp/startOfMonth/index.js.flow | 52 + .../date-fns/esm/fp/startOfMonth/package.json | 4 + .../date-fns/esm/fp/startOfQuarter/index.d.ts | 4 + .../date-fns/esm/fp/startOfQuarter/index.js | 5 + .../esm/fp/startOfQuarter/index.js.flow | 52 + .../esm/fp/startOfQuarter/package.json | 4 + .../date-fns/esm/fp/startOfSecond/index.d.ts | 4 + .../date-fns/esm/fp/startOfSecond/index.js | 5 + .../esm/fp/startOfSecond/index.js.flow | 52 + .../esm/fp/startOfSecond/package.json | 4 + .../date-fns/esm/fp/startOfWeek/index.d.ts | 4 + .../date-fns/esm/fp/startOfWeek/index.js | 5 + .../date-fns/esm/fp/startOfWeek/index.js.flow | 52 + .../date-fns/esm/fp/startOfWeek/package.json | 4 + .../esm/fp/startOfWeekWithOptions/index.d.ts | 4 + .../esm/fp/startOfWeekWithOptions/index.js | 5 + .../fp/startOfWeekWithOptions/index.js.flow | 63 + .../fp/startOfWeekWithOptions/package.json | 4 + .../esm/fp/startOfWeekYear/index.d.ts | 4 + .../date-fns/esm/fp/startOfWeekYear/index.js | 5 + .../esm/fp/startOfWeekYear/index.js.flow | 52 + .../esm/fp/startOfWeekYear/package.json | 4 + .../fp/startOfWeekYearWithOptions/index.d.ts | 4 + .../fp/startOfWeekYearWithOptions/index.js | 5 + .../startOfWeekYearWithOptions/index.js.flow | 64 + .../startOfWeekYearWithOptions/package.json | 4 + .../date-fns/esm/fp/startOfYear/index.d.ts | 4 + .../date-fns/esm/fp/startOfYear/index.js | 5 + .../date-fns/esm/fp/startOfYear/index.js.flow | 52 + .../date-fns/esm/fp/startOfYear/package.json | 4 + node_modules/date-fns/esm/fp/sub/index.d.ts | 4 + node_modules/date-fns/esm/fp/sub/index.js | 5 + .../date-fns/esm/fp/sub/index.js.flow | 56 + node_modules/date-fns/esm/fp/sub/package.json | 4 + .../esm/fp/subBusinessDays/index.d.ts | 4 + .../date-fns/esm/fp/subBusinessDays/index.js | 5 + .../esm/fp/subBusinessDays/index.js.flow | 56 + .../esm/fp/subBusinessDays/package.json | 4 + .../date-fns/esm/fp/subDays/index.d.ts | 4 + node_modules/date-fns/esm/fp/subDays/index.js | 5 + .../date-fns/esm/fp/subDays/index.js.flow | 56 + .../date-fns/esm/fp/subDays/package.json | 4 + .../date-fns/esm/fp/subHours/index.d.ts | 4 + .../date-fns/esm/fp/subHours/index.js | 5 + .../date-fns/esm/fp/subHours/index.js.flow | 56 + .../date-fns/esm/fp/subHours/package.json | 4 + .../esm/fp/subISOWeekYears/index.d.ts | 4 + .../date-fns/esm/fp/subISOWeekYears/index.js | 5 + .../esm/fp/subISOWeekYears/index.js.flow | 56 + .../esm/fp/subISOWeekYears/package.json | 4 + .../esm/fp/subMilliseconds/index.d.ts | 4 + .../date-fns/esm/fp/subMilliseconds/index.js | 5 + .../esm/fp/subMilliseconds/index.js.flow | 56 + .../esm/fp/subMilliseconds/package.json | 4 + .../date-fns/esm/fp/subMinutes/index.d.ts | 4 + .../date-fns/esm/fp/subMinutes/index.js | 5 + .../date-fns/esm/fp/subMinutes/index.js.flow | 56 + .../date-fns/esm/fp/subMinutes/package.json | 4 + .../date-fns/esm/fp/subMonths/index.d.ts | 4 + .../date-fns/esm/fp/subMonths/index.js | 5 + .../date-fns/esm/fp/subMonths/index.js.flow | 56 + .../date-fns/esm/fp/subMonths/package.json | 4 + .../date-fns/esm/fp/subQuarters/index.d.ts | 4 + .../date-fns/esm/fp/subQuarters/index.js | 5 + .../date-fns/esm/fp/subQuarters/index.js.flow | 56 + .../date-fns/esm/fp/subQuarters/package.json | 4 + .../date-fns/esm/fp/subSeconds/index.d.ts | 4 + .../date-fns/esm/fp/subSeconds/index.js | 5 + .../date-fns/esm/fp/subSeconds/index.js.flow | 56 + .../date-fns/esm/fp/subSeconds/package.json | 4 + .../date-fns/esm/fp/subWeeks/index.d.ts | 4 + .../date-fns/esm/fp/subWeeks/index.js | 5 + .../date-fns/esm/fp/subWeeks/index.js.flow | 56 + .../date-fns/esm/fp/subWeeks/package.json | 4 + .../date-fns/esm/fp/subYears/index.d.ts | 4 + .../date-fns/esm/fp/subYears/index.js | 5 + .../date-fns/esm/fp/subYears/index.js.flow | 56 + .../date-fns/esm/fp/subYears/package.json | 4 + .../date-fns/esm/fp/toDate/index.d.ts | 4 + node_modules/date-fns/esm/fp/toDate/index.js | 5 + .../date-fns/esm/fp/toDate/index.js.flow | 52 + .../date-fns/esm/fp/toDate/package.json | 4 + .../date-fns/esm/fromUnixTime/index.d.ts | 4 + .../date-fns/esm/fromUnixTime/index.js | 30 + .../date-fns/esm/fromUnixTime/index.js.flow | 50 + .../date-fns/esm/fromUnixTime/package.json | 4 + node_modules/date-fns/esm/getDate/index.d.ts | 4 + node_modules/date-fns/esm/getDate/index.js | 30 + .../date-fns/esm/getDate/index.js.flow | 50 + .../date-fns/esm/getDate/package.json | 4 + node_modules/date-fns/esm/getDay/index.d.ts | 4 + node_modules/date-fns/esm/getDay/index.js | 30 + .../date-fns/esm/getDay/index.js.flow | 50 + node_modules/date-fns/esm/getDay/package.json | 4 + .../date-fns/esm/getDayOfYear/index.d.ts | 4 + .../date-fns/esm/getDayOfYear/index.js | 33 + .../date-fns/esm/getDayOfYear/index.js.flow | 50 + .../date-fns/esm/getDayOfYear/package.json | 4 + .../date-fns/esm/getDaysInMonth/index.d.ts | 4 + .../date-fns/esm/getDaysInMonth/index.js | 34 + .../date-fns/esm/getDaysInMonth/index.js.flow | 50 + .../date-fns/esm/getDaysInMonth/package.json | 4 + .../date-fns/esm/getDaysInYear/index.d.ts | 4 + .../date-fns/esm/getDaysInYear/index.js | 35 + .../date-fns/esm/getDaysInYear/index.js.flow | 50 + .../date-fns/esm/getDaysInYear/package.json | 4 + .../date-fns/esm/getDecade/index.d.ts | 4 + node_modules/date-fns/esm/getDecade/index.js | 31 + .../date-fns/esm/getDecade/index.js.flow | 50 + .../date-fns/esm/getDecade/package.json | 4 + node_modules/date-fns/esm/getHours/index.d.ts | 4 + node_modules/date-fns/esm/getHours/index.js | 30 + .../date-fns/esm/getHours/index.js.flow | 50 + .../date-fns/esm/getHours/package.json | 4 + .../date-fns/esm/getISODay/index.d.ts | 4 + node_modules/date-fns/esm/getISODay/index.js | 38 + .../date-fns/esm/getISODay/index.js.flow | 50 + .../date-fns/esm/getISODay/package.json | 4 + .../date-fns/esm/getISOWeek/index.d.ts | 4 + node_modules/date-fns/esm/getISOWeek/index.js | 38 + .../date-fns/esm/getISOWeek/index.js.flow | 50 + .../date-fns/esm/getISOWeek/package.json | 4 + .../date-fns/esm/getISOWeekYear/index.d.ts | 4 + .../date-fns/esm/getISOWeekYear/index.js | 54 + .../date-fns/esm/getISOWeekYear/index.js.flow | 50 + .../date-fns/esm/getISOWeekYear/package.json | 4 + .../date-fns/esm/getISOWeeksInYear/index.d.ts | 4 + .../date-fns/esm/getISOWeeksInYear/index.js | 38 + .../esm/getISOWeeksInYear/index.js.flow | 50 + .../esm/getISOWeeksInYear/package.json | 4 + .../date-fns/esm/getMilliseconds/index.d.ts | 4 + .../date-fns/esm/getMilliseconds/index.js | 30 + .../esm/getMilliseconds/index.js.flow | 50 + .../date-fns/esm/getMilliseconds/package.json | 4 + .../date-fns/esm/getMinutes/index.d.ts | 4 + node_modules/date-fns/esm/getMinutes/index.js | 30 + .../date-fns/esm/getMinutes/index.js.flow | 50 + .../date-fns/esm/getMinutes/package.json | 4 + node_modules/date-fns/esm/getMonth/index.d.ts | 4 + node_modules/date-fns/esm/getMonth/index.js | 30 + .../date-fns/esm/getMonth/index.js.flow | 50 + .../date-fns/esm/getMonth/package.json | 4 + .../getOverlappingDaysInIntervals/index.d.ts | 4 + .../getOverlappingDaysInIntervals/index.js | 93 + .../index.js.flow | 53 + .../package.json | 4 + .../date-fns/esm/getQuarter/index.d.ts | 4 + node_modules/date-fns/esm/getQuarter/index.js | 30 + .../date-fns/esm/getQuarter/index.js.flow | 50 + .../date-fns/esm/getQuarter/package.json | 4 + .../date-fns/esm/getSeconds/index.d.ts | 4 + node_modules/date-fns/esm/getSeconds/index.js | 30 + .../date-fns/esm/getSeconds/index.js.flow | 50 + .../date-fns/esm/getSeconds/package.json | 4 + node_modules/date-fns/esm/getTime/index.d.ts | 4 + node_modules/date-fns/esm/getTime/index.js | 30 + .../date-fns/esm/getTime/index.js.flow | 50 + .../date-fns/esm/getTime/package.json | 4 + .../date-fns/esm/getUnixTime/index.d.ts | 4 + .../date-fns/esm/getUnixTime/index.js | 28 + .../date-fns/esm/getUnixTime/index.js.flow | 50 + .../date-fns/esm/getUnixTime/package.json | 4 + node_modules/date-fns/esm/getWeek/index.d.ts | 4 + node_modules/date-fns/esm/getWeek/index.js | 57 + .../date-fns/esm/getWeek/index.js.flow | 57 + .../date-fns/esm/getWeek/package.json | 4 + .../date-fns/esm/getWeekOfMonth/index.d.ts | 4 + .../date-fns/esm/getWeekOfMonth/index.js | 67 + .../date-fns/esm/getWeekOfMonth/index.js.flow | 56 + .../date-fns/esm/getWeekOfMonth/package.json | 4 + .../date-fns/esm/getWeekYear/index.d.ts | 4 + .../date-fns/esm/getWeekYear/index.js | 79 + .../date-fns/esm/getWeekYear/index.js.flow | 57 + .../date-fns/esm/getWeekYear/package.json | 4 + .../date-fns/esm/getWeeksInMonth/index.d.ts | 4 + .../date-fns/esm/getWeeksInMonth/index.js | 40 + .../esm/getWeeksInMonth/index.js.flow | 56 + .../date-fns/esm/getWeeksInMonth/package.json | 4 + node_modules/date-fns/esm/getYear/index.d.ts | 4 + node_modules/date-fns/esm/getYear/index.js | 30 + .../date-fns/esm/getYear/index.js.flow | 50 + .../date-fns/esm/getYear/package.json | 4 + node_modules/date-fns/esm/index.js | 198 + node_modules/date-fns/esm/index.js.flow | 751 + .../esm/intervalToDuration/index.d.ts | 4 + .../date-fns/esm/intervalToDuration/index.js | 82 + .../esm/intervalToDuration/index.js.flow | 50 + .../esm/intervalToDuration/package.json | 4 + node_modules/date-fns/esm/isAfter/index.d.ts | 4 + node_modules/date-fns/esm/isAfter/index.js | 31 + .../date-fns/esm/isAfter/index.js.flow | 53 + .../date-fns/esm/isAfter/package.json | 4 + node_modules/date-fns/esm/isBefore/index.d.ts | 4 + node_modules/date-fns/esm/isBefore/index.js | 31 + .../date-fns/esm/isBefore/index.js.flow | 53 + .../date-fns/esm/isBefore/package.json | 4 + node_modules/date-fns/esm/isDate/index.d.ts | 4 + node_modules/date-fns/esm/isDate/index.js | 42 + .../date-fns/esm/isDate/index.js.flow | 50 + node_modules/date-fns/esm/isDate/package.json | 4 + node_modules/date-fns/esm/isEqual/index.d.ts | 4 + node_modules/date-fns/esm/isEqual/index.js | 34 + .../date-fns/esm/isEqual/index.js.flow | 53 + .../date-fns/esm/isEqual/package.json | 4 + node_modules/date-fns/esm/isExists/index.d.ts | 4 + node_modules/date-fns/esm/isExists/index.js | 32 + .../date-fns/esm/isExists/index.js.flow | 50 + .../date-fns/esm/isExists/package.json | 4 + .../date-fns/esm/isFirstDayOfMonth/index.d.ts | 4 + .../date-fns/esm/isFirstDayOfMonth/index.js | 28 + .../esm/isFirstDayOfMonth/index.js.flow | 50 + .../esm/isFirstDayOfMonth/package.json | 4 + node_modules/date-fns/esm/isFriday/index.d.ts | 4 + node_modules/date-fns/esm/isFriday/index.js | 28 + .../date-fns/esm/isFriday/index.js.flow | 50 + .../date-fns/esm/isFriday/package.json | 4 + node_modules/date-fns/esm/isFuture/index.d.ts | 4 + node_modules/date-fns/esm/isFuture/index.js | 32 + .../date-fns/esm/isFuture/index.js.flow | 50 + .../date-fns/esm/isFuture/package.json | 4 + .../date-fns/esm/isLastDayOfMonth/index.d.ts | 4 + .../date-fns/esm/isLastDayOfMonth/index.js | 31 + .../esm/isLastDayOfMonth/index.js.flow | 50 + .../esm/isLastDayOfMonth/package.json | 4 + .../date-fns/esm/isLeapYear/index.d.ts | 4 + node_modules/date-fns/esm/isLeapYear/index.js | 30 + .../date-fns/esm/isLeapYear/index.js.flow | 50 + .../date-fns/esm/isLeapYear/package.json | 4 + node_modules/date-fns/esm/isMatch/index.d.ts | 4 + node_modules/date-fns/esm/isMatch/index.js | 300 + .../date-fns/esm/isMatch/index.js.flow | 60 + .../date-fns/esm/isMatch/package.json | 4 + node_modules/date-fns/esm/isMonday/index.d.ts | 4 + node_modules/date-fns/esm/isMonday/index.js | 28 + .../date-fns/esm/isMonday/index.js.flow | 50 + .../date-fns/esm/isMonday/package.json | 4 + node_modules/date-fns/esm/isPast/index.d.ts | 4 + node_modules/date-fns/esm/isPast/index.js | 32 + .../date-fns/esm/isPast/index.js.flow | 50 + node_modules/date-fns/esm/isPast/package.json | 4 + .../date-fns/esm/isSameDay/index.d.ts | 4 + node_modules/date-fns/esm/isSameDay/index.js | 31 + .../date-fns/esm/isSameDay/index.js.flow | 53 + .../date-fns/esm/isSameDay/package.json | 4 + .../date-fns/esm/isSameHour/index.d.ts | 4 + node_modules/date-fns/esm/isSameHour/index.js | 31 + .../date-fns/esm/isSameHour/index.js.flow | 53 + .../date-fns/esm/isSameHour/package.json | 4 + .../date-fns/esm/isSameISOWeek/index.d.ts | 4 + .../date-fns/esm/isSameISOWeek/index.js | 33 + .../date-fns/esm/isSameISOWeek/index.js.flow | 53 + .../date-fns/esm/isSameISOWeek/package.json | 4 + .../date-fns/esm/isSameISOWeekYear/index.d.ts | 4 + .../date-fns/esm/isSameISOWeekYear/index.js | 38 + .../esm/isSameISOWeekYear/index.js.flow | 53 + .../esm/isSameISOWeekYear/package.json | 4 + .../date-fns/esm/isSameMinute/index.d.ts | 4 + .../date-fns/esm/isSameMinute/index.js | 35 + .../date-fns/esm/isSameMinute/index.js.flow | 53 + .../date-fns/esm/isSameMinute/package.json | 4 + .../date-fns/esm/isSameMonth/index.d.ts | 4 + .../date-fns/esm/isSameMonth/index.js | 31 + .../date-fns/esm/isSameMonth/index.js.flow | 53 + .../date-fns/esm/isSameMonth/package.json | 4 + .../date-fns/esm/isSameQuarter/index.d.ts | 4 + .../date-fns/esm/isSameQuarter/index.js | 31 + .../date-fns/esm/isSameQuarter/index.js.flow | 53 + .../date-fns/esm/isSameQuarter/package.json | 4 + .../date-fns/esm/isSameSecond/index.d.ts | 4 + .../date-fns/esm/isSameSecond/index.js | 35 + .../date-fns/esm/isSameSecond/index.js.flow | 53 + .../date-fns/esm/isSameSecond/package.json | 4 + .../date-fns/esm/isSameWeek/index.d.ts | 4 + node_modules/date-fns/esm/isSameWeek/index.js | 43 + .../date-fns/esm/isSameWeek/index.js.flow | 57 + .../date-fns/esm/isSameWeek/package.json | 4 + .../date-fns/esm/isSameYear/index.d.ts | 4 + node_modules/date-fns/esm/isSameYear/index.js | 31 + .../date-fns/esm/isSameYear/index.js.flow | 53 + .../date-fns/esm/isSameYear/package.json | 4 + .../date-fns/esm/isSaturday/index.d.ts | 4 + node_modules/date-fns/esm/isSaturday/index.js | 28 + .../date-fns/esm/isSaturday/index.js.flow | 50 + .../date-fns/esm/isSaturday/package.json | 4 + node_modules/date-fns/esm/isSunday/index.d.ts | 4 + node_modules/date-fns/esm/isSunday/index.js | 28 + .../date-fns/esm/isSunday/index.js.flow | 50 + .../date-fns/esm/isSunday/package.json | 4 + .../date-fns/esm/isThisHour/index.d.ts | 4 + node_modules/date-fns/esm/isThisHour/index.js | 33 + .../date-fns/esm/isThisHour/index.js.flow | 50 + .../date-fns/esm/isThisHour/package.json | 4 + .../date-fns/esm/isThisISOWeek/index.d.ts | 4 + .../date-fns/esm/isThisISOWeek/index.js | 34 + .../date-fns/esm/isThisISOWeek/index.js.flow | 50 + .../date-fns/esm/isThisISOWeek/package.json | 4 + .../date-fns/esm/isThisMinute/index.d.ts | 4 + .../date-fns/esm/isThisMinute/index.js | 33 + .../date-fns/esm/isThisMinute/index.js.flow | 50 + .../date-fns/esm/isThisMinute/package.json | 4 + .../date-fns/esm/isThisMonth/index.d.ts | 4 + .../date-fns/esm/isThisMonth/index.js | 32 + .../date-fns/esm/isThisMonth/index.js.flow | 50 + .../date-fns/esm/isThisMonth/package.json | 4 + .../date-fns/esm/isThisQuarter/index.d.ts | 4 + .../date-fns/esm/isThisQuarter/index.js | 32 + .../date-fns/esm/isThisQuarter/index.js.flow | 50 + .../date-fns/esm/isThisQuarter/package.json | 4 + .../date-fns/esm/isThisSecond/index.d.ts | 4 + .../date-fns/esm/isThisSecond/index.js | 33 + .../date-fns/esm/isThisSecond/index.js.flow | 50 + .../date-fns/esm/isThisSecond/package.json | 4 + .../date-fns/esm/isThisWeek/index.d.ts | 4 + node_modules/date-fns/esm/isThisWeek/index.js | 42 + .../date-fns/esm/isThisWeek/index.js.flow | 56 + .../date-fns/esm/isThisWeek/package.json | 4 + .../date-fns/esm/isThisYear/index.d.ts | 4 + node_modules/date-fns/esm/isThisYear/index.js | 32 + .../date-fns/esm/isThisYear/index.js.flow | 50 + .../date-fns/esm/isThisYear/package.json | 4 + .../date-fns/esm/isThursday/index.d.ts | 4 + node_modules/date-fns/esm/isThursday/index.js | 28 + .../date-fns/esm/isThursday/index.js.flow | 50 + .../date-fns/esm/isThursday/package.json | 4 + node_modules/date-fns/esm/isToday/index.d.ts | 4 + node_modules/date-fns/esm/isToday/index.js | 32 + .../date-fns/esm/isToday/index.js.flow | 50 + .../date-fns/esm/isToday/package.json | 4 + .../date-fns/esm/isTomorrow/index.d.ts | 4 + node_modules/date-fns/esm/isTomorrow/index.js | 33 + .../date-fns/esm/isTomorrow/index.js.flow | 50 + .../date-fns/esm/isTomorrow/package.json | 4 + .../date-fns/esm/isTuesday/index.d.ts | 4 + node_modules/date-fns/esm/isTuesday/index.js | 28 + .../date-fns/esm/isTuesday/index.js.flow | 50 + .../date-fns/esm/isTuesday/package.json | 4 + node_modules/date-fns/esm/isValid/index.d.ts | 4 + node_modules/date-fns/esm/isValid/index.js | 65 + .../date-fns/esm/isValid/index.js.flow | 50 + .../date-fns/esm/isValid/package.json | 4 + .../date-fns/esm/isWednesday/index.d.ts | 4 + .../date-fns/esm/isWednesday/index.js | 28 + .../date-fns/esm/isWednesday/index.js.flow | 50 + .../date-fns/esm/isWednesday/package.json | 4 + .../date-fns/esm/isWeekend/index.d.ts | 4 + node_modules/date-fns/esm/isWeekend/index.js | 30 + .../date-fns/esm/isWeekend/index.js.flow | 50 + .../date-fns/esm/isWeekend/package.json | 4 + .../date-fns/esm/isWithinInterval/index.d.ts | 4 + .../date-fns/esm/isWithinInterval/index.js | 89 + .../esm/isWithinInterval/index.js.flow | 50 + .../esm/isWithinInterval/package.json | 4 + .../date-fns/esm/isYesterday/index.d.ts | 4 + .../date-fns/esm/isYesterday/index.js | 33 + .../date-fns/esm/isYesterday/index.js.flow | 50 + .../date-fns/esm/isYesterday/package.json | 4 + .../date-fns/esm/lastDayOfDecade/index.d.ts | 4 + .../date-fns/esm/lastDayOfDecade/index.js | 33 + .../esm/lastDayOfDecade/index.js.flow | 50 + .../date-fns/esm/lastDayOfDecade/package.json | 4 + .../date-fns/esm/lastDayOfISOWeek/index.d.ts | 4 + .../date-fns/esm/lastDayOfISOWeek/index.js | 33 + .../esm/lastDayOfISOWeek/index.js.flow | 50 + .../esm/lastDayOfISOWeek/package.json | 4 + .../esm/lastDayOfISOWeekYear/index.d.ts | 4 + .../esm/lastDayOfISOWeekYear/index.js | 44 + .../esm/lastDayOfISOWeekYear/index.js.flow | 50 + .../esm/lastDayOfISOWeekYear/package.json | 4 + .../date-fns/esm/lastDayOfMonth/index.d.ts | 4 + .../date-fns/esm/lastDayOfMonth/index.js | 33 + .../date-fns/esm/lastDayOfMonth/index.js.flow | 50 + .../date-fns/esm/lastDayOfMonth/package.json | 4 + .../date-fns/esm/lastDayOfQuarter/index.d.ts | 4 + .../date-fns/esm/lastDayOfQuarter/index.js | 37 + .../esm/lastDayOfQuarter/index.js.flow | 55 + .../esm/lastDayOfQuarter/package.json | 4 + .../date-fns/esm/lastDayOfWeek/index.d.ts | 4 + .../date-fns/esm/lastDayOfWeek/index.js | 54 + .../date-fns/esm/lastDayOfWeek/index.js.flow | 56 + .../date-fns/esm/lastDayOfWeek/package.json | 4 + .../date-fns/esm/lastDayOfYear/index.d.ts | 4 + .../date-fns/esm/lastDayOfYear/index.js | 33 + .../date-fns/esm/lastDayOfYear/index.js.flow | 50 + .../date-fns/esm/lastDayOfYear/package.json | 4 + .../date-fns/esm/lightFormat/index.d.ts | 4 + .../date-fns/esm/lightFormat/index.js | 119 + .../date-fns/esm/lightFormat/index.js.flow | 50 + .../date-fns/esm/lightFormat/package.json | 4 + .../locale/_lib/buildFormatLongFn/index.js | 8 + .../esm/locale/_lib/buildLocalizeFn/index.js | 22 + .../esm/locale/_lib/buildMatchFn/index.js | 50 + .../locale/_lib/buildMatchPatternFn/index.js | 25 + .../locale/af/_lib/formatDistance/index.js | 85 + .../esm/locale/af/_lib/formatLong/index.js | 34 + .../locale/af/_lib/formatRelative/index.js | 11 + .../esm/locale/af/_lib/localize/index.js | 134 + .../esm/locale/af/_lib/match/index.js | 97 + .../date-fns/esm/locale/af/index.d.ts | 4 + node_modules/date-fns/esm/locale/af/index.js | 29 + .../date-fns/esm/locale/af/index.js.flow | 35 + .../date-fns/esm/locale/af/package.json | 4 + .../locale/ar-DZ/_lib/formatDistance/index.js | 119 + .../esm/locale/ar-DZ/_lib/formatLong/index.js | 34 + .../locale/ar-DZ/_lib/formatRelative/index.js | 11 + .../esm/locale/ar-DZ/_lib/localize/index.js | 118 + .../esm/locale/ar-DZ/_lib/match/index.js | 99 + .../date-fns/esm/locale/ar-DZ/index.d.ts | 4 + .../date-fns/esm/locale/ar-DZ/index.js | 30 + .../date-fns/esm/locale/ar-DZ/index.js.flow | 35 + .../date-fns/esm/locale/ar-DZ/package.json | 4 + .../locale/ar-MA/_lib/formatDistance/index.js | 119 + .../esm/locale/ar-MA/_lib/formatLong/index.js | 34 + .../locale/ar-MA/_lib/formatRelative/index.js | 11 + .../esm/locale/ar-MA/_lib/localize/index.js | 118 + .../esm/locale/ar-MA/_lib/match/index.js | 99 + .../date-fns/esm/locale/ar-MA/index.d.ts | 4 + .../date-fns/esm/locale/ar-MA/index.js | 28 + .../date-fns/esm/locale/ar-MA/index.js.flow | 35 + .../date-fns/esm/locale/ar-MA/package.json | 4 + .../locale/ar-SA/_lib/formatDistance/index.js | 119 + .../esm/locale/ar-SA/_lib/formatLong/index.js | 34 + .../locale/ar-SA/_lib/formatRelative/index.js | 11 + .../esm/locale/ar-SA/_lib/localize/index.js | 118 + .../esm/locale/ar-SA/_lib/match/index.js | 99 + .../date-fns/esm/locale/ar-SA/index.d.ts | 4 + .../date-fns/esm/locale/ar-SA/index.js | 29 + .../date-fns/esm/locale/ar-SA/index.js.flow | 35 + .../date-fns/esm/locale/ar-SA/package.json | 4 + .../locale/ar/_lib/formatDistance/index.js | 77 + .../esm/locale/ar/_lib/formatLong/index.js | 10 + .../locale/ar/_lib/formatRelative/index.js | 11 + .../esm/locale/ar/_lib/localize/index.js | 33 + .../esm/locale/ar/_lib/match/index.js | 38 + .../date-fns/esm/locale/ar/index.d.ts | 4 + node_modules/date-fns/esm/locale/ar/index.js | 28 + .../date-fns/esm/locale/ar/index.js.flow | 35 + .../date-fns/esm/locale/ar/package.json | 4 + .../locale/az/_lib/formatDistance/index.js | 85 + .../esm/locale/az/_lib/formatLong/index.js | 34 + .../locale/az/_lib/formatRelative/index.js | 11 + .../esm/locale/az/_lib/localize/index.js | 158 + .../esm/locale/az/_lib/match/index.js | 101 + .../date-fns/esm/locale/az/index.d.ts | 4 + node_modules/date-fns/esm/locale/az/index.js | 26 + .../date-fns/esm/locale/az/index.js.flow | 35 + .../date-fns/esm/locale/az/package.json | 4 + .../locale/be/_lib/formatDistance/index.js | 242 + .../esm/locale/be/_lib/formatLong/index.js | 31 + .../locale/be/_lib/formatRelative/index.js | 75 + .../esm/locale/be/_lib/localize/index.js | 152 + .../esm/locale/be/_lib/match/index.js | 99 + .../date-fns/esm/locale/be/index.d.ts | 4 + node_modules/date-fns/esm/locale/be/index.js | 30 + .../date-fns/esm/locale/be/index.js.flow | 35 + .../date-fns/esm/locale/be/package.json | 4 + .../locale/bg/_lib/formatDistance/index.js | 85 + .../esm/locale/bg/_lib/formatLong/index.js | 31 + .../locale/bg/_lib/formatRelative/index.js | 83 + .../esm/locale/bg/_lib/localize/index.js | 106 + .../esm/locale/bg/_lib/match/index.js | 95 + .../date-fns/esm/locale/bg/index.d.ts | 4 + node_modules/date-fns/esm/locale/bg/index.js | 30 + .../date-fns/esm/locale/bg/index.js.flow | 35 + .../date-fns/esm/locale/bg/package.json | 4 + .../locale/bn/_lib/formatDistance/index.js | 86 + .../esm/locale/bn/_lib/formatLong/index.js | 34 + .../locale/bn/_lib/formatRelative/index.js | 11 + .../esm/locale/bn/_lib/localize/index.js | 211 + .../esm/locale/bn/_lib/match/index.js | 102 + .../date-fns/esm/locale/bn/index.d.ts | 4 + node_modules/date-fns/esm/locale/bn/index.js | 30 + .../date-fns/esm/locale/bn/index.js.flow | 35 + .../date-fns/esm/locale/bn/package.json | 4 + .../locale/ca/_lib/formatDistance/index.js | 100 + .../esm/locale/ca/_lib/formatLong/index.js | 34 + .../locale/ca/_lib/formatRelative/index.js | 23 + .../esm/locale/ca/_lib/localize/index.js | 189 + .../esm/locale/ca/_lib/match/index.js | 103 + .../date-fns/esm/locale/ca/index.d.ts | 4 + node_modules/date-fns/esm/locale/ca/index.js | 30 + .../date-fns/esm/locale/ca/index.js.flow | 35 + .../date-fns/esm/locale/ca/package.json | 4 + .../locale/cs/_lib/formatDistance/index.js | 295 + .../esm/locale/cs/_lib/formatLong/index.js | 34 + .../locale/cs/_lib/formatRelative/index.js | 21 + .../esm/locale/cs/_lib/localize/index.js | 128 + .../esm/locale/cs/_lib/match/index.js | 97 + .../date-fns/esm/locale/cs/index.d.ts | 4 + node_modules/date-fns/esm/locale/cs/index.js | 31 + .../date-fns/esm/locale/cs/index.js.flow | 35 + .../date-fns/esm/locale/cs/package.json | 4 + .../locale/cy/_lib/formatDistance/index.js | 98 + .../esm/locale/cy/_lib/formatLong/index.js | 34 + .../locale/cy/_lib/formatRelative/index.js | 11 + .../esm/locale/cy/_lib/localize/index.js | 166 + .../esm/locale/cy/_lib/match/index.js | 100 + .../date-fns/esm/locale/cy/index.d.ts | 4 + node_modules/date-fns/esm/locale/cy/index.js | 29 + .../date-fns/esm/locale/cy/index.js.flow | 35 + .../date-fns/esm/locale/cy/package.json | 4 + .../locale/da/_lib/formatDistance/index.js | 85 + .../esm/locale/da/_lib/formatLong/index.js | 34 + .../locale/da/_lib/formatRelative/index.js | 11 + .../esm/locale/da/_lib/localize/index.js | 124 + .../esm/locale/da/_lib/match/index.js | 98 + .../date-fns/esm/locale/da/index.d.ts | 4 + node_modules/date-fns/esm/locale/da/index.js | 32 + .../date-fns/esm/locale/da/index.js.flow | 35 + .../date-fns/esm/locale/da/package.json | 4 + .../locale/de/_lib/formatDistance/index.js | 179 + .../esm/locale/de/_lib/formatLong/index.js | 39 + .../locale/de/_lib/formatRelative/index.js | 11 + .../esm/locale/de/_lib/localize/index.js | 126 + .../esm/locale/de/_lib/match/index.js | 100 + .../date-fns/esm/locale/de/index.d.ts | 4 + node_modules/date-fns/esm/locale/de/index.js | 33 + .../date-fns/esm/locale/de/index.js.flow | 35 + .../date-fns/esm/locale/de/package.json | 4 + .../locale/el/_lib/formatDistance/index.js | 85 + .../esm/locale/el/_lib/formatLong/index.js | 34 + .../locale/el/_lib/formatRelative/index.js | 22 + .../esm/locale/el/_lib/localize/index.js | 105 + .../esm/locale/el/_lib/match/index.js | 98 + .../date-fns/esm/locale/el/index.d.ts | 4 + node_modules/date-fns/esm/locale/el/index.js | 30 + .../date-fns/esm/locale/el/index.js.flow | 35 + .../date-fns/esm/locale/el/package.json | 4 + .../esm/locale/en-AU/_lib/formatLong/index.js | 34 + .../date-fns/esm/locale/en-AU/index.d.ts | 4 + .../date-fns/esm/locale/en-AU/index.js | 29 + .../date-fns/esm/locale/en-AU/index.js.flow | 35 + .../date-fns/esm/locale/en-AU/package.json | 4 + .../locale/en-CA/_lib/formatDistance/index.js | 85 + .../esm/locale/en-CA/_lib/formatLong/index.js | 34 + .../date-fns/esm/locale/en-CA/index.d.ts | 4 + .../date-fns/esm/locale/en-CA/index.js | 30 + .../date-fns/esm/locale/en-CA/index.js.flow | 35 + .../date-fns/esm/locale/en-CA/package.json | 4 + .../esm/locale/en-GB/_lib/formatLong/index.js | 34 + .../date-fns/esm/locale/en-GB/index.d.ts | 4 + .../date-fns/esm/locale/en-GB/index.js | 29 + .../date-fns/esm/locale/en-GB/index.js.flow | 35 + .../date-fns/esm/locale/en-GB/package.json | 4 + .../esm/locale/en-IN/_lib/formatLong/index.js | 34 + .../date-fns/esm/locale/en-IN/index.d.ts | 4 + .../date-fns/esm/locale/en-IN/index.js | 29 + .../date-fns/esm/locale/en-IN/index.js.flow | 35 + .../date-fns/esm/locale/en-IN/package.json | 4 + .../esm/locale/en-NZ/_lib/formatLong/index.js | 34 + .../date-fns/esm/locale/en-NZ/index.d.ts | 4 + .../date-fns/esm/locale/en-NZ/index.js | 29 + .../date-fns/esm/locale/en-NZ/index.js.flow | 35 + .../date-fns/esm/locale/en-NZ/package.json | 4 + .../locale/en-US/_lib/formatDistance/index.js | 85 + .../esm/locale/en-US/_lib/formatLong/index.js | 34 + .../locale/en-US/_lib/formatRelative/index.js | 11 + .../esm/locale/en-US/_lib/localize/index.js | 149 + .../esm/locale/en-US/_lib/match/index.js | 98 + .../date-fns/esm/locale/en-US/index.d.ts | 4 + .../date-fns/esm/locale/en-US/index.js | 30 + .../date-fns/esm/locale/en-US/index.js.flow | 35 + .../date-fns/esm/locale/en-US/package.json | 4 + .../locale/eo/_lib/formatDistance/index.js | 85 + .../esm/locale/eo/_lib/formatLong/index.js | 31 + .../locale/eo/_lib/formatRelative/index.js | 11 + .../esm/locale/eo/_lib/localize/index.js | 87 + .../esm/locale/eo/_lib/match/index.js | 99 + .../date-fns/esm/locale/eo/index.d.ts | 4 + node_modules/date-fns/esm/locale/eo/index.js | 29 + .../date-fns/esm/locale/eo/index.js.flow | 35 + .../date-fns/esm/locale/eo/package.json | 4 + .../locale/es/_lib/formatDistance/index.js | 85 + .../esm/locale/es/_lib/formatLong/index.js | 34 + .../locale/es/_lib/formatRelative/index.js | 23 + .../esm/locale/es/_lib/localize/index.js | 121 + .../esm/locale/es/_lib/match/index.js | 99 + .../date-fns/esm/locale/es/index.d.ts | 4 + node_modules/date-fns/esm/locale/es/index.js | 33 + .../date-fns/esm/locale/es/index.js.flow | 35 + .../date-fns/esm/locale/es/package.json | 4 + .../locale/et/_lib/formatDistance/index.js | 179 + .../esm/locale/et/_lib/formatLong/index.js | 34 + .../locale/et/_lib/formatRelative/index.js | 11 + .../esm/locale/et/_lib/localize/index.js | 122 + .../esm/locale/et/_lib/match/index.js | 96 + .../date-fns/esm/locale/et/index.d.ts | 4 + node_modules/date-fns/esm/locale/et/index.js | 29 + .../date-fns/esm/locale/et/index.js.flow | 35 + .../date-fns/esm/locale/et/package.json | 4 + .../locale/eu/_lib/formatDistance/index.js | 85 + .../esm/locale/eu/_lib/formatLong/index.js | 34 + .../locale/eu/_lib/formatRelative/index.js | 23 + .../esm/locale/eu/_lib/localize/index.js | 121 + .../esm/locale/eu/_lib/match/index.js | 112 + .../date-fns/esm/locale/eu/index.d.ts | 4 + node_modules/date-fns/esm/locale/eu/index.js | 29 + .../date-fns/esm/locale/eu/index.js.flow | 35 + .../date-fns/esm/locale/eu/package.json | 4 + .../locale/fa-IR/_lib/formatDistance/index.js | 85 + .../esm/locale/fa-IR/_lib/formatLong/index.js | 34 + .../locale/fa-IR/_lib/formatRelative/index.js | 11 + .../esm/locale/fa-IR/_lib/localize/index.js | 124 + .../esm/locale/fa-IR/_lib/match/index.js | 99 + .../date-fns/esm/locale/fa-IR/index.d.ts | 4 + .../date-fns/esm/locale/fa-IR/index.js | 29 + .../date-fns/esm/locale/fa-IR/index.js.flow | 35 + .../date-fns/esm/locale/fa-IR/package.json | 4 + .../locale/fi/_lib/formatDistance/index.js | 127 + .../esm/locale/fi/_lib/formatLong/index.js | 34 + .../locale/fi/_lib/formatRelative/index.js | 11 + .../esm/locale/fi/_lib/localize/index.js | 104 + .../esm/locale/fi/_lib/match/index.js | 98 + .../date-fns/esm/locale/fi/index.d.ts | 4 + node_modules/date-fns/esm/locale/fi/index.js | 31 + .../date-fns/esm/locale/fi/index.js.flow | 35 + .../date-fns/esm/locale/fi/package.json | 4 + .../locale/fil/_lib/formatDistance/index.js | 89 + .../esm/locale/fil/_lib/formatLong/index.js | 10 + .../locale/fil/_lib/formatRelative/index.js | 11 + .../esm/locale/fil/_lib/localize/index.js | 46 + .../esm/locale/fil/_lib/match/index.js | 38 + .../date-fns/esm/locale/fil/index.d.ts | 4 + node_modules/date-fns/esm/locale/fil/index.js | 28 + .../date-fns/esm/locale/fil/index.js.flow | 35 + .../date-fns/esm/locale/fil/package.json | 4 + .../esm/locale/fr-CA/_lib/formatLong/index.js | 34 + .../date-fns/esm/locale/fr-CA/index.d.ts | 4 + .../date-fns/esm/locale/fr-CA/index.js | 34 + .../date-fns/esm/locale/fr-CA/index.js.flow | 35 + .../date-fns/esm/locale/fr-CA/package.json | 4 + .../locale/fr-CH/_lib/formatDistance/index.js | 85 + .../esm/locale/fr-CH/_lib/formatLong/index.js | 34 + .../locale/fr-CH/_lib/formatRelative/index.js | 11 + .../esm/locale/fr-CH/_lib/formatters/index.js | 15 + .../esm/locale/fr-CH/_lib/localize/index.js | 109 + .../esm/locale/fr-CH/_lib/match/index.js | 98 + .../date-fns/esm/locale/fr-CH/index.d.ts | 4 + .../date-fns/esm/locale/fr-CH/index.js | 32 + .../date-fns/esm/locale/fr-CH/index.js.flow | 35 + .../date-fns/esm/locale/fr-CH/package.json | 4 + .../locale/fr/_lib/formatDistance/index.js | 85 + .../esm/locale/fr/_lib/formatLong/index.js | 34 + .../locale/fr/_lib/formatRelative/index.js | 11 + .../esm/locale/fr/_lib/formatters/index.js | 15 + .../esm/locale/fr/_lib/localize/index.js | 109 + .../esm/locale/fr/_lib/match/index.js | 98 + .../date-fns/esm/locale/fr/index.d.ts | 4 + node_modules/date-fns/esm/locale/fr/index.js | 30 + .../date-fns/esm/locale/fr/index.js.flow | 35 + .../date-fns/esm/locale/fr/package.json | 4 + .../locale/gd/_lib/formatDistance/index.js | 99 + .../esm/locale/gd/_lib/formatLong/index.js | 34 + .../locale/gd/_lib/formatRelative/index.js | 12 + .../esm/locale/gd/_lib/localize/index.js | 150 + .../esm/locale/gd/_lib/match/index.js | 98 + .../date-fns/esm/locale/gd/index.d.ts | 4 + node_modules/date-fns/esm/locale/gd/index.js | 29 + .../date-fns/esm/locale/gd/index.js.flow | 35 + .../date-fns/esm/locale/gd/package.json | 4 + .../locale/gl/_lib/formatDistance/index.js | 85 + .../esm/locale/gl/_lib/formatLong/index.js | 34 + .../locale/gl/_lib/formatRelative/index.js | 23 + .../esm/locale/gl/_lib/localize/index.js | 121 + .../esm/locale/gl/_lib/match/index.js | 99 + .../date-fns/esm/locale/gl/index.d.ts | 4 + node_modules/date-fns/esm/locale/gl/index.js | 30 + .../date-fns/esm/locale/gl/index.js.flow | 35 + .../date-fns/esm/locale/gl/package.json | 4 + .../locale/gu/_lib/formatDistance/index.js | 88 + .../esm/locale/gu/_lib/formatLong/index.js | 47 + .../locale/gu/_lib/formatRelative/index.js | 17 + .../esm/locale/gu/_lib/localize/index.js | 149 + .../esm/locale/gu/_lib/match/index.js | 98 + .../date-fns/esm/locale/gu/index.d.ts | 4 + node_modules/date-fns/esm/locale/gu/index.js | 29 + .../date-fns/esm/locale/gu/index.js.flow | 35 + .../date-fns/esm/locale/gu/package.json | 4 + .../locale/he/_lib/formatDistance/index.js | 115 + .../esm/locale/he/_lib/formatLong/index.js | 34 + .../locale/he/_lib/formatRelative/index.js | 11 + .../esm/locale/he/_lib/localize/index.js | 129 + .../esm/locale/he/_lib/match/index.js | 100 + .../date-fns/esm/locale/he/index.d.ts | 4 + node_modules/date-fns/esm/locale/he/index.js | 29 + .../date-fns/esm/locale/he/index.js.flow | 35 + .../date-fns/esm/locale/he/package.json | 4 + .../locale/hi/_lib/formatDistance/index.js | 93 + .../esm/locale/hi/_lib/formatLong/index.js | 46 + .../locale/hi/_lib/formatRelative/index.js | 11 + .../esm/locale/hi/_lib/localize/index.js | 186 + .../esm/locale/hi/_lib/match/index.js | 97 + .../date-fns/esm/locale/hi/index.d.ts | 4 + node_modules/date-fns/esm/locale/hi/index.js | 29 + .../date-fns/esm/locale/hi/index.js.flow | 35 + .../date-fns/esm/locale/hi/package.json | 4 + .../locale/hr/_lib/formatDistance/index.js | 172 + .../esm/locale/hr/_lib/formatLong/index.js | 34 + .../locale/hr/_lib/formatRelative/index.js | 49 + .../esm/locale/hr/_lib/localize/index.js | 128 + .../esm/locale/hr/_lib/match/index.js | 98 + .../date-fns/esm/locale/hr/index.d.ts | 4 + node_modules/date-fns/esm/locale/hr/index.js | 31 + .../date-fns/esm/locale/hr/index.js.flow | 35 + .../date-fns/esm/locale/hr/package.json | 4 + .../locale/hu/_lib/formatDistance/index.js | 82 + .../esm/locale/hu/_lib/formatLong/index.js | 34 + .../locale/hu/_lib/formatRelative/index.js | 26 + .../esm/locale/hu/_lib/localize/index.js | 94 + .../esm/locale/hu/_lib/match/index.js | 99 + .../date-fns/esm/locale/hu/index.d.ts | 4 + node_modules/date-fns/esm/locale/hu/index.js | 34 + .../date-fns/esm/locale/hu/index.js.flow | 35 + .../date-fns/esm/locale/hu/package.json | 4 + .../locale/hy/_lib/formatDistance/index.js | 85 + .../esm/locale/hy/_lib/formatLong/index.js | 34 + .../locale/hy/_lib/formatRelative/index.js | 11 + .../esm/locale/hy/_lib/localize/index.js | 138 + .../esm/locale/hy/_lib/match/index.js | 100 + .../date-fns/esm/locale/hy/index.d.ts | 4 + node_modules/date-fns/esm/locale/hy/index.js | 29 + .../date-fns/esm/locale/hy/index.js.flow | 35 + .../date-fns/esm/locale/hy/package.json | 4 + .../locale/id/_lib/formatDistance/index.js | 85 + .../esm/locale/id/_lib/formatLong/index.js | 34 + .../locale/id/_lib/formatRelative/index.js | 11 + .../esm/locale/id/_lib/localize/index.js | 131 + .../esm/locale/id/_lib/match/index.js | 98 + .../date-fns/esm/locale/id/index.d.ts | 4 + node_modules/date-fns/esm/locale/id/index.js | 32 + .../date-fns/esm/locale/id/index.js.flow | 35 + .../date-fns/esm/locale/id/package.json | 4 + node_modules/date-fns/esm/locale/index.js | 76 + .../date-fns/esm/locale/index.js.flow | 113 + .../locale/is/_lib/formatDistance/index.js | 85 + .../esm/locale/is/_lib/formatLong/index.js | 34 + .../locale/is/_lib/formatRelative/index.js | 11 + .../esm/locale/is/_lib/localize/index.js | 121 + .../esm/locale/is/_lib/match/index.js | 98 + .../date-fns/esm/locale/is/index.d.ts | 4 + node_modules/date-fns/esm/locale/is/index.js | 30 + .../date-fns/esm/locale/is/index.js.flow | 35 + .../date-fns/esm/locale/is/package.json | 4 + .../locale/it/_lib/formatDistance/index.js | 85 + .../esm/locale/it/_lib/formatLong/index.js | 34 + .../locale/it/_lib/formatRelative/index.js | 60 + .../esm/locale/it/_lib/localize/index.js | 121 + .../esm/locale/it/_lib/match/index.js | 98 + .../date-fns/esm/locale/it/index.d.ts | 4 + node_modules/date-fns/esm/locale/it/index.js | 31 + .../date-fns/esm/locale/it/index.js.flow | 35 + .../date-fns/esm/locale/it/package.json | 4 + .../locale/ja/_lib/formatDistance/index.js | 97 + .../esm/locale/ja/_lib/formatLong/index.js | 34 + .../locale/ja/_lib/formatRelative/index.js | 11 + .../esm/locale/ja/_lib/localize/index.js | 137 + .../esm/locale/ja/_lib/match/index.js | 96 + .../date-fns/esm/locale/ja/index.d.ts | 4 + node_modules/date-fns/esm/locale/ja/index.js | 33 + .../date-fns/esm/locale/ja/index.js.flow | 35 + .../date-fns/esm/locale/ja/package.json | 4 + .../locale/ka/_lib/formatDistance/index.js | 98 + .../esm/locale/ka/_lib/formatLong/index.js | 34 + .../locale/ka/_lib/formatRelative/index.js | 11 + .../esm/locale/ka/_lib/localize/index.js | 138 + .../esm/locale/ka/_lib/match/index.js | 92 + .../date-fns/esm/locale/ka/index.d.ts | 4 + node_modules/date-fns/esm/locale/ka/index.js | 30 + .../date-fns/esm/locale/ka/index.js.flow | 35 + .../date-fns/esm/locale/ka/package.json | 4 + .../locale/kk/_lib/formatDistance/index.js | 225 + .../esm/locale/kk/_lib/formatLong/index.js | 31 + .../locale/kk/_lib/formatRelative/index.js | 51 + .../esm/locale/kk/_lib/localize/index.js | 119 + .../esm/locale/kk/_lib/match/index.js | 100 + .../date-fns/esm/locale/kk/index.d.ts | 4 + node_modules/date-fns/esm/locale/kk/index.js | 29 + .../date-fns/esm/locale/kk/index.js.flow | 35 + .../date-fns/esm/locale/kk/package.json | 4 + .../locale/kn/_lib/formatDistance/index.js | 192 + .../esm/locale/kn/_lib/formatLong/index.js | 47 + .../locale/kn/_lib/formatRelative/index.js | 11 + .../esm/locale/kn/_lib/localize/index.js | 129 + .../esm/locale/kn/_lib/match/index.js | 98 + .../date-fns/esm/locale/kn/index.d.ts | 4 + node_modules/date-fns/esm/locale/kn/index.js | 29 + .../date-fns/esm/locale/kn/index.js.flow | 35 + .../date-fns/esm/locale/kn/package.json | 4 + .../locale/ko/_lib/formatDistance/index.js | 85 + .../esm/locale/ko/_lib/formatLong/index.js | 34 + .../locale/ko/_lib/formatRelative/index.js | 11 + .../esm/locale/ko/_lib/localize/index.js | 134 + .../esm/locale/ko/_lib/match/index.js | 95 + .../date-fns/esm/locale/ko/index.d.ts | 4 + node_modules/date-fns/esm/locale/ko/index.js | 31 + .../date-fns/esm/locale/ko/index.js.flow | 35 + .../date-fns/esm/locale/ko/package.json | 4 + .../locale/lb/_lib/formatDistance/index.js | 204 + .../esm/locale/lb/_lib/formatLong/index.js | 39 + .../locale/lb/_lib/formatRelative/index.js | 28 + .../esm/locale/lb/_lib/localize/index.js | 121 + .../esm/locale/lb/_lib/match/index.js | 100 + .../date-fns/esm/locale/lb/index.d.ts | 4 + node_modules/date-fns/esm/locale/lb/index.js | 29 + .../date-fns/esm/locale/lb/index.js.flow | 35 + .../date-fns/esm/locale/lb/package.json | 4 + .../locale/lt/_lib/formatDistance/index.js | 147 + .../esm/locale/lt/_lib/formatLong/index.js | 34 + .../locale/lt/_lib/formatRelative/index.js | 11 + .../esm/locale/lt/_lib/localize/index.js | 143 + .../esm/locale/lt/_lib/match/index.js | 111 + .../date-fns/esm/locale/lt/index.d.ts | 4 + node_modules/date-fns/esm/locale/lt/index.js | 33 + .../date-fns/esm/locale/lt/index.js.flow | 35 + .../date-fns/esm/locale/lt/package.json | 4 + .../locale/lv/_lib/formatDistance/index.js | 104 + .../esm/locale/lv/_lib/formatLong/index.js | 34 + .../locale/lv/_lib/formatRelative/index.js | 33 + .../esm/locale/lv/_lib/localize/index.js | 142 + .../esm/locale/lv/_lib/match/index.js | 101 + .../date-fns/esm/locale/lv/index.d.ts | 4 + node_modules/date-fns/esm/locale/lv/index.js | 29 + .../date-fns/esm/locale/lv/index.js.flow | 35 + .../date-fns/esm/locale/lv/package.json | 4 + .../locale/mk/_lib/formatDistance/index.js | 85 + .../esm/locale/mk/_lib/formatLong/index.js | 31 + .../locale/mk/_lib/formatRelative/index.js | 87 + .../esm/locale/mk/_lib/localize/index.js | 82 + .../esm/locale/mk/_lib/match/index.js | 95 + .../date-fns/esm/locale/mk/index.d.ts | 4 + node_modules/date-fns/esm/locale/mk/index.js | 30 + .../date-fns/esm/locale/mk/index.js.flow | 35 + .../date-fns/esm/locale/mk/package.json | 4 + .../locale/ms/_lib/formatDistance/index.js | 85 + .../esm/locale/ms/_lib/formatLong/index.js | 34 + .../locale/ms/_lib/formatRelative/index.js | 11 + .../esm/locale/ms/_lib/localize/index.js | 131 + .../esm/locale/ms/_lib/match/index.js | 98 + .../date-fns/esm/locale/ms/index.d.ts | 4 + node_modules/date-fns/esm/locale/ms/index.js | 29 + .../date-fns/esm/locale/ms/index.js.flow | 35 + .../date-fns/esm/locale/ms/package.json | 4 + .../locale/mt/_lib/formatDistance/index.js | 92 + .../esm/locale/mt/_lib/formatLong/index.js | 34 + .../locale/mt/_lib/formatRelative/index.js | 11 + .../esm/locale/mt/_lib/localize/index.js | 121 + .../esm/locale/mt/_lib/match/index.js | 98 + .../date-fns/esm/locale/mt/index.d.ts | 4 + node_modules/date-fns/esm/locale/mt/index.js | 30 + .../date-fns/esm/locale/mt/index.js.flow | 35 + .../date-fns/esm/locale/mt/package.json | 4 + .../locale/nb/_lib/formatDistance/index.js | 93 + .../esm/locale/nb/_lib/formatLong/index.js | 34 + .../locale/nb/_lib/formatRelative/index.js | 11 + .../esm/locale/nb/_lib/localize/index.js | 87 + .../esm/locale/nb/_lib/match/index.js | 97 + .../date-fns/esm/locale/nb/index.d.ts | 4 + node_modules/date-fns/esm/locale/nb/index.js | 31 + .../date-fns/esm/locale/nb/index.js.flow | 35 + .../date-fns/esm/locale/nb/package.json | 4 + .../locale/nl-BE/_lib/formatDistance/index.js | 85 + .../esm/locale/nl-BE/_lib/formatLong/index.js | 34 + .../locale/nl-BE/_lib/formatRelative/index.js | 11 + .../esm/locale/nl-BE/_lib/localize/index.js | 87 + .../esm/locale/nl-BE/_lib/match/index.js | 97 + .../date-fns/esm/locale/nl-BE/index.d.ts | 4 + .../date-fns/esm/locale/nl-BE/index.js | 32 + .../date-fns/esm/locale/nl-BE/index.js.flow | 35 + .../date-fns/esm/locale/nl-BE/package.json | 4 + .../locale/nl/_lib/formatDistance/index.js | 85 + .../esm/locale/nl/_lib/formatLong/index.js | 34 + .../locale/nl/_lib/formatRelative/index.js | 11 + .../esm/locale/nl/_lib/localize/index.js | 87 + .../esm/locale/nl/_lib/match/index.js | 97 + .../date-fns/esm/locale/nl/index.d.ts | 4 + node_modules/date-fns/esm/locale/nl/index.js | 34 + .../date-fns/esm/locale/nl/index.js.flow | 35 + .../date-fns/esm/locale/nl/package.json | 4 + .../locale/nn/_lib/formatDistance/index.js | 93 + .../esm/locale/nn/_lib/formatLong/index.js | 34 + .../locale/nn/_lib/formatRelative/index.js | 11 + .../esm/locale/nn/_lib/localize/index.js | 87 + .../esm/locale/nn/_lib/match/index.js | 97 + .../date-fns/esm/locale/nn/index.d.ts | 4 + node_modules/date-fns/esm/locale/nn/index.js | 29 + .../date-fns/esm/locale/nn/index.js.flow | 35 + .../date-fns/esm/locale/nn/package.json | 4 + node_modules/date-fns/esm/locale/package.json | 4 + .../locale/pl/_lib/formatDistance/index.js | 151 + .../esm/locale/pl/_lib/formatLong/index.js | 34 + .../locale/pl/_lib/formatRelative/index.js | 64 + .../esm/locale/pl/_lib/localize/index.js | 136 + .../esm/locale/pl/_lib/match/index.js | 110 + .../date-fns/esm/locale/pl/index.d.ts | 4 + node_modules/date-fns/esm/locale/pl/index.js | 32 + .../date-fns/esm/locale/pl/index.js.flow | 35 + .../date-fns/esm/locale/pl/package.json | 4 + .../locale/pt-BR/_lib/formatDistance/index.js | 85 + .../esm/locale/pt-BR/_lib/formatLong/index.js | 34 + .../locale/pt-BR/_lib/formatRelative/index.js | 21 + .../esm/locale/pt-BR/_lib/localize/index.js | 128 + .../esm/locale/pt-BR/_lib/match/index.js | 100 + .../date-fns/esm/locale/pt-BR/index.d.ts | 4 + .../date-fns/esm/locale/pt-BR/index.js | 30 + .../date-fns/esm/locale/pt-BR/index.js.flow | 35 + .../date-fns/esm/locale/pt-BR/package.json | 4 + .../locale/pt/_lib/formatDistance/index.js | 89 + .../esm/locale/pt/_lib/formatLong/index.js | 34 + .../locale/pt/_lib/formatRelative/index.js | 11 + .../esm/locale/pt/_lib/localize/index.js | 121 + .../esm/locale/pt/_lib/match/index.js | 99 + .../date-fns/esm/locale/pt/index.d.ts | 4 + node_modules/date-fns/esm/locale/pt/index.js | 30 + .../date-fns/esm/locale/pt/index.js.flow | 35 + .../date-fns/esm/locale/pt/package.json | 4 + .../locale/ro/_lib/formatDistance/index.js | 85 + .../esm/locale/ro/_lib/formatLong/index.js | 34 + .../locale/ro/_lib/formatRelative/index.js | 11 + .../esm/locale/ro/_lib/localize/index.js | 121 + .../esm/locale/ro/_lib/match/index.js | 99 + .../date-fns/esm/locale/ro/index.d.ts | 4 + node_modules/date-fns/esm/locale/ro/index.js | 31 + .../date-fns/esm/locale/ro/index.js.flow | 35 + .../date-fns/esm/locale/ro/package.json | 4 + .../locale/ru/_lib/formatDistance/index.js | 226 + .../esm/locale/ru/_lib/formatLong/index.js | 31 + .../locale/ru/_lib/formatRelative/index.js | 86 + .../esm/locale/ru/_lib/localize/index.js | 139 + .../esm/locale/ru/_lib/match/index.js | 99 + .../date-fns/esm/locale/ru/index.d.ts | 4 + node_modules/date-fns/esm/locale/ru/index.js | 30 + .../date-fns/esm/locale/ru/index.js.flow | 35 + .../date-fns/esm/locale/ru/package.json | 4 + .../locale/sk/_lib/formatDistance/index.js | 213 + .../esm/locale/sk/_lib/formatLong/index.js | 37 + .../locale/sk/_lib/formatRelative/index.js | 89 + .../esm/locale/sk/_lib/localize/index.js | 133 + .../esm/locale/sk/_lib/match/index.js | 99 + .../date-fns/esm/locale/sk/index.d.ts | 4 + node_modules/date-fns/esm/locale/sk/index.js | 29 + .../date-fns/esm/locale/sk/index.js.flow | 35 + .../date-fns/esm/locale/sk/package.json | 4 + .../locale/sl/_lib/formatDistance/index.js | 297 + .../esm/locale/sl/_lib/formatLong/index.js | 34 + .../locale/sl/_lib/formatRelative/index.js | 49 + .../esm/locale/sl/_lib/localize/index.js | 121 + .../esm/locale/sl/_lib/match/index.js | 108 + .../date-fns/esm/locale/sl/index.d.ts | 4 + node_modules/date-fns/esm/locale/sl/index.js | 30 + .../date-fns/esm/locale/sl/index.js.flow | 35 + .../date-fns/esm/locale/sl/package.json | 4 + .../sr-Latn/_lib/formatDistance/index.js | 172 + .../locale/sr-Latn/_lib/formatLong/index.js | 34 + .../sr-Latn/_lib/formatRelative/index.js | 49 + .../esm/locale/sr-Latn/_lib/localize/index.js | 128 + .../esm/locale/sr-Latn/_lib/match/index.js | 97 + .../date-fns/esm/locale/sr-Latn/index.d.ts | 4 + .../date-fns/esm/locale/sr-Latn/index.js | 29 + .../date-fns/esm/locale/sr-Latn/index.js.flow | 35 + .../date-fns/esm/locale/sr-Latn/package.json | 4 + .../locale/sr/_lib/formatDistance/index.js | 172 + .../esm/locale/sr/_lib/formatLong/index.js | 34 + .../locale/sr/_lib/formatRelative/index.js | 49 + .../esm/locale/sr/_lib/localize/index.js | 128 + .../esm/locale/sr/_lib/match/index.js | 97 + .../date-fns/esm/locale/sr/index.d.ts | 4 + node_modules/date-fns/esm/locale/sr/index.js | 29 + .../date-fns/esm/locale/sr/index.js.flow | 35 + .../date-fns/esm/locale/sr/package.json | 4 + .../locale/sv/_lib/formatDistance/index.js | 93 + .../esm/locale/sv/_lib/formatLong/index.js | 34 + .../locale/sv/_lib/formatRelative/index.js | 11 + .../esm/locale/sv/_lib/localize/index.js | 132 + .../esm/locale/sv/_lib/match/index.js | 96 + .../date-fns/esm/locale/sv/index.d.ts | 4 + node_modules/date-fns/esm/locale/sv/index.js | 31 + .../date-fns/esm/locale/sv/index.js.flow | 35 + .../date-fns/esm/locale/sv/package.json | 4 + .../locale/ta/_lib/formatDistance/index.js | 214 + .../esm/locale/ta/_lib/formatLong/index.js | 37 + .../locale/ta/_lib/formatRelative/index.js | 11 + .../esm/locale/ta/_lib/localize/index.js | 176 + .../esm/locale/ta/_lib/match/index.js | 99 + .../date-fns/esm/locale/ta/index.d.ts | 4 + node_modules/date-fns/esm/locale/ta/index.js | 29 + .../date-fns/esm/locale/ta/index.js.flow | 35 + .../date-fns/esm/locale/ta/package.json | 4 + .../locale/te/_lib/formatDistance/index.js | 187 + .../esm/locale/te/_lib/formatLong/index.js | 38 + .../locale/te/_lib/formatRelative/index.js | 17 + .../esm/locale/te/_lib/localize/index.js | 128 + .../esm/locale/te/_lib/match/index.js | 98 + .../date-fns/esm/locale/te/index.d.ts | 4 + node_modules/date-fns/esm/locale/te/index.js | 29 + .../date-fns/esm/locale/te/index.js.flow | 35 + .../date-fns/esm/locale/te/package.json | 4 + .../locale/th/_lib/formatDistance/index.js | 89 + .../esm/locale/th/_lib/formatLong/index.js | 34 + .../locale/th/_lib/formatRelative/index.js | 11 + .../esm/locale/th/_lib/localize/index.js | 121 + .../esm/locale/th/_lib/match/index.js | 97 + .../date-fns/esm/locale/th/index.d.ts | 4 + node_modules/date-fns/esm/locale/th/index.js | 31 + .../date-fns/esm/locale/th/index.js.flow | 35 + .../date-fns/esm/locale/th/package.json | 4 + .../locale/tr/_lib/formatDistance/index.js | 85 + .../esm/locale/tr/_lib/formatLong/index.js | 34 + .../locale/tr/_lib/formatRelative/index.js | 11 + .../esm/locale/tr/_lib/localize/index.js | 121 + .../esm/locale/tr/_lib/match/index.js | 101 + .../date-fns/esm/locale/tr/index.d.ts | 4 + node_modules/date-fns/esm/locale/tr/index.js | 34 + .../date-fns/esm/locale/tr/index.js.flow | 35 + .../date-fns/esm/locale/tr/package.json | 4 + .../locale/ug/_lib/formatDistance/index.js | 85 + .../esm/locale/ug/_lib/formatLong/index.js | 34 + .../locale/ug/_lib/formatRelative/index.js | 11 + .../esm/locale/ug/_lib/localize/index.js | 124 + .../esm/locale/ug/_lib/match/index.js | 97 + .../date-fns/esm/locale/ug/index.d.ts | 4 + node_modules/date-fns/esm/locale/ug/index.js | 29 + .../date-fns/esm/locale/ug/index.js.flow | 35 + .../date-fns/esm/locale/ug/package.json | 4 + .../locale/uk/_lib/formatDistance/index.js | 226 + .../esm/locale/uk/_lib/formatLong/index.js | 34 + .../locale/uk/_lib/formatRelative/index.js | 75 + .../esm/locale/uk/_lib/localize/index.js | 144 + .../esm/locale/uk/_lib/match/index.js | 99 + .../date-fns/esm/locale/uk/index.d.ts | 4 + node_modules/date-fns/esm/locale/uk/index.js | 30 + .../date-fns/esm/locale/uk/index.js.flow | 35 + .../date-fns/esm/locale/uk/package.json | 4 + .../locale/uz/_lib/formatDistance/index.js | 85 + .../esm/locale/uz/_lib/formatLong/index.js | 31 + .../locale/uz/_lib/formatRelative/index.js | 11 + .../esm/locale/uz/_lib/localize/index.js | 134 + .../esm/locale/uz/_lib/match/index.js | 98 + .../date-fns/esm/locale/uz/index.d.ts | 4 + node_modules/date-fns/esm/locale/uz/index.js | 29 + .../date-fns/esm/locale/uz/index.js.flow | 35 + .../date-fns/esm/locale/uz/package.json | 4 + .../locale/vi/_lib/formatDistance/index.js | 85 + .../esm/locale/vi/_lib/formatLong/index.js | 40 + .../locale/vi/_lib/formatRelative/index.js | 11 + .../esm/locale/vi/_lib/localize/index.js | 221 + .../esm/locale/vi/_lib/match/index.js | 106 + .../date-fns/esm/locale/vi/index.d.ts | 4 + node_modules/date-fns/esm/locale/vi/index.js | 32 + .../date-fns/esm/locale/vi/index.js.flow | 35 + .../date-fns/esm/locale/vi/package.json | 4 + .../locale/zh-CN/_lib/formatDistance/index.js | 85 + .../esm/locale/zh-CN/_lib/formatLong/index.js | 34 + .../locale/zh-CN/_lib/formatRelative/index.js | 31 + .../esm/locale/zh-CN/_lib/localize/index.js | 148 + .../esm/locale/zh-CN/_lib/match/index.js | 96 + .../date-fns/esm/locale/zh-CN/index.d.ts | 4 + .../date-fns/esm/locale/zh-CN/index.js | 33 + .../date-fns/esm/locale/zh-CN/index.js.flow | 35 + .../date-fns/esm/locale/zh-CN/package.json | 4 + .../locale/zh-TW/_lib/formatDistance/index.js | 85 + .../esm/locale/zh-TW/_lib/formatLong/index.js | 34 + .../locale/zh-TW/_lib/formatRelative/index.js | 11 + .../esm/locale/zh-TW/_lib/localize/index.js | 148 + .../esm/locale/zh-TW/_lib/match/index.js | 96 + .../date-fns/esm/locale/zh-TW/index.d.ts | 4 + .../date-fns/esm/locale/zh-TW/index.js | 31 + .../date-fns/esm/locale/zh-TW/index.js.flow | 35 + .../date-fns/esm/locale/zh-TW/package.json | 4 + node_modules/date-fns/esm/max/index.d.ts | 4 + node_modules/date-fns/esm/max/index.js | 65 + node_modules/date-fns/esm/max/index.js.flow | 50 + node_modules/date-fns/esm/max/package.json | 4 + node_modules/date-fns/esm/min/index.d.ts | 4 + node_modules/date-fns/esm/min/index.js | 65 + node_modules/date-fns/esm/min/index.js.flow | 50 + node_modules/date-fns/esm/min/package.json | 4 + .../date-fns/esm/parse/_lib/parsers/index.js | 1503 ++ node_modules/date-fns/esm/parse/index.d.ts | 4 + node_modules/date-fns/esm/parse/index.js | 550 + node_modules/date-fns/esm/parse/index.js.flow | 61 + node_modules/date-fns/esm/parse/package.json | 4 + node_modules/date-fns/esm/parseISO/index.d.ts | 4 + node_modules/date-fns/esm/parseISO/index.js | 290 + .../date-fns/esm/parseISO/index.js.flow | 55 + .../date-fns/esm/parseISO/package.json | 4 + .../date-fns/esm/parseJSON/index.d.ts | 4 + node_modules/date-fns/esm/parseJSON/index.js | 51 + .../date-fns/esm/parseJSON/index.js.flow | 50 + .../date-fns/esm/parseJSON/package.json | 4 + .../esm/roundToNearestMinutes/index.d.ts | 4 + .../esm/roundToNearestMinutes/index.js | 54 + .../esm/roundToNearestMinutes/index.js.flow | 55 + .../esm/roundToNearestMinutes/package.json | 4 + node_modules/date-fns/esm/set/index.d.ts | 4 + node_modules/date-fns/esm/set/index.js | 86 + node_modules/date-fns/esm/set/index.js.flow | 61 + node_modules/date-fns/esm/set/package.json | 4 + node_modules/date-fns/esm/setDate/index.d.ts | 4 + node_modules/date-fns/esm/setDate/index.js | 33 + .../date-fns/esm/setDate/index.js.flow | 50 + .../date-fns/esm/setDate/package.json | 4 + node_modules/date-fns/esm/setDay/index.d.ts | 4 + node_modules/date-fns/esm/setDay/index.js | 57 + .../date-fns/esm/setDay/index.js.flow | 57 + node_modules/date-fns/esm/setDay/package.json | 4 + .../date-fns/esm/setDayOfYear/index.d.ts | 4 + .../date-fns/esm/setDayOfYear/index.js | 34 + .../date-fns/esm/setDayOfYear/index.js.flow | 50 + .../date-fns/esm/setDayOfYear/package.json | 4 + node_modules/date-fns/esm/setHours/index.d.ts | 4 + node_modules/date-fns/esm/setHours/index.js | 33 + .../date-fns/esm/setHours/index.js.flow | 50 + .../date-fns/esm/setHours/package.json | 4 + .../date-fns/esm/setISODay/index.d.ts | 4 + node_modules/date-fns/esm/setISODay/index.js | 38 + .../date-fns/esm/setISODay/index.js.flow | 50 + .../date-fns/esm/setISODay/package.json | 4 + .../date-fns/esm/setISOWeek/index.d.ts | 4 + node_modules/date-fns/esm/setISOWeek/index.js | 37 + .../date-fns/esm/setISOWeek/index.js.flow | 50 + .../date-fns/esm/setISOWeek/package.json | 4 + .../date-fns/esm/setISOWeekYear/index.d.ts | 4 + .../date-fns/esm/setISOWeekYear/index.js | 48 + .../date-fns/esm/setISOWeekYear/index.js.flow | 50 + .../date-fns/esm/setISOWeekYear/package.json | 4 + .../date-fns/esm/setMilliseconds/index.d.ts | 4 + .../date-fns/esm/setMilliseconds/index.js | 33 + .../esm/setMilliseconds/index.js.flow | 50 + .../date-fns/esm/setMilliseconds/package.json | 4 + .../date-fns/esm/setMinutes/index.d.ts | 4 + node_modules/date-fns/esm/setMinutes/index.js | 33 + .../date-fns/esm/setMinutes/index.js.flow | 50 + .../date-fns/esm/setMinutes/package.json | 4 + node_modules/date-fns/esm/setMonth/index.d.ts | 4 + node_modules/date-fns/esm/setMonth/index.js | 42 + .../date-fns/esm/setMonth/index.js.flow | 50 + .../date-fns/esm/setMonth/package.json | 4 + .../date-fns/esm/setQuarter/index.d.ts | 4 + node_modules/date-fns/esm/setQuarter/index.js | 35 + .../date-fns/esm/setQuarter/index.js.flow | 50 + .../date-fns/esm/setQuarter/package.json | 4 + .../date-fns/esm/setSeconds/index.d.ts | 4 + node_modules/date-fns/esm/setSeconds/index.js | 33 + .../date-fns/esm/setSeconds/index.js.flow | 50 + .../date-fns/esm/setSeconds/package.json | 4 + node_modules/date-fns/esm/setWeek/index.d.ts | 4 + node_modules/date-fns/esm/setWeek/index.js | 57 + .../date-fns/esm/setWeek/index.js.flow | 58 + .../date-fns/esm/setWeek/package.json | 4 + .../date-fns/esm/setWeekYear/index.d.ts | 4 + .../date-fns/esm/setWeekYear/index.js | 68 + .../date-fns/esm/setWeekYear/index.js.flow | 58 + .../date-fns/esm/setWeekYear/package.json | 4 + node_modules/date-fns/esm/setYear/index.d.ts | 4 + node_modules/date-fns/esm/setYear/index.js | 38 + .../date-fns/esm/setYear/index.js.flow | 50 + .../date-fns/esm/setYear/package.json | 4 + .../date-fns/esm/startOfDay/index.d.ts | 4 + node_modules/date-fns/esm/startOfDay/index.js | 31 + .../date-fns/esm/startOfDay/index.js.flow | 50 + .../date-fns/esm/startOfDay/package.json | 4 + .../date-fns/esm/startOfDecade/index.d.ts | 4 + .../date-fns/esm/startOfDecade/index.js | 33 + .../date-fns/esm/startOfDecade/index.js.flow | 50 + .../date-fns/esm/startOfDecade/package.json | 4 + .../date-fns/esm/startOfHour/index.d.ts | 4 + .../date-fns/esm/startOfHour/index.js | 31 + .../date-fns/esm/startOfHour/index.js.flow | 50 + .../date-fns/esm/startOfHour/package.json | 4 + .../date-fns/esm/startOfISOWeek/index.d.ts | 4 + .../date-fns/esm/startOfISOWeek/index.js | 33 + .../date-fns/esm/startOfISOWeek/index.js.flow | 50 + .../date-fns/esm/startOfISOWeek/package.json | 4 + .../esm/startOfISOWeekYear/index.d.ts | 4 + .../date-fns/esm/startOfISOWeekYear/index.js | 38 + .../esm/startOfISOWeekYear/index.js.flow | 50 + .../esm/startOfISOWeekYear/package.json | 4 + .../date-fns/esm/startOfMinute/index.d.ts | 4 + .../date-fns/esm/startOfMinute/index.js | 31 + .../date-fns/esm/startOfMinute/index.js.flow | 50 + .../date-fns/esm/startOfMinute/package.json | 4 + .../date-fns/esm/startOfMonth/index.d.ts | 4 + .../date-fns/esm/startOfMonth/index.js | 32 + .../date-fns/esm/startOfMonth/index.js.flow | 50 + .../date-fns/esm/startOfMonth/package.json | 4 + .../date-fns/esm/startOfQuarter/index.d.ts | 4 + .../date-fns/esm/startOfQuarter/index.js | 34 + .../date-fns/esm/startOfQuarter/index.js.flow | 50 + .../date-fns/esm/startOfQuarter/package.json | 4 + .../date-fns/esm/startOfSecond/index.d.ts | 4 + .../date-fns/esm/startOfSecond/index.js | 31 + .../date-fns/esm/startOfSecond/index.js.flow | 50 + .../date-fns/esm/startOfSecond/package.json | 4 + .../date-fns/esm/startOfToday/index.d.ts | 4 + .../date-fns/esm/startOfToday/index.js | 28 + .../date-fns/esm/startOfToday/index.js.flow | 50 + .../date-fns/esm/startOfToday/package.json | 4 + .../date-fns/esm/startOfTomorrow/index.d.ts | 4 + .../date-fns/esm/startOfTomorrow/index.js | 33 + .../esm/startOfTomorrow/index.js.flow | 50 + .../date-fns/esm/startOfTomorrow/package.json | 4 + .../date-fns/esm/startOfWeek/index.d.ts | 4 + .../date-fns/esm/startOfWeek/index.js | 54 + .../date-fns/esm/startOfWeek/index.js.flow | 56 + .../date-fns/esm/startOfWeek/package.json | 4 + .../date-fns/esm/startOfWeekYear/index.d.ts | 4 + .../date-fns/esm/startOfWeekYear/index.js | 62 + .../esm/startOfWeekYear/index.js.flow | 57 + .../date-fns/esm/startOfWeekYear/package.json | 4 + .../date-fns/esm/startOfYear/index.d.ts | 4 + .../date-fns/esm/startOfYear/index.js | 33 + .../date-fns/esm/startOfYear/index.js.flow | 50 + .../date-fns/esm/startOfYear/package.json | 4 + .../date-fns/esm/startOfYesterday/index.d.ts | 4 + .../date-fns/esm/startOfYesterday/index.js | 33 + .../esm/startOfYesterday/index.js.flow | 50 + .../esm/startOfYesterday/package.json | 4 + node_modules/date-fns/esm/sub/index.d.ts | 4 + node_modules/date-fns/esm/sub/index.js | 66 + node_modules/date-fns/esm/sub/index.js.flow | 50 + node_modules/date-fns/esm/sub/package.json | 4 + .../date-fns/esm/subBusinessDays/index.d.ts | 4 + .../date-fns/esm/subBusinessDays/index.js | 27 + .../esm/subBusinessDays/index.js.flow | 50 + .../date-fns/esm/subBusinessDays/package.json | 4 + node_modules/date-fns/esm/subDays/index.d.ts | 4 + node_modules/date-fns/esm/subDays/index.js | 31 + .../date-fns/esm/subDays/index.js.flow | 50 + .../date-fns/esm/subDays/package.json | 4 + node_modules/date-fns/esm/subHours/index.d.ts | 4 + node_modules/date-fns/esm/subHours/index.js | 31 + .../date-fns/esm/subHours/index.js.flow | 50 + .../date-fns/esm/subHours/package.json | 4 + .../date-fns/esm/subISOWeekYears/index.d.ts | 4 + .../date-fns/esm/subISOWeekYears/index.js | 38 + .../esm/subISOWeekYears/index.js.flow | 50 + .../date-fns/esm/subISOWeekYears/package.json | 4 + .../date-fns/esm/subMilliseconds/index.d.ts | 4 + .../date-fns/esm/subMilliseconds/index.js | 31 + .../esm/subMilliseconds/index.js.flow | 50 + .../date-fns/esm/subMilliseconds/package.json | 4 + .../date-fns/esm/subMinutes/index.d.ts | 4 + node_modules/date-fns/esm/subMinutes/index.js | 31 + .../date-fns/esm/subMinutes/index.js.flow | 50 + .../date-fns/esm/subMinutes/package.json | 4 + .../date-fns/esm/subMonths/index.d.ts | 4 + node_modules/date-fns/esm/subMonths/index.js | 31 + .../date-fns/esm/subMonths/index.js.flow | 50 + .../date-fns/esm/subMonths/package.json | 4 + .../date-fns/esm/subQuarters/index.d.ts | 4 + .../date-fns/esm/subQuarters/index.js | 31 + .../date-fns/esm/subQuarters/index.js.flow | 50 + .../date-fns/esm/subQuarters/package.json | 4 + .../date-fns/esm/subSeconds/index.d.ts | 4 + node_modules/date-fns/esm/subSeconds/index.js | 31 + .../date-fns/esm/subSeconds/index.js.flow | 50 + .../date-fns/esm/subSeconds/package.json | 4 + node_modules/date-fns/esm/subWeeks/index.d.ts | 4 + node_modules/date-fns/esm/subWeeks/index.js | 31 + .../date-fns/esm/subWeeks/index.js.flow | 50 + .../date-fns/esm/subWeeks/package.json | 4 + node_modules/date-fns/esm/subYears/index.d.ts | 4 + node_modules/date-fns/esm/subYears/index.js | 31 + .../date-fns/esm/subYears/index.js.flow | 50 + .../date-fns/esm/subYears/package.json | 4 + node_modules/date-fns/esm/toDate/index.d.ts | 4 + node_modules/date-fns/esm/toDate/index.js | 52 + .../date-fns/esm/toDate/index.js.flow | 50 + node_modules/date-fns/esm/toDate/package.json | 4 + node_modules/date-fns/format/index.d.ts | 4 + node_modules/date-fns/format/index.js | 452 + node_modules/date-fns/format/index.js.flow | 60 + node_modules/date-fns/format/package.json | 5 + .../date-fns/formatDistance/index.d.ts | 4 + node_modules/date-fns/formatDistance/index.js | 232 + .../date-fns/formatDistance/index.js.flow | 58 + .../date-fns/formatDistance/package.json | 5 + .../date-fns/formatDistanceStrict/index.d.ts | 4 + .../date-fns/formatDistanceStrict/index.js | 265 + .../formatDistanceStrict/index.js.flow | 59 + .../formatDistanceStrict/package.json | 5 + .../date-fns/formatDistanceToNow/index.d.ts | 4 + .../date-fns/formatDistanceToNow/index.js | 124 + .../formatDistanceToNow/index.js.flow | 57 + .../date-fns/formatDistanceToNow/package.json | 5 + .../formatDistanceToNowStrict/index.d.ts | 4 + .../formatDistanceToNowStrict/index.js | 93 + .../formatDistanceToNowStrict/index.js.flow | 58 + .../formatDistanceToNowStrict/package.json | 5 + .../date-fns/formatDuration/index.d.ts | 4 + node_modules/date-fns/formatDuration/index.js | 98 + .../date-fns/formatDuration/index.js.flow | 58 + .../date-fns/formatDuration/package.json | 5 + node_modules/date-fns/formatISO/index.d.ts | 4 + node_modules/date-fns/formatISO/index.js | 120 + node_modules/date-fns/formatISO/index.js.flow | 56 + node_modules/date-fns/formatISO/package.json | 5 + .../date-fns/formatISO9075/index.d.ts | 4 + node_modules/date-fns/formatISO9075/index.js | 103 + .../date-fns/formatISO9075/index.js.flow | 56 + .../date-fns/formatISO9075/package.json | 5 + .../date-fns/formatISODuration/index.d.ts | 4 + .../date-fns/formatISODuration/index.js | 56 + .../date-fns/formatISODuration/index.js.flow | 50 + .../date-fns/formatISODuration/package.json | 5 + .../date-fns/formatRFC3339/index.d.ts | 4 + node_modules/date-fns/formatRFC3339/index.js | 98 + .../date-fns/formatRFC3339/index.js.flow | 55 + .../date-fns/formatRFC3339/package.json | 5 + .../date-fns/formatRFC7231/index.d.ts | 4 + node_modules/date-fns/formatRFC7231/index.js | 60 + .../date-fns/formatRFC7231/index.js.flow | 50 + .../date-fns/formatRFC7231/package.json | 5 + .../date-fns/formatRelative/index.d.ts | 4 + node_modules/date-fns/formatRelative/index.js | 108 + .../date-fns/formatRelative/index.js.flow | 57 + .../date-fns/formatRelative/package.json | 5 + .../date-fns/fp/_lib/convertToFP/index.js | 21 + node_modules/date-fns/fp/add/index.d.ts | 4 + node_modules/date-fns/fp/add/index.js | 18 + node_modules/date-fns/fp/add/index.js.flow | 56 + node_modules/date-fns/fp/add/package.json | 5 + .../date-fns/fp/addBusinessDays/index.d.ts | 4 + .../date-fns/fp/addBusinessDays/index.js | 18 + .../date-fns/fp/addBusinessDays/index.js.flow | 56 + .../date-fns/fp/addBusinessDays/package.json | 5 + node_modules/date-fns/fp/addDays/index.d.ts | 4 + node_modules/date-fns/fp/addDays/index.js | 18 + .../date-fns/fp/addDays/index.js.flow | 56 + node_modules/date-fns/fp/addDays/package.json | 5 + node_modules/date-fns/fp/addHours/index.d.ts | 4 + node_modules/date-fns/fp/addHours/index.js | 18 + .../date-fns/fp/addHours/index.js.flow | 56 + .../date-fns/fp/addHours/package.json | 5 + .../date-fns/fp/addISOWeekYears/index.d.ts | 4 + .../date-fns/fp/addISOWeekYears/index.js | 18 + .../date-fns/fp/addISOWeekYears/index.js.flow | 56 + .../date-fns/fp/addISOWeekYears/package.json | 5 + .../date-fns/fp/addMilliseconds/index.d.ts | 4 + .../date-fns/fp/addMilliseconds/index.js | 18 + .../date-fns/fp/addMilliseconds/index.js.flow | 56 + .../date-fns/fp/addMilliseconds/package.json | 5 + .../date-fns/fp/addMinutes/index.d.ts | 4 + node_modules/date-fns/fp/addMinutes/index.js | 18 + .../date-fns/fp/addMinutes/index.js.flow | 56 + .../date-fns/fp/addMinutes/package.json | 5 + node_modules/date-fns/fp/addMonths/index.d.ts | 4 + node_modules/date-fns/fp/addMonths/index.js | 18 + .../date-fns/fp/addMonths/index.js.flow | 56 + .../date-fns/fp/addMonths/package.json | 5 + .../date-fns/fp/addQuarters/index.d.ts | 4 + node_modules/date-fns/fp/addQuarters/index.js | 18 + .../date-fns/fp/addQuarters/index.js.flow | 56 + .../date-fns/fp/addQuarters/package.json | 5 + .../date-fns/fp/addSeconds/index.d.ts | 4 + node_modules/date-fns/fp/addSeconds/index.js | 18 + .../date-fns/fp/addSeconds/index.js.flow | 56 + .../date-fns/fp/addSeconds/package.json | 5 + node_modules/date-fns/fp/addWeeks/index.d.ts | 4 + node_modules/date-fns/fp/addWeeks/index.js | 18 + .../date-fns/fp/addWeeks/index.js.flow | 56 + .../date-fns/fp/addWeeks/package.json | 5 + node_modules/date-fns/fp/addYears/index.d.ts | 4 + node_modules/date-fns/fp/addYears/index.js | 18 + .../date-fns/fp/addYears/index.js.flow | 56 + .../date-fns/fp/addYears/package.json | 5 + .../fp/areIntervalsOverlapping/index.d.ts | 4 + .../fp/areIntervalsOverlapping/index.js | 18 + .../fp/areIntervalsOverlapping/index.js.flow | 56 + .../fp/areIntervalsOverlapping/package.json | 5 + .../index.d.ts | 4 + .../index.js | 18 + .../index.js.flow | 72 + .../package.json | 5 + .../date-fns/fp/closestIndexTo/index.d.ts | 4 + .../date-fns/fp/closestIndexTo/index.js | 18 + .../date-fns/fp/closestIndexTo/index.js.flow | 56 + .../date-fns/fp/closestIndexTo/package.json | 5 + node_modules/date-fns/fp/closestTo/index.d.ts | 4 + node_modules/date-fns/fp/closestTo/index.js | 18 + .../date-fns/fp/closestTo/index.js.flow | 56 + .../date-fns/fp/closestTo/package.json | 5 + .../date-fns/fp/compareAsc/index.d.ts | 4 + node_modules/date-fns/fp/compareAsc/index.js | 18 + .../date-fns/fp/compareAsc/index.js.flow | 56 + .../date-fns/fp/compareAsc/package.json | 5 + .../date-fns/fp/compareDesc/index.d.ts | 4 + node_modules/date-fns/fp/compareDesc/index.js | 18 + .../date-fns/fp/compareDesc/index.js.flow | 56 + .../date-fns/fp/compareDesc/package.json | 5 + .../fp/differenceInBusinessDays/index.d.ts | 4 + .../fp/differenceInBusinessDays/index.js | 18 + .../fp/differenceInBusinessDays/index.js.flow | 56 + .../fp/differenceInBusinessDays/package.json | 5 + .../fp/differenceInCalendarDays/index.d.ts | 4 + .../fp/differenceInCalendarDays/index.js | 18 + .../fp/differenceInCalendarDays/index.js.flow | 56 + .../fp/differenceInCalendarDays/package.json | 5 + .../index.d.ts | 4 + .../differenceInCalendarISOWeekYears/index.js | 18 + .../index.js.flow | 56 + .../package.json | 5 + .../differenceInCalendarISOWeeks/index.d.ts | 4 + .../fp/differenceInCalendarISOWeeks/index.js | 18 + .../index.js.flow | 56 + .../differenceInCalendarISOWeeks/package.json | 5 + .../fp/differenceInCalendarMonths/index.d.ts | 4 + .../fp/differenceInCalendarMonths/index.js | 18 + .../differenceInCalendarMonths/index.js.flow | 56 + .../differenceInCalendarMonths/package.json | 5 + .../differenceInCalendarQuarters/index.d.ts | 4 + .../fp/differenceInCalendarQuarters/index.js | 18 + .../index.js.flow | 56 + .../differenceInCalendarQuarters/package.json | 5 + .../fp/differenceInCalendarWeeks/index.d.ts | 4 + .../fp/differenceInCalendarWeeks/index.js | 18 + .../differenceInCalendarWeeks/index.js.flow | 56 + .../fp/differenceInCalendarWeeks/package.json | 5 + .../index.d.ts | 4 + .../index.js | 18 + .../index.js.flow | 73 + .../package.json | 5 + .../fp/differenceInCalendarYears/index.d.ts | 4 + .../fp/differenceInCalendarYears/index.js | 18 + .../differenceInCalendarYears/index.js.flow | 56 + .../fp/differenceInCalendarYears/package.json | 5 + .../date-fns/fp/differenceInDays/index.d.ts | 4 + .../date-fns/fp/differenceInDays/index.js | 18 + .../fp/differenceInDays/index.js.flow | 56 + .../date-fns/fp/differenceInDays/package.json | 5 + .../date-fns/fp/differenceInHours/index.d.ts | 4 + .../date-fns/fp/differenceInHours/index.js | 18 + .../fp/differenceInHours/index.js.flow | 56 + .../fp/differenceInHours/package.json | 5 + .../fp/differenceInISOWeekYears/index.d.ts | 4 + .../fp/differenceInISOWeekYears/index.js | 18 + .../fp/differenceInISOWeekYears/index.js.flow | 56 + .../fp/differenceInISOWeekYears/package.json | 5 + .../fp/differenceInMilliseconds/index.d.ts | 4 + .../fp/differenceInMilliseconds/index.js | 18 + .../fp/differenceInMilliseconds/index.js.flow | 56 + .../fp/differenceInMilliseconds/package.json | 5 + .../fp/differenceInMinutes/index.d.ts | 4 + .../date-fns/fp/differenceInMinutes/index.js | 18 + .../fp/differenceInMinutes/index.js.flow | 56 + .../fp/differenceInMinutes/package.json | 5 + .../date-fns/fp/differenceInMonths/index.d.ts | 4 + .../date-fns/fp/differenceInMonths/index.js | 18 + .../fp/differenceInMonths/index.js.flow | 56 + .../fp/differenceInMonths/package.json | 5 + .../fp/differenceInQuarters/index.d.ts | 4 + .../date-fns/fp/differenceInQuarters/index.js | 18 + .../fp/differenceInQuarters/index.js.flow | 56 + .../fp/differenceInQuarters/package.json | 5 + .../fp/differenceInSeconds/index.d.ts | 4 + .../date-fns/fp/differenceInSeconds/index.js | 18 + .../fp/differenceInSeconds/index.js.flow | 56 + .../fp/differenceInSeconds/package.json | 5 + .../date-fns/fp/differenceInWeeks/index.d.ts | 4 + .../date-fns/fp/differenceInWeeks/index.js | 18 + .../fp/differenceInWeeks/index.js.flow | 56 + .../fp/differenceInWeeks/package.json | 5 + .../date-fns/fp/differenceInYears/index.d.ts | 4 + .../date-fns/fp/differenceInYears/index.js | 18 + .../fp/differenceInYears/index.js.flow | 56 + .../fp/differenceInYears/package.json | 5 + .../date-fns/fp/eachDayOfInterval/index.d.ts | 4 + .../date-fns/fp/eachDayOfInterval/index.js | 18 + .../fp/eachDayOfInterval/index.js.flow | 52 + .../fp/eachDayOfInterval/package.json | 5 + .../eachDayOfIntervalWithOptions/index.d.ts | 4 + .../fp/eachDayOfIntervalWithOptions/index.js | 18 + .../index.js.flow | 62 + .../eachDayOfIntervalWithOptions/package.json | 5 + .../date-fns/fp/eachHourOfInterval/index.d.ts | 4 + .../date-fns/fp/eachHourOfInterval/index.js | 18 + .../fp/eachHourOfInterval/index.js.flow | 52 + .../fp/eachHourOfInterval/package.json | 5 + .../eachHourOfIntervalWithOptions/index.d.ts | 4 + .../fp/eachHourOfIntervalWithOptions/index.js | 18 + .../index.js.flow | 62 + .../package.json | 5 + .../fp/eachMonthOfInterval/index.d.ts | 4 + .../date-fns/fp/eachMonthOfInterval/index.js | 18 + .../fp/eachMonthOfInterval/index.js.flow | 52 + .../fp/eachMonthOfInterval/package.json | 5 + .../fp/eachQuarterOfInterval/index.d.ts | 4 + .../fp/eachQuarterOfInterval/index.js | 18 + .../fp/eachQuarterOfInterval/index.js.flow | 52 + .../fp/eachQuarterOfInterval/package.json | 5 + .../date-fns/fp/eachWeekOfInterval/index.d.ts | 4 + .../date-fns/fp/eachWeekOfInterval/index.js | 18 + .../fp/eachWeekOfInterval/index.js.flow | 52 + .../fp/eachWeekOfInterval/package.json | 5 + .../eachWeekOfIntervalWithOptions/index.d.ts | 4 + .../fp/eachWeekOfIntervalWithOptions/index.js | 18 + .../index.js.flow | 63 + .../package.json | 5 + .../fp/eachWeekendOfInterval/index.d.ts | 4 + .../fp/eachWeekendOfInterval/index.js | 18 + .../fp/eachWeekendOfInterval/index.js.flow | 52 + .../fp/eachWeekendOfInterval/package.json | 5 + .../date-fns/fp/eachWeekendOfMonth/index.d.ts | 4 + .../date-fns/fp/eachWeekendOfMonth/index.js | 18 + .../fp/eachWeekendOfMonth/index.js.flow | 52 + .../fp/eachWeekendOfMonth/package.json | 5 + .../date-fns/fp/eachWeekendOfYear/index.d.ts | 4 + .../date-fns/fp/eachWeekendOfYear/index.js | 18 + .../fp/eachWeekendOfYear/index.js.flow | 52 + .../fp/eachWeekendOfYear/package.json | 5 + .../date-fns/fp/eachYearOfInterval/index.d.ts | 4 + .../date-fns/fp/eachYearOfInterval/index.js | 18 + .../fp/eachYearOfInterval/index.js.flow | 52 + .../fp/eachYearOfInterval/package.json | 5 + node_modules/date-fns/fp/endOfDay/index.d.ts | 4 + node_modules/date-fns/fp/endOfDay/index.js | 18 + .../date-fns/fp/endOfDay/index.js.flow | 52 + .../date-fns/fp/endOfDay/package.json | 5 + .../date-fns/fp/endOfDecade/index.d.ts | 4 + node_modules/date-fns/fp/endOfDecade/index.js | 18 + .../date-fns/fp/endOfDecade/index.js.flow | 52 + .../date-fns/fp/endOfDecade/package.json | 5 + .../fp/endOfDecadeWithOptions/index.d.ts | 4 + .../fp/endOfDecadeWithOptions/index.js | 18 + .../fp/endOfDecadeWithOptions/index.js.flow | 62 + .../fp/endOfDecadeWithOptions/package.json | 5 + node_modules/date-fns/fp/endOfHour/index.d.ts | 4 + node_modules/date-fns/fp/endOfHour/index.js | 18 + .../date-fns/fp/endOfHour/index.js.flow | 52 + .../date-fns/fp/endOfHour/package.json | 5 + .../date-fns/fp/endOfISOWeek/index.d.ts | 4 + .../date-fns/fp/endOfISOWeek/index.js | 18 + .../date-fns/fp/endOfISOWeek/index.js.flow | 52 + .../date-fns/fp/endOfISOWeek/package.json | 5 + .../date-fns/fp/endOfISOWeekYear/index.d.ts | 4 + .../date-fns/fp/endOfISOWeekYear/index.js | 18 + .../fp/endOfISOWeekYear/index.js.flow | 52 + .../date-fns/fp/endOfISOWeekYear/package.json | 5 + .../date-fns/fp/endOfMinute/index.d.ts | 4 + node_modules/date-fns/fp/endOfMinute/index.js | 18 + .../date-fns/fp/endOfMinute/index.js.flow | 52 + .../date-fns/fp/endOfMinute/package.json | 5 + .../date-fns/fp/endOfMonth/index.d.ts | 4 + node_modules/date-fns/fp/endOfMonth/index.js | 18 + .../date-fns/fp/endOfMonth/index.js.flow | 52 + .../date-fns/fp/endOfMonth/package.json | 5 + .../date-fns/fp/endOfQuarter/index.d.ts | 4 + .../date-fns/fp/endOfQuarter/index.js | 18 + .../date-fns/fp/endOfQuarter/index.js.flow | 52 + .../date-fns/fp/endOfQuarter/package.json | 5 + .../date-fns/fp/endOfSecond/index.d.ts | 4 + node_modules/date-fns/fp/endOfSecond/index.js | 18 + .../date-fns/fp/endOfSecond/index.js.flow | 52 + .../date-fns/fp/endOfSecond/package.json | 5 + node_modules/date-fns/fp/endOfWeek/index.d.ts | 4 + node_modules/date-fns/fp/endOfWeek/index.js | 18 + .../date-fns/fp/endOfWeek/index.js.flow | 52 + .../date-fns/fp/endOfWeek/package.json | 5 + .../fp/endOfWeekWithOptions/index.d.ts | 4 + .../date-fns/fp/endOfWeekWithOptions/index.js | 18 + .../fp/endOfWeekWithOptions/index.js.flow | 63 + .../fp/endOfWeekWithOptions/package.json | 5 + node_modules/date-fns/fp/endOfYear/index.d.ts | 4 + node_modules/date-fns/fp/endOfYear/index.js | 18 + .../date-fns/fp/endOfYear/index.js.flow | 52 + .../date-fns/fp/endOfYear/package.json | 5 + node_modules/date-fns/fp/format/index.d.ts | 4 + node_modules/date-fns/fp/format/index.js | 18 + node_modules/date-fns/fp/format/index.js.flow | 56 + node_modules/date-fns/fp/format/package.json | 5 + .../date-fns/fp/formatDistance/index.d.ts | 4 + .../date-fns/fp/formatDistance/index.js | 18 + .../date-fns/fp/formatDistance/index.js.flow | 56 + .../date-fns/fp/formatDistance/package.json | 5 + .../fp/formatDistanceStrict/index.d.ts | 4 + .../date-fns/fp/formatDistanceStrict/index.js | 18 + .../fp/formatDistanceStrict/index.js.flow | 56 + .../fp/formatDistanceStrict/package.json | 5 + .../index.d.ts | 4 + .../formatDistanceStrictWithOptions/index.js | 18 + .../index.js.flow | 75 + .../package.json | 5 + .../fp/formatDistanceWithOptions/index.d.ts | 4 + .../fp/formatDistanceWithOptions/index.js | 18 + .../formatDistanceWithOptions/index.js.flow | 74 + .../fp/formatDistanceWithOptions/package.json | 5 + .../date-fns/fp/formatDuration/index.d.ts | 4 + .../date-fns/fp/formatDuration/index.js | 18 + .../date-fns/fp/formatDuration/index.js.flow | 52 + .../date-fns/fp/formatDuration/package.json | 5 + .../fp/formatDurationWithOptions/index.d.ts | 4 + .../fp/formatDurationWithOptions/index.js | 18 + .../formatDurationWithOptions/index.js.flow | 65 + .../fp/formatDurationWithOptions/package.json | 5 + node_modules/date-fns/fp/formatISO/index.d.ts | 4 + node_modules/date-fns/fp/formatISO/index.js | 18 + .../date-fns/fp/formatISO/index.js.flow | 52 + .../date-fns/fp/formatISO/package.json | 5 + .../date-fns/fp/formatISO9075/index.d.ts | 4 + .../date-fns/fp/formatISO9075/index.js | 18 + .../date-fns/fp/formatISO9075/index.js.flow | 52 + .../date-fns/fp/formatISO9075/package.json | 5 + .../fp/formatISO9075WithOptions/index.d.ts | 4 + .../fp/formatISO9075WithOptions/index.js | 18 + .../fp/formatISO9075WithOptions/index.js.flow | 63 + .../fp/formatISO9075WithOptions/package.json | 5 + .../date-fns/fp/formatISODuration/index.d.ts | 4 + .../date-fns/fp/formatISODuration/index.js | 18 + .../fp/formatISODuration/index.js.flow | 52 + .../fp/formatISODuration/package.json | 5 + .../fp/formatISOWithOptions/index.d.ts | 4 + .../date-fns/fp/formatISOWithOptions/index.js | 18 + .../fp/formatISOWithOptions/index.js.flow | 63 + .../fp/formatISOWithOptions/package.json | 5 + .../date-fns/fp/formatRFC3339/index.d.ts | 4 + .../date-fns/fp/formatRFC3339/index.js | 18 + .../date-fns/fp/formatRFC3339/index.js.flow | 52 + .../date-fns/fp/formatRFC3339/package.json | 5 + .../fp/formatRFC3339WithOptions/index.d.ts | 4 + .../fp/formatRFC3339WithOptions/index.js | 18 + .../fp/formatRFC3339WithOptions/index.js.flow | 62 + .../fp/formatRFC3339WithOptions/package.json | 5 + .../date-fns/fp/formatRFC7231/index.d.ts | 4 + .../date-fns/fp/formatRFC7231/index.js | 18 + .../date-fns/fp/formatRFC7231/index.js.flow | 52 + .../date-fns/fp/formatRFC7231/package.json | 5 + .../date-fns/fp/formatRelative/index.d.ts | 4 + .../date-fns/fp/formatRelative/index.js | 18 + .../date-fns/fp/formatRelative/index.js.flow | 56 + .../date-fns/fp/formatRelative/package.json | 5 + .../fp/formatRelativeWithOptions/index.d.ts | 4 + .../fp/formatRelativeWithOptions/index.js | 18 + .../formatRelativeWithOptions/index.js.flow | 73 + .../fp/formatRelativeWithOptions/package.json | 5 + .../date-fns/fp/formatWithOptions/index.d.ts | 4 + .../date-fns/fp/formatWithOptions/index.js | 18 + .../fp/formatWithOptions/index.js.flow | 76 + .../fp/formatWithOptions/package.json | 5 + .../date-fns/fp/fromUnixTime/index.d.ts | 4 + .../date-fns/fp/fromUnixTime/index.js | 18 + .../date-fns/fp/fromUnixTime/index.js.flow | 52 + .../date-fns/fp/fromUnixTime/package.json | 5 + node_modules/date-fns/fp/getDate/index.d.ts | 4 + node_modules/date-fns/fp/getDate/index.js | 18 + .../date-fns/fp/getDate/index.js.flow | 52 + node_modules/date-fns/fp/getDate/package.json | 5 + node_modules/date-fns/fp/getDay/index.d.ts | 4 + node_modules/date-fns/fp/getDay/index.js | 18 + node_modules/date-fns/fp/getDay/index.js.flow | 52 + node_modules/date-fns/fp/getDay/package.json | 5 + .../date-fns/fp/getDayOfYear/index.d.ts | 4 + .../date-fns/fp/getDayOfYear/index.js | 18 + .../date-fns/fp/getDayOfYear/index.js.flow | 52 + .../date-fns/fp/getDayOfYear/package.json | 5 + .../date-fns/fp/getDaysInMonth/index.d.ts | 4 + .../date-fns/fp/getDaysInMonth/index.js | 18 + .../date-fns/fp/getDaysInMonth/index.js.flow | 52 + .../date-fns/fp/getDaysInMonth/package.json | 5 + .../date-fns/fp/getDaysInYear/index.d.ts | 4 + .../date-fns/fp/getDaysInYear/index.js | 18 + .../date-fns/fp/getDaysInYear/index.js.flow | 52 + .../date-fns/fp/getDaysInYear/package.json | 5 + node_modules/date-fns/fp/getDecade/index.d.ts | 4 + node_modules/date-fns/fp/getDecade/index.js | 18 + .../date-fns/fp/getDecade/index.js.flow | 52 + .../date-fns/fp/getDecade/package.json | 5 + node_modules/date-fns/fp/getHours/index.d.ts | 4 + node_modules/date-fns/fp/getHours/index.js | 18 + .../date-fns/fp/getHours/index.js.flow | 52 + .../date-fns/fp/getHours/package.json | 5 + node_modules/date-fns/fp/getISODay/index.d.ts | 4 + node_modules/date-fns/fp/getISODay/index.js | 18 + .../date-fns/fp/getISODay/index.js.flow | 52 + .../date-fns/fp/getISODay/package.json | 5 + .../date-fns/fp/getISOWeek/index.d.ts | 4 + node_modules/date-fns/fp/getISOWeek/index.js | 18 + .../date-fns/fp/getISOWeek/index.js.flow | 52 + .../date-fns/fp/getISOWeek/package.json | 5 + .../date-fns/fp/getISOWeekYear/index.d.ts | 4 + .../date-fns/fp/getISOWeekYear/index.js | 18 + .../date-fns/fp/getISOWeekYear/index.js.flow | 52 + .../date-fns/fp/getISOWeekYear/package.json | 5 + .../date-fns/fp/getISOWeeksInYear/index.d.ts | 4 + .../date-fns/fp/getISOWeeksInYear/index.js | 18 + .../fp/getISOWeeksInYear/index.js.flow | 52 + .../fp/getISOWeeksInYear/package.json | 5 + .../date-fns/fp/getMilliseconds/index.d.ts | 4 + .../date-fns/fp/getMilliseconds/index.js | 18 + .../date-fns/fp/getMilliseconds/index.js.flow | 52 + .../date-fns/fp/getMilliseconds/package.json | 5 + .../date-fns/fp/getMinutes/index.d.ts | 4 + node_modules/date-fns/fp/getMinutes/index.js | 18 + .../date-fns/fp/getMinutes/index.js.flow | 52 + .../date-fns/fp/getMinutes/package.json | 5 + node_modules/date-fns/fp/getMonth/index.d.ts | 4 + node_modules/date-fns/fp/getMonth/index.js | 18 + .../date-fns/fp/getMonth/index.js.flow | 52 + .../date-fns/fp/getMonth/package.json | 5 + .../getOverlappingDaysInIntervals/index.d.ts | 4 + .../fp/getOverlappingDaysInIntervals/index.js | 18 + .../index.js.flow | 56 + .../package.json | 5 + .../date-fns/fp/getQuarter/index.d.ts | 4 + node_modules/date-fns/fp/getQuarter/index.js | 18 + .../date-fns/fp/getQuarter/index.js.flow | 52 + .../date-fns/fp/getQuarter/package.json | 5 + .../date-fns/fp/getSeconds/index.d.ts | 4 + node_modules/date-fns/fp/getSeconds/index.js | 18 + .../date-fns/fp/getSeconds/index.js.flow | 52 + .../date-fns/fp/getSeconds/package.json | 5 + node_modules/date-fns/fp/getTime/index.d.ts | 4 + node_modules/date-fns/fp/getTime/index.js | 18 + .../date-fns/fp/getTime/index.js.flow | 52 + node_modules/date-fns/fp/getTime/package.json | 5 + .../date-fns/fp/getUnixTime/index.d.ts | 4 + node_modules/date-fns/fp/getUnixTime/index.js | 18 + .../date-fns/fp/getUnixTime/index.js.flow | 52 + .../date-fns/fp/getUnixTime/package.json | 5 + node_modules/date-fns/fp/getWeek/index.d.ts | 4 + node_modules/date-fns/fp/getWeek/index.js | 18 + .../date-fns/fp/getWeek/index.js.flow | 52 + node_modules/date-fns/fp/getWeek/package.json | 5 + .../date-fns/fp/getWeekOfMonth/index.d.ts | 4 + .../date-fns/fp/getWeekOfMonth/index.js | 18 + .../date-fns/fp/getWeekOfMonth/index.js.flow | 52 + .../date-fns/fp/getWeekOfMonth/package.json | 5 + .../fp/getWeekOfMonthWithOptions/index.d.ts | 4 + .../fp/getWeekOfMonthWithOptions/index.js | 18 + .../getWeekOfMonthWithOptions/index.js.flow | 63 + .../fp/getWeekOfMonthWithOptions/package.json | 5 + .../date-fns/fp/getWeekWithOptions/index.d.ts | 4 + .../date-fns/fp/getWeekWithOptions/index.js | 18 + .../fp/getWeekWithOptions/index.js.flow | 64 + .../fp/getWeekWithOptions/package.json | 5 + .../date-fns/fp/getWeekYear/index.d.ts | 4 + node_modules/date-fns/fp/getWeekYear/index.js | 18 + .../date-fns/fp/getWeekYear/index.js.flow | 52 + .../date-fns/fp/getWeekYear/package.json | 5 + .../fp/getWeekYearWithOptions/index.d.ts | 4 + .../fp/getWeekYearWithOptions/index.js | 18 + .../fp/getWeekYearWithOptions/index.js.flow | 64 + .../fp/getWeekYearWithOptions/package.json | 5 + .../date-fns/fp/getWeeksInMonth/index.d.ts | 4 + .../date-fns/fp/getWeeksInMonth/index.js | 18 + .../date-fns/fp/getWeeksInMonth/index.js.flow | 52 + .../date-fns/fp/getWeeksInMonth/package.json | 5 + .../fp/getWeeksInMonthWithOptions/index.d.ts | 4 + .../fp/getWeeksInMonthWithOptions/index.js | 18 + .../getWeeksInMonthWithOptions/index.js.flow | 63 + .../getWeeksInMonthWithOptions/package.json | 5 + node_modules/date-fns/fp/getYear/index.d.ts | 4 + node_modules/date-fns/fp/getYear/index.js | 18 + .../date-fns/fp/getYear/index.js.flow | 52 + node_modules/date-fns/fp/getYear/package.json | 5 + node_modules/date-fns/fp/index.js | 1885 ++ node_modules/date-fns/fp/index.js.flow | 554 + .../date-fns/fp/intervalToDuration/index.d.ts | 4 + .../date-fns/fp/intervalToDuration/index.js | 18 + .../fp/intervalToDuration/index.js.flow | 52 + .../fp/intervalToDuration/package.json | 5 + node_modules/date-fns/fp/isAfter/index.d.ts | 4 + node_modules/date-fns/fp/isAfter/index.js | 18 + .../date-fns/fp/isAfter/index.js.flow | 56 + node_modules/date-fns/fp/isAfter/package.json | 5 + node_modules/date-fns/fp/isBefore/index.d.ts | 4 + node_modules/date-fns/fp/isBefore/index.js | 18 + .../date-fns/fp/isBefore/index.js.flow | 56 + .../date-fns/fp/isBefore/package.json | 5 + node_modules/date-fns/fp/isDate/index.d.ts | 4 + node_modules/date-fns/fp/isDate/index.js | 18 + node_modules/date-fns/fp/isDate/index.js.flow | 52 + node_modules/date-fns/fp/isDate/package.json | 5 + .../date-fns/fp/isDateWithOptions/index.d.ts | 4 + .../date-fns/fp/isDateWithOptions/index.js | 18 + .../fp/isDateWithOptions/index.js.flow | 57 + .../fp/isDateWithOptions/package.json | 5 + node_modules/date-fns/fp/isEqual/index.d.ts | 4 + node_modules/date-fns/fp/isEqual/index.js | 18 + .../date-fns/fp/isEqual/index.js.flow | 56 + node_modules/date-fns/fp/isEqual/package.json | 5 + node_modules/date-fns/fp/isExists/index.d.ts | 4 + node_modules/date-fns/fp/isExists/index.js | 18 + .../date-fns/fp/isExists/index.js.flow | 65 + .../date-fns/fp/isExists/package.json | 5 + .../date-fns/fp/isFirstDayOfMonth/index.d.ts | 4 + .../date-fns/fp/isFirstDayOfMonth/index.js | 18 + .../fp/isFirstDayOfMonth/index.js.flow | 52 + .../fp/isFirstDayOfMonth/package.json | 5 + node_modules/date-fns/fp/isFriday/index.d.ts | 4 + node_modules/date-fns/fp/isFriday/index.js | 18 + .../date-fns/fp/isFriday/index.js.flow | 52 + .../date-fns/fp/isFriday/package.json | 5 + .../date-fns/fp/isLastDayOfMonth/index.d.ts | 4 + .../date-fns/fp/isLastDayOfMonth/index.js | 18 + .../fp/isLastDayOfMonth/index.js.flow | 52 + .../date-fns/fp/isLastDayOfMonth/package.json | 5 + .../date-fns/fp/isLeapYear/index.d.ts | 4 + node_modules/date-fns/fp/isLeapYear/index.js | 18 + .../date-fns/fp/isLeapYear/index.js.flow | 52 + .../date-fns/fp/isLeapYear/package.json | 5 + node_modules/date-fns/fp/isMatch/index.d.ts | 4 + node_modules/date-fns/fp/isMatch/index.js | 18 + .../date-fns/fp/isMatch/index.js.flow | 56 + node_modules/date-fns/fp/isMatch/package.json | 5 + .../date-fns/fp/isMatchWithOptions/index.d.ts | 4 + .../date-fns/fp/isMatchWithOptions/index.js | 18 + .../fp/isMatchWithOptions/index.js.flow | 76 + .../fp/isMatchWithOptions/package.json | 5 + node_modules/date-fns/fp/isMonday/index.d.ts | 4 + node_modules/date-fns/fp/isMonday/index.js | 18 + .../date-fns/fp/isMonday/index.js.flow | 52 + .../date-fns/fp/isMonday/package.json | 5 + node_modules/date-fns/fp/isSameDay/index.d.ts | 4 + node_modules/date-fns/fp/isSameDay/index.js | 18 + .../date-fns/fp/isSameDay/index.js.flow | 56 + .../date-fns/fp/isSameDay/package.json | 5 + .../date-fns/fp/isSameHour/index.d.ts | 4 + node_modules/date-fns/fp/isSameHour/index.js | 18 + .../date-fns/fp/isSameHour/index.js.flow | 56 + .../date-fns/fp/isSameHour/package.json | 5 + .../date-fns/fp/isSameISOWeek/index.d.ts | 4 + .../date-fns/fp/isSameISOWeek/index.js | 18 + .../date-fns/fp/isSameISOWeek/index.js.flow | 56 + .../date-fns/fp/isSameISOWeek/package.json | 5 + .../date-fns/fp/isSameISOWeekYear/index.d.ts | 4 + .../date-fns/fp/isSameISOWeekYear/index.js | 18 + .../fp/isSameISOWeekYear/index.js.flow | 56 + .../fp/isSameISOWeekYear/package.json | 5 + .../date-fns/fp/isSameMinute/index.d.ts | 4 + .../date-fns/fp/isSameMinute/index.js | 18 + .../date-fns/fp/isSameMinute/index.js.flow | 56 + .../date-fns/fp/isSameMinute/package.json | 5 + .../date-fns/fp/isSameMonth/index.d.ts | 4 + node_modules/date-fns/fp/isSameMonth/index.js | 18 + .../date-fns/fp/isSameMonth/index.js.flow | 56 + .../date-fns/fp/isSameMonth/package.json | 5 + .../date-fns/fp/isSameQuarter/index.d.ts | 4 + .../date-fns/fp/isSameQuarter/index.js | 18 + .../date-fns/fp/isSameQuarter/index.js.flow | 56 + .../date-fns/fp/isSameQuarter/package.json | 5 + .../date-fns/fp/isSameSecond/index.d.ts | 4 + .../date-fns/fp/isSameSecond/index.js | 18 + .../date-fns/fp/isSameSecond/index.js.flow | 56 + .../date-fns/fp/isSameSecond/package.json | 5 + .../date-fns/fp/isSameWeek/index.d.ts | 4 + node_modules/date-fns/fp/isSameWeek/index.js | 18 + .../date-fns/fp/isSameWeek/index.js.flow | 56 + .../date-fns/fp/isSameWeek/package.json | 5 + .../fp/isSameWeekWithOptions/index.d.ts | 4 + .../fp/isSameWeekWithOptions/index.js | 18 + .../fp/isSameWeekWithOptions/index.js.flow | 73 + .../fp/isSameWeekWithOptions/package.json | 5 + .../date-fns/fp/isSameYear/index.d.ts | 4 + node_modules/date-fns/fp/isSameYear/index.js | 18 + .../date-fns/fp/isSameYear/index.js.flow | 56 + .../date-fns/fp/isSameYear/package.json | 5 + .../date-fns/fp/isSaturday/index.d.ts | 4 + node_modules/date-fns/fp/isSaturday/index.js | 18 + .../date-fns/fp/isSaturday/index.js.flow | 52 + .../date-fns/fp/isSaturday/package.json | 5 + node_modules/date-fns/fp/isSunday/index.d.ts | 4 + node_modules/date-fns/fp/isSunday/index.js | 18 + .../date-fns/fp/isSunday/index.js.flow | 52 + .../date-fns/fp/isSunday/package.json | 5 + .../date-fns/fp/isThursday/index.d.ts | 4 + node_modules/date-fns/fp/isThursday/index.js | 18 + .../date-fns/fp/isThursday/index.js.flow | 52 + .../date-fns/fp/isThursday/package.json | 5 + node_modules/date-fns/fp/isTuesday/index.d.ts | 4 + node_modules/date-fns/fp/isTuesday/index.js | 18 + .../date-fns/fp/isTuesday/index.js.flow | 52 + .../date-fns/fp/isTuesday/package.json | 5 + node_modules/date-fns/fp/isValid/index.d.ts | 4 + node_modules/date-fns/fp/isValid/index.js | 18 + .../date-fns/fp/isValid/index.js.flow | 52 + node_modules/date-fns/fp/isValid/package.json | 5 + .../date-fns/fp/isWednesday/index.d.ts | 4 + node_modules/date-fns/fp/isWednesday/index.js | 18 + .../date-fns/fp/isWednesday/index.js.flow | 52 + .../date-fns/fp/isWednesday/package.json | 5 + node_modules/date-fns/fp/isWeekend/index.d.ts | 4 + node_modules/date-fns/fp/isWeekend/index.js | 18 + .../date-fns/fp/isWeekend/index.js.flow | 52 + .../date-fns/fp/isWeekend/package.json | 5 + .../date-fns/fp/isWithinInterval/index.d.ts | 4 + .../date-fns/fp/isWithinInterval/index.js | 18 + .../fp/isWithinInterval/index.js.flow | 56 + .../date-fns/fp/isWithinInterval/package.json | 5 + .../date-fns/fp/lastDayOfDecade/index.d.ts | 4 + .../date-fns/fp/lastDayOfDecade/index.js | 18 + .../date-fns/fp/lastDayOfDecade/index.js.flow | 52 + .../date-fns/fp/lastDayOfDecade/package.json | 5 + .../date-fns/fp/lastDayOfISOWeek/index.d.ts | 4 + .../date-fns/fp/lastDayOfISOWeek/index.js | 18 + .../fp/lastDayOfISOWeek/index.js.flow | 52 + .../date-fns/fp/lastDayOfISOWeek/package.json | 5 + .../fp/lastDayOfISOWeekYear/index.d.ts | 4 + .../date-fns/fp/lastDayOfISOWeekYear/index.js | 18 + .../fp/lastDayOfISOWeekYear/index.js.flow | 52 + .../fp/lastDayOfISOWeekYear/package.json | 5 + .../date-fns/fp/lastDayOfMonth/index.d.ts | 4 + .../date-fns/fp/lastDayOfMonth/index.js | 18 + .../date-fns/fp/lastDayOfMonth/index.js.flow | 52 + .../date-fns/fp/lastDayOfMonth/package.json | 5 + .../date-fns/fp/lastDayOfQuarter/index.d.ts | 4 + .../date-fns/fp/lastDayOfQuarter/index.js | 18 + .../fp/lastDayOfQuarter/index.js.flow | 52 + .../date-fns/fp/lastDayOfQuarter/package.json | 5 + .../fp/lastDayOfQuarterWithOptions/index.d.ts | 4 + .../fp/lastDayOfQuarterWithOptions/index.js | 18 + .../lastDayOfQuarterWithOptions/index.js.flow | 62 + .../lastDayOfQuarterWithOptions/package.json | 5 + .../date-fns/fp/lastDayOfWeek/index.d.ts | 4 + .../date-fns/fp/lastDayOfWeek/index.js | 18 + .../date-fns/fp/lastDayOfWeek/index.js.flow | 52 + .../date-fns/fp/lastDayOfWeek/package.json | 5 + .../fp/lastDayOfWeekWithOptions/index.d.ts | 4 + .../fp/lastDayOfWeekWithOptions/index.js | 18 + .../fp/lastDayOfWeekWithOptions/index.js.flow | 63 + .../fp/lastDayOfWeekWithOptions/package.json | 5 + .../date-fns/fp/lastDayOfYear/index.d.ts | 4 + .../date-fns/fp/lastDayOfYear/index.js | 18 + .../date-fns/fp/lastDayOfYear/index.js.flow | 52 + .../date-fns/fp/lastDayOfYear/package.json | 5 + .../date-fns/fp/lightFormat/index.d.ts | 4 + node_modules/date-fns/fp/lightFormat/index.js | 18 + .../date-fns/fp/lightFormat/index.js.flow | 56 + .../date-fns/fp/lightFormat/package.json | 5 + node_modules/date-fns/fp/max/index.d.ts | 4 + node_modules/date-fns/fp/max/index.js | 18 + node_modules/date-fns/fp/max/index.js.flow | 52 + node_modules/date-fns/fp/max/package.json | 5 + node_modules/date-fns/fp/min/index.d.ts | 4 + node_modules/date-fns/fp/min/index.js | 18 + node_modules/date-fns/fp/min/index.js.flow | 52 + node_modules/date-fns/fp/min/package.json | 5 + node_modules/date-fns/fp/package.json | 5 + node_modules/date-fns/fp/parse/index.d.ts | 4 + node_modules/date-fns/fp/parse/index.js | 18 + node_modules/date-fns/fp/parse/index.js.flow | 65 + node_modules/date-fns/fp/parse/package.json | 5 + node_modules/date-fns/fp/parseISO/index.d.ts | 4 + node_modules/date-fns/fp/parseISO/index.js | 18 + .../date-fns/fp/parseISO/index.js.flow | 52 + .../date-fns/fp/parseISO/package.json | 5 + .../fp/parseISOWithOptions/index.d.ts | 4 + .../date-fns/fp/parseISOWithOptions/index.js | 18 + .../fp/parseISOWithOptions/index.js.flow | 62 + .../fp/parseISOWithOptions/package.json | 5 + node_modules/date-fns/fp/parseJSON/index.d.ts | 4 + node_modules/date-fns/fp/parseJSON/index.js | 18 + .../date-fns/fp/parseJSON/index.js.flow | 52 + .../date-fns/fp/parseJSON/package.json | 5 + .../date-fns/fp/parseWithOptions/index.d.ts | 4 + .../date-fns/fp/parseWithOptions/index.js | 18 + .../fp/parseWithOptions/index.js.flow | 92 + .../date-fns/fp/parseWithOptions/package.json | 5 + .../fp/roundToNearestMinutes/index.d.ts | 4 + .../fp/roundToNearestMinutes/index.js | 18 + .../fp/roundToNearestMinutes/index.js.flow | 52 + .../fp/roundToNearestMinutes/package.json | 5 + .../index.d.ts | 4 + .../roundToNearestMinutesWithOptions/index.js | 18 + .../index.js.flow | 62 + .../package.json | 5 + node_modules/date-fns/fp/set/index.d.ts | 4 + node_modules/date-fns/fp/set/index.js | 18 + node_modules/date-fns/fp/set/index.js.flow | 68 + node_modules/date-fns/fp/set/package.json | 5 + node_modules/date-fns/fp/setDate/index.d.ts | 4 + node_modules/date-fns/fp/setDate/index.js | 18 + .../date-fns/fp/setDate/index.js.flow | 56 + node_modules/date-fns/fp/setDate/package.json | 5 + node_modules/date-fns/fp/setDay/index.d.ts | 4 + node_modules/date-fns/fp/setDay/index.js | 18 + node_modules/date-fns/fp/setDay/index.js.flow | 56 + node_modules/date-fns/fp/setDay/package.json | 5 + .../date-fns/fp/setDayOfYear/index.d.ts | 4 + .../date-fns/fp/setDayOfYear/index.js | 18 + .../date-fns/fp/setDayOfYear/index.js.flow | 56 + .../date-fns/fp/setDayOfYear/package.json | 5 + .../date-fns/fp/setDayWithOptions/index.d.ts | 4 + .../date-fns/fp/setDayWithOptions/index.js | 18 + .../fp/setDayWithOptions/index.js.flow | 73 + .../fp/setDayWithOptions/package.json | 5 + node_modules/date-fns/fp/setHours/index.d.ts | 4 + node_modules/date-fns/fp/setHours/index.js | 18 + .../date-fns/fp/setHours/index.js.flow | 56 + .../date-fns/fp/setHours/package.json | 5 + node_modules/date-fns/fp/setISODay/index.d.ts | 4 + node_modules/date-fns/fp/setISODay/index.js | 18 + .../date-fns/fp/setISODay/index.js.flow | 56 + .../date-fns/fp/setISODay/package.json | 5 + .../date-fns/fp/setISOWeek/index.d.ts | 4 + node_modules/date-fns/fp/setISOWeek/index.js | 18 + .../date-fns/fp/setISOWeek/index.js.flow | 56 + .../date-fns/fp/setISOWeek/package.json | 5 + .../date-fns/fp/setISOWeekYear/index.d.ts | 4 + .../date-fns/fp/setISOWeekYear/index.js | 18 + .../date-fns/fp/setISOWeekYear/index.js.flow | 56 + .../date-fns/fp/setISOWeekYear/package.json | 5 + .../date-fns/fp/setMilliseconds/index.d.ts | 4 + .../date-fns/fp/setMilliseconds/index.js | 18 + .../date-fns/fp/setMilliseconds/index.js.flow | 56 + .../date-fns/fp/setMilliseconds/package.json | 5 + .../date-fns/fp/setMinutes/index.d.ts | 4 + node_modules/date-fns/fp/setMinutes/index.js | 18 + .../date-fns/fp/setMinutes/index.js.flow | 56 + .../date-fns/fp/setMinutes/package.json | 5 + node_modules/date-fns/fp/setMonth/index.d.ts | 4 + node_modules/date-fns/fp/setMonth/index.js | 18 + .../date-fns/fp/setMonth/index.js.flow | 56 + .../date-fns/fp/setMonth/package.json | 5 + .../date-fns/fp/setQuarter/index.d.ts | 4 + node_modules/date-fns/fp/setQuarter/index.js | 18 + .../date-fns/fp/setQuarter/index.js.flow | 56 + .../date-fns/fp/setQuarter/package.json | 5 + .../date-fns/fp/setSeconds/index.d.ts | 4 + node_modules/date-fns/fp/setSeconds/index.js | 18 + .../date-fns/fp/setSeconds/index.js.flow | 56 + .../date-fns/fp/setSeconds/package.json | 5 + node_modules/date-fns/fp/setWeek/index.d.ts | 4 + node_modules/date-fns/fp/setWeek/index.js | 18 + .../date-fns/fp/setWeek/index.js.flow | 56 + node_modules/date-fns/fp/setWeek/package.json | 5 + .../date-fns/fp/setWeekWithOptions/index.d.ts | 4 + .../date-fns/fp/setWeekWithOptions/index.js | 18 + .../fp/setWeekWithOptions/index.js.flow | 74 + .../fp/setWeekWithOptions/package.json | 5 + .../date-fns/fp/setWeekYear/index.d.ts | 4 + node_modules/date-fns/fp/setWeekYear/index.js | 18 + .../date-fns/fp/setWeekYear/index.js.flow | 56 + .../date-fns/fp/setWeekYear/package.json | 5 + .../fp/setWeekYearWithOptions/index.d.ts | 4 + .../fp/setWeekYearWithOptions/index.js | 18 + .../fp/setWeekYearWithOptions/index.js.flow | 74 + .../fp/setWeekYearWithOptions/package.json | 5 + node_modules/date-fns/fp/setYear/index.d.ts | 4 + node_modules/date-fns/fp/setYear/index.js | 18 + .../date-fns/fp/setYear/index.js.flow | 56 + node_modules/date-fns/fp/setYear/package.json | 5 + .../date-fns/fp/startOfDay/index.d.ts | 4 + node_modules/date-fns/fp/startOfDay/index.js | 18 + .../date-fns/fp/startOfDay/index.js.flow | 52 + .../date-fns/fp/startOfDay/package.json | 5 + .../date-fns/fp/startOfDecade/index.d.ts | 4 + .../date-fns/fp/startOfDecade/index.js | 18 + .../date-fns/fp/startOfDecade/index.js.flow | 52 + .../date-fns/fp/startOfDecade/package.json | 5 + .../date-fns/fp/startOfHour/index.d.ts | 4 + node_modules/date-fns/fp/startOfHour/index.js | 18 + .../date-fns/fp/startOfHour/index.js.flow | 52 + .../date-fns/fp/startOfHour/package.json | 5 + .../date-fns/fp/startOfISOWeek/index.d.ts | 4 + .../date-fns/fp/startOfISOWeek/index.js | 18 + .../date-fns/fp/startOfISOWeek/index.js.flow | 52 + .../date-fns/fp/startOfISOWeek/package.json | 5 + .../date-fns/fp/startOfISOWeekYear/index.d.ts | 4 + .../date-fns/fp/startOfISOWeekYear/index.js | 18 + .../fp/startOfISOWeekYear/index.js.flow | 52 + .../fp/startOfISOWeekYear/package.json | 5 + .../date-fns/fp/startOfMinute/index.d.ts | 4 + .../date-fns/fp/startOfMinute/index.js | 18 + .../date-fns/fp/startOfMinute/index.js.flow | 52 + .../date-fns/fp/startOfMinute/package.json | 5 + .../date-fns/fp/startOfMonth/index.d.ts | 4 + .../date-fns/fp/startOfMonth/index.js | 18 + .../date-fns/fp/startOfMonth/index.js.flow | 52 + .../date-fns/fp/startOfMonth/package.json | 5 + .../date-fns/fp/startOfQuarter/index.d.ts | 4 + .../date-fns/fp/startOfQuarter/index.js | 18 + .../date-fns/fp/startOfQuarter/index.js.flow | 52 + .../date-fns/fp/startOfQuarter/package.json | 5 + .../date-fns/fp/startOfSecond/index.d.ts | 4 + .../date-fns/fp/startOfSecond/index.js | 18 + .../date-fns/fp/startOfSecond/index.js.flow | 52 + .../date-fns/fp/startOfSecond/package.json | 5 + .../date-fns/fp/startOfWeek/index.d.ts | 4 + node_modules/date-fns/fp/startOfWeek/index.js | 18 + .../date-fns/fp/startOfWeek/index.js.flow | 52 + .../date-fns/fp/startOfWeek/package.json | 5 + .../fp/startOfWeekWithOptions/index.d.ts | 4 + .../fp/startOfWeekWithOptions/index.js | 18 + .../fp/startOfWeekWithOptions/index.js.flow | 63 + .../fp/startOfWeekWithOptions/package.json | 5 + .../date-fns/fp/startOfWeekYear/index.d.ts | 4 + .../date-fns/fp/startOfWeekYear/index.js | 18 + .../date-fns/fp/startOfWeekYear/index.js.flow | 52 + .../date-fns/fp/startOfWeekYear/package.json | 5 + .../fp/startOfWeekYearWithOptions/index.d.ts | 4 + .../fp/startOfWeekYearWithOptions/index.js | 18 + .../startOfWeekYearWithOptions/index.js.flow | 64 + .../startOfWeekYearWithOptions/package.json | 5 + .../date-fns/fp/startOfYear/index.d.ts | 4 + node_modules/date-fns/fp/startOfYear/index.js | 18 + .../date-fns/fp/startOfYear/index.js.flow | 52 + .../date-fns/fp/startOfYear/package.json | 5 + node_modules/date-fns/fp/sub/index.d.ts | 4 + node_modules/date-fns/fp/sub/index.js | 18 + node_modules/date-fns/fp/sub/index.js.flow | 56 + node_modules/date-fns/fp/sub/package.json | 5 + .../date-fns/fp/subBusinessDays/index.d.ts | 4 + .../date-fns/fp/subBusinessDays/index.js | 18 + .../date-fns/fp/subBusinessDays/index.js.flow | 56 + .../date-fns/fp/subBusinessDays/package.json | 5 + node_modules/date-fns/fp/subDays/index.d.ts | 4 + node_modules/date-fns/fp/subDays/index.js | 18 + .../date-fns/fp/subDays/index.js.flow | 56 + node_modules/date-fns/fp/subDays/package.json | 5 + node_modules/date-fns/fp/subHours/index.d.ts | 4 + node_modules/date-fns/fp/subHours/index.js | 18 + .../date-fns/fp/subHours/index.js.flow | 56 + .../date-fns/fp/subHours/package.json | 5 + .../date-fns/fp/subISOWeekYears/index.d.ts | 4 + .../date-fns/fp/subISOWeekYears/index.js | 18 + .../date-fns/fp/subISOWeekYears/index.js.flow | 56 + .../date-fns/fp/subISOWeekYears/package.json | 5 + .../date-fns/fp/subMilliseconds/index.d.ts | 4 + .../date-fns/fp/subMilliseconds/index.js | 18 + .../date-fns/fp/subMilliseconds/index.js.flow | 56 + .../date-fns/fp/subMilliseconds/package.json | 5 + .../date-fns/fp/subMinutes/index.d.ts | 4 + node_modules/date-fns/fp/subMinutes/index.js | 18 + .../date-fns/fp/subMinutes/index.js.flow | 56 + .../date-fns/fp/subMinutes/package.json | 5 + node_modules/date-fns/fp/subMonths/index.d.ts | 4 + node_modules/date-fns/fp/subMonths/index.js | 18 + .../date-fns/fp/subMonths/index.js.flow | 56 + .../date-fns/fp/subMonths/package.json | 5 + .../date-fns/fp/subQuarters/index.d.ts | 4 + node_modules/date-fns/fp/subQuarters/index.js | 18 + .../date-fns/fp/subQuarters/index.js.flow | 56 + .../date-fns/fp/subQuarters/package.json | 5 + .../date-fns/fp/subSeconds/index.d.ts | 4 + node_modules/date-fns/fp/subSeconds/index.js | 18 + .../date-fns/fp/subSeconds/index.js.flow | 56 + .../date-fns/fp/subSeconds/package.json | 5 + node_modules/date-fns/fp/subWeeks/index.d.ts | 4 + node_modules/date-fns/fp/subWeeks/index.js | 18 + .../date-fns/fp/subWeeks/index.js.flow | 56 + .../date-fns/fp/subWeeks/package.json | 5 + node_modules/date-fns/fp/subYears/index.d.ts | 4 + node_modules/date-fns/fp/subYears/index.js | 18 + .../date-fns/fp/subYears/index.js.flow | 56 + .../date-fns/fp/subYears/package.json | 5 + node_modules/date-fns/fp/toDate/index.d.ts | 4 + node_modules/date-fns/fp/toDate/index.js | 18 + node_modules/date-fns/fp/toDate/index.js.flow | 52 + node_modules/date-fns/fp/toDate/package.json | 5 + node_modules/date-fns/fromUnixTime/index.d.ts | 4 + node_modules/date-fns/fromUnixTime/index.js | 43 + .../date-fns/fromUnixTime/index.js.flow | 50 + .../date-fns/fromUnixTime/package.json | 5 + node_modules/date-fns/getDate/index.d.ts | 4 + node_modules/date-fns/getDate/index.js | 42 + node_modules/date-fns/getDate/index.js.flow | 50 + node_modules/date-fns/getDate/package.json | 5 + node_modules/date-fns/getDay/index.d.ts | 4 + node_modules/date-fns/getDay/index.js | 42 + node_modules/date-fns/getDay/index.js.flow | 50 + node_modules/date-fns/getDay/package.json | 5 + node_modules/date-fns/getDayOfYear/index.d.ts | 4 + node_modules/date-fns/getDayOfYear/index.js | 47 + .../date-fns/getDayOfYear/index.js.flow | 50 + .../date-fns/getDayOfYear/package.json | 5 + .../date-fns/getDaysInMonth/index.d.ts | 4 + node_modules/date-fns/getDaysInMonth/index.js | 46 + .../date-fns/getDaysInMonth/index.js.flow | 50 + .../date-fns/getDaysInMonth/package.json | 5 + .../date-fns/getDaysInYear/index.d.ts | 4 + node_modules/date-fns/getDaysInYear/index.js | 48 + .../date-fns/getDaysInYear/index.js.flow | 50 + .../date-fns/getDaysInYear/package.json | 5 + node_modules/date-fns/getDecade/index.d.ts | 4 + node_modules/date-fns/getDecade/index.js | 43 + node_modules/date-fns/getDecade/index.js.flow | 50 + node_modules/date-fns/getDecade/package.json | 5 + node_modules/date-fns/getHours/index.d.ts | 4 + node_modules/date-fns/getHours/index.js | 42 + node_modules/date-fns/getHours/index.js.flow | 50 + node_modules/date-fns/getHours/package.json | 5 + node_modules/date-fns/getISODay/index.d.ts | 4 + node_modules/date-fns/getISODay/index.js | 50 + node_modules/date-fns/getISODay/index.js.flow | 50 + node_modules/date-fns/getISODay/package.json | 5 + node_modules/date-fns/getISOWeek/index.d.ts | 4 + node_modules/date-fns/getISOWeek/index.js | 53 + .../date-fns/getISOWeek/index.js.flow | 50 + node_modules/date-fns/getISOWeek/package.json | 5 + .../date-fns/getISOWeekYear/index.d.ts | 4 + node_modules/date-fns/getISOWeekYear/index.js | 67 + .../date-fns/getISOWeekYear/index.js.flow | 50 + .../date-fns/getISOWeekYear/package.json | 5 + .../date-fns/getISOWeeksInYear/index.d.ts | 4 + .../date-fns/getISOWeeksInYear/index.js | 52 + .../date-fns/getISOWeeksInYear/index.js.flow | 50 + .../date-fns/getISOWeeksInYear/package.json | 5 + .../date-fns/getMilliseconds/index.d.ts | 4 + .../date-fns/getMilliseconds/index.js | 42 + .../date-fns/getMilliseconds/index.js.flow | 50 + .../date-fns/getMilliseconds/package.json | 5 + node_modules/date-fns/getMinutes/index.d.ts | 4 + node_modules/date-fns/getMinutes/index.js | 42 + .../date-fns/getMinutes/index.js.flow | 50 + node_modules/date-fns/getMinutes/package.json | 5 + node_modules/date-fns/getMonth/index.d.ts | 4 + node_modules/date-fns/getMonth/index.js | 42 + node_modules/date-fns/getMonth/index.js.flow | 50 + node_modules/date-fns/getMonth/package.json | 5 + .../getOverlappingDaysInIntervals/index.d.ts | 4 + .../getOverlappingDaysInIntervals/index.js | 106 + .../index.js.flow | 53 + .../package.json | 5 + node_modules/date-fns/getQuarter/index.d.ts | 4 + node_modules/date-fns/getQuarter/index.js | 42 + .../date-fns/getQuarter/index.js.flow | 50 + node_modules/date-fns/getQuarter/package.json | 5 + node_modules/date-fns/getSeconds/index.d.ts | 4 + node_modules/date-fns/getSeconds/index.js | 42 + .../date-fns/getSeconds/index.js.flow | 50 + node_modules/date-fns/getSeconds/package.json | 5 + node_modules/date-fns/getTime/index.d.ts | 4 + node_modules/date-fns/getTime/index.js | 42 + node_modules/date-fns/getTime/index.js.flow | 50 + node_modules/date-fns/getTime/package.json | 5 + node_modules/date-fns/getUnixTime/index.d.ts | 4 + node_modules/date-fns/getUnixTime/index.js | 40 + .../date-fns/getUnixTime/index.js.flow | 50 + .../date-fns/getUnixTime/package.json | 5 + node_modules/date-fns/getWeek/index.d.ts | 4 + node_modules/date-fns/getWeek/index.js | 72 + node_modules/date-fns/getWeek/index.js.flow | 57 + node_modules/date-fns/getWeek/package.json | 5 + .../date-fns/getWeekOfMonth/index.d.ts | 4 + node_modules/date-fns/getWeekOfMonth/index.js | 82 + .../date-fns/getWeekOfMonth/index.js.flow | 56 + .../date-fns/getWeekOfMonth/package.json | 5 + node_modules/date-fns/getWeekYear/index.d.ts | 4 + node_modules/date-fns/getWeekYear/index.js | 93 + .../date-fns/getWeekYear/index.js.flow | 57 + .../date-fns/getWeekYear/package.json | 5 + .../date-fns/getWeeksInMonth/index.d.ts | 4 + .../date-fns/getWeeksInMonth/index.js | 54 + .../date-fns/getWeeksInMonth/index.js.flow | 56 + .../date-fns/getWeeksInMonth/package.json | 5 + node_modules/date-fns/getYear/index.d.ts | 4 + node_modules/date-fns/getYear/index.js | 42 + node_modules/date-fns/getYear/index.js.flow | 50 + node_modules/date-fns/getYear/package.json | 5 + node_modules/date-fns/index.js | 1786 ++ node_modules/date-fns/index.js.flow | 751 + .../date-fns/intervalToDuration/index.d.ts | 4 + .../date-fns/intervalToDuration/index.js | 103 + .../date-fns/intervalToDuration/index.js.flow | 50 + .../date-fns/intervalToDuration/package.json | 5 + node_modules/date-fns/isAfter/index.d.ts | 4 + node_modules/date-fns/isAfter/index.js | 43 + node_modules/date-fns/isAfter/index.js.flow | 53 + node_modules/date-fns/isAfter/package.json | 5 + node_modules/date-fns/isBefore/index.d.ts | 4 + node_modules/date-fns/isBefore/index.js | 43 + node_modules/date-fns/isBefore/index.js.flow | 53 + node_modules/date-fns/isBefore/package.json | 5 + node_modules/date-fns/isDate/index.d.ts | 4 + node_modules/date-fns/isDate/index.js | 53 + node_modules/date-fns/isDate/index.js.flow | 50 + node_modules/date-fns/isDate/package.json | 5 + node_modules/date-fns/isEqual/index.d.ts | 4 + node_modules/date-fns/isEqual/index.js | 46 + node_modules/date-fns/isEqual/index.js.flow | 53 + node_modules/date-fns/isEqual/package.json | 5 + node_modules/date-fns/isExists/index.d.ts | 4 + node_modules/date-fns/isExists/index.js | 41 + node_modules/date-fns/isExists/index.js.flow | 50 + node_modules/date-fns/isExists/package.json | 5 + .../date-fns/isFirstDayOfMonth/index.d.ts | 4 + .../date-fns/isFirstDayOfMonth/index.js | 40 + .../date-fns/isFirstDayOfMonth/index.js.flow | 50 + .../date-fns/isFirstDayOfMonth/package.json | 5 + node_modules/date-fns/isFriday/index.d.ts | 4 + node_modules/date-fns/isFriday/index.js | 40 + node_modules/date-fns/isFriday/index.js.flow | 50 + node_modules/date-fns/isFriday/package.json | 5 + node_modules/date-fns/isFuture/index.d.ts | 4 + node_modules/date-fns/isFuture/index.js | 44 + node_modules/date-fns/isFuture/index.js.flow | 50 + node_modules/date-fns/isFuture/package.json | 5 + .../date-fns/isLastDayOfMonth/index.d.ts | 4 + .../date-fns/isLastDayOfMonth/index.js | 45 + .../date-fns/isLastDayOfMonth/index.js.flow | 50 + .../date-fns/isLastDayOfMonth/package.json | 5 + node_modules/date-fns/isLeapYear/index.d.ts | 4 + node_modules/date-fns/isLeapYear/index.js | 42 + .../date-fns/isLeapYear/index.js.flow | 50 + node_modules/date-fns/isLeapYear/package.json | 5 + node_modules/date-fns/isMatch/index.d.ts | 4 + node_modules/date-fns/isMatch/index.js | 313 + node_modules/date-fns/isMatch/index.js.flow | 60 + node_modules/date-fns/isMatch/package.json | 5 + node_modules/date-fns/isMonday/index.d.ts | 4 + node_modules/date-fns/isMonday/index.js | 40 + node_modules/date-fns/isMonday/index.js.flow | 50 + node_modules/date-fns/isMonday/package.json | 5 + node_modules/date-fns/isPast/index.d.ts | 4 + node_modules/date-fns/isPast/index.js | 44 + node_modules/date-fns/isPast/index.js.flow | 50 + node_modules/date-fns/isPast/package.json | 5 + node_modules/date-fns/isSameDay/index.d.ts | 4 + node_modules/date-fns/isSameDay/index.js | 43 + node_modules/date-fns/isSameDay/index.js.flow | 53 + node_modules/date-fns/isSameDay/package.json | 5 + node_modules/date-fns/isSameHour/index.d.ts | 4 + node_modules/date-fns/isSameHour/index.js | 43 + .../date-fns/isSameHour/index.js.flow | 53 + node_modules/date-fns/isSameHour/package.json | 5 + .../date-fns/isSameISOWeek/index.d.ts | 4 + node_modules/date-fns/isSameISOWeek/index.js | 45 + .../date-fns/isSameISOWeek/index.js.flow | 53 + .../date-fns/isSameISOWeek/package.json | 5 + .../date-fns/isSameISOWeekYear/index.d.ts | 4 + .../date-fns/isSameISOWeekYear/index.js | 50 + .../date-fns/isSameISOWeekYear/index.js.flow | 53 + .../date-fns/isSameISOWeekYear/package.json | 5 + node_modules/date-fns/isSameMinute/index.d.ts | 4 + node_modules/date-fns/isSameMinute/index.js | 47 + .../date-fns/isSameMinute/index.js.flow | 53 + .../date-fns/isSameMinute/package.json | 5 + node_modules/date-fns/isSameMonth/index.d.ts | 4 + node_modules/date-fns/isSameMonth/index.js | 43 + .../date-fns/isSameMonth/index.js.flow | 53 + .../date-fns/isSameMonth/package.json | 5 + .../date-fns/isSameQuarter/index.d.ts | 4 + node_modules/date-fns/isSameQuarter/index.js | 43 + .../date-fns/isSameQuarter/index.js.flow | 53 + .../date-fns/isSameQuarter/package.json | 5 + node_modules/date-fns/isSameSecond/index.d.ts | 4 + node_modules/date-fns/isSameSecond/index.js | 47 + .../date-fns/isSameSecond/index.js.flow | 53 + .../date-fns/isSameSecond/package.json | 5 + node_modules/date-fns/isSameWeek/index.d.ts | 4 + node_modules/date-fns/isSameWeek/index.js | 55 + .../date-fns/isSameWeek/index.js.flow | 57 + node_modules/date-fns/isSameWeek/package.json | 5 + node_modules/date-fns/isSameYear/index.d.ts | 4 + node_modules/date-fns/isSameYear/index.js | 43 + .../date-fns/isSameYear/index.js.flow | 53 + node_modules/date-fns/isSameYear/package.json | 5 + node_modules/date-fns/isSaturday/index.d.ts | 4 + node_modules/date-fns/isSaturday/index.js | 40 + .../date-fns/isSaturday/index.js.flow | 50 + node_modules/date-fns/isSaturday/package.json | 5 + node_modules/date-fns/isSunday/index.d.ts | 4 + node_modules/date-fns/isSunday/index.js | 40 + node_modules/date-fns/isSunday/index.js.flow | 50 + node_modules/date-fns/isSunday/package.json | 5 + node_modules/date-fns/isThisHour/index.d.ts | 4 + node_modules/date-fns/isThisHour/index.js | 45 + .../date-fns/isThisHour/index.js.flow | 50 + node_modules/date-fns/isThisHour/package.json | 5 + .../date-fns/isThisISOWeek/index.d.ts | 4 + node_modules/date-fns/isThisISOWeek/index.js | 46 + .../date-fns/isThisISOWeek/index.js.flow | 50 + .../date-fns/isThisISOWeek/package.json | 5 + node_modules/date-fns/isThisMinute/index.d.ts | 4 + node_modules/date-fns/isThisMinute/index.js | 45 + .../date-fns/isThisMinute/index.js.flow | 50 + .../date-fns/isThisMinute/package.json | 5 + node_modules/date-fns/isThisMonth/index.d.ts | 4 + node_modules/date-fns/isThisMonth/index.js | 44 + .../date-fns/isThisMonth/index.js.flow | 50 + .../date-fns/isThisMonth/package.json | 5 + .../date-fns/isThisQuarter/index.d.ts | 4 + node_modules/date-fns/isThisQuarter/index.js | 44 + .../date-fns/isThisQuarter/index.js.flow | 50 + .../date-fns/isThisQuarter/package.json | 5 + node_modules/date-fns/isThisSecond/index.d.ts | 4 + node_modules/date-fns/isThisSecond/index.js | 45 + .../date-fns/isThisSecond/index.js.flow | 50 + .../date-fns/isThisSecond/package.json | 5 + node_modules/date-fns/isThisWeek/index.d.ts | 4 + node_modules/date-fns/isThisWeek/index.js | 54 + .../date-fns/isThisWeek/index.js.flow | 56 + node_modules/date-fns/isThisWeek/package.json | 5 + node_modules/date-fns/isThisYear/index.d.ts | 4 + node_modules/date-fns/isThisYear/index.js | 44 + .../date-fns/isThisYear/index.js.flow | 50 + node_modules/date-fns/isThisYear/package.json | 5 + node_modules/date-fns/isThursday/index.d.ts | 4 + node_modules/date-fns/isThursday/index.js | 40 + .../date-fns/isThursday/index.js.flow | 50 + node_modules/date-fns/isThursday/package.json | 5 + node_modules/date-fns/isToday/index.d.ts | 4 + node_modules/date-fns/isToday/index.js | 44 + node_modules/date-fns/isToday/index.js.flow | 50 + node_modules/date-fns/isToday/package.json | 5 + node_modules/date-fns/isTomorrow/index.d.ts | 4 + node_modules/date-fns/isTomorrow/index.js | 46 + .../date-fns/isTomorrow/index.js.flow | 50 + node_modules/date-fns/isTomorrow/package.json | 5 + node_modules/date-fns/isTuesday/index.d.ts | 4 + node_modules/date-fns/isTuesday/index.js | 40 + node_modules/date-fns/isTuesday/index.js.flow | 50 + node_modules/date-fns/isTuesday/package.json | 5 + node_modules/date-fns/isValid/index.d.ts | 4 + node_modules/date-fns/isValid/index.js | 77 + node_modules/date-fns/isValid/index.js.flow | 50 + node_modules/date-fns/isValid/package.json | 5 + node_modules/date-fns/isWednesday/index.d.ts | 4 + node_modules/date-fns/isWednesday/index.js | 40 + .../date-fns/isWednesday/index.js.flow | 50 + .../date-fns/isWednesday/package.json | 5 + node_modules/date-fns/isWeekend/index.d.ts | 4 + node_modules/date-fns/isWeekend/index.js | 42 + node_modules/date-fns/isWeekend/index.js.flow | 50 + node_modules/date-fns/isWeekend/package.json | 5 + .../date-fns/isWithinInterval/index.d.ts | 4 + .../date-fns/isWithinInterval/index.js | 101 + .../date-fns/isWithinInterval/index.js.flow | 50 + .../date-fns/isWithinInterval/package.json | 5 + node_modules/date-fns/isYesterday/index.d.ts | 4 + node_modules/date-fns/isYesterday/index.js | 46 + .../date-fns/isYesterday/index.js.flow | 50 + .../date-fns/isYesterday/package.json | 5 + .../date-fns/lastDayOfDecade/index.d.ts | 4 + .../date-fns/lastDayOfDecade/index.js | 45 + .../date-fns/lastDayOfDecade/index.js.flow | 50 + .../date-fns/lastDayOfDecade/package.json | 5 + .../date-fns/lastDayOfISOWeek/index.d.ts | 4 + .../date-fns/lastDayOfISOWeek/index.js | 45 + .../date-fns/lastDayOfISOWeek/index.js.flow | 50 + .../date-fns/lastDayOfISOWeek/package.json | 5 + .../date-fns/lastDayOfISOWeekYear/index.d.ts | 4 + .../date-fns/lastDayOfISOWeekYear/index.js | 57 + .../lastDayOfISOWeekYear/index.js.flow | 50 + .../lastDayOfISOWeekYear/package.json | 5 + .../date-fns/lastDayOfMonth/index.d.ts | 4 + node_modules/date-fns/lastDayOfMonth/index.js | 45 + .../date-fns/lastDayOfMonth/index.js.flow | 50 + .../date-fns/lastDayOfMonth/package.json | 5 + .../date-fns/lastDayOfQuarter/index.d.ts | 4 + .../date-fns/lastDayOfQuarter/index.js | 49 + .../date-fns/lastDayOfQuarter/index.js.flow | 55 + .../date-fns/lastDayOfQuarter/package.json | 5 + .../date-fns/lastDayOfWeek/index.d.ts | 4 + node_modules/date-fns/lastDayOfWeek/index.js | 67 + .../date-fns/lastDayOfWeek/index.js.flow | 56 + .../date-fns/lastDayOfWeek/package.json | 5 + .../date-fns/lastDayOfYear/index.d.ts | 4 + node_modules/date-fns/lastDayOfYear/index.js | 45 + .../date-fns/lastDayOfYear/index.js.flow | 50 + .../date-fns/lastDayOfYear/package.json | 5 + node_modules/date-fns/lightFormat/index.d.ts | 4 + node_modules/date-fns/lightFormat/index.js | 136 + .../date-fns/lightFormat/index.js.flow | 50 + .../date-fns/lightFormat/package.json | 5 + .../locale/_lib/buildFormatLongFn/index.js | 17 + .../locale/_lib/buildLocalizeFn/index.js | 31 + .../locale/_lib/buildMatchFn/index.js | 59 + .../locale/_lib/buildMatchPatternFn/index.js | 34 + .../locale/af/_lib/formatDistance/index.js | 94 + .../locale/af/_lib/formatLong/index.js | 46 + .../locale/af/_lib/formatRelative/index.js | 20 + .../date-fns/locale/af/_lib/localize/index.js | 146 + .../date-fns/locale/af/_lib/match/index.js | 110 + node_modules/date-fns/locale/af/index.d.ts | 4 + node_modules/date-fns/locale/af/index.js | 44 + node_modules/date-fns/locale/af/index.js.flow | 35 + node_modules/date-fns/locale/af/package.json | 5 + .../locale/ar-DZ/_lib/formatDistance/index.js | 128 + .../locale/ar-DZ/_lib/formatLong/index.js | 46 + .../locale/ar-DZ/_lib/formatRelative/index.js | 20 + .../locale/ar-DZ/_lib/localize/index.js | 130 + .../date-fns/locale/ar-DZ/_lib/match/index.js | 112 + node_modules/date-fns/locale/ar-DZ/index.d.ts | 4 + node_modules/date-fns/locale/ar-DZ/index.js | 45 + .../date-fns/locale/ar-DZ/index.js.flow | 35 + .../date-fns/locale/ar-DZ/package.json | 5 + .../locale/ar-MA/_lib/formatDistance/index.js | 128 + .../locale/ar-MA/_lib/formatLong/index.js | 46 + .../locale/ar-MA/_lib/formatRelative/index.js | 20 + .../locale/ar-MA/_lib/localize/index.js | 130 + .../date-fns/locale/ar-MA/_lib/match/index.js | 112 + node_modules/date-fns/locale/ar-MA/index.d.ts | 4 + node_modules/date-fns/locale/ar-MA/index.js | 43 + .../date-fns/locale/ar-MA/index.js.flow | 35 + .../date-fns/locale/ar-MA/package.json | 5 + .../locale/ar-SA/_lib/formatDistance/index.js | 128 + .../locale/ar-SA/_lib/formatLong/index.js | 46 + .../locale/ar-SA/_lib/formatRelative/index.js | 20 + .../locale/ar-SA/_lib/localize/index.js | 130 + .../date-fns/locale/ar-SA/_lib/match/index.js | 112 + node_modules/date-fns/locale/ar-SA/index.d.ts | 4 + node_modules/date-fns/locale/ar-SA/index.js | 44 + .../date-fns/locale/ar-SA/index.js.flow | 35 + .../date-fns/locale/ar-SA/package.json | 5 + .../locale/az/_lib/formatDistance/index.js | 94 + .../locale/az/_lib/formatLong/index.js | 46 + .../locale/az/_lib/formatRelative/index.js | 20 + .../date-fns/locale/az/_lib/localize/index.js | 170 + .../date-fns/locale/az/_lib/match/index.js | 114 + node_modules/date-fns/locale/az/index.d.ts | 4 + node_modules/date-fns/locale/az/index.js | 41 + node_modules/date-fns/locale/az/index.js.flow | 35 + node_modules/date-fns/locale/az/package.json | 5 + .../locale/be/_lib/formatDistance/index.js | 252 + .../locale/be/_lib/formatLong/index.js | 43 + .../locale/be/_lib/formatRelative/index.js | 88 + .../date-fns/locale/be/_lib/localize/index.js | 164 + .../date-fns/locale/be/_lib/match/index.js | 112 + node_modules/date-fns/locale/be/index.d.ts | 4 + node_modules/date-fns/locale/be/index.js | 45 + node_modules/date-fns/locale/be/index.js.flow | 35 + node_modules/date-fns/locale/be/package.json | 5 + .../locale/bg/_lib/formatDistance/index.js | 94 + .../locale/bg/_lib/formatLong/index.js | 43 + .../locale/bg/_lib/formatRelative/index.js | 96 + .../date-fns/locale/bg/_lib/localize/index.js | 118 + .../date-fns/locale/bg/_lib/match/index.js | 108 + node_modules/date-fns/locale/bg/index.d.ts | 4 + node_modules/date-fns/locale/bg/index.js | 45 + node_modules/date-fns/locale/bg/index.js.flow | 35 + node_modules/date-fns/locale/bg/package.json | 5 + .../locale/bn/_lib/formatDistance/index.js | 99 + .../locale/bn/_lib/formatLong/index.js | 46 + .../locale/bn/_lib/formatRelative/index.js | 20 + .../date-fns/locale/bn/_lib/localize/index.js | 223 + .../date-fns/locale/bn/_lib/match/index.js | 115 + node_modules/date-fns/locale/bn/index.d.ts | 4 + node_modules/date-fns/locale/bn/index.js | 45 + node_modules/date-fns/locale/bn/index.js.flow | 35 + node_modules/date-fns/locale/bn/package.json | 5 + .../locale/ca/_lib/formatDistance/index.js | 110 + .../locale/ca/_lib/formatLong/index.js | 46 + .../locale/ca/_lib/formatRelative/index.js | 32 + .../date-fns/locale/ca/_lib/localize/index.js | 200 + .../date-fns/locale/ca/_lib/match/index.js | 116 + node_modules/date-fns/locale/ca/index.d.ts | 4 + node_modules/date-fns/locale/ca/index.js | 46 + node_modules/date-fns/locale/ca/index.js.flow | 35 + node_modules/date-fns/locale/ca/package.json | 5 + .../locale/cs/_lib/formatDistance/index.js | 304 + .../locale/cs/_lib/formatLong/index.js | 46 + .../locale/cs/_lib/formatRelative/index.js | 30 + .../date-fns/locale/cs/_lib/localize/index.js | 140 + .../date-fns/locale/cs/_lib/match/index.js | 110 + node_modules/date-fns/locale/cs/index.d.ts | 4 + node_modules/date-fns/locale/cs/index.js | 46 + node_modules/date-fns/locale/cs/index.js.flow | 35 + node_modules/date-fns/locale/cs/package.json | 5 + .../locale/cy/_lib/formatDistance/index.js | 107 + .../locale/cy/_lib/formatLong/index.js | 46 + .../locale/cy/_lib/formatRelative/index.js | 20 + .../date-fns/locale/cy/_lib/localize/index.js | 178 + .../date-fns/locale/cy/_lib/match/index.js | 113 + node_modules/date-fns/locale/cy/index.d.ts | 4 + node_modules/date-fns/locale/cy/index.js | 44 + node_modules/date-fns/locale/cy/index.js.flow | 35 + node_modules/date-fns/locale/cy/package.json | 5 + .../locale/da/_lib/formatDistance/index.js | 94 + .../locale/da/_lib/formatLong/index.js | 46 + .../locale/da/_lib/formatRelative/index.js | 20 + .../date-fns/locale/da/_lib/localize/index.js | 136 + .../date-fns/locale/da/_lib/match/index.js | 111 + node_modules/date-fns/locale/da/index.d.ts | 4 + node_modules/date-fns/locale/da/index.js | 47 + node_modules/date-fns/locale/da/index.js.flow | 35 + node_modules/date-fns/locale/da/package.json | 5 + .../locale/de/_lib/formatDistance/index.js | 188 + .../locale/de/_lib/formatLong/index.js | 51 + .../locale/de/_lib/formatRelative/index.js | 20 + .../date-fns/locale/de/_lib/localize/index.js | 138 + .../date-fns/locale/de/_lib/match/index.js | 113 + node_modules/date-fns/locale/de/index.d.ts | 4 + node_modules/date-fns/locale/de/index.js | 48 + node_modules/date-fns/locale/de/index.js.flow | 35 + node_modules/date-fns/locale/de/package.json | 5 + .../locale/el/_lib/formatDistance/index.js | 94 + .../locale/el/_lib/formatLong/index.js | 46 + .../locale/el/_lib/formatRelative/index.js | 31 + .../date-fns/locale/el/_lib/localize/index.js | 117 + .../date-fns/locale/el/_lib/match/index.js | 111 + node_modules/date-fns/locale/el/index.d.ts | 4 + node_modules/date-fns/locale/el/index.js | 45 + node_modules/date-fns/locale/el/index.js.flow | 35 + node_modules/date-fns/locale/el/package.json | 5 + .../locale/en-AU/_lib/formatLong/index.js | 46 + node_modules/date-fns/locale/en-AU/index.d.ts | 4 + node_modules/date-fns/locale/en-AU/index.js | 44 + .../date-fns/locale/en-AU/index.js.flow | 35 + .../date-fns/locale/en-AU/package.json | 5 + .../locale/en-CA/_lib/formatDistance/index.js | 94 + .../locale/en-CA/_lib/formatLong/index.js | 46 + node_modules/date-fns/locale/en-CA/index.d.ts | 4 + node_modules/date-fns/locale/en-CA/index.js | 45 + .../date-fns/locale/en-CA/index.js.flow | 35 + .../date-fns/locale/en-CA/package.json | 5 + .../locale/en-GB/_lib/formatLong/index.js | 46 + node_modules/date-fns/locale/en-GB/index.d.ts | 4 + node_modules/date-fns/locale/en-GB/index.js | 44 + .../date-fns/locale/en-GB/index.js.flow | 35 + .../date-fns/locale/en-GB/package.json | 5 + .../locale/en-IN/_lib/formatLong/index.js | 46 + node_modules/date-fns/locale/en-IN/index.d.ts | 4 + node_modules/date-fns/locale/en-IN/index.js | 44 + .../date-fns/locale/en-IN/index.js.flow | 35 + .../date-fns/locale/en-IN/package.json | 5 + .../locale/en-NZ/_lib/formatLong/index.js | 46 + node_modules/date-fns/locale/en-NZ/index.d.ts | 4 + node_modules/date-fns/locale/en-NZ/index.js | 44 + .../date-fns/locale/en-NZ/index.js.flow | 35 + .../date-fns/locale/en-NZ/package.json | 5 + .../locale/en-US/_lib/formatDistance/index.js | 94 + .../locale/en-US/_lib/formatLong/index.js | 46 + .../locale/en-US/_lib/formatRelative/index.js | 20 + .../locale/en-US/_lib/localize/index.js | 161 + .../date-fns/locale/en-US/_lib/match/index.js | 111 + node_modules/date-fns/locale/en-US/index.d.ts | 4 + node_modules/date-fns/locale/en-US/index.js | 45 + .../date-fns/locale/en-US/index.js.flow | 35 + .../date-fns/locale/en-US/package.json | 5 + .../locale/eo/_lib/formatDistance/index.js | 94 + .../locale/eo/_lib/formatLong/index.js | 43 + .../locale/eo/_lib/formatRelative/index.js | 20 + .../date-fns/locale/eo/_lib/localize/index.js | 99 + .../date-fns/locale/eo/_lib/match/index.js | 112 + node_modules/date-fns/locale/eo/index.d.ts | 4 + node_modules/date-fns/locale/eo/index.js | 44 + node_modules/date-fns/locale/eo/index.js.flow | 35 + node_modules/date-fns/locale/eo/package.json | 5 + .../locale/es/_lib/formatDistance/index.js | 94 + .../locale/es/_lib/formatLong/index.js | 46 + .../locale/es/_lib/formatRelative/index.js | 32 + .../date-fns/locale/es/_lib/localize/index.js | 133 + .../date-fns/locale/es/_lib/match/index.js | 112 + node_modules/date-fns/locale/es/index.d.ts | 4 + node_modules/date-fns/locale/es/index.js | 48 + node_modules/date-fns/locale/es/index.js.flow | 35 + node_modules/date-fns/locale/es/package.json | 5 + .../locale/et/_lib/formatDistance/index.js | 188 + .../locale/et/_lib/formatLong/index.js | 46 + .../locale/et/_lib/formatRelative/index.js | 20 + .../date-fns/locale/et/_lib/localize/index.js | 134 + .../date-fns/locale/et/_lib/match/index.js | 109 + node_modules/date-fns/locale/et/index.d.ts | 4 + node_modules/date-fns/locale/et/index.js | 44 + node_modules/date-fns/locale/et/index.js.flow | 35 + node_modules/date-fns/locale/et/package.json | 5 + .../locale/eu/_lib/formatDistance/index.js | 94 + .../locale/eu/_lib/formatLong/index.js | 46 + .../locale/eu/_lib/formatRelative/index.js | 32 + .../date-fns/locale/eu/_lib/localize/index.js | 133 + .../date-fns/locale/eu/_lib/match/index.js | 125 + node_modules/date-fns/locale/eu/index.d.ts | 4 + node_modules/date-fns/locale/eu/index.js | 44 + node_modules/date-fns/locale/eu/index.js.flow | 35 + node_modules/date-fns/locale/eu/package.json | 5 + .../locale/fa-IR/_lib/formatDistance/index.js | 94 + .../locale/fa-IR/_lib/formatLong/index.js | 46 + .../locale/fa-IR/_lib/formatRelative/index.js | 20 + .../locale/fa-IR/_lib/localize/index.js | 136 + .../date-fns/locale/fa-IR/_lib/match/index.js | 112 + node_modules/date-fns/locale/fa-IR/index.d.ts | 4 + node_modules/date-fns/locale/fa-IR/index.js | 44 + .../date-fns/locale/fa-IR/index.js.flow | 35 + .../date-fns/locale/fa-IR/package.json | 5 + .../locale/fi/_lib/formatDistance/index.js | 137 + .../locale/fi/_lib/formatLong/index.js | 46 + .../locale/fi/_lib/formatRelative/index.js | 20 + .../date-fns/locale/fi/_lib/localize/index.js | 116 + .../date-fns/locale/fi/_lib/match/index.js | 111 + node_modules/date-fns/locale/fi/index.d.ts | 4 + node_modules/date-fns/locale/fi/index.js | 46 + node_modules/date-fns/locale/fi/index.js.flow | 35 + node_modules/date-fns/locale/fi/package.json | 5 + .../locale/fr-CA/_lib/formatLong/index.js | 46 + node_modules/date-fns/locale/fr-CA/index.d.ts | 4 + node_modules/date-fns/locale/fr-CA/index.js | 50 + .../date-fns/locale/fr-CA/index.js.flow | 35 + .../date-fns/locale/fr-CA/package.json | 5 + .../locale/fr-CH/_lib/formatDistance/index.js | 94 + .../locale/fr-CH/_lib/formatLong/index.js | 46 + .../locale/fr-CH/_lib/formatRelative/index.js | 20 + .../locale/fr-CH/_lib/formatters/index.js | 23 + .../locale/fr-CH/_lib/localize/index.js | 121 + .../date-fns/locale/fr-CH/_lib/match/index.js | 111 + node_modules/date-fns/locale/fr-CH/index.d.ts | 4 + node_modules/date-fns/locale/fr-CH/index.js | 47 + .../date-fns/locale/fr-CH/index.js.flow | 35 + .../date-fns/locale/fr-CH/package.json | 5 + .../locale/fr/_lib/formatDistance/index.js | 94 + .../locale/fr/_lib/formatLong/index.js | 46 + .../locale/fr/_lib/formatRelative/index.js | 20 + .../locale/fr/_lib/formatters/index.js | 23 + .../date-fns/locale/fr/_lib/localize/index.js | 121 + .../date-fns/locale/fr/_lib/match/index.js | 111 + node_modules/date-fns/locale/fr/index.d.ts | 4 + node_modules/date-fns/locale/fr/index.js | 45 + node_modules/date-fns/locale/fr/index.js.flow | 35 + node_modules/date-fns/locale/fr/package.json | 5 + .../locale/gd/_lib/formatDistance/index.js | 108 + .../locale/gd/_lib/formatLong/index.js | 46 + .../locale/gd/_lib/formatRelative/index.js | 21 + .../date-fns/locale/gd/_lib/localize/index.js | 162 + .../date-fns/locale/gd/_lib/match/index.js | 111 + node_modules/date-fns/locale/gd/index.d.ts | 4 + node_modules/date-fns/locale/gd/index.js | 44 + node_modules/date-fns/locale/gd/index.js.flow | 35 + node_modules/date-fns/locale/gd/package.json | 5 + .../locale/gl/_lib/formatDistance/index.js | 94 + .../locale/gl/_lib/formatLong/index.js | 46 + .../locale/gl/_lib/formatRelative/index.js | 32 + .../date-fns/locale/gl/_lib/localize/index.js | 133 + .../date-fns/locale/gl/_lib/match/index.js | 112 + node_modules/date-fns/locale/gl/index.d.ts | 4 + node_modules/date-fns/locale/gl/index.js | 45 + node_modules/date-fns/locale/gl/index.js.flow | 35 + node_modules/date-fns/locale/gl/package.json | 5 + .../locale/gu/_lib/formatDistance/index.js | 97 + .../locale/gu/_lib/formatLong/index.js | 59 + .../locale/gu/_lib/formatRelative/index.js | 26 + .../date-fns/locale/gu/_lib/localize/index.js | 161 + .../date-fns/locale/gu/_lib/match/index.js | 111 + node_modules/date-fns/locale/gu/index.d.ts | 4 + node_modules/date-fns/locale/gu/index.js | 44 + node_modules/date-fns/locale/gu/index.js.flow | 35 + node_modules/date-fns/locale/gu/package.json | 5 + .../locale/he/_lib/formatDistance/index.js | 124 + .../locale/he/_lib/formatLong/index.js | 46 + .../locale/he/_lib/formatRelative/index.js | 20 + .../date-fns/locale/he/_lib/localize/index.js | 141 + .../date-fns/locale/he/_lib/match/index.js | 113 + node_modules/date-fns/locale/he/index.d.ts | 4 + node_modules/date-fns/locale/he/index.js | 44 + node_modules/date-fns/locale/he/index.js.flow | 35 + node_modules/date-fns/locale/he/package.json | 5 + .../locale/hi/_lib/formatDistance/index.js | 106 + .../locale/hi/_lib/formatLong/index.js | 58 + .../locale/hi/_lib/formatRelative/index.js | 20 + .../date-fns/locale/hi/_lib/localize/index.js | 198 + .../date-fns/locale/hi/_lib/match/index.js | 111 + node_modules/date-fns/locale/hi/index.d.ts | 4 + node_modules/date-fns/locale/hi/index.js | 44 + node_modules/date-fns/locale/hi/index.js.flow | 35 + node_modules/date-fns/locale/hi/package.json | 5 + .../locale/hr/_lib/formatDistance/index.js | 181 + .../locale/hr/_lib/formatLong/index.js | 46 + .../locale/hr/_lib/formatRelative/index.js | 58 + .../date-fns/locale/hr/_lib/localize/index.js | 139 + .../date-fns/locale/hr/_lib/match/index.js | 111 + node_modules/date-fns/locale/hr/index.d.ts | 4 + node_modules/date-fns/locale/hr/index.js | 46 + node_modules/date-fns/locale/hr/index.js.flow | 35 + node_modules/date-fns/locale/hr/package.json | 5 + .../locale/hu/_lib/formatDistance/index.js | 90 + .../locale/hu/_lib/formatLong/index.js | 46 + .../locale/hu/_lib/formatRelative/index.js | 35 + .../date-fns/locale/hu/_lib/localize/index.js | 106 + .../date-fns/locale/hu/_lib/match/index.js | 112 + node_modules/date-fns/locale/hu/index.d.ts | 4 + node_modules/date-fns/locale/hu/index.js | 49 + node_modules/date-fns/locale/hu/index.js.flow | 35 + node_modules/date-fns/locale/hu/package.json | 5 + .../locale/hy/_lib/formatDistance/index.js | 94 + .../locale/hy/_lib/formatLong/index.js | 46 + .../locale/hy/_lib/formatRelative/index.js | 20 + .../date-fns/locale/hy/_lib/localize/index.js | 150 + .../date-fns/locale/hy/_lib/match/index.js | 113 + node_modules/date-fns/locale/hy/index.d.ts | 4 + node_modules/date-fns/locale/hy/index.js | 44 + node_modules/date-fns/locale/hy/index.js.flow | 35 + node_modules/date-fns/locale/hy/package.json | 5 + .../locale/id/_lib/formatDistance/index.js | 94 + .../locale/id/_lib/formatLong/index.js | 46 + .../locale/id/_lib/formatRelative/index.js | 20 + .../date-fns/locale/id/_lib/localize/index.js | 143 + .../date-fns/locale/id/_lib/match/index.js | 111 + node_modules/date-fns/locale/id/index.d.ts | 4 + node_modules/date-fns/locale/id/index.js | 47 + node_modules/date-fns/locale/id/index.js.flow | 35 + node_modules/date-fns/locale/id/package.json | 5 + node_modules/date-fns/locale/index.js | 607 + node_modules/date-fns/locale/index.js.flow | 113 + .../locale/is/_lib/formatDistance/index.js | 94 + .../locale/is/_lib/formatLong/index.js | 46 + .../locale/is/_lib/formatRelative/index.js | 20 + .../date-fns/locale/is/_lib/localize/index.js | 133 + .../date-fns/locale/is/_lib/match/index.js | 111 + node_modules/date-fns/locale/is/index.d.ts | 4 + node_modules/date-fns/locale/is/index.js | 45 + node_modules/date-fns/locale/is/index.js.flow | 35 + node_modules/date-fns/locale/is/package.json | 5 + .../locale/it/_lib/formatDistance/index.js | 94 + .../locale/it/_lib/formatLong/index.js | 46 + .../locale/it/_lib/formatRelative/index.js | 73 + .../date-fns/locale/it/_lib/localize/index.js | 133 + .../date-fns/locale/it/_lib/match/index.js | 111 + node_modules/date-fns/locale/it/index.d.ts | 4 + node_modules/date-fns/locale/it/index.js | 46 + node_modules/date-fns/locale/it/index.js.flow | 35 + node_modules/date-fns/locale/it/package.json | 5 + .../locale/ja/_lib/formatDistance/index.js | 106 + .../locale/ja/_lib/formatLong/index.js | 46 + .../locale/ja/_lib/formatRelative/index.js | 20 + .../date-fns/locale/ja/_lib/localize/index.js | 149 + .../date-fns/locale/ja/_lib/match/index.js | 109 + node_modules/date-fns/locale/ja/index.d.ts | 4 + node_modules/date-fns/locale/ja/index.js | 48 + node_modules/date-fns/locale/ja/index.js.flow | 35 + node_modules/date-fns/locale/ja/package.json | 5 + .../locale/ka/_lib/formatDistance/index.js | 107 + .../locale/ka/_lib/formatLong/index.js | 46 + .../locale/ka/_lib/formatRelative/index.js | 20 + .../date-fns/locale/ka/_lib/localize/index.js | 150 + .../date-fns/locale/ka/_lib/match/index.js | 105 + node_modules/date-fns/locale/ka/index.d.ts | 4 + node_modules/date-fns/locale/ka/index.js | 45 + node_modules/date-fns/locale/ka/index.js.flow | 35 + node_modules/date-fns/locale/ka/package.json | 5 + .../locale/kk/_lib/formatDistance/index.js | 235 + .../locale/kk/_lib/formatLong/index.js | 43 + .../locale/kk/_lib/formatRelative/index.js | 64 + .../date-fns/locale/kk/_lib/localize/index.js | 131 + .../date-fns/locale/kk/_lib/match/index.js | 113 + node_modules/date-fns/locale/kk/index.d.ts | 4 + node_modules/date-fns/locale/kk/index.js | 44 + node_modules/date-fns/locale/kk/index.js.flow | 35 + node_modules/date-fns/locale/kk/package.json | 5 + .../locale/kn/_lib/formatDistance/index.js | 200 + .../locale/kn/_lib/formatLong/index.js | 59 + .../locale/kn/_lib/formatRelative/index.js | 20 + .../date-fns/locale/kn/_lib/localize/index.js | 141 + .../date-fns/locale/kn/_lib/match/index.js | 111 + node_modules/date-fns/locale/kn/index.d.ts | 4 + node_modules/date-fns/locale/kn/index.js | 44 + node_modules/date-fns/locale/kn/index.js.flow | 35 + node_modules/date-fns/locale/kn/package.json | 5 + .../locale/ko/_lib/formatDistance/index.js | 94 + .../locale/ko/_lib/formatLong/index.js | 46 + .../locale/ko/_lib/formatRelative/index.js | 20 + .../date-fns/locale/ko/_lib/localize/index.js | 146 + .../date-fns/locale/ko/_lib/match/index.js | 108 + node_modules/date-fns/locale/ko/index.d.ts | 4 + node_modules/date-fns/locale/ko/index.js | 46 + node_modules/date-fns/locale/ko/index.js.flow | 35 + node_modules/date-fns/locale/ko/package.json | 5 + .../locale/lb/_lib/formatDistance/index.js | 212 + .../locale/lb/_lib/formatLong/index.js | 51 + .../locale/lb/_lib/formatRelative/index.js | 37 + .../date-fns/locale/lb/_lib/localize/index.js | 133 + .../date-fns/locale/lb/_lib/match/index.js | 113 + node_modules/date-fns/locale/lb/index.d.ts | 4 + node_modules/date-fns/locale/lb/index.js | 44 + node_modules/date-fns/locale/lb/index.js.flow | 35 + node_modules/date-fns/locale/lb/package.json | 5 + .../locale/lt/_lib/formatDistance/index.js | 155 + .../locale/lt/_lib/formatLong/index.js | 46 + .../locale/lt/_lib/formatRelative/index.js | 20 + .../date-fns/locale/lt/_lib/localize/index.js | 155 + .../date-fns/locale/lt/_lib/match/index.js | 124 + node_modules/date-fns/locale/lt/index.d.ts | 4 + node_modules/date-fns/locale/lt/index.js | 48 + node_modules/date-fns/locale/lt/index.js.flow | 35 + node_modules/date-fns/locale/lt/package.json | 5 + .../locale/lv/_lib/formatDistance/index.js | 114 + .../locale/lv/_lib/formatLong/index.js | 46 + .../locale/lv/_lib/formatRelative/index.js | 46 + .../date-fns/locale/lv/_lib/localize/index.js | 154 + .../date-fns/locale/lv/_lib/match/index.js | 114 + node_modules/date-fns/locale/lv/index.d.ts | 4 + node_modules/date-fns/locale/lv/index.js | 44 + node_modules/date-fns/locale/lv/index.js.flow | 35 + node_modules/date-fns/locale/lv/package.json | 5 + .../locale/mk/_lib/formatDistance/index.js | 94 + .../locale/mk/_lib/formatLong/index.js | 43 + .../locale/mk/_lib/formatRelative/index.js | 100 + .../date-fns/locale/mk/_lib/localize/index.js | 94 + .../date-fns/locale/mk/_lib/match/index.js | 108 + node_modules/date-fns/locale/mk/index.d.ts | 4 + node_modules/date-fns/locale/mk/index.js | 45 + node_modules/date-fns/locale/mk/index.js.flow | 35 + node_modules/date-fns/locale/mk/package.json | 5 + .../locale/ms/_lib/formatDistance/index.js | 94 + .../locale/ms/_lib/formatLong/index.js | 46 + .../locale/ms/_lib/formatRelative/index.js | 20 + .../date-fns/locale/ms/_lib/localize/index.js | 143 + .../date-fns/locale/ms/_lib/match/index.js | 111 + node_modules/date-fns/locale/ms/index.d.ts | 4 + node_modules/date-fns/locale/ms/index.js | 44 + node_modules/date-fns/locale/ms/index.js.flow | 35 + node_modules/date-fns/locale/ms/package.json | 5 + .../locale/mt/_lib/formatDistance/index.js | 101 + .../locale/mt/_lib/formatLong/index.js | 46 + .../locale/mt/_lib/formatRelative/index.js | 20 + .../date-fns/locale/mt/_lib/localize/index.js | 133 + .../date-fns/locale/mt/_lib/match/index.js | 111 + node_modules/date-fns/locale/mt/index.d.ts | 4 + node_modules/date-fns/locale/mt/index.js | 45 + node_modules/date-fns/locale/mt/index.js.flow | 35 + node_modules/date-fns/locale/mt/package.json | 5 + .../locale/nb/_lib/formatDistance/index.js | 102 + .../locale/nb/_lib/formatLong/index.js | 46 + .../locale/nb/_lib/formatRelative/index.js | 20 + .../date-fns/locale/nb/_lib/localize/index.js | 99 + .../date-fns/locale/nb/_lib/match/index.js | 110 + node_modules/date-fns/locale/nb/index.d.ts | 4 + node_modules/date-fns/locale/nb/index.js | 46 + node_modules/date-fns/locale/nb/index.js.flow | 35 + node_modules/date-fns/locale/nb/package.json | 5 + .../locale/nl-BE/_lib/formatDistance/index.js | 94 + .../locale/nl-BE/_lib/formatLong/index.js | 46 + .../locale/nl-BE/_lib/formatRelative/index.js | 20 + .../locale/nl-BE/_lib/localize/index.js | 99 + .../date-fns/locale/nl-BE/_lib/match/index.js | 110 + node_modules/date-fns/locale/nl-BE/index.d.ts | 4 + node_modules/date-fns/locale/nl-BE/index.js | 47 + .../date-fns/locale/nl-BE/index.js.flow | 35 + .../date-fns/locale/nl-BE/package.json | 5 + .../locale/nl/_lib/formatDistance/index.js | 94 + .../locale/nl/_lib/formatLong/index.js | 46 + .../locale/nl/_lib/formatRelative/index.js | 20 + .../date-fns/locale/nl/_lib/localize/index.js | 99 + .../date-fns/locale/nl/_lib/match/index.js | 110 + node_modules/date-fns/locale/nl/index.d.ts | 4 + node_modules/date-fns/locale/nl/index.js | 49 + node_modules/date-fns/locale/nl/index.js.flow | 35 + node_modules/date-fns/locale/nl/package.json | 5 + .../locale/nn/_lib/formatDistance/index.js | 102 + .../locale/nn/_lib/formatLong/index.js | 46 + .../locale/nn/_lib/formatRelative/index.js | 20 + .../date-fns/locale/nn/_lib/localize/index.js | 99 + .../date-fns/locale/nn/_lib/match/index.js | 110 + node_modules/date-fns/locale/nn/index.d.ts | 4 + node_modules/date-fns/locale/nn/index.js | 44 + node_modules/date-fns/locale/nn/index.js.flow | 35 + node_modules/date-fns/locale/nn/package.json | 5 + node_modules/date-fns/locale/package.json | 5 + .../locale/pl/_lib/formatDistance/index.js | 161 + .../locale/pl/_lib/formatLong/index.js | 46 + .../locale/pl/_lib/formatRelative/index.js | 77 + .../date-fns/locale/pl/_lib/localize/index.js | 147 + .../date-fns/locale/pl/_lib/match/index.js | 123 + node_modules/date-fns/locale/pl/index.d.ts | 4 + node_modules/date-fns/locale/pl/index.js | 47 + node_modules/date-fns/locale/pl/index.js.flow | 35 + node_modules/date-fns/locale/pl/package.json | 5 + .../locale/pt-BR/_lib/formatDistance/index.js | 94 + .../locale/pt-BR/_lib/formatLong/index.js | 46 + .../locale/pt-BR/_lib/formatRelative/index.js | 30 + .../locale/pt-BR/_lib/localize/index.js | 140 + .../date-fns/locale/pt-BR/_lib/match/index.js | 113 + node_modules/date-fns/locale/pt-BR/index.d.ts | 4 + node_modules/date-fns/locale/pt-BR/index.js | 45 + .../date-fns/locale/pt-BR/index.js.flow | 35 + .../date-fns/locale/pt-BR/package.json | 5 + .../locale/pt/_lib/formatDistance/index.js | 98 + .../locale/pt/_lib/formatLong/index.js | 46 + .../locale/pt/_lib/formatRelative/index.js | 20 + .../date-fns/locale/pt/_lib/localize/index.js | 132 + .../date-fns/locale/pt/_lib/match/index.js | 112 + node_modules/date-fns/locale/pt/index.d.ts | 4 + node_modules/date-fns/locale/pt/index.js | 45 + node_modules/date-fns/locale/pt/index.js.flow | 35 + node_modules/date-fns/locale/pt/package.json | 5 + .../locale/ro/_lib/formatDistance/index.js | 94 + .../locale/ro/_lib/formatLong/index.js | 46 + .../locale/ro/_lib/formatRelative/index.js | 20 + .../date-fns/locale/ro/_lib/localize/index.js | 133 + .../date-fns/locale/ro/_lib/match/index.js | 112 + node_modules/date-fns/locale/ro/index.d.ts | 4 + node_modules/date-fns/locale/ro/index.js | 46 + node_modules/date-fns/locale/ro/index.js.flow | 35 + node_modules/date-fns/locale/ro/package.json | 5 + .../locale/ru/_lib/formatDistance/index.js | 236 + .../locale/ru/_lib/formatLong/index.js | 43 + .../locale/ru/_lib/formatRelative/index.js | 99 + .../date-fns/locale/ru/_lib/localize/index.js | 151 + .../date-fns/locale/ru/_lib/match/index.js | 112 + node_modules/date-fns/locale/ru/index.d.ts | 4 + node_modules/date-fns/locale/ru/index.js | 45 + node_modules/date-fns/locale/ru/index.js.flow | 35 + node_modules/date-fns/locale/ru/package.json | 5 + .../locale/sk/_lib/formatDistance/index.js | 223 + .../locale/sk/_lib/formatLong/index.js | 49 + .../locale/sk/_lib/formatRelative/index.js | 102 + .../date-fns/locale/sk/_lib/localize/index.js | 145 + .../date-fns/locale/sk/_lib/match/index.js | 112 + node_modules/date-fns/locale/sk/index.d.ts | 4 + node_modules/date-fns/locale/sk/index.js | 44 + node_modules/date-fns/locale/sk/index.js.flow | 35 + node_modules/date-fns/locale/sk/package.json | 5 + .../locale/sl/_lib/formatDistance/index.js | 305 + .../locale/sl/_lib/formatLong/index.js | 46 + .../locale/sl/_lib/formatRelative/index.js | 58 + .../date-fns/locale/sl/_lib/localize/index.js | 132 + .../date-fns/locale/sl/_lib/match/index.js | 121 + node_modules/date-fns/locale/sl/index.d.ts | 4 + node_modules/date-fns/locale/sl/index.js | 45 + node_modules/date-fns/locale/sl/index.js.flow | 35 + node_modules/date-fns/locale/sl/package.json | 5 + .../sr-Latn/_lib/formatDistance/index.js | 181 + .../locale/sr-Latn/_lib/formatLong/index.js | 46 + .../sr-Latn/_lib/formatRelative/index.js | 58 + .../locale/sr-Latn/_lib/localize/index.js | 139 + .../locale/sr-Latn/_lib/match/index.js | 110 + .../date-fns/locale/sr-Latn/index.d.ts | 4 + node_modules/date-fns/locale/sr-Latn/index.js | 44 + .../date-fns/locale/sr-Latn/index.js.flow | 35 + .../date-fns/locale/sr-Latn/package.json | 5 + .../locale/sr/_lib/formatDistance/index.js | 181 + .../locale/sr/_lib/formatLong/index.js | 46 + .../locale/sr/_lib/formatRelative/index.js | 58 + .../date-fns/locale/sr/_lib/localize/index.js | 139 + .../date-fns/locale/sr/_lib/match/index.js | 110 + node_modules/date-fns/locale/sr/index.d.ts | 4 + node_modules/date-fns/locale/sr/index.js | 44 + node_modules/date-fns/locale/sr/index.js.flow | 35 + node_modules/date-fns/locale/sr/package.json | 5 + .../locale/sv/_lib/formatDistance/index.js | 102 + .../locale/sv/_lib/formatLong/index.js | 46 + .../locale/sv/_lib/formatRelative/index.js | 20 + .../date-fns/locale/sv/_lib/localize/index.js | 144 + .../date-fns/locale/sv/_lib/match/index.js | 109 + node_modules/date-fns/locale/sv/index.d.ts | 4 + node_modules/date-fns/locale/sv/index.js | 46 + node_modules/date-fns/locale/sv/index.js.flow | 35 + node_modules/date-fns/locale/sv/package.json | 5 + .../locale/ta/_lib/formatDistance/index.js | 222 + .../locale/ta/_lib/formatLong/index.js | 49 + .../locale/ta/_lib/formatRelative/index.js | 20 + .../date-fns/locale/ta/_lib/localize/index.js | 188 + .../date-fns/locale/ta/_lib/match/index.js | 112 + node_modules/date-fns/locale/ta/index.d.ts | 4 + node_modules/date-fns/locale/ta/index.js | 44 + node_modules/date-fns/locale/ta/index.js.flow | 35 + node_modules/date-fns/locale/ta/package.json | 5 + .../locale/te/_lib/formatDistance/index.js | 196 + .../locale/te/_lib/formatLong/index.js | 50 + .../locale/te/_lib/formatRelative/index.js | 26 + .../date-fns/locale/te/_lib/localize/index.js | 140 + .../date-fns/locale/te/_lib/match/index.js | 111 + node_modules/date-fns/locale/te/index.d.ts | 4 + node_modules/date-fns/locale/te/index.js | 44 + node_modules/date-fns/locale/te/index.js.flow | 35 + node_modules/date-fns/locale/te/package.json | 5 + .../locale/th/_lib/formatDistance/index.js | 98 + .../locale/th/_lib/formatLong/index.js | 46 + .../locale/th/_lib/formatRelative/index.js | 20 + .../date-fns/locale/th/_lib/localize/index.js | 133 + .../date-fns/locale/th/_lib/match/index.js | 110 + node_modules/date-fns/locale/th/index.d.ts | 4 + node_modules/date-fns/locale/th/index.js | 46 + node_modules/date-fns/locale/th/index.js.flow | 35 + node_modules/date-fns/locale/th/package.json | 5 + .../locale/tr/_lib/formatDistance/index.js | 94 + .../locale/tr/_lib/formatLong/index.js | 46 + .../locale/tr/_lib/formatRelative/index.js | 20 + .../date-fns/locale/tr/_lib/localize/index.js | 133 + .../date-fns/locale/tr/_lib/match/index.js | 114 + node_modules/date-fns/locale/tr/index.d.ts | 4 + node_modules/date-fns/locale/tr/index.js | 49 + node_modules/date-fns/locale/tr/index.js.flow | 35 + node_modules/date-fns/locale/tr/package.json | 5 + .../locale/ug/_lib/formatDistance/index.js | 94 + .../locale/ug/_lib/formatLong/index.js | 46 + .../locale/ug/_lib/formatRelative/index.js | 20 + .../date-fns/locale/ug/_lib/localize/index.js | 136 + .../date-fns/locale/ug/_lib/match/index.js | 110 + node_modules/date-fns/locale/ug/index.d.ts | 4 + node_modules/date-fns/locale/ug/index.js | 44 + node_modules/date-fns/locale/ug/index.js.flow | 35 + node_modules/date-fns/locale/ug/package.json | 5 + .../locale/uk/_lib/formatDistance/index.js | 236 + .../locale/uk/_lib/formatLong/index.js | 46 + .../locale/uk/_lib/formatRelative/index.js | 88 + .../date-fns/locale/uk/_lib/localize/index.js | 156 + .../date-fns/locale/uk/_lib/match/index.js | 112 + node_modules/date-fns/locale/uk/index.d.ts | 4 + node_modules/date-fns/locale/uk/index.js | 45 + node_modules/date-fns/locale/uk/index.js.flow | 35 + node_modules/date-fns/locale/uk/package.json | 5 + .../locale/uz/_lib/formatDistance/index.js | 94 + .../locale/uz/_lib/formatLong/index.js | 43 + .../locale/uz/_lib/formatRelative/index.js | 20 + .../date-fns/locale/uz/_lib/localize/index.js | 146 + .../date-fns/locale/uz/_lib/match/index.js | 111 + node_modules/date-fns/locale/uz/index.d.ts | 4 + node_modules/date-fns/locale/uz/index.js | 44 + node_modules/date-fns/locale/uz/index.js.flow | 35 + node_modules/date-fns/locale/uz/package.json | 5 + .../locale/vi/_lib/formatDistance/index.js | 94 + .../locale/vi/_lib/formatLong/index.js | 52 + .../locale/vi/_lib/formatRelative/index.js | 20 + .../date-fns/locale/vi/_lib/localize/index.js | 233 + .../date-fns/locale/vi/_lib/match/index.js | 119 + node_modules/date-fns/locale/vi/index.d.ts | 4 + node_modules/date-fns/locale/vi/index.js | 47 + node_modules/date-fns/locale/vi/index.js.flow | 35 + node_modules/date-fns/locale/vi/package.json | 5 + .../locale/zh-CN/_lib/formatDistance/index.js | 94 + .../locale/zh-CN/_lib/formatLong/index.js | 46 + .../locale/zh-CN/_lib/formatRelative/index.js | 43 + .../locale/zh-CN/_lib/localize/index.js | 160 + .../date-fns/locale/zh-CN/_lib/match/index.js | 109 + node_modules/date-fns/locale/zh-CN/index.d.ts | 4 + node_modules/date-fns/locale/zh-CN/index.js | 48 + .../date-fns/locale/zh-CN/index.js.flow | 35 + .../date-fns/locale/zh-CN/package.json | 5 + .../locale/zh-TW/_lib/formatDistance/index.js | 94 + .../locale/zh-TW/_lib/formatLong/index.js | 46 + .../locale/zh-TW/_lib/formatRelative/index.js | 20 + .../locale/zh-TW/_lib/localize/index.js | 160 + .../date-fns/locale/zh-TW/_lib/match/index.js | 109 + node_modules/date-fns/locale/zh-TW/index.d.ts | 4 + node_modules/date-fns/locale/zh-TW/index.js | 46 + .../date-fns/locale/zh-TW/index.js.flow | 35 + .../date-fns/locale/zh-TW/package.json | 5 + node_modules/date-fns/max/index.d.ts | 4 + node_modules/date-fns/max/index.js | 77 + node_modules/date-fns/max/index.js.flow | 50 + node_modules/date-fns/max/package.json | 5 + node_modules/date-fns/min/index.d.ts | 4 + node_modules/date-fns/min/index.js | 77 + node_modules/date-fns/min/index.js.flow | 50 + node_modules/date-fns/min/package.json | 5 + node_modules/date-fns/package.json | 147 + .../date-fns/parse/_lib/parsers/index.js | 1521 ++ node_modules/date-fns/parse/index.d.ts | 4 + node_modules/date-fns/parse/index.js | 571 + node_modules/date-fns/parse/index.js.flow | 61 + node_modules/date-fns/parse/package.json | 5 + node_modules/date-fns/parseISO/index.d.ts | 4 + node_modules/date-fns/parseISO/index.js | 303 + node_modules/date-fns/parseISO/index.js.flow | 55 + node_modules/date-fns/parseISO/package.json | 5 + node_modules/date-fns/parseJSON/index.d.ts | 4 + node_modules/date-fns/parseJSON/index.js | 63 + node_modules/date-fns/parseJSON/index.js.flow | 50 + node_modules/date-fns/parseJSON/package.json | 5 + .../date-fns/roundToNearestMinutes/index.d.ts | 4 + .../date-fns/roundToNearestMinutes/index.js | 66 + .../roundToNearestMinutes/index.js.flow | 55 + .../roundToNearestMinutes/package.json | 5 + node_modules/date-fns/set/index.d.ts | 4 + node_modules/date-fns/set/index.js | 100 + node_modules/date-fns/set/index.js.flow | 61 + node_modules/date-fns/set/package.json | 5 + node_modules/date-fns/setDate/index.d.ts | 4 + node_modules/date-fns/setDate/index.js | 46 + node_modules/date-fns/setDate/index.js.flow | 50 + node_modules/date-fns/setDate/package.json | 5 + node_modules/date-fns/setDay/index.d.ts | 4 + node_modules/date-fns/setDay/index.js | 71 + node_modules/date-fns/setDay/index.js.flow | 57 + node_modules/date-fns/setDay/package.json | 5 + node_modules/date-fns/setDayOfYear/index.d.ts | 4 + node_modules/date-fns/setDayOfYear/index.js | 47 + .../date-fns/setDayOfYear/index.js.flow | 50 + .../date-fns/setDayOfYear/package.json | 5 + node_modules/date-fns/setHours/index.d.ts | 4 + node_modules/date-fns/setHours/index.js | 46 + node_modules/date-fns/setHours/index.js.flow | 50 + node_modules/date-fns/setHours/package.json | 5 + node_modules/date-fns/setISODay/index.d.ts | 4 + node_modules/date-fns/setISODay/index.js | 53 + node_modules/date-fns/setISODay/index.js.flow | 50 + node_modules/date-fns/setISODay/package.json | 5 + node_modules/date-fns/setISOWeek/index.d.ts | 4 + node_modules/date-fns/setISOWeek/index.js | 51 + .../date-fns/setISOWeek/index.js.flow | 50 + node_modules/date-fns/setISOWeek/package.json | 5 + .../date-fns/setISOWeekYear/index.d.ts | 4 + node_modules/date-fns/setISOWeekYear/index.js | 63 + .../date-fns/setISOWeekYear/index.js.flow | 50 + .../date-fns/setISOWeekYear/package.json | 5 + .../date-fns/setMilliseconds/index.d.ts | 4 + .../date-fns/setMilliseconds/index.js | 46 + .../date-fns/setMilliseconds/index.js.flow | 50 + .../date-fns/setMilliseconds/package.json | 5 + node_modules/date-fns/setMinutes/index.d.ts | 4 + node_modules/date-fns/setMinutes/index.js | 46 + .../date-fns/setMinutes/index.js.flow | 50 + node_modules/date-fns/setMinutes/package.json | 5 + node_modules/date-fns/setMonth/index.d.ts | 4 + node_modules/date-fns/setMonth/index.js | 56 + node_modules/date-fns/setMonth/index.js.flow | 50 + node_modules/date-fns/setMonth/package.json | 5 + node_modules/date-fns/setQuarter/index.d.ts | 4 + node_modules/date-fns/setQuarter/index.js | 49 + .../date-fns/setQuarter/index.js.flow | 50 + node_modules/date-fns/setQuarter/package.json | 5 + node_modules/date-fns/setSeconds/index.d.ts | 4 + node_modules/date-fns/setSeconds/index.js | 46 + .../date-fns/setSeconds/index.js.flow | 50 + node_modules/date-fns/setSeconds/package.json | 5 + node_modules/date-fns/setWeek/index.d.ts | 4 + node_modules/date-fns/setWeek/index.js | 71 + node_modules/date-fns/setWeek/index.js.flow | 58 + node_modules/date-fns/setWeek/package.json | 5 + node_modules/date-fns/setWeekYear/index.d.ts | 4 + node_modules/date-fns/setWeekYear/index.js | 83 + .../date-fns/setWeekYear/index.js.flow | 58 + .../date-fns/setWeekYear/package.json | 5 + node_modules/date-fns/setYear/index.d.ts | 4 + node_modules/date-fns/setYear/index.js | 51 + node_modules/date-fns/setYear/index.js.flow | 50 + node_modules/date-fns/setYear/package.json | 5 + node_modules/date-fns/startOfDay/index.d.ts | 4 + node_modules/date-fns/startOfDay/index.js | 43 + .../date-fns/startOfDay/index.js.flow | 50 + node_modules/date-fns/startOfDay/package.json | 5 + .../date-fns/startOfDecade/index.d.ts | 4 + node_modules/date-fns/startOfDecade/index.js | 45 + .../date-fns/startOfDecade/index.js.flow | 50 + .../date-fns/startOfDecade/package.json | 5 + node_modules/date-fns/startOfHour/index.d.ts | 4 + node_modules/date-fns/startOfHour/index.js | 43 + .../date-fns/startOfHour/index.js.flow | 50 + .../date-fns/startOfHour/package.json | 5 + .../date-fns/startOfISOWeek/index.d.ts | 4 + node_modules/date-fns/startOfISOWeek/index.js | 45 + .../date-fns/startOfISOWeek/index.js.flow | 50 + .../date-fns/startOfISOWeek/package.json | 5 + .../date-fns/startOfISOWeekYear/index.d.ts | 4 + .../date-fns/startOfISOWeekYear/index.js | 51 + .../date-fns/startOfISOWeekYear/index.js.flow | 50 + .../date-fns/startOfISOWeekYear/package.json | 5 + .../date-fns/startOfMinute/index.d.ts | 4 + node_modules/date-fns/startOfMinute/index.js | 43 + .../date-fns/startOfMinute/index.js.flow | 50 + .../date-fns/startOfMinute/package.json | 5 + node_modules/date-fns/startOfMonth/index.d.ts | 4 + node_modules/date-fns/startOfMonth/index.js | 44 + .../date-fns/startOfMonth/index.js.flow | 50 + .../date-fns/startOfMonth/package.json | 5 + .../date-fns/startOfQuarter/index.d.ts | 4 + node_modules/date-fns/startOfQuarter/index.js | 46 + .../date-fns/startOfQuarter/index.js.flow | 50 + .../date-fns/startOfQuarter/package.json | 5 + .../date-fns/startOfSecond/index.d.ts | 4 + node_modules/date-fns/startOfSecond/index.js | 43 + .../date-fns/startOfSecond/index.js.flow | 50 + .../date-fns/startOfSecond/package.json | 5 + node_modules/date-fns/startOfToday/index.d.ts | 4 + node_modules/date-fns/startOfToday/index.js | 39 + .../date-fns/startOfToday/index.js.flow | 50 + .../date-fns/startOfToday/package.json | 5 + .../date-fns/startOfTomorrow/index.d.ts | 4 + .../date-fns/startOfTomorrow/index.js | 42 + .../date-fns/startOfTomorrow/index.js.flow | 50 + .../date-fns/startOfTomorrow/package.json | 5 + node_modules/date-fns/startOfWeek/index.d.ts | 4 + node_modules/date-fns/startOfWeek/index.js | 67 + .../date-fns/startOfWeek/index.js.flow | 56 + .../date-fns/startOfWeek/package.json | 5 + .../date-fns/startOfWeekYear/index.d.ts | 4 + .../date-fns/startOfWeekYear/index.js | 76 + .../date-fns/startOfWeekYear/index.js.flow | 57 + .../date-fns/startOfWeekYear/package.json | 5 + node_modules/date-fns/startOfYear/index.d.ts | 4 + node_modules/date-fns/startOfYear/index.js | 45 + .../date-fns/startOfYear/index.js.flow | 50 + .../date-fns/startOfYear/package.json | 5 + .../date-fns/startOfYesterday/index.d.ts | 4 + .../date-fns/startOfYesterday/index.js | 42 + .../date-fns/startOfYesterday/index.js.flow | 50 + .../date-fns/startOfYesterday/package.json | 5 + node_modules/date-fns/sub/index.d.ts | 4 + node_modules/date-fns/sub/index.js | 81 + node_modules/date-fns/sub/index.js.flow | 50 + node_modules/date-fns/sub/package.json | 5 + .../date-fns/subBusinessDays/index.d.ts | 4 + .../date-fns/subBusinessDays/index.js | 40 + .../date-fns/subBusinessDays/index.js.flow | 50 + .../date-fns/subBusinessDays/package.json | 5 + node_modules/date-fns/subDays/index.d.ts | 4 + node_modules/date-fns/subDays/index.js | 44 + node_modules/date-fns/subDays/index.js.flow | 50 + node_modules/date-fns/subDays/package.json | 5 + node_modules/date-fns/subHours/index.d.ts | 4 + node_modules/date-fns/subHours/index.js | 44 + node_modules/date-fns/subHours/index.js.flow | 50 + node_modules/date-fns/subHours/package.json | 5 + .../date-fns/subISOWeekYears/index.d.ts | 4 + .../date-fns/subISOWeekYears/index.js | 51 + .../date-fns/subISOWeekYears/index.js.flow | 50 + .../date-fns/subISOWeekYears/package.json | 5 + .../date-fns/subMilliseconds/index.d.ts | 4 + .../date-fns/subMilliseconds/index.js | 44 + .../date-fns/subMilliseconds/index.js.flow | 50 + .../date-fns/subMilliseconds/package.json | 5 + node_modules/date-fns/subMinutes/index.d.ts | 4 + node_modules/date-fns/subMinutes/index.js | 44 + .../date-fns/subMinutes/index.js.flow | 50 + node_modules/date-fns/subMinutes/package.json | 5 + node_modules/date-fns/subMonths/index.d.ts | 4 + node_modules/date-fns/subMonths/index.js | 44 + node_modules/date-fns/subMonths/index.js.flow | 50 + node_modules/date-fns/subMonths/package.json | 5 + node_modules/date-fns/subQuarters/index.d.ts | 4 + node_modules/date-fns/subQuarters/index.js | 44 + .../date-fns/subQuarters/index.js.flow | 50 + .../date-fns/subQuarters/package.json | 5 + node_modules/date-fns/subSeconds/index.d.ts | 4 + node_modules/date-fns/subSeconds/index.js | 44 + .../date-fns/subSeconds/index.js.flow | 50 + node_modules/date-fns/subSeconds/package.json | 5 + node_modules/date-fns/subWeeks/index.d.ts | 4 + node_modules/date-fns/subWeeks/index.js | 44 + node_modules/date-fns/subWeeks/index.js.flow | 50 + node_modules/date-fns/subWeeks/package.json | 5 + node_modules/date-fns/subYears/index.d.ts | 4 + node_modules/date-fns/subYears/index.js | 44 + node_modules/date-fns/subYears/index.js.flow | 50 + node_modules/date-fns/subYears/package.json | 5 + node_modules/date-fns/toDate/index.d.ts | 4 + node_modules/date-fns/toDate/index.js | 63 + node_modules/date-fns/toDate/index.js.flow | 50 + node_modules/date-fns/toDate/package.json | 5 + node_modules/date-fns/typings.d.ts | 19292 ++++++++++++++++ node_modules/debug/.coveralls.yml | 1 + node_modules/debug/.eslintrc | 11 + node_modules/debug/.npmignore | 9 + node_modules/debug/.travis.yml | 14 + node_modules/debug/CHANGELOG.md | 362 + node_modules/debug/LICENSE | 19 + node_modules/debug/Makefile | 50 + node_modules/debug/README.md | 312 + node_modules/debug/component.json | 19 + node_modules/debug/karma.conf.js | 70 + node_modules/debug/node.js | 1 + node_modules/debug/package.json | 91 + node_modules/debug/src/browser.js | 185 + node_modules/debug/src/debug.js | 202 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/inspector-log.js | 15 + node_modules/debug/src/node.js | 248 + node_modules/decamelize/index.js | 13 + node_modules/decamelize/license | 21 + node_modules/decamelize/package.json | 71 + node_modules/decamelize/readme.md | 48 + node_modules/decompress-response/index.js | 29 + node_modules/decompress-response/license | 21 + node_modules/decompress-response/package.json | 85 + node_modules/decompress-response/readme.md | 31 + node_modules/deep-extend/CHANGELOG.md | 46 + node_modules/deep-extend/LICENSE | 20 + node_modules/deep-extend/README.md | 91 + node_modules/deep-extend/index.js | 1 + node_modules/deep-extend/lib/deep-extend.js | 150 + node_modules/deep-extend/package.json | 92 + node_modules/defer-to-connect/LICENSE | 21 + node_modules/defer-to-connect/README.md | 38 + node_modules/defer-to-connect/dist/index.d.ts | 10 + node_modules/defer-to-connect/dist/index.js | 45 + node_modules/defer-to-connect/package.json | 101 + node_modules/delayed-stream/.npmignore | 1 + node_modules/delayed-stream/License | 19 + node_modules/delayed-stream/Makefile | 7 + node_modules/delayed-stream/Readme.md | 141 + .../delayed-stream/lib/delayed_stream.js | 107 + node_modules/delayed-stream/package.json | 62 + node_modules/denque/LICENSE | 13 + node_modules/denque/README.md | 362 + node_modules/denque/index.d.ts | 26 + node_modules/denque/index.js | 437 + node_modules/denque/package.json | 84 + node_modules/depd/History.md | 96 + node_modules/depd/LICENSE | 22 + node_modules/depd/Readme.md | 280 + node_modules/depd/index.js | 522 + node_modules/depd/lib/browser/index.js | 77 + .../depd/lib/compat/callsite-tostring.js | 103 + .../depd/lib/compat/event-listener-count.js | 22 + node_modules/depd/lib/compat/index.js | 79 + node_modules/depd/package.json | 79 + node_modules/destroy/LICENSE | 22 + node_modules/destroy/README.md | 60 + node_modules/destroy/index.js | 75 + node_modules/destroy/package.json | 71 + node_modules/dot-prop/index.d.ts | 101 + node_modules/dot-prop/index.js | 142 + node_modules/dot-prop/license | 9 + node_modules/dot-prop/package.json | 77 + node_modules/dot-prop/readme.md | 117 + node_modules/duplexer3/LICENSE.md | 26 + node_modules/duplexer3/README.md | 115 + node_modules/duplexer3/index.js | 76 + node_modules/duplexer3/package.json | 64 + node_modules/ecc-jsbn/LICENSE | 21 + node_modules/ecc-jsbn/README.md | 8 + node_modules/ecc-jsbn/index.js | 58 + node_modules/ecc-jsbn/lib/LICENSE-jsbn | 40 + node_modules/ecc-jsbn/lib/ec.js | 561 + node_modules/ecc-jsbn/lib/sec.js | 170 + node_modules/ecc-jsbn/package.json | 65 + node_modules/ecc-jsbn/test.js | 14 + node_modules/ecdsa-sig-formatter/CODEOWNERS | 1 + node_modules/ecdsa-sig-formatter/LICENSE | 201 + node_modules/ecdsa-sig-formatter/README.md | 65 + node_modules/ecdsa-sig-formatter/package.json | 73 + .../src/ecdsa-sig-formatter.d.ts | 17 + .../src/ecdsa-sig-formatter.js | 187 + .../src/param-bytes-for-alg.js | 23 + node_modules/ee-first/LICENSE | 22 + node_modules/ee-first/README.md | 80 + node_modules/ee-first/index.js | 95 + node_modules/ee-first/package.json | 63 + node_modules/email-validator/.travis.yml | 16 + node_modules/email-validator/CHANGELOG.md | 19 + node_modules/email-validator/LICENSE | 24 + node_modules/email-validator/README.md | 51 + node_modules/email-validator/index.cjs.js | 32 + node_modules/email-validator/index.cjs.js.map | 1 + node_modules/email-validator/index.d.ts | 19 + node_modules/email-validator/index.js | 30 + node_modules/email-validator/package.json | 78 + node_modules/email-validator/test.js | 90 + node_modules/emoji-regex/LICENSE-MIT.txt | 20 + node_modules/emoji-regex/README.md | 73 + node_modules/emoji-regex/es2015/index.js | 6 + node_modules/emoji-regex/es2015/text.js | 6 + node_modules/emoji-regex/index.d.ts | 23 + node_modules/emoji-regex/index.js | 6 + node_modules/emoji-regex/package.json | 77 + node_modules/emoji-regex/text.js | 6 + node_modules/encodeurl/HISTORY.md | 14 + node_modules/encodeurl/LICENSE | 22 + node_modules/encodeurl/README.md | 128 + node_modules/encodeurl/index.js | 60 + node_modules/encodeurl/package.json | 78 + node_modules/end-of-stream/LICENSE | 21 + node_modules/end-of-stream/README.md | 54 + node_modules/end-of-stream/index.js | 94 + node_modules/end-of-stream/package.json | 65 + node_modules/error-ex/LICENSE | 21 + node_modules/error-ex/README.md | 144 + node_modules/error-ex/index.js | 141 + node_modules/error-ex/package.json | 86 + node_modules/escape-goat/index.d.ts | 62 + node_modules/escape-goat/index.js | 33 + node_modules/escape-goat/license | 9 + node_modules/escape-goat/package.json | 77 + node_modules/escape-goat/readme.md | 76 + node_modules/escape-html/LICENSE | 24 + node_modules/escape-html/Readme.md | 43 + node_modules/escape-html/index.js | 78 + node_modules/escape-html/package.json | 59 + node_modules/escape-string-regexp/index.js | 11 + node_modules/escape-string-regexp/license | 21 + .../escape-string-regexp/package.json | 81 + node_modules/escape-string-regexp/readme.md | 27 + node_modules/etag/HISTORY.md | 83 + node_modules/etag/LICENSE | 22 + node_modules/etag/README.md | 159 + node_modules/etag/index.js | 131 + node_modules/etag/package.json | 86 + node_modules/express-validator/LICENSE | 21 + node_modules/express-validator/README.md | 32 + .../express-validator/check/index.d.ts | 1 + node_modules/express-validator/check/index.js | 20 + .../express-validator/docs/api-check.md | 110 + .../express-validator/docs/api-filter.md | 65 + .../docs/api-matched-data.md | 62 + .../docs/api-sanitization-chain.md | 77 + .../docs/api-validation-chain.md | 224 + .../docs/api-validation-result.md | 120 + .../feature-custom-validators-sanitizers.md | 68 + .../docs/feature-error-messages.md | 101 + .../docs/feature-running-imperatively.md | 55 + .../docs/feature-sanitization.md | 41 + .../docs/feature-schema-validation.md | 72 + .../docs/feature-whole-body-validation.md | 35 + .../docs/feature-wildcards.md | 47 + node_modules/express-validator/docs/index.md | 83 + .../express-validator/filter/index.d.ts | 1 + .../express-validator/filter/index.js | 14 + node_modules/express-validator/package.json | 110 + node_modules/express-validator/src/base.d.ts | 47 + node_modules/express-validator/src/base.js | 7 + .../src/chain/context-handler-impl.d.ts | 13 + .../src/chain/context-handler-impl.js | 40 + .../src/chain/context-handler.d.ts | 8 + .../src/chain/context-handler.js | 2 + .../src/chain/context-runner-impl.d.ts | 19 + .../src/chain/context-runner-impl.js | 66 + .../src/chain/context-runner.d.ts | 10 + .../src/chain/context-runner.js | 2 + .../express-validator/src/chain/index.d.ts | 10 + .../express-validator/src/chain/index.js | 22 + .../src/chain/sanitization-chain.d.ts | 8 + .../src/chain/sanitization-chain.js | 2 + .../src/chain/sanitizers-impl.d.ts | 25 + .../src/chain/sanitizers-impl.js | 63 + .../src/chain/sanitizers.d.ts | 19 + .../express-validator/src/chain/sanitizers.js | 2 + .../src/chain/validation-chain.d.ts | 10 + .../src/chain/validation-chain.js | 2 + .../src/chain/validators-impl.d.ts | 101 + .../src/chain/validators-impl.js | 287 + .../src/chain/validators.d.ts | 93 + .../express-validator/src/chain/validators.js | 2 + .../src/context-builder.d.ts | 16 + .../express-validator/src/context-builder.js | 36 + .../src/context-items/bail.d.ts | 5 + .../src/context-items/bail.js | 13 + .../src/context-items/chain-condition.d.ts | 9 + .../src/context-items/chain-condition.js | 16 + .../src/context-items/context-item.d.ts | 5 + .../src/context-items/context-item.js | 2 + .../src/context-items/custom-condition.d.ts | 8 + .../src/context-items/custom-condition.js | 24 + .../src/context-items/custom-validation.d.ts | 10 + .../src/context-items/custom-validation.js | 29 + .../src/context-items/index.d.ts | 5 + .../src/context-items/index.js | 17 + .../src/context-items/sanitization.d.ts | 10 + .../src/context-items/sanitization.js | 19 + .../context-items/standard-validation.d.ts | 11 + .../src/context-items/standard-validation.js | 18 + .../express-validator/src/context.d.ts | 25 + node_modules/express-validator/src/context.js | 80 + node_modules/express-validator/src/index.d.ts | 9 + node_modules/express-validator/src/index.js | 19 + .../express-validator/src/matched-data.d.ts | 7 + .../express-validator/src/matched-data.js | 38 + .../src/middlewares/check.d.ts | 3 + .../src/middlewares/check.js | 24 + .../src/middlewares/one-of.d.ts | 7 + .../src/middlewares/one-of.js | 43 + .../sanitization-chain-builders.d.ts | 7 + .../sanitization-chain-builders.js | 13 + .../src/middlewares/sanitize.d.ts | 3 + .../src/middlewares/sanitize.js | 30 + .../src/middlewares/schema.d.ts | 44 + .../src/middlewares/schema.js | 50 + .../validation-chain-builders.d.ts | 8 + .../middlewares/validation-chain-builders.js | 14 + .../express-validator/src/options.d.ts | 213 + node_modules/express-validator/src/options.js | 2 + .../express-validator/src/select-fields.d.ts | 3 + .../express-validator/src/select-fields.js | 77 + node_modules/express-validator/src/utils.d.ts | 2 + node_modules/express-validator/src/utils.js | 29 + .../src/validation-result.d.ts | 23 + .../src/validation-result.js | 51 + node_modules/express/History.md | 3477 +++ node_modules/express/LICENSE | 24 + node_modules/express/Readme.md | 155 + node_modules/express/index.js | 11 + node_modules/express/lib/application.js | 644 + node_modules/express/lib/express.js | 116 + node_modules/express/lib/middleware/init.js | 43 + node_modules/express/lib/middleware/query.js | 47 + node_modules/express/lib/request.js | 525 + node_modules/express/lib/response.js | 1142 + node_modules/express/lib/router/index.js | 662 + node_modules/express/lib/router/layer.js | 181 + node_modules/express/lib/router/route.js | 216 + node_modules/express/lib/utils.js | 306 + node_modules/express/lib/view.js | 182 + node_modules/express/package.json | 154 + node_modules/extend/.editorconfig | 20 + node_modules/extend/.eslintrc | 17 + node_modules/extend/.jscs.json | 175 + node_modules/extend/.travis.yml | 230 + node_modules/extend/CHANGELOG.md | 83 + node_modules/extend/LICENSE | 23 + node_modules/extend/README.md | 81 + node_modules/extend/component.json | 32 + node_modules/extend/index.js | 117 + node_modules/extend/package.json | 75 + node_modules/extsprintf/.gitmodules | 0 node_modules/extsprintf/.npmignore | 2 + node_modules/extsprintf/LICENSE | 19 + node_modules/extsprintf/Makefile | 24 + node_modules/extsprintf/Makefile.targ | 285 + node_modules/extsprintf/README.md | 46 + node_modules/extsprintf/jsl.node.conf | 137 + node_modules/extsprintf/lib/extsprintf.js | 183 + node_modules/extsprintf/package.json | 44 + node_modules/fast-deep-equal/LICENSE | 21 + node_modules/fast-deep-equal/README.md | 96 + node_modules/fast-deep-equal/es6/index.d.ts | 2 + node_modules/fast-deep-equal/es6/index.js | 72 + node_modules/fast-deep-equal/es6/react.d.ts | 2 + node_modules/fast-deep-equal/es6/react.js | 79 + node_modules/fast-deep-equal/index.d.ts | 4 + node_modules/fast-deep-equal/index.js | 46 + node_modules/fast-deep-equal/package.json | 88 + node_modules/fast-deep-equal/react.d.ts | 2 + node_modules/fast-deep-equal/react.js | 53 + .../fast-json-stable-stringify/.eslintrc.yml | 26 + .../.github/FUNDING.yml | 1 + .../fast-json-stable-stringify/.travis.yml | 8 + .../fast-json-stable-stringify/LICENSE | 21 + .../fast-json-stable-stringify/README.md | 131 + .../benchmark/index.js | 31 + .../benchmark/test.json | 137 + .../example/key_cmp.js | 7 + .../example/nested.js | 3 + .../fast-json-stable-stringify/example/str.js | 3 + .../example/value_cmp.js | 7 + .../fast-json-stable-stringify/index.d.ts | 4 + .../fast-json-stable-stringify/index.js | 59 + .../fast-json-stable-stringify/package.json | 80 + .../fast-json-stable-stringify/test/cmp.js | 13 + .../fast-json-stable-stringify/test/nested.js | 44 + .../fast-json-stable-stringify/test/str.js | 46 + .../test/to-json.js | 22 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 249 + node_modules/fill-range/package.json | 114 + node_modules/finalhandler/HISTORY.md | 187 + node_modules/finalhandler/LICENSE | 22 + node_modules/finalhandler/README.md | 148 + node_modules/finalhandler/index.js | 331 + node_modules/finalhandler/package.json | 80 + node_modules/find-up/index.d.ts | 137 + node_modules/find-up/index.js | 89 + node_modules/find-up/license | 9 + node_modules/find-up/package.json | 85 + node_modules/find-up/readme.md | 156 + node_modules/forever-agent/LICENSE | 55 + node_modules/forever-agent/README.md | 4 + node_modules/forever-agent/index.js | 138 + node_modules/forever-agent/package.json | 50 + node_modules/form-data/License | 19 + node_modules/form-data/README.md | 234 + node_modules/form-data/README.md.bak | 234 + node_modules/form-data/lib/browser.js | 2 + node_modules/form-data/lib/form_data.js | 457 + node_modules/form-data/lib/populate.js | 10 + node_modules/form-data/package.json | 98 + node_modules/form-data/yarn.lock | 2662 +++ node_modules/forwarded/HISTORY.md | 16 + node_modules/forwarded/LICENSE | 22 + node_modules/forwarded/README.md | 57 + node_modules/forwarded/index.js | 76 + node_modules/forwarded/package.json | 78 + node_modules/fresh/HISTORY.md | 70 + node_modules/fresh/LICENSE | 23 + node_modules/fresh/README.md | 119 + node_modules/fresh/index.js | 137 + node_modules/fresh/package.json | 90 + node_modules/get-caller-file/LICENSE.md | 6 + node_modules/get-caller-file/README.md | 41 + node_modules/get-caller-file/index.d.ts | 2 + node_modules/get-caller-file/index.js | 22 + node_modules/get-caller-file/index.js.map | 1 + node_modules/get-caller-file/package.json | 69 + node_modules/get-stream/buffer-stream.js | 51 + node_modules/get-stream/index.js | 50 + node_modules/get-stream/license | 9 + node_modules/get-stream/package.json | 78 + node_modules/get-stream/readme.md | 123 + node_modules/getpass/.npmignore | 8 + node_modules/getpass/.travis.yml | 9 + node_modules/getpass/LICENSE | 18 + node_modules/getpass/README.md | 32 + node_modules/getpass/lib/index.js | 123 + node_modules/getpass/package.json | 50 + node_modules/glob-parent/LICENSE | 15 + node_modules/glob-parent/README.md | 137 + node_modules/glob-parent/index.js | 41 + node_modules/glob-parent/package.json | 90 + node_modules/global-dirs/index.d.ts | 60 + node_modules/global-dirs/index.js | 118 + node_modules/global-dirs/license | 9 + node_modules/global-dirs/package.json | 87 + node_modules/global-dirs/readme.md | 77 + node_modules/got/license | 9 + node_modules/got/package.json | 106 + node_modules/got/readme.md | 1237 + node_modules/got/source/as-promise.js | 108 + node_modules/got/source/as-stream.js | 93 + node_modules/got/source/create.js | 79 + node_modules/got/source/errors.js | 107 + node_modules/got/source/get-response.js | 31 + node_modules/got/source/index.js | 60 + node_modules/got/source/known-hook-events.js | 10 + node_modules/got/source/merge.js | 73 + .../got/source/normalize-arguments.js | 265 + node_modules/got/source/progress.js | 96 + .../got/source/request-as-event-emitter.js | 312 + node_modules/got/source/utils/deep-freeze.js | 12 + .../got/source/utils/get-body-size.js | 32 + node_modules/got/source/utils/is-form-data.js | 4 + node_modules/got/source/utils/timed-out.js | 160 + .../got/source/utils/url-to-options.js | 25 + node_modules/graceful-fs/LICENSE | 15 + node_modules/graceful-fs/README.md | 133 + node_modules/graceful-fs/clone.js | 19 + node_modules/graceful-fs/graceful-fs.js | 354 + node_modules/graceful-fs/legacy-streams.js | 118 + node_modules/graceful-fs/package.json | 79 + node_modules/graceful-fs/polyfills.js | 342 + node_modules/gravatar/.travis.yml | 5 + node_modules/gravatar/Changelog.md | 84 + node_modules/gravatar/Readme.md | 138 + node_modules/gravatar/cli.js | 96 + node_modules/gravatar/index.js | 1 + node_modules/gravatar/lib/gravatar.js | 59 + node_modules/gravatar/package.json | 70 + node_modules/gravatar/test/gravatar.test.js | 151 + node_modules/har-schema/LICENSE | 13 + node_modules/har-schema/README.md | 49 + node_modules/har-schema/lib/afterRequest.json | 30 + .../har-schema/lib/beforeRequest.json | 30 + node_modules/har-schema/lib/browser.json | 20 + node_modules/har-schema/lib/cache.json | 21 + node_modules/har-schema/lib/content.json | 29 + node_modules/har-schema/lib/cookie.json | 36 + node_modules/har-schema/lib/creator.json | 20 + node_modules/har-schema/lib/entry.json | 53 + node_modules/har-schema/lib/har.json | 13 + node_modules/har-schema/lib/header.json | 20 + node_modules/har-schema/lib/index.js | 22 + node_modules/har-schema/lib/log.json | 36 + node_modules/har-schema/lib/page.json | 32 + node_modules/har-schema/lib/pageTimings.json | 18 + node_modules/har-schema/lib/postData.json | 43 + node_modules/har-schema/lib/query.json | 20 + node_modules/har-schema/lib/request.json | 57 + node_modules/har-schema/lib/response.json | 54 + node_modules/har-schema/lib/timings.json | 42 + node_modules/har-schema/package.json | 86 + node_modules/har-validator/LICENSE | 9 + node_modules/har-validator/README.md | 43 + node_modules/har-validator/lib/async.js | 105 + node_modules/har-validator/lib/error.js | 17 + node_modules/har-validator/lib/promise.js | 102 + node_modules/har-validator/package.json | 72 + node_modules/has-flag/index.js | 8 + node_modules/has-flag/license | 9 + node_modules/has-flag/package.json | 78 + node_modules/has-flag/readme.md | 70 + node_modules/has-yarn/index.d.ts | 16 + node_modules/has-yarn/index.js | 9 + node_modules/has-yarn/license | 9 + node_modules/has-yarn/package.json | 71 + node_modules/has-yarn/readme.md | 60 + node_modules/hosted-git-info/CHANGELOG.md | 141 + node_modules/hosted-git-info/LICENSE | 13 + node_modules/hosted-git-info/README.md | 133 + node_modules/hosted-git-info/git-host-info.js | 79 + node_modules/hosted-git-info/git-host.js | 156 + node_modules/hosted-git-info/index.js | 148 + node_modules/hosted-git-info/package.json | 69 + node_modules/http-cache-semantics/LICENSE | 9 + node_modules/http-cache-semantics/README.md | 203 + node_modules/http-cache-semantics/index.js | 673 + .../http-cache-semantics/package.json | 60 + node_modules/http-errors/HISTORY.md | 149 + node_modules/http-errors/LICENSE | 23 + node_modules/http-errors/README.md | 163 + node_modules/http-errors/index.js | 266 + node_modules/http-errors/package.json | 93 + node_modules/http-signature/.dir-locals.el | 6 + node_modules/http-signature/.npmignore | 7 + node_modules/http-signature/CHANGES.md | 46 + node_modules/http-signature/LICENSE | 18 + node_modules/http-signature/README.md | 79 + node_modules/http-signature/http_signing.md | 363 + node_modules/http-signature/lib/index.js | 29 + node_modules/http-signature/lib/parser.js | 315 + node_modules/http-signature/lib/signer.js | 401 + node_modules/http-signature/lib/utils.js | 112 + node_modules/http-signature/lib/verify.js | 88 + node_modules/http-signature/package.json | 77 + node_modules/iconv-lite/Changelog.md | 162 + node_modules/iconv-lite/LICENSE | 21 + node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 555 + .../iconv-lite/encodings/dbcs-data.js | 176 + node_modules/iconv-lite/encodings/index.js | 22 + node_modules/iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 174 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + node_modules/iconv-lite/encodings/utf16.js | 177 + node_modules/iconv-lite/encodings/utf7.js | 290 + node_modules/iconv-lite/lib/bom-handling.js | 52 + node_modules/iconv-lite/lib/extend-node.js | 217 + node_modules/iconv-lite/lib/index.d.ts | 24 + node_modules/iconv-lite/lib/index.js | 153 + node_modules/iconv-lite/lib/streams.js | 121 + node_modules/iconv-lite/package.json | 77 + node_modules/ignore-by-default/LICENSE | 14 + node_modules/ignore-by-default/README.md | 26 + node_modules/ignore-by-default/index.js | 12 + node_modules/ignore-by-default/package.json | 62 + node_modules/import-lazy/index.js | 53 + node_modules/import-lazy/license | 21 + node_modules/import-lazy/package.json | 76 + node_modules/import-lazy/readme.md | 64 + node_modules/imurmurhash/README.md | 122 + node_modules/imurmurhash/imurmurhash.js | 138 + node_modules/imurmurhash/imurmurhash.min.js | 12 + node_modules/imurmurhash/package.json | 63 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 7 + node_modules/inherits/inherits_browser.js | 23 + node_modules/inherits/package.json | 62 + node_modules/ini/LICENSE | 15 + node_modules/ini/README.md | 102 + node_modules/ini/ini.js | 194 + node_modules/ini/package.json | 64 + node_modules/ipaddr.js/LICENSE | 19 + node_modules/ipaddr.js/README.md | 233 + node_modules/ipaddr.js/ipaddr.min.js | 1 + node_modules/ipaddr.js/lib/ipaddr.js | 673 + node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + node_modules/ipaddr.js/package.json | 70 + node_modules/is-arrayish/.editorconfig | 18 + node_modules/is-arrayish/.istanbul.yml | 4 + node_modules/is-arrayish/.npmignore | 5 + node_modules/is-arrayish/.travis.yml | 17 + node_modules/is-arrayish/LICENSE | 21 + node_modules/is-arrayish/README.md | 16 + node_modules/is-arrayish/index.js | 10 + node_modules/is-arrayish/package.json | 66 + node_modules/is-binary-path/index.d.ts | 17 + node_modules/is-binary-path/index.js | 7 + node_modules/is-binary-path/license | 9 + node_modules/is-binary-path/package.json | 72 + node_modules/is-binary-path/readme.md | 34 + node_modules/is-ci/CHANGELOG.md | 14 + node_modules/is-ci/LICENSE | 21 + node_modules/is-ci/README.md | 50 + node_modules/is-ci/bin.js | 4 + node_modules/is-ci/index.js | 3 + node_modules/is-ci/package.json | 69 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 100 + .../is-fullwidth-code-point/index.d.ts | 17 + node_modules/is-fullwidth-code-point/index.js | 50 + node_modules/is-fullwidth-code-point/license | 9 + .../is-fullwidth-code-point/package.json | 74 + .../is-fullwidth-code-point/readme.md | 39 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 + node_modules/is-glob/index.js | 48 + node_modules/is-glob/package.json | 122 + node_modules/is-installed-globally/index.d.ts | 19 + node_modules/is-installed-globally/index.js | 15 + node_modules/is-installed-globally/license | 9 + .../is-installed-globally/package.json | 86 + node_modules/is-installed-globally/readme.md | 34 + node_modules/is-npm/index.d.ts | 41 + node_modules/is-npm/index.js | 9 + node_modules/is-npm/license | 9 + node_modules/is-npm/package.json | 69 + node_modules/is-npm/readme.md | 59 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 122 + node_modules/is-obj/index.d.ts | 22 + node_modules/is-obj/index.js | 6 + node_modules/is-obj/license | 9 + node_modules/is-obj/package.json | 66 + node_modules/is-obj/readme.md | 39 + node_modules/is-path-inside/index.d.ts | 27 + node_modules/is-path-inside/index.js | 21 + node_modules/is-path-inside/license | 9 + node_modules/is-path-inside/package.json | 68 + node_modules/is-path-inside/readme.md | 63 + node_modules/is-typedarray/LICENSE.md | 18 + node_modules/is-typedarray/README.md | 16 + node_modules/is-typedarray/index.js | 41 + node_modules/is-typedarray/package.json | 59 + node_modules/is-typedarray/test.js | 34 + node_modules/is-yarn-global/.travis.yml | 4 + node_modules/is-yarn-global/LICENSE | 21 + node_modules/is-yarn-global/README.md | 28 + node_modules/is-yarn-global/index.js | 12 + node_modules/is-yarn-global/package.json | 50 + node_modules/isarray/.npmignore | 1 + node_modules/isarray/.travis.yml | 4 + node_modules/isarray/Makefile | 6 + node_modules/isarray/README.md | 60 + node_modules/isarray/component.json | 19 + node_modules/isarray/index.js | 5 + node_modules/isarray/package.json | 73 + node_modules/isarray/test.js | 20 + node_modules/isstream/.jshintrc | 59 + node_modules/isstream/.npmignore | 1 + node_modules/isstream/.travis.yml | 12 + node_modules/isstream/LICENSE.md | 11 + node_modules/isstream/README.md | 66 + node_modules/isstream/isstream.js | 27 + node_modules/isstream/package.json | 61 + node_modules/isstream/test.js | 168 + node_modules/jsbn/.npmignore | 2 + node_modules/jsbn/LICENSE | 40 + node_modules/jsbn/README.md | 175 + node_modules/jsbn/example.html | 12 + node_modules/jsbn/example.js | 3 + node_modules/jsbn/index.js | 1357 ++ node_modules/jsbn/package.json | 53 + node_modules/json-buffer/.npmignore | 3 + node_modules/json-buffer/.travis.yml | 3 + node_modules/json-buffer/LICENSE | 22 + node_modules/json-buffer/README.md | 24 + node_modules/json-buffer/index.js | 58 + node_modules/json-buffer/package.json | 66 + node_modules/json-buffer/test/index.js | 63 + .../json-parse-better-errors/CHANGELOG.md | 46 + .../json-parse-better-errors/LICENSE.md | 7 + .../json-parse-better-errors/README.md | 46 + .../json-parse-better-errors/index.js | 38 + .../json-parse-better-errors/package.json | 76 + .../json-schema-traverse/.eslintrc.yml | 27 + node_modules/json-schema-traverse/.travis.yml | 8 + node_modules/json-schema-traverse/LICENSE | 21 + node_modules/json-schema-traverse/README.md | 83 + node_modules/json-schema-traverse/index.js | 89 + .../json-schema-traverse/package.json | 70 + .../json-schema-traverse/spec/.eslintrc.yml | 6 + .../spec/fixtures/schema.js | 125 + .../json-schema-traverse/spec/index.spec.js | 171 + node_modules/json-schema/README.md | 5 + .../json-schema/draft-00/hyper-schema | 68 + node_modules/json-schema/draft-00/json-ref | 26 + node_modules/json-schema/draft-00/links | 33 + node_modules/json-schema/draft-00/schema | 155 + .../json-schema/draft-01/hyper-schema | 68 + node_modules/json-schema/draft-01/json-ref | 26 + node_modules/json-schema/draft-01/links | 33 + node_modules/json-schema/draft-01/schema | 155 + .../json-schema/draft-02/hyper-schema | 68 + node_modules/json-schema/draft-02/json-ref | 26 + node_modules/json-schema/draft-02/links | 35 + node_modules/json-schema/draft-02/schema | 166 + .../json-schema/draft-03/examples/address | 20 + .../json-schema/draft-03/examples/calendar | 53 + .../json-schema/draft-03/examples/card | 105 + .../json-schema/draft-03/examples/geo | 8 + .../json-schema/draft-03/examples/interfaces | 23 + .../json-schema/draft-03/hyper-schema | 60 + node_modules/json-schema/draft-03/json-ref | 26 + node_modules/json-schema/draft-03/links | 35 + node_modules/json-schema/draft-03/schema | 174 + .../json-schema/draft-04/hyper-schema | 60 + node_modules/json-schema/draft-04/links | 41 + node_modules/json-schema/draft-04/schema | 189 + .../json-schema/draft-zyp-json-schema-03.xml | 1120 + .../json-schema/draft-zyp-json-schema-04.xml | 1072 + node_modules/json-schema/lib/links.js | 66 + node_modules/json-schema/lib/validate.js | 273 + node_modules/json-schema/package.json | 71 + node_modules/json-schema/test/tests.js | 95 + node_modules/json-stringify-safe/.npmignore | 1 + node_modules/json-stringify-safe/CHANGELOG.md | 14 + node_modules/json-stringify-safe/LICENSE | 15 + node_modules/json-stringify-safe/Makefile | 35 + node_modules/json-stringify-safe/README.md | 52 + node_modules/json-stringify-safe/package.json | 66 + node_modules/json-stringify-safe/stringify.js | 27 + .../json-stringify-safe/test/mocha.opts | 2 + .../test/stringify_test.js | 246 + node_modules/json5/CHANGELOG.md | 344 + node_modules/json5/LICENSE.md | 23 + node_modules/json5/README.md | 234 + node_modules/json5/dist/index.js | 1710 ++ node_modules/json5/dist/index.min.js | 1 + node_modules/json5/dist/index.min.mjs | 1 + node_modules/json5/dist/index.mjs | 1399 ++ node_modules/json5/lib/cli.js | 112 + node_modules/json5/lib/index.js | 9 + node_modules/json5/lib/parse.js | 1087 + node_modules/json5/lib/register.js | 13 + node_modules/json5/lib/require.js | 4 + node_modules/json5/lib/stringify.js | 261 + node_modules/json5/lib/unicode.js | 4 + node_modules/json5/lib/util.js | 35 + node_modules/json5/package.json | 110 + node_modules/jsonwebtoken/CHANGELOG.md | 476 + node_modules/jsonwebtoken/LICENSE | 21 + node_modules/jsonwebtoken/README.md | 375 + node_modules/jsonwebtoken/decode.js | 30 + node_modules/jsonwebtoken/index.js | 8 + .../jsonwebtoken/lib/JsonWebTokenError.js | 14 + .../jsonwebtoken/lib/NotBeforeError.js | 13 + .../jsonwebtoken/lib/TokenExpiredError.js | 13 + node_modules/jsonwebtoken/lib/psSupported.js | 3 + node_modules/jsonwebtoken/lib/timespan.js | 18 + .../jsonwebtoken/node_modules/ms/index.js | 162 + .../jsonwebtoken/node_modules/ms/license.md | 21 + .../jsonwebtoken/node_modules/ms/package.json | 69 + .../jsonwebtoken/node_modules/ms/readme.md | 60 + node_modules/jsonwebtoken/package.json | 100 + node_modules/jsonwebtoken/sign.js | 206 + node_modules/jsonwebtoken/verify.js | 225 + node_modules/jsprim/CHANGES.md | 49 + node_modules/jsprim/CONTRIBUTING.md | 19 + node_modules/jsprim/LICENSE | 19 + node_modules/jsprim/README.md | 287 + node_modules/jsprim/lib/jsprim.js | 735 + node_modules/jsprim/package.json | 49 + node_modules/jwa/LICENSE | 17 + node_modules/jwa/README.md | 150 + node_modules/jwa/index.js | 252 + node_modules/jwa/package.json | 69 + node_modules/jws/CHANGELOG.md | 34 + node_modules/jws/LICENSE | 17 + node_modules/jws/index.js | 22 + node_modules/jws/lib/data-stream.js | 55 + node_modules/jws/lib/sign-stream.js | 78 + node_modules/jws/lib/tostring.js | 10 + node_modules/jws/lib/verify-stream.js | 120 + node_modules/jws/package.json | 64 + node_modules/jws/readme.md | 255 + node_modules/kareem/.travis.yml | 12 + node_modules/kareem/CHANGELOG.md | 790 + node_modules/kareem/LICENSE | 202 + node_modules/kareem/Makefile | 5 + node_modules/kareem/README.md | 428 + node_modules/kareem/docs.js | 37 + node_modules/kareem/gulpfile.js | 18 + node_modules/kareem/index.js | 511 + node_modules/kareem/package.json | 53 + node_modules/kareem/test/examples.test.js | 379 + node_modules/kareem/test/misc.test.js | 71 + node_modules/kareem/test/post.test.js | 198 + node_modules/kareem/test/pre.test.js | 320 + node_modules/kareem/test/wrap.test.js | 342 + node_modules/keyv/LICENSE | 21 + node_modules/keyv/README.md | 276 + node_modules/keyv/package.json | 78 + node_modules/keyv/src/index.js | 103 + node_modules/latest-version/index.d.ts | 42 + node_modules/latest-version/index.js | 11 + node_modules/latest-version/license | 9 + node_modules/latest-version/package.json | 74 + node_modules/latest-version/readme.md | 42 + node_modules/locate-path/index.d.ts | 83 + node_modules/locate-path/index.js | 65 + node_modules/locate-path/license | 9 + node_modules/locate-path/package.json | 77 + node_modules/locate-path/readme.md | 122 + node_modules/lodash.includes/LICENSE | 47 + node_modules/lodash.includes/README.md | 18 + node_modules/lodash.includes/index.js | 745 + node_modules/lodash.includes/package.json | 69 + node_modules/lodash.isboolean/LICENSE | 22 + node_modules/lodash.isboolean/README.md | 18 + node_modules/lodash.isboolean/index.js | 70 + node_modules/lodash.isboolean/package.json | 69 + node_modules/lodash.isinteger/LICENSE | 47 + node_modules/lodash.isinteger/README.md | 18 + node_modules/lodash.isinteger/index.js | 265 + node_modules/lodash.isinteger/package.json | 69 + node_modules/lodash.isnumber/LICENSE | 22 + node_modules/lodash.isnumber/README.md | 18 + node_modules/lodash.isnumber/index.js | 79 + node_modules/lodash.isnumber/package.json | 69 + node_modules/lodash.isplainobject/LICENSE | 47 + node_modules/lodash.isplainobject/README.md | 18 + node_modules/lodash.isplainobject/index.js | 139 + .../lodash.isplainobject/package.json | 69 + node_modules/lodash.isstring/LICENSE | 22 + node_modules/lodash.isstring/README.md | 18 + node_modules/lodash.isstring/index.js | 95 + node_modules/lodash.isstring/package.json | 69 + node_modules/lodash.once/LICENSE | 47 + node_modules/lodash.once/README.md | 18 + node_modules/lodash.once/index.js | 294 + node_modules/lodash.once/package.json | 69 + node_modules/lodash/LICENSE | 47 + node_modules/lodash/README.md | 39 + node_modules/lodash/_DataView.js | 7 + node_modules/lodash/_Hash.js | 32 + node_modules/lodash/_LazyWrapper.js | 28 + node_modules/lodash/_ListCache.js | 32 + node_modules/lodash/_LodashWrapper.js | 22 + node_modules/lodash/_Map.js | 7 + node_modules/lodash/_MapCache.js | 32 + node_modules/lodash/_Promise.js | 7 + node_modules/lodash/_Set.js | 7 + node_modules/lodash/_SetCache.js | 27 + node_modules/lodash/_Stack.js | 27 + node_modules/lodash/_Symbol.js | 6 + node_modules/lodash/_Uint8Array.js | 6 + node_modules/lodash/_WeakMap.js | 7 + node_modules/lodash/_apply.js | 21 + node_modules/lodash/_arrayAggregator.js | 22 + node_modules/lodash/_arrayEach.js | 22 + node_modules/lodash/_arrayEachRight.js | 21 + node_modules/lodash/_arrayEvery.js | 23 + node_modules/lodash/_arrayFilter.js | 25 + node_modules/lodash/_arrayIncludes.js | 17 + node_modules/lodash/_arrayIncludesWith.js | 22 + node_modules/lodash/_arrayLikeKeys.js | 49 + node_modules/lodash/_arrayMap.js | 21 + node_modules/lodash/_arrayPush.js | 20 + node_modules/lodash/_arrayReduce.js | 26 + node_modules/lodash/_arrayReduceRight.js | 24 + node_modules/lodash/_arraySample.js | 15 + node_modules/lodash/_arraySampleSize.js | 17 + node_modules/lodash/_arrayShuffle.js | 15 + node_modules/lodash/_arraySome.js | 23 + node_modules/lodash/_asciiSize.js | 12 + node_modules/lodash/_asciiToArray.js | 12 + node_modules/lodash/_asciiWords.js | 15 + node_modules/lodash/_assignMergeValue.js | 20 + node_modules/lodash/_assignValue.js | 28 + node_modules/lodash/_assocIndexOf.js | 21 + node_modules/lodash/_baseAggregator.js | 21 + node_modules/lodash/_baseAssign.js | 17 + node_modules/lodash/_baseAssignIn.js | 17 + node_modules/lodash/_baseAssignValue.js | 25 + node_modules/lodash/_baseAt.js | 23 + node_modules/lodash/_baseClamp.js | 22 + node_modules/lodash/_baseClone.js | 166 + node_modules/lodash/_baseConforms.js | 18 + node_modules/lodash/_baseConformsTo.js | 27 + node_modules/lodash/_baseCreate.js | 30 + node_modules/lodash/_baseDelay.js | 21 + node_modules/lodash/_baseDifference.js | 67 + node_modules/lodash/_baseEach.js | 14 + node_modules/lodash/_baseEachRight.js | 14 + node_modules/lodash/_baseEvery.js | 21 + node_modules/lodash/_baseExtremum.js | 32 + node_modules/lodash/_baseFill.js | 32 + node_modules/lodash/_baseFilter.js | 21 + node_modules/lodash/_baseFindIndex.js | 24 + node_modules/lodash/_baseFindKey.js | 23 + node_modules/lodash/_baseFlatten.js | 38 + node_modules/lodash/_baseFor.js | 16 + node_modules/lodash/_baseForOwn.js | 16 + node_modules/lodash/_baseForOwnRight.js | 16 + node_modules/lodash/_baseForRight.js | 15 + node_modules/lodash/_baseFunctions.js | 19 + node_modules/lodash/_baseGet.js | 24 + node_modules/lodash/_baseGetAllKeys.js | 20 + node_modules/lodash/_baseGetTag.js | 28 + node_modules/lodash/_baseGt.js | 14 + node_modules/lodash/_baseHas.js | 19 + node_modules/lodash/_baseHasIn.js | 13 + node_modules/lodash/_baseInRange.js | 18 + node_modules/lodash/_baseIndexOf.js | 20 + node_modules/lodash/_baseIndexOfWith.js | 23 + node_modules/lodash/_baseIntersection.js | 74 + node_modules/lodash/_baseInverter.js | 21 + node_modules/lodash/_baseInvoke.js | 24 + node_modules/lodash/_baseIsArguments.js | 18 + node_modules/lodash/_baseIsArrayBuffer.js | 17 + node_modules/lodash/_baseIsDate.js | 18 + node_modules/lodash/_baseIsEqual.js | 28 + node_modules/lodash/_baseIsEqualDeep.js | 83 + node_modules/lodash/_baseIsMap.js | 18 + node_modules/lodash/_baseIsMatch.js | 62 + node_modules/lodash/_baseIsNaN.js | 12 + node_modules/lodash/_baseIsNative.js | 47 + node_modules/lodash/_baseIsRegExp.js | 18 + node_modules/lodash/_baseIsSet.js | 18 + node_modules/lodash/_baseIsTypedArray.js | 60 + node_modules/lodash/_baseIteratee.js | 31 + node_modules/lodash/_baseKeys.js | 30 + node_modules/lodash/_baseKeysIn.js | 33 + node_modules/lodash/_baseLodash.js | 10 + node_modules/lodash/_baseLt.js | 14 + node_modules/lodash/_baseMap.js | 22 + node_modules/lodash/_baseMatches.js | 22 + node_modules/lodash/_baseMatchesProperty.js | 33 + node_modules/lodash/_baseMean.js | 20 + node_modules/lodash/_baseMerge.js | 42 + node_modules/lodash/_baseMergeDeep.js | 94 + node_modules/lodash/_baseNth.js | 20 + node_modules/lodash/_baseOrderBy.js | 49 + node_modules/lodash/_basePick.js | 19 + node_modules/lodash/_basePickBy.js | 30 + node_modules/lodash/_baseProperty.js | 14 + node_modules/lodash/_basePropertyDeep.js | 16 + node_modules/lodash/_basePropertyOf.js | 14 + node_modules/lodash/_basePullAll.js | 51 + node_modules/lodash/_basePullAt.js | 37 + node_modules/lodash/_baseRandom.js | 18 + node_modules/lodash/_baseRange.js | 28 + node_modules/lodash/_baseReduce.js | 23 + node_modules/lodash/_baseRepeat.js | 35 + node_modules/lodash/_baseRest.js | 17 + node_modules/lodash/_baseSample.js | 15 + node_modules/lodash/_baseSampleSize.js | 18 + node_modules/lodash/_baseSet.js | 51 + node_modules/lodash/_baseSetData.js | 17 + node_modules/lodash/_baseSetToString.js | 22 + node_modules/lodash/_baseShuffle.js | 15 + node_modules/lodash/_baseSlice.js | 31 + node_modules/lodash/_baseSome.js | 22 + node_modules/lodash/_baseSortBy.js | 21 + node_modules/lodash/_baseSortedIndex.js | 42 + node_modules/lodash/_baseSortedIndexBy.js | 67 + node_modules/lodash/_baseSortedUniq.js | 30 + node_modules/lodash/_baseSum.js | 24 + node_modules/lodash/_baseTimes.js | 20 + node_modules/lodash/_baseToNumber.js | 24 + node_modules/lodash/_baseToPairs.js | 18 + node_modules/lodash/_baseToString.js | 37 + node_modules/lodash/_baseUnary.js | 14 + node_modules/lodash/_baseUniq.js | 72 + node_modules/lodash/_baseUnset.js | 20 + node_modules/lodash/_baseUpdate.js | 18 + node_modules/lodash/_baseValues.js | 19 + node_modules/lodash/_baseWhile.js | 26 + node_modules/lodash/_baseWrapperValue.js | 25 + node_modules/lodash/_baseXor.js | 36 + node_modules/lodash/_baseZipObject.js | 23 + node_modules/lodash/_cacheHas.js | 13 + node_modules/lodash/_castArrayLikeObject.js | 14 + node_modules/lodash/_castFunction.js | 14 + node_modules/lodash/_castPath.js | 21 + node_modules/lodash/_castRest.js | 14 + node_modules/lodash/_castSlice.js | 18 + node_modules/lodash/_charsEndIndex.js | 19 + node_modules/lodash/_charsStartIndex.js | 20 + node_modules/lodash/_cloneArrayBuffer.js | 16 + node_modules/lodash/_cloneBuffer.js | 35 + node_modules/lodash/_cloneDataView.js | 16 + node_modules/lodash/_cloneRegExp.js | 17 + node_modules/lodash/_cloneSymbol.js | 18 + node_modules/lodash/_cloneTypedArray.js | 16 + node_modules/lodash/_compareAscending.js | 41 + node_modules/lodash/_compareMultiple.js | 44 + node_modules/lodash/_composeArgs.js | 39 + node_modules/lodash/_composeArgsRight.js | 41 + node_modules/lodash/_copyArray.js | 20 + node_modules/lodash/_copyObject.js | 40 + node_modules/lodash/_copySymbols.js | 16 + node_modules/lodash/_copySymbolsIn.js | 16 + node_modules/lodash/_coreJsData.js | 6 + node_modules/lodash/_countHolders.js | 21 + node_modules/lodash/_createAggregator.js | 23 + node_modules/lodash/_createAssigner.js | 37 + node_modules/lodash/_createBaseEach.js | 32 + node_modules/lodash/_createBaseFor.js | 25 + node_modules/lodash/_createBind.js | 28 + node_modules/lodash/_createCaseFirst.js | 33 + node_modules/lodash/_createCompounder.js | 24 + node_modules/lodash/_createCtor.js | 37 + node_modules/lodash/_createCurry.js | 46 + node_modules/lodash/_createFind.js | 25 + node_modules/lodash/_createFlow.js | 78 + node_modules/lodash/_createHybrid.js | 92 + node_modules/lodash/_createInverter.js | 17 + node_modules/lodash/_createMathOperation.js | 38 + node_modules/lodash/_createOver.js | 27 + node_modules/lodash/_createPadding.js | 33 + node_modules/lodash/_createPartial.js | 43 + node_modules/lodash/_createRange.js | 30 + node_modules/lodash/_createRecurry.js | 56 + .../lodash/_createRelationalOperation.js | 20 + node_modules/lodash/_createRound.js | 35 + node_modules/lodash/_createSet.js | 19 + node_modules/lodash/_createToPairs.js | 30 + node_modules/lodash/_createWrap.js | 106 + .../lodash/_customDefaultsAssignIn.js | 29 + node_modules/lodash/_customDefaultsMerge.js | 28 + node_modules/lodash/_customOmitClone.js | 16 + node_modules/lodash/_deburrLetter.js | 71 + node_modules/lodash/_defineProperty.js | 11 + node_modules/lodash/_equalArrays.js | 84 + node_modules/lodash/_equalByTag.js | 112 + node_modules/lodash/_equalObjects.js | 90 + node_modules/lodash/_escapeHtmlChar.js | 21 + node_modules/lodash/_escapeStringChar.js | 22 + node_modules/lodash/_flatRest.js | 16 + node_modules/lodash/_freeGlobal.js | 4 + node_modules/lodash/_getAllKeys.js | 16 + node_modules/lodash/_getAllKeysIn.js | 17 + node_modules/lodash/_getData.js | 15 + node_modules/lodash/_getFuncName.js | 31 + node_modules/lodash/_getHolder.js | 13 + node_modules/lodash/_getMapData.js | 18 + node_modules/lodash/_getMatchData.js | 24 + node_modules/lodash/_getNative.js | 17 + node_modules/lodash/_getPrototype.js | 6 + node_modules/lodash/_getRawTag.js | 46 + node_modules/lodash/_getSymbols.js | 30 + node_modules/lodash/_getSymbolsIn.js | 25 + node_modules/lodash/_getTag.js | 58 + node_modules/lodash/_getValue.js | 13 + node_modules/lodash/_getView.js | 33 + node_modules/lodash/_getWrapDetails.js | 17 + node_modules/lodash/_hasPath.js | 39 + node_modules/lodash/_hasUnicode.js | 26 + node_modules/lodash/_hasUnicodeWord.js | 15 + node_modules/lodash/_hashClear.js | 15 + node_modules/lodash/_hashDelete.js | 17 + node_modules/lodash/_hashGet.js | 30 + node_modules/lodash/_hashHas.js | 23 + node_modules/lodash/_hashSet.js | 23 + node_modules/lodash/_initCloneArray.js | 26 + node_modules/lodash/_initCloneByTag.js | 77 + node_modules/lodash/_initCloneObject.js | 18 + node_modules/lodash/_insertWrapDetails.js | 23 + node_modules/lodash/_isFlattenable.js | 20 + node_modules/lodash/_isIndex.js | 25 + node_modules/lodash/_isIterateeCall.js | 30 + node_modules/lodash/_isKey.js | 29 + node_modules/lodash/_isKeyable.js | 15 + node_modules/lodash/_isLaziable.js | 28 + node_modules/lodash/_isMaskable.js | 14 + node_modules/lodash/_isMasked.js | 20 + node_modules/lodash/_isPrototype.js | 18 + node_modules/lodash/_isStrictComparable.js | 15 + node_modules/lodash/_iteratorToArray.js | 18 + node_modules/lodash/_lazyClone.js | 23 + node_modules/lodash/_lazyReverse.js | 23 + node_modules/lodash/_lazyValue.js | 69 + node_modules/lodash/_listCacheClear.js | 13 + node_modules/lodash/_listCacheDelete.js | 35 + node_modules/lodash/_listCacheGet.js | 19 + node_modules/lodash/_listCacheHas.js | 16 + node_modules/lodash/_listCacheSet.js | 26 + node_modules/lodash/_mapCacheClear.js | 21 + node_modules/lodash/_mapCacheDelete.js | 18 + node_modules/lodash/_mapCacheGet.js | 16 + node_modules/lodash/_mapCacheHas.js | 16 + node_modules/lodash/_mapCacheSet.js | 22 + node_modules/lodash/_mapToArray.js | 18 + .../lodash/_matchesStrictComparable.js | 20 + node_modules/lodash/_memoizeCapped.js | 26 + node_modules/lodash/_mergeData.js | 90 + node_modules/lodash/_metaMap.js | 6 + node_modules/lodash/_nativeCreate.js | 6 + node_modules/lodash/_nativeKeys.js | 6 + node_modules/lodash/_nativeKeysIn.js | 20 + node_modules/lodash/_nodeUtil.js | 30 + node_modules/lodash/_objectToString.js | 22 + node_modules/lodash/_overArg.js | 15 + node_modules/lodash/_overRest.js | 36 + node_modules/lodash/_parent.js | 16 + node_modules/lodash/_reEscape.js | 4 + node_modules/lodash/_reEvaluate.js | 4 + node_modules/lodash/_reInterpolate.js | 4 + node_modules/lodash/_realNames.js | 4 + node_modules/lodash/_reorder.js | 29 + node_modules/lodash/_replaceHolders.js | 29 + node_modules/lodash/_root.js | 9 + node_modules/lodash/_safeGet.js | 21 + node_modules/lodash/_setCacheAdd.js | 19 + node_modules/lodash/_setCacheHas.js | 14 + node_modules/lodash/_setData.js | 20 + node_modules/lodash/_setToArray.js | 18 + node_modules/lodash/_setToPairs.js | 18 + node_modules/lodash/_setToString.js | 14 + node_modules/lodash/_setWrapToString.js | 21 + node_modules/lodash/_shortOut.js | 37 + node_modules/lodash/_shuffleSelf.js | 28 + node_modules/lodash/_stackClear.js | 15 + node_modules/lodash/_stackDelete.js | 18 + node_modules/lodash/_stackGet.js | 14 + node_modules/lodash/_stackHas.js | 14 + node_modules/lodash/_stackSet.js | 34 + node_modules/lodash/_strictIndexOf.js | 23 + node_modules/lodash/_strictLastIndexOf.js | 21 + node_modules/lodash/_stringSize.js | 18 + node_modules/lodash/_stringToArray.js | 18 + node_modules/lodash/_stringToPath.js | 27 + node_modules/lodash/_toKey.js | 21 + node_modules/lodash/_toSource.js | 26 + node_modules/lodash/_unescapeHtmlChar.js | 21 + node_modules/lodash/_unicodeSize.js | 44 + node_modules/lodash/_unicodeToArray.js | 40 + node_modules/lodash/_unicodeWords.js | 69 + node_modules/lodash/_updateWrapDetails.js | 46 + node_modules/lodash/_wrapperClone.js | 23 + node_modules/lodash/add.js | 22 + node_modules/lodash/after.js | 42 + node_modules/lodash/array.js | 67 + node_modules/lodash/ary.js | 29 + node_modules/lodash/assign.js | 58 + node_modules/lodash/assignIn.js | 40 + node_modules/lodash/assignInWith.js | 38 + node_modules/lodash/assignWith.js | 37 + node_modules/lodash/at.js | 23 + node_modules/lodash/attempt.js | 35 + node_modules/lodash/before.js | 40 + node_modules/lodash/bind.js | 57 + node_modules/lodash/bindAll.js | 41 + node_modules/lodash/bindKey.js | 68 + node_modules/lodash/camelCase.js | 29 + node_modules/lodash/capitalize.js | 23 + node_modules/lodash/castArray.js | 44 + node_modules/lodash/ceil.js | 26 + node_modules/lodash/chain.js | 38 + node_modules/lodash/chunk.js | 50 + node_modules/lodash/clamp.js | 39 + node_modules/lodash/clone.js | 36 + node_modules/lodash/cloneDeep.js | 29 + node_modules/lodash/cloneDeepWith.js | 40 + node_modules/lodash/cloneWith.js | 42 + node_modules/lodash/collection.js | 30 + node_modules/lodash/commit.js | 33 + node_modules/lodash/compact.js | 31 + node_modules/lodash/concat.js | 43 + node_modules/lodash/cond.js | 60 + node_modules/lodash/conforms.js | 35 + node_modules/lodash/conformsTo.js | 32 + node_modules/lodash/constant.js | 26 + node_modules/lodash/core.js | 3877 ++++ node_modules/lodash/core.min.js | 30 + node_modules/lodash/countBy.js | 40 + node_modules/lodash/create.js | 43 + node_modules/lodash/curry.js | 57 + node_modules/lodash/curryRight.js | 54 + node_modules/lodash/date.js | 3 + node_modules/lodash/debounce.js | 191 + node_modules/lodash/deburr.js | 45 + node_modules/lodash/defaultTo.js | 25 + node_modules/lodash/defaults.js | 64 + node_modules/lodash/defaultsDeep.js | 30 + node_modules/lodash/defer.js | 26 + node_modules/lodash/delay.js | 28 + node_modules/lodash/difference.js | 33 + node_modules/lodash/differenceBy.js | 44 + node_modules/lodash/differenceWith.js | 40 + node_modules/lodash/divide.js | 22 + node_modules/lodash/drop.js | 38 + node_modules/lodash/dropRight.js | 39 + node_modules/lodash/dropRightWhile.js | 45 + node_modules/lodash/dropWhile.js | 45 + node_modules/lodash/each.js | 1 + node_modules/lodash/eachRight.js | 1 + node_modules/lodash/endsWith.js | 43 + node_modules/lodash/entries.js | 1 + node_modules/lodash/entriesIn.js | 1 + node_modules/lodash/eq.js | 37 + node_modules/lodash/escape.js | 43 + node_modules/lodash/escapeRegExp.js | 32 + node_modules/lodash/every.js | 56 + node_modules/lodash/extend.js | 1 + node_modules/lodash/extendWith.js | 1 + node_modules/lodash/fill.js | 45 + node_modules/lodash/filter.js | 52 + node_modules/lodash/find.js | 42 + node_modules/lodash/findIndex.js | 55 + node_modules/lodash/findKey.js | 44 + node_modules/lodash/findLast.js | 25 + node_modules/lodash/findLastIndex.js | 59 + node_modules/lodash/findLastKey.js | 44 + node_modules/lodash/first.js | 1 + node_modules/lodash/flatMap.js | 29 + node_modules/lodash/flatMapDeep.js | 31 + node_modules/lodash/flatMapDepth.js | 31 + node_modules/lodash/flatten.js | 22 + node_modules/lodash/flattenDeep.js | 25 + node_modules/lodash/flattenDepth.js | 33 + node_modules/lodash/flip.js | 28 + node_modules/lodash/floor.js | 26 + node_modules/lodash/flow.js | 27 + node_modules/lodash/flowRight.js | 26 + node_modules/lodash/forEach.js | 41 + node_modules/lodash/forEachRight.js | 31 + node_modules/lodash/forIn.js | 39 + node_modules/lodash/forInRight.js | 37 + node_modules/lodash/forOwn.js | 36 + node_modules/lodash/forOwnRight.js | 34 + node_modules/lodash/fp.js | 2 + node_modules/lodash/fp/F.js | 1 + node_modules/lodash/fp/T.js | 1 + node_modules/lodash/fp/__.js | 1 + node_modules/lodash/fp/_baseConvert.js | 569 + node_modules/lodash/fp/_convertBrowser.js | 18 + node_modules/lodash/fp/_falseOptions.js | 7 + node_modules/lodash/fp/_mapping.js | 358 + node_modules/lodash/fp/_util.js | 16 + node_modules/lodash/fp/add.js | 5 + node_modules/lodash/fp/after.js | 5 + node_modules/lodash/fp/all.js | 1 + node_modules/lodash/fp/allPass.js | 1 + node_modules/lodash/fp/always.js | 1 + node_modules/lodash/fp/any.js | 1 + node_modules/lodash/fp/anyPass.js | 1 + node_modules/lodash/fp/apply.js | 1 + node_modules/lodash/fp/array.js | 2 + node_modules/lodash/fp/ary.js | 5 + node_modules/lodash/fp/assign.js | 5 + node_modules/lodash/fp/assignAll.js | 5 + node_modules/lodash/fp/assignAllWith.js | 5 + node_modules/lodash/fp/assignIn.js | 5 + node_modules/lodash/fp/assignInAll.js | 5 + node_modules/lodash/fp/assignInAllWith.js | 5 + node_modules/lodash/fp/assignInWith.js | 5 + node_modules/lodash/fp/assignWith.js | 5 + node_modules/lodash/fp/assoc.js | 1 + node_modules/lodash/fp/assocPath.js | 1 + node_modules/lodash/fp/at.js | 5 + node_modules/lodash/fp/attempt.js | 5 + node_modules/lodash/fp/before.js | 5 + node_modules/lodash/fp/bind.js | 5 + node_modules/lodash/fp/bindAll.js | 5 + node_modules/lodash/fp/bindKey.js | 5 + node_modules/lodash/fp/camelCase.js | 5 + node_modules/lodash/fp/capitalize.js | 5 + node_modules/lodash/fp/castArray.js | 5 + node_modules/lodash/fp/ceil.js | 5 + node_modules/lodash/fp/chain.js | 5 + node_modules/lodash/fp/chunk.js | 5 + node_modules/lodash/fp/clamp.js | 5 + node_modules/lodash/fp/clone.js | 5 + node_modules/lodash/fp/cloneDeep.js | 5 + node_modules/lodash/fp/cloneDeepWith.js | 5 + node_modules/lodash/fp/cloneWith.js | 5 + node_modules/lodash/fp/collection.js | 2 + node_modules/lodash/fp/commit.js | 5 + node_modules/lodash/fp/compact.js | 5 + node_modules/lodash/fp/complement.js | 1 + node_modules/lodash/fp/compose.js | 1 + node_modules/lodash/fp/concat.js | 5 + node_modules/lodash/fp/cond.js | 5 + node_modules/lodash/fp/conforms.js | 1 + node_modules/lodash/fp/conformsTo.js | 5 + node_modules/lodash/fp/constant.js | 5 + node_modules/lodash/fp/contains.js | 1 + node_modules/lodash/fp/convert.js | 18 + node_modules/lodash/fp/countBy.js | 5 + node_modules/lodash/fp/create.js | 5 + node_modules/lodash/fp/curry.js | 5 + node_modules/lodash/fp/curryN.js | 5 + node_modules/lodash/fp/curryRight.js | 5 + node_modules/lodash/fp/curryRightN.js | 5 + node_modules/lodash/fp/date.js | 2 + node_modules/lodash/fp/debounce.js | 5 + node_modules/lodash/fp/deburr.js | 5 + node_modules/lodash/fp/defaultTo.js | 5 + node_modules/lodash/fp/defaults.js | 5 + node_modules/lodash/fp/defaultsAll.js | 5 + node_modules/lodash/fp/defaultsDeep.js | 5 + node_modules/lodash/fp/defaultsDeepAll.js | 5 + node_modules/lodash/fp/defer.js | 5 + node_modules/lodash/fp/delay.js | 5 + node_modules/lodash/fp/difference.js | 5 + node_modules/lodash/fp/differenceBy.js | 5 + node_modules/lodash/fp/differenceWith.js | 5 + node_modules/lodash/fp/dissoc.js | 1 + node_modules/lodash/fp/dissocPath.js | 1 + node_modules/lodash/fp/divide.js | 5 + node_modules/lodash/fp/drop.js | 5 + node_modules/lodash/fp/dropLast.js | 1 + node_modules/lodash/fp/dropLastWhile.js | 1 + node_modules/lodash/fp/dropRight.js | 5 + node_modules/lodash/fp/dropRightWhile.js | 5 + node_modules/lodash/fp/dropWhile.js | 5 + node_modules/lodash/fp/each.js | 1 + node_modules/lodash/fp/eachRight.js | 1 + node_modules/lodash/fp/endsWith.js | 5 + node_modules/lodash/fp/entries.js | 1 + node_modules/lodash/fp/entriesIn.js | 1 + node_modules/lodash/fp/eq.js | 5 + node_modules/lodash/fp/equals.js | 1 + node_modules/lodash/fp/escape.js | 5 + node_modules/lodash/fp/escapeRegExp.js | 5 + node_modules/lodash/fp/every.js | 5 + node_modules/lodash/fp/extend.js | 1 + node_modules/lodash/fp/extendAll.js | 1 + node_modules/lodash/fp/extendAllWith.js | 1 + node_modules/lodash/fp/extendWith.js | 1 + node_modules/lodash/fp/fill.js | 5 + node_modules/lodash/fp/filter.js | 5 + node_modules/lodash/fp/find.js | 5 + node_modules/lodash/fp/findFrom.js | 5 + node_modules/lodash/fp/findIndex.js | 5 + node_modules/lodash/fp/findIndexFrom.js | 5 + node_modules/lodash/fp/findKey.js | 5 + node_modules/lodash/fp/findLast.js | 5 + node_modules/lodash/fp/findLastFrom.js | 5 + node_modules/lodash/fp/findLastIndex.js | 5 + node_modules/lodash/fp/findLastIndexFrom.js | 5 + node_modules/lodash/fp/findLastKey.js | 5 + node_modules/lodash/fp/first.js | 1 + node_modules/lodash/fp/flatMap.js | 5 + node_modules/lodash/fp/flatMapDeep.js | 5 + node_modules/lodash/fp/flatMapDepth.js | 5 + node_modules/lodash/fp/flatten.js | 5 + node_modules/lodash/fp/flattenDeep.js | 5 + node_modules/lodash/fp/flattenDepth.js | 5 + node_modules/lodash/fp/flip.js | 5 + node_modules/lodash/fp/floor.js | 5 + node_modules/lodash/fp/flow.js | 5 + node_modules/lodash/fp/flowRight.js | 5 + node_modules/lodash/fp/forEach.js | 5 + node_modules/lodash/fp/forEachRight.js | 5 + node_modules/lodash/fp/forIn.js | 5 + node_modules/lodash/fp/forInRight.js | 5 + node_modules/lodash/fp/forOwn.js | 5 + node_modules/lodash/fp/forOwnRight.js | 5 + node_modules/lodash/fp/fromPairs.js | 5 + node_modules/lodash/fp/function.js | 2 + node_modules/lodash/fp/functions.js | 5 + node_modules/lodash/fp/functionsIn.js | 5 + node_modules/lodash/fp/get.js | 5 + node_modules/lodash/fp/getOr.js | 5 + node_modules/lodash/fp/groupBy.js | 5 + node_modules/lodash/fp/gt.js | 5 + node_modules/lodash/fp/gte.js | 5 + node_modules/lodash/fp/has.js | 5 + node_modules/lodash/fp/hasIn.js | 5 + node_modules/lodash/fp/head.js | 5 + node_modules/lodash/fp/identical.js | 1 + node_modules/lodash/fp/identity.js | 5 + node_modules/lodash/fp/inRange.js | 5 + node_modules/lodash/fp/includes.js | 5 + node_modules/lodash/fp/includesFrom.js | 5 + node_modules/lodash/fp/indexBy.js | 1 + node_modules/lodash/fp/indexOf.js | 5 + node_modules/lodash/fp/indexOfFrom.js | 5 + node_modules/lodash/fp/init.js | 1 + node_modules/lodash/fp/initial.js | 5 + node_modules/lodash/fp/intersection.js | 5 + node_modules/lodash/fp/intersectionBy.js | 5 + node_modules/lodash/fp/intersectionWith.js | 5 + node_modules/lodash/fp/invert.js | 5 + node_modules/lodash/fp/invertBy.js | 5 + node_modules/lodash/fp/invertObj.js | 1 + node_modules/lodash/fp/invoke.js | 5 + node_modules/lodash/fp/invokeArgs.js | 5 + node_modules/lodash/fp/invokeArgsMap.js | 5 + node_modules/lodash/fp/invokeMap.js | 5 + node_modules/lodash/fp/isArguments.js | 5 + node_modules/lodash/fp/isArray.js | 5 + node_modules/lodash/fp/isArrayBuffer.js | 5 + node_modules/lodash/fp/isArrayLike.js | 5 + node_modules/lodash/fp/isArrayLikeObject.js | 5 + node_modules/lodash/fp/isBoolean.js | 5 + node_modules/lodash/fp/isBuffer.js | 5 + node_modules/lodash/fp/isDate.js | 5 + node_modules/lodash/fp/isElement.js | 5 + node_modules/lodash/fp/isEmpty.js | 5 + node_modules/lodash/fp/isEqual.js | 5 + node_modules/lodash/fp/isEqualWith.js | 5 + node_modules/lodash/fp/isError.js | 5 + node_modules/lodash/fp/isFinite.js | 5 + node_modules/lodash/fp/isFunction.js | 5 + node_modules/lodash/fp/isInteger.js | 5 + node_modules/lodash/fp/isLength.js | 5 + node_modules/lodash/fp/isMap.js | 5 + node_modules/lodash/fp/isMatch.js | 5 + node_modules/lodash/fp/isMatchWith.js | 5 + node_modules/lodash/fp/isNaN.js | 5 + node_modules/lodash/fp/isNative.js | 5 + node_modules/lodash/fp/isNil.js | 5 + node_modules/lodash/fp/isNull.js | 5 + node_modules/lodash/fp/isNumber.js | 5 + node_modules/lodash/fp/isObject.js | 5 + node_modules/lodash/fp/isObjectLike.js | 5 + node_modules/lodash/fp/isPlainObject.js | 5 + node_modules/lodash/fp/isRegExp.js | 5 + node_modules/lodash/fp/isSafeInteger.js | 5 + node_modules/lodash/fp/isSet.js | 5 + node_modules/lodash/fp/isString.js | 5 + node_modules/lodash/fp/isSymbol.js | 5 + node_modules/lodash/fp/isTypedArray.js | 5 + node_modules/lodash/fp/isUndefined.js | 5 + node_modules/lodash/fp/isWeakMap.js | 5 + node_modules/lodash/fp/isWeakSet.js | 5 + node_modules/lodash/fp/iteratee.js | 5 + node_modules/lodash/fp/join.js | 5 + node_modules/lodash/fp/juxt.js | 1 + node_modules/lodash/fp/kebabCase.js | 5 + node_modules/lodash/fp/keyBy.js | 5 + node_modules/lodash/fp/keys.js | 5 + node_modules/lodash/fp/keysIn.js | 5 + node_modules/lodash/fp/lang.js | 2 + node_modules/lodash/fp/last.js | 5 + node_modules/lodash/fp/lastIndexOf.js | 5 + node_modules/lodash/fp/lastIndexOfFrom.js | 5 + node_modules/lodash/fp/lowerCase.js | 5 + node_modules/lodash/fp/lowerFirst.js | 5 + node_modules/lodash/fp/lt.js | 5 + node_modules/lodash/fp/lte.js | 5 + node_modules/lodash/fp/map.js | 5 + node_modules/lodash/fp/mapKeys.js | 5 + node_modules/lodash/fp/mapValues.js | 5 + node_modules/lodash/fp/matches.js | 1 + node_modules/lodash/fp/matchesProperty.js | 5 + node_modules/lodash/fp/math.js | 2 + node_modules/lodash/fp/max.js | 5 + node_modules/lodash/fp/maxBy.js | 5 + node_modules/lodash/fp/mean.js | 5 + node_modules/lodash/fp/meanBy.js | 5 + node_modules/lodash/fp/memoize.js | 5 + node_modules/lodash/fp/merge.js | 5 + node_modules/lodash/fp/mergeAll.js | 5 + node_modules/lodash/fp/mergeAllWith.js | 5 + node_modules/lodash/fp/mergeWith.js | 5 + node_modules/lodash/fp/method.js | 5 + node_modules/lodash/fp/methodOf.js | 5 + node_modules/lodash/fp/min.js | 5 + node_modules/lodash/fp/minBy.js | 5 + node_modules/lodash/fp/mixin.js | 5 + node_modules/lodash/fp/multiply.js | 5 + node_modules/lodash/fp/nAry.js | 1 + node_modules/lodash/fp/negate.js | 5 + node_modules/lodash/fp/next.js | 5 + node_modules/lodash/fp/noop.js | 5 + node_modules/lodash/fp/now.js | 5 + node_modules/lodash/fp/nth.js | 5 + node_modules/lodash/fp/nthArg.js | 5 + node_modules/lodash/fp/number.js | 2 + node_modules/lodash/fp/object.js | 2 + node_modules/lodash/fp/omit.js | 5 + node_modules/lodash/fp/omitAll.js | 1 + node_modules/lodash/fp/omitBy.js | 5 + node_modules/lodash/fp/once.js | 5 + node_modules/lodash/fp/orderBy.js | 5 + node_modules/lodash/fp/over.js | 5 + node_modules/lodash/fp/overArgs.js | 5 + node_modules/lodash/fp/overEvery.js | 5 + node_modules/lodash/fp/overSome.js | 5 + node_modules/lodash/fp/pad.js | 5 + node_modules/lodash/fp/padChars.js | 5 + node_modules/lodash/fp/padCharsEnd.js | 5 + node_modules/lodash/fp/padCharsStart.js | 5 + node_modules/lodash/fp/padEnd.js | 5 + node_modules/lodash/fp/padStart.js | 5 + node_modules/lodash/fp/parseInt.js | 5 + node_modules/lodash/fp/partial.js | 5 + node_modules/lodash/fp/partialRight.js | 5 + node_modules/lodash/fp/partition.js | 5 + node_modules/lodash/fp/path.js | 1 + node_modules/lodash/fp/pathEq.js | 1 + node_modules/lodash/fp/pathOr.js | 1 + node_modules/lodash/fp/paths.js | 1 + node_modules/lodash/fp/pick.js | 5 + node_modules/lodash/fp/pickAll.js | 1 + node_modules/lodash/fp/pickBy.js | 5 + node_modules/lodash/fp/pipe.js | 1 + node_modules/lodash/fp/placeholder.js | 6 + node_modules/lodash/fp/plant.js | 5 + node_modules/lodash/fp/pluck.js | 1 + node_modules/lodash/fp/prop.js | 1 + node_modules/lodash/fp/propEq.js | 1 + node_modules/lodash/fp/propOr.js | 1 + node_modules/lodash/fp/property.js | 1 + node_modules/lodash/fp/propertyOf.js | 5 + node_modules/lodash/fp/props.js | 1 + node_modules/lodash/fp/pull.js | 5 + node_modules/lodash/fp/pullAll.js | 5 + node_modules/lodash/fp/pullAllBy.js | 5 + node_modules/lodash/fp/pullAllWith.js | 5 + node_modules/lodash/fp/pullAt.js | 5 + node_modules/lodash/fp/random.js | 5 + node_modules/lodash/fp/range.js | 5 + node_modules/lodash/fp/rangeRight.js | 5 + node_modules/lodash/fp/rangeStep.js | 5 + node_modules/lodash/fp/rangeStepRight.js | 5 + node_modules/lodash/fp/rearg.js | 5 + node_modules/lodash/fp/reduce.js | 5 + node_modules/lodash/fp/reduceRight.js | 5 + node_modules/lodash/fp/reject.js | 5 + node_modules/lodash/fp/remove.js | 5 + node_modules/lodash/fp/repeat.js | 5 + node_modules/lodash/fp/replace.js | 5 + node_modules/lodash/fp/rest.js | 5 + node_modules/lodash/fp/restFrom.js | 5 + node_modules/lodash/fp/result.js | 5 + node_modules/lodash/fp/reverse.js | 5 + node_modules/lodash/fp/round.js | 5 + node_modules/lodash/fp/sample.js | 5 + node_modules/lodash/fp/sampleSize.js | 5 + node_modules/lodash/fp/seq.js | 2 + node_modules/lodash/fp/set.js | 5 + node_modules/lodash/fp/setWith.js | 5 + node_modules/lodash/fp/shuffle.js | 5 + node_modules/lodash/fp/size.js | 5 + node_modules/lodash/fp/slice.js | 5 + node_modules/lodash/fp/snakeCase.js | 5 + node_modules/lodash/fp/some.js | 5 + node_modules/lodash/fp/sortBy.js | 5 + node_modules/lodash/fp/sortedIndex.js | 5 + node_modules/lodash/fp/sortedIndexBy.js | 5 + node_modules/lodash/fp/sortedIndexOf.js | 5 + node_modules/lodash/fp/sortedLastIndex.js | 5 + node_modules/lodash/fp/sortedLastIndexBy.js | 5 + node_modules/lodash/fp/sortedLastIndexOf.js | 5 + node_modules/lodash/fp/sortedUniq.js | 5 + node_modules/lodash/fp/sortedUniqBy.js | 5 + node_modules/lodash/fp/split.js | 5 + node_modules/lodash/fp/spread.js | 5 + node_modules/lodash/fp/spreadFrom.js | 5 + node_modules/lodash/fp/startCase.js | 5 + node_modules/lodash/fp/startsWith.js | 5 + node_modules/lodash/fp/string.js | 2 + node_modules/lodash/fp/stubArray.js | 5 + node_modules/lodash/fp/stubFalse.js | 5 + node_modules/lodash/fp/stubObject.js | 5 + node_modules/lodash/fp/stubString.js | 5 + node_modules/lodash/fp/stubTrue.js | 5 + node_modules/lodash/fp/subtract.js | 5 + node_modules/lodash/fp/sum.js | 5 + node_modules/lodash/fp/sumBy.js | 5 + node_modules/lodash/fp/symmetricDifference.js | 1 + .../lodash/fp/symmetricDifferenceBy.js | 1 + .../lodash/fp/symmetricDifferenceWith.js | 1 + node_modules/lodash/fp/tail.js | 5 + node_modules/lodash/fp/take.js | 5 + node_modules/lodash/fp/takeLast.js | 1 + node_modules/lodash/fp/takeLastWhile.js | 1 + node_modules/lodash/fp/takeRight.js | 5 + node_modules/lodash/fp/takeRightWhile.js | 5 + node_modules/lodash/fp/takeWhile.js | 5 + node_modules/lodash/fp/tap.js | 5 + node_modules/lodash/fp/template.js | 5 + node_modules/lodash/fp/templateSettings.js | 5 + node_modules/lodash/fp/throttle.js | 5 + node_modules/lodash/fp/thru.js | 5 + node_modules/lodash/fp/times.js | 5 + node_modules/lodash/fp/toArray.js | 5 + node_modules/lodash/fp/toFinite.js | 5 + node_modules/lodash/fp/toInteger.js | 5 + node_modules/lodash/fp/toIterator.js | 5 + node_modules/lodash/fp/toJSON.js | 5 + node_modules/lodash/fp/toLength.js | 5 + node_modules/lodash/fp/toLower.js | 5 + node_modules/lodash/fp/toNumber.js | 5 + node_modules/lodash/fp/toPairs.js | 5 + node_modules/lodash/fp/toPairsIn.js | 5 + node_modules/lodash/fp/toPath.js | 5 + node_modules/lodash/fp/toPlainObject.js | 5 + node_modules/lodash/fp/toSafeInteger.js | 5 + node_modules/lodash/fp/toString.js | 5 + node_modules/lodash/fp/toUpper.js | 5 + node_modules/lodash/fp/transform.js | 5 + node_modules/lodash/fp/trim.js | 5 + node_modules/lodash/fp/trimChars.js | 5 + node_modules/lodash/fp/trimCharsEnd.js | 5 + node_modules/lodash/fp/trimCharsStart.js | 5 + node_modules/lodash/fp/trimEnd.js | 5 + node_modules/lodash/fp/trimStart.js | 5 + node_modules/lodash/fp/truncate.js | 5 + node_modules/lodash/fp/unapply.js | 1 + node_modules/lodash/fp/unary.js | 5 + node_modules/lodash/fp/unescape.js | 5 + node_modules/lodash/fp/union.js | 5 + node_modules/lodash/fp/unionBy.js | 5 + node_modules/lodash/fp/unionWith.js | 5 + node_modules/lodash/fp/uniq.js | 5 + node_modules/lodash/fp/uniqBy.js | 5 + node_modules/lodash/fp/uniqWith.js | 5 + node_modules/lodash/fp/uniqueId.js | 5 + node_modules/lodash/fp/unnest.js | 1 + node_modules/lodash/fp/unset.js | 5 + node_modules/lodash/fp/unzip.js | 5 + node_modules/lodash/fp/unzipWith.js | 5 + node_modules/lodash/fp/update.js | 5 + node_modules/lodash/fp/updateWith.js | 5 + node_modules/lodash/fp/upperCase.js | 5 + node_modules/lodash/fp/upperFirst.js | 5 + node_modules/lodash/fp/useWith.js | 1 + node_modules/lodash/fp/util.js | 2 + node_modules/lodash/fp/value.js | 5 + node_modules/lodash/fp/valueOf.js | 5 + node_modules/lodash/fp/values.js | 5 + node_modules/lodash/fp/valuesIn.js | 5 + node_modules/lodash/fp/where.js | 1 + node_modules/lodash/fp/whereEq.js | 1 + node_modules/lodash/fp/without.js | 5 + node_modules/lodash/fp/words.js | 5 + node_modules/lodash/fp/wrap.js | 5 + node_modules/lodash/fp/wrapperAt.js | 5 + node_modules/lodash/fp/wrapperChain.js | 5 + node_modules/lodash/fp/wrapperLodash.js | 5 + node_modules/lodash/fp/wrapperReverse.js | 5 + node_modules/lodash/fp/wrapperValue.js | 5 + node_modules/lodash/fp/xor.js | 5 + node_modules/lodash/fp/xorBy.js | 5 + node_modules/lodash/fp/xorWith.js | 5 + node_modules/lodash/fp/zip.js | 5 + node_modules/lodash/fp/zipAll.js | 5 + node_modules/lodash/fp/zipObj.js | 1 + node_modules/lodash/fp/zipObject.js | 5 + node_modules/lodash/fp/zipObjectDeep.js | 5 + node_modules/lodash/fp/zipWith.js | 5 + node_modules/lodash/fromPairs.js | 28 + node_modules/lodash/function.js | 25 + node_modules/lodash/functions.js | 31 + node_modules/lodash/functionsIn.js | 31 + node_modules/lodash/get.js | 33 + node_modules/lodash/groupBy.js | 41 + node_modules/lodash/gt.js | 29 + node_modules/lodash/gte.js | 30 + node_modules/lodash/has.js | 35 + node_modules/lodash/hasIn.js | 34 + node_modules/lodash/head.js | 23 + node_modules/lodash/identity.js | 21 + node_modules/lodash/inRange.js | 55 + node_modules/lodash/includes.js | 53 + node_modules/lodash/index.js | 1 + node_modules/lodash/indexOf.js | 42 + node_modules/lodash/initial.js | 22 + node_modules/lodash/intersection.js | 30 + node_modules/lodash/intersectionBy.js | 45 + node_modules/lodash/intersectionWith.js | 41 + node_modules/lodash/invert.js | 42 + node_modules/lodash/invertBy.js | 56 + node_modules/lodash/invoke.js | 24 + node_modules/lodash/invokeMap.js | 41 + node_modules/lodash/isArguments.js | 36 + node_modules/lodash/isArray.js | 26 + node_modules/lodash/isArrayBuffer.js | 27 + node_modules/lodash/isArrayLike.js | 33 + node_modules/lodash/isArrayLikeObject.js | 33 + node_modules/lodash/isBoolean.js | 29 + node_modules/lodash/isBuffer.js | 38 + node_modules/lodash/isDate.js | 27 + node_modules/lodash/isElement.js | 25 + node_modules/lodash/isEmpty.js | 77 + node_modules/lodash/isEqual.js | 35 + node_modules/lodash/isEqualWith.js | 41 + node_modules/lodash/isError.js | 36 + node_modules/lodash/isFinite.js | 36 + node_modules/lodash/isFunction.js | 37 + node_modules/lodash/isInteger.js | 33 + node_modules/lodash/isLength.js | 35 + node_modules/lodash/isMap.js | 27 + node_modules/lodash/isMatch.js | 36 + node_modules/lodash/isMatchWith.js | 41 + node_modules/lodash/isNaN.js | 38 + node_modules/lodash/isNative.js | 40 + node_modules/lodash/isNil.js | 25 + node_modules/lodash/isNull.js | 22 + node_modules/lodash/isNumber.js | 38 + node_modules/lodash/isObject.js | 31 + node_modules/lodash/isObjectLike.js | 29 + node_modules/lodash/isPlainObject.js | 62 + node_modules/lodash/isRegExp.js | 27 + node_modules/lodash/isSafeInteger.js | 37 + node_modules/lodash/isSet.js | 27 + node_modules/lodash/isString.js | 30 + node_modules/lodash/isSymbol.js | 29 + node_modules/lodash/isTypedArray.js | 27 + node_modules/lodash/isUndefined.js | 22 + node_modules/lodash/isWeakMap.js | 28 + node_modules/lodash/isWeakSet.js | 28 + node_modules/lodash/iteratee.js | 53 + node_modules/lodash/join.js | 26 + node_modules/lodash/kebabCase.js | 28 + node_modules/lodash/keyBy.js | 36 + node_modules/lodash/keys.js | 37 + node_modules/lodash/keysIn.js | 32 + node_modules/lodash/lang.js | 58 + node_modules/lodash/last.js | 20 + node_modules/lodash/lastIndexOf.js | 46 + node_modules/lodash/lodash.js | 17161 ++++++++++++++ node_modules/lodash/lodash.min.js | 139 + node_modules/lodash/lowerCase.js | 27 + node_modules/lodash/lowerFirst.js | 22 + node_modules/lodash/lt.js | 29 + node_modules/lodash/lte.js | 30 + node_modules/lodash/map.js | 53 + node_modules/lodash/mapKeys.js | 36 + node_modules/lodash/mapValues.js | 43 + node_modules/lodash/matches.js | 46 + node_modules/lodash/matchesProperty.js | 44 + node_modules/lodash/math.js | 17 + node_modules/lodash/max.js | 29 + node_modules/lodash/maxBy.js | 34 + node_modules/lodash/mean.js | 22 + node_modules/lodash/meanBy.js | 31 + node_modules/lodash/memoize.js | 73 + node_modules/lodash/merge.js | 39 + node_modules/lodash/mergeWith.js | 39 + node_modules/lodash/method.js | 34 + node_modules/lodash/methodOf.js | 33 + node_modules/lodash/min.js | 29 + node_modules/lodash/minBy.js | 34 + node_modules/lodash/mixin.js | 74 + node_modules/lodash/multiply.js | 22 + node_modules/lodash/negate.js | 40 + node_modules/lodash/next.js | 35 + node_modules/lodash/noop.js | 17 + node_modules/lodash/now.js | 23 + node_modules/lodash/nth.js | 29 + node_modules/lodash/nthArg.js | 32 + node_modules/lodash/number.js | 5 + node_modules/lodash/object.js | 49 + node_modules/lodash/omit.js | 57 + node_modules/lodash/omitBy.js | 29 + node_modules/lodash/once.js | 25 + node_modules/lodash/orderBy.js | 47 + node_modules/lodash/over.js | 24 + node_modules/lodash/overArgs.js | 61 + node_modules/lodash/overEvery.js | 34 + node_modules/lodash/overSome.js | 37 + node_modules/lodash/package.json | 63 + node_modules/lodash/pad.js | 49 + node_modules/lodash/padEnd.js | 39 + node_modules/lodash/padStart.js | 39 + node_modules/lodash/parseInt.js | 43 + node_modules/lodash/partial.js | 50 + node_modules/lodash/partialRight.js | 49 + node_modules/lodash/partition.js | 43 + node_modules/lodash/pick.js | 25 + node_modules/lodash/pickBy.js | 37 + node_modules/lodash/plant.js | 48 + node_modules/lodash/property.js | 32 + node_modules/lodash/propertyOf.js | 30 + node_modules/lodash/pull.js | 29 + node_modules/lodash/pullAll.js | 29 + node_modules/lodash/pullAllBy.js | 33 + node_modules/lodash/pullAllWith.js | 32 + node_modules/lodash/pullAt.js | 43 + node_modules/lodash/random.js | 82 + node_modules/lodash/range.js | 46 + node_modules/lodash/rangeRight.js | 41 + node_modules/lodash/rearg.js | 33 + node_modules/lodash/reduce.js | 51 + node_modules/lodash/reduceRight.js | 36 + node_modules/lodash/reject.js | 46 + node_modules/lodash/remove.js | 53 + node_modules/lodash/repeat.js | 37 + node_modules/lodash/replace.js | 29 + node_modules/lodash/rest.js | 40 + node_modules/lodash/result.js | 56 + node_modules/lodash/reverse.js | 34 + node_modules/lodash/round.js | 26 + node_modules/lodash/sample.js | 24 + node_modules/lodash/sampleSize.js | 37 + node_modules/lodash/seq.js | 16 + node_modules/lodash/set.js | 35 + node_modules/lodash/setWith.js | 32 + node_modules/lodash/shuffle.js | 25 + node_modules/lodash/size.js | 46 + node_modules/lodash/slice.js | 37 + node_modules/lodash/snakeCase.js | 28 + node_modules/lodash/some.js | 51 + node_modules/lodash/sortBy.js | 48 + node_modules/lodash/sortedIndex.js | 24 + node_modules/lodash/sortedIndexBy.js | 33 + node_modules/lodash/sortedIndexOf.js | 31 + node_modules/lodash/sortedLastIndex.js | 25 + node_modules/lodash/sortedLastIndexBy.js | 33 + node_modules/lodash/sortedLastIndexOf.js | 31 + node_modules/lodash/sortedUniq.js | 24 + node_modules/lodash/sortedUniqBy.js | 26 + node_modules/lodash/split.js | 52 + node_modules/lodash/spread.js | 63 + node_modules/lodash/startCase.js | 29 + node_modules/lodash/startsWith.js | 39 + node_modules/lodash/string.js | 33 + node_modules/lodash/stubArray.js | 23 + node_modules/lodash/stubFalse.js | 18 + node_modules/lodash/stubObject.js | 23 + node_modules/lodash/stubString.js | 18 + node_modules/lodash/stubTrue.js | 18 + node_modules/lodash/subtract.js | 22 + node_modules/lodash/sum.js | 24 + node_modules/lodash/sumBy.js | 33 + node_modules/lodash/tail.js | 22 + node_modules/lodash/take.js | 37 + node_modules/lodash/takeRight.js | 39 + node_modules/lodash/takeRightWhile.js | 45 + node_modules/lodash/takeWhile.js | 45 + node_modules/lodash/tap.js | 29 + node_modules/lodash/template.js | 251 + node_modules/lodash/templateSettings.js | 67 + node_modules/lodash/throttle.js | 69 + node_modules/lodash/thru.js | 28 + node_modules/lodash/times.js | 51 + node_modules/lodash/toArray.js | 58 + node_modules/lodash/toFinite.js | 42 + node_modules/lodash/toInteger.js | 36 + node_modules/lodash/toIterator.js | 23 + node_modules/lodash/toJSON.js | 1 + node_modules/lodash/toLength.js | 38 + node_modules/lodash/toLower.js | 28 + node_modules/lodash/toNumber.js | 66 + node_modules/lodash/toPairs.js | 30 + node_modules/lodash/toPairsIn.js | 30 + node_modules/lodash/toPath.js | 33 + node_modules/lodash/toPlainObject.js | 32 + node_modules/lodash/toSafeInteger.js | 37 + node_modules/lodash/toString.js | 28 + node_modules/lodash/toUpper.js | 28 + node_modules/lodash/transform.js | 65 + node_modules/lodash/trim.js | 49 + node_modules/lodash/trimEnd.js | 43 + node_modules/lodash/trimStart.js | 43 + node_modules/lodash/truncate.js | 111 + node_modules/lodash/unary.js | 22 + node_modules/lodash/unescape.js | 34 + node_modules/lodash/union.js | 26 + node_modules/lodash/unionBy.js | 39 + node_modules/lodash/unionWith.js | 34 + node_modules/lodash/uniq.js | 25 + node_modules/lodash/uniqBy.js | 31 + node_modules/lodash/uniqWith.js | 28 + node_modules/lodash/uniqueId.js | 28 + node_modules/lodash/unset.js | 34 + node_modules/lodash/unzip.js | 45 + node_modules/lodash/unzipWith.js | 39 + node_modules/lodash/update.js | 35 + node_modules/lodash/updateWith.js | 33 + node_modules/lodash/upperCase.js | 27 + node_modules/lodash/upperFirst.js | 22 + node_modules/lodash/util.js | 34 + node_modules/lodash/value.js | 1 + node_modules/lodash/valueOf.js | 1 + node_modules/lodash/values.js | 34 + node_modules/lodash/valuesIn.js | 32 + node_modules/lodash/without.js | 31 + node_modules/lodash/words.js | 35 + node_modules/lodash/wrap.js | 30 + node_modules/lodash/wrapperAt.js | 48 + node_modules/lodash/wrapperChain.js | 34 + node_modules/lodash/wrapperLodash.js | 147 + node_modules/lodash/wrapperReverse.js | 44 + node_modules/lodash/wrapperValue.js | 21 + node_modules/lodash/xor.js | 28 + node_modules/lodash/xorBy.js | 39 + node_modules/lodash/xorWith.js | 34 + node_modules/lodash/zip.js | 22 + node_modules/lodash/zipObject.js | 24 + node_modules/lodash/zipObjectDeep.js | 23 + node_modules/lodash/zipWith.js | 32 + node_modules/lowercase-keys/index.js | 11 + node_modules/lowercase-keys/license | 21 + node_modules/lowercase-keys/package.json | 68 + node_modules/lowercase-keys/readme.md | 33 + node_modules/make-dir/index.d.ts | 66 + node_modules/make-dir/index.js | 156 + node_modules/make-dir/license | 9 + .../make-dir/node_modules/.bin/semver | 15 + .../make-dir/node_modules/.bin/semver.cmd | 17 + .../make-dir/node_modules/.bin/semver.ps1 | 18 + .../make-dir/node_modules/semver/CHANGELOG.md | 70 + .../make-dir/node_modules/semver/LICENSE | 15 + .../make-dir/node_modules/semver/README.md | 443 + .../node_modules/semver/bin/semver.js | 174 + .../make-dir/node_modules/semver/package.json | 60 + .../make-dir/node_modules/semver/range.bnf | 16 + .../make-dir/node_modules/semver/semver.js | 1596 ++ node_modules/make-dir/package.json | 91 + node_modules/make-dir/readme.md | 125 + node_modules/media-typer/HISTORY.md | 22 + node_modules/media-typer/LICENSE | 22 + node_modules/media-typer/README.md | 81 + node_modules/media-typer/index.js | 270 + node_modules/media-typer/package.json | 61 + node_modules/memory-pager/.travis.yml | 4 + node_modules/memory-pager/LICENSE | 21 + node_modules/memory-pager/README.md | 65 + node_modules/memory-pager/index.js | 160 + node_modules/memory-pager/package.json | 52 + node_modules/memory-pager/test.js | 80 + node_modules/merge-descriptors/HISTORY.md | 21 + node_modules/merge-descriptors/LICENSE | 23 + node_modules/merge-descriptors/README.md | 48 + node_modules/merge-descriptors/index.js | 60 + node_modules/merge-descriptors/package.json | 69 + node_modules/methods/HISTORY.md | 29 + node_modules/methods/LICENSE | 24 + node_modules/methods/README.md | 51 + node_modules/methods/index.js | 69 + node_modules/methods/package.json | 79 + node_modules/mime-db/HISTORY.md | 446 + node_modules/mime-db/LICENSE | 22 + node_modules/mime-db/README.md | 102 + node_modules/mime-db/db.json | 8176 +++++++ node_modules/mime-db/index.js | 11 + node_modules/mime-db/package.json | 102 + node_modules/mime-types/HISTORY.md | 333 + node_modules/mime-types/LICENSE | 23 + node_modules/mime-types/README.md | 123 + node_modules/mime-types/index.js | 188 + node_modules/mime-types/package.json | 90 + node_modules/mime/.npmignore | 0 node_modules/mime/CHANGELOG.md | 164 + node_modules/mime/LICENSE | 21 + node_modules/mime/README.md | 90 + node_modules/mime/cli.js | 8 + node_modules/mime/mime.js | 108 + node_modules/mime/package.json | 73 + node_modules/mime/src/build.js | 53 + node_modules/mime/src/test.js | 60 + node_modules/mime/types.json | 1 + node_modules/mimic-response/index.js | 32 + node_modules/mimic-response/license | 9 + node_modules/mimic-response/package.json | 71 + node_modules/mimic-response/readme.md | 54 + node_modules/minimatch/LICENSE | 15 + node_modules/minimatch/README.md | 209 + node_modules/minimatch/minimatch.js | 923 + node_modules/minimatch/package.json | 63 + node_modules/minimist/.travis.yml | 8 + node_modules/minimist/LICENSE | 18 + node_modules/minimist/example/parse.js | 2 + node_modules/minimist/index.js | 245 + node_modules/minimist/package.json | 73 + node_modules/minimist/readme.markdown | 95 + node_modules/minimist/test/all_bool.js | 32 + node_modules/minimist/test/bool.js | 178 + node_modules/minimist/test/dash.js | 31 + node_modules/minimist/test/default_bool.js | 35 + node_modules/minimist/test/dotted.js | 22 + node_modules/minimist/test/kv_short.js | 16 + node_modules/minimist/test/long.js | 31 + node_modules/minimist/test/num.js | 36 + node_modules/minimist/test/parse.js | 197 + node_modules/minimist/test/parse_modified.js | 9 + node_modules/minimist/test/proto.js | 44 + node_modules/minimist/test/short.js | 67 + node_modules/minimist/test/stop_early.js | 15 + node_modules/minimist/test/unknown.js | 102 + node_modules/minimist/test/whitespace.js | 8 + node_modules/mongodb/HISTORY.md | 2788 +++ node_modules/mongodb/LICENSE.md | 201 + node_modules/mongodb/README.md | 499 + node_modules/mongodb/index.js | 73 + node_modules/mongodb/lib/admin.js | 294 + .../mongodb/lib/aggregation_cursor.js | 370 + node_modules/mongodb/lib/apm.js | 31 + node_modules/mongodb/lib/async/.eslintrc | 5 + .../mongodb/lib/async/async_iterator.js | 33 + node_modules/mongodb/lib/bulk/common.js | 1297 ++ node_modules/mongodb/lib/bulk/ordered.js | 110 + node_modules/mongodb/lib/bulk/unordered.js | 131 + node_modules/mongodb/lib/change_stream.js | 623 + node_modules/mongodb/lib/cmap/connection.js | 384 + .../mongodb/lib/cmap/connection_pool.js | 595 + node_modules/mongodb/lib/cmap/errors.js | 35 + node_modules/mongodb/lib/cmap/events.js | 154 + .../mongodb/lib/cmap/message_stream.js | 196 + .../mongodb/lib/cmap/stream_description.js | 45 + node_modules/mongodb/lib/collection.js | 2178 ++ node_modules/mongodb/lib/command_cursor.js | 269 + node_modules/mongodb/lib/constants.js | 10 + .../mongodb/lib/core/auth/auth_provider.js | 55 + .../lib/core/auth/defaultAuthProviders.js | 29 + node_modules/mongodb/lib/core/auth/gssapi.js | 151 + .../lib/core/auth/mongo_credentials.js | 107 + node_modules/mongodb/lib/core/auth/mongocr.js | 45 + .../mongodb/lib/core/auth/mongodb_aws.js | 256 + node_modules/mongodb/lib/core/auth/plain.js | 28 + node_modules/mongodb/lib/core/auth/scram.js | 346 + node_modules/mongodb/lib/core/auth/x509.js | 35 + .../mongodb/lib/core/connection/apm.js | 251 + .../lib/core/connection/command_result.js | 36 + .../mongodb/lib/core/connection/commands.js | 507 + .../mongodb/lib/core/connection/connect.js | 352 + .../mongodb/lib/core/connection/connection.js | 712 + .../mongodb/lib/core/connection/logger.js | 251 + .../mongodb/lib/core/connection/msg.js | 222 + .../mongodb/lib/core/connection/pool.js | 1281 + .../mongodb/lib/core/connection/utils.js | 57 + node_modules/mongodb/lib/core/cursor.js | 871 + node_modules/mongodb/lib/core/error.js | 351 + node_modules/mongodb/lib/core/index.js | 50 + node_modules/mongodb/lib/core/sdam/common.js | 67 + node_modules/mongodb/lib/core/sdam/events.js | 124 + node_modules/mongodb/lib/core/sdam/monitor.js | 405 + node_modules/mongodb/lib/core/sdam/server.js | 564 + .../lib/core/sdam/server_description.js | 227 + .../mongodb/lib/core/sdam/server_selection.js | 238 + .../mongodb/lib/core/sdam/srv_polling.js | 135 + .../mongodb/lib/core/sdam/topology.js | 1142 + .../lib/core/sdam/topology_description.js | 441 + node_modules/mongodb/lib/core/sessions.js | 780 + .../mongodb/lib/core/tools/smoke_plugin.js | 61 + .../mongodb/lib/core/topologies/mongos.js | 1396 ++ .../lib/core/topologies/read_preference.js | 266 + .../mongodb/lib/core/topologies/replset.js | 1559 ++ .../lib/core/topologies/replset_state.js | 1121 + .../mongodb/lib/core/topologies/server.js | 990 + .../mongodb/lib/core/topologies/shared.js | 456 + node_modules/mongodb/lib/core/transactions.js | 179 + node_modules/mongodb/lib/core/uri_parser.js | 723 + node_modules/mongodb/lib/core/utils.js | 297 + .../mongodb/lib/core/wireprotocol/command.js | 177 + .../lib/core/wireprotocol/compression.js | 73 + .../lib/core/wireprotocol/constants.js | 13 + .../mongodb/lib/core/wireprotocol/get_more.js | 95 + .../mongodb/lib/core/wireprotocol/index.js | 18 + .../lib/core/wireprotocol/kill_cursors.js | 70 + .../mongodb/lib/core/wireprotocol/query.js | 235 + .../mongodb/lib/core/wireprotocol/shared.js | 115 + .../lib/core/wireprotocol/write_command.js | 50 + node_modules/mongodb/lib/cursor.js | 1135 + node_modules/mongodb/lib/db.js | 1032 + node_modules/mongodb/lib/dynamic_loaders.js | 32 + node_modules/mongodb/lib/error.js | 43 + .../mongodb/lib/gridfs-stream/download.js | 433 + .../mongodb/lib/gridfs-stream/index.js | 359 + .../mongodb/lib/gridfs-stream/upload.js | 538 + node_modules/mongodb/lib/gridfs/chunk.js | 236 + node_modules/mongodb/lib/gridfs/grid_store.js | 1920 ++ node_modules/mongodb/lib/mongo_client.js | 542 + .../mongodb/lib/operations/add_user.js | 96 + .../mongodb/lib/operations/admin_ops.js | 62 + .../mongodb/lib/operations/aggregate.js | 106 + .../mongodb/lib/operations/bulk_write.js | 104 + .../mongodb/lib/operations/collection_ops.js | 353 + .../mongodb/lib/operations/collections.js | 55 + .../mongodb/lib/operations/command.js | 119 + .../mongodb/lib/operations/command_v2.js | 108 + .../lib/operations/common_functions.js | 412 + .../mongodb/lib/operations/connect.js | 806 + node_modules/mongodb/lib/operations/count.js | 68 + .../mongodb/lib/operations/count_documents.js | 41 + .../lib/operations/create_collection.js | 102 + .../mongodb/lib/operations/create_indexes.js | 137 + .../mongodb/lib/operations/cursor_ops.js | 167 + node_modules/mongodb/lib/operations/db_ops.js | 467 + .../mongodb/lib/operations/delete_many.js | 25 + .../mongodb/lib/operations/delete_one.js | 25 + .../mongodb/lib/operations/distinct.js | 85 + node_modules/mongodb/lib/operations/drop.js | 53 + .../mongodb/lib/operations/drop_index.js | 42 + .../mongodb/lib/operations/drop_indexes.js | 23 + .../operations/estimated_document_count.js | 58 + .../operations/execute_db_admin_command.js | 34 + .../lib/operations/execute_operation.js | 186 + node_modules/mongodb/lib/operations/find.js | 40 + .../mongodb/lib/operations/find_and_modify.js | 115 + .../mongodb/lib/operations/find_one.js | 37 + .../lib/operations/find_one_and_delete.js | 21 + .../lib/operations/find_one_and_replace.js | 31 + .../lib/operations/find_one_and_update.js | 32 + .../lib/operations/geo_haystack_search.js | 79 + .../mongodb/lib/operations/index_exists.js | 39 + .../lib/operations/index_information.js | 23 + .../mongodb/lib/operations/indexes.js | 22 + .../mongodb/lib/operations/insert_many.js | 63 + .../mongodb/lib/operations/insert_one.js | 39 + .../mongodb/lib/operations/is_capped.js | 19 + .../lib/operations/list_collections.js | 106 + .../mongodb/lib/operations/list_databases.js | 38 + .../mongodb/lib/operations/list_indexes.js | 42 + .../mongodb/lib/operations/map_reduce.js | 190 + .../mongodb/lib/operations/operation.js | 66 + .../lib/operations/options_operation.js | 32 + .../mongodb/lib/operations/profiling_level.js | 31 + .../mongodb/lib/operations/re_index.js | 33 + .../mongodb/lib/operations/remove_user.js | 52 + node_modules/mongodb/lib/operations/rename.js | 61 + .../mongodb/lib/operations/replace_one.js | 54 + .../mongodb/lib/operations/run_command.js | 19 + .../lib/operations/set_profiling_level.js | 48 + node_modules/mongodb/lib/operations/stats.js | 45 + .../mongodb/lib/operations/update_many.js | 34 + .../mongodb/lib/operations/update_one.js | 49 + .../lib/operations/validate_collection.js | 39 + node_modules/mongodb/lib/read_concern.js | 61 + node_modules/mongodb/lib/topologies/mongos.js | 445 + .../mongodb/lib/topologies/native_topology.js | 78 + .../mongodb/lib/topologies/replset.js | 489 + node_modules/mongodb/lib/topologies/server.js | 448 + .../mongodb/lib/topologies/topology_base.js | 417 + node_modules/mongodb/lib/url_parser.js | 623 + node_modules/mongodb/lib/utils.js | 821 + node_modules/mongodb/lib/write_concern.js | 76 + node_modules/mongodb/package.json | 110 + .../mongoose-legacy-pluralize/LICENSE | 201 + .../mongoose-legacy-pluralize/README.md | 2 + .../mongoose-legacy-pluralize/index.js | 95 + .../mongoose-legacy-pluralize/package.json | 51 + node_modules/mongoose/History.md | 5993 +++++ node_modules/mongoose/LICENSE.md | 21 + node_modules/mongoose/README.md | 371 + node_modules/mongoose/SECURITY.md | 1 + node_modules/mongoose/browser.js | 8 + node_modules/mongoose/build-browser.js | 18 + node_modules/mongoose/dist/browser.umd.js | 1589 ++ node_modules/mongoose/index.js | 9 + node_modules/mongoose/lib/aggregate.js | 1154 + node_modules/mongoose/lib/browser.js | 155 + node_modules/mongoose/lib/browserDocument.js | 100 + node_modules/mongoose/lib/cast.js | 364 + node_modules/mongoose/lib/cast/boolean.js | 32 + node_modules/mongoose/lib/cast/date.js | 41 + node_modules/mongoose/lib/cast/decimal128.js | 36 + node_modules/mongoose/lib/cast/number.js | 43 + node_modules/mongoose/lib/cast/objectid.js | 29 + node_modules/mongoose/lib/cast/string.js | 37 + node_modules/mongoose/lib/collection.js | 288 + node_modules/mongoose/lib/connection.js | 1434 ++ node_modules/mongoose/lib/connectionstate.js | 26 + .../mongoose/lib/cursor/AggregationCursor.js | 368 + .../mongoose/lib/cursor/ChangeStream.js | 61 + .../mongoose/lib/cursor/QueryCursor.js | 418 + node_modules/mongoose/lib/document.js | 4046 ++++ .../mongoose/lib/document_provider.js | 30 + node_modules/mongoose/lib/driver.js | 15 + node_modules/mongoose/lib/drivers/SPEC.md | 4 + .../lib/drivers/browser/ReadPreference.js | 7 + .../mongoose/lib/drivers/browser/binary.js | 14 + .../lib/drivers/browser/decimal128.js | 7 + .../mongoose/lib/drivers/browser/index.js | 13 + .../mongoose/lib/drivers/browser/objectid.js | 28 + .../node-mongodb-native/ReadPreference.js | 47 + .../lib/drivers/node-mongodb-native/binary.js | 10 + .../drivers/node-mongodb-native/collection.js | 368 + .../drivers/node-mongodb-native/connection.js | 185 + .../drivers/node-mongodb-native/decimal128.js | 7 + .../lib/drivers/node-mongodb-native/index.js | 11 + .../drivers/node-mongodb-native/objectid.js | 16 + .../lib/error/browserMissingSchema.js | 28 + node_modules/mongoose/lib/error/cast.js | 120 + .../mongoose/lib/error/disconnected.js | 34 + .../mongoose/lib/error/divergentArray.js | 37 + node_modules/mongoose/lib/error/index.js | 205 + node_modules/mongoose/lib/error/messages.js | 47 + .../mongoose/lib/error/missingSchema.js | 30 + .../mongoose/lib/error/mongooseError.js | 13 + node_modules/mongoose/lib/error/notFound.js | 44 + .../mongoose/lib/error/objectExpected.js | 30 + .../mongoose/lib/error/objectParameter.js | 30 + .../mongoose/lib/error/overwriteModel.js | 29 + .../mongoose/lib/error/parallelSave.js | 30 + .../mongoose/lib/error/parallelValidate.js | 31 + .../mongoose/lib/error/serverSelection.js | 50 + node_modules/mongoose/lib/error/strict.js | 33 + node_modules/mongoose/lib/error/validation.js | 110 + node_modules/mongoose/lib/error/validator.js | 94 + node_modules/mongoose/lib/error/version.js | 36 + .../aggregate/stringifyAccumulatorOptions.js | 38 + .../mongoose/lib/helpers/arrayDepth.js | 30 + node_modules/mongoose/lib/helpers/clone.js | 138 + node_modules/mongoose/lib/helpers/common.js | 106 + .../mongoose/lib/helpers/cursor/eachAsync.js | 121 + ...checkEmbeddedDiscriminatorKeyProjection.js | 12 + .../helpers/discriminator/getConstructor.js | 25 + .../discriminator/getDiscriminatorByValue.js | 27 + .../getSchemaDiscriminatorByValue.js | 24 + .../helpers/document/cleanModifiedSubpaths.js | 28 + .../mongoose/lib/helpers/document/compile.js | 193 + .../document/getEmbeddedDiscriminatorPath.js | 43 + .../lib/helpers/document/handleSpreadDoc.js | 17 + node_modules/mongoose/lib/helpers/each.js | 25 + node_modules/mongoose/lib/helpers/get.js | 39 + .../lib/helpers/getDefaultBulkwriteResult.js | 27 + .../mongoose/lib/helpers/getFunctionName.js | 8 + .../mongoose/lib/helpers/immediate.js | 12 + .../lib/helpers/indexes/isDefaultIdIndex.js | 18 + .../lib/helpers/indexes/isIndexEqual.js | 95 + .../mongoose/lib/helpers/isBsonType.js | 13 + .../mongoose/lib/helpers/isMongooseObject.js | 21 + node_modules/mongoose/lib/helpers/isObject.js | 16 + .../mongoose/lib/helpers/isPromise.js | 6 + .../mongoose/lib/helpers/model/applyHooks.js | 135 + .../lib/helpers/model/applyMethods.js | 56 + .../lib/helpers/model/applyStaticHooks.js | 71 + .../lib/helpers/model/applyStatics.js | 12 + .../lib/helpers/model/castBulkWrite.js | 224 + .../lib/helpers/model/discriminator.js | 203 + node_modules/mongoose/lib/helpers/once.js | 12 + .../mongoose/lib/helpers/parallelLimit.js | 55 + .../lib/helpers/populate/SkipPopulateValue.js | 10 + .../populate/assignRawDocsToIdStructure.js | 98 + .../lib/helpers/populate/assignVals.js | 274 + .../populate/getModelsMapForPopulate.js | 522 + .../lib/helpers/populate/getSchemaTypes.js | 198 + .../lib/helpers/populate/getVirtual.js | 72 + .../lib/helpers/populate/leanPopulateMap.js | 7 + .../lib/helpers/populate/lookupLocalFields.js | 26 + .../lib/helpers/populate/normalizeRefPath.js | 45 + .../populate/removeDeselectedForeignField.js | 31 + .../lib/helpers/populate/validateRef.js | 19 + .../mongoose/lib/helpers/printJestWarning.js | 8 + .../projection/isDefiningProjection.js | 18 + .../lib/helpers/projection/isExclusive.js | 28 + .../lib/helpers/projection/isInclusive.js | 34 + .../lib/helpers/projection/isPathExcluded.js | 35 + .../projection/isPathSelectedInclusive.js | 28 + .../lib/helpers/projection/parseProjection.js | 33 + .../mongoose/lib/helpers/promiseOrCallback.js | 45 + .../lib/helpers/query/applyGlobalMaxTimeMS.js | 15 + .../lib/helpers/query/applyQueryMiddleware.js | 90 + .../lib/helpers/query/castFilterPath.js | 55 + .../mongoose/lib/helpers/query/castUpdate.js | 537 + .../lib/helpers/query/completeMany.js | 47 + .../query/getEmbeddedDiscriminatorPath.js | 68 + .../lib/helpers/query/handleImmutable.js | 28 + .../lib/helpers/query/hasDollarKeys.js | 19 + .../mongoose/lib/helpers/query/isOperator.js | 11 + .../helpers/query/selectPopulatedFields.js | 46 + .../mongoose/lib/helpers/query/wrapThunk.js | 18 + .../mongoose/lib/helpers/schema/addAutoId.js | 7 + .../lib/helpers/schema/applyPlugins.js | 44 + .../lib/helpers/schema/applyWriteConcern.js | 16 + .../schema/cleanPositionalOperators.js | 12 + .../mongoose/lib/helpers/schema/getIndexes.js | 155 + .../mongoose/lib/helpers/schema/getPath.js | 35 + .../lib/helpers/schema/handleIdOption.js | 20 + .../helpers/schema/handleTimestampOption.js | 24 + .../mongoose/lib/helpers/schema/merge.js | 19 + .../lib/helpers/schematype/handleImmutable.js | 45 + .../lib/helpers/setDefaultsOnInsert.js | 127 + .../mongoose/lib/helpers/specialProperties.js | 3 + node_modules/mongoose/lib/helpers/symbols.js | 16 + .../lib/helpers/topology/allServersUnknown.js | 11 + .../mongoose/lib/helpers/topology/isAtlas.js | 11 + .../update/applyTimestampsToChildren.js | 172 + .../helpers/update/applyTimestampsToUpdate.js | 119 + .../lib/helpers/update/castArrayFilters.js | 78 + .../lib/helpers/update/modifiedPaths.js | 33 + .../helpers/update/moveImmutableProperties.js | 53 + .../mongoose/lib/helpers/updateValidators.js | 257 + node_modules/mongoose/lib/index.js | 1131 + node_modules/mongoose/lib/internal.js | 38 + node_modules/mongoose/lib/model.js | 4899 ++++ node_modules/mongoose/lib/options.js | 14 + .../mongoose/lib/options/PopulateOptions.js | 36 + .../lib/options/SchemaArrayOptions.js | 39 + .../lib/options/SchemaBufferOptions.js | 38 + .../mongoose/lib/options/SchemaDateOptions.js | 64 + .../lib/options/SchemaDocumentArrayOptions.js | 68 + .../mongoose/lib/options/SchemaMapOptions.js | 43 + .../lib/options/SchemaNumberOptions.js | 74 + .../lib/options/SchemaObjectIdOptions.js | 38 + .../lib/options/SchemaSingleNestedOptions.js | 42 + .../lib/options/SchemaStringOptions.js | 116 + .../mongoose/lib/options/SchemaTypeOptions.js | 232 + .../mongoose/lib/options/VirtualOptions.js | 164 + .../mongoose/lib/options/propertyOptions.js | 8 + .../mongoose/lib/options/removeOptions.js | 14 + .../mongoose/lib/options/saveOptions.js | 14 + node_modules/mongoose/lib/plugins/idGetter.js | 28 + .../mongoose/lib/plugins/removeSubdocs.js | 31 + .../mongoose/lib/plugins/saveSubdocs.js | 66 + node_modules/mongoose/lib/plugins/sharding.js | 83 + .../mongoose/lib/plugins/trackTransaction.js | 91 + .../lib/plugins/validateBeforeSave.js | 45 + node_modules/mongoose/lib/promise_provider.js | 49 + node_modules/mongoose/lib/query.js | 5399 +++++ node_modules/mongoose/lib/queryhelpers.js | 307 + node_modules/mongoose/lib/schema.js | 2229 ++ .../mongoose/lib/schema/SingleNestedPath.js | 336 + node_modules/mongoose/lib/schema/array.js | 583 + node_modules/mongoose/lib/schema/boolean.js | 258 + node_modules/mongoose/lib/schema/buffer.js | 276 + node_modules/mongoose/lib/schema/date.js | 390 + .../mongoose/lib/schema/decimal128.js | 235 + .../mongoose/lib/schema/documentarray.js | 546 + node_modules/mongoose/lib/schema/index.js | 37 + node_modules/mongoose/lib/schema/map.js | 62 + node_modules/mongoose/lib/schema/mixed.js | 128 + node_modules/mongoose/lib/schema/number.js | 444 + node_modules/mongoose/lib/schema/objectid.js | 319 + .../mongoose/lib/schema/operators/bitwise.js | 38 + .../mongoose/lib/schema/operators/exists.js | 12 + .../lib/schema/operators/geospatial.js | 107 + .../mongoose/lib/schema/operators/helpers.js | 32 + .../mongoose/lib/schema/operators/text.js | 39 + .../mongoose/lib/schema/operators/type.js | 13 + node_modules/mongoose/lib/schema/string.js | 679 + node_modules/mongoose/lib/schema/symbols.js | 5 + node_modules/mongoose/lib/schematype.js | 1578 ++ node_modules/mongoose/lib/statemachine.js | 180 + node_modules/mongoose/lib/types/array.js | 66 + node_modules/mongoose/lib/types/buffer.js | 276 + node_modules/mongoose/lib/types/core_array.js | 958 + node_modules/mongoose/lib/types/decimal128.js | 13 + .../mongoose/lib/types/documentarray.js | 421 + node_modules/mongoose/lib/types/embedded.js | 445 + node_modules/mongoose/lib/types/index.js | 20 + node_modules/mongoose/lib/types/map.js | 218 + node_modules/mongoose/lib/types/objectid.js | 30 + .../mongoose/lib/types/subdocument.js | 292 + node_modules/mongoose/lib/utils.js | 901 + node_modules/mongoose/lib/validoptions.js | 33 + node_modules/mongoose/lib/virtualtype.js | 168 + .../mongoose/node_modules/ms/index.js | 162 + .../mongoose/node_modules/ms/license.md | 21 + .../mongoose/node_modules/ms/package.json | 69 + .../mongoose/node_modules/ms/readme.md | 60 + .../mongoose/node_modules/safe-buffer/LICENSE | 21 + .../node_modules/safe-buffer/README.md | 584 + .../node_modules/safe-buffer/index.d.ts | 187 + .../node_modules/safe-buffer/index.js | 65 + .../node_modules/safe-buffer/package.json | 76 + node_modules/mongoose/package.json | 257 + node_modules/mongoose/tools/auth.js | 30 + node_modules/mongoose/tools/repl.js | 36 + node_modules/mongoose/tools/sharded.js | 45 + node_modules/mpath/.travis.yml | 9 + node_modules/mpath/History.md | 63 + node_modules/mpath/LICENSE | 22 + node_modules/mpath/Makefile | 4 + node_modules/mpath/README.md | 278 + node_modules/mpath/bench.js | 109 + node_modules/mpath/bench.log | 0 node_modules/mpath/bench.out | 52 + node_modules/mpath/index.js | 1 + node_modules/mpath/lib/index.js | 308 + node_modules/mpath/package.json | 60 + node_modules/mpath/test/index.js | 1879 ++ node_modules/mquery/.eslintignore | 1 + node_modules/mquery/.travis.yml | 17 + node_modules/mquery/History.md | 342 + node_modules/mquery/LICENSE | 22 + node_modules/mquery/Makefile | 26 + node_modules/mquery/README.md | 1375 ++ .../mquery/lib/collection/collection.js | 46 + node_modules/mquery/lib/collection/index.js | 13 + node_modules/mquery/lib/collection/node.js | 151 + node_modules/mquery/lib/env.js | 22 + node_modules/mquery/lib/mquery.js | 3252 +++ node_modules/mquery/lib/permissions.js | 88 + node_modules/mquery/lib/utils.js | 356 + .../mquery/node_modules/debug/.coveralls.yml | 1 + .../mquery/node_modules/debug/.eslintrc | 14 + .../mquery/node_modules/debug/.npmignore | 9 + .../mquery/node_modules/debug/.travis.yml | 20 + .../mquery/node_modules/debug/CHANGELOG.md | 395 + .../mquery/node_modules/debug/LICENSE | 19 + .../mquery/node_modules/debug/Makefile | 58 + .../mquery/node_modules/debug/README.md | 368 + .../mquery/node_modules/debug/karma.conf.js | 70 + .../mquery/node_modules/debug/node.js | 1 + .../mquery/node_modules/debug/package.json | 82 + .../mquery/node_modules/debug/src/browser.js | 195 + .../mquery/node_modules/debug/src/debug.js | 225 + .../mquery/node_modules/debug/src/index.js | 10 + .../mquery/node_modules/debug/src/node.js | 186 + node_modules/mquery/package.json | 114 + .../mquery/test/collection/browser.js | 0 node_modules/mquery/test/collection/mongo.js | 0 node_modules/mquery/test/collection/node.js | 28 + node_modules/mquery/test/env.js | 21 + node_modules/mquery/test/index.js | 3076 +++ node_modules/mquery/test/utils.test.js | 144 + node_modules/ms/index.js | 152 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 70 + node_modules/ms/readme.md | 51 + node_modules/negotiator/HISTORY.md | 103 + node_modules/negotiator/LICENSE | 24 + node_modules/negotiator/README.md | 203 + node_modules/negotiator/index.js | 124 + node_modules/negotiator/lib/charset.js | 169 + node_modules/negotiator/lib/encoding.js | 184 + node_modules/negotiator/lib/language.js | 179 + node_modules/negotiator/lib/mediaType.js | 294 + node_modules/negotiator/package.json | 84 + node_modules/nodemon/.jscsrc | 13 + node_modules/nodemon/.jshintrc | 16 + node_modules/nodemon/.travis.yml | 18 + node_modules/nodemon/LICENSE | 21 + node_modules/nodemon/README.md | 379 + node_modules/nodemon/bin/nodemon.js | 16 + node_modules/nodemon/bin/postinstall.js | 29 + node_modules/nodemon/commitlint.config.js | 7 + node_modules/nodemon/doc/cli/authors.txt | 8 + node_modules/nodemon/doc/cli/config.txt | 44 + node_modules/nodemon/doc/cli/help.txt | 29 + node_modules/nodemon/doc/cli/logo.txt | 20 + node_modules/nodemon/doc/cli/options.txt | 36 + node_modules/nodemon/doc/cli/topics.txt | 8 + node_modules/nodemon/doc/cli/usage.txt | 3 + node_modules/nodemon/doc/cli/whoami.txt | 9 + node_modules/nodemon/lib/cli/index.js | 49 + node_modules/nodemon/lib/cli/parse.js | 230 + node_modules/nodemon/lib/config/command.js | 43 + node_modules/nodemon/lib/config/defaults.js | 28 + node_modules/nodemon/lib/config/exec.js | 225 + node_modules/nodemon/lib/config/index.js | 93 + node_modules/nodemon/lib/config/load.js | 254 + node_modules/nodemon/lib/help/index.js | 27 + node_modules/nodemon/lib/index.js | 1 + node_modules/nodemon/lib/monitor/index.js | 4 + node_modules/nodemon/lib/monitor/match.js | 269 + node_modules/nodemon/lib/monitor/run.js | 459 + node_modules/nodemon/lib/monitor/signals.js | 34 + node_modules/nodemon/lib/monitor/watch.js | 239 + node_modules/nodemon/lib/nodemon.js | 309 + node_modules/nodemon/lib/rules/add.js | 89 + node_modules/nodemon/lib/rules/index.js | 53 + node_modules/nodemon/lib/rules/parse.js | 43 + node_modules/nodemon/lib/spawn.js | 55 + node_modules/nodemon/lib/utils/bus.js | 44 + node_modules/nodemon/lib/utils/clone.js | 40 + node_modules/nodemon/lib/utils/colour.js | 26 + node_modules/nodemon/lib/utils/index.js | 102 + node_modules/nodemon/lib/utils/log.js | 82 + node_modules/nodemon/lib/utils/merge.js | 47 + node_modules/nodemon/lib/version.js | 100 + .../nodemon/node_modules/debug/CHANGELOG.md | 395 + .../nodemon/node_modules/debug/LICENSE | 19 + .../nodemon/node_modules/debug/README.md | 437 + .../nodemon/node_modules/debug/dist/debug.js | 886 + .../nodemon/node_modules/debug/node.js | 1 + .../nodemon/node_modules/debug/package.json | 90 + .../nodemon/node_modules/debug/src/browser.js | 180 + .../nodemon/node_modules/debug/src/common.js | 249 + .../nodemon/node_modules/debug/src/index.js | 12 + .../nodemon/node_modules/debug/src/node.js | 174 + node_modules/nodemon/node_modules/ms/index.js | 162 + .../nodemon/node_modules/ms/license.md | 21 + .../nodemon/node_modules/ms/package.json | 69 + .../nodemon/node_modules/ms/readme.md | 60 + .../node_modules/supports-color/browser.js | 5 + .../node_modules/supports-color/index.js | 131 + .../node_modules/supports-color/license | 9 + .../node_modules/supports-color/package.json | 85 + .../node_modules/supports-color/readme.md | 66 + node_modules/nodemon/package.json | 105 + node_modules/nopt/.npmignore | 0 node_modules/nopt/LICENSE | 23 + node_modules/nopt/README.md | 208 + node_modules/nopt/bin/nopt.js | 44 + node_modules/nopt/examples/my-program.js | 30 + node_modules/nopt/lib/nopt.js | 552 + node_modules/nopt/package.json | 60 + node_modules/normalize-package-data/AUTHORS | 4 + node_modules/normalize-package-data/LICENSE | 30 + node_modules/normalize-package-data/README.md | 106 + .../lib/extract_description.js | 14 + .../normalize-package-data/lib/fixer.js | 418 + .../lib/make_warning.js | 23 + .../normalize-package-data/lib/normalize.js | 39 + .../normalize-package-data/lib/safe_format.js | 9 + .../normalize-package-data/lib/typos.json | 25 + .../lib/warning_messages.json | 30 + .../normalize-package-data/package.json | 77 + node_modules/normalize-path/LICENSE | 21 + node_modules/normalize-path/README.md | 127 + node_modules/normalize-path/index.js | 35 + node_modules/normalize-path/package.json | 115 + node_modules/normalize-url/index.d.ts | 216 + node_modules/normalize-url/index.js | 221 + node_modules/normalize-url/license | 9 + node_modules/normalize-url/package.json | 76 + node_modules/normalize-url/readme.md | 232 + node_modules/oauth-sign/LICENSE | 55 + node_modules/oauth-sign/README.md | 11 + node_modules/oauth-sign/index.js | 146 + node_modules/oauth-sign/package.json | 56 + node_modules/on-finished/HISTORY.md | 88 + node_modules/on-finished/LICENSE | 23 + node_modules/on-finished/README.md | 154 + node_modules/on-finished/index.js | 196 + node_modules/on-finished/package.json | 73 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 67 + node_modules/p-cancelable/index.d.ts | 168 + node_modules/p-cancelable/index.js | 103 + node_modules/p-cancelable/license | 9 + node_modules/p-cancelable/package.json | 81 + node_modules/p-cancelable/readme.md | 155 + node_modules/p-limit/index.d.ts | 38 + node_modules/p-limit/index.js | 57 + node_modules/p-limit/license | 9 + node_modules/p-limit/package.json | 84 + node_modules/p-limit/readme.md | 101 + node_modules/p-locate/index.d.ts | 64 + node_modules/p-locate/index.js | 52 + node_modules/p-locate/license | 9 + node_modules/p-locate/package.json | 85 + node_modules/p-locate/readme.md | 90 + node_modules/p-try/index.d.ts | 39 + node_modules/p-try/index.js | 9 + node_modules/p-try/license | 9 + node_modules/p-try/package.json | 74 + node_modules/p-try/readme.md | 58 + node_modules/package-json/index.d.ts | 199 + node_modules/package-json/index.js | 115 + node_modules/package-json/license | 9 + .../package-json/node_modules/.bin/semver | 15 + .../package-json/node_modules/.bin/semver.cmd | 17 + .../package-json/node_modules/.bin/semver.ps1 | 18 + .../node_modules/semver/CHANGELOG.md | 70 + .../package-json/node_modules/semver/LICENSE | 15 + .../node_modules/semver/README.md | 443 + .../node_modules/semver/bin/semver.js | 174 + .../node_modules/semver/package.json | 60 + .../node_modules/semver/range.bnf | 16 + .../node_modules/semver/semver.js | 1596 ++ node_modules/package-json/package.json | 78 + node_modules/package-json/readme.md | 118 + node_modules/parse-json/index.js | 33 + node_modules/parse-json/license | 9 + node_modules/parse-json/package.json | 75 + node_modules/parse-json/readme.md | 83 + node_modules/parseurl/HISTORY.md | 58 + node_modules/parseurl/LICENSE | 24 + node_modules/parseurl/README.md | 133 + node_modules/parseurl/index.js | 158 + node_modules/parseurl/package.json | 81 + node_modules/path-exists/index.d.ts | 28 + node_modules/path-exists/index.js | 23 + node_modules/path-exists/license | 9 + node_modules/path-exists/package.json | 71 + node_modules/path-exists/readme.md | 52 + node_modules/path-parse/.travis.yml | 9 + node_modules/path-parse/LICENSE | 21 + node_modules/path-parse/README.md | 42 + node_modules/path-parse/index.js | 93 + node_modules/path-parse/package.json | 61 + node_modules/path-parse/test.js | 77 + node_modules/path-to-regexp/History.md | 36 + node_modules/path-to-regexp/LICENSE | 21 + node_modules/path-to-regexp/Readme.md | 35 + node_modules/path-to-regexp/index.js | 129 + node_modules/path-to-regexp/package.json | 59 + node_modules/performance-now/.npmignore | 1 + node_modules/performance-now/.tm_properties | 7 + node_modules/performance-now/.travis.yml | 6 + node_modules/performance-now/README.md | 30 + .../performance-now/lib/performance-now.js | 36 + .../lib/performance-now.js.map | 10 + node_modules/performance-now/license.txt | 7 + node_modules/performance-now/package.json | 65 + node_modules/performance-now/src/index.d.ts | 8 + .../src/performance-now.coffee | 17 + node_modules/performance-now/test/mocha.opts | 3 + .../test/performance-now.coffee | 43 + .../performance-now/test/scripts.coffee | 27 + .../test/scripts/delayed-call.coffee | 11 + .../test/scripts/delayed-require.coffee | 12 + .../test/scripts/difference.coffee | 6 + .../test/scripts/initial-value.coffee | 10 + node_modules/picomatch/CHANGELOG.md | 113 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 691 + node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1078 + node_modules/picomatch/lib/picomatch.js | 339 + node_modules/picomatch/lib/scan.js | 383 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 113 + node_modules/pify/index.js | 84 + node_modules/pify/license | 9 + node_modules/pify/package.json | 83 + node_modules/pify/readme.md | 131 + node_modules/prepend-http/index.js | 15 + node_modules/prepend-http/license | 9 + node_modules/prepend-http/package.json | 67 + node_modules/prepend-http/readme.md | 56 + node_modules/process-nextick-args/index.js | 45 + node_modules/process-nextick-args/license.md | 19 + .../process-nextick-args/package.json | 50 + node_modules/process-nextick-args/readme.md | 18 + node_modules/proxy-addr/HISTORY.md | 155 + node_modules/proxy-addr/LICENSE | 22 + node_modules/proxy-addr/README.md | 155 + node_modules/proxy-addr/index.js | 327 + node_modules/proxy-addr/package.json | 82 + node_modules/psl/LICENSE | 9 + node_modules/psl/README.md | 215 + node_modules/psl/browserstack-logo.svg | 90 + node_modules/psl/data/rules.json | 8834 +++++++ node_modules/psl/dist/psl.js | 9645 ++++++++ node_modules/psl/dist/psl.min.js | 1 + node_modules/psl/index.js | 269 + node_modules/psl/package.json | 77 + node_modules/pstree.remy/.travis.yml | 8 + node_modules/pstree.remy/LICENSE | 7 + node_modules/pstree.remy/README.md | 26 + node_modules/pstree.remy/lib/index.js | 37 + node_modules/pstree.remy/lib/tree.js | 37 + node_modules/pstree.remy/lib/utils.js | 53 + node_modules/pstree.remy/package.json | 64 + .../pstree.remy/tests/fixtures/index.js | 13 + node_modules/pstree.remy/tests/fixtures/out1 | 10 + node_modules/pstree.remy/tests/fixtures/out2 | 29 + node_modules/pstree.remy/tests/index.test.js | 51 + node_modules/pump/.travis.yml | 5 + node_modules/pump/LICENSE | 21 + node_modules/pump/README.md | 65 + node_modules/pump/index.js | 82 + node_modules/pump/package.json | 60 + node_modules/pump/test-browser.js | 66 + node_modules/pump/test-node.js | 53 + node_modules/punycode/LICENSE-MIT.txt | 20 + node_modules/punycode/README.md | 122 + node_modules/punycode/package.json | 86 + node_modules/punycode/punycode.es6.js | 441 + node_modules/punycode/punycode.js | 440 + node_modules/pupa/index.d.ts | 32 + node_modules/pupa/index.js | 38 + node_modules/pupa/license | 9 + node_modules/pupa/package.json | 79 + node_modules/pupa/readme.md | 63 + node_modules/qs/.editorconfig | 30 + node_modules/qs/.eslintignore | 1 + node_modules/qs/.eslintrc | 21 + node_modules/qs/CHANGELOG.md | 256 + node_modules/qs/LICENSE | 28 + node_modules/qs/README.md | 570 + node_modules/qs/dist/qs.js | 782 + node_modules/qs/lib/formats.js | 18 + node_modules/qs/lib/index.js | 11 + node_modules/qs/lib/parse.js | 242 + node_modules/qs/lib/stringify.js | 269 + node_modules/qs/lib/utils.js | 230 + node_modules/qs/package.json | 87 + node_modules/qs/test/.eslintrc | 17 + node_modules/qs/test/index.js | 7 + node_modules/qs/test/parse.js | 676 + node_modules/qs/test/stringify.js | 679 + node_modules/qs/test/utils.js | 136 + node_modules/querystring/.History.md.un~ | Bin 0 -> 7960 bytes node_modules/querystring/.Readme.md.un~ | Bin 0 -> 3225 bytes node_modules/querystring/.package.json.un~ | Bin 0 -> 5710 bytes node_modules/querystring/.travis.yml | 4 + node_modules/querystring/History.md | 20 + node_modules/querystring/License.md | 19 + node_modules/querystring/Readme.md | 15 + node_modules/querystring/decode.js | 80 + node_modules/querystring/encode.js | 64 + node_modules/querystring/index.js | 4 + node_modules/querystring/package.json | 100 + node_modules/querystring/test/.index.js.un~ | Bin 0 -> 975 bytes node_modules/querystring/test/common-index.js | 3 + node_modules/querystring/test/index.js | 210 + node_modules/querystring/test/tap-index.js | 3 + node_modules/range-parser/HISTORY.md | 56 + node_modules/range-parser/LICENSE | 23 + node_modules/range-parser/README.md | 84 + node_modules/range-parser/index.js | 162 + node_modules/range-parser/package.json | 91 + node_modules/raw-body/HISTORY.md | 270 + node_modules/raw-body/LICENSE | 22 + node_modules/raw-body/README.md | 219 + node_modules/raw-body/index.d.ts | 87 + node_modules/raw-body/index.js | 286 + node_modules/raw-body/package.json | 90 + node_modules/rc/LICENSE.APACHE2 | 15 + node_modules/rc/LICENSE.BSD | 26 + node_modules/rc/LICENSE.MIT | 24 + node_modules/rc/README.md | 227 + node_modules/rc/browser.js | 7 + node_modules/rc/cli.js | 4 + node_modules/rc/index.js | 53 + node_modules/rc/lib/utils.js | 104 + node_modules/rc/package.json | 65 + node_modules/rc/test/ini.js | 16 + node_modules/rc/test/nested-env-vars.js | 50 + node_modules/rc/test/test.js | 59 + node_modules/read-pkg/index.js | 42 + node_modules/read-pkg/license | 9 + node_modules/read-pkg/package.json | 74 + node_modules/read-pkg/readme.md | 73 + node_modules/readable-stream/.travis.yml | 34 + node_modules/readable-stream/CONTRIBUTING.md | 38 + node_modules/readable-stream/GOVERNANCE.md | 136 + node_modules/readable-stream/LICENSE | 47 + node_modules/readable-stream/README.md | 58 + .../doc/wg-meetings/2015-01-30.md | 60 + .../readable-stream/duplex-browser.js | 1 + node_modules/readable-stream/duplex.js | 1 + .../readable-stream/lib/_stream_duplex.js | 131 + .../lib/_stream_passthrough.js | 47 + .../readable-stream/lib/_stream_readable.js | 1019 + .../readable-stream/lib/_stream_transform.js | 214 + .../readable-stream/lib/_stream_writable.js | 687 + .../lib/internal/streams/BufferList.js | 79 + .../lib/internal/streams/destroy.js | 74 + .../lib/internal/streams/stream-browser.js | 1 + .../lib/internal/streams/stream.js | 1 + node_modules/readable-stream/package.json | 81 + node_modules/readable-stream/passthrough.js | 1 + .../readable-stream/readable-browser.js | 7 + node_modules/readable-stream/readable.js | 19 + node_modules/readable-stream/transform.js | 1 + .../readable-stream/writable-browser.js | 1 + node_modules/readable-stream/writable.js | 8 + node_modules/readdirp/LICENSE | 21 + node_modules/readdirp/README.md | 120 + node_modules/readdirp/index.d.ts | 43 + node_modules/readdirp/index.js | 275 + node_modules/readdirp/package.json | 157 + node_modules/regexp-clone/.travis.yml | 14 + node_modules/regexp-clone/History.md | 5 + node_modules/regexp-clone/LICENSE | 22 + node_modules/regexp-clone/Makefile | 5 + node_modules/regexp-clone/README.md | 42 + node_modules/regexp-clone/index.js | 27 + node_modules/regexp-clone/package.json | 55 + node_modules/regexp-clone/test/index.js | 171 + node_modules/registry-auth-token/CHANGELOG.md | 134 + node_modules/registry-auth-token/LICENSE | 21 + node_modules/registry-auth-token/README.md | 65 + node_modules/registry-auth-token/base64.js | 12 + node_modules/registry-auth-token/index.js | 142 + node_modules/registry-auth-token/package.json | 76 + .../registry-auth-token/registry-url.js | 5 + .../test/auth-token.test.js | 507 + .../test/registry-url.test.js | 64 + node_modules/registry-url/index.d.ts | 33 + node_modules/registry-url/index.js | 12 + node_modules/registry-url/license | 9 + node_modules/registry-url/package.json | 76 + node_modules/registry-url/readme.md | 50 + node_modules/request/CHANGELOG.md | 717 + node_modules/request/LICENSE | 55 + node_modules/request/README.md | 1133 + node_modules/request/index.js | 155 + node_modules/request/lib/auth.js | 167 + node_modules/request/lib/cookies.js | 38 + node_modules/request/lib/getProxyFromURI.js | 79 + node_modules/request/lib/har.js | 205 + node_modules/request/lib/hawk.js | 89 + node_modules/request/lib/helpers.js | 66 + node_modules/request/lib/multipart.js | 112 + node_modules/request/lib/oauth.js | 148 + node_modules/request/lib/querystring.js | 50 + node_modules/request/lib/redirect.js | 154 + node_modules/request/lib/tunnel.js | 175 + .../request/node_modules/qs/.editorconfig | 30 + .../request/node_modules/qs/.eslintignore | 1 + .../request/node_modules/qs/.eslintrc | 19 + .../request/node_modules/qs/CHANGELOG.md | 226 + node_modules/request/node_modules/qs/LICENSE | 28 + .../request/node_modules/qs/README.md | 475 + .../request/node_modules/qs/dist/qs.js | 638 + .../request/node_modules/qs/lib/formats.js | 18 + .../request/node_modules/qs/lib/index.js | 11 + .../request/node_modules/qs/lib/parse.js | 174 + .../request/node_modules/qs/lib/stringify.js | 210 + .../request/node_modules/qs/lib/utils.js | 213 + .../request/node_modules/qs/package.json | 80 + .../request/node_modules/qs/test/.eslintrc | 15 + .../request/node_modules/qs/test/index.js | 7 + .../request/node_modules/qs/test/parse.js | 574 + .../request/node_modules/qs/test/stringify.js | 597 + .../request/node_modules/qs/test/utils.js | 34 + node_modules/request/package.json | 116 + node_modules/request/request.js | 1553 ++ node_modules/require-directory/.jshintrc | 67 + node_modules/require-directory/.npmignore | 1 + node_modules/require-directory/.travis.yml | 3 + node_modules/require-directory/LICENSE | 22 + .../require-directory/README.markdown | 184 + node_modules/require-directory/index.js | 86 + node_modules/require-directory/package.json | 69 + .../require-main-filename/CHANGELOG.md | 26 + .../require-main-filename/LICENSE.txt | 14 + node_modules/require-main-filename/README.md | 26 + node_modules/require-main-filename/index.js | 18 + .../require-main-filename/package.json | 63 + node_modules/require_optional/.npmignore | 33 + node_modules/require_optional/.travis.yml | 9 + node_modules/require_optional/HISTORY.md | 7 + node_modules/require_optional/LICENSE | 201 + node_modules/require_optional/README.md | 2 + node_modules/require_optional/index.js | 128 + node_modules/require_optional/package.json | 67 + .../require_optional/test/nestedTest/index.js | 8 + .../test/nestedTest/package.json | 11 + .../test/require_optional_tests.js | 59 + node_modules/resolve-from/index.js | 23 + node_modules/resolve-from/license | 21 + node_modules/resolve-from/package.json | 66 + node_modules/resolve-from/readme.md | 58 + node_modules/resolve/.editorconfig | 20 + node_modules/resolve/.eslintignore | 1 + node_modules/resolve/.eslintrc | 39 + node_modules/resolve/.travis.yml | 8 + node_modules/resolve/LICENSE | 21 + node_modules/resolve/appveyor.yml | 54 + node_modules/resolve/example/async.js | 5 + node_modules/resolve/example/sync.js | 3 + node_modules/resolve/index.js | 6 + node_modules/resolve/lib/async.js | 298 + node_modules/resolve/lib/caller.js | 8 + node_modules/resolve/lib/core.js | 53 + node_modules/resolve/lib/core.json | 75 + node_modules/resolve/lib/is-core.js | 5 + .../resolve/lib/node-modules-paths.js | 42 + node_modules/resolve/lib/normalize-options.js | 10 + node_modules/resolve/lib/sync.js | 191 + node_modules/resolve/package.json | 76 + node_modules/resolve/readme.markdown | 242 + node_modules/resolve/test/.eslintrc | 5 + node_modules/resolve/test/core.js | 85 + node_modules/resolve/test/dotdot.js | 29 + node_modules/resolve/test/dotdot/abc/index.js | 2 + node_modules/resolve/test/dotdot/index.js | 1 + node_modules/resolve/test/faulty_basedir.js | 29 + node_modules/resolve/test/filter.js | 34 + node_modules/resolve/test/filter_sync.js | 33 + node_modules/resolve/test/mock.js | 239 + node_modules/resolve/test/mock_sync.js | 141 + node_modules/resolve/test/module_dir.js | 56 + .../test/module_dir/xmodules/aaa/index.js | 1 + .../test/module_dir/ymodules/aaa/index.js | 1 + .../test/module_dir/zmodules/bbb/main.js | 1 + .../test/module_dir/zmodules/bbb/package.json | 3 + .../resolve/test/node-modules-paths.js | 143 + node_modules/resolve/test/node_path.js | 70 + .../resolve/test/node_path/x/aaa/index.js | 1 + .../resolve/test/node_path/x/ccc/index.js | 1 + .../resolve/test/node_path/y/bbb/index.js | 1 + .../resolve/test/node_path/y/ccc/index.js | 1 + node_modules/resolve/test/nonstring.js | 9 + node_modules/resolve/test/pathfilter.js | 75 + .../resolve/test/pathfilter/deep_ref/main.js | 0 node_modules/resolve/test/precedence.js | 23 + node_modules/resolve/test/precedence/aaa.js | 1 + .../resolve/test/precedence/aaa/index.js | 1 + .../resolve/test/precedence/aaa/main.js | 1 + node_modules/resolve/test/precedence/bbb.js | 1 + .../resolve/test/precedence/bbb/main.js | 1 + node_modules/resolve/test/resolver.js | 450 + .../resolve/test/resolver/baz/doom.js | 0 .../resolve/test/resolver/baz/package.json | 4 + .../resolve/test/resolver/baz/quux.js | 1 + .../resolve/test/resolver/browser_field/a.js | 0 .../resolve/test/resolver/browser_field/b.js | 0 .../test/resolver/browser_field/package.json | 5 + node_modules/resolve/test/resolver/cup.coffee | 1 + .../resolve/test/resolver/dot_main/index.js | 1 + .../test/resolver/dot_main/package.json | 3 + .../test/resolver/dot_slash_main/index.js | 1 + .../test/resolver/dot_slash_main/package.json | 3 + node_modules/resolve/test/resolver/foo.js | 1 + .../test/resolver/incorrect_main/index.js | 2 + .../test/resolver/incorrect_main/package.json | 3 + .../test/resolver/invalid_main/package.json | 7 + node_modules/resolve/test/resolver/mug.coffee | 0 node_modules/resolve/test/resolver/mug.js | 0 .../test/resolver/multirepo/lerna.json | 6 + .../test/resolver/multirepo/package.json | 20 + .../multirepo/packages/package-a/index.js | 35 + .../multirepo/packages/package-a/package.json | 14 + .../multirepo/packages/package-b/index.js | 0 .../multirepo/packages/package-b/package.json | 14 + .../resolver/nested_symlinks/mylib/async.js | 26 + .../nested_symlinks/mylib/package.json | 15 + .../resolver/nested_symlinks/mylib/sync.js | 12 + .../test/resolver/other_path/lib/other-lib.js | 0 .../resolve/test/resolver/other_path/root.js | 0 .../resolve/test/resolver/quux/foo/index.js | 1 + .../resolve/test/resolver/same_names/foo.js | 1 + .../test/resolver/same_names/foo/index.js | 1 + .../resolver/symlinked/_/node_modules/foo.js | 0 .../symlinked/_/symlink_target/.gitkeep | 0 .../test/resolver/symlinked/package/bar.js | 1 + .../resolver/symlinked/package/package.json | 3 + .../test/resolver/without_basedir/main.js | 5 + node_modules/resolve/test/resolver_sync.js | 358 + node_modules/resolve/test/shadowed_core.js | 38 + .../shadowed_core/node_modules/util/index.js | 0 node_modules/resolve/test/subdirs.js | 13 + node_modules/resolve/test/symlinks.js | 173 + node_modules/responselike/LICENSE | 19 + node_modules/responselike/README.md | 77 + node_modules/responselike/package.json | 69 + node_modules/responselike/src/index.js | 34 + node_modules/rxjs/AsyncSubject.d.ts | 1 + node_modules/rxjs/AsyncSubject.js | 7 + node_modules/rxjs/AsyncSubject.js.map | 1 + node_modules/rxjs/BehaviorSubject.d.ts | 1 + node_modules/rxjs/BehaviorSubject.js | 7 + node_modules/rxjs/BehaviorSubject.js.map | 1 + node_modules/rxjs/InnerSubscriber.d.ts | 1 + node_modules/rxjs/InnerSubscriber.js | 7 + node_modules/rxjs/InnerSubscriber.js.map | 1 + node_modules/rxjs/LICENSE.txt | 202 + node_modules/rxjs/Notification.d.ts | 1 + node_modules/rxjs/Notification.js | 7 + node_modules/rxjs/Notification.js.map | 1 + node_modules/rxjs/Observable.d.ts | 1 + node_modules/rxjs/Observable.js | 7 + node_modules/rxjs/Observable.js.map | 1 + node_modules/rxjs/Observer.d.ts | 1 + node_modules/rxjs/Observer.js | 3 + node_modules/rxjs/Observer.js.map | 1 + node_modules/rxjs/Operator.d.ts | 1 + node_modules/rxjs/Operator.js | 3 + node_modules/rxjs/Operator.js.map | 1 + node_modules/rxjs/OuterSubscriber.d.ts | 1 + node_modules/rxjs/OuterSubscriber.js | 7 + node_modules/rxjs/OuterSubscriber.js.map | 1 + node_modules/rxjs/README.md | 147 + node_modules/rxjs/ReplaySubject.d.ts | 1 + node_modules/rxjs/ReplaySubject.js | 7 + node_modules/rxjs/ReplaySubject.js.map | 1 + node_modules/rxjs/Rx.d.ts | 1 + node_modules/rxjs/Rx.js | 7 + node_modules/rxjs/Rx.js.map | 1 + node_modules/rxjs/Scheduler.d.ts | 1 + node_modules/rxjs/Scheduler.js | 7 + node_modules/rxjs/Scheduler.js.map | 1 + node_modules/rxjs/Subject.d.ts | 1 + node_modules/rxjs/Subject.js | 7 + node_modules/rxjs/Subject.js.map | 1 + node_modules/rxjs/SubjectSubscription.d.ts | 1 + node_modules/rxjs/SubjectSubscription.js | 7 + node_modules/rxjs/SubjectSubscription.js.map | 1 + node_modules/rxjs/Subscriber.d.ts | 1 + node_modules/rxjs/Subscriber.js | 7 + node_modules/rxjs/Subscriber.js.map | 1 + node_modules/rxjs/Subscription.d.ts | 1 + node_modules/rxjs/Subscription.js | 7 + node_modules/rxjs/Subscription.js.map | 1 + node_modules/rxjs/_esm2015/LICENSE.txt | 202 + node_modules/rxjs/_esm2015/README.md | 147 + node_modules/rxjs/_esm2015/ajax/index.js | 3 + node_modules/rxjs/_esm2015/ajax/index.js.map | 1 + node_modules/rxjs/_esm2015/fetch/index.js | 2 + node_modules/rxjs/_esm2015/fetch/index.js.map | 1 + node_modules/rxjs/_esm2015/index.js | 56 + node_modules/rxjs/_esm2015/index.js.map | 1 + .../_esm2015/internal-compatibility/index.js | 56 + .../internal-compatibility/index.js.map | 1 + .../rxjs/_esm2015/internal/AsyncSubject.js | 41 + .../_esm2015/internal/AsyncSubject.js.map | 1 + .../rxjs/_esm2015/internal/BehaviorSubject.js | 33 + .../_esm2015/internal/BehaviorSubject.js.map | 1 + .../rxjs/_esm2015/internal/InnerSubscriber.js | 22 + .../_esm2015/internal/InnerSubscriber.js.map | 1 + .../rxjs/_esm2015/internal/Notification.js | 73 + .../_esm2015/internal/Notification.js.map | 1 + .../rxjs/_esm2015/internal/Observable.js | 107 + .../rxjs/_esm2015/internal/Observable.js.map | 1 + .../rxjs/_esm2015/internal/Observer.js | 16 + .../rxjs/_esm2015/internal/Observer.js.map | 1 + .../rxjs/_esm2015/internal/Operator.js | 1 + .../rxjs/_esm2015/internal/Operator.js.map | 1 + .../rxjs/_esm2015/internal/OuterSubscriber.js | 13 + .../_esm2015/internal/OuterSubscriber.js.map | 1 + .../rxjs/_esm2015/internal/ReplaySubject.js | 108 + .../_esm2015/internal/ReplaySubject.js.map | 1 + node_modules/rxjs/_esm2015/internal/Rx.js | 172 + node_modules/rxjs/_esm2015/internal/Rx.js.map | 1 + .../rxjs/_esm2015/internal/Scheduler.js | 11 + .../rxjs/_esm2015/internal/Scheduler.js.map | 1 + .../rxjs/_esm2015/internal/Subject.js | 144 + .../rxjs/_esm2015/internal/Subject.js.map | 1 + .../_esm2015/internal/SubjectSubscription.js | 26 + .../internal/SubjectSubscription.js.map | 1 + .../rxjs/_esm2015/internal/Subscriber.js | 222 + .../rxjs/_esm2015/internal/Subscriber.js.map | 1 + .../rxjs/_esm2015/internal/Subscription.js | 137 + .../_esm2015/internal/Subscription.js.map | 1 + node_modules/rxjs/_esm2015/internal/config.js | 18 + .../rxjs/_esm2015/internal/config.js.map | 1 + .../rxjs/_esm2015/internal/innerSubscribe.js | 71 + .../_esm2015/internal/innerSubscribe.js.map | 1 + .../observable/ConnectableObservable.js | 129 + .../observable/ConnectableObservable.js.map | 1 + .../observable/SubscribeOnObservable.js | 33 + .../observable/SubscribeOnObservable.js.map | 1 + .../internal/observable/bindCallback.js | 85 + .../internal/observable/bindCallback.js.map | 1 + .../internal/observable/bindNodeCallback.js | 93 + .../observable/bindNodeCallback.js.map | 1 + .../internal/observable/combineLatest.js | 89 + .../internal/observable/combineLatest.js.map | 1 + .../_esm2015/internal/observable/concat.js | 6 + .../internal/observable/concat.js.map | 1 + .../_esm2015/internal/observable/defer.js | 18 + .../_esm2015/internal/observable/defer.js.map | 1 + .../internal/observable/dom/AjaxObservable.js | 359 + .../observable/dom/AjaxObservable.js.map | 1 + .../observable/dom/WebSocketSubject.js | 209 + .../observable/dom/WebSocketSubject.js.map | 1 + .../_esm2015/internal/observable/dom/ajax.js | 3 + .../internal/observable/dom/ajax.js.map | 1 + .../_esm2015/internal/observable/dom/fetch.js | 67 + .../internal/observable/dom/fetch.js.map | 1 + .../internal/observable/dom/webSocket.js | 5 + .../internal/observable/dom/webSocket.js.map | 1 + .../_esm2015/internal/observable/empty.js | 9 + .../_esm2015/internal/observable/empty.js.map | 1 + .../_esm2015/internal/observable/forkJoin.js | 61 + .../internal/observable/forkJoin.js.map | 1 + .../rxjs/_esm2015/internal/observable/from.js | 15 + .../_esm2015/internal/observable/from.js.map | 1 + .../_esm2015/internal/observable/fromArray.js | 12 + .../internal/observable/fromArray.js.map | 1 + .../_esm2015/internal/observable/fromEvent.js | 62 + .../internal/observable/fromEvent.js.map | 1 + .../internal/observable/fromEventPattern.js | 25 + .../observable/fromEventPattern.js.map | 1 + .../internal/observable/fromIterable.js | 15 + .../internal/observable/fromIterable.js.map | 1 + .../internal/observable/fromPromise.js | 12 + .../internal/observable/fromPromise.js.map | 1 + .../_esm2015/internal/observable/generate.js | 124 + .../internal/observable/generate.js.map | 1 + .../rxjs/_esm2015/internal/observable/iif.js | 6 + .../_esm2015/internal/observable/iif.js.map | 1 + .../_esm2015/internal/observable/interval.js | 21 + .../internal/observable/interval.js.map | 1 + .../_esm2015/internal/observable/merge.js | 23 + .../_esm2015/internal/observable/merge.js.map | 1 + .../_esm2015/internal/observable/never.js | 7 + .../_esm2015/internal/observable/never.js.map | 1 + .../rxjs/_esm2015/internal/observable/of.js | 14 + .../_esm2015/internal/observable/of.js.map | 1 + .../internal/observable/onErrorResumeNext.js | 22 + .../observable/onErrorResumeNext.js.map | 1 + .../_esm2015/internal/observable/pairs.js | 38 + .../_esm2015/internal/observable/pairs.js.map | 1 + .../_esm2015/internal/observable/partition.js | 11 + .../internal/observable/partition.js.map | 1 + .../rxjs/_esm2015/internal/observable/race.js | 64 + .../_esm2015/internal/observable/race.js.map | 1 + .../_esm2015/internal/observable/range.js | 44 + .../_esm2015/internal/observable/range.js.map | 1 + .../internal/observable/throwError.js | 13 + .../internal/observable/throwError.js.map | 1 + .../_esm2015/internal/observable/timer.js | 37 + .../_esm2015/internal/observable/timer.js.map | 1 + .../_esm2015/internal/observable/using.js | 32 + .../_esm2015/internal/observable/using.js.map | 1 + .../rxjs/_esm2015/internal/observable/zip.js | 197 + .../_esm2015/internal/observable/zip.js.map | 1 + .../rxjs/_esm2015/internal/operators/audit.js | 62 + .../_esm2015/internal/operators/audit.js.map | 1 + .../_esm2015/internal/operators/auditTime.js | 7 + .../internal/operators/auditTime.js.map | 1 + .../_esm2015/internal/operators/buffer.js | 30 + .../_esm2015/internal/operators/buffer.js.map | 1 + .../internal/operators/bufferCount.js | 78 + .../internal/operators/bufferCount.js.map | 1 + .../_esm2015/internal/operators/bufferTime.js | 141 + .../internal/operators/bufferTime.js.map | 1 + .../internal/operators/bufferToggle.js | 100 + .../internal/operators/bufferToggle.js.map | 1 + .../_esm2015/internal/operators/bufferWhen.js | 75 + .../internal/operators/bufferWhen.js.map | 1 + .../_esm2015/internal/operators/catchError.js | 43 + .../internal/operators/catchError.js.map | 1 + .../_esm2015/internal/operators/combineAll.js | 5 + .../internal/operators/combineAll.js.map | 1 + .../internal/operators/combineLatest.js | 15 + .../internal/operators/combineLatest.js.map | 1 + .../_esm2015/internal/operators/concat.js | 5 + .../_esm2015/internal/operators/concat.js.map | 1 + .../_esm2015/internal/operators/concatAll.js | 5 + .../internal/operators/concatAll.js.map | 1 + .../_esm2015/internal/operators/concatMap.js | 5 + .../internal/operators/concatMap.js.map | 1 + .../internal/operators/concatMapTo.js | 5 + .../internal/operators/concatMapTo.js.map | 1 + .../rxjs/_esm2015/internal/operators/count.js | 48 + .../_esm2015/internal/operators/count.js.map | 1 + .../_esm2015/internal/operators/debounce.js | 68 + .../internal/operators/debounce.js.map | 1 + .../internal/operators/debounceTime.js | 55 + .../internal/operators/debounceTime.js.map | 1 + .../internal/operators/defaultIfEmpty.js | 30 + .../internal/operators/defaultIfEmpty.js.map | 1 + .../rxjs/_esm2015/internal/operators/delay.js | 83 + .../_esm2015/internal/operators/delay.js.map | 1 + .../_esm2015/internal/operators/delayWhen.js | 118 + .../internal/operators/delayWhen.js.map | 1 + .../internal/operators/dematerialize.js | 20 + .../internal/operators/dematerialize.js.map | 1 + .../_esm2015/internal/operators/distinct.js | 57 + .../internal/operators/distinct.js.map | 1 + .../operators/distinctUntilChanged.js | 54 + .../operators/distinctUntilChanged.js.map | 1 + .../operators/distinctUntilKeyChanged.js | 5 + .../operators/distinctUntilKeyChanged.js.map | 1 + .../_esm2015/internal/operators/elementAt.js | 15 + .../internal/operators/elementAt.js.map | 1 + .../_esm2015/internal/operators/endWith.js | 6 + .../internal/operators/endWith.js.map | 1 + .../rxjs/_esm2015/internal/operators/every.js | 45 + .../_esm2015/internal/operators/every.js.map | 1 + .../_esm2015/internal/operators/exhaust.js | 35 + .../internal/operators/exhaust.js.map | 1 + .../_esm2015/internal/operators/exhaustMap.js | 73 + .../internal/operators/exhaustMap.js.map | 1 + .../_esm2015/internal/operators/expand.js | 88 + .../_esm2015/internal/operators/expand.js.map | 1 + .../_esm2015/internal/operators/filter.js | 37 + .../_esm2015/internal/operators/filter.js.map | 1 + .../_esm2015/internal/operators/finalize.js | 20 + .../internal/operators/finalize.js.map | 1 + .../rxjs/_esm2015/internal/operators/find.js | 51 + .../_esm2015/internal/operators/find.js.map | 1 + .../_esm2015/internal/operators/findIndex.js | 5 + .../internal/operators/findIndex.js.map | 1 + .../rxjs/_esm2015/internal/operators/first.js | 11 + .../_esm2015/internal/operators/first.js.map | 1 + .../_esm2015/internal/operators/groupBy.js | 164 + .../internal/operators/groupBy.js.map | 1 + .../internal/operators/ignoreElements.js | 16 + .../internal/operators/ignoreElements.js.map | 1 + .../rxjs/_esm2015/internal/operators/index.js | 103 + .../_esm2015/internal/operators/index.js.map | 1 + .../_esm2015/internal/operators/isEmpty.js | 26 + .../internal/operators/isEmpty.js.map | 1 + .../rxjs/_esm2015/internal/operators/last.js | 11 + .../_esm2015/internal/operators/last.js.map | 1 + .../rxjs/_esm2015/internal/operators/map.js | 38 + .../_esm2015/internal/operators/map.js.map | 1 + .../rxjs/_esm2015/internal/operators/mapTo.js | 22 + .../_esm2015/internal/operators/mapTo.js.map | 1 + .../internal/operators/materialize.js | 31 + .../internal/operators/materialize.js.map | 1 + .../rxjs/_esm2015/internal/operators/max.js | 8 + .../_esm2015/internal/operators/max.js.map | 1 + .../rxjs/_esm2015/internal/operators/merge.js | 5 + .../_esm2015/internal/operators/merge.js.map | 1 + .../_esm2015/internal/operators/mergeAll.js | 6 + .../internal/operators/mergeAll.js.map | 1 + .../_esm2015/internal/operators/mergeMap.js | 84 + .../internal/operators/mergeMap.js.map | 1 + .../_esm2015/internal/operators/mergeMapTo.js | 11 + .../internal/operators/mergeMapTo.js.map | 1 + .../_esm2015/internal/operators/mergeScan.js | 85 + .../internal/operators/mergeScan.js.map | 1 + .../rxjs/_esm2015/internal/operators/min.js | 8 + .../_esm2015/internal/operators/min.js.map | 1 + .../_esm2015/internal/operators/multicast.js | 35 + .../internal/operators/multicast.js.map | 1 + .../_esm2015/internal/operators/observeOn.js | 50 + .../internal/operators/observeOn.js.map | 1 + .../internal/operators/onErrorResumeNext.js | 62 + .../operators/onErrorResumeNext.js.map | 1 + .../_esm2015/internal/operators/pairwise.js | 29 + .../internal/operators/pairwise.js.map | 1 + .../_esm2015/internal/operators/partition.js | 9 + .../internal/operators/partition.js.map | 1 + .../rxjs/_esm2015/internal/operators/pluck.js | 25 + .../_esm2015/internal/operators/pluck.js.map | 1 + .../_esm2015/internal/operators/publish.js | 8 + .../internal/operators/publish.js.map | 1 + .../internal/operators/publishBehavior.js | 6 + .../internal/operators/publishBehavior.js.map | 1 + .../internal/operators/publishLast.js | 6 + .../internal/operators/publishLast.js.map | 1 + .../internal/operators/publishReplay.js | 11 + .../internal/operators/publishReplay.js.map | 1 + .../rxjs/_esm2015/internal/operators/race.js | 11 + .../_esm2015/internal/operators/race.js.map | 1 + .../_esm2015/internal/operators/reduce.js | 15 + .../_esm2015/internal/operators/reduce.js.map | 1 + .../_esm2015/internal/operators/refCount.js | 52 + .../internal/operators/refCount.js.map | 1 + .../_esm2015/internal/operators/repeat.js | 44 + .../_esm2015/internal/operators/repeat.js.map | 1 + .../_esm2015/internal/operators/repeatWhen.js | 76 + .../internal/operators/repeatWhen.js.map | 1 + .../rxjs/_esm2015/internal/operators/retry.js | 33 + .../_esm2015/internal/operators/retry.js.map | 1 + .../_esm2015/internal/operators/retryWhen.js | 68 + .../internal/operators/retryWhen.js.map | 1 + .../_esm2015/internal/operators/sample.js | 38 + .../_esm2015/internal/operators/sample.js.map | 1 + .../_esm2015/internal/operators/sampleTime.js | 39 + .../internal/operators/sampleTime.js.map | 1 + .../rxjs/_esm2015/internal/operators/scan.js | 58 + .../_esm2015/internal/operators/scan.js.map | 1 + .../internal/operators/sequenceEqual.js | 99 + .../internal/operators/sequenceEqual.js.map | 1 + .../rxjs/_esm2015/internal/operators/share.js | 10 + .../_esm2015/internal/operators/share.js.map | 1 + .../internal/operators/shareReplay.js | 57 + .../internal/operators/shareReplay.js.map | 1 + .../_esm2015/internal/operators/single.js | 62 + .../_esm2015/internal/operators/single.js.map | 1 + .../rxjs/_esm2015/internal/operators/skip.js | 25 + .../_esm2015/internal/operators/skip.js.map | 1 + .../_esm2015/internal/operators/skipLast.js | 44 + .../internal/operators/skipLast.js.map | 1 + .../_esm2015/internal/operators/skipUntil.js | 40 + .../internal/operators/skipUntil.js.map | 1 + .../_esm2015/internal/operators/skipWhile.js | 39 + .../internal/operators/skipWhile.js.map | 1 + .../_esm2015/internal/operators/startWith.js | 13 + .../internal/operators/startWith.js.map | 1 + .../internal/operators/subscribeOn.js | 16 + .../internal/operators/subscribeOn.js.map | 1 + .../_esm2015/internal/operators/switchAll.js | 6 + .../internal/operators/switchAll.js.map | 1 + .../_esm2015/internal/operators/switchMap.js | 69 + .../internal/operators/switchMap.js.map | 1 + .../internal/operators/switchMapTo.js | 5 + .../internal/operators/switchMapTo.js.map | 1 + .../rxjs/_esm2015/internal/operators/take.js | 43 + .../_esm2015/internal/operators/take.js.map | 1 + .../_esm2015/internal/operators/takeLast.js | 58 + .../internal/operators/takeLast.js.map | 1 + .../_esm2015/internal/operators/takeUntil.js | 31 + .../internal/operators/takeUntil.js.map | 1 + .../_esm2015/internal/operators/takeWhile.js | 46 + .../internal/operators/takeWhile.js.map | 1 + .../rxjs/_esm2015/internal/operators/tap.js | 69 + .../_esm2015/internal/operators/tap.js.map | 1 + .../_esm2015/internal/operators/throttle.js | 81 + .../internal/operators/throttle.js.map | 1 + .../internal/operators/throttleTime.js | 73 + .../internal/operators/throttleTime.js.map | 1 + .../internal/operators/throwIfEmpty.js | 45 + .../internal/operators/throwIfEmpty.js.map | 1 + .../internal/operators/timeInterval.js | 16 + .../internal/operators/timeInterval.js.map | 1 + .../_esm2015/internal/operators/timeout.js | 8 + .../internal/operators/timeout.js.map | 1 + .../internal/operators/timeoutWith.js | 57 + .../internal/operators/timeoutWith.js.map | 1 + .../_esm2015/internal/operators/timestamp.js | 12 + .../internal/operators/timestamp.js.map | 1 + .../_esm2015/internal/operators/toArray.js | 12 + .../internal/operators/toArray.js.map | 1 + .../_esm2015/internal/operators/window.js | 60 + .../_esm2015/internal/operators/window.js.map | 1 + .../internal/operators/windowCount.js | 69 + .../internal/operators/windowCount.js.map | 1 + .../_esm2015/internal/operators/windowTime.js | 142 + .../internal/operators/windowTime.js.map | 1 + .../internal/operators/windowToggle.js | 123 + .../internal/operators/windowToggle.js.map | 1 + .../_esm2015/internal/operators/windowWhen.js | 75 + .../internal/operators/windowWhen.js.map | 1 + .../internal/operators/withLatestFrom.js | 73 + .../internal/operators/withLatestFrom.js.map | 1 + .../rxjs/_esm2015/internal/operators/zip.js | 7 + .../_esm2015/internal/operators/zip.js.map | 1 + .../_esm2015/internal/operators/zipAll.js | 5 + .../_esm2015/internal/operators/zipAll.js.map | 1 + .../internal/scheduled/scheduleArray.js | 20 + .../internal/scheduled/scheduleArray.js.map | 1 + .../internal/scheduled/scheduleIterable.js | 45 + .../scheduled/scheduleIterable.js.map | 1 + .../internal/scheduled/scheduleObservable.js | 18 + .../scheduled/scheduleObservable.js.map | 1 + .../internal/scheduled/schedulePromise.js | 17 + .../internal/scheduled/schedulePromise.js.map | 1 + .../_esm2015/internal/scheduled/scheduled.js | 26 + .../internal/scheduled/scheduled.js.map | 1 + .../_esm2015/internal/scheduler/Action.js | 10 + .../_esm2015/internal/scheduler/Action.js.map | 1 + .../scheduler/AnimationFrameAction.js | 26 + .../scheduler/AnimationFrameAction.js.map | 1 + .../scheduler/AnimationFrameScheduler.js | 25 + .../scheduler/AnimationFrameScheduler.js.map | 1 + .../_esm2015/internal/scheduler/AsapAction.js | 27 + .../internal/scheduler/AsapAction.js.map | 1 + .../internal/scheduler/AsapScheduler.js | 25 + .../internal/scheduler/AsapScheduler.js.map | 1 + .../internal/scheduler/AsyncAction.js | 80 + .../internal/scheduler/AsyncAction.js.map | 1 + .../internal/scheduler/AsyncScheduler.js | 46 + .../internal/scheduler/AsyncScheduler.js.map | 1 + .../internal/scheduler/QueueAction.js | 29 + .../internal/scheduler/QueueAction.js.map | 1 + .../internal/scheduler/QueueScheduler.js | 4 + .../internal/scheduler/QueueScheduler.js.map | 1 + .../scheduler/VirtualTimeScheduler.js | 82 + .../scheduler/VirtualTimeScheduler.js.map | 1 + .../internal/scheduler/animationFrame.js | 5 + .../internal/scheduler/animationFrame.js.map | 1 + .../rxjs/_esm2015/internal/scheduler/asap.js | 5 + .../_esm2015/internal/scheduler/asap.js.map | 1 + .../rxjs/_esm2015/internal/scheduler/async.js | 5 + .../_esm2015/internal/scheduler/async.js.map | 1 + .../rxjs/_esm2015/internal/scheduler/queue.js | 5 + .../_esm2015/internal/scheduler/queue.js.map | 1 + .../rxjs/_esm2015/internal/symbol/iterator.js | 9 + .../_esm2015/internal/symbol/iterator.js.map | 1 + .../_esm2015/internal/symbol/observable.js | 2 + .../internal/symbol/observable.js.map | 1 + .../_esm2015/internal/symbol/rxSubscriber.js | 5 + .../internal/symbol/rxSubscriber.js.map | 1 + .../internal/testing/ColdObservable.js | 30 + .../internal/testing/ColdObservable.js.map | 1 + .../internal/testing/HotObservable.js | 34 + .../internal/testing/HotObservable.js.map | 1 + .../internal/testing/SubscriptionLog.js | 7 + .../internal/testing/SubscriptionLog.js.map | 1 + .../internal/testing/SubscriptionLoggable.js | 16 + .../testing/SubscriptionLoggable.js.map | 1 + .../_esm2015/internal/testing/TestMessage.js | 1 + .../internal/testing/TestMessage.js.map | 1 + .../internal/testing/TestScheduler.js | 322 + .../internal/testing/TestScheduler.js.map | 1 + node_modules/rxjs/_esm2015/internal/types.js | 1 + .../rxjs/_esm2015/internal/types.js.map | 1 + .../internal/util/ArgumentOutOfRangeError.js | 12 + .../util/ArgumentOutOfRangeError.js.map | 1 + .../rxjs/_esm2015/internal/util/EmptyError.js | 12 + .../_esm2015/internal/util/EmptyError.js.map | 1 + .../rxjs/_esm2015/internal/util/Immediate.js | 27 + .../_esm2015/internal/util/Immediate.js.map | 1 + .../internal/util/ObjectUnsubscribedError.js | 12 + .../util/ObjectUnsubscribedError.js.map | 1 + .../_esm2015/internal/util/TimeoutError.js | 12 + .../internal/util/TimeoutError.js.map | 1 + .../internal/util/UnsubscriptionError.js | 15 + .../internal/util/UnsubscriptionError.js.map | 1 + .../_esm2015/internal/util/applyMixins.js | 11 + .../_esm2015/internal/util/applyMixins.js.map | 1 + .../_esm2015/internal/util/canReportError.js | 17 + .../internal/util/canReportError.js.map | 1 + .../_esm2015/internal/util/errorObject.js | 2 + .../_esm2015/internal/util/errorObject.js.map | 1 + .../_esm2015/internal/util/hostReportError.js | 4 + .../internal/util/hostReportError.js.map | 1 + .../rxjs/_esm2015/internal/util/identity.js | 4 + .../_esm2015/internal/util/identity.js.map | 1 + .../rxjs/_esm2015/internal/util/isArray.js | 2 + .../_esm2015/internal/util/isArray.js.map | 1 + .../_esm2015/internal/util/isArrayLike.js | 2 + .../_esm2015/internal/util/isArrayLike.js.map | 1 + .../rxjs/_esm2015/internal/util/isDate.js | 4 + .../rxjs/_esm2015/internal/util/isDate.js.map | 1 + .../rxjs/_esm2015/internal/util/isFunction.js | 4 + .../_esm2015/internal/util/isFunction.js.map | 1 + .../internal/util/isInteropObservable.js | 5 + .../internal/util/isInteropObservable.js.map | 1 + .../rxjs/_esm2015/internal/util/isIterable.js | 5 + .../_esm2015/internal/util/isIterable.js.map | 1 + .../rxjs/_esm2015/internal/util/isNumeric.js | 5 + .../_esm2015/internal/util/isNumeric.js.map | 1 + .../rxjs/_esm2015/internal/util/isObject.js | 4 + .../_esm2015/internal/util/isObject.js.map | 1 + .../_esm2015/internal/util/isObservable.js | 5 + .../internal/util/isObservable.js.map | 1 + .../rxjs/_esm2015/internal/util/isPromise.js | 4 + .../_esm2015/internal/util/isPromise.js.map | 1 + .../_esm2015/internal/util/isScheduler.js | 4 + .../_esm2015/internal/util/isScheduler.js.map | 1 + .../rxjs/_esm2015/internal/util/noop.js | 2 + .../rxjs/_esm2015/internal/util/noop.js.map | 1 + .../rxjs/_esm2015/internal/util/not.js | 9 + .../rxjs/_esm2015/internal/util/not.js.map | 1 + .../rxjs/_esm2015/internal/util/pipe.js | 16 + .../rxjs/_esm2015/internal/util/pipe.js.map | 1 + .../rxjs/_esm2015/internal/util/root.js | 12 + .../rxjs/_esm2015/internal/util/root.js.map | 1 + .../_esm2015/internal/util/subscribeTo.js | 30 + .../_esm2015/internal/util/subscribeTo.js.map | 1 + .../internal/util/subscribeToArray.js | 7 + .../internal/util/subscribeToArray.js.map | 1 + .../internal/util/subscribeToIterable.js | 31 + .../internal/util/subscribeToIterable.js.map | 1 + .../internal/util/subscribeToObservable.js | 11 + .../util/subscribeToObservable.js.map | 1 + .../internal/util/subscribeToPromise.js | 12 + .../internal/util/subscribeToPromise.js.map | 1 + .../internal/util/subscribeToResult.js | 13 + .../internal/util/subscribeToResult.js.map | 1 + .../_esm2015/internal/util/toSubscriber.js | 18 + .../internal/util/toSubscriber.js.map | 1 + .../rxjs/_esm2015/internal/util/tryCatch.js | 20 + .../_esm2015/internal/util/tryCatch.js.map | 1 + node_modules/rxjs/_esm2015/operators/index.js | 104 + .../rxjs/_esm2015/operators/index.js.map | 1 + node_modules/rxjs/_esm2015/path-mapping.js | 453 + node_modules/rxjs/_esm2015/testing/index.js | 2 + .../rxjs/_esm2015/testing/index.js.map | 1 + node_modules/rxjs/_esm2015/webSocket/index.js | 3 + .../rxjs/_esm2015/webSocket/index.js.map | 1 + node_modules/rxjs/_esm5/LICENSE.txt | 202 + node_modules/rxjs/_esm5/README.md | 147 + node_modules/rxjs/_esm5/ajax/index.js | 4 + node_modules/rxjs/_esm5/ajax/index.js.map | 1 + node_modules/rxjs/_esm5/fetch/index.js | 3 + node_modules/rxjs/_esm5/fetch/index.js.map | 1 + node_modules/rxjs/_esm5/index.js | 57 + node_modules/rxjs/_esm5/index.js.map | 1 + .../_esm5/internal-compatibility/index.js | 57 + .../_esm5/internal-compatibility/index.js.map | 1 + .../rxjs/_esm5/internal/AsyncSubject.js | 47 + .../rxjs/_esm5/internal/AsyncSubject.js.map | 1 + .../rxjs/_esm5/internal/BehaviorSubject.js | 43 + .../_esm5/internal/BehaviorSubject.js.map | 1 + .../rxjs/_esm5/internal/InnerSubscriber.js | 28 + .../_esm5/internal/InnerSubscriber.js.map | 1 + .../rxjs/_esm5/internal/Notification.js | 76 + .../rxjs/_esm5/internal/Notification.js.map | 1 + .../rxjs/_esm5/internal/Observable.js | 116 + .../rxjs/_esm5/internal/Observable.js.map | 1 + node_modules/rxjs/_esm5/internal/Observer.js | 17 + .../rxjs/_esm5/internal/Observer.js.map | 1 + node_modules/rxjs/_esm5/internal/Operator.js | 1 + .../rxjs/_esm5/internal/Operator.js.map | 1 + .../rxjs/_esm5/internal/OuterSubscriber.js | 21 + .../_esm5/internal/OuterSubscriber.js.map | 1 + .../rxjs/_esm5/internal/ReplaySubject.js | 121 + .../rxjs/_esm5/internal/ReplaySubject.js.map | 1 + node_modules/rxjs/_esm5/internal/Rx.js | 173 + node_modules/rxjs/_esm5/internal/Rx.js.map | 1 + node_modules/rxjs/_esm5/internal/Scheduler.js | 19 + .../rxjs/_esm5/internal/Scheduler.js.map | 1 + node_modules/rxjs/_esm5/internal/Subject.js | 158 + .../rxjs/_esm5/internal/Subject.js.map | 1 + .../_esm5/internal/SubjectSubscription.js | 32 + .../_esm5/internal/SubjectSubscription.js.map | 1 + .../rxjs/_esm5/internal/Subscriber.js | 233 + .../rxjs/_esm5/internal/Subscriber.js.map | 1 + .../rxjs/_esm5/internal/Subscription.js | 140 + .../rxjs/_esm5/internal/Subscription.js.map | 1 + node_modules/rxjs/_esm5/internal/config.js | 19 + .../rxjs/_esm5/internal/config.js.map | 1 + .../rxjs/_esm5/internal/innerSubscribe.js | 93 + .../rxjs/_esm5/internal/innerSubscribe.js.map | 1 + .../observable/ConnectableObservable.js | 142 + .../observable/ConnectableObservable.js.map | 1 + .../observable/SubscribeOnObservable.js | 51 + .../observable/SubscribeOnObservable.js.map | 1 + .../_esm5/internal/observable/bindCallback.js | 105 + .../internal/observable/bindCallback.js.map | 1 + .../internal/observable/bindNodeCallback.js | 113 + .../observable/bindNodeCallback.js.map | 1 + .../internal/observable/combineLatest.js | 101 + .../internal/observable/combineLatest.js.map | 1 + .../rxjs/_esm5/internal/observable/concat.js | 11 + .../_esm5/internal/observable/concat.js.map | 1 + .../rxjs/_esm5/internal/observable/defer.js | 19 + .../_esm5/internal/observable/defer.js.map | 1 + .../internal/observable/dom/AjaxObservable.js | 374 + .../observable/dom/AjaxObservable.js.map | 1 + .../observable/dom/WebSocketSubject.js | 217 + .../observable/dom/WebSocketSubject.js.map | 1 + .../_esm5/internal/observable/dom/ajax.js | 4 + .../_esm5/internal/observable/dom/ajax.js.map | 1 + .../_esm5/internal/observable/dom/fetch.js | 71 + .../internal/observable/dom/fetch.js.map | 1 + .../internal/observable/dom/webSocket.js | 6 + .../internal/observable/dom/webSocket.js.map | 1 + .../rxjs/_esm5/internal/observable/empty.js | 10 + .../_esm5/internal/observable/empty.js.map | 1 + .../_esm5/internal/observable/forkJoin.js | 69 + .../_esm5/internal/observable/forkJoin.js.map | 1 + .../rxjs/_esm5/internal/observable/from.js | 16 + .../_esm5/internal/observable/from.js.map | 1 + .../_esm5/internal/observable/fromArray.js | 13 + .../internal/observable/fromArray.js.map | 1 + .../_esm5/internal/observable/fromEvent.js | 63 + .../internal/observable/fromEvent.js.map | 1 + .../internal/observable/fromEventPattern.js | 32 + .../observable/fromEventPattern.js.map | 1 + .../_esm5/internal/observable/fromIterable.js | 16 + .../internal/observable/fromIterable.js.map | 1 + .../_esm5/internal/observable/fromPromise.js | 13 + .../internal/observable/fromPromise.js.map | 1 + .../_esm5/internal/observable/generate.js | 125 + .../_esm5/internal/observable/generate.js.map | 1 + .../rxjs/_esm5/internal/observable/iif.js | 13 + .../rxjs/_esm5/internal/observable/iif.js.map | 1 + .../_esm5/internal/observable/interval.js | 28 + .../_esm5/internal/observable/interval.js.map | 1 + .../rxjs/_esm5/internal/observable/merge.js | 28 + .../_esm5/internal/observable/merge.js.map | 1 + .../rxjs/_esm5/internal/observable/never.js | 8 + .../_esm5/internal/observable/never.js.map | 1 + .../rxjs/_esm5/internal/observable/of.js | 19 + .../rxjs/_esm5/internal/observable/of.js.map | 1 + .../internal/observable/onErrorResumeNext.js | 27 + .../observable/onErrorResumeNext.js.map | 1 + .../rxjs/_esm5/internal/observable/pairs.js | 39 + .../_esm5/internal/observable/pairs.js.map | 1 + .../_esm5/internal/observable/partition.js | 12 + .../internal/observable/partition.js.map | 1 + .../rxjs/_esm5/internal/observable/race.js | 78 + .../_esm5/internal/observable/race.js.map | 1 + .../rxjs/_esm5/internal/observable/range.js | 48 + .../_esm5/internal/observable/range.js.map | 1 + .../_esm5/internal/observable/throwError.js | 15 + .../internal/observable/throwError.js.map | 1 + .../rxjs/_esm5/internal/observable/timer.js | 41 + .../_esm5/internal/observable/timer.js.map | 1 + .../rxjs/_esm5/internal/observable/using.js | 33 + .../_esm5/internal/observable/using.js.map | 1 + .../rxjs/_esm5/internal/observable/zip.js | 217 + .../rxjs/_esm5/internal/observable/zip.js.map | 1 + .../rxjs/_esm5/internal/operators/audit.js | 68 + .../_esm5/internal/operators/audit.js.map | 1 + .../_esm5/internal/operators/auditTime.js | 11 + .../_esm5/internal/operators/auditTime.js.map | 1 + .../rxjs/_esm5/internal/operators/buffer.js | 36 + .../_esm5/internal/operators/buffer.js.map | 1 + .../_esm5/internal/operators/bufferCount.js | 90 + .../internal/operators/bufferCount.js.map | 1 + .../_esm5/internal/operators/bufferTime.js | 148 + .../internal/operators/bufferTime.js.map | 1 + .../_esm5/internal/operators/bufferToggle.js | 106 + .../internal/operators/bufferToggle.js.map | 1 + .../_esm5/internal/operators/bufferWhen.js | 81 + .../internal/operators/bufferWhen.js.map | 1 + .../_esm5/internal/operators/catchError.js | 49 + .../internal/operators/catchError.js.map | 1 + .../_esm5/internal/operators/combineAll.js | 6 + .../internal/operators/combineAll.js.map | 1 + .../_esm5/internal/operators/combineLatest.js | 20 + .../internal/operators/combineLatest.js.map | 1 + .../rxjs/_esm5/internal/operators/concat.js | 10 + .../_esm5/internal/operators/concat.js.map | 1 + .../_esm5/internal/operators/concatAll.js | 6 + .../_esm5/internal/operators/concatAll.js.map | 1 + .../_esm5/internal/operators/concatMap.js | 6 + .../_esm5/internal/operators/concatMap.js.map | 1 + .../_esm5/internal/operators/concatMapTo.js | 6 + .../internal/operators/concatMapTo.js.map | 1 + .../rxjs/_esm5/internal/operators/count.js | 54 + .../_esm5/internal/operators/count.js.map | 1 + .../rxjs/_esm5/internal/operators/debounce.js | 74 + .../_esm5/internal/operators/debounce.js.map | 1 + .../_esm5/internal/operators/debounceTime.js | 64 + .../internal/operators/debounceTime.js.map | 1 + .../internal/operators/defaultIfEmpty.js | 39 + .../internal/operators/defaultIfEmpty.js.map | 1 + .../rxjs/_esm5/internal/operators/delay.js | 93 + .../_esm5/internal/operators/delay.js.map | 1 + .../_esm5/internal/operators/delayWhen.js | 132 + .../_esm5/internal/operators/delayWhen.js.map | 1 + .../_esm5/internal/operators/dematerialize.js | 27 + .../internal/operators/dematerialize.js.map | 1 + .../rxjs/_esm5/internal/operators/distinct.js | 64 + .../_esm5/internal/operators/distinct.js.map | 1 + .../operators/distinctUntilChanged.js | 60 + .../operators/distinctUntilChanged.js.map | 1 + .../operators/distinctUntilKeyChanged.js | 6 + .../operators/distinctUntilKeyChanged.js.map | 1 + .../_esm5/internal/operators/elementAt.js | 18 + .../_esm5/internal/operators/elementAt.js.map | 1 + .../rxjs/_esm5/internal/operators/endWith.js | 11 + .../_esm5/internal/operators/endWith.js.map | 1 + .../rxjs/_esm5/internal/operators/every.js | 51 + .../_esm5/internal/operators/every.js.map | 1 + .../rxjs/_esm5/internal/operators/exhaust.js | 43 + .../_esm5/internal/operators/exhaust.js.map | 1 + .../_esm5/internal/operators/exhaustMap.js | 81 + .../internal/operators/exhaustMap.js.map | 1 + .../rxjs/_esm5/internal/operators/expand.js | 99 + .../_esm5/internal/operators/expand.js.map | 1 + .../rxjs/_esm5/internal/operators/filter.js | 43 + .../_esm5/internal/operators/filter.js.map | 1 + .../rxjs/_esm5/internal/operators/finalize.js | 26 + .../_esm5/internal/operators/finalize.js.map | 1 + .../rxjs/_esm5/internal/operators/find.js | 59 + .../rxjs/_esm5/internal/operators/find.js.map | 1 + .../_esm5/internal/operators/findIndex.js | 6 + .../_esm5/internal/operators/findIndex.js.map | 1 + .../rxjs/_esm5/internal/operators/first.js | 12 + .../_esm5/internal/operators/first.js.map | 1 + .../rxjs/_esm5/internal/operators/groupBy.js | 182 + .../_esm5/internal/operators/groupBy.js.map | 1 + .../internal/operators/ignoreElements.js | 26 + .../internal/operators/ignoreElements.js.map | 1 + .../rxjs/_esm5/internal/operators/index.js | 104 + .../_esm5/internal/operators/index.js.map | 1 + .../rxjs/_esm5/internal/operators/isEmpty.js | 33 + .../_esm5/internal/operators/isEmpty.js.map | 1 + .../rxjs/_esm5/internal/operators/last.js | 12 + .../rxjs/_esm5/internal/operators/last.js.map | 1 + .../rxjs/_esm5/internal/operators/map.js | 45 + .../rxjs/_esm5/internal/operators/map.js.map | 1 + .../rxjs/_esm5/internal/operators/mapTo.js | 28 + .../_esm5/internal/operators/mapTo.js.map | 1 + .../_esm5/internal/operators/materialize.js | 38 + .../internal/operators/materialize.js.map | 1 + .../rxjs/_esm5/internal/operators/max.js | 9 + .../rxjs/_esm5/internal/operators/max.js.map | 1 + .../rxjs/_esm5/internal/operators/merge.js | 10 + .../_esm5/internal/operators/merge.js.map | 1 + .../rxjs/_esm5/internal/operators/mergeAll.js | 10 + .../_esm5/internal/operators/mergeAll.js.map | 1 + .../rxjs/_esm5/internal/operators/mergeMap.js | 101 + .../_esm5/internal/operators/mergeMap.js.map | 1 + .../_esm5/internal/operators/mergeMapTo.js | 15 + .../internal/operators/mergeMapTo.js.map | 1 + .../_esm5/internal/operators/mergeScan.js | 96 + .../_esm5/internal/operators/mergeScan.js.map | 1 + .../rxjs/_esm5/internal/operators/min.js | 9 + .../rxjs/_esm5/internal/operators/min.js.map | 1 + .../_esm5/internal/operators/multicast.js | 38 + .../_esm5/internal/operators/multicast.js.map | 1 + .../_esm5/internal/operators/observeOn.js | 69 + .../_esm5/internal/operators/observeOn.js.map | 1 + .../internal/operators/onErrorResumeNext.js | 76 + .../operators/onErrorResumeNext.js.map | 1 + .../rxjs/_esm5/internal/operators/pairwise.js | 37 + .../_esm5/internal/operators/pairwise.js.map | 1 + .../_esm5/internal/operators/partition.js | 12 + .../_esm5/internal/operators/partition.js.map | 1 + .../rxjs/_esm5/internal/operators/pluck.js | 30 + .../_esm5/internal/operators/pluck.js.map | 1 + .../rxjs/_esm5/internal/operators/publish.js | 9 + .../_esm5/internal/operators/publish.js.map | 1 + .../internal/operators/publishBehavior.js | 7 + .../internal/operators/publishBehavior.js.map | 1 + .../_esm5/internal/operators/publishLast.js | 7 + .../internal/operators/publishLast.js.map | 1 + .../_esm5/internal/operators/publishReplay.js | 12 + .../internal/operators/publishReplay.js.map | 1 + .../rxjs/_esm5/internal/operators/race.js | 16 + .../rxjs/_esm5/internal/operators/race.js.map | 1 + .../rxjs/_esm5/internal/operators/reduce.js | 16 + .../_esm5/internal/operators/reduce.js.map | 1 + .../rxjs/_esm5/internal/operators/refCount.js | 58 + .../_esm5/internal/operators/refCount.js.map | 1 + .../rxjs/_esm5/internal/operators/repeat.js | 53 + .../_esm5/internal/operators/repeat.js.map | 1 + .../_esm5/internal/operators/repeatWhen.js | 82 + .../internal/operators/repeatWhen.js.map | 1 + .../rxjs/_esm5/internal/operators/retry.js | 42 + .../_esm5/internal/operators/retry.js.map | 1 + .../_esm5/internal/operators/retryWhen.js | 74 + .../_esm5/internal/operators/retryWhen.js.map | 1 + .../rxjs/_esm5/internal/operators/sample.js | 44 + .../_esm5/internal/operators/sample.js.map | 1 + .../_esm5/internal/operators/sampleTime.js | 48 + .../internal/operators/sampleTime.js.map | 1 + .../rxjs/_esm5/internal/operators/scan.js | 71 + .../rxjs/_esm5/internal/operators/scan.js.map | 1 + .../_esm5/internal/operators/sequenceEqual.js | 110 + .../internal/operators/sequenceEqual.js.map | 1 + .../rxjs/_esm5/internal/operators/share.js | 11 + .../_esm5/internal/operators/share.js.map | 1 + .../_esm5/internal/operators/shareReplay.js | 59 + .../internal/operators/shareReplay.js.map | 1 + .../rxjs/_esm5/internal/operators/single.js | 68 + .../_esm5/internal/operators/single.js.map | 1 + .../rxjs/_esm5/internal/operators/skip.js | 31 + .../rxjs/_esm5/internal/operators/skip.js.map | 1 + .../rxjs/_esm5/internal/operators/skipLast.js | 50 + .../_esm5/internal/operators/skipLast.js.map | 1 + .../_esm5/internal/operators/skipUntil.js | 46 + .../_esm5/internal/operators/skipUntil.js.map | 1 + .../_esm5/internal/operators/skipWhile.js | 45 + .../_esm5/internal/operators/skipWhile.js.map | 1 + .../_esm5/internal/operators/startWith.js | 18 + .../_esm5/internal/operators/startWith.js.map | 1 + .../_esm5/internal/operators/subscribeOn.js | 21 + .../internal/operators/subscribeOn.js.map | 1 + .../_esm5/internal/operators/switchAll.js | 7 + .../_esm5/internal/operators/switchAll.js.map | 1 + .../_esm5/internal/operators/switchMap.js | 75 + .../_esm5/internal/operators/switchMap.js.map | 1 + .../_esm5/internal/operators/switchMapTo.js | 6 + .../internal/operators/switchMapTo.js.map | 1 + .../rxjs/_esm5/internal/operators/take.js | 49 + .../rxjs/_esm5/internal/operators/take.js.map | 1 + .../rxjs/_esm5/internal/operators/takeLast.js | 64 + .../_esm5/internal/operators/takeLast.js.map | 1 + .../_esm5/internal/operators/takeUntil.js | 37 + .../_esm5/internal/operators/takeUntil.js.map | 1 + .../_esm5/internal/operators/takeWhile.js | 57 + .../_esm5/internal/operators/takeWhile.js.map | 1 + .../rxjs/_esm5/internal/operators/tap.js | 75 + .../rxjs/_esm5/internal/operators/tap.js.map | 1 + .../rxjs/_esm5/internal/operators/throttle.js | 90 + .../_esm5/internal/operators/throttle.js.map | 1 + .../_esm5/internal/operators/throttleTime.js | 85 + .../internal/operators/throttleTime.js.map | 1 + .../_esm5/internal/operators/throwIfEmpty.js | 54 + .../internal/operators/throwIfEmpty.js.map | 1 + .../_esm5/internal/operators/timeInterval.js | 30 + .../internal/operators/timeInterval.js.map | 1 + .../rxjs/_esm5/internal/operators/timeout.js | 12 + .../_esm5/internal/operators/timeout.js.map | 1 + .../_esm5/internal/operators/timeoutWith.js | 66 + .../internal/operators/timeoutWith.js.map | 1 + .../_esm5/internal/operators/timestamp.js | 18 + .../_esm5/internal/operators/timestamp.js.map | 1 + .../rxjs/_esm5/internal/operators/toArray.js | 13 + .../_esm5/internal/operators/toArray.js.map | 1 + .../rxjs/_esm5/internal/operators/window.js | 66 + .../_esm5/internal/operators/window.js.map | 1 + .../_esm5/internal/operators/windowCount.js | 78 + .../internal/operators/windowCount.js.map | 1 + .../_esm5/internal/operators/windowTime.js | 155 + .../internal/operators/windowTime.js.map | 1 + .../_esm5/internal/operators/windowToggle.js | 129 + .../internal/operators/windowToggle.js.map | 1 + .../_esm5/internal/operators/windowWhen.js | 84 + .../internal/operators/windowWhen.js.map | 1 + .../internal/operators/withLatestFrom.js | 83 + .../internal/operators/withLatestFrom.js.map | 1 + .../rxjs/_esm5/internal/operators/zip.js | 12 + .../rxjs/_esm5/internal/operators/zip.js.map | 1 + .../rxjs/_esm5/internal/operators/zipAll.js | 6 + .../_esm5/internal/operators/zipAll.js.map | 1 + .../_esm5/internal/scheduled/scheduleArray.js | 21 + .../internal/scheduled/scheduleArray.js.map | 1 + .../internal/scheduled/scheduleIterable.js | 46 + .../scheduled/scheduleIterable.js.map | 1 + .../internal/scheduled/scheduleObservable.js | 19 + .../scheduled/scheduleObservable.js.map | 1 + .../internal/scheduled/schedulePromise.js | 20 + .../internal/scheduled/schedulePromise.js.map | 1 + .../_esm5/internal/scheduled/scheduled.js | 27 + .../_esm5/internal/scheduled/scheduled.js.map | 1 + .../rxjs/_esm5/internal/scheduler/Action.js | 18 + .../_esm5/internal/scheduler/Action.js.map | 1 + .../scheduler/AnimationFrameAction.js | 38 + .../scheduler/AnimationFrameAction.js.map | 1 + .../scheduler/AnimationFrameScheduler.js | 33 + .../scheduler/AnimationFrameScheduler.js.map | 1 + .../_esm5/internal/scheduler/AsapAction.js | 39 + .../internal/scheduler/AsapAction.js.map | 1 + .../_esm5/internal/scheduler/AsapScheduler.js | 33 + .../internal/scheduler/AsapScheduler.js.map | 1 + .../_esm5/internal/scheduler/AsyncAction.js | 95 + .../internal/scheduler/AsyncAction.js.map | 1 + .../internal/scheduler/AsyncScheduler.js | 58 + .../internal/scheduler/AsyncScheduler.js.map | 1 + .../_esm5/internal/scheduler/QueueAction.js | 41 + .../internal/scheduler/QueueAction.js.map | 1 + .../internal/scheduler/QueueScheduler.js | 12 + .../internal/scheduler/QueueScheduler.js.map | 1 + .../scheduler/VirtualTimeScheduler.js | 110 + .../scheduler/VirtualTimeScheduler.js.map | 1 + .../internal/scheduler/animationFrame.js | 6 + .../internal/scheduler/animationFrame.js.map | 1 + .../rxjs/_esm5/internal/scheduler/asap.js | 6 + .../rxjs/_esm5/internal/scheduler/asap.js.map | 1 + .../rxjs/_esm5/internal/scheduler/async.js | 6 + .../_esm5/internal/scheduler/async.js.map | 1 + .../rxjs/_esm5/internal/scheduler/queue.js | 6 + .../_esm5/internal/scheduler/queue.js.map | 1 + .../rxjs/_esm5/internal/symbol/iterator.js | 10 + .../_esm5/internal/symbol/iterator.js.map | 1 + .../rxjs/_esm5/internal/symbol/observable.js | 3 + .../_esm5/internal/symbol/observable.js.map | 1 + .../_esm5/internal/symbol/rxSubscriber.js | 8 + .../_esm5/internal/symbol/rxSubscriber.js.map | 1 + .../_esm5/internal/testing/ColdObservable.js | 39 + .../internal/testing/ColdObservable.js.map | 1 + .../_esm5/internal/testing/HotObservable.js | 40 + .../internal/testing/HotObservable.js.map | 1 + .../_esm5/internal/testing/SubscriptionLog.js | 12 + .../internal/testing/SubscriptionLog.js.map | 1 + .../internal/testing/SubscriptionLoggable.js | 19 + .../testing/SubscriptionLoggable.js.map | 1 + .../_esm5/internal/testing/TestMessage.js | 1 + .../_esm5/internal/testing/TestMessage.js.map | 1 + .../_esm5/internal/testing/TestScheduler.js | 359 + .../internal/testing/TestScheduler.js.map | 1 + node_modules/rxjs/_esm5/internal/types.js | 1 + node_modules/rxjs/_esm5/internal/types.js.map | 1 + .../internal/util/ArgumentOutOfRangeError.js | 13 + .../util/ArgumentOutOfRangeError.js.map | 1 + .../rxjs/_esm5/internal/util/EmptyError.js | 13 + .../_esm5/internal/util/EmptyError.js.map | 1 + .../rxjs/_esm5/internal/util/Immediate.js | 28 + .../rxjs/_esm5/internal/util/Immediate.js.map | 1 + .../internal/util/ObjectUnsubscribedError.js | 13 + .../util/ObjectUnsubscribedError.js.map | 1 + .../rxjs/_esm5/internal/util/TimeoutError.js | 13 + .../_esm5/internal/util/TimeoutError.js.map | 1 + .../internal/util/UnsubscriptionError.js | 15 + .../internal/util/UnsubscriptionError.js.map | 1 + .../rxjs/_esm5/internal/util/applyMixins.js | 12 + .../_esm5/internal/util/applyMixins.js.map | 1 + .../_esm5/internal/util/canReportError.js | 18 + .../_esm5/internal/util/canReportError.js.map | 1 + .../rxjs/_esm5/internal/util/errorObject.js | 3 + .../_esm5/internal/util/errorObject.js.map | 1 + .../_esm5/internal/util/hostReportError.js | 5 + .../internal/util/hostReportError.js.map | 1 + .../rxjs/_esm5/internal/util/identity.js | 5 + .../rxjs/_esm5/internal/util/identity.js.map | 1 + .../rxjs/_esm5/internal/util/isArray.js | 3 + .../rxjs/_esm5/internal/util/isArray.js.map | 1 + .../rxjs/_esm5/internal/util/isArrayLike.js | 3 + .../_esm5/internal/util/isArrayLike.js.map | 1 + .../rxjs/_esm5/internal/util/isDate.js | 5 + .../rxjs/_esm5/internal/util/isDate.js.map | 1 + .../rxjs/_esm5/internal/util/isFunction.js | 5 + .../_esm5/internal/util/isFunction.js.map | 1 + .../internal/util/isInteropObservable.js | 6 + .../internal/util/isInteropObservable.js.map | 1 + .../rxjs/_esm5/internal/util/isIterable.js | 6 + .../_esm5/internal/util/isIterable.js.map | 1 + .../rxjs/_esm5/internal/util/isNumeric.js | 6 + .../rxjs/_esm5/internal/util/isNumeric.js.map | 1 + .../rxjs/_esm5/internal/util/isObject.js | 5 + .../rxjs/_esm5/internal/util/isObject.js.map | 1 + .../rxjs/_esm5/internal/util/isObservable.js | 6 + .../_esm5/internal/util/isObservable.js.map | 1 + .../rxjs/_esm5/internal/util/isPromise.js | 5 + .../rxjs/_esm5/internal/util/isPromise.js.map | 1 + .../rxjs/_esm5/internal/util/isScheduler.js | 5 + .../_esm5/internal/util/isScheduler.js.map | 1 + node_modules/rxjs/_esm5/internal/util/noop.js | 3 + .../rxjs/_esm5/internal/util/noop.js.map | 1 + node_modules/rxjs/_esm5/internal/util/not.js | 10 + .../rxjs/_esm5/internal/util/not.js.map | 1 + node_modules/rxjs/_esm5/internal/util/pipe.js | 21 + .../rxjs/_esm5/internal/util/pipe.js.map | 1 + node_modules/rxjs/_esm5/internal/util/root.js | 13 + .../rxjs/_esm5/internal/util/root.js.map | 1 + .../rxjs/_esm5/internal/util/subscribeTo.js | 31 + .../_esm5/internal/util/subscribeTo.js.map | 1 + .../_esm5/internal/util/subscribeToArray.js | 10 + .../internal/util/subscribeToArray.js.map | 1 + .../internal/util/subscribeToIterable.js | 34 + .../internal/util/subscribeToIterable.js.map | 1 + .../internal/util/subscribeToObservable.js | 14 + .../util/subscribeToObservable.js.map | 1 + .../_esm5/internal/util/subscribeToPromise.js | 15 + .../internal/util/subscribeToPromise.js.map | 1 + .../_esm5/internal/util/subscribeToResult.js | 17 + .../internal/util/subscribeToResult.js.map | 1 + .../rxjs/_esm5/internal/util/toSubscriber.js | 19 + .../_esm5/internal/util/toSubscriber.js.map | 1 + .../rxjs/_esm5/internal/util/tryCatch.js | 21 + .../rxjs/_esm5/internal/util/tryCatch.js.map | 1 + node_modules/rxjs/_esm5/operators/index.js | 105 + .../rxjs/_esm5/operators/index.js.map | 1 + node_modules/rxjs/_esm5/path-mapping.js | 453 + node_modules/rxjs/_esm5/testing/index.js | 3 + node_modules/rxjs/_esm5/testing/index.js.map | 1 + node_modules/rxjs/_esm5/webSocket/index.js | 4 + .../rxjs/_esm5/webSocket/index.js.map | 1 + .../rxjs/add/observable/bindCallback.d.ts | 1 + .../rxjs/add/observable/bindCallback.js | 4 + .../rxjs/add/observable/bindCallback.js.map | 1 + .../rxjs/add/observable/bindNodeCallback.d.ts | 1 + .../rxjs/add/observable/bindNodeCallback.js | 4 + .../add/observable/bindNodeCallback.js.map | 1 + .../rxjs/add/observable/combineLatest.d.ts | 1 + .../rxjs/add/observable/combineLatest.js | 4 + .../rxjs/add/observable/combineLatest.js.map | 1 + node_modules/rxjs/add/observable/concat.d.ts | 1 + node_modules/rxjs/add/observable/concat.js | 4 + .../rxjs/add/observable/concat.js.map | 1 + node_modules/rxjs/add/observable/defer.d.ts | 1 + node_modules/rxjs/add/observable/defer.js | 4 + node_modules/rxjs/add/observable/defer.js.map | 1 + .../rxjs/add/observable/dom/ajax.d.ts | 1 + node_modules/rxjs/add/observable/dom/ajax.js | 4 + .../rxjs/add/observable/dom/ajax.js.map | 1 + .../rxjs/add/observable/dom/webSocket.d.ts | 1 + .../rxjs/add/observable/dom/webSocket.js | 4 + .../rxjs/add/observable/dom/webSocket.js.map | 1 + node_modules/rxjs/add/observable/empty.d.ts | 1 + node_modules/rxjs/add/observable/empty.js | 4 + node_modules/rxjs/add/observable/empty.js.map | 1 + .../rxjs/add/observable/forkJoin.d.ts | 1 + node_modules/rxjs/add/observable/forkJoin.js | 4 + .../rxjs/add/observable/forkJoin.js.map | 1 + node_modules/rxjs/add/observable/from.d.ts | 1 + node_modules/rxjs/add/observable/from.js | 4 + node_modules/rxjs/add/observable/from.js.map | 1 + .../rxjs/add/observable/fromEvent.d.ts | 1 + node_modules/rxjs/add/observable/fromEvent.js | 4 + .../rxjs/add/observable/fromEvent.js.map | 1 + .../rxjs/add/observable/fromEventPattern.d.ts | 1 + .../rxjs/add/observable/fromEventPattern.js | 4 + .../add/observable/fromEventPattern.js.map | 1 + .../rxjs/add/observable/fromPromise.d.ts | 1 + .../rxjs/add/observable/fromPromise.js | 4 + .../rxjs/add/observable/fromPromise.js.map | 1 + .../rxjs/add/observable/generate.d.ts | 1 + node_modules/rxjs/add/observable/generate.js | 4 + .../rxjs/add/observable/generate.js.map | 1 + node_modules/rxjs/add/observable/if.d.ts | 1 + node_modules/rxjs/add/observable/if.js | 4 + node_modules/rxjs/add/observable/if.js.map | 1 + .../rxjs/add/observable/interval.d.ts | 1 + node_modules/rxjs/add/observable/interval.js | 4 + .../rxjs/add/observable/interval.js.map | 1 + node_modules/rxjs/add/observable/merge.d.ts | 1 + node_modules/rxjs/add/observable/merge.js | 4 + node_modules/rxjs/add/observable/merge.js.map | 1 + node_modules/rxjs/add/observable/never.d.ts | 1 + node_modules/rxjs/add/observable/never.js | 4 + node_modules/rxjs/add/observable/never.js.map | 1 + node_modules/rxjs/add/observable/of.d.ts | 1 + node_modules/rxjs/add/observable/of.js | 4 + node_modules/rxjs/add/observable/of.js.map | 1 + .../add/observable/onErrorResumeNext.d.ts | 1 + .../rxjs/add/observable/onErrorResumeNext.js | 4 + .../add/observable/onErrorResumeNext.js.map | 1 + node_modules/rxjs/add/observable/pairs.d.ts | 1 + node_modules/rxjs/add/observable/pairs.js | 4 + node_modules/rxjs/add/observable/pairs.js.map | 1 + node_modules/rxjs/add/observable/race.d.ts | 1 + node_modules/rxjs/add/observable/race.js | 4 + node_modules/rxjs/add/observable/race.js.map | 1 + node_modules/rxjs/add/observable/range.d.ts | 1 + node_modules/rxjs/add/observable/range.js | 4 + node_modules/rxjs/add/observable/range.js.map | 1 + node_modules/rxjs/add/observable/throw.d.ts | 1 + node_modules/rxjs/add/observable/throw.js | 4 + node_modules/rxjs/add/observable/throw.js.map | 1 + node_modules/rxjs/add/observable/timer.d.ts | 1 + node_modules/rxjs/add/observable/timer.js | 4 + node_modules/rxjs/add/observable/timer.js.map | 1 + node_modules/rxjs/add/observable/using.d.ts | 1 + node_modules/rxjs/add/observable/using.js | 4 + node_modules/rxjs/add/observable/using.js.map | 1 + node_modules/rxjs/add/observable/zip.d.ts | 1 + node_modules/rxjs/add/observable/zip.js | 4 + node_modules/rxjs/add/observable/zip.js.map | 1 + node_modules/rxjs/add/operator/audit.d.ts | 1 + node_modules/rxjs/add/operator/audit.js | 4 + node_modules/rxjs/add/operator/audit.js.map | 1 + node_modules/rxjs/add/operator/auditTime.d.ts | 1 + node_modules/rxjs/add/operator/auditTime.js | 4 + .../rxjs/add/operator/auditTime.js.map | 1 + node_modules/rxjs/add/operator/buffer.d.ts | 1 + node_modules/rxjs/add/operator/buffer.js | 4 + node_modules/rxjs/add/operator/buffer.js.map | 1 + .../rxjs/add/operator/bufferCount.d.ts | 1 + node_modules/rxjs/add/operator/bufferCount.js | 4 + .../rxjs/add/operator/bufferCount.js.map | 1 + .../rxjs/add/operator/bufferTime.d.ts | 1 + node_modules/rxjs/add/operator/bufferTime.js | 4 + .../rxjs/add/operator/bufferTime.js.map | 1 + .../rxjs/add/operator/bufferToggle.d.ts | 1 + .../rxjs/add/operator/bufferToggle.js | 4 + .../rxjs/add/operator/bufferToggle.js.map | 1 + .../rxjs/add/operator/bufferWhen.d.ts | 1 + node_modules/rxjs/add/operator/bufferWhen.js | 4 + .../rxjs/add/operator/bufferWhen.js.map | 1 + node_modules/rxjs/add/operator/catch.d.ts | 1 + node_modules/rxjs/add/operator/catch.js | 4 + node_modules/rxjs/add/operator/catch.js.map | 1 + .../rxjs/add/operator/combineAll.d.ts | 1 + node_modules/rxjs/add/operator/combineAll.js | 4 + .../rxjs/add/operator/combineAll.js.map | 1 + .../rxjs/add/operator/combineLatest.d.ts | 1 + .../rxjs/add/operator/combineLatest.js | 4 + .../rxjs/add/operator/combineLatest.js.map | 1 + node_modules/rxjs/add/operator/concat.d.ts | 1 + node_modules/rxjs/add/operator/concat.js | 4 + node_modules/rxjs/add/operator/concat.js.map | 1 + node_modules/rxjs/add/operator/concatAll.d.ts | 1 + node_modules/rxjs/add/operator/concatAll.js | 4 + .../rxjs/add/operator/concatAll.js.map | 1 + node_modules/rxjs/add/operator/concatMap.d.ts | 1 + node_modules/rxjs/add/operator/concatMap.js | 4 + .../rxjs/add/operator/concatMap.js.map | 1 + .../rxjs/add/operator/concatMapTo.d.ts | 1 + node_modules/rxjs/add/operator/concatMapTo.js | 4 + .../rxjs/add/operator/concatMapTo.js.map | 1 + node_modules/rxjs/add/operator/count.d.ts | 1 + node_modules/rxjs/add/operator/count.js | 4 + node_modules/rxjs/add/operator/count.js.map | 1 + node_modules/rxjs/add/operator/debounce.d.ts | 1 + node_modules/rxjs/add/operator/debounce.js | 4 + .../rxjs/add/operator/debounce.js.map | 1 + .../rxjs/add/operator/debounceTime.d.ts | 1 + .../rxjs/add/operator/debounceTime.js | 4 + .../rxjs/add/operator/debounceTime.js.map | 1 + .../rxjs/add/operator/defaultIfEmpty.d.ts | 1 + .../rxjs/add/operator/defaultIfEmpty.js | 4 + .../rxjs/add/operator/defaultIfEmpty.js.map | 1 + node_modules/rxjs/add/operator/delay.d.ts | 1 + node_modules/rxjs/add/operator/delay.js | 4 + node_modules/rxjs/add/operator/delay.js.map | 1 + node_modules/rxjs/add/operator/delayWhen.d.ts | 1 + node_modules/rxjs/add/operator/delayWhen.js | 4 + .../rxjs/add/operator/delayWhen.js.map | 1 + .../rxjs/add/operator/dematerialize.d.ts | 1 + .../rxjs/add/operator/dematerialize.js | 4 + .../rxjs/add/operator/dematerialize.js.map | 1 + node_modules/rxjs/add/operator/distinct.d.ts | 1 + node_modules/rxjs/add/operator/distinct.js | 4 + .../rxjs/add/operator/distinct.js.map | 1 + .../add/operator/distinctUntilChanged.d.ts | 1 + .../rxjs/add/operator/distinctUntilChanged.js | 4 + .../add/operator/distinctUntilChanged.js.map | 1 + .../add/operator/distinctUntilKeyChanged.d.ts | 1 + .../add/operator/distinctUntilKeyChanged.js | 4 + .../operator/distinctUntilKeyChanged.js.map | 1 + node_modules/rxjs/add/operator/do.d.ts | 1 + node_modules/rxjs/add/operator/do.js | 4 + node_modules/rxjs/add/operator/do.js.map | 1 + node_modules/rxjs/add/operator/elementAt.d.ts | 1 + node_modules/rxjs/add/operator/elementAt.js | 4 + .../rxjs/add/operator/elementAt.js.map | 1 + node_modules/rxjs/add/operator/every.d.ts | 1 + node_modules/rxjs/add/operator/every.js | 4 + node_modules/rxjs/add/operator/every.js.map | 1 + node_modules/rxjs/add/operator/exhaust.d.ts | 1 + node_modules/rxjs/add/operator/exhaust.js | 4 + node_modules/rxjs/add/operator/exhaust.js.map | 1 + .../rxjs/add/operator/exhaustMap.d.ts | 1 + node_modules/rxjs/add/operator/exhaustMap.js | 4 + .../rxjs/add/operator/exhaustMap.js.map | 1 + node_modules/rxjs/add/operator/expand.d.ts | 1 + node_modules/rxjs/add/operator/expand.js | 4 + node_modules/rxjs/add/operator/expand.js.map | 1 + node_modules/rxjs/add/operator/filter.d.ts | 1 + node_modules/rxjs/add/operator/filter.js | 4 + node_modules/rxjs/add/operator/filter.js.map | 1 + node_modules/rxjs/add/operator/finally.d.ts | 1 + node_modules/rxjs/add/operator/finally.js | 4 + node_modules/rxjs/add/operator/finally.js.map | 1 + node_modules/rxjs/add/operator/find.d.ts | 1 + node_modules/rxjs/add/operator/find.js | 4 + node_modules/rxjs/add/operator/find.js.map | 1 + node_modules/rxjs/add/operator/findIndex.d.ts | 1 + node_modules/rxjs/add/operator/findIndex.js | 4 + .../rxjs/add/operator/findIndex.js.map | 1 + node_modules/rxjs/add/operator/first.d.ts | 1 + node_modules/rxjs/add/operator/first.js | 4 + node_modules/rxjs/add/operator/first.js.map | 1 + node_modules/rxjs/add/operator/groupBy.d.ts | 1 + node_modules/rxjs/add/operator/groupBy.js | 4 + node_modules/rxjs/add/operator/groupBy.js.map | 1 + .../rxjs/add/operator/ignoreElements.d.ts | 1 + .../rxjs/add/operator/ignoreElements.js | 4 + .../rxjs/add/operator/ignoreElements.js.map | 1 + node_modules/rxjs/add/operator/isEmpty.d.ts | 1 + node_modules/rxjs/add/operator/isEmpty.js | 4 + node_modules/rxjs/add/operator/isEmpty.js.map | 1 + node_modules/rxjs/add/operator/last.d.ts | 1 + node_modules/rxjs/add/operator/last.js | 4 + node_modules/rxjs/add/operator/last.js.map | 1 + node_modules/rxjs/add/operator/let.d.ts | 1 + node_modules/rxjs/add/operator/let.js | 4 + node_modules/rxjs/add/operator/let.js.map | 1 + node_modules/rxjs/add/operator/map.d.ts | 1 + node_modules/rxjs/add/operator/map.js | 4 + node_modules/rxjs/add/operator/map.js.map | 1 + node_modules/rxjs/add/operator/mapTo.d.ts | 1 + node_modules/rxjs/add/operator/mapTo.js | 4 + node_modules/rxjs/add/operator/mapTo.js.map | 1 + .../rxjs/add/operator/materialize.d.ts | 1 + node_modules/rxjs/add/operator/materialize.js | 4 + .../rxjs/add/operator/materialize.js.map | 1 + node_modules/rxjs/add/operator/max.d.ts | 1 + node_modules/rxjs/add/operator/max.js | 4 + node_modules/rxjs/add/operator/max.js.map | 1 + node_modules/rxjs/add/operator/merge.d.ts | 1 + node_modules/rxjs/add/operator/merge.js | 4 + node_modules/rxjs/add/operator/merge.js.map | 1 + node_modules/rxjs/add/operator/mergeAll.d.ts | 1 + node_modules/rxjs/add/operator/mergeAll.js | 4 + .../rxjs/add/operator/mergeAll.js.map | 1 + node_modules/rxjs/add/operator/mergeMap.d.ts | 1 + node_modules/rxjs/add/operator/mergeMap.js | 4 + .../rxjs/add/operator/mergeMap.js.map | 1 + .../rxjs/add/operator/mergeMapTo.d.ts | 1 + node_modules/rxjs/add/operator/mergeMapTo.js | 4 + .../rxjs/add/operator/mergeMapTo.js.map | 1 + node_modules/rxjs/add/operator/mergeScan.d.ts | 1 + node_modules/rxjs/add/operator/mergeScan.js | 4 + .../rxjs/add/operator/mergeScan.js.map | 1 + node_modules/rxjs/add/operator/min.d.ts | 1 + node_modules/rxjs/add/operator/min.js | 4 + node_modules/rxjs/add/operator/min.js.map | 1 + node_modules/rxjs/add/operator/multicast.d.ts | 1 + node_modules/rxjs/add/operator/multicast.js | 4 + .../rxjs/add/operator/multicast.js.map | 1 + node_modules/rxjs/add/operator/observeOn.d.ts | 1 + node_modules/rxjs/add/operator/observeOn.js | 4 + .../rxjs/add/operator/observeOn.js.map | 1 + .../rxjs/add/operator/onErrorResumeNext.d.ts | 1 + .../rxjs/add/operator/onErrorResumeNext.js | 4 + .../add/operator/onErrorResumeNext.js.map | 1 + node_modules/rxjs/add/operator/pairwise.d.ts | 1 + node_modules/rxjs/add/operator/pairwise.js | 4 + .../rxjs/add/operator/pairwise.js.map | 1 + node_modules/rxjs/add/operator/partition.d.ts | 1 + node_modules/rxjs/add/operator/partition.js | 4 + .../rxjs/add/operator/partition.js.map | 1 + node_modules/rxjs/add/operator/pluck.d.ts | 1 + node_modules/rxjs/add/operator/pluck.js | 4 + node_modules/rxjs/add/operator/pluck.js.map | 1 + node_modules/rxjs/add/operator/publish.d.ts | 1 + node_modules/rxjs/add/operator/publish.js | 4 + node_modules/rxjs/add/operator/publish.js.map | 1 + .../rxjs/add/operator/publishBehavior.d.ts | 1 + .../rxjs/add/operator/publishBehavior.js | 4 + .../rxjs/add/operator/publishBehavior.js.map | 1 + .../rxjs/add/operator/publishLast.d.ts | 1 + node_modules/rxjs/add/operator/publishLast.js | 4 + .../rxjs/add/operator/publishLast.js.map | 1 + .../rxjs/add/operator/publishReplay.d.ts | 1 + .../rxjs/add/operator/publishReplay.js | 4 + .../rxjs/add/operator/publishReplay.js.map | 1 + node_modules/rxjs/add/operator/race.d.ts | 1 + node_modules/rxjs/add/operator/race.js | 4 + node_modules/rxjs/add/operator/race.js.map | 1 + node_modules/rxjs/add/operator/reduce.d.ts | 1 + node_modules/rxjs/add/operator/reduce.js | 4 + node_modules/rxjs/add/operator/reduce.js.map | 1 + node_modules/rxjs/add/operator/repeat.d.ts | 1 + node_modules/rxjs/add/operator/repeat.js | 4 + node_modules/rxjs/add/operator/repeat.js.map | 1 + .../rxjs/add/operator/repeatWhen.d.ts | 1 + node_modules/rxjs/add/operator/repeatWhen.js | 4 + .../rxjs/add/operator/repeatWhen.js.map | 1 + node_modules/rxjs/add/operator/retry.d.ts | 1 + node_modules/rxjs/add/operator/retry.js | 4 + node_modules/rxjs/add/operator/retry.js.map | 1 + node_modules/rxjs/add/operator/retryWhen.d.ts | 1 + node_modules/rxjs/add/operator/retryWhen.js | 4 + .../rxjs/add/operator/retryWhen.js.map | 1 + node_modules/rxjs/add/operator/sample.d.ts | 1 + node_modules/rxjs/add/operator/sample.js | 4 + node_modules/rxjs/add/operator/sample.js.map | 1 + .../rxjs/add/operator/sampleTime.d.ts | 1 + node_modules/rxjs/add/operator/sampleTime.js | 4 + .../rxjs/add/operator/sampleTime.js.map | 1 + node_modules/rxjs/add/operator/scan.d.ts | 1 + node_modules/rxjs/add/operator/scan.js | 4 + node_modules/rxjs/add/operator/scan.js.map | 1 + .../rxjs/add/operator/sequenceEqual.d.ts | 1 + .../rxjs/add/operator/sequenceEqual.js | 4 + .../rxjs/add/operator/sequenceEqual.js.map | 1 + node_modules/rxjs/add/operator/share.d.ts | 1 + node_modules/rxjs/add/operator/share.js | 4 + node_modules/rxjs/add/operator/share.js.map | 1 + .../rxjs/add/operator/shareReplay.d.ts | 1 + node_modules/rxjs/add/operator/shareReplay.js | 4 + .../rxjs/add/operator/shareReplay.js.map | 1 + node_modules/rxjs/add/operator/single.d.ts | 1 + node_modules/rxjs/add/operator/single.js | 4 + node_modules/rxjs/add/operator/single.js.map | 1 + node_modules/rxjs/add/operator/skip.d.ts | 1 + node_modules/rxjs/add/operator/skip.js | 4 + node_modules/rxjs/add/operator/skip.js.map | 1 + node_modules/rxjs/add/operator/skipLast.d.ts | 1 + node_modules/rxjs/add/operator/skipLast.js | 4 + .../rxjs/add/operator/skipLast.js.map | 1 + node_modules/rxjs/add/operator/skipUntil.d.ts | 1 + node_modules/rxjs/add/operator/skipUntil.js | 4 + .../rxjs/add/operator/skipUntil.js.map | 1 + node_modules/rxjs/add/operator/skipWhile.d.ts | 1 + node_modules/rxjs/add/operator/skipWhile.js | 4 + .../rxjs/add/operator/skipWhile.js.map | 1 + node_modules/rxjs/add/operator/startWith.d.ts | 1 + node_modules/rxjs/add/operator/startWith.js | 4 + .../rxjs/add/operator/startWith.js.map | 1 + .../rxjs/add/operator/subscribeOn.d.ts | 1 + node_modules/rxjs/add/operator/subscribeOn.js | 4 + .../rxjs/add/operator/subscribeOn.js.map | 1 + node_modules/rxjs/add/operator/switch.d.ts | 1 + node_modules/rxjs/add/operator/switch.js | 4 + node_modules/rxjs/add/operator/switch.js.map | 1 + node_modules/rxjs/add/operator/switchMap.d.ts | 1 + node_modules/rxjs/add/operator/switchMap.js | 4 + .../rxjs/add/operator/switchMap.js.map | 1 + .../rxjs/add/operator/switchMapTo.d.ts | 1 + node_modules/rxjs/add/operator/switchMapTo.js | 4 + .../rxjs/add/operator/switchMapTo.js.map | 1 + node_modules/rxjs/add/operator/take.d.ts | 1 + node_modules/rxjs/add/operator/take.js | 4 + node_modules/rxjs/add/operator/take.js.map | 1 + node_modules/rxjs/add/operator/takeLast.d.ts | 1 + node_modules/rxjs/add/operator/takeLast.js | 4 + .../rxjs/add/operator/takeLast.js.map | 1 + node_modules/rxjs/add/operator/takeUntil.d.ts | 1 + node_modules/rxjs/add/operator/takeUntil.js | 4 + .../rxjs/add/operator/takeUntil.js.map | 1 + node_modules/rxjs/add/operator/takeWhile.d.ts | 1 + node_modules/rxjs/add/operator/takeWhile.js | 4 + .../rxjs/add/operator/takeWhile.js.map | 1 + node_modules/rxjs/add/operator/throttle.d.ts | 1 + node_modules/rxjs/add/operator/throttle.js | 4 + .../rxjs/add/operator/throttle.js.map | 1 + .../rxjs/add/operator/throttleTime.d.ts | 1 + .../rxjs/add/operator/throttleTime.js | 4 + .../rxjs/add/operator/throttleTime.js.map | 1 + .../rxjs/add/operator/timeInterval.d.ts | 1 + .../rxjs/add/operator/timeInterval.js | 4 + .../rxjs/add/operator/timeInterval.js.map | 1 + node_modules/rxjs/add/operator/timeout.d.ts | 1 + node_modules/rxjs/add/operator/timeout.js | 4 + node_modules/rxjs/add/operator/timeout.js.map | 1 + .../rxjs/add/operator/timeoutWith.d.ts | 1 + node_modules/rxjs/add/operator/timeoutWith.js | 4 + .../rxjs/add/operator/timeoutWith.js.map | 1 + node_modules/rxjs/add/operator/timestamp.d.ts | 1 + node_modules/rxjs/add/operator/timestamp.js | 4 + .../rxjs/add/operator/timestamp.js.map | 1 + node_modules/rxjs/add/operator/toArray.d.ts | 1 + node_modules/rxjs/add/operator/toArray.js | 4 + node_modules/rxjs/add/operator/toArray.js.map | 1 + node_modules/rxjs/add/operator/toPromise.d.ts | 1 + node_modules/rxjs/add/operator/toPromise.js | 4 + .../rxjs/add/operator/toPromise.js.map | 1 + node_modules/rxjs/add/operator/window.d.ts | 1 + node_modules/rxjs/add/operator/window.js | 4 + node_modules/rxjs/add/operator/window.js.map | 1 + .../rxjs/add/operator/windowCount.d.ts | 1 + node_modules/rxjs/add/operator/windowCount.js | 4 + .../rxjs/add/operator/windowCount.js.map | 1 + .../rxjs/add/operator/windowTime.d.ts | 1 + node_modules/rxjs/add/operator/windowTime.js | 4 + .../rxjs/add/operator/windowTime.js.map | 1 + .../rxjs/add/operator/windowToggle.d.ts | 1 + .../rxjs/add/operator/windowToggle.js | 4 + .../rxjs/add/operator/windowToggle.js.map | 1 + .../rxjs/add/operator/windowWhen.d.ts | 1 + node_modules/rxjs/add/operator/windowWhen.js | 4 + .../rxjs/add/operator/windowWhen.js.map | 1 + .../rxjs/add/operator/withLatestFrom.d.ts | 1 + .../rxjs/add/operator/withLatestFrom.js | 4 + .../rxjs/add/operator/withLatestFrom.js.map | 1 + node_modules/rxjs/add/operator/zip.d.ts | 1 + node_modules/rxjs/add/operator/zip.js | 4 + node_modules/rxjs/add/operator/zip.js.map | 1 + node_modules/rxjs/add/operator/zipAll.d.ts | 1 + node_modules/rxjs/add/operator/zipAll.js | 4 + node_modules/rxjs/add/operator/zipAll.js.map | 1 + node_modules/rxjs/ajax/index.d.ts | 2 + node_modules/rxjs/ajax/index.js | 9 + node_modules/rxjs/ajax/index.js.map | 1 + node_modules/rxjs/ajax/package.json | 8 + node_modules/rxjs/bundles/rxjs.umd.js | 9420 ++++++++ node_modules/rxjs/bundles/rxjs.umd.js.map | 1 + node_modules/rxjs/bundles/rxjs.umd.min.js | 272 + node_modules/rxjs/bundles/rxjs.umd.min.js.map | 1 + node_modules/rxjs/fetch/index.d.ts | 1 + node_modules/rxjs/fetch/index.js | 5 + node_modules/rxjs/fetch/index.js.map | 1 + node_modules/rxjs/fetch/package.json | 8 + node_modules/rxjs/index.d.ts | 57 + node_modules/rxjs/index.js | 119 + node_modules/rxjs/index.js.map | 1 + node_modules/rxjs/interfaces.d.ts | 1 + node_modules/rxjs/interfaces.js | 3 + node_modules/rxjs/interfaces.js.map | 1 + .../rxjs/internal-compatibility/index.d.ts | 58 + .../rxjs/internal-compatibility/index.js | 123 + .../rxjs/internal-compatibility/index.js.map | 1 + .../rxjs/internal-compatibility/package.json | 8 + node_modules/rxjs/internal/AsyncSubject.d.ts | 19 + node_modules/rxjs/internal/AsyncSubject.js | 60 + .../rxjs/internal/AsyncSubject.js.map | 1 + .../rxjs/internal/BehaviorSubject.d.ts | 18 + node_modules/rxjs/internal/BehaviorSubject.js | 56 + .../rxjs/internal/BehaviorSubject.js.map | 1 + .../rxjs/internal/InnerSubscriber.d.ts | 17 + node_modules/rxjs/internal/InnerSubscriber.js | 41 + .../rxjs/internal/InnerSubscriber.js.map | 1 + node_modules/rxjs/internal/Notification.d.ts | 88 + node_modules/rxjs/internal/Notification.js | 77 + .../rxjs/internal/Notification.js.map | 1 + node_modules/rxjs/internal/Observable.d.ts | 91 + node_modules/rxjs/internal/Observable.js | 117 + node_modules/rxjs/internal/Observable.js.map | 1 + node_modules/rxjs/internal/Observer.d.ts | 2 + node_modules/rxjs/internal/Observer.js | 18 + node_modules/rxjs/internal/Observer.js.map | 1 + node_modules/rxjs/internal/Operator.d.ts | 5 + node_modules/rxjs/internal/Operator.js | 3 + node_modules/rxjs/internal/Operator.js.map | 1 + .../rxjs/internal/OuterSubscriber.d.ts | 12 + node_modules/rxjs/internal/OuterSubscriber.js | 34 + .../rxjs/internal/OuterSubscriber.js.map | 1 + node_modules/rxjs/internal/ReplaySubject.d.ts | 25 + node_modules/rxjs/internal/ReplaySubject.js | 130 + .../rxjs/internal/ReplaySubject.js.map | 1 + node_modules/rxjs/internal/Rx.d.ts | 195 + node_modules/rxjs/internal/Rx.js | 200 + node_modules/rxjs/internal/Rx.js.map | 1 + node_modules/rxjs/internal/Scheduler.d.ts | 59 + node_modules/rxjs/internal/Scheduler.js | 17 + node_modules/rxjs/internal/Scheduler.js.map | 1 + node_modules/rxjs/internal/Subject.d.ts | 61 + node_modules/rxjs/internal/Subject.js | 171 + node_modules/rxjs/internal/Subject.js.map | 1 + .../rxjs/internal/SubjectSubscription.d.ts | 15 + .../rxjs/internal/SubjectSubscription.js | 45 + .../rxjs/internal/SubjectSubscription.js.map | 1 + node_modules/rxjs/internal/Subscriber.d.ts | 87 + node_modules/rxjs/internal/Subscriber.js | 246 + node_modules/rxjs/internal/Subscriber.js.map | 1 + node_modules/rxjs/internal/Subscription.d.ts | 66 + node_modules/rxjs/internal/Subscription.js | 141 + .../rxjs/internal/Subscription.js.map | 1 + node_modules/rxjs/internal/config.d.ts | 20 + node_modules/rxjs/internal/config.js | 20 + node_modules/rxjs/internal/config.js.map | 1 + .../rxjs/internal/innerSubscribe.d.ts | 61 + node_modules/rxjs/internal/innerSubscribe.js | 107 + .../rxjs/internal/innerSubscribe.js.map | 1 + .../observable/ConnectableObservable.d.ts | 23 + .../observable/ConnectableObservable.js | 155 + .../observable/ConnectableObservable.js.map | 1 + .../observable/SubscribeOnObservable.d.ts | 25 + .../observable/SubscribeOnObservable.js | 56 + .../observable/SubscribeOnObservable.js.map | 1 + .../internal/observable/bindCallback.d.ts | 37 + .../rxjs/internal/observable/bindCallback.js | 107 + .../internal/observable/bindCallback.js.map | 1 + .../internal/observable/bindNodeCallback.d.ts | 35 + .../internal/observable/bindNodeCallback.js | 115 + .../observable/bindNodeCallback.js.map | 1 + .../internal/observable/combineLatest.d.ts | 99 + .../rxjs/internal/observable/combineLatest.js | 115 + .../internal/observable/combineLatest.js.map | 1 + .../rxjs/internal/observable/concat.d.ts | 26 + .../rxjs/internal/observable/concat.js | 13 + .../rxjs/internal/observable/concat.js.map | 1 + .../rxjs/internal/observable/defer.d.ts | 52 + .../rxjs/internal/observable/defer.js | 21 + .../rxjs/internal/observable/defer.js.map | 1 + .../observable/dom/AjaxObservable.d.ts | 151 + .../internal/observable/dom/AjaxObservable.js | 391 + .../observable/dom/AjaxObservable.js.map | 1 + .../observable/dom/WebSocketSubject.d.ts | 170 + .../observable/dom/WebSocketSubject.js | 241 + .../observable/dom/WebSocketSubject.js.map | 1 + .../rxjs/internal/observable/dom/ajax.d.ts | 82 + .../rxjs/internal/observable/dom/ajax.js | 5 + .../rxjs/internal/observable/dom/ajax.js.map | 1 + .../rxjs/internal/observable/dom/fetch.d.ts | 6 + .../rxjs/internal/observable/dom/fetch.js | 90 + .../rxjs/internal/observable/dom/fetch.js.map | 1 + .../internal/observable/dom/webSocket.d.ts | 153 + .../rxjs/internal/observable/dom/webSocket.js | 8 + .../internal/observable/dom/webSocket.js.map | 1 + .../rxjs/internal/observable/empty.d.ts | 60 + .../rxjs/internal/observable/empty.js | 12 + .../rxjs/internal/observable/empty.js.map | 1 + .../rxjs/internal/observable/forkJoin.d.ts | 29 + .../rxjs/internal/observable/forkJoin.js | 71 + .../rxjs/internal/observable/forkJoin.js.map | 1 + .../rxjs/internal/observable/from.d.ts | 5 + node_modules/rxjs/internal/observable/from.js | 18 + .../rxjs/internal/observable/from.js.map | 1 + .../rxjs/internal/observable/fromArray.d.ts | 3 + .../rxjs/internal/observable/fromArray.js | 15 + .../rxjs/internal/observable/fromArray.js.map | 1 + .../rxjs/internal/observable/fromEvent.d.ts | 35 + .../rxjs/internal/observable/fromEvent.js | 65 + .../rxjs/internal/observable/fromEvent.js.map | 1 + .../internal/observable/fromEventPattern.d.ts | 5 + .../internal/observable/fromEventPattern.js | 34 + .../observable/fromEventPattern.js.map | 1 + .../internal/observable/fromIterable.d.ts | 3 + .../rxjs/internal/observable/fromIterable.js | 18 + .../internal/observable/fromIterable.js.map | 1 + .../rxjs/internal/observable/fromPromise.d.ts | 3 + .../rxjs/internal/observable/fromPromise.js | 15 + .../internal/observable/fromPromise.js.map | 1 + .../rxjs/internal/observable/generate.d.ts | 231 + .../rxjs/internal/observable/generate.js | 127 + .../rxjs/internal/observable/generate.js.map | 1 + .../rxjs/internal/observable/iif.d.ts | 91 + node_modules/rxjs/internal/observable/iif.js | 11 + .../rxjs/internal/observable/iif.js.map | 1 + .../rxjs/internal/observable/interval.d.ts | 51 + .../rxjs/internal/observable/interval.js | 26 + .../rxjs/internal/observable/interval.js.map | 1 + .../rxjs/internal/observable/merge.d.ts | 44 + .../rxjs/internal/observable/merge.js | 30 + .../rxjs/internal/observable/merge.js.map | 1 + .../rxjs/internal/observable/never.d.ts | 36 + .../rxjs/internal/observable/never.js | 10 + .../rxjs/internal/observable/never.js.map | 1 + node_modules/rxjs/internal/observable/of.d.ts | 31 + node_modules/rxjs/internal/observable/of.js | 21 + .../rxjs/internal/observable/of.js.map | 1 + .../observable/onErrorResumeNext.d.ts | 9 + .../internal/observable/onErrorResumeNext.js | 29 + .../observable/onErrorResumeNext.js.map | 1 + .../rxjs/internal/observable/pairs.d.ts | 61 + .../rxjs/internal/observable/pairs.js | 42 + .../rxjs/internal/observable/pairs.js.map | 1 + .../rxjs/internal/observable/partition.d.ts | 54 + .../rxjs/internal/observable/partition.js | 14 + .../rxjs/internal/observable/partition.js.map | 1 + .../rxjs/internal/observable/race.d.ts | 38 + node_modules/rxjs/internal/observable/race.js | 92 + .../rxjs/internal/observable/race.js.map | 1 + .../rxjs/internal/observable/range.d.ts | 39 + .../rxjs/internal/observable/range.js | 49 + .../rxjs/internal/observable/range.js.map | 1 + .../rxjs/internal/observable/throwError.d.ts | 67 + .../rxjs/internal/observable/throwError.js | 17 + .../internal/observable/throwError.js.map | 1 + .../rxjs/internal/observable/timer.d.ts | 53 + .../rxjs/internal/observable/timer.js | 41 + .../rxjs/internal/observable/timer.js.map | 1 + .../rxjs/internal/observable/using.d.ts | 31 + .../rxjs/internal/observable/using.js | 35 + .../rxjs/internal/observable/using.js.map | 1 + .../rxjs/internal/observable/zip.d.ts | 51 + node_modules/rxjs/internal/observable/zip.js | 229 + .../rxjs/internal/observable/zip.js.map | 1 + .../rxjs/internal/operators/audit.d.ts | 48 + node_modules/rxjs/internal/operators/audit.js | 82 + .../rxjs/internal/operators/audit.js.map | 1 + .../rxjs/internal/operators/auditTime.d.ts | 51 + .../rxjs/internal/operators/auditTime.js | 11 + .../rxjs/internal/operators/auditTime.js.map | 1 + .../rxjs/internal/operators/buffer.d.ts | 43 + .../rxjs/internal/operators/buffer.js | 50 + .../rxjs/internal/operators/buffer.js.map | 1 + .../rxjs/internal/operators/bufferCount.d.ts | 57 + .../rxjs/internal/operators/bufferCount.js | 102 + .../internal/operators/bufferCount.js.map | 1 + .../rxjs/internal/operators/bufferTime.d.ts | 4 + .../rxjs/internal/operators/bufferTime.js | 162 + .../rxjs/internal/operators/bufferTime.js.map | 1 + .../rxjs/internal/operators/bufferToggle.d.ts | 48 + .../rxjs/internal/operators/bufferToggle.js | 120 + .../internal/operators/bufferToggle.js.map | 1 + .../rxjs/internal/operators/bufferWhen.d.ts | 45 + .../rxjs/internal/operators/bufferWhen.js | 95 + .../rxjs/internal/operators/bufferWhen.js.map | 1 + .../rxjs/internal/operators/catchError.d.ts | 3 + .../rxjs/internal/operators/catchError.js | 63 + .../rxjs/internal/operators/catchError.js.map | 1 + .../rxjs/internal/operators/combineAll.d.ts | 5 + .../rxjs/internal/operators/combineAll.js | 8 + .../rxjs/internal/operators/combineAll.js.map | 1 + .../internal/operators/combineLatest.d.ts | 29 + .../rxjs/internal/operators/combineLatest.js | 22 + .../internal/operators/combineLatest.js.map | 1 + .../rxjs/internal/operators/concat.d.ts | 17 + .../rxjs/internal/operators/concat.js | 12 + .../rxjs/internal/operators/concat.js.map | 1 + .../rxjs/internal/operators/concatAll.d.ts | 3 + .../rxjs/internal/operators/concatAll.js | 8 + .../rxjs/internal/operators/concatAll.js.map | 1 + .../rxjs/internal/operators/concatMap.d.ts | 6 + .../rxjs/internal/operators/concatMap.js | 8 + .../rxjs/internal/operators/concatMap.js.map | 1 + .../rxjs/internal/operators/concatMapTo.d.ts | 6 + .../rxjs/internal/operators/concatMapTo.js | 8 + .../internal/operators/concatMapTo.js.map | 1 + .../rxjs/internal/operators/count.d.ts | 62 + node_modules/rxjs/internal/operators/count.js | 68 + .../rxjs/internal/operators/count.js.map | 1 + .../rxjs/internal/operators/debounce.d.ts | 50 + .../rxjs/internal/operators/debounce.js | 88 + .../rxjs/internal/operators/debounce.js.map | 1 + .../rxjs/internal/operators/debounceTime.d.ts | 54 + .../rxjs/internal/operators/debounceTime.js | 76 + .../internal/operators/debounceTime.js.map | 1 + .../internal/operators/defaultIfEmpty.d.ts | 3 + .../rxjs/internal/operators/defaultIfEmpty.js | 51 + .../internal/operators/defaultIfEmpty.js.map | 1 + .../rxjs/internal/operators/delay.d.ts | 52 + node_modules/rxjs/internal/operators/delay.js | 105 + .../rxjs/internal/operators/delay.js.map | 1 + .../rxjs/internal/operators/delayWhen.d.ts | 5 + .../rxjs/internal/operators/delayWhen.js | 146 + .../rxjs/internal/operators/delayWhen.js.map | 1 + .../internal/operators/dematerialize.d.ts | 49 + .../rxjs/internal/operators/dematerialize.js | 41 + .../internal/operators/dematerialize.js.map | 1 + .../rxjs/internal/operators/distinct.d.ts | 78 + .../rxjs/internal/operators/distinct.js | 78 + .../rxjs/internal/operators/distinct.js.map | 1 + .../operators/distinctUntilChanged.d.ts | 3 + .../operators/distinctUntilChanged.js | 74 + .../operators/distinctUntilChanged.js.map | 1 + .../operators/distinctUntilKeyChanged.d.ts | 3 + .../operators/distinctUntilKeyChanged.js | 8 + .../operators/distinctUntilKeyChanged.js.map | 1 + .../rxjs/internal/operators/elementAt.d.ts | 50 + .../rxjs/internal/operators/elementAt.js | 18 + .../rxjs/internal/operators/elementAt.js.map | 1 + .../rxjs/internal/operators/endWith.d.ts | 24 + .../rxjs/internal/operators/endWith.js | 13 + .../rxjs/internal/operators/endWith.js.map | 1 + .../rxjs/internal/operators/every.d.ts | 24 + node_modules/rxjs/internal/operators/every.js | 65 + .../rxjs/internal/operators/every.js.map | 1 + .../rxjs/internal/operators/exhaust.d.ts | 3 + .../rxjs/internal/operators/exhaust.js | 57 + .../rxjs/internal/operators/exhaust.js.map | 1 + .../rxjs/internal/operators/exhaustMap.d.ts | 6 + .../rxjs/internal/operators/exhaustMap.js | 95 + .../rxjs/internal/operators/exhaustMap.js.map | 1 + .../rxjs/internal/operators/expand.d.ts | 34 + .../rxjs/internal/operators/expand.js | 111 + .../rxjs/internal/operators/expand.js.map | 1 + .../rxjs/internal/operators/filter.d.ts | 3 + .../rxjs/internal/operators/filter.js | 57 + .../rxjs/internal/operators/filter.js.map | 1 + .../rxjs/internal/operators/finalize.d.ts | 10 + .../rxjs/internal/operators/finalize.js | 40 + .../rxjs/internal/operators/finalize.js.map | 1 + .../rxjs/internal/operators/find.d.ts | 30 + node_modules/rxjs/internal/operators/find.js | 73 + .../rxjs/internal/operators/find.js.map | 1 + .../rxjs/internal/operators/findIndex.d.ts | 43 + .../rxjs/internal/operators/findIndex.js | 8 + .../rxjs/internal/operators/findIndex.js.map | 1 + .../rxjs/internal/operators/first.d.ts | 5 + node_modules/rxjs/internal/operators/first.js | 14 + .../rxjs/internal/operators/first.js.map | 1 + .../rxjs/internal/operators/groupBy.d.ts | 32 + .../rxjs/internal/operators/groupBy.js | 196 + .../rxjs/internal/operators/groupBy.js.map | 1 + .../internal/operators/ignoreElements.d.ts | 29 + .../rxjs/internal/operators/ignoreElements.js | 40 + .../internal/operators/ignoreElements.js.map | 1 + .../rxjs/internal/operators/index.d.ts | 102 + node_modules/rxjs/internal/operators/index.js | 207 + .../rxjs/internal/operators/index.js.map | 1 + .../rxjs/internal/operators/isEmpty.d.ts | 61 + .../rxjs/internal/operators/isEmpty.js | 47 + .../rxjs/internal/operators/isEmpty.js.map | 1 + .../rxjs/internal/operators/last.d.ts | 5 + node_modules/rxjs/internal/operators/last.js | 14 + .../rxjs/internal/operators/last.js.map | 1 + node_modules/rxjs/internal/operators/map.d.ts | 49 + node_modules/rxjs/internal/operators/map.js | 59 + .../rxjs/internal/operators/map.js.map | 1 + .../rxjs/internal/operators/mapTo.d.ts | 34 + node_modules/rxjs/internal/operators/mapTo.js | 42 + .../rxjs/internal/operators/mapTo.js.map | 1 + .../rxjs/internal/operators/materialize.d.ts | 53 + .../rxjs/internal/operators/materialize.js | 52 + .../internal/operators/materialize.js.map | 1 + node_modules/rxjs/internal/operators/max.d.ts | 47 + node_modules/rxjs/internal/operators/max.js | 11 + .../rxjs/internal/operators/max.js.map | 1 + .../rxjs/internal/operators/merge.d.ts | 29 + node_modules/rxjs/internal/operators/merge.js | 12 + .../rxjs/internal/operators/merge.js.map | 1 + .../rxjs/internal/operators/mergeAll.d.ts | 60 + .../rxjs/internal/operators/mergeAll.js | 10 + .../rxjs/internal/operators/mergeAll.js.map | 1 + .../rxjs/internal/operators/mergeMap.d.ts | 39 + .../rxjs/internal/operators/mergeMap.js | 109 + .../rxjs/internal/operators/mergeMap.js.map | 1 + .../rxjs/internal/operators/mergeMapTo.d.ts | 5 + .../rxjs/internal/operators/mergeMapTo.js | 15 + .../rxjs/internal/operators/mergeMapTo.js.map | 1 + .../rxjs/internal/operators/mergeScan.d.ts | 72 + .../rxjs/internal/operators/mergeScan.js | 108 + .../rxjs/internal/operators/mergeScan.js.map | 1 + node_modules/rxjs/internal/operators/min.d.ts | 46 + node_modules/rxjs/internal/operators/min.js | 11 + .../rxjs/internal/operators/min.js.map | 1 + .../rxjs/internal/operators/multicast.d.ts | 16 + .../rxjs/internal/operators/multicast.js | 40 + .../rxjs/internal/operators/multicast.js.map | 1 + .../rxjs/internal/operators/observeOn.d.ts | 84 + .../rxjs/internal/operators/observeOn.js | 77 + .../rxjs/internal/operators/observeOn.js.map | 1 + .../internal/operators/onErrorResumeNext.d.ts | 18 + .../internal/operators/onErrorResumeNext.js | 91 + .../operators/onErrorResumeNext.js.map | 1 + .../rxjs/internal/operators/pairwise.d.ts | 45 + .../rxjs/internal/operators/pairwise.js | 51 + .../rxjs/internal/operators/pairwise.js.map | 1 + .../rxjs/internal/operators/partition.d.ts | 51 + .../rxjs/internal/operators/partition.js | 12 + .../rxjs/internal/operators/partition.js.map | 1 + .../rxjs/internal/operators/pluck.d.ts | 8 + node_modules/rxjs/internal/operators/pluck.js | 32 + .../rxjs/internal/operators/pluck.js.map | 1 + .../rxjs/internal/operators/publish.d.ts | 6 + .../rxjs/internal/operators/publish.js | 11 + .../rxjs/internal/operators/publish.js.map | 1 + .../internal/operators/publishBehavior.d.ts | 10 + .../internal/operators/publishBehavior.js | 9 + .../internal/operators/publishBehavior.js.map | 1 + .../rxjs/internal/operators/publishLast.d.ts | 61 + .../rxjs/internal/operators/publishLast.js | 9 + .../internal/operators/publishLast.js.map | 1 + .../internal/operators/publishReplay.d.ts | 4 + .../rxjs/internal/operators/publishReplay.js | 14 + .../internal/operators/publishReplay.js.map | 1 + .../rxjs/internal/operators/race.d.ts | 10 + node_modules/rxjs/internal/operators/race.js | 18 + .../rxjs/internal/operators/race.js.map | 1 + .../rxjs/internal/operators/reduce.d.ts | 4 + .../rxjs/internal/operators/reduce.js | 18 + .../rxjs/internal/operators/reduce.js.map | 1 + .../rxjs/internal/operators/refCount.d.ts | 55 + .../rxjs/internal/operators/refCount.js | 72 + .../rxjs/internal/operators/refCount.js.map | 1 + .../rxjs/internal/operators/repeat.d.ts | 58 + .../rxjs/internal/operators/repeat.js | 65 + .../rxjs/internal/operators/repeat.js.map | 1 + .../rxjs/internal/operators/repeatWhen.d.ts | 33 + .../rxjs/internal/operators/repeatWhen.js | 96 + .../rxjs/internal/operators/repeatWhen.js.map | 1 + .../rxjs/internal/operators/retry.d.ts | 48 + node_modules/rxjs/internal/operators/retry.js | 54 + .../rxjs/internal/operators/retry.js.map | 1 + .../rxjs/internal/operators/retryWhen.d.ts | 17 + .../rxjs/internal/operators/retryWhen.js | 88 + .../rxjs/internal/operators/retryWhen.js.map | 1 + .../rxjs/internal/operators/sample.d.ts | 43 + .../rxjs/internal/operators/sample.js | 58 + .../rxjs/internal/operators/sample.js.map | 1 + .../rxjs/internal/operators/sampleTime.d.ts | 44 + .../rxjs/internal/operators/sampleTime.js | 60 + .../rxjs/internal/operators/sampleTime.js.map | 1 + .../rxjs/internal/operators/scan.d.ts | 4 + node_modules/rxjs/internal/operators/scan.js | 83 + .../rxjs/internal/operators/scan.js.map | 1 + .../internal/operators/sequenceEqual.d.ts | 87 + .../rxjs/internal/operators/sequenceEqual.js | 124 + .../internal/operators/sequenceEqual.js.map | 1 + .../rxjs/internal/operators/share.d.ts | 14 + node_modules/rxjs/internal/operators/share.js | 13 + .../rxjs/internal/operators/share.js.map | 1 + .../rxjs/internal/operators/shareReplay.d.ts | 54 + .../rxjs/internal/operators/shareReplay.js | 61 + .../internal/operators/shareReplay.js.map | 1 + .../rxjs/internal/operators/single.d.ts | 49 + .../rxjs/internal/operators/single.js | 82 + .../rxjs/internal/operators/single.js.map | 1 + .../rxjs/internal/operators/skip.d.ts | 13 + node_modules/rxjs/internal/operators/skip.js | 45 + .../rxjs/internal/operators/skip.js.map | 1 + .../rxjs/internal/operators/skipLast.d.ts | 40 + .../rxjs/internal/operators/skipLast.js | 64 + .../rxjs/internal/operators/skipLast.js.map | 1 + .../rxjs/internal/operators/skipUntil.d.ts | 42 + .../rxjs/internal/operators/skipUntil.js | 60 + .../rxjs/internal/operators/skipUntil.js.map | 1 + .../rxjs/internal/operators/skipWhile.d.ts | 14 + .../rxjs/internal/operators/skipWhile.js | 59 + .../rxjs/internal/operators/skipWhile.js.map | 1 + .../rxjs/internal/operators/startWith.d.ts | 24 + .../rxjs/internal/operators/startWith.js | 20 + .../rxjs/internal/operators/startWith.js.map | 1 + .../rxjs/internal/operators/subscribeOn.d.ts | 44 + .../rxjs/internal/operators/subscribeOn.js | 21 + .../internal/operators/subscribeOn.js.map | 1 + .../rxjs/internal/operators/switchAll.d.ts | 3 + .../rxjs/internal/operators/switchAll.js | 9 + .../rxjs/internal/operators/switchAll.js.map | 1 + .../rxjs/internal/operators/switchMap.d.ts | 6 + .../rxjs/internal/operators/switchMap.js | 89 + .../rxjs/internal/operators/switchMap.js.map | 1 + .../rxjs/internal/operators/switchMapTo.d.ts | 6 + .../rxjs/internal/operators/switchMapTo.js | 8 + .../internal/operators/switchMapTo.js.map | 1 + .../rxjs/internal/operators/take.d.ts | 48 + node_modules/rxjs/internal/operators/take.js | 63 + .../rxjs/internal/operators/take.js.map | 1 + .../rxjs/internal/operators/takeLast.d.ts | 44 + .../rxjs/internal/operators/takeLast.js | 78 + .../rxjs/internal/operators/takeLast.js.map | 1 + .../rxjs/internal/operators/takeUntil.d.ts | 43 + .../rxjs/internal/operators/takeUntil.js | 51 + .../rxjs/internal/operators/takeUntil.js.map | 1 + .../rxjs/internal/operators/takeWhile.d.ts | 4 + .../rxjs/internal/operators/takeWhile.js | 69 + .../rxjs/internal/operators/takeWhile.js.map | 1 + node_modules/rxjs/internal/operators/tap.d.ts | 9 + node_modules/rxjs/internal/operators/tap.js | 89 + .../rxjs/internal/operators/tap.js.map | 1 + .../rxjs/internal/operators/throttle.d.ts | 53 + .../rxjs/internal/operators/throttle.js | 102 + .../rxjs/internal/operators/throttle.js.map | 1 + .../rxjs/internal/operators/throttleTime.d.ts | 82 + .../rxjs/internal/operators/throttleTime.js | 95 + .../internal/operators/throttleTime.js.map | 1 + .../rxjs/internal/operators/throwIfEmpty.d.ts | 32 + .../rxjs/internal/operators/throwIfEmpty.js | 66 + .../internal/operators/throwIfEmpty.js.map | 1 + .../rxjs/internal/operators/timeInterval.d.ts | 55 + .../rxjs/internal/operators/timeInterval.js | 28 + .../internal/operators/timeInterval.js.map | 1 + .../rxjs/internal/operators/timeout.d.ts | 80 + .../rxjs/internal/operators/timeout.js | 12 + .../rxjs/internal/operators/timeout.js.map | 1 + .../rxjs/internal/operators/timeoutWith.d.ts | 2 + .../rxjs/internal/operators/timeoutWith.js | 78 + .../internal/operators/timeoutWith.js.map | 1 + .../rxjs/internal/operators/timestamp.d.ts | 41 + .../rxjs/internal/operators/timestamp.js | 18 + .../rxjs/internal/operators/timestamp.js.map | 1 + .../rxjs/internal/operators/toArray.d.ts | 33 + .../rxjs/internal/operators/toArray.js | 15 + .../rxjs/internal/operators/toArray.js.map | 1 + .../rxjs/internal/operators/window.d.ts | 46 + .../rxjs/internal/operators/window.js | 80 + .../rxjs/internal/operators/window.js.map | 1 + .../rxjs/internal/operators/windowCount.d.ts | 66 + .../rxjs/internal/operators/windowCount.js | 90 + .../internal/operators/windowCount.js.map | 1 + .../rxjs/internal/operators/windowTime.d.ts | 87 + .../rxjs/internal/operators/windowTime.js | 169 + .../rxjs/internal/operators/windowTime.js.map | 1 + .../rxjs/internal/operators/windowToggle.d.ts | 51 + .../rxjs/internal/operators/windowToggle.js | 143 + .../internal/operators/windowToggle.js.map | 1 + .../rxjs/internal/operators/windowWhen.d.ts | 48 + .../rxjs/internal/operators/windowWhen.js | 96 + .../rxjs/internal/operators/windowWhen.js.map | 1 + .../internal/operators/withLatestFrom.d.ts | 15 + .../rxjs/internal/operators/withLatestFrom.js | 97 + .../internal/operators/withLatestFrom.js.map | 1 + node_modules/rxjs/internal/operators/zip.d.ts | 29 + node_modules/rxjs/internal/operators/zip.js | 14 + .../rxjs/internal/operators/zip.js.map | 1 + .../rxjs/internal/operators/zipAll.d.ts | 5 + .../rxjs/internal/operators/zipAll.js | 8 + .../rxjs/internal/operators/zipAll.js.map | 1 + .../internal/scheduled/scheduleArray.d.ts | 3 + .../rxjs/internal/scheduled/scheduleArray.js | 23 + .../internal/scheduled/scheduleArray.js.map | 1 + .../internal/scheduled/scheduleIterable.d.ts | 3 + .../internal/scheduled/scheduleIterable.js | 48 + .../scheduled/scheduleIterable.js.map | 1 + .../scheduled/scheduleObservable.d.ts | 3 + .../internal/scheduled/scheduleObservable.js | 21 + .../scheduled/scheduleObservable.js.map | 1 + .../internal/scheduled/schedulePromise.d.ts | 3 + .../internal/scheduled/schedulePromise.js | 20 + .../internal/scheduled/schedulePromise.js.map | 1 + .../rxjs/internal/scheduled/scheduled.d.ts | 13 + .../rxjs/internal/scheduled/scheduled.js | 29 + .../rxjs/internal/scheduled/scheduled.js.map | 1 + .../rxjs/internal/scheduler/Action.d.ts | 31 + .../rxjs/internal/scheduler/Action.js | 29 + .../rxjs/internal/scheduler/Action.js.map | 1 + .../scheduler/AnimationFrameAction.d.ts | 15 + .../scheduler/AnimationFrameAction.js | 47 + .../scheduler/AnimationFrameAction.js.map | 1 + .../scheduler/AnimationFrameScheduler.d.ts | 5 + .../scheduler/AnimationFrameScheduler.js | 46 + .../scheduler/AnimationFrameScheduler.js.map | 1 + .../rxjs/internal/scheduler/AsapAction.d.ts | 15 + .../rxjs/internal/scheduler/AsapAction.js | 48 + .../rxjs/internal/scheduler/AsapAction.js.map | 1 + .../internal/scheduler/AsapScheduler.d.ts | 5 + .../rxjs/internal/scheduler/AsapScheduler.js | 46 + .../internal/scheduler/AsapScheduler.js.map | 1 + .../rxjs/internal/scheduler/AsyncAction.d.ts | 29 + .../rxjs/internal/scheduler/AsyncAction.js | 102 + .../internal/scheduler/AsyncAction.js.map | 1 + .../internal/scheduler/AsyncScheduler.d.ts | 27 + .../rxjs/internal/scheduler/AsyncScheduler.js | 67 + .../internal/scheduler/AsyncScheduler.js.map | 1 + .../rxjs/internal/scheduler/QueueAction.d.ts | 17 + .../rxjs/internal/scheduler/QueueAction.js | 50 + .../internal/scheduler/QueueAction.js.map | 1 + .../internal/scheduler/QueueScheduler.d.ts | 3 + .../rxjs/internal/scheduler/QueueScheduler.js | 25 + .../internal/scheduler/QueueScheduler.js.map | 1 + .../scheduler/VirtualTimeScheduler.d.ts | 33 + .../scheduler/VirtualTimeScheduler.js | 111 + .../scheduler/VirtualTimeScheduler.js.map | 1 + .../internal/scheduler/animationFrame.d.ts | 37 + .../rxjs/internal/scheduler/animationFrame.js | 7 + .../internal/scheduler/animationFrame.js.map | 1 + .../rxjs/internal/scheduler/asap.d.ts | 40 + node_modules/rxjs/internal/scheduler/asap.js | 7 + .../rxjs/internal/scheduler/asap.js.map | 1 + .../rxjs/internal/scheduler/async.d.ts | 52 + node_modules/rxjs/internal/scheduler/async.js | 7 + .../rxjs/internal/scheduler/async.js.map | 1 + .../rxjs/internal/scheduler/queue.d.ts | 68 + node_modules/rxjs/internal/scheduler/queue.js | 7 + .../rxjs/internal/scheduler/queue.js.map | 1 + .../rxjs/internal/symbol/iterator.d.ts | 6 + node_modules/rxjs/internal/symbol/iterator.js | 12 + .../rxjs/internal/symbol/iterator.js.map | 1 + .../rxjs/internal/symbol/observable.d.ts | 8 + .../rxjs/internal/symbol/observable.js | 4 + .../rxjs/internal/symbol/observable.js.map | 1 + .../rxjs/internal/symbol/rxSubscriber.d.ts | 6 + .../rxjs/internal/symbol/rxSubscriber.js | 9 + .../rxjs/internal/symbol/rxSubscriber.js.map | 1 + .../rxjs/internal/testing/ColdObservable.d.ts | 20 + .../rxjs/internal/testing/ColdObservable.js | 52 + .../internal/testing/ColdObservable.js.map | 1 + .../rxjs/internal/testing/HotObservable.d.ts | 23 + .../rxjs/internal/testing/HotObservable.js | 53 + .../internal/testing/HotObservable.js.map | 1 + .../internal/testing/SubscriptionLog.d.ts | 5 + .../rxjs/internal/testing/SubscriptionLog.js | 12 + .../internal/testing/SubscriptionLog.js.map | 1 + .../testing/SubscriptionLoggable.d.ts | 8 + .../internal/testing/SubscriptionLoggable.js | 20 + .../testing/SubscriptionLoggable.js.map | 1 + .../rxjs/internal/testing/TestMessage.d.ts | 6 + .../rxjs/internal/testing/TestMessage.js | 3 + .../rxjs/internal/testing/TestMessage.js.map | 1 + .../rxjs/internal/testing/TestScheduler.d.ts | 53 + .../rxjs/internal/testing/TestScheduler.js | 364 + .../internal/testing/TestScheduler.js.map | 1 + node_modules/rxjs/internal/types.d.ts | 82 + node_modules/rxjs/internal/types.js | 3 + node_modules/rxjs/internal/types.js.map | 1 + .../util/ArgumentOutOfRangeError.d.ts | 16 + .../internal/util/ArgumentOutOfRangeError.js | 14 + .../util/ArgumentOutOfRangeError.js.map | 1 + .../rxjs/internal/util/EmptyError.d.ts | 16 + node_modules/rxjs/internal/util/EmptyError.js | 14 + .../rxjs/internal/util/EmptyError.js.map | 1 + .../rxjs/internal/util/Immediate.d.ts | 13 + node_modules/rxjs/internal/util/Immediate.js | 29 + .../rxjs/internal/util/Immediate.js.map | 1 + .../util/ObjectUnsubscribedError.d.ts | 15 + .../internal/util/ObjectUnsubscribedError.js | 14 + .../util/ObjectUnsubscribedError.js.map | 1 + .../rxjs/internal/util/TimeoutError.d.ts | 13 + .../rxjs/internal/util/TimeoutError.js | 14 + .../rxjs/internal/util/TimeoutError.js.map | 1 + .../internal/util/UnsubscriptionError.d.ts | 11 + .../rxjs/internal/util/UnsubscriptionError.js | 16 + .../internal/util/UnsubscriptionError.js.map | 1 + .../rxjs/internal/util/applyMixins.d.ts | 1 + .../rxjs/internal/util/applyMixins.js | 14 + .../rxjs/internal/util/applyMixins.js.map | 1 + .../rxjs/internal/util/canReportError.d.ts | 9 + .../rxjs/internal/util/canReportError.js | 20 + .../rxjs/internal/util/canReportError.js.map | 1 + .../rxjs/internal/util/errorObject.d.ts | 1 + .../rxjs/internal/util/errorObject.js | 4 + .../rxjs/internal/util/errorObject.js.map | 1 + .../rxjs/internal/util/hostReportError.d.ts | 6 + .../rxjs/internal/util/hostReportError.js | 7 + .../rxjs/internal/util/hostReportError.js.map | 1 + node_modules/rxjs/internal/util/identity.d.ts | 1 + node_modules/rxjs/internal/util/identity.js | 7 + .../rxjs/internal/util/identity.js.map | 1 + node_modules/rxjs/internal/util/isArray.d.ts | 1 + node_modules/rxjs/internal/util/isArray.js | 4 + .../rxjs/internal/util/isArray.js.map | 1 + .../rxjs/internal/util/isArrayLike.d.ts | 1 + .../rxjs/internal/util/isArrayLike.js | 4 + .../rxjs/internal/util/isArrayLike.js.map | 1 + node_modules/rxjs/internal/util/isDate.d.ts | 1 + node_modules/rxjs/internal/util/isDate.js | 7 + node_modules/rxjs/internal/util/isDate.js.map | 1 + .../rxjs/internal/util/isFunction.d.ts | 1 + node_modules/rxjs/internal/util/isFunction.js | 7 + .../rxjs/internal/util/isFunction.js.map | 1 + .../internal/util/isInteropObservable.d.ts | 3 + .../rxjs/internal/util/isInteropObservable.js | 8 + .../internal/util/isInteropObservable.js.map | 1 + .../rxjs/internal/util/isIterable.d.ts | 2 + node_modules/rxjs/internal/util/isIterable.js | 8 + .../rxjs/internal/util/isIterable.js.map | 1 + .../rxjs/internal/util/isNumeric.d.ts | 1 + node_modules/rxjs/internal/util/isNumeric.js | 8 + .../rxjs/internal/util/isNumeric.js.map | 1 + node_modules/rxjs/internal/util/isObject.d.ts | 1 + node_modules/rxjs/internal/util/isObject.js | 7 + .../rxjs/internal/util/isObject.js.map | 1 + .../rxjs/internal/util/isObservable.d.ts | 6 + .../rxjs/internal/util/isObservable.js | 8 + .../rxjs/internal/util/isObservable.js.map | 1 + .../rxjs/internal/util/isPromise.d.ts | 6 + node_modules/rxjs/internal/util/isPromise.js | 7 + .../rxjs/internal/util/isPromise.js.map | 1 + .../rxjs/internal/util/isScheduler.d.ts | 2 + .../rxjs/internal/util/isScheduler.js | 7 + .../rxjs/internal/util/isScheduler.js.map | 1 + node_modules/rxjs/internal/util/noop.d.ts | 1 + node_modules/rxjs/internal/util/noop.js | 5 + node_modules/rxjs/internal/util/noop.js.map | 1 + node_modules/rxjs/internal/util/not.d.ts | 1 + node_modules/rxjs/internal/util/not.js | 12 + node_modules/rxjs/internal/util/not.js.map | 1 + node_modules/rxjs/internal/util/pipe.d.ts | 14 + node_modules/rxjs/internal/util/pipe.js | 24 + node_modules/rxjs/internal/util/pipe.js.map | 1 + node_modules/rxjs/internal/util/root.d.ts | 2 + node_modules/rxjs/internal/util/root.js | 14 + node_modules/rxjs/internal/util/root.js.map | 1 + .../rxjs/internal/util/subscribeTo.d.ts | 4 + .../rxjs/internal/util/subscribeTo.js | 32 + .../rxjs/internal/util/subscribeTo.js.map | 1 + .../rxjs/internal/util/subscribeToArray.d.ts | 6 + .../rxjs/internal/util/subscribeToArray.js | 9 + .../internal/util/subscribeToArray.js.map | 1 + .../internal/util/subscribeToIterable.d.ts | 2 + .../rxjs/internal/util/subscribeToIterable.js | 33 + .../internal/util/subscribeToIterable.js.map | 1 + .../internal/util/subscribeToObservable.d.ts | 7 + .../internal/util/subscribeToObservable.js | 13 + .../util/subscribeToObservable.js.map | 1 + .../internal/util/subscribeToPromise.d.ts | 2 + .../rxjs/internal/util/subscribeToPromise.js | 14 + .../internal/util/subscribeToPromise.js.map | 1 + .../rxjs/internal/util/subscribeToResult.d.ts | 5 + .../rxjs/internal/util/subscribeToResult.js | 17 + .../internal/util/subscribeToResult.js.map | 1 + .../rxjs/internal/util/toSubscriber.d.ts | 3 + .../rxjs/internal/util/toSubscriber.js | 21 + .../rxjs/internal/util/toSubscriber.js.map | 1 + node_modules/rxjs/internal/util/tryCatch.d.ts | 1 + node_modules/rxjs/internal/util/tryCatch.js | 23 + .../rxjs/internal/util/tryCatch.js.map | 1 + node_modules/rxjs/migrations/collection.json | 9 + .../rxjs/migrations/update-6_0_0/index.js | 28 + .../rxjs/migrations/update-6_0_0/index.js.map | 1 + .../rxjs/observable/ArrayLikeObservable.d.ts | 1 + .../rxjs/observable/ArrayLikeObservable.js | 7 + .../observable/ArrayLikeObservable.js.map | 1 + .../rxjs/observable/ArrayObservable.d.ts | 1 + .../rxjs/observable/ArrayObservable.js | 7 + .../rxjs/observable/ArrayObservable.js.map | 1 + .../observable/BoundCallbackObservable.d.ts | 1 + .../observable/BoundCallbackObservable.js | 7 + .../observable/BoundCallbackObservable.js.map | 1 + .../BoundNodeCallbackObservable.d.ts | 1 + .../observable/BoundNodeCallbackObservable.js | 7 + .../BoundNodeCallbackObservable.js.map | 1 + .../observable/ConnectableObservable.d.ts | 1 + .../rxjs/observable/ConnectableObservable.js | 7 + .../observable/ConnectableObservable.js.map | 1 + .../rxjs/observable/DeferObservable.d.ts | 1 + .../rxjs/observable/DeferObservable.js | 7 + .../rxjs/observable/DeferObservable.js.map | 1 + .../rxjs/observable/EmptyObservable.d.ts | 1 + .../rxjs/observable/EmptyObservable.js | 7 + .../rxjs/observable/EmptyObservable.js.map | 1 + .../rxjs/observable/ErrorObservable.d.ts | 1 + .../rxjs/observable/ErrorObservable.js | 7 + .../rxjs/observable/ErrorObservable.js.map | 1 + .../rxjs/observable/ForkJoinObservable.d.ts | 1 + .../rxjs/observable/ForkJoinObservable.js | 7 + .../rxjs/observable/ForkJoinObservable.js.map | 1 + .../rxjs/observable/FromEventObservable.d.ts | 1 + .../rxjs/observable/FromEventObservable.js | 7 + .../observable/FromEventObservable.js.map | 1 + .../FromEventPatternObservable.d.ts | 1 + .../observable/FromEventPatternObservable.js | 7 + .../FromEventPatternObservable.js.map | 1 + .../rxjs/observable/FromObservable.d.ts | 1 + .../rxjs/observable/FromObservable.js | 7 + .../rxjs/observable/FromObservable.js.map | 1 + .../rxjs/observable/GenerateObservable.d.ts | 1 + .../rxjs/observable/GenerateObservable.js | 7 + .../rxjs/observable/GenerateObservable.js.map | 1 + .../rxjs/observable/IfObservable.d.ts | 1 + node_modules/rxjs/observable/IfObservable.js | 7 + .../rxjs/observable/IfObservable.js.map | 1 + .../rxjs/observable/IntervalObservable.d.ts | 1 + .../rxjs/observable/IntervalObservable.js | 7 + .../rxjs/observable/IntervalObservable.js.map | 1 + .../rxjs/observable/IteratorObservable.d.ts | 1 + .../rxjs/observable/IteratorObservable.js | 7 + .../rxjs/observable/IteratorObservable.js.map | 1 + .../rxjs/observable/NeverObservable.d.ts | 1 + .../rxjs/observable/NeverObservable.js | 7 + .../rxjs/observable/NeverObservable.js.map | 1 + .../rxjs/observable/PairsObservable.d.ts | 1 + .../rxjs/observable/PairsObservable.js | 7 + .../rxjs/observable/PairsObservable.js.map | 1 + .../rxjs/observable/PromiseObservable.d.ts | 1 + .../rxjs/observable/PromiseObservable.js | 7 + .../rxjs/observable/PromiseObservable.js.map | 1 + .../rxjs/observable/RangeObservable.d.ts | 1 + .../rxjs/observable/RangeObservable.js | 7 + .../rxjs/observable/RangeObservable.js.map | 1 + .../rxjs/observable/ScalarObservable.d.ts | 1 + .../rxjs/observable/ScalarObservable.js | 7 + .../rxjs/observable/ScalarObservable.js.map | 1 + .../observable/SubscribeOnObservable.d.ts | 1 + .../rxjs/observable/SubscribeOnObservable.js | 7 + .../observable/SubscribeOnObservable.js.map | 1 + .../rxjs/observable/TimerObservable.d.ts | 1 + .../rxjs/observable/TimerObservable.js | 7 + .../rxjs/observable/TimerObservable.js.map | 1 + .../rxjs/observable/UsingObservable.d.ts | 1 + .../rxjs/observable/UsingObservable.js | 7 + .../rxjs/observable/UsingObservable.js.map | 1 + .../rxjs/observable/bindCallback.d.ts | 1 + node_modules/rxjs/observable/bindCallback.js | 7 + .../rxjs/observable/bindCallback.js.map | 1 + .../rxjs/observable/bindNodeCallback.d.ts | 1 + .../rxjs/observable/bindNodeCallback.js | 7 + .../rxjs/observable/bindNodeCallback.js.map | 1 + .../rxjs/observable/combineLatest.d.ts | 1 + node_modules/rxjs/observable/combineLatest.js | 7 + .../rxjs/observable/combineLatest.js.map | 1 + node_modules/rxjs/observable/concat.d.ts | 1 + node_modules/rxjs/observable/concat.js | 7 + node_modules/rxjs/observable/concat.js.map | 1 + node_modules/rxjs/observable/defer.d.ts | 1 + node_modules/rxjs/observable/defer.js | 7 + node_modules/rxjs/observable/defer.js.map | 1 + .../rxjs/observable/dom/AjaxObservable.d.ts | 1 + .../rxjs/observable/dom/AjaxObservable.js | 7 + .../rxjs/observable/dom/AjaxObservable.js.map | 1 + .../rxjs/observable/dom/WebSocketSubject.d.ts | 1 + .../rxjs/observable/dom/WebSocketSubject.js | 7 + .../observable/dom/WebSocketSubject.js.map | 1 + node_modules/rxjs/observable/dom/ajax.d.ts | 1 + node_modules/rxjs/observable/dom/ajax.js | 7 + node_modules/rxjs/observable/dom/ajax.js.map | 1 + .../rxjs/observable/dom/webSocket.d.ts | 1 + node_modules/rxjs/observable/dom/webSocket.js | 7 + .../rxjs/observable/dom/webSocket.js.map | 1 + node_modules/rxjs/observable/empty.d.ts | 1 + node_modules/rxjs/observable/empty.js | 7 + node_modules/rxjs/observable/empty.js.map | 1 + node_modules/rxjs/observable/forkJoin.d.ts | 1 + node_modules/rxjs/observable/forkJoin.js | 7 + node_modules/rxjs/observable/forkJoin.js.map | 1 + node_modules/rxjs/observable/from.d.ts | 1 + node_modules/rxjs/observable/from.js | 7 + node_modules/rxjs/observable/from.js.map | 1 + node_modules/rxjs/observable/fromArray.d.ts | 1 + node_modules/rxjs/observable/fromArray.js | 7 + node_modules/rxjs/observable/fromArray.js.map | 1 + node_modules/rxjs/observable/fromEvent.d.ts | 1 + node_modules/rxjs/observable/fromEvent.js | 7 + node_modules/rxjs/observable/fromEvent.js.map | 1 + .../rxjs/observable/fromEventPattern.d.ts | 1 + .../rxjs/observable/fromEventPattern.js | 7 + .../rxjs/observable/fromEventPattern.js.map | 1 + .../rxjs/observable/fromIterable.d.ts | 1 + node_modules/rxjs/observable/fromIterable.js | 7 + .../rxjs/observable/fromIterable.js.map | 1 + node_modules/rxjs/observable/fromPromise.d.ts | 1 + node_modules/rxjs/observable/fromPromise.js | 7 + .../rxjs/observable/fromPromise.js.map | 1 + node_modules/rxjs/observable/generate.d.ts | 1 + node_modules/rxjs/observable/generate.js | 7 + node_modules/rxjs/observable/generate.js.map | 1 + node_modules/rxjs/observable/if.d.ts | 1 + node_modules/rxjs/observable/if.js | 7 + node_modules/rxjs/observable/if.js.map | 1 + node_modules/rxjs/observable/interval.d.ts | 1 + node_modules/rxjs/observable/interval.js | 7 + node_modules/rxjs/observable/interval.js.map | 1 + node_modules/rxjs/observable/merge.d.ts | 1 + node_modules/rxjs/observable/merge.js | 7 + node_modules/rxjs/observable/merge.js.map | 1 + node_modules/rxjs/observable/never.d.ts | 1 + node_modules/rxjs/observable/never.js | 7 + node_modules/rxjs/observable/never.js.map | 1 + node_modules/rxjs/observable/of.d.ts | 1 + node_modules/rxjs/observable/of.js | 7 + node_modules/rxjs/observable/of.js.map | 1 + .../rxjs/observable/onErrorResumeNext.d.ts | 1 + .../rxjs/observable/onErrorResumeNext.js | 7 + .../rxjs/observable/onErrorResumeNext.js.map | 1 + node_modules/rxjs/observable/pairs.d.ts | 1 + node_modules/rxjs/observable/pairs.js | 7 + node_modules/rxjs/observable/pairs.js.map | 1 + node_modules/rxjs/observable/race.d.ts | 1 + node_modules/rxjs/observable/race.js | 7 + node_modules/rxjs/observable/race.js.map | 1 + node_modules/rxjs/observable/range.d.ts | 1 + node_modules/rxjs/observable/range.js | 7 + node_modules/rxjs/observable/range.js.map | 1 + node_modules/rxjs/observable/throw.d.ts | 1 + node_modules/rxjs/observable/throw.js | 7 + node_modules/rxjs/observable/throw.js.map | 1 + node_modules/rxjs/observable/timer.d.ts | 1 + node_modules/rxjs/observable/timer.js | 7 + node_modules/rxjs/observable/timer.js.map | 1 + node_modules/rxjs/observable/using.d.ts | 1 + node_modules/rxjs/observable/using.js | 7 + node_modules/rxjs/observable/using.js.map | 1 + node_modules/rxjs/observable/zip.d.ts | 1 + node_modules/rxjs/observable/zip.js | 7 + node_modules/rxjs/observable/zip.js.map | 1 + node_modules/rxjs/operator/audit.d.ts | 1 + node_modules/rxjs/operator/audit.js | 7 + node_modules/rxjs/operator/audit.js.map | 1 + node_modules/rxjs/operator/auditTime.d.ts | 1 + node_modules/rxjs/operator/auditTime.js | 7 + node_modules/rxjs/operator/auditTime.js.map | 1 + node_modules/rxjs/operator/buffer.d.ts | 1 + node_modules/rxjs/operator/buffer.js | 7 + node_modules/rxjs/operator/buffer.js.map | 1 + node_modules/rxjs/operator/bufferCount.d.ts | 1 + node_modules/rxjs/operator/bufferCount.js | 7 + node_modules/rxjs/operator/bufferCount.js.map | 1 + node_modules/rxjs/operator/bufferTime.d.ts | 1 + node_modules/rxjs/operator/bufferTime.js | 7 + node_modules/rxjs/operator/bufferTime.js.map | 1 + node_modules/rxjs/operator/bufferToggle.d.ts | 1 + node_modules/rxjs/operator/bufferToggle.js | 7 + .../rxjs/operator/bufferToggle.js.map | 1 + node_modules/rxjs/operator/bufferWhen.d.ts | 1 + node_modules/rxjs/operator/bufferWhen.js | 7 + node_modules/rxjs/operator/bufferWhen.js.map | 1 + node_modules/rxjs/operator/catch.d.ts | 1 + node_modules/rxjs/operator/catch.js | 7 + node_modules/rxjs/operator/catch.js.map | 1 + node_modules/rxjs/operator/combineAll.d.ts | 1 + node_modules/rxjs/operator/combineAll.js | 7 + node_modules/rxjs/operator/combineAll.js.map | 1 + node_modules/rxjs/operator/combineLatest.d.ts | 1 + node_modules/rxjs/operator/combineLatest.js | 7 + .../rxjs/operator/combineLatest.js.map | 1 + node_modules/rxjs/operator/concat.d.ts | 1 + node_modules/rxjs/operator/concat.js | 7 + node_modules/rxjs/operator/concat.js.map | 1 + node_modules/rxjs/operator/concatAll.d.ts | 1 + node_modules/rxjs/operator/concatAll.js | 7 + node_modules/rxjs/operator/concatAll.js.map | 1 + node_modules/rxjs/operator/concatMap.d.ts | 1 + node_modules/rxjs/operator/concatMap.js | 7 + node_modules/rxjs/operator/concatMap.js.map | 1 + node_modules/rxjs/operator/concatMapTo.d.ts | 1 + node_modules/rxjs/operator/concatMapTo.js | 7 + node_modules/rxjs/operator/concatMapTo.js.map | 1 + node_modules/rxjs/operator/count.d.ts | 1 + node_modules/rxjs/operator/count.js | 7 + node_modules/rxjs/operator/count.js.map | 1 + node_modules/rxjs/operator/debounce.d.ts | 1 + node_modules/rxjs/operator/debounce.js | 7 + node_modules/rxjs/operator/debounce.js.map | 1 + node_modules/rxjs/operator/debounceTime.d.ts | 1 + node_modules/rxjs/operator/debounceTime.js | 7 + .../rxjs/operator/debounceTime.js.map | 1 + .../rxjs/operator/defaultIfEmpty.d.ts | 1 + node_modules/rxjs/operator/defaultIfEmpty.js | 7 + .../rxjs/operator/defaultIfEmpty.js.map | 1 + node_modules/rxjs/operator/delay.d.ts | 1 + node_modules/rxjs/operator/delay.js | 7 + node_modules/rxjs/operator/delay.js.map | 1 + node_modules/rxjs/operator/delayWhen.d.ts | 1 + node_modules/rxjs/operator/delayWhen.js | 7 + node_modules/rxjs/operator/delayWhen.js.map | 1 + node_modules/rxjs/operator/dematerialize.d.ts | 1 + node_modules/rxjs/operator/dematerialize.js | 7 + .../rxjs/operator/dematerialize.js.map | 1 + node_modules/rxjs/operator/distinct.d.ts | 1 + node_modules/rxjs/operator/distinct.js | 7 + node_modules/rxjs/operator/distinct.js.map | 1 + .../rxjs/operator/distinctUntilChanged.d.ts | 1 + .../rxjs/operator/distinctUntilChanged.js | 7 + .../rxjs/operator/distinctUntilChanged.js.map | 1 + .../operator/distinctUntilKeyChanged.d.ts | 1 + .../rxjs/operator/distinctUntilKeyChanged.js | 7 + .../operator/distinctUntilKeyChanged.js.map | 1 + node_modules/rxjs/operator/do.d.ts | 1 + node_modules/rxjs/operator/do.js | 7 + node_modules/rxjs/operator/do.js.map | 1 + node_modules/rxjs/operator/elementAt.d.ts | 1 + node_modules/rxjs/operator/elementAt.js | 7 + node_modules/rxjs/operator/elementAt.js.map | 1 + node_modules/rxjs/operator/every.d.ts | 1 + node_modules/rxjs/operator/every.js | 7 + node_modules/rxjs/operator/every.js.map | 1 + node_modules/rxjs/operator/exhaust.d.ts | 1 + node_modules/rxjs/operator/exhaust.js | 7 + node_modules/rxjs/operator/exhaust.js.map | 1 + node_modules/rxjs/operator/exhaustMap.d.ts | 1 + node_modules/rxjs/operator/exhaustMap.js | 7 + node_modules/rxjs/operator/exhaustMap.js.map | 1 + node_modules/rxjs/operator/expand.d.ts | 1 + node_modules/rxjs/operator/expand.js | 7 + node_modules/rxjs/operator/expand.js.map | 1 + node_modules/rxjs/operator/filter.d.ts | 1 + node_modules/rxjs/operator/filter.js | 7 + node_modules/rxjs/operator/filter.js.map | 1 + node_modules/rxjs/operator/finally.d.ts | 1 + node_modules/rxjs/operator/finally.js | 7 + node_modules/rxjs/operator/finally.js.map | 1 + node_modules/rxjs/operator/find.d.ts | 1 + node_modules/rxjs/operator/find.js | 7 + node_modules/rxjs/operator/find.js.map | 1 + node_modules/rxjs/operator/findIndex.d.ts | 1 + node_modules/rxjs/operator/findIndex.js | 7 + node_modules/rxjs/operator/findIndex.js.map | 1 + node_modules/rxjs/operator/first.d.ts | 1 + node_modules/rxjs/operator/first.js | 7 + node_modules/rxjs/operator/first.js.map | 1 + node_modules/rxjs/operator/groupBy.d.ts | 1 + node_modules/rxjs/operator/groupBy.js | 7 + node_modules/rxjs/operator/groupBy.js.map | 1 + .../rxjs/operator/ignoreElements.d.ts | 1 + node_modules/rxjs/operator/ignoreElements.js | 7 + .../rxjs/operator/ignoreElements.js.map | 1 + node_modules/rxjs/operator/isEmpty.d.ts | 1 + node_modules/rxjs/operator/isEmpty.js | 7 + node_modules/rxjs/operator/isEmpty.js.map | 1 + node_modules/rxjs/operator/last.d.ts | 1 + node_modules/rxjs/operator/last.js | 7 + node_modules/rxjs/operator/last.js.map | 1 + node_modules/rxjs/operator/let.d.ts | 1 + node_modules/rxjs/operator/let.js | 7 + node_modules/rxjs/operator/let.js.map | 1 + node_modules/rxjs/operator/map.d.ts | 1 + node_modules/rxjs/operator/map.js | 7 + node_modules/rxjs/operator/map.js.map | 1 + node_modules/rxjs/operator/mapTo.d.ts | 1 + node_modules/rxjs/operator/mapTo.js | 7 + node_modules/rxjs/operator/mapTo.js.map | 1 + node_modules/rxjs/operator/materialize.d.ts | 1 + node_modules/rxjs/operator/materialize.js | 7 + node_modules/rxjs/operator/materialize.js.map | 1 + node_modules/rxjs/operator/max.d.ts | 1 + node_modules/rxjs/operator/max.js | 7 + node_modules/rxjs/operator/max.js.map | 1 + node_modules/rxjs/operator/merge.d.ts | 1 + node_modules/rxjs/operator/merge.js | 7 + node_modules/rxjs/operator/merge.js.map | 1 + node_modules/rxjs/operator/mergeAll.d.ts | 1 + node_modules/rxjs/operator/mergeAll.js | 7 + node_modules/rxjs/operator/mergeAll.js.map | 1 + node_modules/rxjs/operator/mergeMap.d.ts | 1 + node_modules/rxjs/operator/mergeMap.js | 7 + node_modules/rxjs/operator/mergeMap.js.map | 1 + node_modules/rxjs/operator/mergeMapTo.d.ts | 1 + node_modules/rxjs/operator/mergeMapTo.js | 7 + node_modules/rxjs/operator/mergeMapTo.js.map | 1 + node_modules/rxjs/operator/mergeScan.d.ts | 1 + node_modules/rxjs/operator/mergeScan.js | 7 + node_modules/rxjs/operator/mergeScan.js.map | 1 + node_modules/rxjs/operator/min.d.ts | 1 + node_modules/rxjs/operator/min.js | 7 + node_modules/rxjs/operator/min.js.map | 1 + node_modules/rxjs/operator/multicast.d.ts | 1 + node_modules/rxjs/operator/multicast.js | 7 + node_modules/rxjs/operator/multicast.js.map | 1 + node_modules/rxjs/operator/observeOn.d.ts | 1 + node_modules/rxjs/operator/observeOn.js | 7 + node_modules/rxjs/operator/observeOn.js.map | 1 + .../rxjs/operator/onErrorResumeNext.d.ts | 1 + .../rxjs/operator/onErrorResumeNext.js | 7 + .../rxjs/operator/onErrorResumeNext.js.map | 1 + node_modules/rxjs/operator/pairwise.d.ts | 1 + node_modules/rxjs/operator/pairwise.js | 7 + node_modules/rxjs/operator/pairwise.js.map | 1 + node_modules/rxjs/operator/partition.d.ts | 1 + node_modules/rxjs/operator/partition.js | 7 + node_modules/rxjs/operator/partition.js.map | 1 + node_modules/rxjs/operator/pluck.d.ts | 1 + node_modules/rxjs/operator/pluck.js | 7 + node_modules/rxjs/operator/pluck.js.map | 1 + node_modules/rxjs/operator/publish.d.ts | 1 + node_modules/rxjs/operator/publish.js | 7 + node_modules/rxjs/operator/publish.js.map | 1 + .../rxjs/operator/publishBehavior.d.ts | 1 + node_modules/rxjs/operator/publishBehavior.js | 7 + .../rxjs/operator/publishBehavior.js.map | 1 + node_modules/rxjs/operator/publishLast.d.ts | 1 + node_modules/rxjs/operator/publishLast.js | 7 + node_modules/rxjs/operator/publishLast.js.map | 1 + node_modules/rxjs/operator/publishReplay.d.ts | 1 + node_modules/rxjs/operator/publishReplay.js | 7 + .../rxjs/operator/publishReplay.js.map | 1 + node_modules/rxjs/operator/race.d.ts | 1 + node_modules/rxjs/operator/race.js | 7 + node_modules/rxjs/operator/race.js.map | 1 + node_modules/rxjs/operator/reduce.d.ts | 1 + node_modules/rxjs/operator/reduce.js | 7 + node_modules/rxjs/operator/reduce.js.map | 1 + node_modules/rxjs/operator/repeat.d.ts | 1 + node_modules/rxjs/operator/repeat.js | 7 + node_modules/rxjs/operator/repeat.js.map | 1 + node_modules/rxjs/operator/repeatWhen.d.ts | 1 + node_modules/rxjs/operator/repeatWhen.js | 7 + node_modules/rxjs/operator/repeatWhen.js.map | 1 + node_modules/rxjs/operator/retry.d.ts | 1 + node_modules/rxjs/operator/retry.js | 7 + node_modules/rxjs/operator/retry.js.map | 1 + node_modules/rxjs/operator/retryWhen.d.ts | 1 + node_modules/rxjs/operator/retryWhen.js | 7 + node_modules/rxjs/operator/retryWhen.js.map | 1 + node_modules/rxjs/operator/sample.d.ts | 1 + node_modules/rxjs/operator/sample.js | 7 + node_modules/rxjs/operator/sample.js.map | 1 + node_modules/rxjs/operator/sampleTime.d.ts | 1 + node_modules/rxjs/operator/sampleTime.js | 7 + node_modules/rxjs/operator/sampleTime.js.map | 1 + node_modules/rxjs/operator/scan.d.ts | 1 + node_modules/rxjs/operator/scan.js | 7 + node_modules/rxjs/operator/scan.js.map | 1 + node_modules/rxjs/operator/sequenceEqual.d.ts | 1 + node_modules/rxjs/operator/sequenceEqual.js | 7 + .../rxjs/operator/sequenceEqual.js.map | 1 + node_modules/rxjs/operator/share.d.ts | 1 + node_modules/rxjs/operator/share.js | 7 + node_modules/rxjs/operator/share.js.map | 1 + node_modules/rxjs/operator/shareReplay.d.ts | 1 + node_modules/rxjs/operator/shareReplay.js | 7 + node_modules/rxjs/operator/shareReplay.js.map | 1 + node_modules/rxjs/operator/single.d.ts | 1 + node_modules/rxjs/operator/single.js | 7 + node_modules/rxjs/operator/single.js.map | 1 + node_modules/rxjs/operator/skip.d.ts | 1 + node_modules/rxjs/operator/skip.js | 7 + node_modules/rxjs/operator/skip.js.map | 1 + node_modules/rxjs/operator/skipLast.d.ts | 1 + node_modules/rxjs/operator/skipLast.js | 7 + node_modules/rxjs/operator/skipLast.js.map | 1 + node_modules/rxjs/operator/skipUntil.d.ts | 1 + node_modules/rxjs/operator/skipUntil.js | 7 + node_modules/rxjs/operator/skipUntil.js.map | 1 + node_modules/rxjs/operator/skipWhile.d.ts | 1 + node_modules/rxjs/operator/skipWhile.js | 7 + node_modules/rxjs/operator/skipWhile.js.map | 1 + node_modules/rxjs/operator/startWith.d.ts | 1 + node_modules/rxjs/operator/startWith.js | 7 + node_modules/rxjs/operator/startWith.js.map | 1 + node_modules/rxjs/operator/subscribeOn.d.ts | 1 + node_modules/rxjs/operator/subscribeOn.js | 7 + node_modules/rxjs/operator/subscribeOn.js.map | 1 + node_modules/rxjs/operator/switch.d.ts | 1 + node_modules/rxjs/operator/switch.js | 7 + node_modules/rxjs/operator/switch.js.map | 1 + node_modules/rxjs/operator/switchMap.d.ts | 1 + node_modules/rxjs/operator/switchMap.js | 7 + node_modules/rxjs/operator/switchMap.js.map | 1 + node_modules/rxjs/operator/switchMapTo.d.ts | 1 + node_modules/rxjs/operator/switchMapTo.js | 7 + node_modules/rxjs/operator/switchMapTo.js.map | 1 + node_modules/rxjs/operator/take.d.ts | 1 + node_modules/rxjs/operator/take.js | 7 + node_modules/rxjs/operator/take.js.map | 1 + node_modules/rxjs/operator/takeLast.d.ts | 1 + node_modules/rxjs/operator/takeLast.js | 7 + node_modules/rxjs/operator/takeLast.js.map | 1 + node_modules/rxjs/operator/takeUntil.d.ts | 1 + node_modules/rxjs/operator/takeUntil.js | 7 + node_modules/rxjs/operator/takeUntil.js.map | 1 + node_modules/rxjs/operator/takeWhile.d.ts | 1 + node_modules/rxjs/operator/takeWhile.js | 7 + node_modules/rxjs/operator/takeWhile.js.map | 1 + node_modules/rxjs/operator/throttle.d.ts | 1 + node_modules/rxjs/operator/throttle.js | 7 + node_modules/rxjs/operator/throttle.js.map | 1 + node_modules/rxjs/operator/throttleTime.d.ts | 1 + node_modules/rxjs/operator/throttleTime.js | 7 + .../rxjs/operator/throttleTime.js.map | 1 + node_modules/rxjs/operator/timeInterval.d.ts | 1 + node_modules/rxjs/operator/timeInterval.js | 7 + .../rxjs/operator/timeInterval.js.map | 1 + node_modules/rxjs/operator/timeout.d.ts | 1 + node_modules/rxjs/operator/timeout.js | 7 + node_modules/rxjs/operator/timeout.js.map | 1 + node_modules/rxjs/operator/timeoutWith.d.ts | 1 + node_modules/rxjs/operator/timeoutWith.js | 7 + node_modules/rxjs/operator/timeoutWith.js.map | 1 + node_modules/rxjs/operator/timestamp.d.ts | 1 + node_modules/rxjs/operator/timestamp.js | 7 + node_modules/rxjs/operator/timestamp.js.map | 1 + node_modules/rxjs/operator/toArray.d.ts | 1 + node_modules/rxjs/operator/toArray.js | 7 + node_modules/rxjs/operator/toArray.js.map | 1 + node_modules/rxjs/operator/toPromise.d.ts | 1 + node_modules/rxjs/operator/toPromise.js | 7 + node_modules/rxjs/operator/toPromise.js.map | 1 + node_modules/rxjs/operator/window.d.ts | 1 + node_modules/rxjs/operator/window.js | 7 + node_modules/rxjs/operator/window.js.map | 1 + node_modules/rxjs/operator/windowCount.d.ts | 1 + node_modules/rxjs/operator/windowCount.js | 7 + node_modules/rxjs/operator/windowCount.js.map | 1 + node_modules/rxjs/operator/windowTime.d.ts | 1 + node_modules/rxjs/operator/windowTime.js | 7 + node_modules/rxjs/operator/windowTime.js.map | 1 + node_modules/rxjs/operator/windowToggle.d.ts | 1 + node_modules/rxjs/operator/windowToggle.js | 7 + .../rxjs/operator/windowToggle.js.map | 1 + node_modules/rxjs/operator/windowWhen.d.ts | 1 + node_modules/rxjs/operator/windowWhen.js | 7 + node_modules/rxjs/operator/windowWhen.js.map | 1 + .../rxjs/operator/withLatestFrom.d.ts | 1 + node_modules/rxjs/operator/withLatestFrom.js | 7 + .../rxjs/operator/withLatestFrom.js.map | 1 + node_modules/rxjs/operator/zip.d.ts | 1 + node_modules/rxjs/operator/zip.js | 7 + node_modules/rxjs/operator/zip.js.map | 1 + node_modules/rxjs/operator/zipAll.d.ts | 1 + node_modules/rxjs/operator/zipAll.js | 7 + node_modules/rxjs/operator/zipAll.js.map | 1 + node_modules/rxjs/operators/audit.d.ts | 1 + node_modules/rxjs/operators/audit.js | 7 + node_modules/rxjs/operators/audit.js.map | 1 + node_modules/rxjs/operators/auditTime.d.ts | 1 + node_modules/rxjs/operators/auditTime.js | 7 + node_modules/rxjs/operators/auditTime.js.map | 1 + node_modules/rxjs/operators/buffer.d.ts | 1 + node_modules/rxjs/operators/buffer.js | 7 + node_modules/rxjs/operators/buffer.js.map | 1 + node_modules/rxjs/operators/bufferCount.d.ts | 1 + node_modules/rxjs/operators/bufferCount.js | 7 + .../rxjs/operators/bufferCount.js.map | 1 + node_modules/rxjs/operators/bufferTime.d.ts | 1 + node_modules/rxjs/operators/bufferTime.js | 7 + node_modules/rxjs/operators/bufferTime.js.map | 1 + node_modules/rxjs/operators/bufferToggle.d.ts | 1 + node_modules/rxjs/operators/bufferToggle.js | 7 + .../rxjs/operators/bufferToggle.js.map | 1 + node_modules/rxjs/operators/bufferWhen.d.ts | 1 + node_modules/rxjs/operators/bufferWhen.js | 7 + node_modules/rxjs/operators/bufferWhen.js.map | 1 + node_modules/rxjs/operators/catchError.d.ts | 1 + node_modules/rxjs/operators/catchError.js | 7 + node_modules/rxjs/operators/catchError.js.map | 1 + node_modules/rxjs/operators/combineAll.d.ts | 1 + node_modules/rxjs/operators/combineAll.js | 7 + node_modules/rxjs/operators/combineAll.js.map | 1 + .../rxjs/operators/combineLatest.d.ts | 1 + node_modules/rxjs/operators/combineLatest.js | 7 + .../rxjs/operators/combineLatest.js.map | 1 + node_modules/rxjs/operators/concat.d.ts | 1 + node_modules/rxjs/operators/concat.js | 7 + node_modules/rxjs/operators/concat.js.map | 1 + node_modules/rxjs/operators/concatAll.d.ts | 1 + node_modules/rxjs/operators/concatAll.js | 7 + node_modules/rxjs/operators/concatAll.js.map | 1 + node_modules/rxjs/operators/concatMap.d.ts | 1 + node_modules/rxjs/operators/concatMap.js | 7 + node_modules/rxjs/operators/concatMap.js.map | 1 + node_modules/rxjs/operators/concatMapTo.d.ts | 1 + node_modules/rxjs/operators/concatMapTo.js | 7 + .../rxjs/operators/concatMapTo.js.map | 1 + node_modules/rxjs/operators/count.d.ts | 1 + node_modules/rxjs/operators/count.js | 7 + node_modules/rxjs/operators/count.js.map | 1 + node_modules/rxjs/operators/debounce.d.ts | 1 + node_modules/rxjs/operators/debounce.js | 7 + node_modules/rxjs/operators/debounce.js.map | 1 + node_modules/rxjs/operators/debounceTime.d.ts | 1 + node_modules/rxjs/operators/debounceTime.js | 7 + .../rxjs/operators/debounceTime.js.map | 1 + .../rxjs/operators/defaultIfEmpty.d.ts | 1 + node_modules/rxjs/operators/defaultIfEmpty.js | 7 + .../rxjs/operators/defaultIfEmpty.js.map | 1 + node_modules/rxjs/operators/delay.d.ts | 1 + node_modules/rxjs/operators/delay.js | 7 + node_modules/rxjs/operators/delay.js.map | 1 + node_modules/rxjs/operators/delayWhen.d.ts | 1 + node_modules/rxjs/operators/delayWhen.js | 7 + node_modules/rxjs/operators/delayWhen.js.map | 1 + .../rxjs/operators/dematerialize.d.ts | 1 + node_modules/rxjs/operators/dematerialize.js | 7 + .../rxjs/operators/dematerialize.js.map | 1 + node_modules/rxjs/operators/distinct.d.ts | 1 + node_modules/rxjs/operators/distinct.js | 7 + node_modules/rxjs/operators/distinct.js.map | 1 + .../rxjs/operators/distinctUntilChanged.d.ts | 1 + .../rxjs/operators/distinctUntilChanged.js | 7 + .../operators/distinctUntilChanged.js.map | 1 + .../operators/distinctUntilKeyChanged.d.ts | 1 + .../rxjs/operators/distinctUntilKeyChanged.js | 7 + .../operators/distinctUntilKeyChanged.js.map | 1 + node_modules/rxjs/operators/elementAt.d.ts | 1 + node_modules/rxjs/operators/elementAt.js | 7 + node_modules/rxjs/operators/elementAt.js.map | 1 + node_modules/rxjs/operators/every.d.ts | 1 + node_modules/rxjs/operators/every.js | 7 + node_modules/rxjs/operators/every.js.map | 1 + node_modules/rxjs/operators/exhaust.d.ts | 1 + node_modules/rxjs/operators/exhaust.js | 7 + node_modules/rxjs/operators/exhaust.js.map | 1 + node_modules/rxjs/operators/exhaustMap.d.ts | 1 + node_modules/rxjs/operators/exhaustMap.js | 7 + node_modules/rxjs/operators/exhaustMap.js.map | 1 + node_modules/rxjs/operators/expand.d.ts | 1 + node_modules/rxjs/operators/expand.js | 7 + node_modules/rxjs/operators/expand.js.map | 1 + node_modules/rxjs/operators/filter.d.ts | 1 + node_modules/rxjs/operators/filter.js | 7 + node_modules/rxjs/operators/filter.js.map | 1 + node_modules/rxjs/operators/finalize.d.ts | 1 + node_modules/rxjs/operators/finalize.js | 7 + node_modules/rxjs/operators/finalize.js.map | 1 + node_modules/rxjs/operators/find.d.ts | 1 + node_modules/rxjs/operators/find.js | 7 + node_modules/rxjs/operators/find.js.map | 1 + node_modules/rxjs/operators/findIndex.d.ts | 1 + node_modules/rxjs/operators/findIndex.js | 7 + node_modules/rxjs/operators/findIndex.js.map | 1 + node_modules/rxjs/operators/first.d.ts | 1 + node_modules/rxjs/operators/first.js | 7 + node_modules/rxjs/operators/first.js.map | 1 + node_modules/rxjs/operators/groupBy.d.ts | 1 + node_modules/rxjs/operators/groupBy.js | 7 + node_modules/rxjs/operators/groupBy.js.map | 1 + .../rxjs/operators/ignoreElements.d.ts | 1 + node_modules/rxjs/operators/ignoreElements.js | 7 + .../rxjs/operators/ignoreElements.js.map | 1 + node_modules/rxjs/operators/index.d.ts | 103 + node_modules/rxjs/operators/index.js | 210 + node_modules/rxjs/operators/index.js.map | 1 + node_modules/rxjs/operators/isEmpty.d.ts | 1 + node_modules/rxjs/operators/isEmpty.js | 7 + node_modules/rxjs/operators/isEmpty.js.map | 1 + node_modules/rxjs/operators/last.d.ts | 1 + node_modules/rxjs/operators/last.js | 7 + node_modules/rxjs/operators/last.js.map | 1 + node_modules/rxjs/operators/map.d.ts | 1 + node_modules/rxjs/operators/map.js | 7 + node_modules/rxjs/operators/map.js.map | 1 + node_modules/rxjs/operators/mapTo.d.ts | 1 + node_modules/rxjs/operators/mapTo.js | 7 + node_modules/rxjs/operators/mapTo.js.map | 1 + node_modules/rxjs/operators/materialize.d.ts | 1 + node_modules/rxjs/operators/materialize.js | 7 + .../rxjs/operators/materialize.js.map | 1 + node_modules/rxjs/operators/max.d.ts | 1 + node_modules/rxjs/operators/max.js | 7 + node_modules/rxjs/operators/max.js.map | 1 + node_modules/rxjs/operators/merge.d.ts | 1 + node_modules/rxjs/operators/merge.js | 7 + node_modules/rxjs/operators/merge.js.map | 1 + node_modules/rxjs/operators/mergeAll.d.ts | 1 + node_modules/rxjs/operators/mergeAll.js | 7 + node_modules/rxjs/operators/mergeAll.js.map | 1 + node_modules/rxjs/operators/mergeMap.d.ts | 1 + node_modules/rxjs/operators/mergeMap.js | 7 + node_modules/rxjs/operators/mergeMap.js.map | 1 + node_modules/rxjs/operators/mergeMapTo.d.ts | 1 + node_modules/rxjs/operators/mergeMapTo.js | 7 + node_modules/rxjs/operators/mergeMapTo.js.map | 1 + node_modules/rxjs/operators/mergeScan.d.ts | 1 + node_modules/rxjs/operators/mergeScan.js | 7 + node_modules/rxjs/operators/mergeScan.js.map | 1 + node_modules/rxjs/operators/min.d.ts | 1 + node_modules/rxjs/operators/min.js | 7 + node_modules/rxjs/operators/min.js.map | 1 + node_modules/rxjs/operators/multicast.d.ts | 1 + node_modules/rxjs/operators/multicast.js | 7 + node_modules/rxjs/operators/multicast.js.map | 1 + node_modules/rxjs/operators/observeOn.d.ts | 1 + node_modules/rxjs/operators/observeOn.js | 7 + node_modules/rxjs/operators/observeOn.js.map | 1 + .../rxjs/operators/onErrorResumeNext.d.ts | 1 + .../rxjs/operators/onErrorResumeNext.js | 7 + .../rxjs/operators/onErrorResumeNext.js.map | 1 + node_modules/rxjs/operators/package.json | 8 + node_modules/rxjs/operators/pairwise.d.ts | 1 + node_modules/rxjs/operators/pairwise.js | 7 + node_modules/rxjs/operators/pairwise.js.map | 1 + node_modules/rxjs/operators/partition.d.ts | 1 + node_modules/rxjs/operators/partition.js | 7 + node_modules/rxjs/operators/partition.js.map | 1 + node_modules/rxjs/operators/pluck.d.ts | 1 + node_modules/rxjs/operators/pluck.js | 7 + node_modules/rxjs/operators/pluck.js.map | 1 + node_modules/rxjs/operators/publish.d.ts | 1 + node_modules/rxjs/operators/publish.js | 7 + node_modules/rxjs/operators/publish.js.map | 1 + .../rxjs/operators/publishBehavior.d.ts | 1 + .../rxjs/operators/publishBehavior.js | 7 + .../rxjs/operators/publishBehavior.js.map | 1 + node_modules/rxjs/operators/publishLast.d.ts | 1 + node_modules/rxjs/operators/publishLast.js | 7 + .../rxjs/operators/publishLast.js.map | 1 + .../rxjs/operators/publishReplay.d.ts | 1 + node_modules/rxjs/operators/publishReplay.js | 7 + .../rxjs/operators/publishReplay.js.map | 1 + node_modules/rxjs/operators/race.d.ts | 1 + node_modules/rxjs/operators/race.js | 7 + node_modules/rxjs/operators/race.js.map | 1 + node_modules/rxjs/operators/reduce.d.ts | 1 + node_modules/rxjs/operators/reduce.js | 7 + node_modules/rxjs/operators/reduce.js.map | 1 + node_modules/rxjs/operators/refCount.d.ts | 1 + node_modules/rxjs/operators/refCount.js | 7 + node_modules/rxjs/operators/refCount.js.map | 1 + node_modules/rxjs/operators/repeat.d.ts | 1 + node_modules/rxjs/operators/repeat.js | 7 + node_modules/rxjs/operators/repeat.js.map | 1 + node_modules/rxjs/operators/repeatWhen.d.ts | 1 + node_modules/rxjs/operators/repeatWhen.js | 7 + node_modules/rxjs/operators/repeatWhen.js.map | 1 + node_modules/rxjs/operators/retry.d.ts | 1 + node_modules/rxjs/operators/retry.js | 7 + node_modules/rxjs/operators/retry.js.map | 1 + node_modules/rxjs/operators/retryWhen.d.ts | 1 + node_modules/rxjs/operators/retryWhen.js | 7 + node_modules/rxjs/operators/retryWhen.js.map | 1 + node_modules/rxjs/operators/sample.d.ts | 1 + node_modules/rxjs/operators/sample.js | 7 + node_modules/rxjs/operators/sample.js.map | 1 + node_modules/rxjs/operators/sampleTime.d.ts | 1 + node_modules/rxjs/operators/sampleTime.js | 7 + node_modules/rxjs/operators/sampleTime.js.map | 1 + node_modules/rxjs/operators/scan.d.ts | 1 + node_modules/rxjs/operators/scan.js | 7 + node_modules/rxjs/operators/scan.js.map | 1 + .../rxjs/operators/sequenceEqual.d.ts | 1 + node_modules/rxjs/operators/sequenceEqual.js | 7 + .../rxjs/operators/sequenceEqual.js.map | 1 + node_modules/rxjs/operators/share.d.ts | 1 + node_modules/rxjs/operators/share.js | 7 + node_modules/rxjs/operators/share.js.map | 1 + node_modules/rxjs/operators/shareReplay.d.ts | 1 + node_modules/rxjs/operators/shareReplay.js | 7 + .../rxjs/operators/shareReplay.js.map | 1 + node_modules/rxjs/operators/single.d.ts | 1 + node_modules/rxjs/operators/single.js | 7 + node_modules/rxjs/operators/single.js.map | 1 + node_modules/rxjs/operators/skip.d.ts | 1 + node_modules/rxjs/operators/skip.js | 7 + node_modules/rxjs/operators/skip.js.map | 1 + node_modules/rxjs/operators/skipLast.d.ts | 1 + node_modules/rxjs/operators/skipLast.js | 7 + node_modules/rxjs/operators/skipLast.js.map | 1 + node_modules/rxjs/operators/skipUntil.d.ts | 1 + node_modules/rxjs/operators/skipUntil.js | 7 + node_modules/rxjs/operators/skipUntil.js.map | 1 + node_modules/rxjs/operators/skipWhile.d.ts | 1 + node_modules/rxjs/operators/skipWhile.js | 7 + node_modules/rxjs/operators/skipWhile.js.map | 1 + node_modules/rxjs/operators/startWith.d.ts | 1 + node_modules/rxjs/operators/startWith.js | 7 + node_modules/rxjs/operators/startWith.js.map | 1 + node_modules/rxjs/operators/subscribeOn.d.ts | 1 + node_modules/rxjs/operators/subscribeOn.js | 7 + .../rxjs/operators/subscribeOn.js.map | 1 + node_modules/rxjs/operators/switchAll.d.ts | 1 + node_modules/rxjs/operators/switchAll.js | 7 + node_modules/rxjs/operators/switchAll.js.map | 1 + node_modules/rxjs/operators/switchMap.d.ts | 1 + node_modules/rxjs/operators/switchMap.js | 7 + node_modules/rxjs/operators/switchMap.js.map | 1 + node_modules/rxjs/operators/switchMapTo.d.ts | 1 + node_modules/rxjs/operators/switchMapTo.js | 7 + .../rxjs/operators/switchMapTo.js.map | 1 + node_modules/rxjs/operators/take.d.ts | 1 + node_modules/rxjs/operators/take.js | 7 + node_modules/rxjs/operators/take.js.map | 1 + node_modules/rxjs/operators/takeLast.d.ts | 1 + node_modules/rxjs/operators/takeLast.js | 7 + node_modules/rxjs/operators/takeLast.js.map | 1 + node_modules/rxjs/operators/takeUntil.d.ts | 1 + node_modules/rxjs/operators/takeUntil.js | 7 + node_modules/rxjs/operators/takeUntil.js.map | 1 + node_modules/rxjs/operators/takeWhile.d.ts | 1 + node_modules/rxjs/operators/takeWhile.js | 7 + node_modules/rxjs/operators/takeWhile.js.map | 1 + node_modules/rxjs/operators/tap.d.ts | 1 + node_modules/rxjs/operators/tap.js | 7 + node_modules/rxjs/operators/tap.js.map | 1 + node_modules/rxjs/operators/throttle.d.ts | 1 + node_modules/rxjs/operators/throttle.js | 7 + node_modules/rxjs/operators/throttle.js.map | 1 + node_modules/rxjs/operators/throttleTime.d.ts | 1 + node_modules/rxjs/operators/throttleTime.js | 7 + .../rxjs/operators/throttleTime.js.map | 1 + node_modules/rxjs/operators/throwIfEmpty.d.ts | 1 + node_modules/rxjs/operators/throwIfEmpty.js | 7 + .../rxjs/operators/throwIfEmpty.js.map | 1 + node_modules/rxjs/operators/timeInterval.d.ts | 1 + node_modules/rxjs/operators/timeInterval.js | 7 + .../rxjs/operators/timeInterval.js.map | 1 + node_modules/rxjs/operators/timeout.d.ts | 1 + node_modules/rxjs/operators/timeout.js | 7 + node_modules/rxjs/operators/timeout.js.map | 1 + node_modules/rxjs/operators/timeoutWith.d.ts | 1 + node_modules/rxjs/operators/timeoutWith.js | 7 + .../rxjs/operators/timeoutWith.js.map | 1 + node_modules/rxjs/operators/timestamp.d.ts | 1 + node_modules/rxjs/operators/timestamp.js | 7 + node_modules/rxjs/operators/timestamp.js.map | 1 + node_modules/rxjs/operators/toArray.d.ts | 1 + node_modules/rxjs/operators/toArray.js | 7 + node_modules/rxjs/operators/toArray.js.map | 1 + node_modules/rxjs/operators/window.d.ts | 1 + node_modules/rxjs/operators/window.js | 7 + node_modules/rxjs/operators/window.js.map | 1 + node_modules/rxjs/operators/windowCount.d.ts | 1 + node_modules/rxjs/operators/windowCount.js | 7 + .../rxjs/operators/windowCount.js.map | 1 + node_modules/rxjs/operators/windowTime.d.ts | 1 + node_modules/rxjs/operators/windowTime.js | 7 + node_modules/rxjs/operators/windowTime.js.map | 1 + node_modules/rxjs/operators/windowToggle.d.ts | 1 + node_modules/rxjs/operators/windowToggle.js | 7 + .../rxjs/operators/windowToggle.js.map | 1 + node_modules/rxjs/operators/windowWhen.d.ts | 1 + node_modules/rxjs/operators/windowWhen.js | 7 + node_modules/rxjs/operators/windowWhen.js.map | 1 + .../rxjs/operators/withLatestFrom.d.ts | 1 + node_modules/rxjs/operators/withLatestFrom.js | 7 + .../rxjs/operators/withLatestFrom.js.map | 1 + node_modules/rxjs/operators/zip.d.ts | 1 + node_modules/rxjs/operators/zip.js | 7 + node_modules/rxjs/operators/zip.js.map | 1 + node_modules/rxjs/operators/zipAll.d.ts | 1 + node_modules/rxjs/operators/zipAll.js | 7 + node_modules/rxjs/operators/zipAll.js.map | 1 + node_modules/rxjs/package.json | 210 + .../rxjs/scheduler/animationFrame.d.ts | 1 + node_modules/rxjs/scheduler/animationFrame.js | 7 + .../rxjs/scheduler/animationFrame.js.map | 1 + node_modules/rxjs/scheduler/asap.d.ts | 1 + node_modules/rxjs/scheduler/asap.js | 7 + node_modules/rxjs/scheduler/asap.js.map | 1 + node_modules/rxjs/scheduler/async.d.ts | 1 + node_modules/rxjs/scheduler/async.js | 7 + node_modules/rxjs/scheduler/async.js.map | 1 + node_modules/rxjs/scheduler/queue.d.ts | 1 + node_modules/rxjs/scheduler/queue.js | 7 + node_modules/rxjs/scheduler/queue.js.map | 1 + node_modules/rxjs/src/AsyncSubject.ts | 1 + node_modules/rxjs/src/BehaviorSubject.ts | 1 + node_modules/rxjs/src/InnerSubscriber.ts | 1 + node_modules/rxjs/src/LICENSE.txt | 202 + node_modules/rxjs/src/MiscJSDoc.ts | 451 + node_modules/rxjs/src/Notification.ts | 1 + node_modules/rxjs/src/Observable.ts | 1 + node_modules/rxjs/src/Observer.ts | 1 + node_modules/rxjs/src/Operator.ts | 1 + node_modules/rxjs/src/OuterSubscriber.ts | 1 + node_modules/rxjs/src/README.md | 147 + node_modules/rxjs/src/ReplaySubject.ts | 1 + node_modules/rxjs/src/Rx.global.js | 5 + node_modules/rxjs/src/Rx.ts | 2 + node_modules/rxjs/src/Scheduler.ts | 1 + node_modules/rxjs/src/Subject.ts | 1 + node_modules/rxjs/src/SubjectSubscription.ts | 1 + node_modules/rxjs/src/Subscriber.ts | 1 + node_modules/rxjs/src/Subscription.ts | 1 + .../rxjs/src/add/observable/bindCallback.ts | 1 + .../src/add/observable/bindNodeCallback.ts | 1 + .../rxjs/src/add/observable/combineLatest.ts | 1 + .../rxjs/src/add/observable/concat.ts | 1 + node_modules/rxjs/src/add/observable/defer.ts | 1 + .../rxjs/src/add/observable/dom/ajax.ts | 1 + .../rxjs/src/add/observable/dom/webSocket.ts | 1 + node_modules/rxjs/src/add/observable/empty.ts | 1 + .../rxjs/src/add/observable/forkJoin.ts | 1 + node_modules/rxjs/src/add/observable/from.ts | 1 + .../rxjs/src/add/observable/fromEvent.ts | 1 + .../src/add/observable/fromEventPattern.ts | 1 + .../rxjs/src/add/observable/fromPromise.ts | 1 + .../rxjs/src/add/observable/generate.ts | 1 + node_modules/rxjs/src/add/observable/if.ts | 1 + .../rxjs/src/add/observable/interval.ts | 1 + node_modules/rxjs/src/add/observable/merge.ts | 1 + node_modules/rxjs/src/add/observable/never.ts | 1 + node_modules/rxjs/src/add/observable/of.ts | 1 + .../src/add/observable/onErrorResumeNext.ts | 1 + node_modules/rxjs/src/add/observable/pairs.ts | 1 + node_modules/rxjs/src/add/observable/race.ts | 1 + node_modules/rxjs/src/add/observable/range.ts | 1 + node_modules/rxjs/src/add/observable/throw.ts | 1 + node_modules/rxjs/src/add/observable/timer.ts | 1 + node_modules/rxjs/src/add/observable/using.ts | 1 + node_modules/rxjs/src/add/observable/zip.ts | 1 + node_modules/rxjs/src/add/operator/audit.ts | 1 + .../rxjs/src/add/operator/auditTime.ts | 1 + node_modules/rxjs/src/add/operator/buffer.ts | 1 + .../rxjs/src/add/operator/bufferCount.ts | 1 + .../rxjs/src/add/operator/bufferTime.ts | 1 + .../rxjs/src/add/operator/bufferToggle.ts | 1 + .../rxjs/src/add/operator/bufferWhen.ts | 1 + node_modules/rxjs/src/add/operator/catch.ts | 1 + .../rxjs/src/add/operator/combineAll.ts | 1 + .../rxjs/src/add/operator/combineLatest.ts | 1 + node_modules/rxjs/src/add/operator/concat.ts | 1 + .../rxjs/src/add/operator/concatAll.ts | 1 + .../rxjs/src/add/operator/concatMap.ts | 1 + .../rxjs/src/add/operator/concatMapTo.ts | 1 + node_modules/rxjs/src/add/operator/count.ts | 1 + .../rxjs/src/add/operator/debounce.ts | 1 + .../rxjs/src/add/operator/debounceTime.ts | 1 + .../rxjs/src/add/operator/defaultIfEmpty.ts | 1 + node_modules/rxjs/src/add/operator/delay.ts | 1 + .../rxjs/src/add/operator/delayWhen.ts | 1 + .../rxjs/src/add/operator/dematerialize.ts | 1 + .../rxjs/src/add/operator/distinct.ts | 1 + .../src/add/operator/distinctUntilChanged.ts | 1 + .../add/operator/distinctUntilKeyChanged.ts | 1 + node_modules/rxjs/src/add/operator/do.ts | 1 + .../rxjs/src/add/operator/elementAt.ts | 1 + node_modules/rxjs/src/add/operator/every.ts | 1 + node_modules/rxjs/src/add/operator/exhaust.ts | 1 + .../rxjs/src/add/operator/exhaustMap.ts | 1 + node_modules/rxjs/src/add/operator/expand.ts | 1 + node_modules/rxjs/src/add/operator/filter.ts | 1 + node_modules/rxjs/src/add/operator/finally.ts | 1 + node_modules/rxjs/src/add/operator/find.ts | 1 + .../rxjs/src/add/operator/findIndex.ts | 1 + node_modules/rxjs/src/add/operator/first.ts | 1 + node_modules/rxjs/src/add/operator/groupBy.ts | 1 + .../rxjs/src/add/operator/ignoreElements.ts | 1 + node_modules/rxjs/src/add/operator/isEmpty.ts | 1 + node_modules/rxjs/src/add/operator/last.ts | 1 + node_modules/rxjs/src/add/operator/let.ts | 1 + node_modules/rxjs/src/add/operator/map.ts | 1 + node_modules/rxjs/src/add/operator/mapTo.ts | 1 + .../rxjs/src/add/operator/materialize.ts | 1 + node_modules/rxjs/src/add/operator/max.ts | 1 + node_modules/rxjs/src/add/operator/merge.ts | 1 + .../rxjs/src/add/operator/mergeAll.ts | 1 + .../rxjs/src/add/operator/mergeMap.ts | 1 + .../rxjs/src/add/operator/mergeMapTo.ts | 1 + .../rxjs/src/add/operator/mergeScan.ts | 1 + node_modules/rxjs/src/add/operator/min.ts | 1 + .../rxjs/src/add/operator/multicast.ts | 1 + .../rxjs/src/add/operator/observeOn.ts | 1 + .../src/add/operator/onErrorResumeNext.ts | 1 + .../rxjs/src/add/operator/pairwise.ts | 1 + .../rxjs/src/add/operator/partition.ts | 1 + node_modules/rxjs/src/add/operator/pluck.ts | 1 + node_modules/rxjs/src/add/operator/publish.ts | 1 + .../rxjs/src/add/operator/publishBehavior.ts | 1 + .../rxjs/src/add/operator/publishLast.ts | 1 + .../rxjs/src/add/operator/publishReplay.ts | 1 + node_modules/rxjs/src/add/operator/race.ts | 1 + node_modules/rxjs/src/add/operator/reduce.ts | 1 + node_modules/rxjs/src/add/operator/repeat.ts | 1 + .../rxjs/src/add/operator/repeatWhen.ts | 1 + node_modules/rxjs/src/add/operator/retry.ts | 1 + .../rxjs/src/add/operator/retryWhen.ts | 1 + node_modules/rxjs/src/add/operator/sample.ts | 1 + .../rxjs/src/add/operator/sampleTime.ts | 1 + node_modules/rxjs/src/add/operator/scan.ts | 1 + .../rxjs/src/add/operator/sequenceEqual.ts | 1 + node_modules/rxjs/src/add/operator/share.ts | 1 + .../rxjs/src/add/operator/shareReplay.ts | 1 + node_modules/rxjs/src/add/operator/single.ts | 1 + node_modules/rxjs/src/add/operator/skip.ts | 1 + .../rxjs/src/add/operator/skipLast.ts | 1 + .../rxjs/src/add/operator/skipUntil.ts | 1 + .../rxjs/src/add/operator/skipWhile.ts | 1 + .../rxjs/src/add/operator/startWith.ts | 1 + .../rxjs/src/add/operator/subscribeOn.ts | 1 + node_modules/rxjs/src/add/operator/switch.ts | 1 + .../rxjs/src/add/operator/switchMap.ts | 1 + .../rxjs/src/add/operator/switchMapTo.ts | 1 + node_modules/rxjs/src/add/operator/take.ts | 1 + .../rxjs/src/add/operator/takeLast.ts | 1 + .../rxjs/src/add/operator/takeUntil.ts | 1 + .../rxjs/src/add/operator/takeWhile.ts | 1 + .../rxjs/src/add/operator/throttle.ts | 1 + .../rxjs/src/add/operator/throttleTime.ts | 1 + .../rxjs/src/add/operator/timeInterval.ts | 1 + node_modules/rxjs/src/add/operator/timeout.ts | 1 + .../rxjs/src/add/operator/timeoutWith.ts | 1 + .../rxjs/src/add/operator/timestamp.ts | 1 + node_modules/rxjs/src/add/operator/toArray.ts | 1 + .../rxjs/src/add/operator/toPromise.ts | 1 + node_modules/rxjs/src/add/operator/window.ts | 1 + .../rxjs/src/add/operator/windowCount.ts | 1 + .../rxjs/src/add/operator/windowTime.ts | 1 + .../rxjs/src/add/operator/windowToggle.ts | 1 + .../rxjs/src/add/operator/windowWhen.ts | 1 + .../rxjs/src/add/operator/withLatestFrom.ts | 1 + node_modules/rxjs/src/add/operator/zip.ts | 1 + node_modules/rxjs/src/add/operator/zipAll.ts | 1 + node_modules/rxjs/src/ajax/index.ts | 2 + node_modules/rxjs/src/ajax/package.json | 8 + node_modules/rxjs/src/fetch/index.ts | 1 + node_modules/rxjs/src/fetch/package.json | 8 + node_modules/rxjs/src/index.ts | 78 + node_modules/rxjs/src/interfaces.ts | 1 + .../rxjs/src/internal-compatibility/index.ts | 64 + .../src/internal-compatibility/package.json | 8 + .../rxjs/src/internal/AsyncSubject.ts | 49 + .../rxjs/src/internal/BehaviorSubject.ts | 45 + .../rxjs/src/internal/InnerSubscriber.ts | 29 + .../rxjs/src/internal/Notification.ts | 148 + node_modules/rxjs/src/internal/Observable.ts | 382 + node_modules/rxjs/src/internal/Observer.ts | 16 + node_modules/rxjs/src/internal/Operator.ts | 6 + .../rxjs/src/internal/OuterSubscriber.ts | 23 + .../rxjs/src/internal/ReplaySubject.ts | 138 + node_modules/rxjs/src/internal/Rx.ts | 228 + node_modules/rxjs/src/internal/Scheduler.ts | 68 + node_modules/rxjs/src/internal/Subject.ts | 188 + .../rxjs/src/internal/SubjectSubscription.ts | 39 + node_modules/rxjs/src/internal/Subscriber.ts | 302 + .../rxjs/src/internal/Subscription.ts | 224 + node_modules/rxjs/src/internal/config.ts | 35 + .../rxjs/src/internal/innerSubscribe.ts | 114 + .../observable/ConnectableObservable.ts | 182 + .../observable/SubscribeOnObservable.ts | 52 + .../src/internal/observable/bindCallback.ts | 290 + .../internal/observable/bindNodeCallback.ts | 278 + .../src/internal/observable/combineLatest.ts | 327 + .../rxjs/src/internal/observable/concat.ts | 147 + .../rxjs/src/internal/observable/defer.ts | 67 + .../internal/observable/dom/AjaxObservable.ts | 550 + .../src/internal/observable/dom/MiscJSDoc.ts | 77 + .../observable/dom/WebSocketSubject.ts | 387 + .../rxjs/src/internal/observable/dom/ajax.ts | 82 + .../rxjs/src/internal/observable/dom/fetch.ts | 173 + .../src/internal/observable/dom/webSocket.ts | 156 + .../rxjs/src/internal/observable/empty.ts | 68 + .../rxjs/src/internal/observable/forkJoin.ts | 204 + .../rxjs/src/internal/observable/from.ts | 118 + .../rxjs/src/internal/observable/fromArray.ts | 12 + .../rxjs/src/internal/observable/fromEvent.ts | 245 + .../internal/observable/fromEventPattern.ts | 169 + .../src/internal/observable/fromIterable.ts | 15 + .../src/internal/observable/fromObservable.ts | 12 + .../src/internal/observable/fromPromise.ts | 12 + .../rxjs/src/internal/observable/generate.ts | 379 + .../rxjs/src/internal/observable/iif.ts | 100 + .../rxjs/src/internal/observable/interval.ts | 83 + .../rxjs/src/internal/observable/merge.ts | 140 + .../rxjs/src/internal/observable/never.ts | 41 + .../rxjs/src/internal/observable/of.ts | 110 + .../internal/observable/onErrorResumeNext.ts | 102 + .../rxjs/src/internal/observable/pairs.ts | 91 + .../rxjs/src/internal/observable/partition.ts | 67 + .../rxjs/src/internal/observable/race.ts | 139 + .../rxjs/src/internal/observable/range.ts | 90 + .../src/internal/observable/throwError.ts | 84 + .../rxjs/src/internal/observable/timer.ts | 101 + .../rxjs/src/internal/observable/using.ts | 63 + .../rxjs/src/internal/observable/zip.ts | 323 + .../rxjs/src/internal/operators/audit.ts | 126 + .../rxjs/src/internal/operators/auditTime.ts | 57 + .../rxjs/src/internal/operators/buffer.ts | 85 + .../src/internal/operators/bufferCount.ts | 158 + .../rxjs/src/internal/operators/bufferTime.ts | 250 + .../src/internal/operators/bufferToggle.ts | 180 + .../rxjs/src/internal/operators/bufferWhen.ts | 140 + .../rxjs/src/internal/operators/catchError.ts | 147 + .../rxjs/src/internal/operators/combineAll.ts | 57 + .../src/internal/operators/combineLatest.ts | 59 + .../rxjs/src/internal/operators/concat.ts | 29 + .../rxjs/src/internal/operators/concatAll.ts | 68 + .../rxjs/src/internal/operators/concatMap.ts | 77 + .../src/internal/operators/concatMapTo.ts | 73 + .../rxjs/src/internal/operators/count.ts | 121 + .../rxjs/src/internal/operators/debounce.ts | 143 + .../src/internal/operators/debounceTime.ts | 130 + .../src/internal/operators/defaultIfEmpty.ts | 84 + .../rxjs/src/internal/operators/delay.ts | 161 + .../rxjs/src/internal/operators/delayWhen.ts | 225 + .../src/internal/operators/dematerialize.ts | 78 + .../rxjs/src/internal/operators/distinct.ts | 131 + .../operators/distinctUntilChanged.ts | 124 + .../operators/distinctUntilKeyChanged.ts | 81 + .../rxjs/src/internal/operators/elementAt.ts | 69 + .../rxjs/src/internal/operators/endWith.ts | 67 + .../rxjs/src/internal/operators/every.ts | 81 + .../rxjs/src/internal/operators/exhaust.ts | 97 + .../rxjs/src/internal/operators/exhaustMap.ts | 157 + .../rxjs/src/internal/operators/expand.ts | 174 + .../rxjs/src/internal/operators/filter.ts | 104 + .../rxjs/src/internal/operators/finalize.ts | 38 + .../rxjs/src/internal/operators/find.ts | 109 + .../rxjs/src/internal/operators/findIndex.ts | 47 + .../rxjs/src/internal/operators/first.ts | 91 + .../rxjs/src/internal/operators/groupBy.ts | 319 + .../src/internal/operators/ignoreElements.ts | 54 + .../rxjs/src/internal/operators/index.ts | 102 + .../rxjs/src/internal/operators/isEmpty.ts | 100 + .../rxjs/src/internal/operators/last.ts | 54 + .../rxjs/src/internal/operators/map.ts | 91 + .../rxjs/src/internal/operators/mapTo.ts | 72 + .../src/internal/operators/materialize.ts | 94 + .../rxjs/src/internal/operators/max.ts | 55 + .../rxjs/src/internal/operators/merge.ts | 41 + .../rxjs/src/internal/operators/mergeAll.ts | 66 + .../rxjs/src/internal/operators/mergeMap.ts | 179 + .../rxjs/src/internal/operators/mergeMapTo.ts | 64 + .../rxjs/src/internal/operators/mergeScan.ts | 146 + .../rxjs/src/internal/operators/min.ts | 53 + .../rxjs/src/internal/operators/multicast.ts | 69 + .../rxjs/src/internal/operators/observeOn.ts | 122 + .../internal/operators/onErrorResumeNext.ts | 175 + .../rxjs/src/internal/operators/pairwise.ts | 87 + .../rxjs/src/internal/operators/partition.ts | 60 + .../rxjs/src/internal/operators/pluck.ts | 70 + .../rxjs/src/internal/operators/publish.ts | 67 + .../src/internal/operators/publishBehavior.ts | 15 + .../src/internal/operators/publishLast.ts | 67 + .../src/internal/operators/publishReplay.ts | 25 + .../rxjs/src/internal/operators/race.ts | 36 + .../rxjs/src/internal/operators/reduce.ts | 82 + .../rxjs/src/internal/operators/refCount.ts | 148 + .../rxjs/src/internal/operators/repeat.ts | 106 + .../rxjs/src/internal/operators/repeatWhen.ts | 135 + .../rxjs/src/internal/operators/retry.ts | 89 + .../rxjs/src/internal/operators/retryWhen.ts | 109 + .../rxjs/src/internal/operators/sample.ts | 92 + .../rxjs/src/internal/operators/sampleTime.ts | 96 + .../rxjs/src/internal/operators/scan.ts | 121 + .../src/internal/operators/sequenceEqual.ts | 174 + .../rxjs/src/internal/operators/share.ts | 26 + .../src/internal/operators/shareReplay.ts | 125 + .../rxjs/src/internal/operators/single.ts | 123 + .../rxjs/src/internal/operators/skip.ts | 47 + .../rxjs/src/internal/operators/skipLast.ts | 96 + .../rxjs/src/internal/operators/skipUntil.ts | 101 + .../rxjs/src/internal/operators/skipWhile.ts | 64 + .../rxjs/src/internal/operators/startWith.ts | 77 + .../src/internal/operators/subscribeOn.ts | 64 + .../rxjs/src/internal/operators/switchAll.ts | 65 + .../rxjs/src/internal/operators/switchMap.ts | 168 + .../src/internal/operators/switchMapTo.ts | 57 + .../rxjs/src/internal/operators/take.ts | 99 + .../rxjs/src/internal/operators/takeLast.ts | 114 + .../rxjs/src/internal/operators/takeUntil.ts | 87 + .../rxjs/src/internal/operators/takeWhile.ts | 110 + .../rxjs/src/internal/operators/tap.ts | 147 + .../rxjs/src/internal/operators/throttle.ts | 158 + .../src/internal/operators/throttleTime.ts | 174 + .../src/internal/operators/throwIfEmpty.ts | 81 + .../src/internal/operators/timeInterval.ts | 75 + .../rxjs/src/internal/operators/timeout.ts | 92 + .../src/internal/operators/timeoutWith.ts | 143 + .../rxjs/src/internal/operators/timestamp.ts | 48 + .../rxjs/src/internal/operators/toArray.ts | 45 + .../rxjs/src/internal/operators/window.ts | 126 + .../src/internal/operators/windowCount.ts | 149 + .../rxjs/src/internal/operators/windowTime.ts | 282 + .../src/internal/operators/windowToggle.ts | 211 + .../rxjs/src/internal/operators/windowWhen.ts | 147 + .../src/internal/operators/withLatestFrom.ts | 155 + .../rxjs/src/internal/operators/zip.ts | 43 + .../rxjs/src/internal/operators/zipAll.ts | 12 + .../src/internal/scheduled/scheduleArray.ts | 21 + .../internal/scheduled/scheduleIterable.ts | 45 + .../internal/scheduled/scheduleObservable.ts | 19 + .../src/internal/scheduled/schedulePromise.ts | 21 + .../rxjs/src/internal/scheduled/scheduled.ts | 36 + .../rxjs/src/internal/scheduler/Action.ts | 36 + .../scheduler/AnimationFrameAction.ts | 47 + .../scheduler/AnimationFrameScheduler.ts | 31 + .../rxjs/src/internal/scheduler/AsapAction.ts | 48 + .../src/internal/scheduler/AsapScheduler.ts | 31 + .../src/internal/scheduler/AsyncAction.ts | 156 + .../src/internal/scheduler/AsyncScheduler.ts | 72 + .../src/internal/scheduler/QueueAction.ts | 44 + .../src/internal/scheduler/QueueScheduler.ts | 4 + .../scheduler/VirtualTimeScheduler.ts | 108 + .../src/internal/scheduler/animationFrame.ts | 40 + .../rxjs/src/internal/scheduler/asap.ts | 43 + .../rxjs/src/internal/scheduler/async.ts | 55 + .../rxjs/src/internal/scheduler/queue.ts | 71 + .../rxjs/src/internal/symbol/iterator.ts | 14 + .../rxjs/src/internal/symbol/observable.ts | 11 + .../rxjs/src/internal/symbol/rxSubscriber.ts | 10 + .../src/internal/testing/ColdObservable.ts | 48 + .../src/internal/testing/HotObservable.ts | 55 + .../src/internal/testing/SubscriptionLog.ts | 5 + .../internal/testing/SubscriptionLoggable.ts | 21 + .../rxjs/src/internal/testing/TestMessage.ts | 7 + .../src/internal/testing/TestScheduler.ts | 401 + node_modules/rxjs/src/internal/types.ts | 103 + node_modules/rxjs/src/internal/umd.ts | 26 + .../internal/util/ArgumentOutOfRangeError.ts | 31 + .../rxjs/src/internal/util/EmptyError.ts | 31 + .../rxjs/src/internal/util/Immediate.ts | 41 + .../internal/util/ObjectUnsubscribedError.ts | 30 + .../rxjs/src/internal/util/TimeoutError.ts | 28 + .../src/internal/util/UnsubscriptionError.ts | 29 + .../rxjs/src/internal/util/applyMixins.ts | 10 + .../rxjs/src/internal/util/canReportError.ts | 22 + .../rxjs/src/internal/util/errorObject.ts | 2 + .../rxjs/src/internal/util/hostReportError.ts | 8 + .../rxjs/src/internal/util/identity.ts | 3 + .../rxjs/src/internal/util/isArray.ts | 1 + .../rxjs/src/internal/util/isArrayLike.ts | 1 + node_modules/rxjs/src/internal/util/isDate.ts | 3 + .../rxjs/src/internal/util/isFunction.ts | 3 + .../src/internal/util/isInteropObservable.ts | 7 + .../rxjs/src/internal/util/isIterable.ts | 6 + .../rxjs/src/internal/util/isNumeric.ts | 9 + .../rxjs/src/internal/util/isObject.ts | 3 + .../rxjs/src/internal/util/isObservable.ts | 10 + .../rxjs/src/internal/util/isPromise.ts | 8 + .../rxjs/src/internal/util/isScheduler.ts | 5 + node_modules/rxjs/src/internal/util/noop.ts | 2 + node_modules/rxjs/src/internal/util/not.ts | 8 + node_modules/rxjs/src/internal/util/pipe.ts | 36 + node_modules/rxjs/src/internal/util/root.ts | 31 + .../rxjs/src/internal/util/subscribeTo.ts | 29 + .../src/internal/util/subscribeToArray.ts | 12 + .../src/internal/util/subscribeToIterable.ts | 35 + .../internal/util/subscribeToObservable.ts | 17 + .../src/internal/util/subscribeToPromise.ts | 16 + .../src/internal/util/subscribeToResult.ts | 37 + .../rxjs/src/internal/util/toSubscriber.ts | 26 + .../rxjs/src/internal/util/tryCatch.ts | 20 + .../src/observable/ArrayLikeObservable.ts | 1 + .../rxjs/src/observable/ArrayObservable.ts | 1 + .../src/observable/BoundCallbackObservable.ts | 1 + .../observable/BoundNodeCallbackObservable.ts | 1 + .../src/observable/ConnectableObservable.ts | 1 + .../rxjs/src/observable/DeferObservable.ts | 1 + .../rxjs/src/observable/EmptyObservable.ts | 1 + .../rxjs/src/observable/ErrorObservable.ts | 1 + .../rxjs/src/observable/ForkJoinObservable.ts | 1 + .../src/observable/FromEventObservable.ts | 1 + .../observable/FromEventPatternObservable.ts | 1 + .../rxjs/src/observable/FromObservable.ts | 1 + .../rxjs/src/observable/GenerateObservable.ts | 1 + .../rxjs/src/observable/IfObservable.ts | 1 + .../rxjs/src/observable/IntervalObservable.ts | 1 + .../rxjs/src/observable/IteratorObservable.ts | 1 + .../rxjs/src/observable/NeverObservable.ts | 1 + .../rxjs/src/observable/PairsObservable.ts | 1 + .../rxjs/src/observable/PromiseObservable.ts | 1 + .../rxjs/src/observable/RangeObservable.ts | 1 + .../rxjs/src/observable/ScalarObservable.ts | 1 + .../src/observable/SubscribeOnObservable.ts | 1 + .../rxjs/src/observable/TimerObservable.ts | 1 + .../rxjs/src/observable/UsingObservable.ts | 1 + .../rxjs/src/observable/bindCallback.ts | 1 + .../rxjs/src/observable/bindNodeCallback.ts | 1 + .../rxjs/src/observable/combineLatest.ts | 1 + node_modules/rxjs/src/observable/concat.ts | 1 + node_modules/rxjs/src/observable/defer.ts | 1 + .../rxjs/src/observable/dom/AjaxObservable.ts | 1 + .../src/observable/dom/WebSocketSubject.ts | 1 + node_modules/rxjs/src/observable/dom/ajax.ts | 1 + .../rxjs/src/observable/dom/webSocket.ts | 1 + node_modules/rxjs/src/observable/empty.ts | 1 + node_modules/rxjs/src/observable/forkJoin.ts | 1 + node_modules/rxjs/src/observable/from.ts | 1 + node_modules/rxjs/src/observable/fromArray.ts | 1 + node_modules/rxjs/src/observable/fromEvent.ts | 1 + .../rxjs/src/observable/fromEventPattern.ts | 1 + .../rxjs/src/observable/fromIterable.ts | 1 + .../rxjs/src/observable/fromPromise.ts | 1 + node_modules/rxjs/src/observable/generate.ts | 1 + node_modules/rxjs/src/observable/if.ts | 1 + node_modules/rxjs/src/observable/interval.ts | 1 + node_modules/rxjs/src/observable/merge.ts | 1 + node_modules/rxjs/src/observable/never.ts | 1 + node_modules/rxjs/src/observable/of.ts | 1 + .../rxjs/src/observable/onErrorResumeNext.ts | 1 + node_modules/rxjs/src/observable/pairs.ts | 1 + node_modules/rxjs/src/observable/race.ts | 1 + node_modules/rxjs/src/observable/range.ts | 1 + node_modules/rxjs/src/observable/throw.ts | 1 + node_modules/rxjs/src/observable/timer.ts | 1 + node_modules/rxjs/src/observable/using.ts | 1 + node_modules/rxjs/src/observable/zip.ts | 1 + node_modules/rxjs/src/operator/audit.ts | 1 + node_modules/rxjs/src/operator/auditTime.ts | 1 + node_modules/rxjs/src/operator/buffer.ts | 1 + node_modules/rxjs/src/operator/bufferCount.ts | 1 + node_modules/rxjs/src/operator/bufferTime.ts | 1 + .../rxjs/src/operator/bufferToggle.ts | 1 + node_modules/rxjs/src/operator/bufferWhen.ts | 1 + node_modules/rxjs/src/operator/catch.ts | 1 + node_modules/rxjs/src/operator/combineAll.ts | 1 + .../rxjs/src/operator/combineLatest.ts | 1 + node_modules/rxjs/src/operator/concat.ts | 1 + node_modules/rxjs/src/operator/concatAll.ts | 1 + node_modules/rxjs/src/operator/concatMap.ts | 1 + node_modules/rxjs/src/operator/concatMapTo.ts | 1 + node_modules/rxjs/src/operator/count.ts | 1 + node_modules/rxjs/src/operator/debounce.ts | 1 + .../rxjs/src/operator/debounceTime.ts | 1 + .../rxjs/src/operator/defaultIfEmpty.ts | 1 + node_modules/rxjs/src/operator/delay.ts | 1 + node_modules/rxjs/src/operator/delayWhen.ts | 1 + .../rxjs/src/operator/dematerialize.ts | 1 + node_modules/rxjs/src/operator/distinct.ts | 1 + .../rxjs/src/operator/distinctUntilChanged.ts | 1 + .../src/operator/distinctUntilKeyChanged.ts | 1 + node_modules/rxjs/src/operator/do.ts | 1 + node_modules/rxjs/src/operator/elementAt.ts | 1 + node_modules/rxjs/src/operator/every.ts | 1 + node_modules/rxjs/src/operator/exhaust.ts | 1 + node_modules/rxjs/src/operator/exhaustMap.ts | 1 + node_modules/rxjs/src/operator/expand.ts | 1 + node_modules/rxjs/src/operator/filter.ts | 1 + node_modules/rxjs/src/operator/finally.ts | 1 + node_modules/rxjs/src/operator/find.ts | 1 + node_modules/rxjs/src/operator/findIndex.ts | 1 + node_modules/rxjs/src/operator/first.ts | 1 + node_modules/rxjs/src/operator/groupBy.ts | 1 + .../rxjs/src/operator/ignoreElements.ts | 1 + node_modules/rxjs/src/operator/isEmpty.ts | 1 + node_modules/rxjs/src/operator/last.ts | 1 + node_modules/rxjs/src/operator/let.ts | 1 + node_modules/rxjs/src/operator/map.ts | 1 + node_modules/rxjs/src/operator/mapTo.ts | 1 + node_modules/rxjs/src/operator/materialize.ts | 1 + node_modules/rxjs/src/operator/max.ts | 1 + node_modules/rxjs/src/operator/merge.ts | 1 + node_modules/rxjs/src/operator/mergeAll.ts | 1 + node_modules/rxjs/src/operator/mergeMap.ts | 1 + node_modules/rxjs/src/operator/mergeMapTo.ts | 1 + node_modules/rxjs/src/operator/mergeScan.ts | 1 + node_modules/rxjs/src/operator/min.ts | 1 + node_modules/rxjs/src/operator/multicast.ts | 1 + node_modules/rxjs/src/operator/observeOn.ts | 1 + .../rxjs/src/operator/onErrorResumeNext.ts | 1 + node_modules/rxjs/src/operator/pairwise.ts | 1 + node_modules/rxjs/src/operator/partition.ts | 1 + node_modules/rxjs/src/operator/pluck.ts | 1 + node_modules/rxjs/src/operator/publish.ts | 1 + .../rxjs/src/operator/publishBehavior.ts | 1 + node_modules/rxjs/src/operator/publishLast.ts | 1 + .../rxjs/src/operator/publishReplay.ts | 1 + node_modules/rxjs/src/operator/race.ts | 1 + node_modules/rxjs/src/operator/reduce.ts | 1 + node_modules/rxjs/src/operator/repeat.ts | 1 + node_modules/rxjs/src/operator/repeatWhen.ts | 1 + node_modules/rxjs/src/operator/retry.ts | 1 + node_modules/rxjs/src/operator/retryWhen.ts | 1 + node_modules/rxjs/src/operator/sample.ts | 1 + node_modules/rxjs/src/operator/sampleTime.ts | 1 + node_modules/rxjs/src/operator/scan.ts | 1 + .../rxjs/src/operator/sequenceEqual.ts | 1 + node_modules/rxjs/src/operator/share.ts | 1 + node_modules/rxjs/src/operator/shareReplay.ts | 1 + node_modules/rxjs/src/operator/single.ts | 1 + node_modules/rxjs/src/operator/skip.ts | 1 + node_modules/rxjs/src/operator/skipLast.ts | 1 + node_modules/rxjs/src/operator/skipUntil.ts | 1 + node_modules/rxjs/src/operator/skipWhile.ts | 1 + node_modules/rxjs/src/operator/startWith.ts | 1 + node_modules/rxjs/src/operator/subscribeOn.ts | 1 + node_modules/rxjs/src/operator/switch.ts | 1 + node_modules/rxjs/src/operator/switchMap.ts | 1 + node_modules/rxjs/src/operator/switchMapTo.ts | 1 + node_modules/rxjs/src/operator/take.ts | 1 + node_modules/rxjs/src/operator/takeLast.ts | 1 + node_modules/rxjs/src/operator/takeUntil.ts | 1 + node_modules/rxjs/src/operator/takeWhile.ts | 1 + node_modules/rxjs/src/operator/throttle.ts | 1 + .../rxjs/src/operator/throttleTime.ts | 1 + .../rxjs/src/operator/timeInterval.ts | 1 + node_modules/rxjs/src/operator/timeout.ts | 1 + node_modules/rxjs/src/operator/timeoutWith.ts | 1 + node_modules/rxjs/src/operator/timestamp.ts | 1 + node_modules/rxjs/src/operator/toArray.ts | 1 + node_modules/rxjs/src/operator/toPromise.ts | 1 + node_modules/rxjs/src/operator/window.ts | 1 + node_modules/rxjs/src/operator/windowCount.ts | 1 + node_modules/rxjs/src/operator/windowTime.ts | 1 + .../rxjs/src/operator/windowToggle.ts | 1 + node_modules/rxjs/src/operator/windowWhen.ts | 1 + .../rxjs/src/operator/withLatestFrom.ts | 1 + node_modules/rxjs/src/operator/zip.ts | 1 + node_modules/rxjs/src/operator/zipAll.ts | 1 + node_modules/rxjs/src/operators/audit.ts | 1 + node_modules/rxjs/src/operators/auditTime.ts | 1 + node_modules/rxjs/src/operators/buffer.ts | 1 + .../rxjs/src/operators/bufferCount.ts | 1 + node_modules/rxjs/src/operators/bufferTime.ts | 1 + .../rxjs/src/operators/bufferToggle.ts | 1 + node_modules/rxjs/src/operators/bufferWhen.ts | 1 + node_modules/rxjs/src/operators/catchError.ts | 1 + node_modules/rxjs/src/operators/combineAll.ts | 1 + .../rxjs/src/operators/combineLatest.ts | 1 + node_modules/rxjs/src/operators/concat.ts | 1 + node_modules/rxjs/src/operators/concatAll.ts | 1 + node_modules/rxjs/src/operators/concatMap.ts | 1 + .../rxjs/src/operators/concatMapTo.ts | 1 + node_modules/rxjs/src/operators/count.ts | 1 + node_modules/rxjs/src/operators/debounce.ts | 1 + .../rxjs/src/operators/debounceTime.ts | 1 + .../rxjs/src/operators/defaultIfEmpty.ts | 1 + node_modules/rxjs/src/operators/delay.ts | 1 + node_modules/rxjs/src/operators/delayWhen.ts | 1 + .../rxjs/src/operators/dematerialize.ts | 1 + node_modules/rxjs/src/operators/distinct.ts | 1 + .../src/operators/distinctUntilChanged.ts | 1 + .../src/operators/distinctUntilKeyChanged.ts | 1 + node_modules/rxjs/src/operators/elementAt.ts | 1 + node_modules/rxjs/src/operators/every.ts | 1 + node_modules/rxjs/src/operators/exhaust.ts | 1 + node_modules/rxjs/src/operators/exhaustMap.ts | 1 + node_modules/rxjs/src/operators/expand.ts | 1 + node_modules/rxjs/src/operators/filter.ts | 1 + node_modules/rxjs/src/operators/finalize.ts | 1 + node_modules/rxjs/src/operators/find.ts | 1 + node_modules/rxjs/src/operators/findIndex.ts | 1 + node_modules/rxjs/src/operators/first.ts | 1 + node_modules/rxjs/src/operators/groupBy.ts | 1 + .../rxjs/src/operators/ignoreElements.ts | 1 + node_modules/rxjs/src/operators/index.ts | 105 + node_modules/rxjs/src/operators/isEmpty.ts | 1 + node_modules/rxjs/src/operators/last.ts | 1 + node_modules/rxjs/src/operators/map.ts | 1 + node_modules/rxjs/src/operators/mapTo.ts | 1 + .../rxjs/src/operators/materialize.ts | 1 + node_modules/rxjs/src/operators/max.ts | 1 + node_modules/rxjs/src/operators/merge.ts | 1 + node_modules/rxjs/src/operators/mergeAll.ts | 1 + node_modules/rxjs/src/operators/mergeMap.ts | 1 + node_modules/rxjs/src/operators/mergeMapTo.ts | 1 + node_modules/rxjs/src/operators/mergeScan.ts | 1 + node_modules/rxjs/src/operators/min.ts | 1 + node_modules/rxjs/src/operators/multicast.ts | 1 + node_modules/rxjs/src/operators/observeOn.ts | 1 + .../rxjs/src/operators/onErrorResumeNext.ts | 1 + node_modules/rxjs/src/operators/package.json | 8 + node_modules/rxjs/src/operators/pairwise.ts | 1 + node_modules/rxjs/src/operators/partition.ts | 1 + node_modules/rxjs/src/operators/pluck.ts | 1 + node_modules/rxjs/src/operators/publish.ts | 1 + .../rxjs/src/operators/publishBehavior.ts | 1 + .../rxjs/src/operators/publishLast.ts | 1 + .../rxjs/src/operators/publishReplay.ts | 1 + node_modules/rxjs/src/operators/race.ts | 1 + node_modules/rxjs/src/operators/reduce.ts | 1 + node_modules/rxjs/src/operators/refCount.ts | 1 + node_modules/rxjs/src/operators/repeat.ts | 1 + node_modules/rxjs/src/operators/repeatWhen.ts | 1 + node_modules/rxjs/src/operators/retry.ts | 1 + node_modules/rxjs/src/operators/retryWhen.ts | 1 + node_modules/rxjs/src/operators/sample.ts | 1 + node_modules/rxjs/src/operators/sampleTime.ts | 1 + node_modules/rxjs/src/operators/scan.ts | 1 + .../rxjs/src/operators/sequenceEqual.ts | 1 + node_modules/rxjs/src/operators/share.ts | 1 + .../rxjs/src/operators/shareReplay.ts | 1 + node_modules/rxjs/src/operators/single.ts | 1 + node_modules/rxjs/src/operators/skip.ts | 1 + node_modules/rxjs/src/operators/skipLast.ts | 1 + node_modules/rxjs/src/operators/skipUntil.ts | 1 + node_modules/rxjs/src/operators/skipWhile.ts | 1 + node_modules/rxjs/src/operators/startWith.ts | 1 + .../rxjs/src/operators/subscribeOn.ts | 1 + node_modules/rxjs/src/operators/switchAll.ts | 1 + node_modules/rxjs/src/operators/switchMap.ts | 1 + .../rxjs/src/operators/switchMapTo.ts | 1 + node_modules/rxjs/src/operators/take.ts | 1 + node_modules/rxjs/src/operators/takeLast.ts | 1 + node_modules/rxjs/src/operators/takeUntil.ts | 1 + node_modules/rxjs/src/operators/takeWhile.ts | 1 + node_modules/rxjs/src/operators/tap.ts | 1 + node_modules/rxjs/src/operators/throttle.ts | 1 + .../rxjs/src/operators/throttleTime.ts | 1 + .../rxjs/src/operators/throwIfEmpty.ts | 1 + .../rxjs/src/operators/timeInterval.ts | 1 + node_modules/rxjs/src/operators/timeout.ts | 1 + .../rxjs/src/operators/timeoutWith.ts | 1 + node_modules/rxjs/src/operators/timestamp.ts | 1 + node_modules/rxjs/src/operators/toArray.ts | 1 + node_modules/rxjs/src/operators/window.ts | 1 + .../rxjs/src/operators/windowCount.ts | 1 + node_modules/rxjs/src/operators/windowTime.ts | 1 + .../rxjs/src/operators/windowToggle.ts | 1 + node_modules/rxjs/src/operators/windowWhen.ts | 1 + .../rxjs/src/operators/withLatestFrom.ts | 1 + node_modules/rxjs/src/operators/zip.ts | 1 + node_modules/rxjs/src/operators/zipAll.ts | 1 + .../rxjs/src/scheduler/animationFrame.ts | 1 + node_modules/rxjs/src/scheduler/asap.ts | 1 + node_modules/rxjs/src/scheduler/async.ts | 1 + node_modules/rxjs/src/scheduler/queue.ts | 1 + node_modules/rxjs/src/symbol/iterator.ts | 1 + node_modules/rxjs/src/symbol/observable.ts | 1 + node_modules/rxjs/src/symbol/rxSubscriber.ts | 1 + node_modules/rxjs/src/testing/index.ts | 1 + node_modules/rxjs/src/testing/package.json | 8 + node_modules/rxjs/src/tsconfig.json | 32 + .../rxjs/src/util/ArgumentOutOfRangeError.ts | 1 + node_modules/rxjs/src/util/EmptyError.ts | 1 + node_modules/rxjs/src/util/Immediate.ts | 1 + .../rxjs/src/util/ObjectUnsubscribedError.ts | 1 + node_modules/rxjs/src/util/TimeoutError.ts | 1 + .../rxjs/src/util/UnsubscriptionError.ts | 1 + node_modules/rxjs/src/util/applyMixins.ts | 1 + node_modules/rxjs/src/util/errorObject.ts | 1 + node_modules/rxjs/src/util/hostReportError.ts | 1 + node_modules/rxjs/src/util/identity.ts | 1 + node_modules/rxjs/src/util/isArray.ts | 1 + node_modules/rxjs/src/util/isArrayLike.ts | 1 + node_modules/rxjs/src/util/isDate.ts | 1 + node_modules/rxjs/src/util/isFunction.ts | 1 + node_modules/rxjs/src/util/isIterable.ts | 1 + node_modules/rxjs/src/util/isNumeric.ts | 1 + node_modules/rxjs/src/util/isObject.ts | 1 + node_modules/rxjs/src/util/isObservable.ts | 1 + node_modules/rxjs/src/util/isPromise.ts | 1 + node_modules/rxjs/src/util/isScheduler.ts | 1 + node_modules/rxjs/src/util/noop.ts | 1 + node_modules/rxjs/src/util/not.ts | 1 + node_modules/rxjs/src/util/pipe.ts | 1 + node_modules/rxjs/src/util/root.ts | 1 + node_modules/rxjs/src/util/subscribeTo.ts | 1 + .../rxjs/src/util/subscribeToArray.ts | 1 + .../rxjs/src/util/subscribeToIterable.ts | 1 + .../rxjs/src/util/subscribeToObservable.ts | 1 + .../rxjs/src/util/subscribeToPromise.ts | 1 + .../rxjs/src/util/subscribeToResult.ts | 1 + node_modules/rxjs/src/util/toSubscriber.ts | 1 + node_modules/rxjs/src/util/tryCatch.ts | 1 + node_modules/rxjs/src/webSocket/index.ts | 2 + node_modules/rxjs/src/webSocket/package.json | 8 + node_modules/rxjs/symbol/iterator.d.ts | 1 + node_modules/rxjs/symbol/iterator.js | 7 + node_modules/rxjs/symbol/iterator.js.map | 1 + node_modules/rxjs/symbol/observable.d.ts | 1 + node_modules/rxjs/symbol/observable.js | 7 + node_modules/rxjs/symbol/observable.js.map | 1 + node_modules/rxjs/symbol/rxSubscriber.d.ts | 1 + node_modules/rxjs/symbol/rxSubscriber.js | 7 + node_modules/rxjs/symbol/rxSubscriber.js.map | 1 + node_modules/rxjs/testing/index.d.ts | 1 + node_modules/rxjs/testing/index.js | 5 + node_modules/rxjs/testing/index.js.map | 1 + node_modules/rxjs/testing/package.json | 8 + .../rxjs/util/ArgumentOutOfRangeError.d.ts | 1 + .../rxjs/util/ArgumentOutOfRangeError.js | 7 + .../rxjs/util/ArgumentOutOfRangeError.js.map | 1 + node_modules/rxjs/util/EmptyError.d.ts | 1 + node_modules/rxjs/util/EmptyError.js | 7 + node_modules/rxjs/util/EmptyError.js.map | 1 + node_modules/rxjs/util/Immediate.d.ts | 1 + node_modules/rxjs/util/Immediate.js | 7 + node_modules/rxjs/util/Immediate.js.map | 1 + .../rxjs/util/ObjectUnsubscribedError.d.ts | 1 + .../rxjs/util/ObjectUnsubscribedError.js | 7 + .../rxjs/util/ObjectUnsubscribedError.js.map | 1 + node_modules/rxjs/util/TimeoutError.d.ts | 1 + node_modules/rxjs/util/TimeoutError.js | 7 + node_modules/rxjs/util/TimeoutError.js.map | 1 + .../rxjs/util/UnsubscriptionError.d.ts | 1 + node_modules/rxjs/util/UnsubscriptionError.js | 7 + .../rxjs/util/UnsubscriptionError.js.map | 1 + node_modules/rxjs/util/applyMixins.d.ts | 1 + node_modules/rxjs/util/applyMixins.js | 7 + node_modules/rxjs/util/applyMixins.js.map | 1 + node_modules/rxjs/util/errorObject.d.ts | 1 + node_modules/rxjs/util/errorObject.js | 7 + node_modules/rxjs/util/errorObject.js.map | 1 + node_modules/rxjs/util/hostReportError.d.ts | 1 + node_modules/rxjs/util/hostReportError.js | 7 + node_modules/rxjs/util/hostReportError.js.map | 1 + node_modules/rxjs/util/identity.d.ts | 1 + node_modules/rxjs/util/identity.js | 7 + node_modules/rxjs/util/identity.js.map | 1 + node_modules/rxjs/util/isArray.d.ts | 1 + node_modules/rxjs/util/isArray.js | 7 + node_modules/rxjs/util/isArray.js.map | 1 + node_modules/rxjs/util/isArrayLike.d.ts | 1 + node_modules/rxjs/util/isArrayLike.js | 7 + node_modules/rxjs/util/isArrayLike.js.map | 1 + node_modules/rxjs/util/isDate.d.ts | 1 + node_modules/rxjs/util/isDate.js | 7 + node_modules/rxjs/util/isDate.js.map | 1 + node_modules/rxjs/util/isFunction.d.ts | 1 + node_modules/rxjs/util/isFunction.js | 7 + node_modules/rxjs/util/isFunction.js.map | 1 + node_modules/rxjs/util/isIterable.d.ts | 1 + node_modules/rxjs/util/isIterable.js | 7 + node_modules/rxjs/util/isIterable.js.map | 1 + node_modules/rxjs/util/isNumeric.d.ts | 1 + node_modules/rxjs/util/isNumeric.js | 7 + node_modules/rxjs/util/isNumeric.js.map | 1 + node_modules/rxjs/util/isObject.d.ts | 1 + node_modules/rxjs/util/isObject.js | 7 + node_modules/rxjs/util/isObject.js.map | 1 + node_modules/rxjs/util/isObservable.d.ts | 1 + node_modules/rxjs/util/isObservable.js | 7 + node_modules/rxjs/util/isObservable.js.map | 1 + node_modules/rxjs/util/isPromise.d.ts | 1 + node_modules/rxjs/util/isPromise.js | 7 + node_modules/rxjs/util/isPromise.js.map | 1 + node_modules/rxjs/util/isScheduler.d.ts | 1 + node_modules/rxjs/util/isScheduler.js | 7 + node_modules/rxjs/util/isScheduler.js.map | 1 + node_modules/rxjs/util/noop.d.ts | 1 + node_modules/rxjs/util/noop.js | 7 + node_modules/rxjs/util/noop.js.map | 1 + node_modules/rxjs/util/not.d.ts | 1 + node_modules/rxjs/util/not.js | 7 + node_modules/rxjs/util/not.js.map | 1 + node_modules/rxjs/util/pipe.d.ts | 1 + node_modules/rxjs/util/pipe.js | 7 + node_modules/rxjs/util/pipe.js.map | 1 + node_modules/rxjs/util/root.d.ts | 1 + node_modules/rxjs/util/root.js | 7 + node_modules/rxjs/util/root.js.map | 1 + node_modules/rxjs/util/subscribeTo.d.ts | 1 + node_modules/rxjs/util/subscribeTo.js | 7 + node_modules/rxjs/util/subscribeTo.js.map | 1 + node_modules/rxjs/util/subscribeToArray.d.ts | 1 + node_modules/rxjs/util/subscribeToArray.js | 7 + .../rxjs/util/subscribeToArray.js.map | 1 + .../rxjs/util/subscribeToIterable.d.ts | 1 + node_modules/rxjs/util/subscribeToIterable.js | 7 + .../rxjs/util/subscribeToIterable.js.map | 1 + .../rxjs/util/subscribeToObservable.d.ts | 1 + .../rxjs/util/subscribeToObservable.js | 7 + .../rxjs/util/subscribeToObservable.js.map | 1 + .../rxjs/util/subscribeToPromise.d.ts | 1 + node_modules/rxjs/util/subscribeToPromise.js | 7 + .../rxjs/util/subscribeToPromise.js.map | 1 + node_modules/rxjs/util/subscribeToResult.d.ts | 1 + node_modules/rxjs/util/subscribeToResult.js | 7 + .../rxjs/util/subscribeToResult.js.map | 1 + node_modules/rxjs/util/toSubscriber.d.ts | 1 + node_modules/rxjs/util/toSubscriber.js | 7 + node_modules/rxjs/util/toSubscriber.js.map | 1 + node_modules/rxjs/util/tryCatch.d.ts | 1 + node_modules/rxjs/util/tryCatch.js | 7 + node_modules/rxjs/util/tryCatch.js.map | 1 + node_modules/rxjs/webSocket/index.d.ts | 2 + node_modules/rxjs/webSocket/index.js | 7 + node_modules/rxjs/webSocket/index.js.map | 1 + node_modules/rxjs/webSocket/package.json | 8 + node_modules/safe-buffer/LICENSE | 21 + node_modules/safe-buffer/README.md | 584 + node_modules/safe-buffer/index.d.ts | 187 + node_modules/safe-buffer/index.js | 62 + node_modules/safe-buffer/package.json | 73 + node_modules/safer-buffer/LICENSE | 21 + node_modules/safer-buffer/Porting-Buffer.md | 268 + node_modules/safer-buffer/Readme.md | 156 + node_modules/safer-buffer/dangerous.js | 58 + node_modules/safer-buffer/package.json | 63 + node_modules/safer-buffer/safer.js | 77 + node_modules/safer-buffer/tests.js | 406 + node_modules/saslprep/.editorconfig | 10 + node_modules/saslprep/.gitattributes | 1 + node_modules/saslprep/.travis.yml | 10 + node_modules/saslprep/CHANGELOG.md | 19 + node_modules/saslprep/LICENSE | 22 + node_modules/saslprep/code-points.mem | Bin 0 -> 419864 bytes node_modules/saslprep/generate-code-points.js | 51 + node_modules/saslprep/index.js | 157 + node_modules/saslprep/lib/code-points.js | 996 + .../saslprep/lib/memory-code-points.js | 39 + node_modules/saslprep/lib/util.js | 21 + node_modules/saslprep/package.json | 100 + node_modules/saslprep/readme.md | 31 + node_modules/saslprep/test/index.js | 76 + node_modules/saslprep/test/util.js | 16 + node_modules/semver-diff/index.d.ts | 58 + node_modules/semver-diff/index.js | 13 + node_modules/semver-diff/license | 9 + .../semver-diff/node_modules/.bin/semver | 15 + .../semver-diff/node_modules/.bin/semver.cmd | 17 + .../semver-diff/node_modules/.bin/semver.ps1 | 18 + .../node_modules/semver/CHANGELOG.md | 70 + .../semver-diff/node_modules/semver/LICENSE | 15 + .../semver-diff/node_modules/semver/README.md | 443 + .../node_modules/semver/bin/semver.js | 174 + .../node_modules/semver/package.json | 60 + .../semver-diff/node_modules/semver/range.bnf | 16 + .../semver-diff/node_modules/semver/semver.js | 1596 ++ node_modules/semver-diff/package.json | 69 + node_modules/semver-diff/readme.md | 77 + node_modules/semver/CHANGELOG.md | 39 + node_modules/semver/LICENSE | 15 + node_modules/semver/README.md | 412 + node_modules/semver/bin/semver | 160 + node_modules/semver/package.json | 61 + node_modules/semver/range.bnf | 16 + node_modules/semver/semver.js | 1483 ++ node_modules/send/HISTORY.md | 496 + node_modules/send/LICENSE | 23 + node_modules/send/README.md | 329 + node_modules/send/index.js | 1129 + node_modules/send/node_modules/ms/index.js | 162 + node_modules/send/node_modules/ms/license.md | 21 + .../send/node_modules/ms/package.json | 69 + node_modules/send/node_modules/ms/readme.md | 60 + node_modules/send/package.json | 106 + node_modules/serve-static/HISTORY.md | 451 + node_modules/serve-static/LICENSE | 25 + node_modules/serve-static/README.md | 259 + node_modules/serve-static/index.js | 210 + node_modules/serve-static/package.json | 77 + node_modules/set-blocking/CHANGELOG.md | 26 + node_modules/set-blocking/LICENSE.txt | 14 + node_modules/set-blocking/README.md | 31 + node_modules/set-blocking/index.js | 7 + node_modules/set-blocking/package.json | 70 + node_modules/setprototypeof/LICENSE | 13 + node_modules/setprototypeof/README.md | 31 + node_modules/setprototypeof/index.d.ts | 2 + node_modules/setprototypeof/index.js | 17 + node_modules/setprototypeof/package.json | 64 + node_modules/setprototypeof/test/index.js | 24 + node_modules/sift/.babelrc | 3 + node_modules/sift/.coveralls.yml | 1 + node_modules/sift/.travis.yml | 13 + node_modules/sift/MIT-LICENSE.txt | 20 + node_modules/sift/README.md | 417 + node_modules/sift/bower.json | 21 + node_modules/sift/changelog.md | 25 + node_modules/sift/coverage/coverage.json | 1 + node_modules/sift/coverage/lcov.info | 446 + node_modules/sift/gulpfile.js | 154 + node_modules/sift/index.d.ts | 62 + node_modules/sift/lib/index.js | 568 + node_modules/sift/package.json | 66 + node_modules/sift/sift.min.js | 1 + node_modules/sift/src/index.js | 554 + node_modules/sift/test/basic-test.js | 237 + node_modules/sift/test/immutable-test.js | 20 + node_modules/sift/test/objects-test.js | 409 + node_modules/sift/test/operations-test.js | 203 + node_modules/sift/tsconfig.json | 8 + node_modules/sift/webpack.config.js | 23 + node_modules/sift/yarn.lock | 4016 ++++ node_modules/signal-exit/CHANGELOG.md | 35 + node_modules/signal-exit/LICENSE.txt | 16 + node_modules/signal-exit/README.md | 39 + node_modules/signal-exit/index.js | 163 + node_modules/signal-exit/package.json | 66 + node_modules/signal-exit/signals.js | 53 + node_modules/sliced/History.md | 41 + node_modules/sliced/LICENSE | 22 + node_modules/sliced/README.md | 62 + node_modules/sliced/index.js | 33 + node_modules/sliced/package.json | 63 + node_modules/sparse-bitfield/.npmignore | 1 + node_modules/sparse-bitfield/.travis.yml | 6 + node_modules/sparse-bitfield/LICENSE | 21 + node_modules/sparse-bitfield/README.md | 62 + node_modules/sparse-bitfield/index.js | 95 + node_modules/sparse-bitfield/package.json | 55 + node_modules/sparse-bitfield/test.js | 79 + node_modules/spawn-command/.npmignore | 4 + node_modules/spawn-command/.travis.yml | 5 + node_modules/spawn-command/LICENSE | 19 + node_modules/spawn-command/README.md | 20 + node_modules/spawn-command/examples/simple.js | 11 + .../spawn-command/lib/spawn-command.js | 17 + node_modules/spawn-command/package.json | 50 + .../spawn-command/test/fixtures/commit | 9 + .../spawn-command/test/spawn-command-test.js | 26 + node_modules/spdx-correct/LICENSE | 202 + node_modules/spdx-correct/README.md | 14 + node_modules/spdx-correct/index.js | 364 + node_modules/spdx-correct/package.json | 88 + node_modules/spdx-exceptions/README.md | 36 + node_modules/spdx-exceptions/index.json | 40 + node_modules/spdx-exceptions/package.json | 55 + node_modules/spdx-expression-parse/AUTHORS | 4 + node_modules/spdx-expression-parse/LICENSE | 22 + node_modules/spdx-expression-parse/README.md | 91 + node_modules/spdx-expression-parse/index.js | 8 + .../spdx-expression-parse/package.json | 96 + node_modules/spdx-expression-parse/parse.js | 138 + node_modules/spdx-expression-parse/scan.js | 131 + node_modules/spdx-license-ids/README.md | 52 + node_modules/spdx-license-ids/deprecated.json | 26 + node_modules/spdx-license-ids/index.json | 414 + node_modules/spdx-license-ids/package.json | 75 + node_modules/sshpk/.npmignore | 9 + node_modules/sshpk/.travis.yml | 11 + node_modules/sshpk/LICENSE | 18 + node_modules/sshpk/README.md | 804 + node_modules/sshpk/bin/sshpk-conv | 243 + node_modules/sshpk/bin/sshpk-sign | 191 + node_modules/sshpk/bin/sshpk-verify | 167 + node_modules/sshpk/lib/algs.js | 168 + node_modules/sshpk/lib/certificate.js | 410 + node_modules/sshpk/lib/dhe.js | 397 + node_modules/sshpk/lib/ed-compat.js | 92 + node_modules/sshpk/lib/errors.js | 84 + node_modules/sshpk/lib/fingerprint.js | 220 + node_modules/sshpk/lib/formats/auto.js | 124 + node_modules/sshpk/lib/formats/dnssec.js | 287 + .../sshpk/lib/formats/openssh-cert.js | 352 + node_modules/sshpk/lib/formats/pem.js | 290 + node_modules/sshpk/lib/formats/pkcs1.js | 373 + node_modules/sshpk/lib/formats/pkcs8.js | 631 + node_modules/sshpk/lib/formats/putty.js | 99 + node_modules/sshpk/lib/formats/rfc4253.js | 166 + node_modules/sshpk/lib/formats/ssh-private.js | 262 + node_modules/sshpk/lib/formats/ssh.js | 115 + node_modules/sshpk/lib/formats/x509-pem.js | 88 + node_modules/sshpk/lib/formats/x509.js | 752 + node_modules/sshpk/lib/identity.js | 373 + node_modules/sshpk/lib/index.js | 40 + node_modules/sshpk/lib/key.js | 294 + node_modules/sshpk/lib/private-key.js | 246 + node_modules/sshpk/lib/signature.js | 314 + node_modules/sshpk/lib/ssh-buffer.js | 149 + node_modules/sshpk/lib/utils.js | 404 + node_modules/sshpk/man/man1/sshpk-conv.1 | 135 + node_modules/sshpk/man/man1/sshpk-sign.1 | 81 + node_modules/sshpk/man/man1/sshpk-verify.1 | 68 + node_modules/sshpk/package.json | 96 + node_modules/statuses/HISTORY.md | 65 + node_modules/statuses/LICENSE | 23 + node_modules/statuses/README.md | 127 + node_modules/statuses/codes.json | 66 + node_modules/statuses/index.js | 113 + node_modules/statuses/package.json | 90 + node_modules/string-width/index.d.ts | 29 + node_modules/string-width/index.js | 43 + node_modules/string-width/license | 9 + node_modules/string-width/package.json | 90 + node_modules/string-width/readme.md | 50 + node_modules/string_decoder/.travis.yml | 50 + node_modules/string_decoder/LICENSE | 48 + node_modules/string_decoder/README.md | 47 + .../string_decoder/lib/string_decoder.js | 296 + node_modules/string_decoder/package.json | 59 + node_modules/strip-ansi/index.d.ts | 17 + node_modules/strip-ansi/index.js | 4 + node_modules/strip-ansi/license | 9 + node_modules/strip-ansi/package.json | 88 + node_modules/strip-ansi/readme.md | 46 + node_modules/strip-json-comments/index.js | 70 + node_modules/strip-json-comments/license | 21 + node_modules/strip-json-comments/package.json | 74 + node_modules/strip-json-comments/readme.md | 64 + node_modules/supports-color/browser.js | 5 + node_modules/supports-color/index.js | 138 + node_modules/supports-color/license | 9 + node_modules/supports-color/package.json | 85 + node_modules/supports-color/readme.md | 85 + node_modules/term-size/index.d.ts | 21 + node_modules/term-size/index.js | 72 + node_modules/term-size/license | 9 + node_modules/term-size/package.json | 75 + node_modules/term-size/readme.md | 48 + node_modules/term-size/vendor/.DS_Store | Bin 0 -> 8196 bytes node_modules/term-size/vendor/macos/.DS_Store | Bin 0 -> 6148 bytes node_modules/term-size/vendor/macos/term-size | Bin 0 -> 27264 bytes .../term-size/vendor/windows/term-size.exe | Bin 0 -> 17408 bytes node_modules/to-readable-stream/index.js | 11 + node_modules/to-readable-stream/license | 9 + node_modules/to-readable-stream/package.json | 72 + node_modules/to-readable-stream/readme.md | 42 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 125 + node_modules/toidentifier/LICENSE | 21 + node_modules/toidentifier/README.md | 61 + node_modules/toidentifier/index.js | 30 + node_modules/toidentifier/package.json | 76 + node_modules/touch/LICENSE | 15 + node_modules/touch/README.md | 52 + node_modules/touch/bin/nodetouch.js | 112 + node_modules/touch/index.js | 224 + node_modules/touch/package.json | 64 + node_modules/tough-cookie/LICENSE | 12 + node_modules/tough-cookie/README.md | 527 + node_modules/tough-cookie/lib/cookie.js | 1482 ++ node_modules/tough-cookie/lib/memstore.js | 181 + node_modules/tough-cookie/lib/pathMatch.js | 61 + .../tough-cookie/lib/permuteDomain.js | 56 + .../tough-cookie/lib/pubsuffix-psl.js | 38 + node_modules/tough-cookie/lib/store.js | 75 + node_modules/tough-cookie/lib/version.js | 2 + node_modules/tough-cookie/package.json | 96 + node_modules/tree-kill/LICENSE | 21 + node_modules/tree-kill/README.md | 89 + node_modules/tree-kill/cli.js | 14 + node_modules/tree-kill/index.d.ts | 13 + node_modules/tree-kill/index.js | 118 + node_modules/tree-kill/package.json | 79 + node_modules/tslib/CopyrightNotice.txt | 15 + node_modules/tslib/LICENSE.txt | 12 + node_modules/tslib/README.md | 142 + node_modules/tslib/package.json | 56 + node_modules/tslib/tslib.d.ts | 37 + node_modules/tslib/tslib.es6.html | 1 + node_modules/tslib/tslib.es6.js | 218 + node_modules/tslib/tslib.html | 1 + node_modules/tslib/tslib.js | 284 + node_modules/tunnel-agent/LICENSE | 55 + node_modules/tunnel-agent/README.md | 4 + node_modules/tunnel-agent/index.js | 244 + node_modules/tunnel-agent/package.json | 55 + node_modules/tweetnacl/.npmignore | 4 + node_modules/tweetnacl/AUTHORS.md | 28 + node_modules/tweetnacl/CHANGELOG.md | 221 + node_modules/tweetnacl/LICENSE | 24 + .../tweetnacl/PULL_REQUEST_TEMPLATE.md | 20 + node_modules/tweetnacl/README.md | 459 + node_modules/tweetnacl/nacl-fast.js | 2388 ++ node_modules/tweetnacl/nacl-fast.min.js | 2 + node_modules/tweetnacl/nacl.d.ts | 98 + node_modules/tweetnacl/nacl.js | 1175 + node_modules/tweetnacl/nacl.min.js | 1 + node_modules/tweetnacl/package.json | 86 + node_modules/type-fest/index.d.ts | 20 + node_modules/type-fest/license | 9 + node_modules/type-fest/package.json | 83 + node_modules/type-fest/readme.md | 635 + node_modules/type-fest/source/basic.d.ts | 67 + node_modules/type-fest/source/except.d.ts | 22 + .../type-fest/source/literal-union.d.ts | 33 + .../type-fest/source/merge-exclusive.d.ts | 39 + node_modules/type-fest/source/merge.d.ts | 22 + node_modules/type-fest/source/mutable.d.ts | 22 + node_modules/type-fest/source/opaque.d.ts | 40 + .../type-fest/source/package-json.d.ts | 501 + .../type-fest/source/partial-deep.d.ts | 72 + node_modules/type-fest/source/promisable.d.ts | 23 + .../type-fest/source/readonly-deep.d.ts | 59 + .../source/require-at-least-one.d.ts | 32 + .../type-fest/source/require-exactly-one.d.ts | 36 + .../type-fest/source/set-optional.d.ts | 32 + .../type-fest/source/set-required.d.ts | 32 + node_modules/type-is/HISTORY.md | 259 + node_modules/type-is/LICENSE | 23 + node_modules/type-is/README.md | 170 + node_modules/type-is/index.js | 266 + node_modules/type-is/package.json | 85 + node_modules/typedarray-to-buffer/.airtap.yml | 15 + node_modules/typedarray-to-buffer/.travis.yml | 11 + node_modules/typedarray-to-buffer/LICENSE | 21 + node_modules/typedarray-to-buffer/README.md | 85 + node_modules/typedarray-to-buffer/index.js | 25 + .../typedarray-to-buffer/package.json | 75 + .../typedarray-to-buffer/test/basic.js | 50 + node_modules/undefsafe/.jscsrc | 13 + node_modules/undefsafe/.jshintrc | 16 + node_modules/undefsafe/.npmignore | 2 + node_modules/undefsafe/.travis.yml | 18 + node_modules/undefsafe/LICENSE | 22 + node_modules/undefsafe/README.md | 63 + node_modules/undefsafe/example.js | 14 + node_modules/undefsafe/lib/undefsafe.js | 125 + node_modules/undefsafe/package.json | 67 + node_modules/unique-string/index.d.ts | 16 + node_modules/unique-string/index.js | 4 + node_modules/unique-string/license | 9 + node_modules/unique-string/package.json | 72 + node_modules/unique-string/readme.md | 32 + node_modules/unpipe/HISTORY.md | 4 + node_modules/unpipe/LICENSE | 22 + node_modules/unpipe/README.md | 43 + node_modules/unpipe/index.js | 69 + node_modules/unpipe/package.json | 63 + node_modules/update-notifier/check.js | 28 + node_modules/update-notifier/index.js | 187 + node_modules/update-notifier/license | 9 + .../node_modules/chalk/index.d.ts | 411 + .../node_modules/chalk/license | 9 + .../node_modules/chalk/package.json | 95 + .../node_modules/chalk/readme.md | 304 + .../node_modules/chalk/source/index.js | 233 + .../node_modules/chalk/source/templates.js | 134 + .../node_modules/chalk/source/util.js | 39 + .../node_modules/has-flag/index.d.ts | 39 + .../node_modules/has-flag/index.js | 8 + .../node_modules/has-flag/license | 9 + .../node_modules/has-flag/package.json | 78 + .../node_modules/has-flag/readme.md | 89 + .../node_modules/supports-color/browser.js | 5 + .../node_modules/supports-color/index.js | 135 + .../node_modules/supports-color/license | 9 + .../node_modules/supports-color/package.json | 85 + .../node_modules/supports-color/readme.md | 76 + node_modules/update-notifier/package.json | 98 + node_modules/update-notifier/readme.md | 224 + node_modules/uri-js/LICENSE | 11 + node_modules/uri-js/README.md | 201 + node_modules/uri-js/dist/es5/uri.all.d.ts | 59 + node_modules/uri-js/dist/es5/uri.all.js | 1443 ++ node_modules/uri-js/dist/es5/uri.all.js.map | 1 + node_modules/uri-js/dist/es5/uri.all.min.d.ts | 59 + node_modules/uri-js/dist/es5/uri.all.min.js | 3 + .../uri-js/dist/es5/uri.all.min.js.map | 1 + node_modules/uri-js/dist/esnext/index.d.ts | 1 + node_modules/uri-js/dist/esnext/index.js | 17 + node_modules/uri-js/dist/esnext/index.js.map | 1 + .../uri-js/dist/esnext/regexps-iri.d.ts | 3 + .../uri-js/dist/esnext/regexps-iri.js | 3 + .../uri-js/dist/esnext/regexps-iri.js.map | 1 + .../uri-js/dist/esnext/regexps-uri.d.ts | 4 + .../uri-js/dist/esnext/regexps-uri.js | 42 + .../uri-js/dist/esnext/regexps-uri.js.map | 1 + .../uri-js/dist/esnext/schemes/http.d.ts | 3 + .../uri-js/dist/esnext/schemes/http.js | 28 + .../uri-js/dist/esnext/schemes/http.js.map | 1 + .../uri-js/dist/esnext/schemes/https.d.ts | 3 + .../uri-js/dist/esnext/schemes/https.js | 9 + .../uri-js/dist/esnext/schemes/https.js.map | 1 + .../uri-js/dist/esnext/schemes/mailto.d.ts | 12 + .../uri-js/dist/esnext/schemes/mailto.js | 148 + .../uri-js/dist/esnext/schemes/mailto.js.map | 1 + .../uri-js/dist/esnext/schemes/urn-uuid.d.ts | 7 + .../uri-js/dist/esnext/schemes/urn-uuid.js | 23 + .../dist/esnext/schemes/urn-uuid.js.map | 1 + .../uri-js/dist/esnext/schemes/urn.d.ts | 10 + .../uri-js/dist/esnext/schemes/urn.js | 49 + .../uri-js/dist/esnext/schemes/urn.js.map | 1 + .../uri-js/dist/esnext/schemes/ws.d.ts | 7 + node_modules/uri-js/dist/esnext/schemes/ws.js | 41 + .../uri-js/dist/esnext/schemes/ws.js.map | 1 + .../uri-js/dist/esnext/schemes/wss.d.ts | 3 + .../uri-js/dist/esnext/schemes/wss.js | 9 + .../uri-js/dist/esnext/schemes/wss.js.map | 1 + node_modules/uri-js/dist/esnext/uri.d.ts | 59 + node_modules/uri-js/dist/esnext/uri.js | 480 + node_modules/uri-js/dist/esnext/uri.js.map | 1 + node_modules/uri-js/dist/esnext/util.d.ts | 6 + node_modules/uri-js/dist/esnext/util.js | 36 + node_modules/uri-js/dist/esnext/util.js.map | 1 + node_modules/uri-js/package.json | 105 + node_modules/uri-js/yarn.lock | 1923 ++ node_modules/url-parse-lax/index.js | 12 + node_modules/url-parse-lax/license | 9 + node_modules/url-parse-lax/package.json | 74 + node_modules/url-parse-lax/readme.md | 127 + node_modules/util-deprecate/History.md | 16 + node_modules/util-deprecate/LICENSE | 24 + node_modules/util-deprecate/README.md | 53 + node_modules/util-deprecate/browser.js | 67 + node_modules/util-deprecate/node.js | 6 + node_modules/util-deprecate/package.json | 56 + node_modules/utils-merge/.npmignore | 9 + node_modules/utils-merge/LICENSE | 20 + node_modules/utils-merge/README.md | 34 + node_modules/utils-merge/index.js | 23 + node_modules/utils-merge/package.json | 66 + node_modules/uuid/AUTHORS | 5 + node_modules/uuid/CHANGELOG.md | 119 + node_modules/uuid/LICENSE.md | 21 + node_modules/uuid/README.md | 276 + node_modules/uuid/bin/uuid | 65 + node_modules/uuid/index.js | 8 + node_modules/uuid/lib/bytesToUuid.js | 26 + node_modules/uuid/lib/md5-browser.js | 216 + node_modules/uuid/lib/md5.js | 25 + node_modules/uuid/lib/rng-browser.js | 34 + node_modules/uuid/lib/rng.js | 8 + node_modules/uuid/lib/sha1-browser.js | 89 + node_modules/uuid/lib/sha1.js | 25 + node_modules/uuid/lib/v35.js | 57 + node_modules/uuid/package.json | 100 + node_modules/uuid/v1.js | 109 + node_modules/uuid/v3.js | 4 + node_modules/uuid/v4.js | 29 + node_modules/uuid/v5.js | 3 + .../validate-npm-package-license/LICENSE | 202 + .../validate-npm-package-license/README.md | 113 + .../validate-npm-package-license/index.js | 86 + .../validate-npm-package-license/package.json | 67 + node_modules/validator/CHANGELOG.md | 762 + node_modules/validator/LICENSE | 20 + node_modules/validator/README.md | 259 + node_modules/validator/es/index.js | 187 + node_modules/validator/es/lib/alpha.js | 112 + node_modules/validator/es/lib/blacklist.js | 5 + node_modules/validator/es/lib/contains.js | 11 + node_modules/validator/es/lib/equals.js | 5 + node_modules/validator/es/lib/escape.js | 5 + node_modules/validator/es/lib/isAfter.js | 9 + node_modules/validator/es/lib/isAlpha.js | 13 + .../validator/es/lib/isAlphanumeric.js | 13 + node_modules/validator/es/lib/isAscii.js | 10 + node_modules/validator/es/lib/isBIC.js | 6 + node_modules/validator/es/lib/isBase32.js | 12 + node_modules/validator/es/lib/isBase64.js | 23 + node_modules/validator/es/lib/isBefore.js | 9 + node_modules/validator/es/lib/isBoolean.js | 5 + node_modules/validator/es/lib/isBtcAddress.js | 7 + node_modules/validator/es/lib/isByteLength.js | 22 + node_modules/validator/es/lib/isCreditCard.js | 40 + node_modules/validator/es/lib/isCurrency.js | 77 + node_modules/validator/es/lib/isDataURI.js | 40 + node_modules/validator/es/lib/isDate.js | 63 + node_modules/validator/es/lib/isDecimal.js | 26 + .../validator/es/lib/isDivisibleBy.js | 6 + node_modules/validator/es/lib/isEAN.js | 67 + node_modules/validator/es/lib/isEmail.js | 184 + node_modules/validator/es/lib/isEmpty.js | 10 + .../validator/es/lib/isEthereumAddress.js | 6 + node_modules/validator/es/lib/isFQDN.js | 60 + node_modules/validator/es/lib/isFloat.js | 16 + node_modules/validator/es/lib/isFullWidth.js | 6 + node_modules/validator/es/lib/isHSL.js | 7 + node_modules/validator/es/lib/isHalfWidth.js | 6 + node_modules/validator/es/lib/isHash.js | 21 + node_modules/validator/es/lib/isHexColor.js | 6 + .../validator/es/lib/isHexadecimal.js | 6 + node_modules/validator/es/lib/isIBAN.js | 136 + node_modules/validator/es/lib/isIMEI.js | 47 + node_modules/validator/es/lib/isIP.js | 124 + node_modules/validator/es/lib/isIPRange.js | 22 + node_modules/validator/es/lib/isISBN.js | 51 + node_modules/validator/es/lib/isISIN.js | 38 + .../validator/es/lib/isISO31661Alpha2.js | 8 + .../validator/es/lib/isISO31661Alpha3.js | 8 + node_modules/validator/es/lib/isISO8601.js | 45 + node_modules/validator/es/lib/isISRC.js | 7 + node_modules/validator/es/lib/isISSN.js | 23 + .../validator/es/lib/isIdentityCard.js | 274 + node_modules/validator/es/lib/isIn.js | 28 + node_modules/validator/es/lib/isInt.js | 16 + node_modules/validator/es/lib/isJSON.js | 26 + node_modules/validator/es/lib/isJWT.js | 17 + node_modules/validator/es/lib/isLatLong.js | 22 + node_modules/validator/es/lib/isLength.js | 23 + node_modules/validator/es/lib/isLocale.js | 11 + node_modules/validator/es/lib/isLowercase.js | 5 + node_modules/validator/es/lib/isMACAddress.js | 15 + node_modules/validator/es/lib/isMD5.js | 6 + node_modules/validator/es/lib/isMagnetURI.js | 6 + node_modules/validator/es/lib/isMimeType.js | 39 + .../validator/es/lib/isMobilePhone.js | 150 + node_modules/validator/es/lib/isMongoId.js | 6 + node_modules/validator/es/lib/isMultibyte.js | 10 + node_modules/validator/es/lib/isNumeric.js | 12 + node_modules/validator/es/lib/isOctal.js | 6 + .../validator/es/lib/isPassportNumber.js | 110 + node_modules/validator/es/lib/isPort.js | 7 + node_modules/validator/es/lib/isPostalCode.js | 86 + node_modules/validator/es/lib/isRFC3339.js | 20 + node_modules/validator/es/lib/isRgbColor.js | 15 + node_modules/validator/es/lib/isSemVer.js | 14 + node_modules/validator/es/lib/isSlug.js | 6 + .../validator/es/lib/isSurrogatePair.js | 6 + node_modules/validator/es/lib/isTaxID.js | 79 + node_modules/validator/es/lib/isURL.js | 154 + node_modules/validator/es/lib/isUUID.js | 13 + node_modules/validator/es/lib/isUppercase.js | 5 + .../validator/es/lib/isVariableWidth.js | 7 + .../validator/es/lib/isWhitelisted.js | 12 + node_modules/validator/es/lib/ltrim.js | 7 + node_modules/validator/es/lib/matches.js | 10 + .../validator/es/lib/normalizeEmail.js | 138 + node_modules/validator/es/lib/rtrim.js | 7 + node_modules/validator/es/lib/stripLow.js | 7 + node_modules/validator/es/lib/toBoolean.js | 10 + node_modules/validator/es/lib/toDate.js | 6 + node_modules/validator/es/lib/toFloat.js | 5 + node_modules/validator/es/lib/toInt.js | 5 + node_modules/validator/es/lib/trim.js | 5 + node_modules/validator/es/lib/unescape.js | 5 + .../validator/es/lib/util/assertString.js | 23 + .../validator/es/lib/util/includes.js | 7 + node_modules/validator/es/lib/util/merge.js | 12 + .../validator/es/lib/util/multilineRegex.js | 12 + .../validator/es/lib/util/toString.js | 15 + node_modules/validator/es/lib/whitelist.js | 5 + node_modules/validator/index.js | 293 + node_modules/validator/lib/alpha.js | 126 + node_modules/validator/lib/blacklist.js | 18 + node_modules/validator/lib/contains.js | 27 + node_modules/validator/lib/equals.js | 18 + node_modules/validator/lib/escape.js | 18 + node_modules/validator/lib/isAfter.js | 23 + node_modules/validator/lib/isAlpha.js | 27 + node_modules/validator/lib/isAlphanumeric.js | 27 + node_modules/validator/lib/isAscii.js | 22 + node_modules/validator/lib/isBIC.js | 20 + node_modules/validator/lib/isBase32.js | 26 + node_modules/validator/lib/isBase64.js | 38 + node_modules/validator/lib/isBefore.js | 23 + node_modules/validator/lib/isBoolean.js | 18 + node_modules/validator/lib/isBtcAddress.js | 21 + node_modules/validator/lib/isByteLength.js | 34 + node_modules/validator/lib/isCreditCard.js | 52 + node_modules/validator/lib/isCurrency.js | 91 + node_modules/validator/lib/isDataURI.js | 54 + node_modules/validator/lib/isDate.js | 73 + node_modules/validator/lib/isDecimal.js | 42 + node_modules/validator/lib/isDivisibleBy.js | 20 + node_modules/validator/lib/isEAN.js | 80 + node_modules/validator/lib/isEmail.js | 201 + node_modules/validator/lib/isEmpty.js | 25 + .../validator/lib/isEthereumAddress.js | 20 + node_modules/validator/lib/isFQDN.js | 75 + node_modules/validator/lib/isFloat.js | 29 + node_modules/validator/lib/isFullWidth.js | 19 + node_modules/validator/lib/isHSL.js | 21 + node_modules/validator/lib/isHalfWidth.js | 19 + node_modules/validator/lib/isHash.js | 35 + node_modules/validator/lib/isHexColor.js | 20 + node_modules/validator/lib/isHexadecimal.js | 20 + node_modules/validator/lib/isIBAN.js | 148 + node_modules/validator/lib/isIMEI.js | 61 + node_modules/validator/lib/isIP.js | 137 + node_modules/validator/lib/isIPRange.js | 37 + node_modules/validator/lib/isISBN.js | 65 + node_modules/validator/lib/isISIN.js | 52 + .../validator/lib/isISO31661Alpha2.js | 23 + .../validator/lib/isISO31661Alpha3.js | 23 + node_modules/validator/lib/isISO8601.js | 57 + node_modules/validator/lib/isISRC.js | 21 + node_modules/validator/lib/isISSN.js | 37 + node_modules/validator/lib/isIdentityCard.js | 288 + node_modules/validator/lib/isIn.js | 42 + node_modules/validator/lib/isInt.js | 30 + node_modules/validator/lib/isJSON.js | 41 + node_modules/validator/lib/isJWT.js | 31 + node_modules/validator/lib/isLatLong.js | 37 + node_modules/validator/lib/isLength.js | 35 + node_modules/validator/lib/isLocale.js | 25 + node_modules/validator/lib/isLowercase.js | 18 + node_modules/validator/lib/isMACAddress.js | 29 + node_modules/validator/lib/isMD5.js | 20 + node_modules/validator/lib/isMagnetURI.js | 20 + node_modules/validator/lib/isMimeType.js | 51 + node_modules/validator/lib/isMobilePhone.js | 163 + node_modules/validator/lib/isMongoId.js | 20 + node_modules/validator/lib/isMultibyte.js | 22 + node_modules/validator/lib/isNumeric.js | 27 + node_modules/validator/lib/isOctal.js | 20 + .../validator/lib/isPassportNumber.js | 122 + node_modules/validator/lib/isPort.js | 20 + node_modules/validator/lib/isPostalCode.js | 99 + node_modules/validator/lib/isRFC3339.js | 33 + node_modules/validator/lib/isRgbColor.js | 29 + node_modules/validator/lib/isSemVer.js | 28 + node_modules/validator/lib/isSlug.js | 20 + node_modules/validator/lib/isSurrogatePair.js | 20 + node_modules/validator/lib/isTaxID.js | 92 + node_modules/validator/lib/isURL.js | 169 + node_modules/validator/lib/isUUID.js | 27 + node_modules/validator/lib/isUppercase.js | 18 + node_modules/validator/lib/isVariableWidth.js | 22 + node_modules/validator/lib/isWhitelisted.js | 25 + node_modules/validator/lib/ltrim.js | 20 + node_modules/validator/lib/matches.js | 23 + node_modules/validator/lib/normalizeEmail.js | 151 + node_modules/validator/lib/rtrim.js | 20 + node_modules/validator/lib/stripLow.js | 21 + node_modules/validator/lib/toBoolean.js | 23 + node_modules/validator/lib/toDate.js | 19 + node_modules/validator/lib/toFloat.js | 18 + node_modules/validator/lib/toInt.js | 18 + node_modules/validator/lib/trim.js | 19 + node_modules/validator/lib/unescape.js | 18 + .../validator/lib/util/assertString.js | 33 + node_modules/validator/lib/util/includes.js | 17 + node_modules/validator/lib/util/merge.js | 22 + .../validator/lib/util/multilineRegex.js | 22 + node_modules/validator/lib/util/toString.js | 25 + node_modules/validator/lib/whitelist.js | 18 + node_modules/validator/package.json | 106 + node_modules/validator/validator.js | 3095 +++ node_modules/validator/validator.min.js | 23 + node_modules/vary/HISTORY.md | 39 + node_modules/vary/LICENSE | 22 + node_modules/vary/README.md | 101 + node_modules/vary/index.js | 149 + node_modules/vary/package.json | 78 + node_modules/verror/.npmignore | 9 + node_modules/verror/CHANGES.md | 28 + node_modules/verror/CONTRIBUTING.md | 19 + node_modules/verror/LICENSE | 19 + node_modules/verror/README.md | 528 + node_modules/verror/lib/verror.js | 451 + node_modules/verror/package.json | 51 + node_modules/which-module/CHANGELOG.md | 26 + node_modules/which-module/LICENSE | 13 + node_modules/which-module/README.md | 55 + node_modules/which-module/index.js | 9 + node_modules/which-module/package.json | 68 + node_modules/widest-line/index.d.ts | 21 + node_modules/widest-line/index.js | 16 + node_modules/widest-line/license | 9 + node_modules/widest-line/package.json | 86 + node_modules/widest-line/readme.md | 34 + node_modules/wrap-ansi/index.js | 186 + node_modules/wrap-ansi/license | 9 + node_modules/wrap-ansi/package.json | 93 + node_modules/wrap-ansi/readme.md | 97 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 58 + node_modules/wrappy/wrappy.js | 33 + node_modules/write-file-atomic/CHANGELOG.md | 32 + node_modules/write-file-atomic/LICENSE | 6 + node_modules/write-file-atomic/README.md | 72 + node_modules/write-file-atomic/index.js | 259 + node_modules/write-file-atomic/package.json | 77 + node_modules/xdg-basedir/index.d.ts | 81 + node_modules/xdg-basedir/index.js | 28 + node_modules/xdg-basedir/license | 9 + node_modules/xdg-basedir/package.json | 74 + node_modules/xdg-basedir/readme.md | 60 + node_modules/y18n/CHANGELOG.md | 21 + node_modules/y18n/LICENSE | 13 + node_modules/y18n/README.md | 109 + node_modules/y18n/index.js | 188 + node_modules/y18n/package.json | 67 + node_modules/yargs-parser/CHANGELOG.md | 601 + node_modules/yargs-parser/LICENSE.txt | 14 + node_modules/yargs-parser/README.md | 449 + node_modules/yargs-parser/index.js | 1032 + .../yargs-parser/lib/tokenize-arg-string.js | 40 + node_modules/yargs-parser/package.json | 78 + node_modules/yargs/CHANGELOG.md | 420 + node_modules/yargs/LICENSE | 21 + node_modules/yargs/README.md | 140 + .../yargs/build/lib/apply-extends.d.ts | 2 + node_modules/yargs/build/lib/apply-extends.js | 65 + node_modules/yargs/build/lib/argsert.d.ts | 2 + node_modules/yargs/build/lib/argsert.js | 65 + node_modules/yargs/build/lib/command.d.ts | 64 + node_modules/yargs/build/lib/command.js | 416 + .../yargs/build/lib/common-types.d.ts | 36 + node_modules/yargs/build/lib/common-types.js | 25 + .../yargs/build/lib/completion-templates.d.ts | 2 + .../yargs/build/lib/completion-templates.js | 50 + node_modules/yargs/build/lib/completion.d.ts | 21 + node_modules/yargs/build/lib/completion.js | 135 + node_modules/yargs/build/lib/is-promise.d.ts | 1 + node_modules/yargs/build/lib/is-promise.js | 9 + node_modules/yargs/build/lib/levenshtein.d.ts | 1 + node_modules/yargs/build/lib/levenshtein.js | 58 + node_modules/yargs/build/lib/middleware.d.ts | 10 + node_modules/yargs/build/lib/middleware.js | 57 + node_modules/yargs/build/lib/obj-filter.d.ts | 1 + node_modules/yargs/build/lib/obj-filter.js | 14 + .../yargs/build/lib/parse-command.d.ts | 11 + node_modules/yargs/build/lib/parse-command.js | 36 + .../yargs/build/lib/process-argv.d.ts | 2 + node_modules/yargs/build/lib/process-argv.js | 31 + node_modules/yargs/build/lib/usage.d.ts | 49 + node_modules/yargs/build/lib/usage.js | 540 + node_modules/yargs/build/lib/validation.d.ts | 34 + node_modules/yargs/build/lib/validation.js | 330 + node_modules/yargs/build/lib/yargs.d.ts | 274 + node_modules/yargs/build/lib/yargs.js | 1190 + node_modules/yargs/build/lib/yerror.d.ts | 4 + node_modules/yargs/build/lib/yerror.js | 11 + node_modules/yargs/index.js | 40 + node_modules/yargs/locales/be.json | 46 + node_modules/yargs/locales/de.json | 46 + node_modules/yargs/locales/en.json | 51 + node_modules/yargs/locales/es.json | 46 + node_modules/yargs/locales/fi.json | 49 + node_modules/yargs/locales/fr.json | 53 + node_modules/yargs/locales/hi.json | 49 + node_modules/yargs/locales/hu.json | 46 + node_modules/yargs/locales/id.json | 50 + node_modules/yargs/locales/it.json | 46 + node_modules/yargs/locales/ja.json | 51 + node_modules/yargs/locales/ko.json | 49 + node_modules/yargs/locales/nb.json | 44 + node_modules/yargs/locales/nl.json | 49 + node_modules/yargs/locales/nn.json | 44 + node_modules/yargs/locales/pirate.json | 13 + node_modules/yargs/locales/pl.json | 49 + node_modules/yargs/locales/pt.json | 45 + node_modules/yargs/locales/pt_BR.json | 48 + node_modules/yargs/locales/ru.json | 46 + node_modules/yargs/locales/th.json | 46 + node_modules/yargs/locales/tr.json | 48 + node_modules/yargs/locales/zh_CN.json | 48 + node_modules/yargs/locales/zh_TW.json | 47 + node_modules/yargs/package.json | 120 + node_modules/yargs/yargs.js | 14 + package-lock.json | 2529 ++ package.json | 25 + 12593 files changed, 778613 insertions(+) create mode 100644 README.md create mode 100644 node_modules/.bin/concurrently create mode 100644 node_modules/.bin/concurrently.cmd create mode 100644 node_modules/.bin/concurrently.ps1 create mode 100644 node_modules/.bin/gravatar create mode 100644 node_modules/.bin/gravatar.cmd create mode 100644 node_modules/.bin/gravatar.ps1 create mode 100644 node_modules/.bin/is-ci create mode 100644 node_modules/.bin/is-ci.cmd create mode 100644 node_modules/.bin/is-ci.ps1 create mode 100644 node_modules/.bin/json5 create mode 100644 node_modules/.bin/json5.cmd create mode 100644 node_modules/.bin/json5.ps1 create mode 100644 node_modules/.bin/mime create mode 100644 node_modules/.bin/mime.cmd create mode 100644 node_modules/.bin/mime.ps1 create mode 100644 node_modules/.bin/nodemon create mode 100644 node_modules/.bin/nodemon.cmd create mode 100644 node_modules/.bin/nodemon.ps1 create mode 100644 node_modules/.bin/nodetouch create mode 100644 node_modules/.bin/nodetouch.cmd create mode 100644 node_modules/.bin/nodetouch.ps1 create mode 100644 node_modules/.bin/nopt create mode 100644 node_modules/.bin/nopt.cmd create mode 100644 node_modules/.bin/nopt.ps1 create mode 100644 node_modules/.bin/rc create mode 100644 node_modules/.bin/rc.cmd create mode 100644 node_modules/.bin/rc.ps1 create mode 100644 node_modules/.bin/semver create mode 100644 node_modules/.bin/semver.cmd create mode 100644 node_modules/.bin/semver.ps1 create mode 100644 node_modules/.bin/sshpk-conv create mode 100644 node_modules/.bin/sshpk-conv.cmd create mode 100644 node_modules/.bin/sshpk-conv.ps1 create mode 100644 node_modules/.bin/sshpk-sign create mode 100644 node_modules/.bin/sshpk-sign.cmd create mode 100644 node_modules/.bin/sshpk-sign.ps1 create mode 100644 node_modules/.bin/sshpk-verify create mode 100644 node_modules/.bin/sshpk-verify.cmd create mode 100644 node_modules/.bin/sshpk-verify.ps1 create mode 100644 node_modules/.bin/tree-kill create mode 100644 node_modules/.bin/tree-kill.cmd create mode 100644 node_modules/.bin/tree-kill.ps1 create mode 100644 node_modules/.bin/uuid create mode 100644 node_modules/.bin/uuid.cmd create mode 100644 node_modules/.bin/uuid.ps1 create mode 100644 node_modules/@sindresorhus/is/dist/index.d.ts create mode 100644 node_modules/@sindresorhus/is/dist/index.js create mode 100644 node_modules/@sindresorhus/is/dist/index.js.map create mode 100644 node_modules/@sindresorhus/is/license create mode 100644 node_modules/@sindresorhus/is/package.json create mode 100644 node_modules/@sindresorhus/is/readme.md create mode 100644 node_modules/@szmarczak/http-timer/LICENSE create mode 100644 node_modules/@szmarczak/http-timer/README.md create mode 100644 node_modules/@szmarczak/http-timer/package.json create mode 100644 node_modules/@szmarczak/http-timer/source/index.js create mode 100644 node_modules/@types/color-name/LICENSE create mode 100644 node_modules/@types/color-name/README.md create mode 100644 node_modules/@types/color-name/index.d.ts create mode 100644 node_modules/@types/color-name/package.json create mode 100644 node_modules/abbrev/LICENSE create mode 100644 node_modules/abbrev/README.md create mode 100644 node_modules/abbrev/abbrev.js create mode 100644 node_modules/abbrev/package.json create mode 100644 node_modules/accepts/HISTORY.md create mode 100644 node_modules/accepts/LICENSE create mode 100644 node_modules/accepts/README.md create mode 100644 node_modules/accepts/index.js create mode 100644 node_modules/accepts/package.json create mode 100644 node_modules/ajv/.tonic_example.js create mode 100644 node_modules/ajv/LICENSE create mode 100644 node_modules/ajv/README.md create mode 100644 node_modules/ajv/dist/ajv.bundle.js create mode 100644 node_modules/ajv/dist/ajv.min.js create mode 100644 node_modules/ajv/dist/ajv.min.js.map create mode 100644 node_modules/ajv/lib/ajv.d.ts create mode 100644 node_modules/ajv/lib/ajv.js create mode 100644 node_modules/ajv/lib/cache.js create mode 100644 node_modules/ajv/lib/compile/async.js create mode 100644 node_modules/ajv/lib/compile/equal.js create mode 100644 node_modules/ajv/lib/compile/error_classes.js create mode 100644 node_modules/ajv/lib/compile/formats.js create mode 100644 node_modules/ajv/lib/compile/index.js create mode 100644 node_modules/ajv/lib/compile/resolve.js create mode 100644 node_modules/ajv/lib/compile/rules.js create mode 100644 node_modules/ajv/lib/compile/schema_obj.js create mode 100644 node_modules/ajv/lib/compile/ucs2length.js create mode 100644 node_modules/ajv/lib/compile/util.js create mode 100644 node_modules/ajv/lib/data.js create mode 100644 node_modules/ajv/lib/definition_schema.js create mode 100644 node_modules/ajv/lib/dot/_limit.jst create mode 100644 node_modules/ajv/lib/dot/_limitItems.jst create mode 100644 node_modules/ajv/lib/dot/_limitLength.jst create mode 100644 node_modules/ajv/lib/dot/_limitProperties.jst create mode 100644 node_modules/ajv/lib/dot/allOf.jst create mode 100644 node_modules/ajv/lib/dot/anyOf.jst create mode 100644 node_modules/ajv/lib/dot/coerce.def create mode 100644 node_modules/ajv/lib/dot/comment.jst create mode 100644 node_modules/ajv/lib/dot/const.jst create mode 100644 node_modules/ajv/lib/dot/contains.jst create mode 100644 node_modules/ajv/lib/dot/custom.jst create mode 100644 node_modules/ajv/lib/dot/defaults.def create mode 100644 node_modules/ajv/lib/dot/definitions.def create mode 100644 node_modules/ajv/lib/dot/dependencies.jst create mode 100644 node_modules/ajv/lib/dot/enum.jst create mode 100644 node_modules/ajv/lib/dot/errors.def create mode 100644 node_modules/ajv/lib/dot/format.jst create mode 100644 node_modules/ajv/lib/dot/if.jst create mode 100644 node_modules/ajv/lib/dot/items.jst create mode 100644 node_modules/ajv/lib/dot/missing.def create mode 100644 node_modules/ajv/lib/dot/multipleOf.jst create mode 100644 node_modules/ajv/lib/dot/not.jst create mode 100644 node_modules/ajv/lib/dot/oneOf.jst create mode 100644 node_modules/ajv/lib/dot/pattern.jst create mode 100644 node_modules/ajv/lib/dot/properties.jst create mode 100644 node_modules/ajv/lib/dot/propertyNames.jst create mode 100644 node_modules/ajv/lib/dot/ref.jst create mode 100644 node_modules/ajv/lib/dot/required.jst create mode 100644 node_modules/ajv/lib/dot/uniqueItems.jst create mode 100644 node_modules/ajv/lib/dot/validate.jst create mode 100644 node_modules/ajv/lib/dotjs/README.md create mode 100644 node_modules/ajv/lib/dotjs/_limit.js create mode 100644 node_modules/ajv/lib/dotjs/_limitItems.js create mode 100644 node_modules/ajv/lib/dotjs/_limitLength.js create mode 100644 node_modules/ajv/lib/dotjs/_limitProperties.js create mode 100644 node_modules/ajv/lib/dotjs/allOf.js create mode 100644 node_modules/ajv/lib/dotjs/anyOf.js create mode 100644 node_modules/ajv/lib/dotjs/comment.js create mode 100644 node_modules/ajv/lib/dotjs/const.js create mode 100644 node_modules/ajv/lib/dotjs/contains.js create mode 100644 node_modules/ajv/lib/dotjs/custom.js create mode 100644 node_modules/ajv/lib/dotjs/dependencies.js create mode 100644 node_modules/ajv/lib/dotjs/enum.js create mode 100644 node_modules/ajv/lib/dotjs/format.js create mode 100644 node_modules/ajv/lib/dotjs/if.js create mode 100644 node_modules/ajv/lib/dotjs/index.js create mode 100644 node_modules/ajv/lib/dotjs/items.js create mode 100644 node_modules/ajv/lib/dotjs/multipleOf.js create mode 100644 node_modules/ajv/lib/dotjs/not.js create mode 100644 node_modules/ajv/lib/dotjs/oneOf.js create mode 100644 node_modules/ajv/lib/dotjs/pattern.js create mode 100644 node_modules/ajv/lib/dotjs/properties.js create mode 100644 node_modules/ajv/lib/dotjs/propertyNames.js create mode 100644 node_modules/ajv/lib/dotjs/ref.js create mode 100644 node_modules/ajv/lib/dotjs/required.js create mode 100644 node_modules/ajv/lib/dotjs/uniqueItems.js create mode 100644 node_modules/ajv/lib/dotjs/validate.js create mode 100644 node_modules/ajv/lib/keyword.js create mode 100644 node_modules/ajv/lib/refs/data.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-04.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-06.json create mode 100644 node_modules/ajv/lib/refs/json-schema-draft-07.json create mode 100644 node_modules/ajv/lib/refs/json-schema-secure.json create mode 100644 node_modules/ajv/package.json create mode 100644 node_modules/ajv/scripts/.eslintrc.yml create mode 100644 node_modules/ajv/scripts/bundle.js create mode 100644 node_modules/ajv/scripts/compile-dots.js create mode 100644 node_modules/ajv/scripts/info create mode 100644 node_modules/ajv/scripts/prepare-tests create mode 100644 node_modules/ajv/scripts/publish-built-version create mode 100644 node_modules/ajv/scripts/travis-gh-pages create mode 100644 node_modules/ansi-align/CHANGELOG.md create mode 100644 node_modules/ansi-align/LICENSE create mode 100644 node_modules/ansi-align/README.md create mode 100644 node_modules/ansi-align/index.js create mode 100644 node_modules/ansi-align/node_modules/ansi-regex/index.js create mode 100644 node_modules/ansi-align/node_modules/ansi-regex/license create mode 100644 node_modules/ansi-align/node_modules/ansi-regex/package.json create mode 100644 node_modules/ansi-align/node_modules/ansi-regex/readme.md create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/LICENSE-MIT.txt create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/README.md create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/es2015/index.js create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/es2015/text.js create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/index.d.ts create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/index.js create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/package.json create mode 100644 node_modules/ansi-align/node_modules/emoji-regex/text.js create mode 100644 node_modules/ansi-align/node_modules/is-fullwidth-code-point/index.js create mode 100644 node_modules/ansi-align/node_modules/is-fullwidth-code-point/license create mode 100644 node_modules/ansi-align/node_modules/is-fullwidth-code-point/package.json create mode 100644 node_modules/ansi-align/node_modules/is-fullwidth-code-point/readme.md create mode 100644 node_modules/ansi-align/node_modules/string-width/index.js create mode 100644 node_modules/ansi-align/node_modules/string-width/license create mode 100644 node_modules/ansi-align/node_modules/string-width/package.json create mode 100644 node_modules/ansi-align/node_modules/string-width/readme.md create mode 100644 node_modules/ansi-align/node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/ansi-align/node_modules/strip-ansi/index.js create mode 100644 node_modules/ansi-align/node_modules/strip-ansi/license create mode 100644 node_modules/ansi-align/node_modules/strip-ansi/package.json create mode 100644 node_modules/ansi-align/node_modules/strip-ansi/readme.md create mode 100644 node_modules/ansi-align/package.json create mode 100644 node_modules/ansi-regex/index.d.ts create mode 100644 node_modules/ansi-regex/index.js create mode 100644 node_modules/ansi-regex/license create mode 100644 node_modules/ansi-regex/package.json create mode 100644 node_modules/ansi-regex/readme.md create mode 100644 node_modules/ansi-styles/index.d.ts create mode 100644 node_modules/ansi-styles/index.js create mode 100644 node_modules/ansi-styles/license create mode 100644 node_modules/ansi-styles/package.json create mode 100644 node_modules/ansi-styles/readme.md create mode 100644 node_modules/anymatch/LICENSE create mode 100644 node_modules/anymatch/README.md create mode 100644 node_modules/anymatch/index.d.ts create mode 100644 node_modules/anymatch/index.js create mode 100644 node_modules/anymatch/package.json create mode 100644 node_modules/array-flatten/LICENSE create mode 100644 node_modules/array-flatten/README.md create mode 100644 node_modules/array-flatten/array-flatten.js create mode 100644 node_modules/array-flatten/package.json create mode 100644 node_modules/asn1/LICENSE create mode 100644 node_modules/asn1/README.md create mode 100644 node_modules/asn1/lib/ber/errors.js create mode 100644 node_modules/asn1/lib/ber/index.js create mode 100644 node_modules/asn1/lib/ber/reader.js create mode 100644 node_modules/asn1/lib/ber/types.js create mode 100644 node_modules/asn1/lib/ber/writer.js create mode 100644 node_modules/asn1/lib/index.js create mode 100644 node_modules/asn1/package.json create mode 100644 node_modules/assert-plus/AUTHORS create mode 100644 node_modules/assert-plus/CHANGES.md create mode 100644 node_modules/assert-plus/README.md create mode 100644 node_modules/assert-plus/assert.js create mode 100644 node_modules/assert-plus/package.json create mode 100644 node_modules/asynckit/LICENSE create mode 100644 node_modules/asynckit/README.md create mode 100644 node_modules/asynckit/bench.js create mode 100644 node_modules/asynckit/index.js create mode 100644 node_modules/asynckit/lib/abort.js create mode 100644 node_modules/asynckit/lib/async.js create mode 100644 node_modules/asynckit/lib/defer.js create mode 100644 node_modules/asynckit/lib/iterate.js create mode 100644 node_modules/asynckit/lib/readable_asynckit.js create mode 100644 node_modules/asynckit/lib/readable_parallel.js create mode 100644 node_modules/asynckit/lib/readable_serial.js create mode 100644 node_modules/asynckit/lib/readable_serial_ordered.js create mode 100644 node_modules/asynckit/lib/state.js create mode 100644 node_modules/asynckit/lib/streamify.js create mode 100644 node_modules/asynckit/lib/terminator.js create mode 100644 node_modules/asynckit/package.json create mode 100644 node_modules/asynckit/parallel.js create mode 100644 node_modules/asynckit/serial.js create mode 100644 node_modules/asynckit/serialOrdered.js create mode 100644 node_modules/asynckit/stream.js create mode 100644 node_modules/aws-sign2/LICENSE create mode 100644 node_modules/aws-sign2/README.md create mode 100644 node_modules/aws-sign2/index.js create mode 100644 node_modules/aws-sign2/package.json create mode 100644 node_modules/aws4/.github/FUNDING.yml create mode 100644 node_modules/aws4/.travis.yml create mode 100644 node_modules/aws4/LICENSE create mode 100644 node_modules/aws4/README.md create mode 100644 node_modules/aws4/aws4.js create mode 100644 node_modules/aws4/lru.js create mode 100644 node_modules/aws4/package.json create mode 100644 node_modules/balanced-match/.npmignore create mode 100644 node_modules/balanced-match/LICENSE.md create mode 100644 node_modules/balanced-match/README.md create mode 100644 node_modules/balanced-match/index.js create mode 100644 node_modules/balanced-match/package.json create mode 100644 node_modules/bcrypt-pbkdf/CONTRIBUTING.md create mode 100644 node_modules/bcrypt-pbkdf/LICENSE create mode 100644 node_modules/bcrypt-pbkdf/README.md create mode 100644 node_modules/bcrypt-pbkdf/index.js create mode 100644 node_modules/bcrypt-pbkdf/package.json create mode 100644 node_modules/bcryptjs/.npmignore create mode 100644 node_modules/bcryptjs/.travis.yml create mode 100644 node_modules/bcryptjs/.vscode/settings.json create mode 100644 node_modules/bcryptjs/LICENSE create mode 100644 node_modules/bcryptjs/README.md create mode 100644 node_modules/bcryptjs/bin/bcrypt create mode 100644 node_modules/bcryptjs/bower.json create mode 100644 node_modules/bcryptjs/dist/README.md create mode 100644 node_modules/bcryptjs/dist/bcrypt.js create mode 100644 node_modules/bcryptjs/dist/bcrypt.min.js create mode 100644 node_modules/bcryptjs/dist/bcrypt.min.js.gz create mode 100644 node_modules/bcryptjs/dist/bcrypt.min.map create mode 100644 node_modules/bcryptjs/externs/bcrypt.js create mode 100644 node_modules/bcryptjs/externs/minimal-env.js create mode 100644 node_modules/bcryptjs/index.js create mode 100644 node_modules/bcryptjs/package.json create mode 100644 node_modules/bcryptjs/scripts/build.js create mode 100644 node_modules/bcryptjs/src/bcrypt.js create mode 100644 node_modules/bcryptjs/src/bcrypt/impl.js create mode 100644 node_modules/bcryptjs/src/bcrypt/prng/README.md create mode 100644 node_modules/bcryptjs/src/bcrypt/prng/accum.js create mode 100644 node_modules/bcryptjs/src/bcrypt/prng/isaac.js create mode 100644 node_modules/bcryptjs/src/bcrypt/util.js create mode 100644 node_modules/bcryptjs/src/bcrypt/util/base64.js create mode 100644 node_modules/bcryptjs/src/bower.json create mode 100644 node_modules/bcryptjs/src/wrap.js create mode 100644 node_modules/bcryptjs/tests/quickbrown.txt create mode 100644 node_modules/bcryptjs/tests/suite.js create mode 100644 node_modules/binary-extensions/binary-extensions.json create mode 100644 node_modules/binary-extensions/binary-extensions.json.d.ts create mode 100644 node_modules/binary-extensions/index.d.ts create mode 100644 node_modules/binary-extensions/index.js create mode 100644 node_modules/binary-extensions/license create mode 100644 node_modules/binary-extensions/package.json create mode 100644 node_modules/binary-extensions/readme.md create mode 100644 node_modules/bl/.jshintrc create mode 100644 node_modules/bl/.travis.yml create mode 100644 node_modules/bl/LICENSE.md create mode 100644 node_modules/bl/README.md create mode 100644 node_modules/bl/bl.js create mode 100644 node_modules/bl/package.json create mode 100644 node_modules/bl/test/indexOf.js create mode 100644 node_modules/bl/test/test.js create mode 100644 node_modules/bluebird/LICENSE create mode 100644 node_modules/bluebird/README.md create mode 100644 node_modules/bluebird/changelog.md create mode 100644 node_modules/bluebird/js/browser/bluebird.core.js create mode 100644 node_modules/bluebird/js/browser/bluebird.core.min.js create mode 100644 node_modules/bluebird/js/browser/bluebird.js create mode 100644 node_modules/bluebird/js/browser/bluebird.min.js create mode 100644 node_modules/bluebird/js/release/any.js create mode 100644 node_modules/bluebird/js/release/assert.js create mode 100644 node_modules/bluebird/js/release/async.js create mode 100644 node_modules/bluebird/js/release/bind.js create mode 100644 node_modules/bluebird/js/release/bluebird.js create mode 100644 node_modules/bluebird/js/release/call_get.js create mode 100644 node_modules/bluebird/js/release/cancel.js create mode 100644 node_modules/bluebird/js/release/catch_filter.js create mode 100644 node_modules/bluebird/js/release/context.js create mode 100644 node_modules/bluebird/js/release/debuggability.js create mode 100644 node_modules/bluebird/js/release/direct_resolve.js create mode 100644 node_modules/bluebird/js/release/each.js create mode 100644 node_modules/bluebird/js/release/errors.js create mode 100644 node_modules/bluebird/js/release/es5.js create mode 100644 node_modules/bluebird/js/release/filter.js create mode 100644 node_modules/bluebird/js/release/finally.js create mode 100644 node_modules/bluebird/js/release/generators.js create mode 100644 node_modules/bluebird/js/release/join.js create mode 100644 node_modules/bluebird/js/release/map.js create mode 100644 node_modules/bluebird/js/release/method.js create mode 100644 node_modules/bluebird/js/release/nodeback.js create mode 100644 node_modules/bluebird/js/release/nodeify.js create mode 100644 node_modules/bluebird/js/release/promise.js create mode 100644 node_modules/bluebird/js/release/promise_array.js create mode 100644 node_modules/bluebird/js/release/promisify.js create mode 100644 node_modules/bluebird/js/release/props.js create mode 100644 node_modules/bluebird/js/release/queue.js create mode 100644 node_modules/bluebird/js/release/race.js create mode 100644 node_modules/bluebird/js/release/reduce.js create mode 100644 node_modules/bluebird/js/release/schedule.js create mode 100644 node_modules/bluebird/js/release/settle.js create mode 100644 node_modules/bluebird/js/release/some.js create mode 100644 node_modules/bluebird/js/release/synchronous_inspection.js create mode 100644 node_modules/bluebird/js/release/thenables.js create mode 100644 node_modules/bluebird/js/release/timers.js create mode 100644 node_modules/bluebird/js/release/using.js create mode 100644 node_modules/bluebird/js/release/util.js create mode 100644 node_modules/bluebird/package.json create mode 100644 node_modules/blueimp-md5/LICENSE.txt create mode 100644 node_modules/blueimp-md5/README.md create mode 100644 node_modules/blueimp-md5/js/md5.js create mode 100644 node_modules/blueimp-md5/js/md5.min.js create mode 100644 node_modules/blueimp-md5/js/md5.min.js.map create mode 100644 node_modules/blueimp-md5/package.json create mode 100644 node_modules/body-parser/HISTORY.md create mode 100644 node_modules/body-parser/LICENSE create mode 100644 node_modules/body-parser/README.md create mode 100644 node_modules/body-parser/index.js create mode 100644 node_modules/body-parser/lib/read.js create mode 100644 node_modules/body-parser/lib/types/json.js create mode 100644 node_modules/body-parser/lib/types/raw.js create mode 100644 node_modules/body-parser/lib/types/text.js create mode 100644 node_modules/body-parser/lib/types/urlencoded.js create mode 100644 node_modules/body-parser/package.json create mode 100644 node_modules/boxen/index.d.ts create mode 100644 node_modules/boxen/index.js create mode 100644 node_modules/boxen/license create mode 100644 node_modules/boxen/node_modules/chalk/index.d.ts create mode 100644 node_modules/boxen/node_modules/chalk/license create mode 100644 node_modules/boxen/node_modules/chalk/package.json create mode 100644 node_modules/boxen/node_modules/chalk/readme.md create mode 100644 node_modules/boxen/node_modules/chalk/source/index.js create mode 100644 node_modules/boxen/node_modules/chalk/source/templates.js create mode 100644 node_modules/boxen/node_modules/chalk/source/util.js create mode 100644 node_modules/boxen/node_modules/has-flag/index.d.ts create mode 100644 node_modules/boxen/node_modules/has-flag/index.js create mode 100644 node_modules/boxen/node_modules/has-flag/license create mode 100644 node_modules/boxen/node_modules/has-flag/package.json create mode 100644 node_modules/boxen/node_modules/has-flag/readme.md create mode 100644 node_modules/boxen/node_modules/supports-color/browser.js create mode 100644 node_modules/boxen/node_modules/supports-color/index.js create mode 100644 node_modules/boxen/node_modules/supports-color/license create mode 100644 node_modules/boxen/node_modules/supports-color/package.json create mode 100644 node_modules/boxen/node_modules/supports-color/readme.md create mode 100644 node_modules/boxen/package.json create mode 100644 node_modules/boxen/readme.md create mode 100644 node_modules/brace-expansion/LICENSE create mode 100644 node_modules/brace-expansion/README.md create mode 100644 node_modules/brace-expansion/index.js create mode 100644 node_modules/brace-expansion/package.json create mode 100644 node_modules/braces/CHANGELOG.md create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/bson/HISTORY.md create mode 100644 node_modules/bson/LICENSE.md create mode 100644 node_modules/bson/README.md create mode 100644 node_modules/bson/bower.json create mode 100644 node_modules/bson/browser_build/bson.js create mode 100644 node_modules/bson/browser_build/package.json create mode 100644 node_modules/bson/index.js create mode 100644 node_modules/bson/lib/bson/binary.js create mode 100644 node_modules/bson/lib/bson/bson.js create mode 100644 node_modules/bson/lib/bson/code.js create mode 100644 node_modules/bson/lib/bson/db_ref.js create mode 100644 node_modules/bson/lib/bson/decimal128.js create mode 100644 node_modules/bson/lib/bson/double.js create mode 100644 node_modules/bson/lib/bson/float_parser.js create mode 100644 node_modules/bson/lib/bson/int_32.js create mode 100644 node_modules/bson/lib/bson/long.js create mode 100644 node_modules/bson/lib/bson/map.js create mode 100644 node_modules/bson/lib/bson/max_key.js create mode 100644 node_modules/bson/lib/bson/min_key.js create mode 100644 node_modules/bson/lib/bson/objectid.js create mode 100644 node_modules/bson/lib/bson/parser/calculate_size.js create mode 100644 node_modules/bson/lib/bson/parser/deserializer.js create mode 100644 node_modules/bson/lib/bson/parser/serializer.js create mode 100644 node_modules/bson/lib/bson/parser/utils.js create mode 100644 node_modules/bson/lib/bson/regexp.js create mode 100644 node_modules/bson/lib/bson/symbol.js create mode 100644 node_modules/bson/lib/bson/timestamp.js create mode 100644 node_modules/bson/package.json create mode 100644 node_modules/buffer-equal-constant-time/.npmignore create mode 100644 node_modules/buffer-equal-constant-time/.travis.yml create mode 100644 node_modules/buffer-equal-constant-time/LICENSE.txt create mode 100644 node_modules/buffer-equal-constant-time/README.md create mode 100644 node_modules/buffer-equal-constant-time/index.js create mode 100644 node_modules/buffer-equal-constant-time/package.json create mode 100644 node_modules/buffer-equal-constant-time/test.js create mode 100644 node_modules/bytes/History.md create mode 100644 node_modules/bytes/LICENSE create mode 100644 node_modules/bytes/Readme.md create mode 100644 node_modules/bytes/index.js create mode 100644 node_modules/bytes/package.json create mode 100644 node_modules/cacheable-request/LICENSE create mode 100644 node_modules/cacheable-request/README.md create mode 100644 node_modules/cacheable-request/node_modules/get-stream/buffer-stream.js create mode 100644 node_modules/cacheable-request/node_modules/get-stream/index.d.ts create mode 100644 node_modules/cacheable-request/node_modules/get-stream/index.js create mode 100644 node_modules/cacheable-request/node_modules/get-stream/license create mode 100644 node_modules/cacheable-request/node_modules/get-stream/package.json create mode 100644 node_modules/cacheable-request/node_modules/get-stream/readme.md create mode 100644 node_modules/cacheable-request/node_modules/lowercase-keys/index.d.ts create mode 100644 node_modules/cacheable-request/node_modules/lowercase-keys/index.js create mode 100644 node_modules/cacheable-request/node_modules/lowercase-keys/license create mode 100644 node_modules/cacheable-request/node_modules/lowercase-keys/package.json create mode 100644 node_modules/cacheable-request/node_modules/lowercase-keys/readme.md create mode 100644 node_modules/cacheable-request/package.json create mode 100644 node_modules/cacheable-request/src/index.js create mode 100644 node_modules/camelcase/index.d.ts create mode 100644 node_modules/camelcase/index.js create mode 100644 node_modules/camelcase/license create mode 100644 node_modules/camelcase/package.json create mode 100644 node_modules/camelcase/readme.md create mode 100644 node_modules/caseless/LICENSE create mode 100644 node_modules/caseless/README.md create mode 100644 node_modules/caseless/index.js create mode 100644 node_modules/caseless/package.json create mode 100644 node_modules/caseless/test.js create mode 100644 node_modules/chalk/index.js create mode 100644 node_modules/chalk/index.js.flow create mode 100644 node_modules/chalk/license create mode 100644 node_modules/chalk/node_modules/ansi-styles/index.js create mode 100644 node_modules/chalk/node_modules/ansi-styles/license create mode 100644 node_modules/chalk/node_modules/ansi-styles/package.json create mode 100644 node_modules/chalk/node_modules/ansi-styles/readme.md create mode 100644 node_modules/chalk/node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/chalk/node_modules/color-convert/LICENSE create mode 100644 node_modules/chalk/node_modules/color-convert/README.md create mode 100644 node_modules/chalk/node_modules/color-convert/conversions.js create mode 100644 node_modules/chalk/node_modules/color-convert/index.js create mode 100644 node_modules/chalk/node_modules/color-convert/package.json create mode 100644 node_modules/chalk/node_modules/color-convert/route.js create mode 100644 node_modules/chalk/node_modules/color-name/.eslintrc.json create mode 100644 node_modules/chalk/node_modules/color-name/.npmignore create mode 100644 node_modules/chalk/node_modules/color-name/LICENSE create mode 100644 node_modules/chalk/node_modules/color-name/README.md create mode 100644 node_modules/chalk/node_modules/color-name/index.js create mode 100644 node_modules/chalk/node_modules/color-name/package.json create mode 100644 node_modules/chalk/node_modules/color-name/test.js create mode 100644 node_modules/chalk/node_modules/supports-color/browser.js create mode 100644 node_modules/chalk/node_modules/supports-color/index.js create mode 100644 node_modules/chalk/node_modules/supports-color/license create mode 100644 node_modules/chalk/node_modules/supports-color/package.json create mode 100644 node_modules/chalk/node_modules/supports-color/readme.md create mode 100644 node_modules/chalk/package.json create mode 100644 node_modules/chalk/readme.md create mode 100644 node_modules/chalk/templates.js create mode 100644 node_modules/chalk/types/index.d.ts create mode 100644 node_modules/chokidar/LICENSE create mode 100644 node_modules/chokidar/README.md create mode 100644 node_modules/chokidar/index.js create mode 100644 node_modules/chokidar/lib/constants.js create mode 100644 node_modules/chokidar/lib/fsevents-handler.js create mode 100644 node_modules/chokidar/lib/nodefs-handler.js create mode 100644 node_modules/chokidar/package.json create mode 100644 node_modules/chokidar/types/index.d.ts create mode 100644 node_modules/ci-info/CHANGELOG.md create mode 100644 node_modules/ci-info/LICENSE create mode 100644 node_modules/ci-info/README.md create mode 100644 node_modules/ci-info/index.js create mode 100644 node_modules/ci-info/package.json create mode 100644 node_modules/ci-info/vendors.json create mode 100644 node_modules/cli-boxes/boxes.json create mode 100644 node_modules/cli-boxes/index.d.ts create mode 100644 node_modules/cli-boxes/index.js create mode 100644 node_modules/cli-boxes/license create mode 100644 node_modules/cli-boxes/package.json create mode 100644 node_modules/cli-boxes/readme.md create mode 100644 node_modules/cliui/CHANGELOG.md create mode 100644 node_modules/cliui/LICENSE.txt create mode 100644 node_modules/cliui/README.md create mode 100644 node_modules/cliui/index.js create mode 100644 node_modules/cliui/package.json create mode 100644 node_modules/clone-response/LICENSE create mode 100644 node_modules/clone-response/README.md create mode 100644 node_modules/clone-response/package.json create mode 100644 node_modules/clone-response/src/index.js create mode 100644 node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/color-convert/LICENSE create mode 100644 node_modules/color-convert/README.md create mode 100644 node_modules/color-convert/conversions.js create mode 100644 node_modules/color-convert/index.js create mode 100644 node_modules/color-convert/package.json create mode 100644 node_modules/color-convert/route.js create mode 100644 node_modules/color-name/LICENSE create mode 100644 node_modules/color-name/README.md create mode 100644 node_modules/color-name/index.js create mode 100644 node_modules/color-name/package.json create mode 100644 node_modules/combined-stream/License create mode 100644 node_modules/combined-stream/Readme.md create mode 100644 node_modules/combined-stream/lib/combined_stream.js create mode 100644 node_modules/combined-stream/package.json create mode 100644 node_modules/combined-stream/yarn.lock create mode 100644 node_modules/concat-map/.travis.yml create mode 100644 node_modules/concat-map/LICENSE create mode 100644 node_modules/concat-map/README.markdown create mode 100644 node_modules/concat-map/example/map.js create mode 100644 node_modules/concat-map/index.js create mode 100644 node_modules/concat-map/package.json create mode 100644 node_modules/concat-map/test/map.js create mode 100644 node_modules/concurrently/LICENSE create mode 100644 node_modules/concurrently/README.md create mode 100644 node_modules/concurrently/bin/concurrently.js create mode 100644 node_modules/concurrently/bin/epilogue.txt create mode 100644 node_modules/concurrently/index.js create mode 100644 node_modules/concurrently/node_modules/ansi-regex/index.js create mode 100644 node_modules/concurrently/node_modules/ansi-regex/license create mode 100644 node_modules/concurrently/node_modules/ansi-regex/package.json create mode 100644 node_modules/concurrently/node_modules/ansi-regex/readme.md create mode 100644 node_modules/concurrently/node_modules/ansi-styles/index.js create mode 100644 node_modules/concurrently/node_modules/ansi-styles/license create mode 100644 node_modules/concurrently/node_modules/ansi-styles/package.json create mode 100644 node_modules/concurrently/node_modules/ansi-styles/readme.md create mode 100644 node_modules/concurrently/node_modules/cliui/CHANGELOG.md create mode 100644 node_modules/concurrently/node_modules/cliui/LICENSE.txt create mode 100644 node_modules/concurrently/node_modules/cliui/README.md create mode 100644 node_modules/concurrently/node_modules/cliui/index.js create mode 100644 node_modules/concurrently/node_modules/cliui/package.json create mode 100644 node_modules/concurrently/node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/concurrently/node_modules/color-convert/LICENSE create mode 100644 node_modules/concurrently/node_modules/color-convert/README.md create mode 100644 node_modules/concurrently/node_modules/color-convert/conversions.js create mode 100644 node_modules/concurrently/node_modules/color-convert/index.js create mode 100644 node_modules/concurrently/node_modules/color-convert/package.json create mode 100644 node_modules/concurrently/node_modules/color-convert/route.js create mode 100644 node_modules/concurrently/node_modules/color-name/.eslintrc.json create mode 100644 node_modules/concurrently/node_modules/color-name/.npmignore create mode 100644 node_modules/concurrently/node_modules/color-name/LICENSE create mode 100644 node_modules/concurrently/node_modules/color-name/README.md create mode 100644 node_modules/concurrently/node_modules/color-name/index.js create mode 100644 node_modules/concurrently/node_modules/color-name/package.json create mode 100644 node_modules/concurrently/node_modules/color-name/test.js create mode 100644 node_modules/concurrently/node_modules/emoji-regex/LICENSE-MIT.txt create mode 100644 node_modules/concurrently/node_modules/emoji-regex/README.md create mode 100644 node_modules/concurrently/node_modules/emoji-regex/es2015/index.js create mode 100644 node_modules/concurrently/node_modules/emoji-regex/es2015/text.js create mode 100644 node_modules/concurrently/node_modules/emoji-regex/index.d.ts create mode 100644 node_modules/concurrently/node_modules/emoji-regex/index.js create mode 100644 node_modules/concurrently/node_modules/emoji-regex/package.json create mode 100644 node_modules/concurrently/node_modules/emoji-regex/text.js create mode 100644 node_modules/concurrently/node_modules/find-up/index.js create mode 100644 node_modules/concurrently/node_modules/find-up/license create mode 100644 node_modules/concurrently/node_modules/find-up/package.json create mode 100644 node_modules/concurrently/node_modules/find-up/readme.md create mode 100644 node_modules/concurrently/node_modules/is-fullwidth-code-point/index.js create mode 100644 node_modules/concurrently/node_modules/is-fullwidth-code-point/license create mode 100644 node_modules/concurrently/node_modules/is-fullwidth-code-point/package.json create mode 100644 node_modules/concurrently/node_modules/is-fullwidth-code-point/readme.md create mode 100644 node_modules/concurrently/node_modules/locate-path/index.js create mode 100644 node_modules/concurrently/node_modules/locate-path/license create mode 100644 node_modules/concurrently/node_modules/locate-path/package.json create mode 100644 node_modules/concurrently/node_modules/locate-path/readme.md create mode 100644 node_modules/concurrently/node_modules/p-locate/index.js create mode 100644 node_modules/concurrently/node_modules/p-locate/license create mode 100644 node_modules/concurrently/node_modules/p-locate/package.json create mode 100644 node_modules/concurrently/node_modules/p-locate/readme.md create mode 100644 node_modules/concurrently/node_modules/path-exists/index.js create mode 100644 node_modules/concurrently/node_modules/path-exists/license create mode 100644 node_modules/concurrently/node_modules/path-exists/package.json create mode 100644 node_modules/concurrently/node_modules/path-exists/readme.md create mode 100644 node_modules/concurrently/node_modules/string-width/index.js create mode 100644 node_modules/concurrently/node_modules/string-width/license create mode 100644 node_modules/concurrently/node_modules/string-width/package.json create mode 100644 node_modules/concurrently/node_modules/string-width/readme.md create mode 100644 node_modules/concurrently/node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/concurrently/node_modules/strip-ansi/index.js create mode 100644 node_modules/concurrently/node_modules/strip-ansi/license create mode 100644 node_modules/concurrently/node_modules/strip-ansi/package.json create mode 100644 node_modules/concurrently/node_modules/strip-ansi/readme.md create mode 100644 node_modules/concurrently/node_modules/wrap-ansi/index.js create mode 100644 node_modules/concurrently/node_modules/wrap-ansi/license create mode 100644 node_modules/concurrently/node_modules/wrap-ansi/package.json create mode 100644 node_modules/concurrently/node_modules/wrap-ansi/readme.md create mode 100644 node_modules/concurrently/node_modules/yargs-parser/CHANGELOG.md create mode 100644 node_modules/concurrently/node_modules/yargs-parser/LICENSE.txt create mode 100644 node_modules/concurrently/node_modules/yargs-parser/README.md create mode 100644 node_modules/concurrently/node_modules/yargs-parser/index.js create mode 100644 node_modules/concurrently/node_modules/yargs-parser/lib/tokenize-arg-string.js create mode 100644 node_modules/concurrently/node_modules/yargs-parser/package.json create mode 100644 node_modules/concurrently/node_modules/yargs/CHANGELOG.md create mode 100644 node_modules/concurrently/node_modules/yargs/LICENSE create mode 100644 node_modules/concurrently/node_modules/yargs/README.md create mode 100644 node_modules/concurrently/node_modules/yargs/index.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/apply-extends.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/argsert.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/command.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/completion-templates.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/completion.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/decamelize.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/is-promise.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/levenshtein.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/middleware.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/obj-filter.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/usage.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/validation.js create mode 100644 node_modules/concurrently/node_modules/yargs/lib/yerror.js create mode 100644 node_modules/concurrently/node_modules/yargs/locales/be.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/de.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/en.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/es.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/fr.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/hi.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/hu.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/id.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/it.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/ja.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/ko.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/nb.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/nl.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/nn.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/pirate.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/pl.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/pt.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/pt_BR.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/ru.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/th.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/tr.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/zh_CN.json create mode 100644 node_modules/concurrently/node_modules/yargs/locales/zh_TW.json create mode 100644 node_modules/concurrently/node_modules/yargs/package.json create mode 100644 node_modules/concurrently/node_modules/yargs/yargs.js create mode 100644 node_modules/concurrently/package.json create mode 100644 node_modules/concurrently/src/command-parser/expand-npm-shortcut.js create mode 100644 node_modules/concurrently/src/command-parser/expand-npm-wildcard.js create mode 100644 node_modules/concurrently/src/command-parser/strip-quotes.js create mode 100644 node_modules/concurrently/src/command.js create mode 100644 node_modules/concurrently/src/completion-listener.js create mode 100644 node_modules/concurrently/src/concurrently.js create mode 100644 node_modules/concurrently/src/defaults.js create mode 100644 node_modules/concurrently/src/flow-control/fixtures/fake-command.js create mode 100644 node_modules/concurrently/src/flow-control/input-handler.js create mode 100644 node_modules/concurrently/src/flow-control/kill-on-signal.js create mode 100644 node_modules/concurrently/src/flow-control/kill-others.js create mode 100644 node_modules/concurrently/src/flow-control/log-error.js create mode 100644 node_modules/concurrently/src/flow-control/log-exit.js create mode 100644 node_modules/concurrently/src/flow-control/log-output.js create mode 100644 node_modules/concurrently/src/flow-control/restart-process.js create mode 100644 node_modules/concurrently/src/get-spawn-opts.js create mode 100644 node_modules/concurrently/src/logger.js create mode 100644 node_modules/config/History.md create mode 100644 node_modules/config/LICENSE create mode 100644 node_modules/config/README.md create mode 100644 node_modules/config/async.js create mode 100644 node_modules/config/defer.js create mode 100644 node_modules/config/lib/config.js create mode 100644 node_modules/config/package.json create mode 100644 node_modules/config/parser.js create mode 100644 node_modules/config/raw.js create mode 100644 node_modules/configstore/index.js create mode 100644 node_modules/configstore/license create mode 100644 node_modules/configstore/package.json create mode 100644 node_modules/configstore/readme.md create mode 100644 node_modules/content-disposition/HISTORY.md create mode 100644 node_modules/content-disposition/LICENSE create mode 100644 node_modules/content-disposition/README.md create mode 100644 node_modules/content-disposition/index.js create mode 100644 node_modules/content-disposition/package.json create mode 100644 node_modules/content-type/HISTORY.md create mode 100644 node_modules/content-type/LICENSE create mode 100644 node_modules/content-type/README.md create mode 100644 node_modules/content-type/index.js create mode 100644 node_modules/content-type/package.json create mode 100644 node_modules/cookie-signature/.npmignore create mode 100644 node_modules/cookie-signature/History.md create mode 100644 node_modules/cookie-signature/Readme.md create mode 100644 node_modules/cookie-signature/index.js create mode 100644 node_modules/cookie-signature/package.json create mode 100644 node_modules/cookie/HISTORY.md create mode 100644 node_modules/cookie/LICENSE create mode 100644 node_modules/cookie/README.md create mode 100644 node_modules/cookie/index.js create mode 100644 node_modules/cookie/package.json create mode 100644 node_modules/core-util-is/LICENSE create mode 100644 node_modules/core-util-is/README.md create mode 100644 node_modules/core-util-is/float.patch create mode 100644 node_modules/core-util-is/lib/util.js create mode 100644 node_modules/core-util-is/package.json create mode 100644 node_modules/core-util-is/test.js create mode 100644 node_modules/crypto-random-string/index.d.ts create mode 100644 node_modules/crypto-random-string/index.js create mode 100644 node_modules/crypto-random-string/license create mode 100644 node_modules/crypto-random-string/package.json create mode 100644 node_modules/crypto-random-string/readme.md create mode 100644 node_modules/dashdash/CHANGES.md create mode 100644 node_modules/dashdash/LICENSE.txt create mode 100644 node_modules/dashdash/README.md create mode 100644 node_modules/dashdash/etc/dashdash.bash_completion.in create mode 100644 node_modules/dashdash/lib/dashdash.js create mode 100644 node_modules/dashdash/package.json create mode 100644 node_modules/date-fns/CHANGELOG.md create mode 100644 node_modules/date-fns/LICENSE.md create mode 100644 node_modules/date-fns/README.md create mode 100644 node_modules/date-fns/_lib/addLeadingZeros/index.js create mode 100644 node_modules/date-fns/_lib/assign/index.js create mode 100644 node_modules/date-fns/_lib/cloneObject/index.js create mode 100644 node_modules/date-fns/_lib/format/formatters/index.js create mode 100644 node_modules/date-fns/_lib/format/lightFormatters/index.js create mode 100644 node_modules/date-fns/_lib/format/longFormatters/index.js create mode 100644 node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js create mode 100644 node_modules/date-fns/_lib/getUTCDayOfYear/index.js create mode 100644 node_modules/date-fns/_lib/getUTCISOWeek/index.js create mode 100644 node_modules/date-fns/_lib/getUTCISOWeekYear/index.js create mode 100644 node_modules/date-fns/_lib/getUTCWeek/index.js create mode 100644 node_modules/date-fns/_lib/getUTCWeekYear/index.js create mode 100644 node_modules/date-fns/_lib/isSameUTCWeek/index.js create mode 100644 node_modules/date-fns/_lib/protectedTokens/index.js create mode 100644 node_modules/date-fns/_lib/requiredArgs/index.js create mode 100644 node_modules/date-fns/_lib/setUTCDay/index.js create mode 100644 node_modules/date-fns/_lib/setUTCISODay/index.js create mode 100644 node_modules/date-fns/_lib/setUTCISOWeek/index.js create mode 100644 node_modules/date-fns/_lib/setUTCWeek/index.js create mode 100644 node_modules/date-fns/_lib/startOfUTCISOWeek/index.js create mode 100644 node_modules/date-fns/_lib/startOfUTCISOWeekYear/index.js create mode 100644 node_modules/date-fns/_lib/startOfUTCWeek/index.js create mode 100644 node_modules/date-fns/_lib/startOfUTCWeekYear/index.js create mode 100644 node_modules/date-fns/_lib/toInteger/index.js create mode 100644 node_modules/date-fns/add/index.d.ts create mode 100644 node_modules/date-fns/add/index.js create mode 100644 node_modules/date-fns/add/index.js.flow create mode 100644 node_modules/date-fns/add/package.json create mode 100644 node_modules/date-fns/addBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/addBusinessDays/index.js create mode 100644 node_modules/date-fns/addBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/addBusinessDays/package.json create mode 100644 node_modules/date-fns/addDays/index.d.ts create mode 100644 node_modules/date-fns/addDays/index.js create mode 100644 node_modules/date-fns/addDays/index.js.flow create mode 100644 node_modules/date-fns/addDays/package.json create mode 100644 node_modules/date-fns/addHours/index.d.ts create mode 100644 node_modules/date-fns/addHours/index.js create mode 100644 node_modules/date-fns/addHours/index.js.flow create mode 100644 node_modules/date-fns/addHours/package.json create mode 100644 node_modules/date-fns/addISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/addISOWeekYears/index.js create mode 100644 node_modules/date-fns/addISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/addISOWeekYears/package.json create mode 100644 node_modules/date-fns/addMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/addMilliseconds/index.js create mode 100644 node_modules/date-fns/addMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/addMilliseconds/package.json create mode 100644 node_modules/date-fns/addMinutes/index.d.ts create mode 100644 node_modules/date-fns/addMinutes/index.js create mode 100644 node_modules/date-fns/addMinutes/index.js.flow create mode 100644 node_modules/date-fns/addMinutes/package.json create mode 100644 node_modules/date-fns/addMonths/index.d.ts create mode 100644 node_modules/date-fns/addMonths/index.js create mode 100644 node_modules/date-fns/addMonths/index.js.flow create mode 100644 node_modules/date-fns/addMonths/package.json create mode 100644 node_modules/date-fns/addQuarters/index.d.ts create mode 100644 node_modules/date-fns/addQuarters/index.js create mode 100644 node_modules/date-fns/addQuarters/index.js.flow create mode 100644 node_modules/date-fns/addQuarters/package.json create mode 100644 node_modules/date-fns/addSeconds/index.d.ts create mode 100644 node_modules/date-fns/addSeconds/index.js create mode 100644 node_modules/date-fns/addSeconds/index.js.flow create mode 100644 node_modules/date-fns/addSeconds/package.json create mode 100644 node_modules/date-fns/addWeeks/index.d.ts create mode 100644 node_modules/date-fns/addWeeks/index.js create mode 100644 node_modules/date-fns/addWeeks/index.js.flow create mode 100644 node_modules/date-fns/addWeeks/package.json create mode 100644 node_modules/date-fns/addYears/index.d.ts create mode 100644 node_modules/date-fns/addYears/index.js create mode 100644 node_modules/date-fns/addYears/index.js.flow create mode 100644 node_modules/date-fns/addYears/package.json create mode 100644 node_modules/date-fns/areIntervalsOverlapping/index.d.ts create mode 100644 node_modules/date-fns/areIntervalsOverlapping/index.js create mode 100644 node_modules/date-fns/areIntervalsOverlapping/index.js.flow create mode 100644 node_modules/date-fns/areIntervalsOverlapping/package.json create mode 100644 node_modules/date-fns/closestIndexTo/index.d.ts create mode 100644 node_modules/date-fns/closestIndexTo/index.js create mode 100644 node_modules/date-fns/closestIndexTo/index.js.flow create mode 100644 node_modules/date-fns/closestIndexTo/package.json create mode 100644 node_modules/date-fns/closestTo/index.d.ts create mode 100644 node_modules/date-fns/closestTo/index.js create mode 100644 node_modules/date-fns/closestTo/index.js.flow create mode 100644 node_modules/date-fns/closestTo/package.json create mode 100644 node_modules/date-fns/compareAsc/index.d.ts create mode 100644 node_modules/date-fns/compareAsc/index.js create mode 100644 node_modules/date-fns/compareAsc/index.js.flow create mode 100644 node_modules/date-fns/compareAsc/package.json create mode 100644 node_modules/date-fns/compareDesc/index.d.ts create mode 100644 node_modules/date-fns/compareDesc/index.js create mode 100644 node_modules/date-fns/compareDesc/index.js.flow create mode 100644 node_modules/date-fns/compareDesc/package.json create mode 100644 node_modules/date-fns/constants/index.d.ts create mode 100644 node_modules/date-fns/constants/index.js create mode 100644 node_modules/date-fns/constants/index.js.flow create mode 100644 node_modules/date-fns/differenceInBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/differenceInBusinessDays/index.js create mode 100644 node_modules/date-fns/differenceInBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/differenceInBusinessDays/package.json create mode 100644 node_modules/date-fns/differenceInCalendarDays/index.d.ts create mode 100644 node_modules/date-fns/differenceInCalendarDays/index.js create mode 100644 node_modules/date-fns/differenceInCalendarDays/index.js.flow create mode 100644 node_modules/date-fns/differenceInCalendarDays/package.json create mode 100644 node_modules/date-fns/differenceInCalendarISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/differenceInCalendarISOWeekYears/index.js create mode 100644 node_modules/date-fns/differenceInCalendarISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/differenceInCalendarISOWeekYears/package.json create mode 100644 node_modules/date-fns/differenceInCalendarISOWeeks/index.d.ts create mode 100644 node_modules/date-fns/differenceInCalendarISOWeeks/index.js create mode 100644 node_modules/date-fns/differenceInCalendarISOWeeks/index.js.flow create mode 100644 node_modules/date-fns/differenceInCalendarISOWeeks/package.json create mode 100644 node_modules/date-fns/differenceInCalendarMonths/index.d.ts create mode 100644 node_modules/date-fns/differenceInCalendarMonths/index.js create mode 100644 node_modules/date-fns/differenceInCalendarMonths/index.js.flow create mode 100644 node_modules/date-fns/differenceInCalendarMonths/package.json create mode 100644 node_modules/date-fns/differenceInCalendarQuarters/index.d.ts create mode 100644 node_modules/date-fns/differenceInCalendarQuarters/index.js create mode 100644 node_modules/date-fns/differenceInCalendarQuarters/index.js.flow create mode 100644 node_modules/date-fns/differenceInCalendarQuarters/package.json create mode 100644 node_modules/date-fns/differenceInCalendarWeeks/index.d.ts create mode 100644 node_modules/date-fns/differenceInCalendarWeeks/index.js create mode 100644 node_modules/date-fns/differenceInCalendarWeeks/index.js.flow create mode 100644 node_modules/date-fns/differenceInCalendarWeeks/package.json create mode 100644 node_modules/date-fns/differenceInCalendarYears/index.d.ts create mode 100644 node_modules/date-fns/differenceInCalendarYears/index.js create mode 100644 node_modules/date-fns/differenceInCalendarYears/index.js.flow create mode 100644 node_modules/date-fns/differenceInCalendarYears/package.json create mode 100644 node_modules/date-fns/differenceInDays/index.d.ts create mode 100644 node_modules/date-fns/differenceInDays/index.js create mode 100644 node_modules/date-fns/differenceInDays/index.js.flow create mode 100644 node_modules/date-fns/differenceInDays/package.json create mode 100644 node_modules/date-fns/differenceInHours/index.d.ts create mode 100644 node_modules/date-fns/differenceInHours/index.js create mode 100644 node_modules/date-fns/differenceInHours/index.js.flow create mode 100644 node_modules/date-fns/differenceInHours/package.json create mode 100644 node_modules/date-fns/differenceInISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/differenceInISOWeekYears/index.js create mode 100644 node_modules/date-fns/differenceInISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/differenceInISOWeekYears/package.json create mode 100644 node_modules/date-fns/differenceInMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/differenceInMilliseconds/index.js create mode 100644 node_modules/date-fns/differenceInMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/differenceInMilliseconds/package.json create mode 100644 node_modules/date-fns/differenceInMinutes/index.d.ts create mode 100644 node_modules/date-fns/differenceInMinutes/index.js create mode 100644 node_modules/date-fns/differenceInMinutes/index.js.flow create mode 100644 node_modules/date-fns/differenceInMinutes/package.json create mode 100644 node_modules/date-fns/differenceInMonths/index.d.ts create mode 100644 node_modules/date-fns/differenceInMonths/index.js create mode 100644 node_modules/date-fns/differenceInMonths/index.js.flow create mode 100644 node_modules/date-fns/differenceInMonths/package.json create mode 100644 node_modules/date-fns/differenceInQuarters/index.d.ts create mode 100644 node_modules/date-fns/differenceInQuarters/index.js create mode 100644 node_modules/date-fns/differenceInQuarters/index.js.flow create mode 100644 node_modules/date-fns/differenceInQuarters/package.json create mode 100644 node_modules/date-fns/differenceInSeconds/index.d.ts create mode 100644 node_modules/date-fns/differenceInSeconds/index.js create mode 100644 node_modules/date-fns/differenceInSeconds/index.js.flow create mode 100644 node_modules/date-fns/differenceInSeconds/package.json create mode 100644 node_modules/date-fns/differenceInWeeks/index.d.ts create mode 100644 node_modules/date-fns/differenceInWeeks/index.js create mode 100644 node_modules/date-fns/differenceInWeeks/index.js.flow create mode 100644 node_modules/date-fns/differenceInWeeks/package.json create mode 100644 node_modules/date-fns/differenceInYears/index.d.ts create mode 100644 node_modules/date-fns/differenceInYears/index.js create mode 100644 node_modules/date-fns/differenceInYears/index.js.flow create mode 100644 node_modules/date-fns/differenceInYears/package.json create mode 100644 node_modules/date-fns/docs/.eslintrc.js create mode 100644 node_modules/date-fns/docs/Duration.js create mode 100644 node_modules/date-fns/docs/Interval.js create mode 100644 node_modules/date-fns/docs/Locale.js create mode 100644 node_modules/date-fns/docs/constants.md create mode 100644 node_modules/date-fns/docs/esm.md create mode 100644 node_modules/date-fns/docs/fp.md create mode 100644 node_modules/date-fns/docs/gettingStarted.md create mode 100644 node_modules/date-fns/docs/i18n.md create mode 100644 node_modules/date-fns/docs/i18nContributionGuide.md create mode 100644 node_modules/date-fns/docs/index.js create mode 100644 node_modules/date-fns/docs/logo.svg create mode 100644 node_modules/date-fns/docs/logotype.svg create mode 100644 node_modules/date-fns/docs/timeZones.md create mode 100644 node_modules/date-fns/docs/unicodeTokens.md create mode 100644 node_modules/date-fns/docs/upgradeGuide.md create mode 100644 node_modules/date-fns/docs/webpack.md create mode 100644 node_modules/date-fns/eachDayOfInterval/index.d.ts create mode 100644 node_modules/date-fns/eachDayOfInterval/index.js create mode 100644 node_modules/date-fns/eachDayOfInterval/index.js.flow create mode 100644 node_modules/date-fns/eachDayOfInterval/package.json create mode 100644 node_modules/date-fns/eachHourOfInterval/index.d.ts create mode 100644 node_modules/date-fns/eachHourOfInterval/index.js create mode 100644 node_modules/date-fns/eachHourOfInterval/index.js.flow create mode 100644 node_modules/date-fns/eachHourOfInterval/package.json create mode 100644 node_modules/date-fns/eachMonthOfInterval/index.d.ts create mode 100644 node_modules/date-fns/eachMonthOfInterval/index.js create mode 100644 node_modules/date-fns/eachMonthOfInterval/index.js.flow create mode 100644 node_modules/date-fns/eachMonthOfInterval/package.json create mode 100644 node_modules/date-fns/eachQuarterOfInterval/index.d.ts create mode 100644 node_modules/date-fns/eachQuarterOfInterval/index.js create mode 100644 node_modules/date-fns/eachQuarterOfInterval/index.js.flow create mode 100644 node_modules/date-fns/eachQuarterOfInterval/package.json create mode 100644 node_modules/date-fns/eachWeekOfInterval/index.d.ts create mode 100644 node_modules/date-fns/eachWeekOfInterval/index.js create mode 100644 node_modules/date-fns/eachWeekOfInterval/index.js.flow create mode 100644 node_modules/date-fns/eachWeekOfInterval/package.json create mode 100644 node_modules/date-fns/eachWeekendOfInterval/index.d.ts create mode 100644 node_modules/date-fns/eachWeekendOfInterval/index.js create mode 100644 node_modules/date-fns/eachWeekendOfInterval/index.js.flow create mode 100644 node_modules/date-fns/eachWeekendOfInterval/package.json create mode 100644 node_modules/date-fns/eachWeekendOfMonth/index.d.ts create mode 100644 node_modules/date-fns/eachWeekendOfMonth/index.js create mode 100644 node_modules/date-fns/eachWeekendOfMonth/index.js.flow create mode 100644 node_modules/date-fns/eachWeekendOfMonth/package.json create mode 100644 node_modules/date-fns/eachWeekendOfYear/index.d.ts create mode 100644 node_modules/date-fns/eachWeekendOfYear/index.js create mode 100644 node_modules/date-fns/eachWeekendOfYear/index.js.flow create mode 100644 node_modules/date-fns/eachWeekendOfYear/package.json create mode 100644 node_modules/date-fns/eachYearOfInterval/index.d.ts create mode 100644 node_modules/date-fns/eachYearOfInterval/index.js create mode 100644 node_modules/date-fns/eachYearOfInterval/index.js.flow create mode 100644 node_modules/date-fns/eachYearOfInterval/package.json create mode 100644 node_modules/date-fns/endOfDay/index.d.ts create mode 100644 node_modules/date-fns/endOfDay/index.js create mode 100644 node_modules/date-fns/endOfDay/index.js.flow create mode 100644 node_modules/date-fns/endOfDay/package.json create mode 100644 node_modules/date-fns/endOfDecade/index.d.ts create mode 100644 node_modules/date-fns/endOfDecade/index.js create mode 100644 node_modules/date-fns/endOfDecade/index.js.flow create mode 100644 node_modules/date-fns/endOfDecade/package.json create mode 100644 node_modules/date-fns/endOfHour/index.d.ts create mode 100644 node_modules/date-fns/endOfHour/index.js create mode 100644 node_modules/date-fns/endOfHour/index.js.flow create mode 100644 node_modules/date-fns/endOfHour/package.json create mode 100644 node_modules/date-fns/endOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/endOfISOWeek/index.js create mode 100644 node_modules/date-fns/endOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/endOfISOWeek/package.json create mode 100644 node_modules/date-fns/endOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/endOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/endOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/endOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/endOfMinute/index.d.ts create mode 100644 node_modules/date-fns/endOfMinute/index.js create mode 100644 node_modules/date-fns/endOfMinute/index.js.flow create mode 100644 node_modules/date-fns/endOfMinute/package.json create mode 100644 node_modules/date-fns/endOfMonth/index.d.ts create mode 100644 node_modules/date-fns/endOfMonth/index.js create mode 100644 node_modules/date-fns/endOfMonth/index.js.flow create mode 100644 node_modules/date-fns/endOfMonth/package.json create mode 100644 node_modules/date-fns/endOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/endOfQuarter/index.js create mode 100644 node_modules/date-fns/endOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/endOfQuarter/package.json create mode 100644 node_modules/date-fns/endOfSecond/index.d.ts create mode 100644 node_modules/date-fns/endOfSecond/index.js create mode 100644 node_modules/date-fns/endOfSecond/index.js.flow create mode 100644 node_modules/date-fns/endOfSecond/package.json create mode 100644 node_modules/date-fns/endOfToday/index.d.ts create mode 100644 node_modules/date-fns/endOfToday/index.js create mode 100644 node_modules/date-fns/endOfToday/index.js.flow create mode 100644 node_modules/date-fns/endOfToday/package.json create mode 100644 node_modules/date-fns/endOfTomorrow/index.d.ts create mode 100644 node_modules/date-fns/endOfTomorrow/index.js create mode 100644 node_modules/date-fns/endOfTomorrow/index.js.flow create mode 100644 node_modules/date-fns/endOfTomorrow/package.json create mode 100644 node_modules/date-fns/endOfWeek/index.d.ts create mode 100644 node_modules/date-fns/endOfWeek/index.js create mode 100644 node_modules/date-fns/endOfWeek/index.js.flow create mode 100644 node_modules/date-fns/endOfWeek/package.json create mode 100644 node_modules/date-fns/endOfYear/index.d.ts create mode 100644 node_modules/date-fns/endOfYear/index.js create mode 100644 node_modules/date-fns/endOfYear/index.js.flow create mode 100644 node_modules/date-fns/endOfYear/package.json create mode 100644 node_modules/date-fns/endOfYesterday/index.d.ts create mode 100644 node_modules/date-fns/endOfYesterday/index.js create mode 100644 node_modules/date-fns/endOfYesterday/index.js.flow create mode 100644 node_modules/date-fns/endOfYesterday/package.json create mode 100644 node_modules/date-fns/esm/_lib/addLeadingZeros/index.js create mode 100644 node_modules/date-fns/esm/_lib/assign/index.js create mode 100644 node_modules/date-fns/esm/_lib/cloneObject/index.js create mode 100644 node_modules/date-fns/esm/_lib/format/formatters/index.js create mode 100644 node_modules/date-fns/esm/_lib/format/lightFormatters/index.js create mode 100644 node_modules/date-fns/esm/_lib/format/longFormatters/index.js create mode 100644 node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js create mode 100644 node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js create mode 100644 node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/_lib/getUTCWeek/index.js create mode 100644 node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js create mode 100644 node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js create mode 100644 node_modules/date-fns/esm/_lib/protectedTokens/index.js create mode 100644 node_modules/date-fns/esm/_lib/requiredArgs/index.js create mode 100644 node_modules/date-fns/esm/_lib/setUTCDay/index.js create mode 100644 node_modules/date-fns/esm/_lib/setUTCISODay/index.js create mode 100644 node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js create mode 100644 node_modules/date-fns/esm/_lib/setUTCWeek/index.js create mode 100644 node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js create mode 100644 node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js create mode 100644 node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js create mode 100644 node_modules/date-fns/esm/_lib/toInteger/index.js create mode 100644 node_modules/date-fns/esm/add/index.d.ts create mode 100644 node_modules/date-fns/esm/add/index.js create mode 100644 node_modules/date-fns/esm/add/index.js.flow create mode 100644 node_modules/date-fns/esm/add/package.json create mode 100644 node_modules/date-fns/esm/addBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/esm/addBusinessDays/index.js create mode 100644 node_modules/date-fns/esm/addBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/esm/addBusinessDays/package.json create mode 100644 node_modules/date-fns/esm/addDays/index.d.ts create mode 100644 node_modules/date-fns/esm/addDays/index.js create mode 100644 node_modules/date-fns/esm/addDays/index.js.flow create mode 100644 node_modules/date-fns/esm/addDays/package.json create mode 100644 node_modules/date-fns/esm/addHours/index.d.ts create mode 100644 node_modules/date-fns/esm/addHours/index.js create mode 100644 node_modules/date-fns/esm/addHours/index.js.flow create mode 100644 node_modules/date-fns/esm/addHours/package.json create mode 100644 node_modules/date-fns/esm/addISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/addISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/addISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/addISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/addMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/addMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/addMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/addMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/addMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/addMinutes/index.js create mode 100644 node_modules/date-fns/esm/addMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/addMinutes/package.json create mode 100644 node_modules/date-fns/esm/addMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/addMonths/index.js create mode 100644 node_modules/date-fns/esm/addMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/addMonths/package.json create mode 100644 node_modules/date-fns/esm/addQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/addQuarters/index.js create mode 100644 node_modules/date-fns/esm/addQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/addQuarters/package.json create mode 100644 node_modules/date-fns/esm/addSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/addSeconds/index.js create mode 100644 node_modules/date-fns/esm/addSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/addSeconds/package.json create mode 100644 node_modules/date-fns/esm/addWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/addWeeks/index.js create mode 100644 node_modules/date-fns/esm/addWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/addWeeks/package.json create mode 100644 node_modules/date-fns/esm/addYears/index.d.ts create mode 100644 node_modules/date-fns/esm/addYears/index.js create mode 100644 node_modules/date-fns/esm/addYears/index.js.flow create mode 100644 node_modules/date-fns/esm/addYears/package.json create mode 100644 node_modules/date-fns/esm/areIntervalsOverlapping/index.d.ts create mode 100644 node_modules/date-fns/esm/areIntervalsOverlapping/index.js create mode 100644 node_modules/date-fns/esm/areIntervalsOverlapping/index.js.flow create mode 100644 node_modules/date-fns/esm/areIntervalsOverlapping/package.json create mode 100644 node_modules/date-fns/esm/closestIndexTo/index.d.ts create mode 100644 node_modules/date-fns/esm/closestIndexTo/index.js create mode 100644 node_modules/date-fns/esm/closestIndexTo/index.js.flow create mode 100644 node_modules/date-fns/esm/closestIndexTo/package.json create mode 100644 node_modules/date-fns/esm/closestTo/index.d.ts create mode 100644 node_modules/date-fns/esm/closestTo/index.js create mode 100644 node_modules/date-fns/esm/closestTo/index.js.flow create mode 100644 node_modules/date-fns/esm/closestTo/package.json create mode 100644 node_modules/date-fns/esm/compareAsc/index.d.ts create mode 100644 node_modules/date-fns/esm/compareAsc/index.js create mode 100644 node_modules/date-fns/esm/compareAsc/index.js.flow create mode 100644 node_modules/date-fns/esm/compareAsc/package.json create mode 100644 node_modules/date-fns/esm/compareDesc/index.d.ts create mode 100644 node_modules/date-fns/esm/compareDesc/index.js create mode 100644 node_modules/date-fns/esm/compareDesc/index.js.flow create mode 100644 node_modules/date-fns/esm/compareDesc/package.json create mode 100644 node_modules/date-fns/esm/constants/index.d.ts create mode 100644 node_modules/date-fns/esm/constants/index.js create mode 100644 node_modules/date-fns/esm/constants/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInBusinessDays/index.js create mode 100644 node_modules/date-fns/esm/differenceInBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInBusinessDays/package.json create mode 100644 node_modules/date-fns/esm/differenceInCalendarDays/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInCalendarDays/index.js create mode 100644 node_modules/date-fns/esm/differenceInCalendarDays/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInCalendarDays/package.json create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeeks/index.js create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInCalendarISOWeeks/package.json create mode 100644 node_modules/date-fns/esm/differenceInCalendarMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInCalendarMonths/index.js create mode 100644 node_modules/date-fns/esm/differenceInCalendarMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInCalendarMonths/package.json create mode 100644 node_modules/date-fns/esm/differenceInCalendarQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInCalendarQuarters/index.js create mode 100644 node_modules/date-fns/esm/differenceInCalendarQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInCalendarQuarters/package.json create mode 100644 node_modules/date-fns/esm/differenceInCalendarWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInCalendarWeeks/index.js create mode 100644 node_modules/date-fns/esm/differenceInCalendarWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInCalendarWeeks/package.json create mode 100644 node_modules/date-fns/esm/differenceInCalendarYears/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInCalendarYears/index.js create mode 100644 node_modules/date-fns/esm/differenceInCalendarYears/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInCalendarYears/package.json create mode 100644 node_modules/date-fns/esm/differenceInDays/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInDays/index.js create mode 100644 node_modules/date-fns/esm/differenceInDays/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInDays/package.json create mode 100644 node_modules/date-fns/esm/differenceInHours/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInHours/index.js create mode 100644 node_modules/date-fns/esm/differenceInHours/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInHours/package.json create mode 100644 node_modules/date-fns/esm/differenceInISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/differenceInISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/differenceInMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/differenceInMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/differenceInMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInMinutes/index.js create mode 100644 node_modules/date-fns/esm/differenceInMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInMinutes/package.json create mode 100644 node_modules/date-fns/esm/differenceInMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInMonths/index.js create mode 100644 node_modules/date-fns/esm/differenceInMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInMonths/package.json create mode 100644 node_modules/date-fns/esm/differenceInQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInQuarters/index.js create mode 100644 node_modules/date-fns/esm/differenceInQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInQuarters/package.json create mode 100644 node_modules/date-fns/esm/differenceInSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInSeconds/index.js create mode 100644 node_modules/date-fns/esm/differenceInSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInSeconds/package.json create mode 100644 node_modules/date-fns/esm/differenceInWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInWeeks/index.js create mode 100644 node_modules/date-fns/esm/differenceInWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInWeeks/package.json create mode 100644 node_modules/date-fns/esm/differenceInYears/index.d.ts create mode 100644 node_modules/date-fns/esm/differenceInYears/index.js create mode 100644 node_modules/date-fns/esm/differenceInYears/index.js.flow create mode 100644 node_modules/date-fns/esm/differenceInYears/package.json create mode 100644 node_modules/date-fns/esm/eachDayOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/eachDayOfInterval/index.js create mode 100644 node_modules/date-fns/esm/eachDayOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/eachDayOfInterval/package.json create mode 100644 node_modules/date-fns/esm/eachHourOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/eachHourOfInterval/index.js create mode 100644 node_modules/date-fns/esm/eachHourOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/eachHourOfInterval/package.json create mode 100644 node_modules/date-fns/esm/eachMonthOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/eachMonthOfInterval/index.js create mode 100644 node_modules/date-fns/esm/eachMonthOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/eachMonthOfInterval/package.json create mode 100644 node_modules/date-fns/esm/eachQuarterOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/eachQuarterOfInterval/index.js create mode 100644 node_modules/date-fns/esm/eachQuarterOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/eachQuarterOfInterval/package.json create mode 100644 node_modules/date-fns/esm/eachWeekOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/eachWeekOfInterval/index.js create mode 100644 node_modules/date-fns/esm/eachWeekOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/eachWeekOfInterval/package.json create mode 100644 node_modules/date-fns/esm/eachWeekendOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/eachWeekendOfInterval/index.js create mode 100644 node_modules/date-fns/esm/eachWeekendOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/eachWeekendOfInterval/package.json create mode 100644 node_modules/date-fns/esm/eachWeekendOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/eachWeekendOfMonth/index.js create mode 100644 node_modules/date-fns/esm/eachWeekendOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/eachWeekendOfMonth/package.json create mode 100644 node_modules/date-fns/esm/eachWeekendOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/eachWeekendOfYear/index.js create mode 100644 node_modules/date-fns/esm/eachWeekendOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/eachWeekendOfYear/package.json create mode 100644 node_modules/date-fns/esm/eachYearOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/eachYearOfInterval/index.js create mode 100644 node_modules/date-fns/esm/eachYearOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/eachYearOfInterval/package.json create mode 100644 node_modules/date-fns/esm/endOfDay/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfDay/index.js create mode 100644 node_modules/date-fns/esm/endOfDay/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfDay/package.json create mode 100644 node_modules/date-fns/esm/endOfDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfDecade/index.js create mode 100644 node_modules/date-fns/esm/endOfDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfDecade/package.json create mode 100644 node_modules/date-fns/esm/endOfHour/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfHour/index.js create mode 100644 node_modules/date-fns/esm/endOfHour/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfHour/package.json create mode 100644 node_modules/date-fns/esm/endOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfISOWeek/index.js create mode 100644 node_modules/date-fns/esm/endOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfISOWeek/package.json create mode 100644 node_modules/date-fns/esm/endOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/endOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/endOfMinute/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfMinute/index.js create mode 100644 node_modules/date-fns/esm/endOfMinute/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfMinute/package.json create mode 100644 node_modules/date-fns/esm/endOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfMonth/index.js create mode 100644 node_modules/date-fns/esm/endOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfMonth/package.json create mode 100644 node_modules/date-fns/esm/endOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfQuarter/index.js create mode 100644 node_modules/date-fns/esm/endOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfQuarter/package.json create mode 100644 node_modules/date-fns/esm/endOfSecond/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfSecond/index.js create mode 100644 node_modules/date-fns/esm/endOfSecond/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfSecond/package.json create mode 100644 node_modules/date-fns/esm/endOfToday/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfToday/index.js create mode 100644 node_modules/date-fns/esm/endOfToday/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfToday/package.json create mode 100644 node_modules/date-fns/esm/endOfTomorrow/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfTomorrow/index.js create mode 100644 node_modules/date-fns/esm/endOfTomorrow/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfTomorrow/package.json create mode 100644 node_modules/date-fns/esm/endOfWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfWeek/index.js create mode 100644 node_modules/date-fns/esm/endOfWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfWeek/package.json create mode 100644 node_modules/date-fns/esm/endOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfYear/index.js create mode 100644 node_modules/date-fns/esm/endOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfYear/package.json create mode 100644 node_modules/date-fns/esm/endOfYesterday/index.d.ts create mode 100644 node_modules/date-fns/esm/endOfYesterday/index.js create mode 100644 node_modules/date-fns/esm/endOfYesterday/index.js.flow create mode 100644 node_modules/date-fns/esm/endOfYesterday/package.json create mode 100644 node_modules/date-fns/esm/format/index.d.ts create mode 100644 node_modules/date-fns/esm/format/index.js create mode 100644 node_modules/date-fns/esm/format/index.js.flow create mode 100644 node_modules/date-fns/esm/format/package.json create mode 100644 node_modules/date-fns/esm/formatDistance/index.d.ts create mode 100644 node_modules/date-fns/esm/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/formatDistance/index.js.flow create mode 100644 node_modules/date-fns/esm/formatDistance/package.json create mode 100644 node_modules/date-fns/esm/formatDistanceStrict/index.d.ts create mode 100644 node_modules/date-fns/esm/formatDistanceStrict/index.js create mode 100644 node_modules/date-fns/esm/formatDistanceStrict/index.js.flow create mode 100644 node_modules/date-fns/esm/formatDistanceStrict/package.json create mode 100644 node_modules/date-fns/esm/formatDistanceToNow/index.d.ts create mode 100644 node_modules/date-fns/esm/formatDistanceToNow/index.js create mode 100644 node_modules/date-fns/esm/formatDistanceToNow/index.js.flow create mode 100644 node_modules/date-fns/esm/formatDistanceToNow/package.json create mode 100644 node_modules/date-fns/esm/formatDistanceToNowStrict/index.d.ts create mode 100644 node_modules/date-fns/esm/formatDistanceToNowStrict/index.js create mode 100644 node_modules/date-fns/esm/formatDistanceToNowStrict/index.js.flow create mode 100644 node_modules/date-fns/esm/formatDistanceToNowStrict/package.json create mode 100644 node_modules/date-fns/esm/formatDuration/index.d.ts create mode 100644 node_modules/date-fns/esm/formatDuration/index.js create mode 100644 node_modules/date-fns/esm/formatDuration/index.js.flow create mode 100644 node_modules/date-fns/esm/formatDuration/package.json create mode 100644 node_modules/date-fns/esm/formatISO/index.d.ts create mode 100644 node_modules/date-fns/esm/formatISO/index.js create mode 100644 node_modules/date-fns/esm/formatISO/index.js.flow create mode 100644 node_modules/date-fns/esm/formatISO/package.json create mode 100644 node_modules/date-fns/esm/formatISO9075/index.d.ts create mode 100644 node_modules/date-fns/esm/formatISO9075/index.js create mode 100644 node_modules/date-fns/esm/formatISO9075/index.js.flow create mode 100644 node_modules/date-fns/esm/formatISO9075/package.json create mode 100644 node_modules/date-fns/esm/formatISODuration/index.d.ts create mode 100644 node_modules/date-fns/esm/formatISODuration/index.js create mode 100644 node_modules/date-fns/esm/formatISODuration/index.js.flow create mode 100644 node_modules/date-fns/esm/formatISODuration/package.json create mode 100644 node_modules/date-fns/esm/formatRFC3339/index.d.ts create mode 100644 node_modules/date-fns/esm/formatRFC3339/index.js create mode 100644 node_modules/date-fns/esm/formatRFC3339/index.js.flow create mode 100644 node_modules/date-fns/esm/formatRFC3339/package.json create mode 100644 node_modules/date-fns/esm/formatRFC7231/index.d.ts create mode 100644 node_modules/date-fns/esm/formatRFC7231/index.js create mode 100644 node_modules/date-fns/esm/formatRFC7231/index.js.flow create mode 100644 node_modules/date-fns/esm/formatRFC7231/package.json create mode 100644 node_modules/date-fns/esm/formatRelative/index.d.ts create mode 100644 node_modules/date-fns/esm/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/formatRelative/index.js.flow create mode 100644 node_modules/date-fns/esm/formatRelative/package.json create mode 100644 node_modules/date-fns/esm/fp/_lib/convertToFP/index.js create mode 100644 node_modules/date-fns/esm/fp/add/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/add/index.js create mode 100644 node_modules/date-fns/esm/fp/add/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/add/package.json create mode 100644 node_modules/date-fns/esm/fp/addBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addBusinessDays/index.js create mode 100644 node_modules/date-fns/esm/fp/addBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addBusinessDays/package.json create mode 100644 node_modules/date-fns/esm/fp/addDays/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addDays/index.js create mode 100644 node_modules/date-fns/esm/fp/addDays/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addDays/package.json create mode 100644 node_modules/date-fns/esm/fp/addHours/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addHours/index.js create mode 100644 node_modules/date-fns/esm/fp/addHours/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addHours/package.json create mode 100644 node_modules/date-fns/esm/fp/addISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/fp/addISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/fp/addMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/fp/addMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/fp/addMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addMinutes/index.js create mode 100644 node_modules/date-fns/esm/fp/addMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addMinutes/package.json create mode 100644 node_modules/date-fns/esm/fp/addMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addMonths/index.js create mode 100644 node_modules/date-fns/esm/fp/addMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addMonths/package.json create mode 100644 node_modules/date-fns/esm/fp/addQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addQuarters/index.js create mode 100644 node_modules/date-fns/esm/fp/addQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addQuarters/package.json create mode 100644 node_modules/date-fns/esm/fp/addSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addSeconds/index.js create mode 100644 node_modules/date-fns/esm/fp/addSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addSeconds/package.json create mode 100644 node_modules/date-fns/esm/fp/addWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addWeeks/index.js create mode 100644 node_modules/date-fns/esm/fp/addWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addWeeks/package.json create mode 100644 node_modules/date-fns/esm/fp/addYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/addYears/index.js create mode 100644 node_modules/date-fns/esm/fp/addYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/addYears/package.json create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlapping/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlapping/index.js create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlapping/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlapping/package.json create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlappingWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlappingWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlappingWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/areIntervalsOverlappingWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/closestIndexTo/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/closestIndexTo/index.js create mode 100644 node_modules/date-fns/esm/fp/closestIndexTo/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/closestIndexTo/package.json create mode 100644 node_modules/date-fns/esm/fp/closestTo/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/closestTo/index.js create mode 100644 node_modules/date-fns/esm/fp/closestTo/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/closestTo/package.json create mode 100644 node_modules/date-fns/esm/fp/compareAsc/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/compareAsc/index.js create mode 100644 node_modules/date-fns/esm/fp/compareAsc/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/compareAsc/package.json create mode 100644 node_modules/date-fns/esm/fp/compareDesc/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/compareDesc/index.js create mode 100644 node_modules/date-fns/esm/fp/compareDesc/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/compareDesc/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInBusinessDays/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInBusinessDays/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarDays/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarDays/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarDays/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarDays/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeeks/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarISOWeeks/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarMonths/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarMonths/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarQuarters/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarQuarters/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeks/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeks/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeksWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeksWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeksWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarWeeksWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarYears/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInCalendarYears/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInDays/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInDays/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInDays/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInDays/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInHours/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInHours/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInHours/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInHours/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInMinutes/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInMinutes/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInMonths/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInMonths/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInQuarters/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInQuarters/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInSeconds/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInSeconds/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInWeeks/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInWeeks/package.json create mode 100644 node_modules/date-fns/esm/fp/differenceInYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/differenceInYears/index.js create mode 100644 node_modules/date-fns/esm/fp/differenceInYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/differenceInYears/package.json create mode 100644 node_modules/date-fns/esm/fp/eachDayOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachDayOfInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/eachDayOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachDayOfInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/eachDayOfIntervalWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachDayOfIntervalWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/eachDayOfIntervalWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachDayOfIntervalWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/eachHourOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachHourOfInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/eachHourOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachHourOfInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/eachHourOfIntervalWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachHourOfIntervalWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/eachHourOfIntervalWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachHourOfIntervalWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/eachMonthOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachMonthOfInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/eachMonthOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachMonthOfInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/eachQuarterOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachQuarterOfInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/eachQuarterOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachQuarterOfInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfIntervalWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfIntervalWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfIntervalWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachWeekOfIntervalWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfYear/index.js create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachWeekendOfYear/package.json create mode 100644 node_modules/date-fns/esm/fp/eachYearOfInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/eachYearOfInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/eachYearOfInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/eachYearOfInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfDay/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfDay/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfDay/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfDay/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfDecade/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfDecade/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfDecadeWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfDecadeWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfDecadeWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfDecadeWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfHour/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfHour/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfHour/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfHour/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfMinute/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfMinute/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfMinute/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfMinute/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfQuarter/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfQuarter/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfSecond/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfSecond/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfSecond/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfSecond/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfWeekWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfWeekWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/endOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/endOfYear/index.js create mode 100644 node_modules/date-fns/esm/fp/endOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/endOfYear/package.json create mode 100644 node_modules/date-fns/esm/fp/format/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/format/index.js create mode 100644 node_modules/date-fns/esm/fp/format/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/format/package.json create mode 100644 node_modules/date-fns/esm/fp/formatDistance/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/fp/formatDistance/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatDistance/package.json create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrict/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrict/index.js create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrict/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrict/package.json create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrictWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrictWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrictWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatDistanceStrictWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/formatDistanceWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatDistanceWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatDistanceWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatDistanceWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/formatDuration/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatDuration/index.js create mode 100644 node_modules/date-fns/esm/fp/formatDuration/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatDuration/package.json create mode 100644 node_modules/date-fns/esm/fp/formatDurationWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatDurationWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatDurationWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatDurationWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/formatISO/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatISO/index.js create mode 100644 node_modules/date-fns/esm/fp/formatISO/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatISO/package.json create mode 100644 node_modules/date-fns/esm/fp/formatISO9075/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatISO9075/index.js create mode 100644 node_modules/date-fns/esm/fp/formatISO9075/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatISO9075/package.json create mode 100644 node_modules/date-fns/esm/fp/formatISO9075WithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatISO9075WithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatISO9075WithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatISO9075WithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/formatISODuration/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatISODuration/index.js create mode 100644 node_modules/date-fns/esm/fp/formatISODuration/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatISODuration/package.json create mode 100644 node_modules/date-fns/esm/fp/formatISOWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatISOWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatISOWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatISOWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339/index.js create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339/package.json create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339WithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339WithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339WithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatRFC3339WithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/formatRFC7231/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatRFC7231/index.js create mode 100644 node_modules/date-fns/esm/fp/formatRFC7231/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatRFC7231/package.json create mode 100644 node_modules/date-fns/esm/fp/formatRelative/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/fp/formatRelative/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatRelative/package.json create mode 100644 node_modules/date-fns/esm/fp/formatRelativeWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatRelativeWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatRelativeWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatRelativeWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/formatWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/formatWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/formatWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/formatWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/fromUnixTime/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/fromUnixTime/index.js create mode 100644 node_modules/date-fns/esm/fp/fromUnixTime/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/fromUnixTime/package.json create mode 100644 node_modules/date-fns/esm/fp/getDate/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getDate/index.js create mode 100644 node_modules/date-fns/esm/fp/getDate/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getDate/package.json create mode 100644 node_modules/date-fns/esm/fp/getDay/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getDay/index.js create mode 100644 node_modules/date-fns/esm/fp/getDay/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getDay/package.json create mode 100644 node_modules/date-fns/esm/fp/getDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getDayOfYear/index.js create mode 100644 node_modules/date-fns/esm/fp/getDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getDayOfYear/package.json create mode 100644 node_modules/date-fns/esm/fp/getDaysInMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getDaysInMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/getDaysInMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getDaysInMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/getDaysInYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getDaysInYear/index.js create mode 100644 node_modules/date-fns/esm/fp/getDaysInYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getDaysInYear/package.json create mode 100644 node_modules/date-fns/esm/fp/getDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getDecade/index.js create mode 100644 node_modules/date-fns/esm/fp/getDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getDecade/package.json create mode 100644 node_modules/date-fns/esm/fp/getHours/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getHours/index.js create mode 100644 node_modules/date-fns/esm/fp/getHours/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getHours/package.json create mode 100644 node_modules/date-fns/esm/fp/getISODay/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getISODay/index.js create mode 100644 node_modules/date-fns/esm/fp/getISODay/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getISODay/package.json create mode 100644 node_modules/date-fns/esm/fp/getISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getISOWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/getISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getISOWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/getISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/getISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/getISOWeeksInYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getISOWeeksInYear/index.js create mode 100644 node_modules/date-fns/esm/fp/getISOWeeksInYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getISOWeeksInYear/package.json create mode 100644 node_modules/date-fns/esm/fp/getMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/fp/getMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/fp/getMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getMinutes/index.js create mode 100644 node_modules/date-fns/esm/fp/getMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getMinutes/package.json create mode 100644 node_modules/date-fns/esm/fp/getMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/getMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/getOverlappingDaysInIntervals/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getOverlappingDaysInIntervals/index.js create mode 100644 node_modules/date-fns/esm/fp/getOverlappingDaysInIntervals/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getOverlappingDaysInIntervals/package.json create mode 100644 node_modules/date-fns/esm/fp/getQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getQuarter/index.js create mode 100644 node_modules/date-fns/esm/fp/getQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getQuarter/package.json create mode 100644 node_modules/date-fns/esm/fp/getSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getSeconds/index.js create mode 100644 node_modules/date-fns/esm/fp/getSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getSeconds/package.json create mode 100644 node_modules/date-fns/esm/fp/getTime/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getTime/index.js create mode 100644 node_modules/date-fns/esm/fp/getTime/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getTime/package.json create mode 100644 node_modules/date-fns/esm/fp/getUnixTime/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getUnixTime/index.js create mode 100644 node_modules/date-fns/esm/fp/getUnixTime/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getUnixTime/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonthWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonthWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonthWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeekOfMonthWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeekWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeekWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeekYearWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeekYearWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeekYearWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeekYearWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonthWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonthWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonthWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getWeeksInMonthWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/getYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/getYear/index.js create mode 100644 node_modules/date-fns/esm/fp/getYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/getYear/package.json create mode 100644 node_modules/date-fns/esm/fp/index.js create mode 100644 node_modules/date-fns/esm/fp/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/intervalToDuration/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/intervalToDuration/index.js create mode 100644 node_modules/date-fns/esm/fp/intervalToDuration/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/intervalToDuration/package.json create mode 100644 node_modules/date-fns/esm/fp/isAfter/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isAfter/index.js create mode 100644 node_modules/date-fns/esm/fp/isAfter/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isAfter/package.json create mode 100644 node_modules/date-fns/esm/fp/isBefore/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isBefore/index.js create mode 100644 node_modules/date-fns/esm/fp/isBefore/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isBefore/package.json create mode 100644 node_modules/date-fns/esm/fp/isDate/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isDate/index.js create mode 100644 node_modules/date-fns/esm/fp/isDate/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isDate/package.json create mode 100644 node_modules/date-fns/esm/fp/isDateWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isDateWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/isDateWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isDateWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/isEqual/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isEqual/index.js create mode 100644 node_modules/date-fns/esm/fp/isEqual/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isEqual/package.json create mode 100644 node_modules/date-fns/esm/fp/isExists/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isExists/index.js create mode 100644 node_modules/date-fns/esm/fp/isExists/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isExists/package.json create mode 100644 node_modules/date-fns/esm/fp/isFirstDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isFirstDayOfMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/isFirstDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isFirstDayOfMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/isFriday/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isFriday/index.js create mode 100644 node_modules/date-fns/esm/fp/isFriday/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isFriday/package.json create mode 100644 node_modules/date-fns/esm/fp/isLastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isLastDayOfMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/isLastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isLastDayOfMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/isLeapYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isLeapYear/index.js create mode 100644 node_modules/date-fns/esm/fp/isLeapYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isLeapYear/package.json create mode 100644 node_modules/date-fns/esm/fp/isMatch/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isMatch/index.js create mode 100644 node_modules/date-fns/esm/fp/isMatch/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isMatch/package.json create mode 100644 node_modules/date-fns/esm/fp/isMatchWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isMatchWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/isMatchWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isMatchWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/isMonday/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isMonday/index.js create mode 100644 node_modules/date-fns/esm/fp/isMonday/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isMonday/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameDay/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameDay/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameDay/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameDay/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameHour/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameHour/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameHour/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameHour/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameMinute/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameMinute/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameMinute/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameMinute/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameQuarter/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameQuarter/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameSecond/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameSecond/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameSecond/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameSecond/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameWeekWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameWeekWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/isSameYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSameYear/index.js create mode 100644 node_modules/date-fns/esm/fp/isSameYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSameYear/package.json create mode 100644 node_modules/date-fns/esm/fp/isSaturday/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSaturday/index.js create mode 100644 node_modules/date-fns/esm/fp/isSaturday/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSaturday/package.json create mode 100644 node_modules/date-fns/esm/fp/isSunday/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isSunday/index.js create mode 100644 node_modules/date-fns/esm/fp/isSunday/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isSunday/package.json create mode 100644 node_modules/date-fns/esm/fp/isThursday/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isThursday/index.js create mode 100644 node_modules/date-fns/esm/fp/isThursday/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isThursday/package.json create mode 100644 node_modules/date-fns/esm/fp/isTuesday/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isTuesday/index.js create mode 100644 node_modules/date-fns/esm/fp/isTuesday/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isTuesday/package.json create mode 100644 node_modules/date-fns/esm/fp/isValid/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isValid/index.js create mode 100644 node_modules/date-fns/esm/fp/isValid/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isValid/package.json create mode 100644 node_modules/date-fns/esm/fp/isWednesday/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isWednesday/index.js create mode 100644 node_modules/date-fns/esm/fp/isWednesday/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isWednesday/package.json create mode 100644 node_modules/date-fns/esm/fp/isWeekend/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isWeekend/index.js create mode 100644 node_modules/date-fns/esm/fp/isWeekend/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isWeekend/package.json create mode 100644 node_modules/date-fns/esm/fp/isWithinInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/isWithinInterval/index.js create mode 100644 node_modules/date-fns/esm/fp/isWithinInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/isWithinInterval/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfDecade/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfDecade/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarter/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarter/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarterWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarterWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarterWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfQuarterWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeekWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfWeekWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/lastDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lastDayOfYear/index.js create mode 100644 node_modules/date-fns/esm/fp/lastDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lastDayOfYear/package.json create mode 100644 node_modules/date-fns/esm/fp/lightFormat/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/lightFormat/index.js create mode 100644 node_modules/date-fns/esm/fp/lightFormat/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/lightFormat/package.json create mode 100644 node_modules/date-fns/esm/fp/max/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/max/index.js create mode 100644 node_modules/date-fns/esm/fp/max/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/max/package.json create mode 100644 node_modules/date-fns/esm/fp/min/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/min/index.js create mode 100644 node_modules/date-fns/esm/fp/min/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/min/package.json create mode 100644 node_modules/date-fns/esm/fp/package.json create mode 100644 node_modules/date-fns/esm/fp/parse/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/parse/index.js create mode 100644 node_modules/date-fns/esm/fp/parse/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/parse/package.json create mode 100644 node_modules/date-fns/esm/fp/parseISO/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/parseISO/index.js create mode 100644 node_modules/date-fns/esm/fp/parseISO/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/parseISO/package.json create mode 100644 node_modules/date-fns/esm/fp/parseISOWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/parseISOWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/parseISOWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/parseISOWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/parseJSON/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/parseJSON/index.js create mode 100644 node_modules/date-fns/esm/fp/parseJSON/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/parseJSON/package.json create mode 100644 node_modules/date-fns/esm/fp/parseWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/parseWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/parseWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/parseWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutes/index.js create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutes/package.json create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutesWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutesWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutesWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/roundToNearestMinutesWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/set/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/set/index.js create mode 100644 node_modules/date-fns/esm/fp/set/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/set/package.json create mode 100644 node_modules/date-fns/esm/fp/setDate/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setDate/index.js create mode 100644 node_modules/date-fns/esm/fp/setDate/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setDate/package.json create mode 100644 node_modules/date-fns/esm/fp/setDay/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setDay/index.js create mode 100644 node_modules/date-fns/esm/fp/setDay/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setDay/package.json create mode 100644 node_modules/date-fns/esm/fp/setDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setDayOfYear/index.js create mode 100644 node_modules/date-fns/esm/fp/setDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setDayOfYear/package.json create mode 100644 node_modules/date-fns/esm/fp/setDayWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setDayWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/setDayWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setDayWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/setHours/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setHours/index.js create mode 100644 node_modules/date-fns/esm/fp/setHours/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setHours/package.json create mode 100644 node_modules/date-fns/esm/fp/setISODay/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setISODay/index.js create mode 100644 node_modules/date-fns/esm/fp/setISODay/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setISODay/package.json create mode 100644 node_modules/date-fns/esm/fp/setISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setISOWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/setISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setISOWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/setISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/setISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/setMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/fp/setMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/fp/setMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setMinutes/index.js create mode 100644 node_modules/date-fns/esm/fp/setMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setMinutes/package.json create mode 100644 node_modules/date-fns/esm/fp/setMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/setMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/setQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setQuarter/index.js create mode 100644 node_modules/date-fns/esm/fp/setQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setQuarter/package.json create mode 100644 node_modules/date-fns/esm/fp/setSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setSeconds/index.js create mode 100644 node_modules/date-fns/esm/fp/setSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setSeconds/package.json create mode 100644 node_modules/date-fns/esm/fp/setWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/setWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/setWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setWeekWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/setWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setWeekWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/setWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/setWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/setWeekYearWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setWeekYearWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/setWeekYearWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setWeekYearWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/setYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/setYear/index.js create mode 100644 node_modules/date-fns/esm/fp/setYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/setYear/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfDay/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfDay/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfDay/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfDay/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfDecade/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfDecade/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfHour/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfHour/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfHour/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfHour/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfMinute/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfMinute/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfMinute/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfMinute/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfMonth/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfMonth/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfQuarter/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfQuarter/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfSecond/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfSecond/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfSecond/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfSecond/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfWeek/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfWeek/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfWeekWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfWeekWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYear/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYear/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYearWithOptions/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYearWithOptions/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYearWithOptions/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfWeekYearWithOptions/package.json create mode 100644 node_modules/date-fns/esm/fp/startOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/startOfYear/index.js create mode 100644 node_modules/date-fns/esm/fp/startOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/startOfYear/package.json create mode 100644 node_modules/date-fns/esm/fp/sub/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/sub/index.js create mode 100644 node_modules/date-fns/esm/fp/sub/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/sub/package.json create mode 100644 node_modules/date-fns/esm/fp/subBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subBusinessDays/index.js create mode 100644 node_modules/date-fns/esm/fp/subBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subBusinessDays/package.json create mode 100644 node_modules/date-fns/esm/fp/subDays/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subDays/index.js create mode 100644 node_modules/date-fns/esm/fp/subDays/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subDays/package.json create mode 100644 node_modules/date-fns/esm/fp/subHours/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subHours/index.js create mode 100644 node_modules/date-fns/esm/fp/subHours/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subHours/package.json create mode 100644 node_modules/date-fns/esm/fp/subISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/fp/subISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/fp/subMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/fp/subMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/fp/subMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subMinutes/index.js create mode 100644 node_modules/date-fns/esm/fp/subMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subMinutes/package.json create mode 100644 node_modules/date-fns/esm/fp/subMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subMonths/index.js create mode 100644 node_modules/date-fns/esm/fp/subMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subMonths/package.json create mode 100644 node_modules/date-fns/esm/fp/subQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subQuarters/index.js create mode 100644 node_modules/date-fns/esm/fp/subQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subQuarters/package.json create mode 100644 node_modules/date-fns/esm/fp/subSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subSeconds/index.js create mode 100644 node_modules/date-fns/esm/fp/subSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subSeconds/package.json create mode 100644 node_modules/date-fns/esm/fp/subWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subWeeks/index.js create mode 100644 node_modules/date-fns/esm/fp/subWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subWeeks/package.json create mode 100644 node_modules/date-fns/esm/fp/subYears/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/subYears/index.js create mode 100644 node_modules/date-fns/esm/fp/subYears/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/subYears/package.json create mode 100644 node_modules/date-fns/esm/fp/toDate/index.d.ts create mode 100644 node_modules/date-fns/esm/fp/toDate/index.js create mode 100644 node_modules/date-fns/esm/fp/toDate/index.js.flow create mode 100644 node_modules/date-fns/esm/fp/toDate/package.json create mode 100644 node_modules/date-fns/esm/fromUnixTime/index.d.ts create mode 100644 node_modules/date-fns/esm/fromUnixTime/index.js create mode 100644 node_modules/date-fns/esm/fromUnixTime/index.js.flow create mode 100644 node_modules/date-fns/esm/fromUnixTime/package.json create mode 100644 node_modules/date-fns/esm/getDate/index.d.ts create mode 100644 node_modules/date-fns/esm/getDate/index.js create mode 100644 node_modules/date-fns/esm/getDate/index.js.flow create mode 100644 node_modules/date-fns/esm/getDate/package.json create mode 100644 node_modules/date-fns/esm/getDay/index.d.ts create mode 100644 node_modules/date-fns/esm/getDay/index.js create mode 100644 node_modules/date-fns/esm/getDay/index.js.flow create mode 100644 node_modules/date-fns/esm/getDay/package.json create mode 100644 node_modules/date-fns/esm/getDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/getDayOfYear/index.js create mode 100644 node_modules/date-fns/esm/getDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/getDayOfYear/package.json create mode 100644 node_modules/date-fns/esm/getDaysInMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/getDaysInMonth/index.js create mode 100644 node_modules/date-fns/esm/getDaysInMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/getDaysInMonth/package.json create mode 100644 node_modules/date-fns/esm/getDaysInYear/index.d.ts create mode 100644 node_modules/date-fns/esm/getDaysInYear/index.js create mode 100644 node_modules/date-fns/esm/getDaysInYear/index.js.flow create mode 100644 node_modules/date-fns/esm/getDaysInYear/package.json create mode 100644 node_modules/date-fns/esm/getDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/getDecade/index.js create mode 100644 node_modules/date-fns/esm/getDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/getDecade/package.json create mode 100644 node_modules/date-fns/esm/getHours/index.d.ts create mode 100644 node_modules/date-fns/esm/getHours/index.js create mode 100644 node_modules/date-fns/esm/getHours/index.js.flow create mode 100644 node_modules/date-fns/esm/getHours/package.json create mode 100644 node_modules/date-fns/esm/getISODay/index.d.ts create mode 100644 node_modules/date-fns/esm/getISODay/index.js create mode 100644 node_modules/date-fns/esm/getISODay/index.js.flow create mode 100644 node_modules/date-fns/esm/getISODay/package.json create mode 100644 node_modules/date-fns/esm/getISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/getISOWeek/index.js create mode 100644 node_modules/date-fns/esm/getISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/getISOWeek/package.json create mode 100644 node_modules/date-fns/esm/getISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/getISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/getISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/getISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/getISOWeeksInYear/index.d.ts create mode 100644 node_modules/date-fns/esm/getISOWeeksInYear/index.js create mode 100644 node_modules/date-fns/esm/getISOWeeksInYear/index.js.flow create mode 100644 node_modules/date-fns/esm/getISOWeeksInYear/package.json create mode 100644 node_modules/date-fns/esm/getMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/getMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/getMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/getMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/getMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/getMinutes/index.js create mode 100644 node_modules/date-fns/esm/getMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/getMinutes/package.json create mode 100644 node_modules/date-fns/esm/getMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/getMonth/index.js create mode 100644 node_modules/date-fns/esm/getMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/getMonth/package.json create mode 100644 node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.d.ts create mode 100644 node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.js create mode 100644 node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.js.flow create mode 100644 node_modules/date-fns/esm/getOverlappingDaysInIntervals/package.json create mode 100644 node_modules/date-fns/esm/getQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/getQuarter/index.js create mode 100644 node_modules/date-fns/esm/getQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/getQuarter/package.json create mode 100644 node_modules/date-fns/esm/getSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/getSeconds/index.js create mode 100644 node_modules/date-fns/esm/getSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/getSeconds/package.json create mode 100644 node_modules/date-fns/esm/getTime/index.d.ts create mode 100644 node_modules/date-fns/esm/getTime/index.js create mode 100644 node_modules/date-fns/esm/getTime/index.js.flow create mode 100644 node_modules/date-fns/esm/getTime/package.json create mode 100644 node_modules/date-fns/esm/getUnixTime/index.d.ts create mode 100644 node_modules/date-fns/esm/getUnixTime/index.js create mode 100644 node_modules/date-fns/esm/getUnixTime/index.js.flow create mode 100644 node_modules/date-fns/esm/getUnixTime/package.json create mode 100644 node_modules/date-fns/esm/getWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/getWeek/index.js create mode 100644 node_modules/date-fns/esm/getWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/getWeek/package.json create mode 100644 node_modules/date-fns/esm/getWeekOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/getWeekOfMonth/index.js create mode 100644 node_modules/date-fns/esm/getWeekOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/getWeekOfMonth/package.json create mode 100644 node_modules/date-fns/esm/getWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/getWeekYear/index.js create mode 100644 node_modules/date-fns/esm/getWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/getWeekYear/package.json create mode 100644 node_modules/date-fns/esm/getWeeksInMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/getWeeksInMonth/index.js create mode 100644 node_modules/date-fns/esm/getWeeksInMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/getWeeksInMonth/package.json create mode 100644 node_modules/date-fns/esm/getYear/index.d.ts create mode 100644 node_modules/date-fns/esm/getYear/index.js create mode 100644 node_modules/date-fns/esm/getYear/index.js.flow create mode 100644 node_modules/date-fns/esm/getYear/package.json create mode 100644 node_modules/date-fns/esm/index.js create mode 100644 node_modules/date-fns/esm/index.js.flow create mode 100644 node_modules/date-fns/esm/intervalToDuration/index.d.ts create mode 100644 node_modules/date-fns/esm/intervalToDuration/index.js create mode 100644 node_modules/date-fns/esm/intervalToDuration/index.js.flow create mode 100644 node_modules/date-fns/esm/intervalToDuration/package.json create mode 100644 node_modules/date-fns/esm/isAfter/index.d.ts create mode 100644 node_modules/date-fns/esm/isAfter/index.js create mode 100644 node_modules/date-fns/esm/isAfter/index.js.flow create mode 100644 node_modules/date-fns/esm/isAfter/package.json create mode 100644 node_modules/date-fns/esm/isBefore/index.d.ts create mode 100644 node_modules/date-fns/esm/isBefore/index.js create mode 100644 node_modules/date-fns/esm/isBefore/index.js.flow create mode 100644 node_modules/date-fns/esm/isBefore/package.json create mode 100644 node_modules/date-fns/esm/isDate/index.d.ts create mode 100644 node_modules/date-fns/esm/isDate/index.js create mode 100644 node_modules/date-fns/esm/isDate/index.js.flow create mode 100644 node_modules/date-fns/esm/isDate/package.json create mode 100644 node_modules/date-fns/esm/isEqual/index.d.ts create mode 100644 node_modules/date-fns/esm/isEqual/index.js create mode 100644 node_modules/date-fns/esm/isEqual/index.js.flow create mode 100644 node_modules/date-fns/esm/isEqual/package.json create mode 100644 node_modules/date-fns/esm/isExists/index.d.ts create mode 100644 node_modules/date-fns/esm/isExists/index.js create mode 100644 node_modules/date-fns/esm/isExists/index.js.flow create mode 100644 node_modules/date-fns/esm/isExists/package.json create mode 100644 node_modules/date-fns/esm/isFirstDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/isFirstDayOfMonth/index.js create mode 100644 node_modules/date-fns/esm/isFirstDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/isFirstDayOfMonth/package.json create mode 100644 node_modules/date-fns/esm/isFriday/index.d.ts create mode 100644 node_modules/date-fns/esm/isFriday/index.js create mode 100644 node_modules/date-fns/esm/isFriday/index.js.flow create mode 100644 node_modules/date-fns/esm/isFriday/package.json create mode 100644 node_modules/date-fns/esm/isFuture/index.d.ts create mode 100644 node_modules/date-fns/esm/isFuture/index.js create mode 100644 node_modules/date-fns/esm/isFuture/index.js.flow create mode 100644 node_modules/date-fns/esm/isFuture/package.json create mode 100644 node_modules/date-fns/esm/isLastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/isLastDayOfMonth/index.js create mode 100644 node_modules/date-fns/esm/isLastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/isLastDayOfMonth/package.json create mode 100644 node_modules/date-fns/esm/isLeapYear/index.d.ts create mode 100644 node_modules/date-fns/esm/isLeapYear/index.js create mode 100644 node_modules/date-fns/esm/isLeapYear/index.js.flow create mode 100644 node_modules/date-fns/esm/isLeapYear/package.json create mode 100644 node_modules/date-fns/esm/isMatch/index.d.ts create mode 100644 node_modules/date-fns/esm/isMatch/index.js create mode 100644 node_modules/date-fns/esm/isMatch/index.js.flow create mode 100644 node_modules/date-fns/esm/isMatch/package.json create mode 100644 node_modules/date-fns/esm/isMonday/index.d.ts create mode 100644 node_modules/date-fns/esm/isMonday/index.js create mode 100644 node_modules/date-fns/esm/isMonday/index.js.flow create mode 100644 node_modules/date-fns/esm/isMonday/package.json create mode 100644 node_modules/date-fns/esm/isPast/index.d.ts create mode 100644 node_modules/date-fns/esm/isPast/index.js create mode 100644 node_modules/date-fns/esm/isPast/index.js.flow create mode 100644 node_modules/date-fns/esm/isPast/package.json create mode 100644 node_modules/date-fns/esm/isSameDay/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameDay/index.js create mode 100644 node_modules/date-fns/esm/isSameDay/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameDay/package.json create mode 100644 node_modules/date-fns/esm/isSameHour/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameHour/index.js create mode 100644 node_modules/date-fns/esm/isSameHour/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameHour/package.json create mode 100644 node_modules/date-fns/esm/isSameISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameISOWeek/index.js create mode 100644 node_modules/date-fns/esm/isSameISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameISOWeek/package.json create mode 100644 node_modules/date-fns/esm/isSameISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/isSameISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/isSameMinute/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameMinute/index.js create mode 100644 node_modules/date-fns/esm/isSameMinute/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameMinute/package.json create mode 100644 node_modules/date-fns/esm/isSameMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameMonth/index.js create mode 100644 node_modules/date-fns/esm/isSameMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameMonth/package.json create mode 100644 node_modules/date-fns/esm/isSameQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameQuarter/index.js create mode 100644 node_modules/date-fns/esm/isSameQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameQuarter/package.json create mode 100644 node_modules/date-fns/esm/isSameSecond/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameSecond/index.js create mode 100644 node_modules/date-fns/esm/isSameSecond/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameSecond/package.json create mode 100644 node_modules/date-fns/esm/isSameWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameWeek/index.js create mode 100644 node_modules/date-fns/esm/isSameWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameWeek/package.json create mode 100644 node_modules/date-fns/esm/isSameYear/index.d.ts create mode 100644 node_modules/date-fns/esm/isSameYear/index.js create mode 100644 node_modules/date-fns/esm/isSameYear/index.js.flow create mode 100644 node_modules/date-fns/esm/isSameYear/package.json create mode 100644 node_modules/date-fns/esm/isSaturday/index.d.ts create mode 100644 node_modules/date-fns/esm/isSaturday/index.js create mode 100644 node_modules/date-fns/esm/isSaturday/index.js.flow create mode 100644 node_modules/date-fns/esm/isSaturday/package.json create mode 100644 node_modules/date-fns/esm/isSunday/index.d.ts create mode 100644 node_modules/date-fns/esm/isSunday/index.js create mode 100644 node_modules/date-fns/esm/isSunday/index.js.flow create mode 100644 node_modules/date-fns/esm/isSunday/package.json create mode 100644 node_modules/date-fns/esm/isThisHour/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisHour/index.js create mode 100644 node_modules/date-fns/esm/isThisHour/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisHour/package.json create mode 100644 node_modules/date-fns/esm/isThisISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisISOWeek/index.js create mode 100644 node_modules/date-fns/esm/isThisISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisISOWeek/package.json create mode 100644 node_modules/date-fns/esm/isThisMinute/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisMinute/index.js create mode 100644 node_modules/date-fns/esm/isThisMinute/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisMinute/package.json create mode 100644 node_modules/date-fns/esm/isThisMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisMonth/index.js create mode 100644 node_modules/date-fns/esm/isThisMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisMonth/package.json create mode 100644 node_modules/date-fns/esm/isThisQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisQuarter/index.js create mode 100644 node_modules/date-fns/esm/isThisQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisQuarter/package.json create mode 100644 node_modules/date-fns/esm/isThisSecond/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisSecond/index.js create mode 100644 node_modules/date-fns/esm/isThisSecond/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisSecond/package.json create mode 100644 node_modules/date-fns/esm/isThisWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisWeek/index.js create mode 100644 node_modules/date-fns/esm/isThisWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisWeek/package.json create mode 100644 node_modules/date-fns/esm/isThisYear/index.d.ts create mode 100644 node_modules/date-fns/esm/isThisYear/index.js create mode 100644 node_modules/date-fns/esm/isThisYear/index.js.flow create mode 100644 node_modules/date-fns/esm/isThisYear/package.json create mode 100644 node_modules/date-fns/esm/isThursday/index.d.ts create mode 100644 node_modules/date-fns/esm/isThursday/index.js create mode 100644 node_modules/date-fns/esm/isThursday/index.js.flow create mode 100644 node_modules/date-fns/esm/isThursday/package.json create mode 100644 node_modules/date-fns/esm/isToday/index.d.ts create mode 100644 node_modules/date-fns/esm/isToday/index.js create mode 100644 node_modules/date-fns/esm/isToday/index.js.flow create mode 100644 node_modules/date-fns/esm/isToday/package.json create mode 100644 node_modules/date-fns/esm/isTomorrow/index.d.ts create mode 100644 node_modules/date-fns/esm/isTomorrow/index.js create mode 100644 node_modules/date-fns/esm/isTomorrow/index.js.flow create mode 100644 node_modules/date-fns/esm/isTomorrow/package.json create mode 100644 node_modules/date-fns/esm/isTuesday/index.d.ts create mode 100644 node_modules/date-fns/esm/isTuesday/index.js create mode 100644 node_modules/date-fns/esm/isTuesday/index.js.flow create mode 100644 node_modules/date-fns/esm/isTuesday/package.json create mode 100644 node_modules/date-fns/esm/isValid/index.d.ts create mode 100644 node_modules/date-fns/esm/isValid/index.js create mode 100644 node_modules/date-fns/esm/isValid/index.js.flow create mode 100644 node_modules/date-fns/esm/isValid/package.json create mode 100644 node_modules/date-fns/esm/isWednesday/index.d.ts create mode 100644 node_modules/date-fns/esm/isWednesday/index.js create mode 100644 node_modules/date-fns/esm/isWednesday/index.js.flow create mode 100644 node_modules/date-fns/esm/isWednesday/package.json create mode 100644 node_modules/date-fns/esm/isWeekend/index.d.ts create mode 100644 node_modules/date-fns/esm/isWeekend/index.js create mode 100644 node_modules/date-fns/esm/isWeekend/index.js.flow create mode 100644 node_modules/date-fns/esm/isWeekend/package.json create mode 100644 node_modules/date-fns/esm/isWithinInterval/index.d.ts create mode 100644 node_modules/date-fns/esm/isWithinInterval/index.js create mode 100644 node_modules/date-fns/esm/isWithinInterval/index.js.flow create mode 100644 node_modules/date-fns/esm/isWithinInterval/package.json create mode 100644 node_modules/date-fns/esm/isYesterday/index.d.ts create mode 100644 node_modules/date-fns/esm/isYesterday/index.js create mode 100644 node_modules/date-fns/esm/isYesterday/index.js.flow create mode 100644 node_modules/date-fns/esm/isYesterday/package.json create mode 100644 node_modules/date-fns/esm/lastDayOfDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/lastDayOfDecade/index.js create mode 100644 node_modules/date-fns/esm/lastDayOfDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/lastDayOfDecade/package.json create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeek/index.js create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeek/package.json create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/lastDayOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/lastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/lastDayOfMonth/index.js create mode 100644 node_modules/date-fns/esm/lastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/lastDayOfMonth/package.json create mode 100644 node_modules/date-fns/esm/lastDayOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/lastDayOfQuarter/index.js create mode 100644 node_modules/date-fns/esm/lastDayOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/lastDayOfQuarter/package.json create mode 100644 node_modules/date-fns/esm/lastDayOfWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/lastDayOfWeek/index.js create mode 100644 node_modules/date-fns/esm/lastDayOfWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/lastDayOfWeek/package.json create mode 100644 node_modules/date-fns/esm/lastDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/lastDayOfYear/index.js create mode 100644 node_modules/date-fns/esm/lastDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/lastDayOfYear/package.json create mode 100644 node_modules/date-fns/esm/lightFormat/index.d.ts create mode 100644 node_modules/date-fns/esm/lightFormat/index.js create mode 100644 node_modules/date-fns/esm/lightFormat/index.js.flow create mode 100644 node_modules/date-fns/esm/lightFormat/package.json create mode 100644 node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js create mode 100644 node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js create mode 100644 node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js create mode 100644 node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js create mode 100644 node_modules/date-fns/esm/locale/af/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/af/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/af/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/af/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/af/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/af/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/af/index.js create mode 100644 node_modules/date-fns/esm/locale/af/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/af/package.json create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ar-DZ/package.json create mode 100644 node_modules/date-fns/esm/locale/ar-MA/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-MA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-MA/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-MA/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-MA/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-MA/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ar-MA/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-MA/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ar-MA/package.json create mode 100644 node_modules/date-fns/esm/locale/ar-SA/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-SA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-SA/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-SA/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-SA/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-SA/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ar-SA/index.js create mode 100644 node_modules/date-fns/esm/locale/ar-SA/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ar-SA/package.json create mode 100644 node_modules/date-fns/esm/locale/ar/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ar/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ar/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ar/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ar/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ar/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ar/index.js create mode 100644 node_modules/date-fns/esm/locale/ar/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ar/package.json create mode 100644 node_modules/date-fns/esm/locale/az/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/az/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/az/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/az/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/az/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/az/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/az/index.js create mode 100644 node_modules/date-fns/esm/locale/az/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/az/package.json create mode 100644 node_modules/date-fns/esm/locale/be/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/be/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/be/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/be/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/be/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/be/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/be/index.js create mode 100644 node_modules/date-fns/esm/locale/be/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/be/package.json create mode 100644 node_modules/date-fns/esm/locale/bg/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/bg/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/bg/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/bg/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/bg/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/bg/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/bg/index.js create mode 100644 node_modules/date-fns/esm/locale/bg/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/bg/package.json create mode 100644 node_modules/date-fns/esm/locale/bn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/bn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/bn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/bn/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/bn/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/bn/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/bn/index.js create mode 100644 node_modules/date-fns/esm/locale/bn/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/bn/package.json create mode 100644 node_modules/date-fns/esm/locale/ca/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ca/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ca/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ca/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ca/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ca/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ca/index.js create mode 100644 node_modules/date-fns/esm/locale/ca/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ca/package.json create mode 100644 node_modules/date-fns/esm/locale/cs/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/cs/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/cs/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/cs/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/cs/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/cs/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/cs/index.js create mode 100644 node_modules/date-fns/esm/locale/cs/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/cs/package.json create mode 100644 node_modules/date-fns/esm/locale/cy/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/cy/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/cy/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/cy/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/cy/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/cy/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/cy/index.js create mode 100644 node_modules/date-fns/esm/locale/cy/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/cy/package.json create mode 100644 node_modules/date-fns/esm/locale/da/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/da/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/da/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/da/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/da/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/da/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/da/index.js create mode 100644 node_modules/date-fns/esm/locale/da/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/da/package.json create mode 100644 node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/de/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/de/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/de/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/de/index.js create mode 100644 node_modules/date-fns/esm/locale/de/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/de/package.json create mode 100644 node_modules/date-fns/esm/locale/el/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/el/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/el/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/el/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/el/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/el/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/el/index.js create mode 100644 node_modules/date-fns/esm/locale/el/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/el/package.json create mode 100644 node_modules/date-fns/esm/locale/en-AU/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/en-AU/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/en-AU/index.js create mode 100644 node_modules/date-fns/esm/locale/en-AU/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/en-AU/package.json create mode 100644 node_modules/date-fns/esm/locale/en-CA/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/en-CA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/en-CA/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/en-CA/index.js create mode 100644 node_modules/date-fns/esm/locale/en-CA/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/en-CA/package.json create mode 100644 node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/en-GB/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/en-GB/index.js create mode 100644 node_modules/date-fns/esm/locale/en-GB/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/en-GB/package.json create mode 100644 node_modules/date-fns/esm/locale/en-IN/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/en-IN/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/en-IN/index.js create mode 100644 node_modules/date-fns/esm/locale/en-IN/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/en-IN/package.json create mode 100644 node_modules/date-fns/esm/locale/en-NZ/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/en-NZ/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/en-NZ/index.js create mode 100644 node_modules/date-fns/esm/locale/en-NZ/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/en-NZ/package.json create mode 100644 node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/en-US/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/en-US/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/en-US/index.js create mode 100644 node_modules/date-fns/esm/locale/en-US/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/en-US/package.json create mode 100644 node_modules/date-fns/esm/locale/eo/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/eo/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/eo/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/eo/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/eo/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/eo/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/eo/index.js create mode 100644 node_modules/date-fns/esm/locale/eo/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/eo/package.json create mode 100644 node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/es/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/es/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/es/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/es/index.js create mode 100644 node_modules/date-fns/esm/locale/es/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/es/package.json create mode 100644 node_modules/date-fns/esm/locale/et/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/et/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/et/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/et/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/et/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/et/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/et/index.js create mode 100644 node_modules/date-fns/esm/locale/et/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/et/package.json create mode 100644 node_modules/date-fns/esm/locale/eu/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/eu/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/eu/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/eu/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/eu/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/eu/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/eu/index.js create mode 100644 node_modules/date-fns/esm/locale/eu/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/eu/package.json create mode 100644 node_modules/date-fns/esm/locale/fa-IR/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/fa-IR/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/fa-IR/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/fa-IR/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/fa-IR/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/fa-IR/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/fa-IR/index.js create mode 100644 node_modules/date-fns/esm/locale/fa-IR/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/fa-IR/package.json create mode 100644 node_modules/date-fns/esm/locale/fi/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/fi/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/fi/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/fi/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/fi/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/fi/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/fi/index.js create mode 100644 node_modules/date-fns/esm/locale/fi/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/fi/package.json create mode 100644 node_modules/date-fns/esm/locale/fil/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/fil/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/fil/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/fil/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/fil/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/fil/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/fil/index.js create mode 100644 node_modules/date-fns/esm/locale/fil/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/fil/package.json create mode 100644 node_modules/date-fns/esm/locale/fr-CA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CA/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/fr-CA/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CA/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/fr-CA/package.json create mode 100644 node_modules/date-fns/esm/locale/fr-CH/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CH/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CH/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CH/_lib/formatters/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CH/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CH/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CH/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/fr-CH/index.js create mode 100644 node_modules/date-fns/esm/locale/fr-CH/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/fr-CH/package.json create mode 100644 node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/fr/_lib/formatters/index.js create mode 100644 node_modules/date-fns/esm/locale/fr/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/fr/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/fr/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/fr/index.js create mode 100644 node_modules/date-fns/esm/locale/fr/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/fr/package.json create mode 100644 node_modules/date-fns/esm/locale/gd/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/gd/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/gd/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/gd/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/gd/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/gd/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/gd/index.js create mode 100644 node_modules/date-fns/esm/locale/gd/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/gd/package.json create mode 100644 node_modules/date-fns/esm/locale/gl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/gl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/gl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/gl/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/gl/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/gl/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/gl/index.js create mode 100644 node_modules/date-fns/esm/locale/gl/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/gl/package.json create mode 100644 node_modules/date-fns/esm/locale/gu/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/gu/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/gu/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/gu/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/gu/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/gu/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/gu/index.js create mode 100644 node_modules/date-fns/esm/locale/gu/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/gu/package.json create mode 100644 node_modules/date-fns/esm/locale/he/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/he/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/he/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/he/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/he/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/he/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/he/index.js create mode 100644 node_modules/date-fns/esm/locale/he/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/he/package.json create mode 100644 node_modules/date-fns/esm/locale/hi/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/hi/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/hi/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/hi/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/hi/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/hi/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/hi/index.js create mode 100644 node_modules/date-fns/esm/locale/hi/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/hi/package.json create mode 100644 node_modules/date-fns/esm/locale/hr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/hr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/hr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/hr/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/hr/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/hr/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/hr/index.js create mode 100644 node_modules/date-fns/esm/locale/hr/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/hr/package.json create mode 100644 node_modules/date-fns/esm/locale/hu/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/hu/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/hu/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/hu/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/hu/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/hu/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/hu/index.js create mode 100644 node_modules/date-fns/esm/locale/hu/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/hu/package.json create mode 100644 node_modules/date-fns/esm/locale/hy/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/hy/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/hy/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/hy/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/hy/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/hy/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/hy/index.js create mode 100644 node_modules/date-fns/esm/locale/hy/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/hy/package.json create mode 100644 node_modules/date-fns/esm/locale/id/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/id/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/id/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/id/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/id/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/id/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/id/index.js create mode 100644 node_modules/date-fns/esm/locale/id/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/id/package.json create mode 100644 node_modules/date-fns/esm/locale/index.js create mode 100644 node_modules/date-fns/esm/locale/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/is/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/is/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/is/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/is/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/is/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/is/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/is/index.js create mode 100644 node_modules/date-fns/esm/locale/is/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/is/package.json create mode 100644 node_modules/date-fns/esm/locale/it/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/it/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/it/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/it/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/it/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/it/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/it/index.js create mode 100644 node_modules/date-fns/esm/locale/it/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/it/package.json create mode 100644 node_modules/date-fns/esm/locale/ja/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ja/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ja/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ja/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ja/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ja/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ja/index.js create mode 100644 node_modules/date-fns/esm/locale/ja/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ja/package.json create mode 100644 node_modules/date-fns/esm/locale/ka/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ka/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ka/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ka/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ka/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ka/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ka/index.js create mode 100644 node_modules/date-fns/esm/locale/ka/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ka/package.json create mode 100644 node_modules/date-fns/esm/locale/kk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/kk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/kk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/kk/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/kk/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/kk/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/kk/index.js create mode 100644 node_modules/date-fns/esm/locale/kk/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/kk/package.json create mode 100644 node_modules/date-fns/esm/locale/kn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/kn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/kn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/kn/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/kn/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/kn/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/kn/index.js create mode 100644 node_modules/date-fns/esm/locale/kn/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/kn/package.json create mode 100644 node_modules/date-fns/esm/locale/ko/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ko/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ko/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ko/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ko/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ko/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ko/index.js create mode 100644 node_modules/date-fns/esm/locale/ko/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ko/package.json create mode 100644 node_modules/date-fns/esm/locale/lb/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/lb/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/lb/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/lb/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/lb/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/lb/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/lb/index.js create mode 100644 node_modules/date-fns/esm/locale/lb/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/lb/package.json create mode 100644 node_modules/date-fns/esm/locale/lt/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/lt/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/lt/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/lt/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/lt/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/lt/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/lt/index.js create mode 100644 node_modules/date-fns/esm/locale/lt/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/lt/package.json create mode 100644 node_modules/date-fns/esm/locale/lv/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/lv/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/lv/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/lv/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/lv/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/lv/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/lv/index.js create mode 100644 node_modules/date-fns/esm/locale/lv/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/lv/package.json create mode 100644 node_modules/date-fns/esm/locale/mk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/mk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/mk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/mk/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/mk/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/mk/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/mk/index.js create mode 100644 node_modules/date-fns/esm/locale/mk/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/mk/package.json create mode 100644 node_modules/date-fns/esm/locale/ms/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ms/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ms/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ms/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ms/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ms/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ms/index.js create mode 100644 node_modules/date-fns/esm/locale/ms/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ms/package.json create mode 100644 node_modules/date-fns/esm/locale/mt/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/mt/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/mt/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/mt/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/mt/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/mt/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/mt/index.js create mode 100644 node_modules/date-fns/esm/locale/mt/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/mt/package.json create mode 100644 node_modules/date-fns/esm/locale/nb/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/nb/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/nb/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/nb/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/nb/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/nb/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/nb/index.js create mode 100644 node_modules/date-fns/esm/locale/nb/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/nb/package.json create mode 100644 node_modules/date-fns/esm/locale/nl-BE/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/nl-BE/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/nl-BE/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/nl-BE/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/nl-BE/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/nl-BE/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/nl-BE/index.js create mode 100644 node_modules/date-fns/esm/locale/nl-BE/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/nl-BE/package.json create mode 100644 node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/nl/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/nl/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/nl/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/nl/index.js create mode 100644 node_modules/date-fns/esm/locale/nl/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/nl/package.json create mode 100644 node_modules/date-fns/esm/locale/nn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/nn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/nn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/nn/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/nn/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/nn/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/nn/index.js create mode 100644 node_modules/date-fns/esm/locale/nn/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/nn/package.json create mode 100644 node_modules/date-fns/esm/locale/package.json create mode 100644 node_modules/date-fns/esm/locale/pl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/pl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/pl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/pl/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/pl/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/pl/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/pl/index.js create mode 100644 node_modules/date-fns/esm/locale/pl/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/pl/package.json create mode 100644 node_modules/date-fns/esm/locale/pt-BR/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/pt-BR/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/pt-BR/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/pt-BR/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/pt-BR/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/pt-BR/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/pt-BR/index.js create mode 100644 node_modules/date-fns/esm/locale/pt-BR/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/pt-BR/package.json create mode 100644 node_modules/date-fns/esm/locale/pt/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/pt/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/pt/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/pt/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/pt/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/pt/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/pt/index.js create mode 100644 node_modules/date-fns/esm/locale/pt/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/pt/package.json create mode 100644 node_modules/date-fns/esm/locale/ro/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ro/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ro/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ro/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ro/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ro/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ro/index.js create mode 100644 node_modules/date-fns/esm/locale/ro/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ro/package.json create mode 100644 node_modules/date-fns/esm/locale/ru/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ru/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ru/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ru/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ru/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ru/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ru/index.js create mode 100644 node_modules/date-fns/esm/locale/ru/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ru/package.json create mode 100644 node_modules/date-fns/esm/locale/sk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/sk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/sk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/sk/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/sk/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/sk/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/sk/index.js create mode 100644 node_modules/date-fns/esm/locale/sk/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/sk/package.json create mode 100644 node_modules/date-fns/esm/locale/sl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/sl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/sl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/sl/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/sl/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/sl/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/sl/index.js create mode 100644 node_modules/date-fns/esm/locale/sl/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/sl/package.json create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/index.js create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/sr-Latn/package.json create mode 100644 node_modules/date-fns/esm/locale/sr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/sr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/sr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/sr/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/sr/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/sr/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/sr/index.js create mode 100644 node_modules/date-fns/esm/locale/sr/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/sr/package.json create mode 100644 node_modules/date-fns/esm/locale/sv/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/sv/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/sv/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/sv/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/sv/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/sv/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/sv/index.js create mode 100644 node_modules/date-fns/esm/locale/sv/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/sv/package.json create mode 100644 node_modules/date-fns/esm/locale/ta/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ta/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ta/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ta/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ta/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ta/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ta/index.js create mode 100644 node_modules/date-fns/esm/locale/ta/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ta/package.json create mode 100644 node_modules/date-fns/esm/locale/te/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/te/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/te/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/te/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/te/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/te/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/te/index.js create mode 100644 node_modules/date-fns/esm/locale/te/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/te/package.json create mode 100644 node_modules/date-fns/esm/locale/th/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/th/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/th/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/th/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/th/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/th/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/th/index.js create mode 100644 node_modules/date-fns/esm/locale/th/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/th/package.json create mode 100644 node_modules/date-fns/esm/locale/tr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/tr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/tr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/tr/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/tr/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/tr/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/tr/index.js create mode 100644 node_modules/date-fns/esm/locale/tr/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/tr/package.json create mode 100644 node_modules/date-fns/esm/locale/ug/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/ug/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/ug/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/ug/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/ug/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/ug/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/ug/index.js create mode 100644 node_modules/date-fns/esm/locale/ug/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/ug/package.json create mode 100644 node_modules/date-fns/esm/locale/uk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/uk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/uk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/uk/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/uk/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/uk/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/uk/index.js create mode 100644 node_modules/date-fns/esm/locale/uk/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/uk/package.json create mode 100644 node_modules/date-fns/esm/locale/uz/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/uz/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/uz/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/uz/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/uz/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/uz/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/uz/index.js create mode 100644 node_modules/date-fns/esm/locale/uz/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/uz/package.json create mode 100644 node_modules/date-fns/esm/locale/vi/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/vi/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/vi/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/vi/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/vi/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/vi/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/vi/index.js create mode 100644 node_modules/date-fns/esm/locale/vi/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/vi/package.json create mode 100644 node_modules/date-fns/esm/locale/zh-CN/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-CN/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-CN/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-CN/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-CN/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-CN/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/zh-CN/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-CN/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/zh-CN/package.json create mode 100644 node_modules/date-fns/esm/locale/zh-TW/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-TW/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-TW/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-TW/_lib/localize/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-TW/_lib/match/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-TW/index.d.ts create mode 100644 node_modules/date-fns/esm/locale/zh-TW/index.js create mode 100644 node_modules/date-fns/esm/locale/zh-TW/index.js.flow create mode 100644 node_modules/date-fns/esm/locale/zh-TW/package.json create mode 100644 node_modules/date-fns/esm/max/index.d.ts create mode 100644 node_modules/date-fns/esm/max/index.js create mode 100644 node_modules/date-fns/esm/max/index.js.flow create mode 100644 node_modules/date-fns/esm/max/package.json create mode 100644 node_modules/date-fns/esm/min/index.d.ts create mode 100644 node_modules/date-fns/esm/min/index.js create mode 100644 node_modules/date-fns/esm/min/index.js.flow create mode 100644 node_modules/date-fns/esm/min/package.json create mode 100644 node_modules/date-fns/esm/parse/_lib/parsers/index.js create mode 100644 node_modules/date-fns/esm/parse/index.d.ts create mode 100644 node_modules/date-fns/esm/parse/index.js create mode 100644 node_modules/date-fns/esm/parse/index.js.flow create mode 100644 node_modules/date-fns/esm/parse/package.json create mode 100644 node_modules/date-fns/esm/parseISO/index.d.ts create mode 100644 node_modules/date-fns/esm/parseISO/index.js create mode 100644 node_modules/date-fns/esm/parseISO/index.js.flow create mode 100644 node_modules/date-fns/esm/parseISO/package.json create mode 100644 node_modules/date-fns/esm/parseJSON/index.d.ts create mode 100644 node_modules/date-fns/esm/parseJSON/index.js create mode 100644 node_modules/date-fns/esm/parseJSON/index.js.flow create mode 100644 node_modules/date-fns/esm/parseJSON/package.json create mode 100644 node_modules/date-fns/esm/roundToNearestMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/roundToNearestMinutes/index.js create mode 100644 node_modules/date-fns/esm/roundToNearestMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/roundToNearestMinutes/package.json create mode 100644 node_modules/date-fns/esm/set/index.d.ts create mode 100644 node_modules/date-fns/esm/set/index.js create mode 100644 node_modules/date-fns/esm/set/index.js.flow create mode 100644 node_modules/date-fns/esm/set/package.json create mode 100644 node_modules/date-fns/esm/setDate/index.d.ts create mode 100644 node_modules/date-fns/esm/setDate/index.js create mode 100644 node_modules/date-fns/esm/setDate/index.js.flow create mode 100644 node_modules/date-fns/esm/setDate/package.json create mode 100644 node_modules/date-fns/esm/setDay/index.d.ts create mode 100644 node_modules/date-fns/esm/setDay/index.js create mode 100644 node_modules/date-fns/esm/setDay/index.js.flow create mode 100644 node_modules/date-fns/esm/setDay/package.json create mode 100644 node_modules/date-fns/esm/setDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/setDayOfYear/index.js create mode 100644 node_modules/date-fns/esm/setDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/setDayOfYear/package.json create mode 100644 node_modules/date-fns/esm/setHours/index.d.ts create mode 100644 node_modules/date-fns/esm/setHours/index.js create mode 100644 node_modules/date-fns/esm/setHours/index.js.flow create mode 100644 node_modules/date-fns/esm/setHours/package.json create mode 100644 node_modules/date-fns/esm/setISODay/index.d.ts create mode 100644 node_modules/date-fns/esm/setISODay/index.js create mode 100644 node_modules/date-fns/esm/setISODay/index.js.flow create mode 100644 node_modules/date-fns/esm/setISODay/package.json create mode 100644 node_modules/date-fns/esm/setISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/setISOWeek/index.js create mode 100644 node_modules/date-fns/esm/setISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/setISOWeek/package.json create mode 100644 node_modules/date-fns/esm/setISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/setISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/setISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/setISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/setMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/setMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/setMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/setMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/setMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/setMinutes/index.js create mode 100644 node_modules/date-fns/esm/setMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/setMinutes/package.json create mode 100644 node_modules/date-fns/esm/setMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/setMonth/index.js create mode 100644 node_modules/date-fns/esm/setMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/setMonth/package.json create mode 100644 node_modules/date-fns/esm/setQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/setQuarter/index.js create mode 100644 node_modules/date-fns/esm/setQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/setQuarter/package.json create mode 100644 node_modules/date-fns/esm/setSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/setSeconds/index.js create mode 100644 node_modules/date-fns/esm/setSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/setSeconds/package.json create mode 100644 node_modules/date-fns/esm/setWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/setWeek/index.js create mode 100644 node_modules/date-fns/esm/setWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/setWeek/package.json create mode 100644 node_modules/date-fns/esm/setWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/setWeekYear/index.js create mode 100644 node_modules/date-fns/esm/setWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/setWeekYear/package.json create mode 100644 node_modules/date-fns/esm/setYear/index.d.ts create mode 100644 node_modules/date-fns/esm/setYear/index.js create mode 100644 node_modules/date-fns/esm/setYear/index.js.flow create mode 100644 node_modules/date-fns/esm/setYear/package.json create mode 100644 node_modules/date-fns/esm/startOfDay/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfDay/index.js create mode 100644 node_modules/date-fns/esm/startOfDay/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfDay/package.json create mode 100644 node_modules/date-fns/esm/startOfDecade/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfDecade/index.js create mode 100644 node_modules/date-fns/esm/startOfDecade/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfDecade/package.json create mode 100644 node_modules/date-fns/esm/startOfHour/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfHour/index.js create mode 100644 node_modules/date-fns/esm/startOfHour/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfHour/package.json create mode 100644 node_modules/date-fns/esm/startOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfISOWeek/index.js create mode 100644 node_modules/date-fns/esm/startOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfISOWeek/package.json create mode 100644 node_modules/date-fns/esm/startOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/esm/startOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/esm/startOfMinute/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfMinute/index.js create mode 100644 node_modules/date-fns/esm/startOfMinute/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfMinute/package.json create mode 100644 node_modules/date-fns/esm/startOfMonth/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfMonth/index.js create mode 100644 node_modules/date-fns/esm/startOfMonth/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfMonth/package.json create mode 100644 node_modules/date-fns/esm/startOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfQuarter/index.js create mode 100644 node_modules/date-fns/esm/startOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfQuarter/package.json create mode 100644 node_modules/date-fns/esm/startOfSecond/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfSecond/index.js create mode 100644 node_modules/date-fns/esm/startOfSecond/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfSecond/package.json create mode 100644 node_modules/date-fns/esm/startOfToday/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfToday/index.js create mode 100644 node_modules/date-fns/esm/startOfToday/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfToday/package.json create mode 100644 node_modules/date-fns/esm/startOfTomorrow/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfTomorrow/index.js create mode 100644 node_modules/date-fns/esm/startOfTomorrow/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfTomorrow/package.json create mode 100644 node_modules/date-fns/esm/startOfWeek/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfWeek/index.js create mode 100644 node_modules/date-fns/esm/startOfWeek/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfWeek/package.json create mode 100644 node_modules/date-fns/esm/startOfWeekYear/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfWeekYear/index.js create mode 100644 node_modules/date-fns/esm/startOfWeekYear/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfWeekYear/package.json create mode 100644 node_modules/date-fns/esm/startOfYear/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfYear/index.js create mode 100644 node_modules/date-fns/esm/startOfYear/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfYear/package.json create mode 100644 node_modules/date-fns/esm/startOfYesterday/index.d.ts create mode 100644 node_modules/date-fns/esm/startOfYesterday/index.js create mode 100644 node_modules/date-fns/esm/startOfYesterday/index.js.flow create mode 100644 node_modules/date-fns/esm/startOfYesterday/package.json create mode 100644 node_modules/date-fns/esm/sub/index.d.ts create mode 100644 node_modules/date-fns/esm/sub/index.js create mode 100644 node_modules/date-fns/esm/sub/index.js.flow create mode 100644 node_modules/date-fns/esm/sub/package.json create mode 100644 node_modules/date-fns/esm/subBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/esm/subBusinessDays/index.js create mode 100644 node_modules/date-fns/esm/subBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/esm/subBusinessDays/package.json create mode 100644 node_modules/date-fns/esm/subDays/index.d.ts create mode 100644 node_modules/date-fns/esm/subDays/index.js create mode 100644 node_modules/date-fns/esm/subDays/index.js.flow create mode 100644 node_modules/date-fns/esm/subDays/package.json create mode 100644 node_modules/date-fns/esm/subHours/index.d.ts create mode 100644 node_modules/date-fns/esm/subHours/index.js create mode 100644 node_modules/date-fns/esm/subHours/index.js.flow create mode 100644 node_modules/date-fns/esm/subHours/package.json create mode 100644 node_modules/date-fns/esm/subISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/esm/subISOWeekYears/index.js create mode 100644 node_modules/date-fns/esm/subISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/esm/subISOWeekYears/package.json create mode 100644 node_modules/date-fns/esm/subMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/esm/subMilliseconds/index.js create mode 100644 node_modules/date-fns/esm/subMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/esm/subMilliseconds/package.json create mode 100644 node_modules/date-fns/esm/subMinutes/index.d.ts create mode 100644 node_modules/date-fns/esm/subMinutes/index.js create mode 100644 node_modules/date-fns/esm/subMinutes/index.js.flow create mode 100644 node_modules/date-fns/esm/subMinutes/package.json create mode 100644 node_modules/date-fns/esm/subMonths/index.d.ts create mode 100644 node_modules/date-fns/esm/subMonths/index.js create mode 100644 node_modules/date-fns/esm/subMonths/index.js.flow create mode 100644 node_modules/date-fns/esm/subMonths/package.json create mode 100644 node_modules/date-fns/esm/subQuarters/index.d.ts create mode 100644 node_modules/date-fns/esm/subQuarters/index.js create mode 100644 node_modules/date-fns/esm/subQuarters/index.js.flow create mode 100644 node_modules/date-fns/esm/subQuarters/package.json create mode 100644 node_modules/date-fns/esm/subSeconds/index.d.ts create mode 100644 node_modules/date-fns/esm/subSeconds/index.js create mode 100644 node_modules/date-fns/esm/subSeconds/index.js.flow create mode 100644 node_modules/date-fns/esm/subSeconds/package.json create mode 100644 node_modules/date-fns/esm/subWeeks/index.d.ts create mode 100644 node_modules/date-fns/esm/subWeeks/index.js create mode 100644 node_modules/date-fns/esm/subWeeks/index.js.flow create mode 100644 node_modules/date-fns/esm/subWeeks/package.json create mode 100644 node_modules/date-fns/esm/subYears/index.d.ts create mode 100644 node_modules/date-fns/esm/subYears/index.js create mode 100644 node_modules/date-fns/esm/subYears/index.js.flow create mode 100644 node_modules/date-fns/esm/subYears/package.json create mode 100644 node_modules/date-fns/esm/toDate/index.d.ts create mode 100644 node_modules/date-fns/esm/toDate/index.js create mode 100644 node_modules/date-fns/esm/toDate/index.js.flow create mode 100644 node_modules/date-fns/esm/toDate/package.json create mode 100644 node_modules/date-fns/format/index.d.ts create mode 100644 node_modules/date-fns/format/index.js create mode 100644 node_modules/date-fns/format/index.js.flow create mode 100644 node_modules/date-fns/format/package.json create mode 100644 node_modules/date-fns/formatDistance/index.d.ts create mode 100644 node_modules/date-fns/formatDistance/index.js create mode 100644 node_modules/date-fns/formatDistance/index.js.flow create mode 100644 node_modules/date-fns/formatDistance/package.json create mode 100644 node_modules/date-fns/formatDistanceStrict/index.d.ts create mode 100644 node_modules/date-fns/formatDistanceStrict/index.js create mode 100644 node_modules/date-fns/formatDistanceStrict/index.js.flow create mode 100644 node_modules/date-fns/formatDistanceStrict/package.json create mode 100644 node_modules/date-fns/formatDistanceToNow/index.d.ts create mode 100644 node_modules/date-fns/formatDistanceToNow/index.js create mode 100644 node_modules/date-fns/formatDistanceToNow/index.js.flow create mode 100644 node_modules/date-fns/formatDistanceToNow/package.json create mode 100644 node_modules/date-fns/formatDistanceToNowStrict/index.d.ts create mode 100644 node_modules/date-fns/formatDistanceToNowStrict/index.js create mode 100644 node_modules/date-fns/formatDistanceToNowStrict/index.js.flow create mode 100644 node_modules/date-fns/formatDistanceToNowStrict/package.json create mode 100644 node_modules/date-fns/formatDuration/index.d.ts create mode 100644 node_modules/date-fns/formatDuration/index.js create mode 100644 node_modules/date-fns/formatDuration/index.js.flow create mode 100644 node_modules/date-fns/formatDuration/package.json create mode 100644 node_modules/date-fns/formatISO/index.d.ts create mode 100644 node_modules/date-fns/formatISO/index.js create mode 100644 node_modules/date-fns/formatISO/index.js.flow create mode 100644 node_modules/date-fns/formatISO/package.json create mode 100644 node_modules/date-fns/formatISO9075/index.d.ts create mode 100644 node_modules/date-fns/formatISO9075/index.js create mode 100644 node_modules/date-fns/formatISO9075/index.js.flow create mode 100644 node_modules/date-fns/formatISO9075/package.json create mode 100644 node_modules/date-fns/formatISODuration/index.d.ts create mode 100644 node_modules/date-fns/formatISODuration/index.js create mode 100644 node_modules/date-fns/formatISODuration/index.js.flow create mode 100644 node_modules/date-fns/formatISODuration/package.json create mode 100644 node_modules/date-fns/formatRFC3339/index.d.ts create mode 100644 node_modules/date-fns/formatRFC3339/index.js create mode 100644 node_modules/date-fns/formatRFC3339/index.js.flow create mode 100644 node_modules/date-fns/formatRFC3339/package.json create mode 100644 node_modules/date-fns/formatRFC7231/index.d.ts create mode 100644 node_modules/date-fns/formatRFC7231/index.js create mode 100644 node_modules/date-fns/formatRFC7231/index.js.flow create mode 100644 node_modules/date-fns/formatRFC7231/package.json create mode 100644 node_modules/date-fns/formatRelative/index.d.ts create mode 100644 node_modules/date-fns/formatRelative/index.js create mode 100644 node_modules/date-fns/formatRelative/index.js.flow create mode 100644 node_modules/date-fns/formatRelative/package.json create mode 100644 node_modules/date-fns/fp/_lib/convertToFP/index.js create mode 100644 node_modules/date-fns/fp/add/index.d.ts create mode 100644 node_modules/date-fns/fp/add/index.js create mode 100644 node_modules/date-fns/fp/add/index.js.flow create mode 100644 node_modules/date-fns/fp/add/package.json create mode 100644 node_modules/date-fns/fp/addBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/fp/addBusinessDays/index.js create mode 100644 node_modules/date-fns/fp/addBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/fp/addBusinessDays/package.json create mode 100644 node_modules/date-fns/fp/addDays/index.d.ts create mode 100644 node_modules/date-fns/fp/addDays/index.js create mode 100644 node_modules/date-fns/fp/addDays/index.js.flow create mode 100644 node_modules/date-fns/fp/addDays/package.json create mode 100644 node_modules/date-fns/fp/addHours/index.d.ts create mode 100644 node_modules/date-fns/fp/addHours/index.js create mode 100644 node_modules/date-fns/fp/addHours/index.js.flow create mode 100644 node_modules/date-fns/fp/addHours/package.json create mode 100644 node_modules/date-fns/fp/addISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/fp/addISOWeekYears/index.js create mode 100644 node_modules/date-fns/fp/addISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/fp/addISOWeekYears/package.json create mode 100644 node_modules/date-fns/fp/addMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/fp/addMilliseconds/index.js create mode 100644 node_modules/date-fns/fp/addMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/fp/addMilliseconds/package.json create mode 100644 node_modules/date-fns/fp/addMinutes/index.d.ts create mode 100644 node_modules/date-fns/fp/addMinutes/index.js create mode 100644 node_modules/date-fns/fp/addMinutes/index.js.flow create mode 100644 node_modules/date-fns/fp/addMinutes/package.json create mode 100644 node_modules/date-fns/fp/addMonths/index.d.ts create mode 100644 node_modules/date-fns/fp/addMonths/index.js create mode 100644 node_modules/date-fns/fp/addMonths/index.js.flow create mode 100644 node_modules/date-fns/fp/addMonths/package.json create mode 100644 node_modules/date-fns/fp/addQuarters/index.d.ts create mode 100644 node_modules/date-fns/fp/addQuarters/index.js create mode 100644 node_modules/date-fns/fp/addQuarters/index.js.flow create mode 100644 node_modules/date-fns/fp/addQuarters/package.json create mode 100644 node_modules/date-fns/fp/addSeconds/index.d.ts create mode 100644 node_modules/date-fns/fp/addSeconds/index.js create mode 100644 node_modules/date-fns/fp/addSeconds/index.js.flow create mode 100644 node_modules/date-fns/fp/addSeconds/package.json create mode 100644 node_modules/date-fns/fp/addWeeks/index.d.ts create mode 100644 node_modules/date-fns/fp/addWeeks/index.js create mode 100644 node_modules/date-fns/fp/addWeeks/index.js.flow create mode 100644 node_modules/date-fns/fp/addWeeks/package.json create mode 100644 node_modules/date-fns/fp/addYears/index.d.ts create mode 100644 node_modules/date-fns/fp/addYears/index.js create mode 100644 node_modules/date-fns/fp/addYears/index.js.flow create mode 100644 node_modules/date-fns/fp/addYears/package.json create mode 100644 node_modules/date-fns/fp/areIntervalsOverlapping/index.d.ts create mode 100644 node_modules/date-fns/fp/areIntervalsOverlapping/index.js create mode 100644 node_modules/date-fns/fp/areIntervalsOverlapping/index.js.flow create mode 100644 node_modules/date-fns/fp/areIntervalsOverlapping/package.json create mode 100644 node_modules/date-fns/fp/areIntervalsOverlappingWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/areIntervalsOverlappingWithOptions/index.js create mode 100644 node_modules/date-fns/fp/areIntervalsOverlappingWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/areIntervalsOverlappingWithOptions/package.json create mode 100644 node_modules/date-fns/fp/closestIndexTo/index.d.ts create mode 100644 node_modules/date-fns/fp/closestIndexTo/index.js create mode 100644 node_modules/date-fns/fp/closestIndexTo/index.js.flow create mode 100644 node_modules/date-fns/fp/closestIndexTo/package.json create mode 100644 node_modules/date-fns/fp/closestTo/index.d.ts create mode 100644 node_modules/date-fns/fp/closestTo/index.js create mode 100644 node_modules/date-fns/fp/closestTo/index.js.flow create mode 100644 node_modules/date-fns/fp/closestTo/package.json create mode 100644 node_modules/date-fns/fp/compareAsc/index.d.ts create mode 100644 node_modules/date-fns/fp/compareAsc/index.js create mode 100644 node_modules/date-fns/fp/compareAsc/index.js.flow create mode 100644 node_modules/date-fns/fp/compareAsc/package.json create mode 100644 node_modules/date-fns/fp/compareDesc/index.d.ts create mode 100644 node_modules/date-fns/fp/compareDesc/index.js create mode 100644 node_modules/date-fns/fp/compareDesc/index.js.flow create mode 100644 node_modules/date-fns/fp/compareDesc/package.json create mode 100644 node_modules/date-fns/fp/differenceInBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInBusinessDays/index.js create mode 100644 node_modules/date-fns/fp/differenceInBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInBusinessDays/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarDays/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarDays/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarDays/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarDays/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeekYears/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeekYears/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeeks/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeeks/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeeks/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarISOWeeks/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarMonths/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarMonths/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarMonths/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarMonths/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarQuarters/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarQuarters/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarQuarters/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarQuarters/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeks/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeks/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeks/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeks/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeksWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeksWithOptions/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeksWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarWeeksWithOptions/package.json create mode 100644 node_modules/date-fns/fp/differenceInCalendarYears/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInCalendarYears/index.js create mode 100644 node_modules/date-fns/fp/differenceInCalendarYears/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInCalendarYears/package.json create mode 100644 node_modules/date-fns/fp/differenceInDays/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInDays/index.js create mode 100644 node_modules/date-fns/fp/differenceInDays/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInDays/package.json create mode 100644 node_modules/date-fns/fp/differenceInHours/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInHours/index.js create mode 100644 node_modules/date-fns/fp/differenceInHours/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInHours/package.json create mode 100644 node_modules/date-fns/fp/differenceInISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInISOWeekYears/index.js create mode 100644 node_modules/date-fns/fp/differenceInISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInISOWeekYears/package.json create mode 100644 node_modules/date-fns/fp/differenceInMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInMilliseconds/index.js create mode 100644 node_modules/date-fns/fp/differenceInMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInMilliseconds/package.json create mode 100644 node_modules/date-fns/fp/differenceInMinutes/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInMinutes/index.js create mode 100644 node_modules/date-fns/fp/differenceInMinutes/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInMinutes/package.json create mode 100644 node_modules/date-fns/fp/differenceInMonths/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInMonths/index.js create mode 100644 node_modules/date-fns/fp/differenceInMonths/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInMonths/package.json create mode 100644 node_modules/date-fns/fp/differenceInQuarters/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInQuarters/index.js create mode 100644 node_modules/date-fns/fp/differenceInQuarters/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInQuarters/package.json create mode 100644 node_modules/date-fns/fp/differenceInSeconds/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInSeconds/index.js create mode 100644 node_modules/date-fns/fp/differenceInSeconds/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInSeconds/package.json create mode 100644 node_modules/date-fns/fp/differenceInWeeks/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInWeeks/index.js create mode 100644 node_modules/date-fns/fp/differenceInWeeks/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInWeeks/package.json create mode 100644 node_modules/date-fns/fp/differenceInYears/index.d.ts create mode 100644 node_modules/date-fns/fp/differenceInYears/index.js create mode 100644 node_modules/date-fns/fp/differenceInYears/index.js.flow create mode 100644 node_modules/date-fns/fp/differenceInYears/package.json create mode 100644 node_modules/date-fns/fp/eachDayOfInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/eachDayOfInterval/index.js create mode 100644 node_modules/date-fns/fp/eachDayOfInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/eachDayOfInterval/package.json create mode 100644 node_modules/date-fns/fp/eachDayOfIntervalWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/eachDayOfIntervalWithOptions/index.js create mode 100644 node_modules/date-fns/fp/eachDayOfIntervalWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/eachDayOfIntervalWithOptions/package.json create mode 100644 node_modules/date-fns/fp/eachHourOfInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/eachHourOfInterval/index.js create mode 100644 node_modules/date-fns/fp/eachHourOfInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/eachHourOfInterval/package.json create mode 100644 node_modules/date-fns/fp/eachHourOfIntervalWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/eachHourOfIntervalWithOptions/index.js create mode 100644 node_modules/date-fns/fp/eachHourOfIntervalWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/eachHourOfIntervalWithOptions/package.json create mode 100644 node_modules/date-fns/fp/eachMonthOfInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/eachMonthOfInterval/index.js create mode 100644 node_modules/date-fns/fp/eachMonthOfInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/eachMonthOfInterval/package.json create mode 100644 node_modules/date-fns/fp/eachQuarterOfInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/eachQuarterOfInterval/index.js create mode 100644 node_modules/date-fns/fp/eachQuarterOfInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/eachQuarterOfInterval/package.json create mode 100644 node_modules/date-fns/fp/eachWeekOfInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/eachWeekOfInterval/index.js create mode 100644 node_modules/date-fns/fp/eachWeekOfInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/eachWeekOfInterval/package.json create mode 100644 node_modules/date-fns/fp/eachWeekOfIntervalWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/eachWeekOfIntervalWithOptions/index.js create mode 100644 node_modules/date-fns/fp/eachWeekOfIntervalWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/eachWeekOfIntervalWithOptions/package.json create mode 100644 node_modules/date-fns/fp/eachWeekendOfInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/eachWeekendOfInterval/index.js create mode 100644 node_modules/date-fns/fp/eachWeekendOfInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/eachWeekendOfInterval/package.json create mode 100644 node_modules/date-fns/fp/eachWeekendOfMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/eachWeekendOfMonth/index.js create mode 100644 node_modules/date-fns/fp/eachWeekendOfMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/eachWeekendOfMonth/package.json create mode 100644 node_modules/date-fns/fp/eachWeekendOfYear/index.d.ts create mode 100644 node_modules/date-fns/fp/eachWeekendOfYear/index.js create mode 100644 node_modules/date-fns/fp/eachWeekendOfYear/index.js.flow create mode 100644 node_modules/date-fns/fp/eachWeekendOfYear/package.json create mode 100644 node_modules/date-fns/fp/eachYearOfInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/eachYearOfInterval/index.js create mode 100644 node_modules/date-fns/fp/eachYearOfInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/eachYearOfInterval/package.json create mode 100644 node_modules/date-fns/fp/endOfDay/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfDay/index.js create mode 100644 node_modules/date-fns/fp/endOfDay/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfDay/package.json create mode 100644 node_modules/date-fns/fp/endOfDecade/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfDecade/index.js create mode 100644 node_modules/date-fns/fp/endOfDecade/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfDecade/package.json create mode 100644 node_modules/date-fns/fp/endOfDecadeWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfDecadeWithOptions/index.js create mode 100644 node_modules/date-fns/fp/endOfDecadeWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfDecadeWithOptions/package.json create mode 100644 node_modules/date-fns/fp/endOfHour/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfHour/index.js create mode 100644 node_modules/date-fns/fp/endOfHour/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfHour/package.json create mode 100644 node_modules/date-fns/fp/endOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfISOWeek/index.js create mode 100644 node_modules/date-fns/fp/endOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfISOWeek/package.json create mode 100644 node_modules/date-fns/fp/endOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/fp/endOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/fp/endOfMinute/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfMinute/index.js create mode 100644 node_modules/date-fns/fp/endOfMinute/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfMinute/package.json create mode 100644 node_modules/date-fns/fp/endOfMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfMonth/index.js create mode 100644 node_modules/date-fns/fp/endOfMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfMonth/package.json create mode 100644 node_modules/date-fns/fp/endOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfQuarter/index.js create mode 100644 node_modules/date-fns/fp/endOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfQuarter/package.json create mode 100644 node_modules/date-fns/fp/endOfSecond/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfSecond/index.js create mode 100644 node_modules/date-fns/fp/endOfSecond/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfSecond/package.json create mode 100644 node_modules/date-fns/fp/endOfWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfWeek/index.js create mode 100644 node_modules/date-fns/fp/endOfWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfWeek/package.json create mode 100644 node_modules/date-fns/fp/endOfWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfWeekWithOptions/index.js create mode 100644 node_modules/date-fns/fp/endOfWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfWeekWithOptions/package.json create mode 100644 node_modules/date-fns/fp/endOfYear/index.d.ts create mode 100644 node_modules/date-fns/fp/endOfYear/index.js create mode 100644 node_modules/date-fns/fp/endOfYear/index.js.flow create mode 100644 node_modules/date-fns/fp/endOfYear/package.json create mode 100644 node_modules/date-fns/fp/format/index.d.ts create mode 100644 node_modules/date-fns/fp/format/index.js create mode 100644 node_modules/date-fns/fp/format/index.js.flow create mode 100644 node_modules/date-fns/fp/format/package.json create mode 100644 node_modules/date-fns/fp/formatDistance/index.d.ts create mode 100644 node_modules/date-fns/fp/formatDistance/index.js create mode 100644 node_modules/date-fns/fp/formatDistance/index.js.flow create mode 100644 node_modules/date-fns/fp/formatDistance/package.json create mode 100644 node_modules/date-fns/fp/formatDistanceStrict/index.d.ts create mode 100644 node_modules/date-fns/fp/formatDistanceStrict/index.js create mode 100644 node_modules/date-fns/fp/formatDistanceStrict/index.js.flow create mode 100644 node_modules/date-fns/fp/formatDistanceStrict/package.json create mode 100644 node_modules/date-fns/fp/formatDistanceStrictWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatDistanceStrictWithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatDistanceStrictWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatDistanceStrictWithOptions/package.json create mode 100644 node_modules/date-fns/fp/formatDistanceWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatDistanceWithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatDistanceWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatDistanceWithOptions/package.json create mode 100644 node_modules/date-fns/fp/formatDuration/index.d.ts create mode 100644 node_modules/date-fns/fp/formatDuration/index.js create mode 100644 node_modules/date-fns/fp/formatDuration/index.js.flow create mode 100644 node_modules/date-fns/fp/formatDuration/package.json create mode 100644 node_modules/date-fns/fp/formatDurationWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatDurationWithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatDurationWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatDurationWithOptions/package.json create mode 100644 node_modules/date-fns/fp/formatISO/index.d.ts create mode 100644 node_modules/date-fns/fp/formatISO/index.js create mode 100644 node_modules/date-fns/fp/formatISO/index.js.flow create mode 100644 node_modules/date-fns/fp/formatISO/package.json create mode 100644 node_modules/date-fns/fp/formatISO9075/index.d.ts create mode 100644 node_modules/date-fns/fp/formatISO9075/index.js create mode 100644 node_modules/date-fns/fp/formatISO9075/index.js.flow create mode 100644 node_modules/date-fns/fp/formatISO9075/package.json create mode 100644 node_modules/date-fns/fp/formatISO9075WithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatISO9075WithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatISO9075WithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatISO9075WithOptions/package.json create mode 100644 node_modules/date-fns/fp/formatISODuration/index.d.ts create mode 100644 node_modules/date-fns/fp/formatISODuration/index.js create mode 100644 node_modules/date-fns/fp/formatISODuration/index.js.flow create mode 100644 node_modules/date-fns/fp/formatISODuration/package.json create mode 100644 node_modules/date-fns/fp/formatISOWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatISOWithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatISOWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatISOWithOptions/package.json create mode 100644 node_modules/date-fns/fp/formatRFC3339/index.d.ts create mode 100644 node_modules/date-fns/fp/formatRFC3339/index.js create mode 100644 node_modules/date-fns/fp/formatRFC3339/index.js.flow create mode 100644 node_modules/date-fns/fp/formatRFC3339/package.json create mode 100644 node_modules/date-fns/fp/formatRFC3339WithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatRFC3339WithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatRFC3339WithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatRFC3339WithOptions/package.json create mode 100644 node_modules/date-fns/fp/formatRFC7231/index.d.ts create mode 100644 node_modules/date-fns/fp/formatRFC7231/index.js create mode 100644 node_modules/date-fns/fp/formatRFC7231/index.js.flow create mode 100644 node_modules/date-fns/fp/formatRFC7231/package.json create mode 100644 node_modules/date-fns/fp/formatRelative/index.d.ts create mode 100644 node_modules/date-fns/fp/formatRelative/index.js create mode 100644 node_modules/date-fns/fp/formatRelative/index.js.flow create mode 100644 node_modules/date-fns/fp/formatRelative/package.json create mode 100644 node_modules/date-fns/fp/formatRelativeWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatRelativeWithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatRelativeWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatRelativeWithOptions/package.json create mode 100644 node_modules/date-fns/fp/formatWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/formatWithOptions/index.js create mode 100644 node_modules/date-fns/fp/formatWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/formatWithOptions/package.json create mode 100644 node_modules/date-fns/fp/fromUnixTime/index.d.ts create mode 100644 node_modules/date-fns/fp/fromUnixTime/index.js create mode 100644 node_modules/date-fns/fp/fromUnixTime/index.js.flow create mode 100644 node_modules/date-fns/fp/fromUnixTime/package.json create mode 100644 node_modules/date-fns/fp/getDate/index.d.ts create mode 100644 node_modules/date-fns/fp/getDate/index.js create mode 100644 node_modules/date-fns/fp/getDate/index.js.flow create mode 100644 node_modules/date-fns/fp/getDate/package.json create mode 100644 node_modules/date-fns/fp/getDay/index.d.ts create mode 100644 node_modules/date-fns/fp/getDay/index.js create mode 100644 node_modules/date-fns/fp/getDay/index.js.flow create mode 100644 node_modules/date-fns/fp/getDay/package.json create mode 100644 node_modules/date-fns/fp/getDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/fp/getDayOfYear/index.js create mode 100644 node_modules/date-fns/fp/getDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/fp/getDayOfYear/package.json create mode 100644 node_modules/date-fns/fp/getDaysInMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/getDaysInMonth/index.js create mode 100644 node_modules/date-fns/fp/getDaysInMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/getDaysInMonth/package.json create mode 100644 node_modules/date-fns/fp/getDaysInYear/index.d.ts create mode 100644 node_modules/date-fns/fp/getDaysInYear/index.js create mode 100644 node_modules/date-fns/fp/getDaysInYear/index.js.flow create mode 100644 node_modules/date-fns/fp/getDaysInYear/package.json create mode 100644 node_modules/date-fns/fp/getDecade/index.d.ts create mode 100644 node_modules/date-fns/fp/getDecade/index.js create mode 100644 node_modules/date-fns/fp/getDecade/index.js.flow create mode 100644 node_modules/date-fns/fp/getDecade/package.json create mode 100644 node_modules/date-fns/fp/getHours/index.d.ts create mode 100644 node_modules/date-fns/fp/getHours/index.js create mode 100644 node_modules/date-fns/fp/getHours/index.js.flow create mode 100644 node_modules/date-fns/fp/getHours/package.json create mode 100644 node_modules/date-fns/fp/getISODay/index.d.ts create mode 100644 node_modules/date-fns/fp/getISODay/index.js create mode 100644 node_modules/date-fns/fp/getISODay/index.js.flow create mode 100644 node_modules/date-fns/fp/getISODay/package.json create mode 100644 node_modules/date-fns/fp/getISOWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/getISOWeek/index.js create mode 100644 node_modules/date-fns/fp/getISOWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/getISOWeek/package.json create mode 100644 node_modules/date-fns/fp/getISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/getISOWeekYear/index.js create mode 100644 node_modules/date-fns/fp/getISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/getISOWeekYear/package.json create mode 100644 node_modules/date-fns/fp/getISOWeeksInYear/index.d.ts create mode 100644 node_modules/date-fns/fp/getISOWeeksInYear/index.js create mode 100644 node_modules/date-fns/fp/getISOWeeksInYear/index.js.flow create mode 100644 node_modules/date-fns/fp/getISOWeeksInYear/package.json create mode 100644 node_modules/date-fns/fp/getMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/fp/getMilliseconds/index.js create mode 100644 node_modules/date-fns/fp/getMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/fp/getMilliseconds/package.json create mode 100644 node_modules/date-fns/fp/getMinutes/index.d.ts create mode 100644 node_modules/date-fns/fp/getMinutes/index.js create mode 100644 node_modules/date-fns/fp/getMinutes/index.js.flow create mode 100644 node_modules/date-fns/fp/getMinutes/package.json create mode 100644 node_modules/date-fns/fp/getMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/getMonth/index.js create mode 100644 node_modules/date-fns/fp/getMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/getMonth/package.json create mode 100644 node_modules/date-fns/fp/getOverlappingDaysInIntervals/index.d.ts create mode 100644 node_modules/date-fns/fp/getOverlappingDaysInIntervals/index.js create mode 100644 node_modules/date-fns/fp/getOverlappingDaysInIntervals/index.js.flow create mode 100644 node_modules/date-fns/fp/getOverlappingDaysInIntervals/package.json create mode 100644 node_modules/date-fns/fp/getQuarter/index.d.ts create mode 100644 node_modules/date-fns/fp/getQuarter/index.js create mode 100644 node_modules/date-fns/fp/getQuarter/index.js.flow create mode 100644 node_modules/date-fns/fp/getQuarter/package.json create mode 100644 node_modules/date-fns/fp/getSeconds/index.d.ts create mode 100644 node_modules/date-fns/fp/getSeconds/index.js create mode 100644 node_modules/date-fns/fp/getSeconds/index.js.flow create mode 100644 node_modules/date-fns/fp/getSeconds/package.json create mode 100644 node_modules/date-fns/fp/getTime/index.d.ts create mode 100644 node_modules/date-fns/fp/getTime/index.js create mode 100644 node_modules/date-fns/fp/getTime/index.js.flow create mode 100644 node_modules/date-fns/fp/getTime/package.json create mode 100644 node_modules/date-fns/fp/getUnixTime/index.d.ts create mode 100644 node_modules/date-fns/fp/getUnixTime/index.js create mode 100644 node_modules/date-fns/fp/getUnixTime/index.js.flow create mode 100644 node_modules/date-fns/fp/getUnixTime/package.json create mode 100644 node_modules/date-fns/fp/getWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeek/index.js create mode 100644 node_modules/date-fns/fp/getWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeek/package.json create mode 100644 node_modules/date-fns/fp/getWeekOfMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeekOfMonth/index.js create mode 100644 node_modules/date-fns/fp/getWeekOfMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeekOfMonth/package.json create mode 100644 node_modules/date-fns/fp/getWeekOfMonthWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeekOfMonthWithOptions/index.js create mode 100644 node_modules/date-fns/fp/getWeekOfMonthWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeekOfMonthWithOptions/package.json create mode 100644 node_modules/date-fns/fp/getWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeekWithOptions/index.js create mode 100644 node_modules/date-fns/fp/getWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeekWithOptions/package.json create mode 100644 node_modules/date-fns/fp/getWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeekYear/index.js create mode 100644 node_modules/date-fns/fp/getWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeekYear/package.json create mode 100644 node_modules/date-fns/fp/getWeekYearWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeekYearWithOptions/index.js create mode 100644 node_modules/date-fns/fp/getWeekYearWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeekYearWithOptions/package.json create mode 100644 node_modules/date-fns/fp/getWeeksInMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeeksInMonth/index.js create mode 100644 node_modules/date-fns/fp/getWeeksInMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeeksInMonth/package.json create mode 100644 node_modules/date-fns/fp/getWeeksInMonthWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/getWeeksInMonthWithOptions/index.js create mode 100644 node_modules/date-fns/fp/getWeeksInMonthWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/getWeeksInMonthWithOptions/package.json create mode 100644 node_modules/date-fns/fp/getYear/index.d.ts create mode 100644 node_modules/date-fns/fp/getYear/index.js create mode 100644 node_modules/date-fns/fp/getYear/index.js.flow create mode 100644 node_modules/date-fns/fp/getYear/package.json create mode 100644 node_modules/date-fns/fp/index.js create mode 100644 node_modules/date-fns/fp/index.js.flow create mode 100644 node_modules/date-fns/fp/intervalToDuration/index.d.ts create mode 100644 node_modules/date-fns/fp/intervalToDuration/index.js create mode 100644 node_modules/date-fns/fp/intervalToDuration/index.js.flow create mode 100644 node_modules/date-fns/fp/intervalToDuration/package.json create mode 100644 node_modules/date-fns/fp/isAfter/index.d.ts create mode 100644 node_modules/date-fns/fp/isAfter/index.js create mode 100644 node_modules/date-fns/fp/isAfter/index.js.flow create mode 100644 node_modules/date-fns/fp/isAfter/package.json create mode 100644 node_modules/date-fns/fp/isBefore/index.d.ts create mode 100644 node_modules/date-fns/fp/isBefore/index.js create mode 100644 node_modules/date-fns/fp/isBefore/index.js.flow create mode 100644 node_modules/date-fns/fp/isBefore/package.json create mode 100644 node_modules/date-fns/fp/isDate/index.d.ts create mode 100644 node_modules/date-fns/fp/isDate/index.js create mode 100644 node_modules/date-fns/fp/isDate/index.js.flow create mode 100644 node_modules/date-fns/fp/isDate/package.json create mode 100644 node_modules/date-fns/fp/isDateWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/isDateWithOptions/index.js create mode 100644 node_modules/date-fns/fp/isDateWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/isDateWithOptions/package.json create mode 100644 node_modules/date-fns/fp/isEqual/index.d.ts create mode 100644 node_modules/date-fns/fp/isEqual/index.js create mode 100644 node_modules/date-fns/fp/isEqual/index.js.flow create mode 100644 node_modules/date-fns/fp/isEqual/package.json create mode 100644 node_modules/date-fns/fp/isExists/index.d.ts create mode 100644 node_modules/date-fns/fp/isExists/index.js create mode 100644 node_modules/date-fns/fp/isExists/index.js.flow create mode 100644 node_modules/date-fns/fp/isExists/package.json create mode 100644 node_modules/date-fns/fp/isFirstDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/isFirstDayOfMonth/index.js create mode 100644 node_modules/date-fns/fp/isFirstDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/isFirstDayOfMonth/package.json create mode 100644 node_modules/date-fns/fp/isFriday/index.d.ts create mode 100644 node_modules/date-fns/fp/isFriday/index.js create mode 100644 node_modules/date-fns/fp/isFriday/index.js.flow create mode 100644 node_modules/date-fns/fp/isFriday/package.json create mode 100644 node_modules/date-fns/fp/isLastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/isLastDayOfMonth/index.js create mode 100644 node_modules/date-fns/fp/isLastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/isLastDayOfMonth/package.json create mode 100644 node_modules/date-fns/fp/isLeapYear/index.d.ts create mode 100644 node_modules/date-fns/fp/isLeapYear/index.js create mode 100644 node_modules/date-fns/fp/isLeapYear/index.js.flow create mode 100644 node_modules/date-fns/fp/isLeapYear/package.json create mode 100644 node_modules/date-fns/fp/isMatch/index.d.ts create mode 100644 node_modules/date-fns/fp/isMatch/index.js create mode 100644 node_modules/date-fns/fp/isMatch/index.js.flow create mode 100644 node_modules/date-fns/fp/isMatch/package.json create mode 100644 node_modules/date-fns/fp/isMatchWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/isMatchWithOptions/index.js create mode 100644 node_modules/date-fns/fp/isMatchWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/isMatchWithOptions/package.json create mode 100644 node_modules/date-fns/fp/isMonday/index.d.ts create mode 100644 node_modules/date-fns/fp/isMonday/index.js create mode 100644 node_modules/date-fns/fp/isMonday/index.js.flow create mode 100644 node_modules/date-fns/fp/isMonday/package.json create mode 100644 node_modules/date-fns/fp/isSameDay/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameDay/index.js create mode 100644 node_modules/date-fns/fp/isSameDay/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameDay/package.json create mode 100644 node_modules/date-fns/fp/isSameHour/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameHour/index.js create mode 100644 node_modules/date-fns/fp/isSameHour/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameHour/package.json create mode 100644 node_modules/date-fns/fp/isSameISOWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameISOWeek/index.js create mode 100644 node_modules/date-fns/fp/isSameISOWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameISOWeek/package.json create mode 100644 node_modules/date-fns/fp/isSameISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameISOWeekYear/index.js create mode 100644 node_modules/date-fns/fp/isSameISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameISOWeekYear/package.json create mode 100644 node_modules/date-fns/fp/isSameMinute/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameMinute/index.js create mode 100644 node_modules/date-fns/fp/isSameMinute/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameMinute/package.json create mode 100644 node_modules/date-fns/fp/isSameMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameMonth/index.js create mode 100644 node_modules/date-fns/fp/isSameMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameMonth/package.json create mode 100644 node_modules/date-fns/fp/isSameQuarter/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameQuarter/index.js create mode 100644 node_modules/date-fns/fp/isSameQuarter/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameQuarter/package.json create mode 100644 node_modules/date-fns/fp/isSameSecond/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameSecond/index.js create mode 100644 node_modules/date-fns/fp/isSameSecond/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameSecond/package.json create mode 100644 node_modules/date-fns/fp/isSameWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameWeek/index.js create mode 100644 node_modules/date-fns/fp/isSameWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameWeek/package.json create mode 100644 node_modules/date-fns/fp/isSameWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameWeekWithOptions/index.js create mode 100644 node_modules/date-fns/fp/isSameWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameWeekWithOptions/package.json create mode 100644 node_modules/date-fns/fp/isSameYear/index.d.ts create mode 100644 node_modules/date-fns/fp/isSameYear/index.js create mode 100644 node_modules/date-fns/fp/isSameYear/index.js.flow create mode 100644 node_modules/date-fns/fp/isSameYear/package.json create mode 100644 node_modules/date-fns/fp/isSaturday/index.d.ts create mode 100644 node_modules/date-fns/fp/isSaturday/index.js create mode 100644 node_modules/date-fns/fp/isSaturday/index.js.flow create mode 100644 node_modules/date-fns/fp/isSaturday/package.json create mode 100644 node_modules/date-fns/fp/isSunday/index.d.ts create mode 100644 node_modules/date-fns/fp/isSunday/index.js create mode 100644 node_modules/date-fns/fp/isSunday/index.js.flow create mode 100644 node_modules/date-fns/fp/isSunday/package.json create mode 100644 node_modules/date-fns/fp/isThursday/index.d.ts create mode 100644 node_modules/date-fns/fp/isThursday/index.js create mode 100644 node_modules/date-fns/fp/isThursday/index.js.flow create mode 100644 node_modules/date-fns/fp/isThursday/package.json create mode 100644 node_modules/date-fns/fp/isTuesday/index.d.ts create mode 100644 node_modules/date-fns/fp/isTuesday/index.js create mode 100644 node_modules/date-fns/fp/isTuesday/index.js.flow create mode 100644 node_modules/date-fns/fp/isTuesday/package.json create mode 100644 node_modules/date-fns/fp/isValid/index.d.ts create mode 100644 node_modules/date-fns/fp/isValid/index.js create mode 100644 node_modules/date-fns/fp/isValid/index.js.flow create mode 100644 node_modules/date-fns/fp/isValid/package.json create mode 100644 node_modules/date-fns/fp/isWednesday/index.d.ts create mode 100644 node_modules/date-fns/fp/isWednesday/index.js create mode 100644 node_modules/date-fns/fp/isWednesday/index.js.flow create mode 100644 node_modules/date-fns/fp/isWednesday/package.json create mode 100644 node_modules/date-fns/fp/isWeekend/index.d.ts create mode 100644 node_modules/date-fns/fp/isWeekend/index.js create mode 100644 node_modules/date-fns/fp/isWeekend/index.js.flow create mode 100644 node_modules/date-fns/fp/isWeekend/package.json create mode 100644 node_modules/date-fns/fp/isWithinInterval/index.d.ts create mode 100644 node_modules/date-fns/fp/isWithinInterval/index.js create mode 100644 node_modules/date-fns/fp/isWithinInterval/index.js.flow create mode 100644 node_modules/date-fns/fp/isWithinInterval/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfDecade/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfDecade/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfDecade/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfDecade/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeek/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeek/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfMonth/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfMonth/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfQuarter/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfQuarter/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfQuarterWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfQuarterWithOptions/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfQuarterWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfQuarterWithOptions/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfWeek/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfWeek/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfWeekWithOptions/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfWeekWithOptions/package.json create mode 100644 node_modules/date-fns/fp/lastDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/fp/lastDayOfYear/index.js create mode 100644 node_modules/date-fns/fp/lastDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/fp/lastDayOfYear/package.json create mode 100644 node_modules/date-fns/fp/lightFormat/index.d.ts create mode 100644 node_modules/date-fns/fp/lightFormat/index.js create mode 100644 node_modules/date-fns/fp/lightFormat/index.js.flow create mode 100644 node_modules/date-fns/fp/lightFormat/package.json create mode 100644 node_modules/date-fns/fp/max/index.d.ts create mode 100644 node_modules/date-fns/fp/max/index.js create mode 100644 node_modules/date-fns/fp/max/index.js.flow create mode 100644 node_modules/date-fns/fp/max/package.json create mode 100644 node_modules/date-fns/fp/min/index.d.ts create mode 100644 node_modules/date-fns/fp/min/index.js create mode 100644 node_modules/date-fns/fp/min/index.js.flow create mode 100644 node_modules/date-fns/fp/min/package.json create mode 100644 node_modules/date-fns/fp/package.json create mode 100644 node_modules/date-fns/fp/parse/index.d.ts create mode 100644 node_modules/date-fns/fp/parse/index.js create mode 100644 node_modules/date-fns/fp/parse/index.js.flow create mode 100644 node_modules/date-fns/fp/parse/package.json create mode 100644 node_modules/date-fns/fp/parseISO/index.d.ts create mode 100644 node_modules/date-fns/fp/parseISO/index.js create mode 100644 node_modules/date-fns/fp/parseISO/index.js.flow create mode 100644 node_modules/date-fns/fp/parseISO/package.json create mode 100644 node_modules/date-fns/fp/parseISOWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/parseISOWithOptions/index.js create mode 100644 node_modules/date-fns/fp/parseISOWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/parseISOWithOptions/package.json create mode 100644 node_modules/date-fns/fp/parseJSON/index.d.ts create mode 100644 node_modules/date-fns/fp/parseJSON/index.js create mode 100644 node_modules/date-fns/fp/parseJSON/index.js.flow create mode 100644 node_modules/date-fns/fp/parseJSON/package.json create mode 100644 node_modules/date-fns/fp/parseWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/parseWithOptions/index.js create mode 100644 node_modules/date-fns/fp/parseWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/parseWithOptions/package.json create mode 100644 node_modules/date-fns/fp/roundToNearestMinutes/index.d.ts create mode 100644 node_modules/date-fns/fp/roundToNearestMinutes/index.js create mode 100644 node_modules/date-fns/fp/roundToNearestMinutes/index.js.flow create mode 100644 node_modules/date-fns/fp/roundToNearestMinutes/package.json create mode 100644 node_modules/date-fns/fp/roundToNearestMinutesWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/roundToNearestMinutesWithOptions/index.js create mode 100644 node_modules/date-fns/fp/roundToNearestMinutesWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/roundToNearestMinutesWithOptions/package.json create mode 100644 node_modules/date-fns/fp/set/index.d.ts create mode 100644 node_modules/date-fns/fp/set/index.js create mode 100644 node_modules/date-fns/fp/set/index.js.flow create mode 100644 node_modules/date-fns/fp/set/package.json create mode 100644 node_modules/date-fns/fp/setDate/index.d.ts create mode 100644 node_modules/date-fns/fp/setDate/index.js create mode 100644 node_modules/date-fns/fp/setDate/index.js.flow create mode 100644 node_modules/date-fns/fp/setDate/package.json create mode 100644 node_modules/date-fns/fp/setDay/index.d.ts create mode 100644 node_modules/date-fns/fp/setDay/index.js create mode 100644 node_modules/date-fns/fp/setDay/index.js.flow create mode 100644 node_modules/date-fns/fp/setDay/package.json create mode 100644 node_modules/date-fns/fp/setDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/fp/setDayOfYear/index.js create mode 100644 node_modules/date-fns/fp/setDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/fp/setDayOfYear/package.json create mode 100644 node_modules/date-fns/fp/setDayWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/setDayWithOptions/index.js create mode 100644 node_modules/date-fns/fp/setDayWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/setDayWithOptions/package.json create mode 100644 node_modules/date-fns/fp/setHours/index.d.ts create mode 100644 node_modules/date-fns/fp/setHours/index.js create mode 100644 node_modules/date-fns/fp/setHours/index.js.flow create mode 100644 node_modules/date-fns/fp/setHours/package.json create mode 100644 node_modules/date-fns/fp/setISODay/index.d.ts create mode 100644 node_modules/date-fns/fp/setISODay/index.js create mode 100644 node_modules/date-fns/fp/setISODay/index.js.flow create mode 100644 node_modules/date-fns/fp/setISODay/package.json create mode 100644 node_modules/date-fns/fp/setISOWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/setISOWeek/index.js create mode 100644 node_modules/date-fns/fp/setISOWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/setISOWeek/package.json create mode 100644 node_modules/date-fns/fp/setISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/setISOWeekYear/index.js create mode 100644 node_modules/date-fns/fp/setISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/setISOWeekYear/package.json create mode 100644 node_modules/date-fns/fp/setMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/fp/setMilliseconds/index.js create mode 100644 node_modules/date-fns/fp/setMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/fp/setMilliseconds/package.json create mode 100644 node_modules/date-fns/fp/setMinutes/index.d.ts create mode 100644 node_modules/date-fns/fp/setMinutes/index.js create mode 100644 node_modules/date-fns/fp/setMinutes/index.js.flow create mode 100644 node_modules/date-fns/fp/setMinutes/package.json create mode 100644 node_modules/date-fns/fp/setMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/setMonth/index.js create mode 100644 node_modules/date-fns/fp/setMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/setMonth/package.json create mode 100644 node_modules/date-fns/fp/setQuarter/index.d.ts create mode 100644 node_modules/date-fns/fp/setQuarter/index.js create mode 100644 node_modules/date-fns/fp/setQuarter/index.js.flow create mode 100644 node_modules/date-fns/fp/setQuarter/package.json create mode 100644 node_modules/date-fns/fp/setSeconds/index.d.ts create mode 100644 node_modules/date-fns/fp/setSeconds/index.js create mode 100644 node_modules/date-fns/fp/setSeconds/index.js.flow create mode 100644 node_modules/date-fns/fp/setSeconds/package.json create mode 100644 node_modules/date-fns/fp/setWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/setWeek/index.js create mode 100644 node_modules/date-fns/fp/setWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/setWeek/package.json create mode 100644 node_modules/date-fns/fp/setWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/setWeekWithOptions/index.js create mode 100644 node_modules/date-fns/fp/setWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/setWeekWithOptions/package.json create mode 100644 node_modules/date-fns/fp/setWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/setWeekYear/index.js create mode 100644 node_modules/date-fns/fp/setWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/setWeekYear/package.json create mode 100644 node_modules/date-fns/fp/setWeekYearWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/setWeekYearWithOptions/index.js create mode 100644 node_modules/date-fns/fp/setWeekYearWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/setWeekYearWithOptions/package.json create mode 100644 node_modules/date-fns/fp/setYear/index.d.ts create mode 100644 node_modules/date-fns/fp/setYear/index.js create mode 100644 node_modules/date-fns/fp/setYear/index.js.flow create mode 100644 node_modules/date-fns/fp/setYear/package.json create mode 100644 node_modules/date-fns/fp/startOfDay/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfDay/index.js create mode 100644 node_modules/date-fns/fp/startOfDay/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfDay/package.json create mode 100644 node_modules/date-fns/fp/startOfDecade/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfDecade/index.js create mode 100644 node_modules/date-fns/fp/startOfDecade/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfDecade/package.json create mode 100644 node_modules/date-fns/fp/startOfHour/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfHour/index.js create mode 100644 node_modules/date-fns/fp/startOfHour/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfHour/package.json create mode 100644 node_modules/date-fns/fp/startOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfISOWeek/index.js create mode 100644 node_modules/date-fns/fp/startOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfISOWeek/package.json create mode 100644 node_modules/date-fns/fp/startOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/fp/startOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/fp/startOfMinute/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfMinute/index.js create mode 100644 node_modules/date-fns/fp/startOfMinute/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfMinute/package.json create mode 100644 node_modules/date-fns/fp/startOfMonth/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfMonth/index.js create mode 100644 node_modules/date-fns/fp/startOfMonth/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfMonth/package.json create mode 100644 node_modules/date-fns/fp/startOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfQuarter/index.js create mode 100644 node_modules/date-fns/fp/startOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfQuarter/package.json create mode 100644 node_modules/date-fns/fp/startOfSecond/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfSecond/index.js create mode 100644 node_modules/date-fns/fp/startOfSecond/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfSecond/package.json create mode 100644 node_modules/date-fns/fp/startOfWeek/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfWeek/index.js create mode 100644 node_modules/date-fns/fp/startOfWeek/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfWeek/package.json create mode 100644 node_modules/date-fns/fp/startOfWeekWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfWeekWithOptions/index.js create mode 100644 node_modules/date-fns/fp/startOfWeekWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfWeekWithOptions/package.json create mode 100644 node_modules/date-fns/fp/startOfWeekYear/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfWeekYear/index.js create mode 100644 node_modules/date-fns/fp/startOfWeekYear/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfWeekYear/package.json create mode 100644 node_modules/date-fns/fp/startOfWeekYearWithOptions/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfWeekYearWithOptions/index.js create mode 100644 node_modules/date-fns/fp/startOfWeekYearWithOptions/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfWeekYearWithOptions/package.json create mode 100644 node_modules/date-fns/fp/startOfYear/index.d.ts create mode 100644 node_modules/date-fns/fp/startOfYear/index.js create mode 100644 node_modules/date-fns/fp/startOfYear/index.js.flow create mode 100644 node_modules/date-fns/fp/startOfYear/package.json create mode 100644 node_modules/date-fns/fp/sub/index.d.ts create mode 100644 node_modules/date-fns/fp/sub/index.js create mode 100644 node_modules/date-fns/fp/sub/index.js.flow create mode 100644 node_modules/date-fns/fp/sub/package.json create mode 100644 node_modules/date-fns/fp/subBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/fp/subBusinessDays/index.js create mode 100644 node_modules/date-fns/fp/subBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/fp/subBusinessDays/package.json create mode 100644 node_modules/date-fns/fp/subDays/index.d.ts create mode 100644 node_modules/date-fns/fp/subDays/index.js create mode 100644 node_modules/date-fns/fp/subDays/index.js.flow create mode 100644 node_modules/date-fns/fp/subDays/package.json create mode 100644 node_modules/date-fns/fp/subHours/index.d.ts create mode 100644 node_modules/date-fns/fp/subHours/index.js create mode 100644 node_modules/date-fns/fp/subHours/index.js.flow create mode 100644 node_modules/date-fns/fp/subHours/package.json create mode 100644 node_modules/date-fns/fp/subISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/fp/subISOWeekYears/index.js create mode 100644 node_modules/date-fns/fp/subISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/fp/subISOWeekYears/package.json create mode 100644 node_modules/date-fns/fp/subMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/fp/subMilliseconds/index.js create mode 100644 node_modules/date-fns/fp/subMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/fp/subMilliseconds/package.json create mode 100644 node_modules/date-fns/fp/subMinutes/index.d.ts create mode 100644 node_modules/date-fns/fp/subMinutes/index.js create mode 100644 node_modules/date-fns/fp/subMinutes/index.js.flow create mode 100644 node_modules/date-fns/fp/subMinutes/package.json create mode 100644 node_modules/date-fns/fp/subMonths/index.d.ts create mode 100644 node_modules/date-fns/fp/subMonths/index.js create mode 100644 node_modules/date-fns/fp/subMonths/index.js.flow create mode 100644 node_modules/date-fns/fp/subMonths/package.json create mode 100644 node_modules/date-fns/fp/subQuarters/index.d.ts create mode 100644 node_modules/date-fns/fp/subQuarters/index.js create mode 100644 node_modules/date-fns/fp/subQuarters/index.js.flow create mode 100644 node_modules/date-fns/fp/subQuarters/package.json create mode 100644 node_modules/date-fns/fp/subSeconds/index.d.ts create mode 100644 node_modules/date-fns/fp/subSeconds/index.js create mode 100644 node_modules/date-fns/fp/subSeconds/index.js.flow create mode 100644 node_modules/date-fns/fp/subSeconds/package.json create mode 100644 node_modules/date-fns/fp/subWeeks/index.d.ts create mode 100644 node_modules/date-fns/fp/subWeeks/index.js create mode 100644 node_modules/date-fns/fp/subWeeks/index.js.flow create mode 100644 node_modules/date-fns/fp/subWeeks/package.json create mode 100644 node_modules/date-fns/fp/subYears/index.d.ts create mode 100644 node_modules/date-fns/fp/subYears/index.js create mode 100644 node_modules/date-fns/fp/subYears/index.js.flow create mode 100644 node_modules/date-fns/fp/subYears/package.json create mode 100644 node_modules/date-fns/fp/toDate/index.d.ts create mode 100644 node_modules/date-fns/fp/toDate/index.js create mode 100644 node_modules/date-fns/fp/toDate/index.js.flow create mode 100644 node_modules/date-fns/fp/toDate/package.json create mode 100644 node_modules/date-fns/fromUnixTime/index.d.ts create mode 100644 node_modules/date-fns/fromUnixTime/index.js create mode 100644 node_modules/date-fns/fromUnixTime/index.js.flow create mode 100644 node_modules/date-fns/fromUnixTime/package.json create mode 100644 node_modules/date-fns/getDate/index.d.ts create mode 100644 node_modules/date-fns/getDate/index.js create mode 100644 node_modules/date-fns/getDate/index.js.flow create mode 100644 node_modules/date-fns/getDate/package.json create mode 100644 node_modules/date-fns/getDay/index.d.ts create mode 100644 node_modules/date-fns/getDay/index.js create mode 100644 node_modules/date-fns/getDay/index.js.flow create mode 100644 node_modules/date-fns/getDay/package.json create mode 100644 node_modules/date-fns/getDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/getDayOfYear/index.js create mode 100644 node_modules/date-fns/getDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/getDayOfYear/package.json create mode 100644 node_modules/date-fns/getDaysInMonth/index.d.ts create mode 100644 node_modules/date-fns/getDaysInMonth/index.js create mode 100644 node_modules/date-fns/getDaysInMonth/index.js.flow create mode 100644 node_modules/date-fns/getDaysInMonth/package.json create mode 100644 node_modules/date-fns/getDaysInYear/index.d.ts create mode 100644 node_modules/date-fns/getDaysInYear/index.js create mode 100644 node_modules/date-fns/getDaysInYear/index.js.flow create mode 100644 node_modules/date-fns/getDaysInYear/package.json create mode 100644 node_modules/date-fns/getDecade/index.d.ts create mode 100644 node_modules/date-fns/getDecade/index.js create mode 100644 node_modules/date-fns/getDecade/index.js.flow create mode 100644 node_modules/date-fns/getDecade/package.json create mode 100644 node_modules/date-fns/getHours/index.d.ts create mode 100644 node_modules/date-fns/getHours/index.js create mode 100644 node_modules/date-fns/getHours/index.js.flow create mode 100644 node_modules/date-fns/getHours/package.json create mode 100644 node_modules/date-fns/getISODay/index.d.ts create mode 100644 node_modules/date-fns/getISODay/index.js create mode 100644 node_modules/date-fns/getISODay/index.js.flow create mode 100644 node_modules/date-fns/getISODay/package.json create mode 100644 node_modules/date-fns/getISOWeek/index.d.ts create mode 100644 node_modules/date-fns/getISOWeek/index.js create mode 100644 node_modules/date-fns/getISOWeek/index.js.flow create mode 100644 node_modules/date-fns/getISOWeek/package.json create mode 100644 node_modules/date-fns/getISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/getISOWeekYear/index.js create mode 100644 node_modules/date-fns/getISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/getISOWeekYear/package.json create mode 100644 node_modules/date-fns/getISOWeeksInYear/index.d.ts create mode 100644 node_modules/date-fns/getISOWeeksInYear/index.js create mode 100644 node_modules/date-fns/getISOWeeksInYear/index.js.flow create mode 100644 node_modules/date-fns/getISOWeeksInYear/package.json create mode 100644 node_modules/date-fns/getMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/getMilliseconds/index.js create mode 100644 node_modules/date-fns/getMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/getMilliseconds/package.json create mode 100644 node_modules/date-fns/getMinutes/index.d.ts create mode 100644 node_modules/date-fns/getMinutes/index.js create mode 100644 node_modules/date-fns/getMinutes/index.js.flow create mode 100644 node_modules/date-fns/getMinutes/package.json create mode 100644 node_modules/date-fns/getMonth/index.d.ts create mode 100644 node_modules/date-fns/getMonth/index.js create mode 100644 node_modules/date-fns/getMonth/index.js.flow create mode 100644 node_modules/date-fns/getMonth/package.json create mode 100644 node_modules/date-fns/getOverlappingDaysInIntervals/index.d.ts create mode 100644 node_modules/date-fns/getOverlappingDaysInIntervals/index.js create mode 100644 node_modules/date-fns/getOverlappingDaysInIntervals/index.js.flow create mode 100644 node_modules/date-fns/getOverlappingDaysInIntervals/package.json create mode 100644 node_modules/date-fns/getQuarter/index.d.ts create mode 100644 node_modules/date-fns/getQuarter/index.js create mode 100644 node_modules/date-fns/getQuarter/index.js.flow create mode 100644 node_modules/date-fns/getQuarter/package.json create mode 100644 node_modules/date-fns/getSeconds/index.d.ts create mode 100644 node_modules/date-fns/getSeconds/index.js create mode 100644 node_modules/date-fns/getSeconds/index.js.flow create mode 100644 node_modules/date-fns/getSeconds/package.json create mode 100644 node_modules/date-fns/getTime/index.d.ts create mode 100644 node_modules/date-fns/getTime/index.js create mode 100644 node_modules/date-fns/getTime/index.js.flow create mode 100644 node_modules/date-fns/getTime/package.json create mode 100644 node_modules/date-fns/getUnixTime/index.d.ts create mode 100644 node_modules/date-fns/getUnixTime/index.js create mode 100644 node_modules/date-fns/getUnixTime/index.js.flow create mode 100644 node_modules/date-fns/getUnixTime/package.json create mode 100644 node_modules/date-fns/getWeek/index.d.ts create mode 100644 node_modules/date-fns/getWeek/index.js create mode 100644 node_modules/date-fns/getWeek/index.js.flow create mode 100644 node_modules/date-fns/getWeek/package.json create mode 100644 node_modules/date-fns/getWeekOfMonth/index.d.ts create mode 100644 node_modules/date-fns/getWeekOfMonth/index.js create mode 100644 node_modules/date-fns/getWeekOfMonth/index.js.flow create mode 100644 node_modules/date-fns/getWeekOfMonth/package.json create mode 100644 node_modules/date-fns/getWeekYear/index.d.ts create mode 100644 node_modules/date-fns/getWeekYear/index.js create mode 100644 node_modules/date-fns/getWeekYear/index.js.flow create mode 100644 node_modules/date-fns/getWeekYear/package.json create mode 100644 node_modules/date-fns/getWeeksInMonth/index.d.ts create mode 100644 node_modules/date-fns/getWeeksInMonth/index.js create mode 100644 node_modules/date-fns/getWeeksInMonth/index.js.flow create mode 100644 node_modules/date-fns/getWeeksInMonth/package.json create mode 100644 node_modules/date-fns/getYear/index.d.ts create mode 100644 node_modules/date-fns/getYear/index.js create mode 100644 node_modules/date-fns/getYear/index.js.flow create mode 100644 node_modules/date-fns/getYear/package.json create mode 100644 node_modules/date-fns/index.js create mode 100644 node_modules/date-fns/index.js.flow create mode 100644 node_modules/date-fns/intervalToDuration/index.d.ts create mode 100644 node_modules/date-fns/intervalToDuration/index.js create mode 100644 node_modules/date-fns/intervalToDuration/index.js.flow create mode 100644 node_modules/date-fns/intervalToDuration/package.json create mode 100644 node_modules/date-fns/isAfter/index.d.ts create mode 100644 node_modules/date-fns/isAfter/index.js create mode 100644 node_modules/date-fns/isAfter/index.js.flow create mode 100644 node_modules/date-fns/isAfter/package.json create mode 100644 node_modules/date-fns/isBefore/index.d.ts create mode 100644 node_modules/date-fns/isBefore/index.js create mode 100644 node_modules/date-fns/isBefore/index.js.flow create mode 100644 node_modules/date-fns/isBefore/package.json create mode 100644 node_modules/date-fns/isDate/index.d.ts create mode 100644 node_modules/date-fns/isDate/index.js create mode 100644 node_modules/date-fns/isDate/index.js.flow create mode 100644 node_modules/date-fns/isDate/package.json create mode 100644 node_modules/date-fns/isEqual/index.d.ts create mode 100644 node_modules/date-fns/isEqual/index.js create mode 100644 node_modules/date-fns/isEqual/index.js.flow create mode 100644 node_modules/date-fns/isEqual/package.json create mode 100644 node_modules/date-fns/isExists/index.d.ts create mode 100644 node_modules/date-fns/isExists/index.js create mode 100644 node_modules/date-fns/isExists/index.js.flow create mode 100644 node_modules/date-fns/isExists/package.json create mode 100644 node_modules/date-fns/isFirstDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/isFirstDayOfMonth/index.js create mode 100644 node_modules/date-fns/isFirstDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/isFirstDayOfMonth/package.json create mode 100644 node_modules/date-fns/isFriday/index.d.ts create mode 100644 node_modules/date-fns/isFriday/index.js create mode 100644 node_modules/date-fns/isFriday/index.js.flow create mode 100644 node_modules/date-fns/isFriday/package.json create mode 100644 node_modules/date-fns/isFuture/index.d.ts create mode 100644 node_modules/date-fns/isFuture/index.js create mode 100644 node_modules/date-fns/isFuture/index.js.flow create mode 100644 node_modules/date-fns/isFuture/package.json create mode 100644 node_modules/date-fns/isLastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/isLastDayOfMonth/index.js create mode 100644 node_modules/date-fns/isLastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/isLastDayOfMonth/package.json create mode 100644 node_modules/date-fns/isLeapYear/index.d.ts create mode 100644 node_modules/date-fns/isLeapYear/index.js create mode 100644 node_modules/date-fns/isLeapYear/index.js.flow create mode 100644 node_modules/date-fns/isLeapYear/package.json create mode 100644 node_modules/date-fns/isMatch/index.d.ts create mode 100644 node_modules/date-fns/isMatch/index.js create mode 100644 node_modules/date-fns/isMatch/index.js.flow create mode 100644 node_modules/date-fns/isMatch/package.json create mode 100644 node_modules/date-fns/isMonday/index.d.ts create mode 100644 node_modules/date-fns/isMonday/index.js create mode 100644 node_modules/date-fns/isMonday/index.js.flow create mode 100644 node_modules/date-fns/isMonday/package.json create mode 100644 node_modules/date-fns/isPast/index.d.ts create mode 100644 node_modules/date-fns/isPast/index.js create mode 100644 node_modules/date-fns/isPast/index.js.flow create mode 100644 node_modules/date-fns/isPast/package.json create mode 100644 node_modules/date-fns/isSameDay/index.d.ts create mode 100644 node_modules/date-fns/isSameDay/index.js create mode 100644 node_modules/date-fns/isSameDay/index.js.flow create mode 100644 node_modules/date-fns/isSameDay/package.json create mode 100644 node_modules/date-fns/isSameHour/index.d.ts create mode 100644 node_modules/date-fns/isSameHour/index.js create mode 100644 node_modules/date-fns/isSameHour/index.js.flow create mode 100644 node_modules/date-fns/isSameHour/package.json create mode 100644 node_modules/date-fns/isSameISOWeek/index.d.ts create mode 100644 node_modules/date-fns/isSameISOWeek/index.js create mode 100644 node_modules/date-fns/isSameISOWeek/index.js.flow create mode 100644 node_modules/date-fns/isSameISOWeek/package.json create mode 100644 node_modules/date-fns/isSameISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/isSameISOWeekYear/index.js create mode 100644 node_modules/date-fns/isSameISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/isSameISOWeekYear/package.json create mode 100644 node_modules/date-fns/isSameMinute/index.d.ts create mode 100644 node_modules/date-fns/isSameMinute/index.js create mode 100644 node_modules/date-fns/isSameMinute/index.js.flow create mode 100644 node_modules/date-fns/isSameMinute/package.json create mode 100644 node_modules/date-fns/isSameMonth/index.d.ts create mode 100644 node_modules/date-fns/isSameMonth/index.js create mode 100644 node_modules/date-fns/isSameMonth/index.js.flow create mode 100644 node_modules/date-fns/isSameMonth/package.json create mode 100644 node_modules/date-fns/isSameQuarter/index.d.ts create mode 100644 node_modules/date-fns/isSameQuarter/index.js create mode 100644 node_modules/date-fns/isSameQuarter/index.js.flow create mode 100644 node_modules/date-fns/isSameQuarter/package.json create mode 100644 node_modules/date-fns/isSameSecond/index.d.ts create mode 100644 node_modules/date-fns/isSameSecond/index.js create mode 100644 node_modules/date-fns/isSameSecond/index.js.flow create mode 100644 node_modules/date-fns/isSameSecond/package.json create mode 100644 node_modules/date-fns/isSameWeek/index.d.ts create mode 100644 node_modules/date-fns/isSameWeek/index.js create mode 100644 node_modules/date-fns/isSameWeek/index.js.flow create mode 100644 node_modules/date-fns/isSameWeek/package.json create mode 100644 node_modules/date-fns/isSameYear/index.d.ts create mode 100644 node_modules/date-fns/isSameYear/index.js create mode 100644 node_modules/date-fns/isSameYear/index.js.flow create mode 100644 node_modules/date-fns/isSameYear/package.json create mode 100644 node_modules/date-fns/isSaturday/index.d.ts create mode 100644 node_modules/date-fns/isSaturday/index.js create mode 100644 node_modules/date-fns/isSaturday/index.js.flow create mode 100644 node_modules/date-fns/isSaturday/package.json create mode 100644 node_modules/date-fns/isSunday/index.d.ts create mode 100644 node_modules/date-fns/isSunday/index.js create mode 100644 node_modules/date-fns/isSunday/index.js.flow create mode 100644 node_modules/date-fns/isSunday/package.json create mode 100644 node_modules/date-fns/isThisHour/index.d.ts create mode 100644 node_modules/date-fns/isThisHour/index.js create mode 100644 node_modules/date-fns/isThisHour/index.js.flow create mode 100644 node_modules/date-fns/isThisHour/package.json create mode 100644 node_modules/date-fns/isThisISOWeek/index.d.ts create mode 100644 node_modules/date-fns/isThisISOWeek/index.js create mode 100644 node_modules/date-fns/isThisISOWeek/index.js.flow create mode 100644 node_modules/date-fns/isThisISOWeek/package.json create mode 100644 node_modules/date-fns/isThisMinute/index.d.ts create mode 100644 node_modules/date-fns/isThisMinute/index.js create mode 100644 node_modules/date-fns/isThisMinute/index.js.flow create mode 100644 node_modules/date-fns/isThisMinute/package.json create mode 100644 node_modules/date-fns/isThisMonth/index.d.ts create mode 100644 node_modules/date-fns/isThisMonth/index.js create mode 100644 node_modules/date-fns/isThisMonth/index.js.flow create mode 100644 node_modules/date-fns/isThisMonth/package.json create mode 100644 node_modules/date-fns/isThisQuarter/index.d.ts create mode 100644 node_modules/date-fns/isThisQuarter/index.js create mode 100644 node_modules/date-fns/isThisQuarter/index.js.flow create mode 100644 node_modules/date-fns/isThisQuarter/package.json create mode 100644 node_modules/date-fns/isThisSecond/index.d.ts create mode 100644 node_modules/date-fns/isThisSecond/index.js create mode 100644 node_modules/date-fns/isThisSecond/index.js.flow create mode 100644 node_modules/date-fns/isThisSecond/package.json create mode 100644 node_modules/date-fns/isThisWeek/index.d.ts create mode 100644 node_modules/date-fns/isThisWeek/index.js create mode 100644 node_modules/date-fns/isThisWeek/index.js.flow create mode 100644 node_modules/date-fns/isThisWeek/package.json create mode 100644 node_modules/date-fns/isThisYear/index.d.ts create mode 100644 node_modules/date-fns/isThisYear/index.js create mode 100644 node_modules/date-fns/isThisYear/index.js.flow create mode 100644 node_modules/date-fns/isThisYear/package.json create mode 100644 node_modules/date-fns/isThursday/index.d.ts create mode 100644 node_modules/date-fns/isThursday/index.js create mode 100644 node_modules/date-fns/isThursday/index.js.flow create mode 100644 node_modules/date-fns/isThursday/package.json create mode 100644 node_modules/date-fns/isToday/index.d.ts create mode 100644 node_modules/date-fns/isToday/index.js create mode 100644 node_modules/date-fns/isToday/index.js.flow create mode 100644 node_modules/date-fns/isToday/package.json create mode 100644 node_modules/date-fns/isTomorrow/index.d.ts create mode 100644 node_modules/date-fns/isTomorrow/index.js create mode 100644 node_modules/date-fns/isTomorrow/index.js.flow create mode 100644 node_modules/date-fns/isTomorrow/package.json create mode 100644 node_modules/date-fns/isTuesday/index.d.ts create mode 100644 node_modules/date-fns/isTuesday/index.js create mode 100644 node_modules/date-fns/isTuesday/index.js.flow create mode 100644 node_modules/date-fns/isTuesday/package.json create mode 100644 node_modules/date-fns/isValid/index.d.ts create mode 100644 node_modules/date-fns/isValid/index.js create mode 100644 node_modules/date-fns/isValid/index.js.flow create mode 100644 node_modules/date-fns/isValid/package.json create mode 100644 node_modules/date-fns/isWednesday/index.d.ts create mode 100644 node_modules/date-fns/isWednesday/index.js create mode 100644 node_modules/date-fns/isWednesday/index.js.flow create mode 100644 node_modules/date-fns/isWednesday/package.json create mode 100644 node_modules/date-fns/isWeekend/index.d.ts create mode 100644 node_modules/date-fns/isWeekend/index.js create mode 100644 node_modules/date-fns/isWeekend/index.js.flow create mode 100644 node_modules/date-fns/isWeekend/package.json create mode 100644 node_modules/date-fns/isWithinInterval/index.d.ts create mode 100644 node_modules/date-fns/isWithinInterval/index.js create mode 100644 node_modules/date-fns/isWithinInterval/index.js.flow create mode 100644 node_modules/date-fns/isWithinInterval/package.json create mode 100644 node_modules/date-fns/isYesterday/index.d.ts create mode 100644 node_modules/date-fns/isYesterday/index.js create mode 100644 node_modules/date-fns/isYesterday/index.js.flow create mode 100644 node_modules/date-fns/isYesterday/package.json create mode 100644 node_modules/date-fns/lastDayOfDecade/index.d.ts create mode 100644 node_modules/date-fns/lastDayOfDecade/index.js create mode 100644 node_modules/date-fns/lastDayOfDecade/index.js.flow create mode 100644 node_modules/date-fns/lastDayOfDecade/package.json create mode 100644 node_modules/date-fns/lastDayOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/lastDayOfISOWeek/index.js create mode 100644 node_modules/date-fns/lastDayOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/lastDayOfISOWeek/package.json create mode 100644 node_modules/date-fns/lastDayOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/lastDayOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/lastDayOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/lastDayOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/lastDayOfMonth/index.d.ts create mode 100644 node_modules/date-fns/lastDayOfMonth/index.js create mode 100644 node_modules/date-fns/lastDayOfMonth/index.js.flow create mode 100644 node_modules/date-fns/lastDayOfMonth/package.json create mode 100644 node_modules/date-fns/lastDayOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/lastDayOfQuarter/index.js create mode 100644 node_modules/date-fns/lastDayOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/lastDayOfQuarter/package.json create mode 100644 node_modules/date-fns/lastDayOfWeek/index.d.ts create mode 100644 node_modules/date-fns/lastDayOfWeek/index.js create mode 100644 node_modules/date-fns/lastDayOfWeek/index.js.flow create mode 100644 node_modules/date-fns/lastDayOfWeek/package.json create mode 100644 node_modules/date-fns/lastDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/lastDayOfYear/index.js create mode 100644 node_modules/date-fns/lastDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/lastDayOfYear/package.json create mode 100644 node_modules/date-fns/lightFormat/index.d.ts create mode 100644 node_modules/date-fns/lightFormat/index.js create mode 100644 node_modules/date-fns/lightFormat/index.js.flow create mode 100644 node_modules/date-fns/lightFormat/package.json create mode 100644 node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js create mode 100644 node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js create mode 100644 node_modules/date-fns/locale/_lib/buildMatchFn/index.js create mode 100644 node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js create mode 100644 node_modules/date-fns/locale/af/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/af/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/af/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/af/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/af/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/af/index.d.ts create mode 100644 node_modules/date-fns/locale/af/index.js create mode 100644 node_modules/date-fns/locale/af/index.js.flow create mode 100644 node_modules/date-fns/locale/af/package.json create mode 100644 node_modules/date-fns/locale/ar-DZ/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ar-DZ/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ar-DZ/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ar-DZ/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ar-DZ/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ar-DZ/index.d.ts create mode 100644 node_modules/date-fns/locale/ar-DZ/index.js create mode 100644 node_modules/date-fns/locale/ar-DZ/index.js.flow create mode 100644 node_modules/date-fns/locale/ar-DZ/package.json create mode 100644 node_modules/date-fns/locale/ar-MA/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ar-MA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ar-MA/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ar-MA/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ar-MA/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ar-MA/index.d.ts create mode 100644 node_modules/date-fns/locale/ar-MA/index.js create mode 100644 node_modules/date-fns/locale/ar-MA/index.js.flow create mode 100644 node_modules/date-fns/locale/ar-MA/package.json create mode 100644 node_modules/date-fns/locale/ar-SA/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ar-SA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ar-SA/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ar-SA/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ar-SA/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ar-SA/index.d.ts create mode 100644 node_modules/date-fns/locale/ar-SA/index.js create mode 100644 node_modules/date-fns/locale/ar-SA/index.js.flow create mode 100644 node_modules/date-fns/locale/ar-SA/package.json create mode 100644 node_modules/date-fns/locale/az/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/az/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/az/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/az/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/az/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/az/index.d.ts create mode 100644 node_modules/date-fns/locale/az/index.js create mode 100644 node_modules/date-fns/locale/az/index.js.flow create mode 100644 node_modules/date-fns/locale/az/package.json create mode 100644 node_modules/date-fns/locale/be/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/be/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/be/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/be/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/be/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/be/index.d.ts create mode 100644 node_modules/date-fns/locale/be/index.js create mode 100644 node_modules/date-fns/locale/be/index.js.flow create mode 100644 node_modules/date-fns/locale/be/package.json create mode 100644 node_modules/date-fns/locale/bg/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/bg/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/bg/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/bg/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/bg/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/bg/index.d.ts create mode 100644 node_modules/date-fns/locale/bg/index.js create mode 100644 node_modules/date-fns/locale/bg/index.js.flow create mode 100644 node_modules/date-fns/locale/bg/package.json create mode 100644 node_modules/date-fns/locale/bn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/bn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/bn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/bn/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/bn/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/bn/index.d.ts create mode 100644 node_modules/date-fns/locale/bn/index.js create mode 100644 node_modules/date-fns/locale/bn/index.js.flow create mode 100644 node_modules/date-fns/locale/bn/package.json create mode 100644 node_modules/date-fns/locale/ca/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ca/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ca/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ca/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ca/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ca/index.d.ts create mode 100644 node_modules/date-fns/locale/ca/index.js create mode 100644 node_modules/date-fns/locale/ca/index.js.flow create mode 100644 node_modules/date-fns/locale/ca/package.json create mode 100644 node_modules/date-fns/locale/cs/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/cs/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/cs/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/cs/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/cs/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/cs/index.d.ts create mode 100644 node_modules/date-fns/locale/cs/index.js create mode 100644 node_modules/date-fns/locale/cs/index.js.flow create mode 100644 node_modules/date-fns/locale/cs/package.json create mode 100644 node_modules/date-fns/locale/cy/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/cy/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/cy/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/cy/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/cy/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/cy/index.d.ts create mode 100644 node_modules/date-fns/locale/cy/index.js create mode 100644 node_modules/date-fns/locale/cy/index.js.flow create mode 100644 node_modules/date-fns/locale/cy/package.json create mode 100644 node_modules/date-fns/locale/da/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/da/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/da/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/da/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/da/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/da/index.d.ts create mode 100644 node_modules/date-fns/locale/da/index.js create mode 100644 node_modules/date-fns/locale/da/index.js.flow create mode 100644 node_modules/date-fns/locale/da/package.json create mode 100644 node_modules/date-fns/locale/de/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/de/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/de/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/de/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/de/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/de/index.d.ts create mode 100644 node_modules/date-fns/locale/de/index.js create mode 100644 node_modules/date-fns/locale/de/index.js.flow create mode 100644 node_modules/date-fns/locale/de/package.json create mode 100644 node_modules/date-fns/locale/el/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/el/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/el/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/el/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/el/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/el/index.d.ts create mode 100644 node_modules/date-fns/locale/el/index.js create mode 100644 node_modules/date-fns/locale/el/index.js.flow create mode 100644 node_modules/date-fns/locale/el/package.json create mode 100644 node_modules/date-fns/locale/en-AU/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/en-AU/index.d.ts create mode 100644 node_modules/date-fns/locale/en-AU/index.js create mode 100644 node_modules/date-fns/locale/en-AU/index.js.flow create mode 100644 node_modules/date-fns/locale/en-AU/package.json create mode 100644 node_modules/date-fns/locale/en-CA/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/en-CA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/en-CA/index.d.ts create mode 100644 node_modules/date-fns/locale/en-CA/index.js create mode 100644 node_modules/date-fns/locale/en-CA/index.js.flow create mode 100644 node_modules/date-fns/locale/en-CA/package.json create mode 100644 node_modules/date-fns/locale/en-GB/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/en-GB/index.d.ts create mode 100644 node_modules/date-fns/locale/en-GB/index.js create mode 100644 node_modules/date-fns/locale/en-GB/index.js.flow create mode 100644 node_modules/date-fns/locale/en-GB/package.json create mode 100644 node_modules/date-fns/locale/en-IN/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/en-IN/index.d.ts create mode 100644 node_modules/date-fns/locale/en-IN/index.js create mode 100644 node_modules/date-fns/locale/en-IN/index.js.flow create mode 100644 node_modules/date-fns/locale/en-IN/package.json create mode 100644 node_modules/date-fns/locale/en-NZ/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/en-NZ/index.d.ts create mode 100644 node_modules/date-fns/locale/en-NZ/index.js create mode 100644 node_modules/date-fns/locale/en-NZ/index.js.flow create mode 100644 node_modules/date-fns/locale/en-NZ/package.json create mode 100644 node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/en-US/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/en-US/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/en-US/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/en-US/index.d.ts create mode 100644 node_modules/date-fns/locale/en-US/index.js create mode 100644 node_modules/date-fns/locale/en-US/index.js.flow create mode 100644 node_modules/date-fns/locale/en-US/package.json create mode 100644 node_modules/date-fns/locale/eo/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/eo/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/eo/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/eo/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/eo/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/eo/index.d.ts create mode 100644 node_modules/date-fns/locale/eo/index.js create mode 100644 node_modules/date-fns/locale/eo/index.js.flow create mode 100644 node_modules/date-fns/locale/eo/package.json create mode 100644 node_modules/date-fns/locale/es/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/es/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/es/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/es/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/es/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/es/index.d.ts create mode 100644 node_modules/date-fns/locale/es/index.js create mode 100644 node_modules/date-fns/locale/es/index.js.flow create mode 100644 node_modules/date-fns/locale/es/package.json create mode 100644 node_modules/date-fns/locale/et/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/et/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/et/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/et/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/et/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/et/index.d.ts create mode 100644 node_modules/date-fns/locale/et/index.js create mode 100644 node_modules/date-fns/locale/et/index.js.flow create mode 100644 node_modules/date-fns/locale/et/package.json create mode 100644 node_modules/date-fns/locale/eu/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/eu/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/eu/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/eu/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/eu/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/eu/index.d.ts create mode 100644 node_modules/date-fns/locale/eu/index.js create mode 100644 node_modules/date-fns/locale/eu/index.js.flow create mode 100644 node_modules/date-fns/locale/eu/package.json create mode 100644 node_modules/date-fns/locale/fa-IR/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/fa-IR/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/fa-IR/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/fa-IR/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/fa-IR/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/fa-IR/index.d.ts create mode 100644 node_modules/date-fns/locale/fa-IR/index.js create mode 100644 node_modules/date-fns/locale/fa-IR/index.js.flow create mode 100644 node_modules/date-fns/locale/fa-IR/package.json create mode 100644 node_modules/date-fns/locale/fi/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/fi/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/fi/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/fi/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/fi/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/fi/index.d.ts create mode 100644 node_modules/date-fns/locale/fi/index.js create mode 100644 node_modules/date-fns/locale/fi/index.js.flow create mode 100644 node_modules/date-fns/locale/fi/package.json create mode 100644 node_modules/date-fns/locale/fr-CA/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/fr-CA/index.d.ts create mode 100644 node_modules/date-fns/locale/fr-CA/index.js create mode 100644 node_modules/date-fns/locale/fr-CA/index.js.flow create mode 100644 node_modules/date-fns/locale/fr-CA/package.json create mode 100644 node_modules/date-fns/locale/fr-CH/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/fr-CH/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/fr-CH/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/fr-CH/_lib/formatters/index.js create mode 100644 node_modules/date-fns/locale/fr-CH/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/fr-CH/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/fr-CH/index.d.ts create mode 100644 node_modules/date-fns/locale/fr-CH/index.js create mode 100644 node_modules/date-fns/locale/fr-CH/index.js.flow create mode 100644 node_modules/date-fns/locale/fr-CH/package.json create mode 100644 node_modules/date-fns/locale/fr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/fr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/fr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/fr/_lib/formatters/index.js create mode 100644 node_modules/date-fns/locale/fr/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/fr/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/fr/index.d.ts create mode 100644 node_modules/date-fns/locale/fr/index.js create mode 100644 node_modules/date-fns/locale/fr/index.js.flow create mode 100644 node_modules/date-fns/locale/fr/package.json create mode 100644 node_modules/date-fns/locale/gd/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/gd/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/gd/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/gd/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/gd/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/gd/index.d.ts create mode 100644 node_modules/date-fns/locale/gd/index.js create mode 100644 node_modules/date-fns/locale/gd/index.js.flow create mode 100644 node_modules/date-fns/locale/gd/package.json create mode 100644 node_modules/date-fns/locale/gl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/gl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/gl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/gl/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/gl/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/gl/index.d.ts create mode 100644 node_modules/date-fns/locale/gl/index.js create mode 100644 node_modules/date-fns/locale/gl/index.js.flow create mode 100644 node_modules/date-fns/locale/gl/package.json create mode 100644 node_modules/date-fns/locale/gu/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/gu/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/gu/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/gu/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/gu/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/gu/index.d.ts create mode 100644 node_modules/date-fns/locale/gu/index.js create mode 100644 node_modules/date-fns/locale/gu/index.js.flow create mode 100644 node_modules/date-fns/locale/gu/package.json create mode 100644 node_modules/date-fns/locale/he/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/he/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/he/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/he/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/he/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/he/index.d.ts create mode 100644 node_modules/date-fns/locale/he/index.js create mode 100644 node_modules/date-fns/locale/he/index.js.flow create mode 100644 node_modules/date-fns/locale/he/package.json create mode 100644 node_modules/date-fns/locale/hi/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/hi/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/hi/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/hi/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/hi/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/hi/index.d.ts create mode 100644 node_modules/date-fns/locale/hi/index.js create mode 100644 node_modules/date-fns/locale/hi/index.js.flow create mode 100644 node_modules/date-fns/locale/hi/package.json create mode 100644 node_modules/date-fns/locale/hr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/hr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/hr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/hr/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/hr/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/hr/index.d.ts create mode 100644 node_modules/date-fns/locale/hr/index.js create mode 100644 node_modules/date-fns/locale/hr/index.js.flow create mode 100644 node_modules/date-fns/locale/hr/package.json create mode 100644 node_modules/date-fns/locale/hu/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/hu/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/hu/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/hu/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/hu/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/hu/index.d.ts create mode 100644 node_modules/date-fns/locale/hu/index.js create mode 100644 node_modules/date-fns/locale/hu/index.js.flow create mode 100644 node_modules/date-fns/locale/hu/package.json create mode 100644 node_modules/date-fns/locale/hy/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/hy/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/hy/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/hy/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/hy/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/hy/index.d.ts create mode 100644 node_modules/date-fns/locale/hy/index.js create mode 100644 node_modules/date-fns/locale/hy/index.js.flow create mode 100644 node_modules/date-fns/locale/hy/package.json create mode 100644 node_modules/date-fns/locale/id/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/id/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/id/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/id/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/id/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/id/index.d.ts create mode 100644 node_modules/date-fns/locale/id/index.js create mode 100644 node_modules/date-fns/locale/id/index.js.flow create mode 100644 node_modules/date-fns/locale/id/package.json create mode 100644 node_modules/date-fns/locale/index.js create mode 100644 node_modules/date-fns/locale/index.js.flow create mode 100644 node_modules/date-fns/locale/is/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/is/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/is/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/is/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/is/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/is/index.d.ts create mode 100644 node_modules/date-fns/locale/is/index.js create mode 100644 node_modules/date-fns/locale/is/index.js.flow create mode 100644 node_modules/date-fns/locale/is/package.json create mode 100644 node_modules/date-fns/locale/it/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/it/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/it/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/it/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/it/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/it/index.d.ts create mode 100644 node_modules/date-fns/locale/it/index.js create mode 100644 node_modules/date-fns/locale/it/index.js.flow create mode 100644 node_modules/date-fns/locale/it/package.json create mode 100644 node_modules/date-fns/locale/ja/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ja/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ja/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ja/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ja/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ja/index.d.ts create mode 100644 node_modules/date-fns/locale/ja/index.js create mode 100644 node_modules/date-fns/locale/ja/index.js.flow create mode 100644 node_modules/date-fns/locale/ja/package.json create mode 100644 node_modules/date-fns/locale/ka/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ka/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ka/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ka/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ka/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ka/index.d.ts create mode 100644 node_modules/date-fns/locale/ka/index.js create mode 100644 node_modules/date-fns/locale/ka/index.js.flow create mode 100644 node_modules/date-fns/locale/ka/package.json create mode 100644 node_modules/date-fns/locale/kk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/kk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/kk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/kk/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/kk/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/kk/index.d.ts create mode 100644 node_modules/date-fns/locale/kk/index.js create mode 100644 node_modules/date-fns/locale/kk/index.js.flow create mode 100644 node_modules/date-fns/locale/kk/package.json create mode 100644 node_modules/date-fns/locale/kn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/kn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/kn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/kn/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/kn/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/kn/index.d.ts create mode 100644 node_modules/date-fns/locale/kn/index.js create mode 100644 node_modules/date-fns/locale/kn/index.js.flow create mode 100644 node_modules/date-fns/locale/kn/package.json create mode 100644 node_modules/date-fns/locale/ko/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ko/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ko/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ko/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ko/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ko/index.d.ts create mode 100644 node_modules/date-fns/locale/ko/index.js create mode 100644 node_modules/date-fns/locale/ko/index.js.flow create mode 100644 node_modules/date-fns/locale/ko/package.json create mode 100644 node_modules/date-fns/locale/lb/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/lb/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/lb/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/lb/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/lb/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/lb/index.d.ts create mode 100644 node_modules/date-fns/locale/lb/index.js create mode 100644 node_modules/date-fns/locale/lb/index.js.flow create mode 100644 node_modules/date-fns/locale/lb/package.json create mode 100644 node_modules/date-fns/locale/lt/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/lt/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/lt/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/lt/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/lt/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/lt/index.d.ts create mode 100644 node_modules/date-fns/locale/lt/index.js create mode 100644 node_modules/date-fns/locale/lt/index.js.flow create mode 100644 node_modules/date-fns/locale/lt/package.json create mode 100644 node_modules/date-fns/locale/lv/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/lv/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/lv/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/lv/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/lv/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/lv/index.d.ts create mode 100644 node_modules/date-fns/locale/lv/index.js create mode 100644 node_modules/date-fns/locale/lv/index.js.flow create mode 100644 node_modules/date-fns/locale/lv/package.json create mode 100644 node_modules/date-fns/locale/mk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/mk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/mk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/mk/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/mk/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/mk/index.d.ts create mode 100644 node_modules/date-fns/locale/mk/index.js create mode 100644 node_modules/date-fns/locale/mk/index.js.flow create mode 100644 node_modules/date-fns/locale/mk/package.json create mode 100644 node_modules/date-fns/locale/ms/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ms/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ms/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ms/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ms/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ms/index.d.ts create mode 100644 node_modules/date-fns/locale/ms/index.js create mode 100644 node_modules/date-fns/locale/ms/index.js.flow create mode 100644 node_modules/date-fns/locale/ms/package.json create mode 100644 node_modules/date-fns/locale/mt/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/mt/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/mt/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/mt/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/mt/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/mt/index.d.ts create mode 100644 node_modules/date-fns/locale/mt/index.js create mode 100644 node_modules/date-fns/locale/mt/index.js.flow create mode 100644 node_modules/date-fns/locale/mt/package.json create mode 100644 node_modules/date-fns/locale/nb/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/nb/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/nb/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/nb/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/nb/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/nb/index.d.ts create mode 100644 node_modules/date-fns/locale/nb/index.js create mode 100644 node_modules/date-fns/locale/nb/index.js.flow create mode 100644 node_modules/date-fns/locale/nb/package.json create mode 100644 node_modules/date-fns/locale/nl-BE/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/nl-BE/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/nl-BE/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/nl-BE/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/nl-BE/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/nl-BE/index.d.ts create mode 100644 node_modules/date-fns/locale/nl-BE/index.js create mode 100644 node_modules/date-fns/locale/nl-BE/index.js.flow create mode 100644 node_modules/date-fns/locale/nl-BE/package.json create mode 100644 node_modules/date-fns/locale/nl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/nl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/nl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/nl/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/nl/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/nl/index.d.ts create mode 100644 node_modules/date-fns/locale/nl/index.js create mode 100644 node_modules/date-fns/locale/nl/index.js.flow create mode 100644 node_modules/date-fns/locale/nl/package.json create mode 100644 node_modules/date-fns/locale/nn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/nn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/nn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/nn/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/nn/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/nn/index.d.ts create mode 100644 node_modules/date-fns/locale/nn/index.js create mode 100644 node_modules/date-fns/locale/nn/index.js.flow create mode 100644 node_modules/date-fns/locale/nn/package.json create mode 100644 node_modules/date-fns/locale/package.json create mode 100644 node_modules/date-fns/locale/pl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/pl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/pl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/pl/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/pl/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/pl/index.d.ts create mode 100644 node_modules/date-fns/locale/pl/index.js create mode 100644 node_modules/date-fns/locale/pl/index.js.flow create mode 100644 node_modules/date-fns/locale/pl/package.json create mode 100644 node_modules/date-fns/locale/pt-BR/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/pt-BR/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/pt-BR/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/pt-BR/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/pt-BR/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/pt-BR/index.d.ts create mode 100644 node_modules/date-fns/locale/pt-BR/index.js create mode 100644 node_modules/date-fns/locale/pt-BR/index.js.flow create mode 100644 node_modules/date-fns/locale/pt-BR/package.json create mode 100644 node_modules/date-fns/locale/pt/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/pt/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/pt/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/pt/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/pt/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/pt/index.d.ts create mode 100644 node_modules/date-fns/locale/pt/index.js create mode 100644 node_modules/date-fns/locale/pt/index.js.flow create mode 100644 node_modules/date-fns/locale/pt/package.json create mode 100644 node_modules/date-fns/locale/ro/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ro/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ro/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ro/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ro/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ro/index.d.ts create mode 100644 node_modules/date-fns/locale/ro/index.js create mode 100644 node_modules/date-fns/locale/ro/index.js.flow create mode 100644 node_modules/date-fns/locale/ro/package.json create mode 100644 node_modules/date-fns/locale/ru/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ru/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ru/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ru/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ru/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ru/index.d.ts create mode 100644 node_modules/date-fns/locale/ru/index.js create mode 100644 node_modules/date-fns/locale/ru/index.js.flow create mode 100644 node_modules/date-fns/locale/ru/package.json create mode 100644 node_modules/date-fns/locale/sk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/sk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/sk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/sk/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/sk/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/sk/index.d.ts create mode 100644 node_modules/date-fns/locale/sk/index.js create mode 100644 node_modules/date-fns/locale/sk/index.js.flow create mode 100644 node_modules/date-fns/locale/sk/package.json create mode 100644 node_modules/date-fns/locale/sl/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/sl/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/sl/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/sl/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/sl/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/sl/index.d.ts create mode 100644 node_modules/date-fns/locale/sl/index.js create mode 100644 node_modules/date-fns/locale/sl/index.js.flow create mode 100644 node_modules/date-fns/locale/sl/package.json create mode 100644 node_modules/date-fns/locale/sr-Latn/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/sr-Latn/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/sr-Latn/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/sr-Latn/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/sr-Latn/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/sr-Latn/index.d.ts create mode 100644 node_modules/date-fns/locale/sr-Latn/index.js create mode 100644 node_modules/date-fns/locale/sr-Latn/index.js.flow create mode 100644 node_modules/date-fns/locale/sr-Latn/package.json create mode 100644 node_modules/date-fns/locale/sr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/sr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/sr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/sr/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/sr/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/sr/index.d.ts create mode 100644 node_modules/date-fns/locale/sr/index.js create mode 100644 node_modules/date-fns/locale/sr/index.js.flow create mode 100644 node_modules/date-fns/locale/sr/package.json create mode 100644 node_modules/date-fns/locale/sv/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/sv/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/sv/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/sv/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/sv/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/sv/index.d.ts create mode 100644 node_modules/date-fns/locale/sv/index.js create mode 100644 node_modules/date-fns/locale/sv/index.js.flow create mode 100644 node_modules/date-fns/locale/sv/package.json create mode 100644 node_modules/date-fns/locale/ta/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ta/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ta/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ta/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ta/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ta/index.d.ts create mode 100644 node_modules/date-fns/locale/ta/index.js create mode 100644 node_modules/date-fns/locale/ta/index.js.flow create mode 100644 node_modules/date-fns/locale/ta/package.json create mode 100644 node_modules/date-fns/locale/te/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/te/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/te/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/te/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/te/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/te/index.d.ts create mode 100644 node_modules/date-fns/locale/te/index.js create mode 100644 node_modules/date-fns/locale/te/index.js.flow create mode 100644 node_modules/date-fns/locale/te/package.json create mode 100644 node_modules/date-fns/locale/th/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/th/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/th/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/th/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/th/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/th/index.d.ts create mode 100644 node_modules/date-fns/locale/th/index.js create mode 100644 node_modules/date-fns/locale/th/index.js.flow create mode 100644 node_modules/date-fns/locale/th/package.json create mode 100644 node_modules/date-fns/locale/tr/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/tr/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/tr/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/tr/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/tr/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/tr/index.d.ts create mode 100644 node_modules/date-fns/locale/tr/index.js create mode 100644 node_modules/date-fns/locale/tr/index.js.flow create mode 100644 node_modules/date-fns/locale/tr/package.json create mode 100644 node_modules/date-fns/locale/ug/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/ug/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/ug/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/ug/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/ug/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/ug/index.d.ts create mode 100644 node_modules/date-fns/locale/ug/index.js create mode 100644 node_modules/date-fns/locale/ug/index.js.flow create mode 100644 node_modules/date-fns/locale/ug/package.json create mode 100644 node_modules/date-fns/locale/uk/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/uk/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/uk/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/uk/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/uk/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/uk/index.d.ts create mode 100644 node_modules/date-fns/locale/uk/index.js create mode 100644 node_modules/date-fns/locale/uk/index.js.flow create mode 100644 node_modules/date-fns/locale/uk/package.json create mode 100644 node_modules/date-fns/locale/uz/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/uz/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/uz/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/uz/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/uz/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/uz/index.d.ts create mode 100644 node_modules/date-fns/locale/uz/index.js create mode 100644 node_modules/date-fns/locale/uz/index.js.flow create mode 100644 node_modules/date-fns/locale/uz/package.json create mode 100644 node_modules/date-fns/locale/vi/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/vi/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/vi/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/vi/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/vi/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/vi/index.d.ts create mode 100644 node_modules/date-fns/locale/vi/index.js create mode 100644 node_modules/date-fns/locale/vi/index.js.flow create mode 100644 node_modules/date-fns/locale/vi/package.json create mode 100644 node_modules/date-fns/locale/zh-CN/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/zh-CN/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/zh-CN/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/zh-CN/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/zh-CN/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/zh-CN/index.d.ts create mode 100644 node_modules/date-fns/locale/zh-CN/index.js create mode 100644 node_modules/date-fns/locale/zh-CN/index.js.flow create mode 100644 node_modules/date-fns/locale/zh-CN/package.json create mode 100644 node_modules/date-fns/locale/zh-TW/_lib/formatDistance/index.js create mode 100644 node_modules/date-fns/locale/zh-TW/_lib/formatLong/index.js create mode 100644 node_modules/date-fns/locale/zh-TW/_lib/formatRelative/index.js create mode 100644 node_modules/date-fns/locale/zh-TW/_lib/localize/index.js create mode 100644 node_modules/date-fns/locale/zh-TW/_lib/match/index.js create mode 100644 node_modules/date-fns/locale/zh-TW/index.d.ts create mode 100644 node_modules/date-fns/locale/zh-TW/index.js create mode 100644 node_modules/date-fns/locale/zh-TW/index.js.flow create mode 100644 node_modules/date-fns/locale/zh-TW/package.json create mode 100644 node_modules/date-fns/max/index.d.ts create mode 100644 node_modules/date-fns/max/index.js create mode 100644 node_modules/date-fns/max/index.js.flow create mode 100644 node_modules/date-fns/max/package.json create mode 100644 node_modules/date-fns/min/index.d.ts create mode 100644 node_modules/date-fns/min/index.js create mode 100644 node_modules/date-fns/min/index.js.flow create mode 100644 node_modules/date-fns/min/package.json create mode 100644 node_modules/date-fns/package.json create mode 100644 node_modules/date-fns/parse/_lib/parsers/index.js create mode 100644 node_modules/date-fns/parse/index.d.ts create mode 100644 node_modules/date-fns/parse/index.js create mode 100644 node_modules/date-fns/parse/index.js.flow create mode 100644 node_modules/date-fns/parse/package.json create mode 100644 node_modules/date-fns/parseISO/index.d.ts create mode 100644 node_modules/date-fns/parseISO/index.js create mode 100644 node_modules/date-fns/parseISO/index.js.flow create mode 100644 node_modules/date-fns/parseISO/package.json create mode 100644 node_modules/date-fns/parseJSON/index.d.ts create mode 100644 node_modules/date-fns/parseJSON/index.js create mode 100644 node_modules/date-fns/parseJSON/index.js.flow create mode 100644 node_modules/date-fns/parseJSON/package.json create mode 100644 node_modules/date-fns/roundToNearestMinutes/index.d.ts create mode 100644 node_modules/date-fns/roundToNearestMinutes/index.js create mode 100644 node_modules/date-fns/roundToNearestMinutes/index.js.flow create mode 100644 node_modules/date-fns/roundToNearestMinutes/package.json create mode 100644 node_modules/date-fns/set/index.d.ts create mode 100644 node_modules/date-fns/set/index.js create mode 100644 node_modules/date-fns/set/index.js.flow create mode 100644 node_modules/date-fns/set/package.json create mode 100644 node_modules/date-fns/setDate/index.d.ts create mode 100644 node_modules/date-fns/setDate/index.js create mode 100644 node_modules/date-fns/setDate/index.js.flow create mode 100644 node_modules/date-fns/setDate/package.json create mode 100644 node_modules/date-fns/setDay/index.d.ts create mode 100644 node_modules/date-fns/setDay/index.js create mode 100644 node_modules/date-fns/setDay/index.js.flow create mode 100644 node_modules/date-fns/setDay/package.json create mode 100644 node_modules/date-fns/setDayOfYear/index.d.ts create mode 100644 node_modules/date-fns/setDayOfYear/index.js create mode 100644 node_modules/date-fns/setDayOfYear/index.js.flow create mode 100644 node_modules/date-fns/setDayOfYear/package.json create mode 100644 node_modules/date-fns/setHours/index.d.ts create mode 100644 node_modules/date-fns/setHours/index.js create mode 100644 node_modules/date-fns/setHours/index.js.flow create mode 100644 node_modules/date-fns/setHours/package.json create mode 100644 node_modules/date-fns/setISODay/index.d.ts create mode 100644 node_modules/date-fns/setISODay/index.js create mode 100644 node_modules/date-fns/setISODay/index.js.flow create mode 100644 node_modules/date-fns/setISODay/package.json create mode 100644 node_modules/date-fns/setISOWeek/index.d.ts create mode 100644 node_modules/date-fns/setISOWeek/index.js create mode 100644 node_modules/date-fns/setISOWeek/index.js.flow create mode 100644 node_modules/date-fns/setISOWeek/package.json create mode 100644 node_modules/date-fns/setISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/setISOWeekYear/index.js create mode 100644 node_modules/date-fns/setISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/setISOWeekYear/package.json create mode 100644 node_modules/date-fns/setMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/setMilliseconds/index.js create mode 100644 node_modules/date-fns/setMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/setMilliseconds/package.json create mode 100644 node_modules/date-fns/setMinutes/index.d.ts create mode 100644 node_modules/date-fns/setMinutes/index.js create mode 100644 node_modules/date-fns/setMinutes/index.js.flow create mode 100644 node_modules/date-fns/setMinutes/package.json create mode 100644 node_modules/date-fns/setMonth/index.d.ts create mode 100644 node_modules/date-fns/setMonth/index.js create mode 100644 node_modules/date-fns/setMonth/index.js.flow create mode 100644 node_modules/date-fns/setMonth/package.json create mode 100644 node_modules/date-fns/setQuarter/index.d.ts create mode 100644 node_modules/date-fns/setQuarter/index.js create mode 100644 node_modules/date-fns/setQuarter/index.js.flow create mode 100644 node_modules/date-fns/setQuarter/package.json create mode 100644 node_modules/date-fns/setSeconds/index.d.ts create mode 100644 node_modules/date-fns/setSeconds/index.js create mode 100644 node_modules/date-fns/setSeconds/index.js.flow create mode 100644 node_modules/date-fns/setSeconds/package.json create mode 100644 node_modules/date-fns/setWeek/index.d.ts create mode 100644 node_modules/date-fns/setWeek/index.js create mode 100644 node_modules/date-fns/setWeek/index.js.flow create mode 100644 node_modules/date-fns/setWeek/package.json create mode 100644 node_modules/date-fns/setWeekYear/index.d.ts create mode 100644 node_modules/date-fns/setWeekYear/index.js create mode 100644 node_modules/date-fns/setWeekYear/index.js.flow create mode 100644 node_modules/date-fns/setWeekYear/package.json create mode 100644 node_modules/date-fns/setYear/index.d.ts create mode 100644 node_modules/date-fns/setYear/index.js create mode 100644 node_modules/date-fns/setYear/index.js.flow create mode 100644 node_modules/date-fns/setYear/package.json create mode 100644 node_modules/date-fns/startOfDay/index.d.ts create mode 100644 node_modules/date-fns/startOfDay/index.js create mode 100644 node_modules/date-fns/startOfDay/index.js.flow create mode 100644 node_modules/date-fns/startOfDay/package.json create mode 100644 node_modules/date-fns/startOfDecade/index.d.ts create mode 100644 node_modules/date-fns/startOfDecade/index.js create mode 100644 node_modules/date-fns/startOfDecade/index.js.flow create mode 100644 node_modules/date-fns/startOfDecade/package.json create mode 100644 node_modules/date-fns/startOfHour/index.d.ts create mode 100644 node_modules/date-fns/startOfHour/index.js create mode 100644 node_modules/date-fns/startOfHour/index.js.flow create mode 100644 node_modules/date-fns/startOfHour/package.json create mode 100644 node_modules/date-fns/startOfISOWeek/index.d.ts create mode 100644 node_modules/date-fns/startOfISOWeek/index.js create mode 100644 node_modules/date-fns/startOfISOWeek/index.js.flow create mode 100644 node_modules/date-fns/startOfISOWeek/package.json create mode 100644 node_modules/date-fns/startOfISOWeekYear/index.d.ts create mode 100644 node_modules/date-fns/startOfISOWeekYear/index.js create mode 100644 node_modules/date-fns/startOfISOWeekYear/index.js.flow create mode 100644 node_modules/date-fns/startOfISOWeekYear/package.json create mode 100644 node_modules/date-fns/startOfMinute/index.d.ts create mode 100644 node_modules/date-fns/startOfMinute/index.js create mode 100644 node_modules/date-fns/startOfMinute/index.js.flow create mode 100644 node_modules/date-fns/startOfMinute/package.json create mode 100644 node_modules/date-fns/startOfMonth/index.d.ts create mode 100644 node_modules/date-fns/startOfMonth/index.js create mode 100644 node_modules/date-fns/startOfMonth/index.js.flow create mode 100644 node_modules/date-fns/startOfMonth/package.json create mode 100644 node_modules/date-fns/startOfQuarter/index.d.ts create mode 100644 node_modules/date-fns/startOfQuarter/index.js create mode 100644 node_modules/date-fns/startOfQuarter/index.js.flow create mode 100644 node_modules/date-fns/startOfQuarter/package.json create mode 100644 node_modules/date-fns/startOfSecond/index.d.ts create mode 100644 node_modules/date-fns/startOfSecond/index.js create mode 100644 node_modules/date-fns/startOfSecond/index.js.flow create mode 100644 node_modules/date-fns/startOfSecond/package.json create mode 100644 node_modules/date-fns/startOfToday/index.d.ts create mode 100644 node_modules/date-fns/startOfToday/index.js create mode 100644 node_modules/date-fns/startOfToday/index.js.flow create mode 100644 node_modules/date-fns/startOfToday/package.json create mode 100644 node_modules/date-fns/startOfTomorrow/index.d.ts create mode 100644 node_modules/date-fns/startOfTomorrow/index.js create mode 100644 node_modules/date-fns/startOfTomorrow/index.js.flow create mode 100644 node_modules/date-fns/startOfTomorrow/package.json create mode 100644 node_modules/date-fns/startOfWeek/index.d.ts create mode 100644 node_modules/date-fns/startOfWeek/index.js create mode 100644 node_modules/date-fns/startOfWeek/index.js.flow create mode 100644 node_modules/date-fns/startOfWeek/package.json create mode 100644 node_modules/date-fns/startOfWeekYear/index.d.ts create mode 100644 node_modules/date-fns/startOfWeekYear/index.js create mode 100644 node_modules/date-fns/startOfWeekYear/index.js.flow create mode 100644 node_modules/date-fns/startOfWeekYear/package.json create mode 100644 node_modules/date-fns/startOfYear/index.d.ts create mode 100644 node_modules/date-fns/startOfYear/index.js create mode 100644 node_modules/date-fns/startOfYear/index.js.flow create mode 100644 node_modules/date-fns/startOfYear/package.json create mode 100644 node_modules/date-fns/startOfYesterday/index.d.ts create mode 100644 node_modules/date-fns/startOfYesterday/index.js create mode 100644 node_modules/date-fns/startOfYesterday/index.js.flow create mode 100644 node_modules/date-fns/startOfYesterday/package.json create mode 100644 node_modules/date-fns/sub/index.d.ts create mode 100644 node_modules/date-fns/sub/index.js create mode 100644 node_modules/date-fns/sub/index.js.flow create mode 100644 node_modules/date-fns/sub/package.json create mode 100644 node_modules/date-fns/subBusinessDays/index.d.ts create mode 100644 node_modules/date-fns/subBusinessDays/index.js create mode 100644 node_modules/date-fns/subBusinessDays/index.js.flow create mode 100644 node_modules/date-fns/subBusinessDays/package.json create mode 100644 node_modules/date-fns/subDays/index.d.ts create mode 100644 node_modules/date-fns/subDays/index.js create mode 100644 node_modules/date-fns/subDays/index.js.flow create mode 100644 node_modules/date-fns/subDays/package.json create mode 100644 node_modules/date-fns/subHours/index.d.ts create mode 100644 node_modules/date-fns/subHours/index.js create mode 100644 node_modules/date-fns/subHours/index.js.flow create mode 100644 node_modules/date-fns/subHours/package.json create mode 100644 node_modules/date-fns/subISOWeekYears/index.d.ts create mode 100644 node_modules/date-fns/subISOWeekYears/index.js create mode 100644 node_modules/date-fns/subISOWeekYears/index.js.flow create mode 100644 node_modules/date-fns/subISOWeekYears/package.json create mode 100644 node_modules/date-fns/subMilliseconds/index.d.ts create mode 100644 node_modules/date-fns/subMilliseconds/index.js create mode 100644 node_modules/date-fns/subMilliseconds/index.js.flow create mode 100644 node_modules/date-fns/subMilliseconds/package.json create mode 100644 node_modules/date-fns/subMinutes/index.d.ts create mode 100644 node_modules/date-fns/subMinutes/index.js create mode 100644 node_modules/date-fns/subMinutes/index.js.flow create mode 100644 node_modules/date-fns/subMinutes/package.json create mode 100644 node_modules/date-fns/subMonths/index.d.ts create mode 100644 node_modules/date-fns/subMonths/index.js create mode 100644 node_modules/date-fns/subMonths/index.js.flow create mode 100644 node_modules/date-fns/subMonths/package.json create mode 100644 node_modules/date-fns/subQuarters/index.d.ts create mode 100644 node_modules/date-fns/subQuarters/index.js create mode 100644 node_modules/date-fns/subQuarters/index.js.flow create mode 100644 node_modules/date-fns/subQuarters/package.json create mode 100644 node_modules/date-fns/subSeconds/index.d.ts create mode 100644 node_modules/date-fns/subSeconds/index.js create mode 100644 node_modules/date-fns/subSeconds/index.js.flow create mode 100644 node_modules/date-fns/subSeconds/package.json create mode 100644 node_modules/date-fns/subWeeks/index.d.ts create mode 100644 node_modules/date-fns/subWeeks/index.js create mode 100644 node_modules/date-fns/subWeeks/index.js.flow create mode 100644 node_modules/date-fns/subWeeks/package.json create mode 100644 node_modules/date-fns/subYears/index.d.ts create mode 100644 node_modules/date-fns/subYears/index.js create mode 100644 node_modules/date-fns/subYears/index.js.flow create mode 100644 node_modules/date-fns/subYears/package.json create mode 100644 node_modules/date-fns/toDate/index.d.ts create mode 100644 node_modules/date-fns/toDate/index.js create mode 100644 node_modules/date-fns/toDate/index.js.flow create mode 100644 node_modules/date-fns/toDate/package.json create mode 100644 node_modules/date-fns/typings.d.ts create mode 100644 node_modules/debug/.coveralls.yml create mode 100644 node_modules/debug/.eslintrc create mode 100644 node_modules/debug/.npmignore create mode 100644 node_modules/debug/.travis.yml create mode 100644 node_modules/debug/CHANGELOG.md create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/Makefile create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/component.json create mode 100644 node_modules/debug/karma.conf.js create mode 100644 node_modules/debug/node.js create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/debug.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/inspector-log.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/decamelize/index.js create mode 100644 node_modules/decamelize/license create mode 100644 node_modules/decamelize/package.json create mode 100644 node_modules/decamelize/readme.md create mode 100644 node_modules/decompress-response/index.js create mode 100644 node_modules/decompress-response/license create mode 100644 node_modules/decompress-response/package.json create mode 100644 node_modules/decompress-response/readme.md create mode 100644 node_modules/deep-extend/CHANGELOG.md create mode 100644 node_modules/deep-extend/LICENSE create mode 100644 node_modules/deep-extend/README.md create mode 100644 node_modules/deep-extend/index.js create mode 100644 node_modules/deep-extend/lib/deep-extend.js create mode 100644 node_modules/deep-extend/package.json create mode 100644 node_modules/defer-to-connect/LICENSE create mode 100644 node_modules/defer-to-connect/README.md create mode 100644 node_modules/defer-to-connect/dist/index.d.ts create mode 100644 node_modules/defer-to-connect/dist/index.js create mode 100644 node_modules/defer-to-connect/package.json create mode 100644 node_modules/delayed-stream/.npmignore create mode 100644 node_modules/delayed-stream/License create mode 100644 node_modules/delayed-stream/Makefile create mode 100644 node_modules/delayed-stream/Readme.md create mode 100644 node_modules/delayed-stream/lib/delayed_stream.js create mode 100644 node_modules/delayed-stream/package.json create mode 100644 node_modules/denque/LICENSE create mode 100644 node_modules/denque/README.md create mode 100644 node_modules/denque/index.d.ts create mode 100644 node_modules/denque/index.js create mode 100644 node_modules/denque/package.json create mode 100644 node_modules/depd/History.md create mode 100644 node_modules/depd/LICENSE create mode 100644 node_modules/depd/Readme.md create mode 100644 node_modules/depd/index.js create mode 100644 node_modules/depd/lib/browser/index.js create mode 100644 node_modules/depd/lib/compat/callsite-tostring.js create mode 100644 node_modules/depd/lib/compat/event-listener-count.js create mode 100644 node_modules/depd/lib/compat/index.js create mode 100644 node_modules/depd/package.json create mode 100644 node_modules/destroy/LICENSE create mode 100644 node_modules/destroy/README.md create mode 100644 node_modules/destroy/index.js create mode 100644 node_modules/destroy/package.json create mode 100644 node_modules/dot-prop/index.d.ts create mode 100644 node_modules/dot-prop/index.js create mode 100644 node_modules/dot-prop/license create mode 100644 node_modules/dot-prop/package.json create mode 100644 node_modules/dot-prop/readme.md create mode 100644 node_modules/duplexer3/LICENSE.md create mode 100644 node_modules/duplexer3/README.md create mode 100644 node_modules/duplexer3/index.js create mode 100644 node_modules/duplexer3/package.json create mode 100644 node_modules/ecc-jsbn/LICENSE create mode 100644 node_modules/ecc-jsbn/README.md create mode 100644 node_modules/ecc-jsbn/index.js create mode 100644 node_modules/ecc-jsbn/lib/LICENSE-jsbn create mode 100644 node_modules/ecc-jsbn/lib/ec.js create mode 100644 node_modules/ecc-jsbn/lib/sec.js create mode 100644 node_modules/ecc-jsbn/package.json create mode 100644 node_modules/ecc-jsbn/test.js create mode 100644 node_modules/ecdsa-sig-formatter/CODEOWNERS create mode 100644 node_modules/ecdsa-sig-formatter/LICENSE create mode 100644 node_modules/ecdsa-sig-formatter/README.md create mode 100644 node_modules/ecdsa-sig-formatter/package.json create mode 100644 node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.d.ts create mode 100644 node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js create mode 100644 node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js create mode 100644 node_modules/ee-first/LICENSE create mode 100644 node_modules/ee-first/README.md create mode 100644 node_modules/ee-first/index.js create mode 100644 node_modules/ee-first/package.json create mode 100644 node_modules/email-validator/.travis.yml create mode 100644 node_modules/email-validator/CHANGELOG.md create mode 100644 node_modules/email-validator/LICENSE create mode 100644 node_modules/email-validator/README.md create mode 100644 node_modules/email-validator/index.cjs.js create mode 100644 node_modules/email-validator/index.cjs.js.map create mode 100644 node_modules/email-validator/index.d.ts create mode 100644 node_modules/email-validator/index.js create mode 100644 node_modules/email-validator/package.json create mode 100644 node_modules/email-validator/test.js create mode 100644 node_modules/emoji-regex/LICENSE-MIT.txt create mode 100644 node_modules/emoji-regex/README.md create mode 100644 node_modules/emoji-regex/es2015/index.js create mode 100644 node_modules/emoji-regex/es2015/text.js create mode 100644 node_modules/emoji-regex/index.d.ts create mode 100644 node_modules/emoji-regex/index.js create mode 100644 node_modules/emoji-regex/package.json create mode 100644 node_modules/emoji-regex/text.js create mode 100644 node_modules/encodeurl/HISTORY.md create mode 100644 node_modules/encodeurl/LICENSE create mode 100644 node_modules/encodeurl/README.md create mode 100644 node_modules/encodeurl/index.js create mode 100644 node_modules/encodeurl/package.json create mode 100644 node_modules/end-of-stream/LICENSE create mode 100644 node_modules/end-of-stream/README.md create mode 100644 node_modules/end-of-stream/index.js create mode 100644 node_modules/end-of-stream/package.json create mode 100644 node_modules/error-ex/LICENSE create mode 100644 node_modules/error-ex/README.md create mode 100644 node_modules/error-ex/index.js create mode 100644 node_modules/error-ex/package.json create mode 100644 node_modules/escape-goat/index.d.ts create mode 100644 node_modules/escape-goat/index.js create mode 100644 node_modules/escape-goat/license create mode 100644 node_modules/escape-goat/package.json create mode 100644 node_modules/escape-goat/readme.md create mode 100644 node_modules/escape-html/LICENSE create mode 100644 node_modules/escape-html/Readme.md create mode 100644 node_modules/escape-html/index.js create mode 100644 node_modules/escape-html/package.json create mode 100644 node_modules/escape-string-regexp/index.js create mode 100644 node_modules/escape-string-regexp/license create mode 100644 node_modules/escape-string-regexp/package.json create mode 100644 node_modules/escape-string-regexp/readme.md create mode 100644 node_modules/etag/HISTORY.md create mode 100644 node_modules/etag/LICENSE create mode 100644 node_modules/etag/README.md create mode 100644 node_modules/etag/index.js create mode 100644 node_modules/etag/package.json create mode 100644 node_modules/express-validator/LICENSE create mode 100644 node_modules/express-validator/README.md create mode 100644 node_modules/express-validator/check/index.d.ts create mode 100644 node_modules/express-validator/check/index.js create mode 100644 node_modules/express-validator/docs/api-check.md create mode 100644 node_modules/express-validator/docs/api-filter.md create mode 100644 node_modules/express-validator/docs/api-matched-data.md create mode 100644 node_modules/express-validator/docs/api-sanitization-chain.md create mode 100644 node_modules/express-validator/docs/api-validation-chain.md create mode 100644 node_modules/express-validator/docs/api-validation-result.md create mode 100644 node_modules/express-validator/docs/feature-custom-validators-sanitizers.md create mode 100644 node_modules/express-validator/docs/feature-error-messages.md create mode 100644 node_modules/express-validator/docs/feature-running-imperatively.md create mode 100644 node_modules/express-validator/docs/feature-sanitization.md create mode 100644 node_modules/express-validator/docs/feature-schema-validation.md create mode 100644 node_modules/express-validator/docs/feature-whole-body-validation.md create mode 100644 node_modules/express-validator/docs/feature-wildcards.md create mode 100644 node_modules/express-validator/docs/index.md create mode 100644 node_modules/express-validator/filter/index.d.ts create mode 100644 node_modules/express-validator/filter/index.js create mode 100644 node_modules/express-validator/package.json create mode 100644 node_modules/express-validator/src/base.d.ts create mode 100644 node_modules/express-validator/src/base.js create mode 100644 node_modules/express-validator/src/chain/context-handler-impl.d.ts create mode 100644 node_modules/express-validator/src/chain/context-handler-impl.js create mode 100644 node_modules/express-validator/src/chain/context-handler.d.ts create mode 100644 node_modules/express-validator/src/chain/context-handler.js create mode 100644 node_modules/express-validator/src/chain/context-runner-impl.d.ts create mode 100644 node_modules/express-validator/src/chain/context-runner-impl.js create mode 100644 node_modules/express-validator/src/chain/context-runner.d.ts create mode 100644 node_modules/express-validator/src/chain/context-runner.js create mode 100644 node_modules/express-validator/src/chain/index.d.ts create mode 100644 node_modules/express-validator/src/chain/index.js create mode 100644 node_modules/express-validator/src/chain/sanitization-chain.d.ts create mode 100644 node_modules/express-validator/src/chain/sanitization-chain.js create mode 100644 node_modules/express-validator/src/chain/sanitizers-impl.d.ts create mode 100644 node_modules/express-validator/src/chain/sanitizers-impl.js create mode 100644 node_modules/express-validator/src/chain/sanitizers.d.ts create mode 100644 node_modules/express-validator/src/chain/sanitizers.js create mode 100644 node_modules/express-validator/src/chain/validation-chain.d.ts create mode 100644 node_modules/express-validator/src/chain/validation-chain.js create mode 100644 node_modules/express-validator/src/chain/validators-impl.d.ts create mode 100644 node_modules/express-validator/src/chain/validators-impl.js create mode 100644 node_modules/express-validator/src/chain/validators.d.ts create mode 100644 node_modules/express-validator/src/chain/validators.js create mode 100644 node_modules/express-validator/src/context-builder.d.ts create mode 100644 node_modules/express-validator/src/context-builder.js create mode 100644 node_modules/express-validator/src/context-items/bail.d.ts create mode 100644 node_modules/express-validator/src/context-items/bail.js create mode 100644 node_modules/express-validator/src/context-items/chain-condition.d.ts create mode 100644 node_modules/express-validator/src/context-items/chain-condition.js create mode 100644 node_modules/express-validator/src/context-items/context-item.d.ts create mode 100644 node_modules/express-validator/src/context-items/context-item.js create mode 100644 node_modules/express-validator/src/context-items/custom-condition.d.ts create mode 100644 node_modules/express-validator/src/context-items/custom-condition.js create mode 100644 node_modules/express-validator/src/context-items/custom-validation.d.ts create mode 100644 node_modules/express-validator/src/context-items/custom-validation.js create mode 100644 node_modules/express-validator/src/context-items/index.d.ts create mode 100644 node_modules/express-validator/src/context-items/index.js create mode 100644 node_modules/express-validator/src/context-items/sanitization.d.ts create mode 100644 node_modules/express-validator/src/context-items/sanitization.js create mode 100644 node_modules/express-validator/src/context-items/standard-validation.d.ts create mode 100644 node_modules/express-validator/src/context-items/standard-validation.js create mode 100644 node_modules/express-validator/src/context.d.ts create mode 100644 node_modules/express-validator/src/context.js create mode 100644 node_modules/express-validator/src/index.d.ts create mode 100644 node_modules/express-validator/src/index.js create mode 100644 node_modules/express-validator/src/matched-data.d.ts create mode 100644 node_modules/express-validator/src/matched-data.js create mode 100644 node_modules/express-validator/src/middlewares/check.d.ts create mode 100644 node_modules/express-validator/src/middlewares/check.js create mode 100644 node_modules/express-validator/src/middlewares/one-of.d.ts create mode 100644 node_modules/express-validator/src/middlewares/one-of.js create mode 100644 node_modules/express-validator/src/middlewares/sanitization-chain-builders.d.ts create mode 100644 node_modules/express-validator/src/middlewares/sanitization-chain-builders.js create mode 100644 node_modules/express-validator/src/middlewares/sanitize.d.ts create mode 100644 node_modules/express-validator/src/middlewares/sanitize.js create mode 100644 node_modules/express-validator/src/middlewares/schema.d.ts create mode 100644 node_modules/express-validator/src/middlewares/schema.js create mode 100644 node_modules/express-validator/src/middlewares/validation-chain-builders.d.ts create mode 100644 node_modules/express-validator/src/middlewares/validation-chain-builders.js create mode 100644 node_modules/express-validator/src/options.d.ts create mode 100644 node_modules/express-validator/src/options.js create mode 100644 node_modules/express-validator/src/select-fields.d.ts create mode 100644 node_modules/express-validator/src/select-fields.js create mode 100644 node_modules/express-validator/src/utils.d.ts create mode 100644 node_modules/express-validator/src/utils.js create mode 100644 node_modules/express-validator/src/validation-result.d.ts create mode 100644 node_modules/express-validator/src/validation-result.js create mode 100644 node_modules/express/History.md create mode 100644 node_modules/express/LICENSE create mode 100644 node_modules/express/Readme.md create mode 100644 node_modules/express/index.js create mode 100644 node_modules/express/lib/application.js create mode 100644 node_modules/express/lib/express.js create mode 100644 node_modules/express/lib/middleware/init.js create mode 100644 node_modules/express/lib/middleware/query.js create mode 100644 node_modules/express/lib/request.js create mode 100644 node_modules/express/lib/response.js create mode 100644 node_modules/express/lib/router/index.js create mode 100644 node_modules/express/lib/router/layer.js create mode 100644 node_modules/express/lib/router/route.js create mode 100644 node_modules/express/lib/utils.js create mode 100644 node_modules/express/lib/view.js create mode 100644 node_modules/express/package.json create mode 100644 node_modules/extend/.editorconfig create mode 100644 node_modules/extend/.eslintrc create mode 100644 node_modules/extend/.jscs.json create mode 100644 node_modules/extend/.travis.yml create mode 100644 node_modules/extend/CHANGELOG.md create mode 100644 node_modules/extend/LICENSE create mode 100644 node_modules/extend/README.md create mode 100644 node_modules/extend/component.json create mode 100644 node_modules/extend/index.js create mode 100644 node_modules/extend/package.json create mode 100644 node_modules/extsprintf/.gitmodules create mode 100644 node_modules/extsprintf/.npmignore create mode 100644 node_modules/extsprintf/LICENSE create mode 100644 node_modules/extsprintf/Makefile create mode 100644 node_modules/extsprintf/Makefile.targ create mode 100644 node_modules/extsprintf/README.md create mode 100644 node_modules/extsprintf/jsl.node.conf create mode 100644 node_modules/extsprintf/lib/extsprintf.js create mode 100644 node_modules/extsprintf/package.json create mode 100644 node_modules/fast-deep-equal/LICENSE create mode 100644 node_modules/fast-deep-equal/README.md create mode 100644 node_modules/fast-deep-equal/es6/index.d.ts create mode 100644 node_modules/fast-deep-equal/es6/index.js create mode 100644 node_modules/fast-deep-equal/es6/react.d.ts create mode 100644 node_modules/fast-deep-equal/es6/react.js create mode 100644 node_modules/fast-deep-equal/index.d.ts create mode 100644 node_modules/fast-deep-equal/index.js create mode 100644 node_modules/fast-deep-equal/package.json create mode 100644 node_modules/fast-deep-equal/react.d.ts create mode 100644 node_modules/fast-deep-equal/react.js create mode 100644 node_modules/fast-json-stable-stringify/.eslintrc.yml create mode 100644 node_modules/fast-json-stable-stringify/.github/FUNDING.yml create mode 100644 node_modules/fast-json-stable-stringify/.travis.yml create mode 100644 node_modules/fast-json-stable-stringify/LICENSE create mode 100644 node_modules/fast-json-stable-stringify/README.md create mode 100644 node_modules/fast-json-stable-stringify/benchmark/index.js create mode 100644 node_modules/fast-json-stable-stringify/benchmark/test.json create mode 100644 node_modules/fast-json-stable-stringify/example/key_cmp.js create mode 100644 node_modules/fast-json-stable-stringify/example/nested.js create mode 100644 node_modules/fast-json-stable-stringify/example/str.js create mode 100644 node_modules/fast-json-stable-stringify/example/value_cmp.js create mode 100644 node_modules/fast-json-stable-stringify/index.d.ts create mode 100644 node_modules/fast-json-stable-stringify/index.js create mode 100644 node_modules/fast-json-stable-stringify/package.json create mode 100644 node_modules/fast-json-stable-stringify/test/cmp.js create mode 100644 node_modules/fast-json-stable-stringify/test/nested.js create mode 100644 node_modules/fast-json-stable-stringify/test/str.js create mode 100644 node_modules/fast-json-stable-stringify/test/to-json.js create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/finalhandler/HISTORY.md create mode 100644 node_modules/finalhandler/LICENSE create mode 100644 node_modules/finalhandler/README.md create mode 100644 node_modules/finalhandler/index.js create mode 100644 node_modules/finalhandler/package.json create mode 100644 node_modules/find-up/index.d.ts create mode 100644 node_modules/find-up/index.js create mode 100644 node_modules/find-up/license create mode 100644 node_modules/find-up/package.json create mode 100644 node_modules/find-up/readme.md create mode 100644 node_modules/forever-agent/LICENSE create mode 100644 node_modules/forever-agent/README.md create mode 100644 node_modules/forever-agent/index.js create mode 100644 node_modules/forever-agent/package.json create mode 100644 node_modules/form-data/License create mode 100644 node_modules/form-data/README.md create mode 100644 node_modules/form-data/README.md.bak create mode 100644 node_modules/form-data/lib/browser.js create mode 100644 node_modules/form-data/lib/form_data.js create mode 100644 node_modules/form-data/lib/populate.js create mode 100644 node_modules/form-data/package.json create mode 100644 node_modules/form-data/yarn.lock create mode 100644 node_modules/forwarded/HISTORY.md create mode 100644 node_modules/forwarded/LICENSE create mode 100644 node_modules/forwarded/README.md create mode 100644 node_modules/forwarded/index.js create mode 100644 node_modules/forwarded/package.json create mode 100644 node_modules/fresh/HISTORY.md create mode 100644 node_modules/fresh/LICENSE create mode 100644 node_modules/fresh/README.md create mode 100644 node_modules/fresh/index.js create mode 100644 node_modules/fresh/package.json create mode 100644 node_modules/get-caller-file/LICENSE.md create mode 100644 node_modules/get-caller-file/README.md create mode 100644 node_modules/get-caller-file/index.d.ts create mode 100644 node_modules/get-caller-file/index.js create mode 100644 node_modules/get-caller-file/index.js.map create mode 100644 node_modules/get-caller-file/package.json create mode 100644 node_modules/get-stream/buffer-stream.js create mode 100644 node_modules/get-stream/index.js create mode 100644 node_modules/get-stream/license create mode 100644 node_modules/get-stream/package.json create mode 100644 node_modules/get-stream/readme.md create mode 100644 node_modules/getpass/.npmignore create mode 100644 node_modules/getpass/.travis.yml create mode 100644 node_modules/getpass/LICENSE create mode 100644 node_modules/getpass/README.md create mode 100644 node_modules/getpass/lib/index.js create mode 100644 node_modules/getpass/package.json create mode 100644 node_modules/glob-parent/LICENSE create mode 100644 node_modules/glob-parent/README.md create mode 100644 node_modules/glob-parent/index.js create mode 100644 node_modules/glob-parent/package.json create mode 100644 node_modules/global-dirs/index.d.ts create mode 100644 node_modules/global-dirs/index.js create mode 100644 node_modules/global-dirs/license create mode 100644 node_modules/global-dirs/package.json create mode 100644 node_modules/global-dirs/readme.md create mode 100644 node_modules/got/license create mode 100644 node_modules/got/package.json create mode 100644 node_modules/got/readme.md create mode 100644 node_modules/got/source/as-promise.js create mode 100644 node_modules/got/source/as-stream.js create mode 100644 node_modules/got/source/create.js create mode 100644 node_modules/got/source/errors.js create mode 100644 node_modules/got/source/get-response.js create mode 100644 node_modules/got/source/index.js create mode 100644 node_modules/got/source/known-hook-events.js create mode 100644 node_modules/got/source/merge.js create mode 100644 node_modules/got/source/normalize-arguments.js create mode 100644 node_modules/got/source/progress.js create mode 100644 node_modules/got/source/request-as-event-emitter.js create mode 100644 node_modules/got/source/utils/deep-freeze.js create mode 100644 node_modules/got/source/utils/get-body-size.js create mode 100644 node_modules/got/source/utils/is-form-data.js create mode 100644 node_modules/got/source/utils/timed-out.js create mode 100644 node_modules/got/source/utils/url-to-options.js create mode 100644 node_modules/graceful-fs/LICENSE create mode 100644 node_modules/graceful-fs/README.md create mode 100644 node_modules/graceful-fs/clone.js create mode 100644 node_modules/graceful-fs/graceful-fs.js create mode 100644 node_modules/graceful-fs/legacy-streams.js create mode 100644 node_modules/graceful-fs/package.json create mode 100644 node_modules/graceful-fs/polyfills.js create mode 100644 node_modules/gravatar/.travis.yml create mode 100644 node_modules/gravatar/Changelog.md create mode 100644 node_modules/gravatar/Readme.md create mode 100644 node_modules/gravatar/cli.js create mode 100644 node_modules/gravatar/index.js create mode 100644 node_modules/gravatar/lib/gravatar.js create mode 100644 node_modules/gravatar/package.json create mode 100644 node_modules/gravatar/test/gravatar.test.js create mode 100644 node_modules/har-schema/LICENSE create mode 100644 node_modules/har-schema/README.md create mode 100644 node_modules/har-schema/lib/afterRequest.json create mode 100644 node_modules/har-schema/lib/beforeRequest.json create mode 100644 node_modules/har-schema/lib/browser.json create mode 100644 node_modules/har-schema/lib/cache.json create mode 100644 node_modules/har-schema/lib/content.json create mode 100644 node_modules/har-schema/lib/cookie.json create mode 100644 node_modules/har-schema/lib/creator.json create mode 100644 node_modules/har-schema/lib/entry.json create mode 100644 node_modules/har-schema/lib/har.json create mode 100644 node_modules/har-schema/lib/header.json create mode 100644 node_modules/har-schema/lib/index.js create mode 100644 node_modules/har-schema/lib/log.json create mode 100644 node_modules/har-schema/lib/page.json create mode 100644 node_modules/har-schema/lib/pageTimings.json create mode 100644 node_modules/har-schema/lib/postData.json create mode 100644 node_modules/har-schema/lib/query.json create mode 100644 node_modules/har-schema/lib/request.json create mode 100644 node_modules/har-schema/lib/response.json create mode 100644 node_modules/har-schema/lib/timings.json create mode 100644 node_modules/har-schema/package.json create mode 100644 node_modules/har-validator/LICENSE create mode 100644 node_modules/har-validator/README.md create mode 100644 node_modules/har-validator/lib/async.js create mode 100644 node_modules/har-validator/lib/error.js create mode 100644 node_modules/har-validator/lib/promise.js create mode 100644 node_modules/har-validator/package.json create mode 100644 node_modules/has-flag/index.js create mode 100644 node_modules/has-flag/license create mode 100644 node_modules/has-flag/package.json create mode 100644 node_modules/has-flag/readme.md create mode 100644 node_modules/has-yarn/index.d.ts create mode 100644 node_modules/has-yarn/index.js create mode 100644 node_modules/has-yarn/license create mode 100644 node_modules/has-yarn/package.json create mode 100644 node_modules/has-yarn/readme.md create mode 100644 node_modules/hosted-git-info/CHANGELOG.md create mode 100644 node_modules/hosted-git-info/LICENSE create mode 100644 node_modules/hosted-git-info/README.md create mode 100644 node_modules/hosted-git-info/git-host-info.js create mode 100644 node_modules/hosted-git-info/git-host.js create mode 100644 node_modules/hosted-git-info/index.js create mode 100644 node_modules/hosted-git-info/package.json create mode 100644 node_modules/http-cache-semantics/LICENSE create mode 100644 node_modules/http-cache-semantics/README.md create mode 100644 node_modules/http-cache-semantics/index.js create mode 100644 node_modules/http-cache-semantics/package.json create mode 100644 node_modules/http-errors/HISTORY.md create mode 100644 node_modules/http-errors/LICENSE create mode 100644 node_modules/http-errors/README.md create mode 100644 node_modules/http-errors/index.js create mode 100644 node_modules/http-errors/package.json create mode 100644 node_modules/http-signature/.dir-locals.el create mode 100644 node_modules/http-signature/.npmignore create mode 100644 node_modules/http-signature/CHANGES.md create mode 100644 node_modules/http-signature/LICENSE create mode 100644 node_modules/http-signature/README.md create mode 100644 node_modules/http-signature/http_signing.md create mode 100644 node_modules/http-signature/lib/index.js create mode 100644 node_modules/http-signature/lib/parser.js create mode 100644 node_modules/http-signature/lib/signer.js create mode 100644 node_modules/http-signature/lib/utils.js create mode 100644 node_modules/http-signature/lib/verify.js create mode 100644 node_modules/http-signature/package.json create mode 100644 node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/iconv-lite/LICENSE create mode 100644 node_modules/iconv-lite/README.md create mode 100644 node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/iconv-lite/lib/extend-node.js create mode 100644 node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/iconv-lite/package.json create mode 100644 node_modules/ignore-by-default/LICENSE create mode 100644 node_modules/ignore-by-default/README.md create mode 100644 node_modules/ignore-by-default/index.js create mode 100644 node_modules/ignore-by-default/package.json create mode 100644 node_modules/import-lazy/index.js create mode 100644 node_modules/import-lazy/license create mode 100644 node_modules/import-lazy/package.json create mode 100644 node_modules/import-lazy/readme.md create mode 100644 node_modules/imurmurhash/README.md create mode 100644 node_modules/imurmurhash/imurmurhash.js create mode 100644 node_modules/imurmurhash/imurmurhash.min.js create mode 100644 node_modules/imurmurhash/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ini/LICENSE create mode 100644 node_modules/ini/README.md create mode 100644 node_modules/ini/ini.js create mode 100644 node_modules/ini/package.json create mode 100644 node_modules/ipaddr.js/LICENSE create mode 100644 node_modules/ipaddr.js/README.md create mode 100644 node_modules/ipaddr.js/ipaddr.min.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 node_modules/ipaddr.js/package.json create mode 100644 node_modules/is-arrayish/.editorconfig create mode 100644 node_modules/is-arrayish/.istanbul.yml create mode 100644 node_modules/is-arrayish/.npmignore create mode 100644 node_modules/is-arrayish/.travis.yml create mode 100644 node_modules/is-arrayish/LICENSE create mode 100644 node_modules/is-arrayish/README.md create mode 100644 node_modules/is-arrayish/index.js create mode 100644 node_modules/is-arrayish/package.json create mode 100644 node_modules/is-binary-path/index.d.ts create mode 100644 node_modules/is-binary-path/index.js create mode 100644 node_modules/is-binary-path/license create mode 100644 node_modules/is-binary-path/package.json create mode 100644 node_modules/is-binary-path/readme.md create mode 100644 node_modules/is-ci/CHANGELOG.md create mode 100644 node_modules/is-ci/LICENSE create mode 100644 node_modules/is-ci/README.md create mode 100644 node_modules/is-ci/bin.js create mode 100644 node_modules/is-ci/index.js create mode 100644 node_modules/is-ci/package.json create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-fullwidth-code-point/index.d.ts create mode 100644 node_modules/is-fullwidth-code-point/index.js create mode 100644 node_modules/is-fullwidth-code-point/license create mode 100644 node_modules/is-fullwidth-code-point/package.json create mode 100644 node_modules/is-fullwidth-code-point/readme.md create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-installed-globally/index.d.ts create mode 100644 node_modules/is-installed-globally/index.js create mode 100644 node_modules/is-installed-globally/license create mode 100644 node_modules/is-installed-globally/package.json create mode 100644 node_modules/is-installed-globally/readme.md create mode 100644 node_modules/is-npm/index.d.ts create mode 100644 node_modules/is-npm/index.js create mode 100644 node_modules/is-npm/license create mode 100644 node_modules/is-npm/package.json create mode 100644 node_modules/is-npm/readme.md create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/is-obj/index.d.ts create mode 100644 node_modules/is-obj/index.js create mode 100644 node_modules/is-obj/license create mode 100644 node_modules/is-obj/package.json create mode 100644 node_modules/is-obj/readme.md create mode 100644 node_modules/is-path-inside/index.d.ts create mode 100644 node_modules/is-path-inside/index.js create mode 100644 node_modules/is-path-inside/license create mode 100644 node_modules/is-path-inside/package.json create mode 100644 node_modules/is-path-inside/readme.md create mode 100644 node_modules/is-typedarray/LICENSE.md create mode 100644 node_modules/is-typedarray/README.md create mode 100644 node_modules/is-typedarray/index.js create mode 100644 node_modules/is-typedarray/package.json create mode 100644 node_modules/is-typedarray/test.js create mode 100644 node_modules/is-yarn-global/.travis.yml create mode 100644 node_modules/is-yarn-global/LICENSE create mode 100644 node_modules/is-yarn-global/README.md create mode 100644 node_modules/is-yarn-global/index.js create mode 100644 node_modules/is-yarn-global/package.json create mode 100644 node_modules/isarray/.npmignore create mode 100644 node_modules/isarray/.travis.yml create mode 100644 node_modules/isarray/Makefile create mode 100644 node_modules/isarray/README.md create mode 100644 node_modules/isarray/component.json create mode 100644 node_modules/isarray/index.js create mode 100644 node_modules/isarray/package.json create mode 100644 node_modules/isarray/test.js create mode 100644 node_modules/isstream/.jshintrc create mode 100644 node_modules/isstream/.npmignore create mode 100644 node_modules/isstream/.travis.yml create mode 100644 node_modules/isstream/LICENSE.md create mode 100644 node_modules/isstream/README.md create mode 100644 node_modules/isstream/isstream.js create mode 100644 node_modules/isstream/package.json create mode 100644 node_modules/isstream/test.js create mode 100644 node_modules/jsbn/.npmignore create mode 100644 node_modules/jsbn/LICENSE create mode 100644 node_modules/jsbn/README.md create mode 100644 node_modules/jsbn/example.html create mode 100644 node_modules/jsbn/example.js create mode 100644 node_modules/jsbn/index.js create mode 100644 node_modules/jsbn/package.json create mode 100644 node_modules/json-buffer/.npmignore create mode 100644 node_modules/json-buffer/.travis.yml create mode 100644 node_modules/json-buffer/LICENSE create mode 100644 node_modules/json-buffer/README.md create mode 100644 node_modules/json-buffer/index.js create mode 100644 node_modules/json-buffer/package.json create mode 100644 node_modules/json-buffer/test/index.js create mode 100644 node_modules/json-parse-better-errors/CHANGELOG.md create mode 100644 node_modules/json-parse-better-errors/LICENSE.md create mode 100644 node_modules/json-parse-better-errors/README.md create mode 100644 node_modules/json-parse-better-errors/index.js create mode 100644 node_modules/json-parse-better-errors/package.json create mode 100644 node_modules/json-schema-traverse/.eslintrc.yml create mode 100644 node_modules/json-schema-traverse/.travis.yml create mode 100644 node_modules/json-schema-traverse/LICENSE create mode 100644 node_modules/json-schema-traverse/README.md create mode 100644 node_modules/json-schema-traverse/index.js create mode 100644 node_modules/json-schema-traverse/package.json create mode 100644 node_modules/json-schema-traverse/spec/.eslintrc.yml create mode 100644 node_modules/json-schema-traverse/spec/fixtures/schema.js create mode 100644 node_modules/json-schema-traverse/spec/index.spec.js create mode 100644 node_modules/json-schema/README.md create mode 100644 node_modules/json-schema/draft-00/hyper-schema create mode 100644 node_modules/json-schema/draft-00/json-ref create mode 100644 node_modules/json-schema/draft-00/links create mode 100644 node_modules/json-schema/draft-00/schema create mode 100644 node_modules/json-schema/draft-01/hyper-schema create mode 100644 node_modules/json-schema/draft-01/json-ref create mode 100644 node_modules/json-schema/draft-01/links create mode 100644 node_modules/json-schema/draft-01/schema create mode 100644 node_modules/json-schema/draft-02/hyper-schema create mode 100644 node_modules/json-schema/draft-02/json-ref create mode 100644 node_modules/json-schema/draft-02/links create mode 100644 node_modules/json-schema/draft-02/schema create mode 100644 node_modules/json-schema/draft-03/examples/address create mode 100644 node_modules/json-schema/draft-03/examples/calendar create mode 100644 node_modules/json-schema/draft-03/examples/card create mode 100644 node_modules/json-schema/draft-03/examples/geo create mode 100644 node_modules/json-schema/draft-03/examples/interfaces create mode 100644 node_modules/json-schema/draft-03/hyper-schema create mode 100644 node_modules/json-schema/draft-03/json-ref create mode 100644 node_modules/json-schema/draft-03/links create mode 100644 node_modules/json-schema/draft-03/schema create mode 100644 node_modules/json-schema/draft-04/hyper-schema create mode 100644 node_modules/json-schema/draft-04/links create mode 100644 node_modules/json-schema/draft-04/schema create mode 100644 node_modules/json-schema/draft-zyp-json-schema-03.xml create mode 100644 node_modules/json-schema/draft-zyp-json-schema-04.xml create mode 100644 node_modules/json-schema/lib/links.js create mode 100644 node_modules/json-schema/lib/validate.js create mode 100644 node_modules/json-schema/package.json create mode 100644 node_modules/json-schema/test/tests.js create mode 100644 node_modules/json-stringify-safe/.npmignore create mode 100644 node_modules/json-stringify-safe/CHANGELOG.md create mode 100644 node_modules/json-stringify-safe/LICENSE create mode 100644 node_modules/json-stringify-safe/Makefile create mode 100644 node_modules/json-stringify-safe/README.md create mode 100644 node_modules/json-stringify-safe/package.json create mode 100644 node_modules/json-stringify-safe/stringify.js create mode 100644 node_modules/json-stringify-safe/test/mocha.opts create mode 100644 node_modules/json-stringify-safe/test/stringify_test.js create mode 100644 node_modules/json5/CHANGELOG.md create mode 100644 node_modules/json5/LICENSE.md create mode 100644 node_modules/json5/README.md create mode 100644 node_modules/json5/dist/index.js create mode 100644 node_modules/json5/dist/index.min.js create mode 100644 node_modules/json5/dist/index.min.mjs create mode 100644 node_modules/json5/dist/index.mjs create mode 100644 node_modules/json5/lib/cli.js create mode 100644 node_modules/json5/lib/index.js create mode 100644 node_modules/json5/lib/parse.js create mode 100644 node_modules/json5/lib/register.js create mode 100644 node_modules/json5/lib/require.js create mode 100644 node_modules/json5/lib/stringify.js create mode 100644 node_modules/json5/lib/unicode.js create mode 100644 node_modules/json5/lib/util.js create mode 100644 node_modules/json5/package.json create mode 100644 node_modules/jsonwebtoken/CHANGELOG.md create mode 100644 node_modules/jsonwebtoken/LICENSE create mode 100644 node_modules/jsonwebtoken/README.md create mode 100644 node_modules/jsonwebtoken/decode.js create mode 100644 node_modules/jsonwebtoken/index.js create mode 100644 node_modules/jsonwebtoken/lib/JsonWebTokenError.js create mode 100644 node_modules/jsonwebtoken/lib/NotBeforeError.js create mode 100644 node_modules/jsonwebtoken/lib/TokenExpiredError.js create mode 100644 node_modules/jsonwebtoken/lib/psSupported.js create mode 100644 node_modules/jsonwebtoken/lib/timespan.js create mode 100644 node_modules/jsonwebtoken/node_modules/ms/index.js create mode 100644 node_modules/jsonwebtoken/node_modules/ms/license.md create mode 100644 node_modules/jsonwebtoken/node_modules/ms/package.json create mode 100644 node_modules/jsonwebtoken/node_modules/ms/readme.md create mode 100644 node_modules/jsonwebtoken/package.json create mode 100644 node_modules/jsonwebtoken/sign.js create mode 100644 node_modules/jsonwebtoken/verify.js create mode 100644 node_modules/jsprim/CHANGES.md create mode 100644 node_modules/jsprim/CONTRIBUTING.md create mode 100644 node_modules/jsprim/LICENSE create mode 100644 node_modules/jsprim/README.md create mode 100644 node_modules/jsprim/lib/jsprim.js create mode 100644 node_modules/jsprim/package.json create mode 100644 node_modules/jwa/LICENSE create mode 100644 node_modules/jwa/README.md create mode 100644 node_modules/jwa/index.js create mode 100644 node_modules/jwa/package.json create mode 100644 node_modules/jws/CHANGELOG.md create mode 100644 node_modules/jws/LICENSE create mode 100644 node_modules/jws/index.js create mode 100644 node_modules/jws/lib/data-stream.js create mode 100644 node_modules/jws/lib/sign-stream.js create mode 100644 node_modules/jws/lib/tostring.js create mode 100644 node_modules/jws/lib/verify-stream.js create mode 100644 node_modules/jws/package.json create mode 100644 node_modules/jws/readme.md create mode 100644 node_modules/kareem/.travis.yml create mode 100644 node_modules/kareem/CHANGELOG.md create mode 100644 node_modules/kareem/LICENSE create mode 100644 node_modules/kareem/Makefile create mode 100644 node_modules/kareem/README.md create mode 100644 node_modules/kareem/docs.js create mode 100644 node_modules/kareem/gulpfile.js create mode 100644 node_modules/kareem/index.js create mode 100644 node_modules/kareem/package.json create mode 100644 node_modules/kareem/test/examples.test.js create mode 100644 node_modules/kareem/test/misc.test.js create mode 100644 node_modules/kareem/test/post.test.js create mode 100644 node_modules/kareem/test/pre.test.js create mode 100644 node_modules/kareem/test/wrap.test.js create mode 100644 node_modules/keyv/LICENSE create mode 100644 node_modules/keyv/README.md create mode 100644 node_modules/keyv/package.json create mode 100644 node_modules/keyv/src/index.js create mode 100644 node_modules/latest-version/index.d.ts create mode 100644 node_modules/latest-version/index.js create mode 100644 node_modules/latest-version/license create mode 100644 node_modules/latest-version/package.json create mode 100644 node_modules/latest-version/readme.md create mode 100644 node_modules/locate-path/index.d.ts create mode 100644 node_modules/locate-path/index.js create mode 100644 node_modules/locate-path/license create mode 100644 node_modules/locate-path/package.json create mode 100644 node_modules/locate-path/readme.md create mode 100644 node_modules/lodash.includes/LICENSE create mode 100644 node_modules/lodash.includes/README.md create mode 100644 node_modules/lodash.includes/index.js create mode 100644 node_modules/lodash.includes/package.json create mode 100644 node_modules/lodash.isboolean/LICENSE create mode 100644 node_modules/lodash.isboolean/README.md create mode 100644 node_modules/lodash.isboolean/index.js create mode 100644 node_modules/lodash.isboolean/package.json create mode 100644 node_modules/lodash.isinteger/LICENSE create mode 100644 node_modules/lodash.isinteger/README.md create mode 100644 node_modules/lodash.isinteger/index.js create mode 100644 node_modules/lodash.isinteger/package.json create mode 100644 node_modules/lodash.isnumber/LICENSE create mode 100644 node_modules/lodash.isnumber/README.md create mode 100644 node_modules/lodash.isnumber/index.js create mode 100644 node_modules/lodash.isnumber/package.json create mode 100644 node_modules/lodash.isplainobject/LICENSE create mode 100644 node_modules/lodash.isplainobject/README.md create mode 100644 node_modules/lodash.isplainobject/index.js create mode 100644 node_modules/lodash.isplainobject/package.json create mode 100644 node_modules/lodash.isstring/LICENSE create mode 100644 node_modules/lodash.isstring/README.md create mode 100644 node_modules/lodash.isstring/index.js create mode 100644 node_modules/lodash.isstring/package.json create mode 100644 node_modules/lodash.once/LICENSE create mode 100644 node_modules/lodash.once/README.md create mode 100644 node_modules/lodash.once/index.js create mode 100644 node_modules/lodash.once/package.json create mode 100644 node_modules/lodash/LICENSE create mode 100644 node_modules/lodash/README.md create mode 100644 node_modules/lodash/_DataView.js create mode 100644 node_modules/lodash/_Hash.js create mode 100644 node_modules/lodash/_LazyWrapper.js create mode 100644 node_modules/lodash/_ListCache.js create mode 100644 node_modules/lodash/_LodashWrapper.js create mode 100644 node_modules/lodash/_Map.js create mode 100644 node_modules/lodash/_MapCache.js create mode 100644 node_modules/lodash/_Promise.js create mode 100644 node_modules/lodash/_Set.js create mode 100644 node_modules/lodash/_SetCache.js create mode 100644 node_modules/lodash/_Stack.js create mode 100644 node_modules/lodash/_Symbol.js create mode 100644 node_modules/lodash/_Uint8Array.js create mode 100644 node_modules/lodash/_WeakMap.js create mode 100644 node_modules/lodash/_apply.js create mode 100644 node_modules/lodash/_arrayAggregator.js create mode 100644 node_modules/lodash/_arrayEach.js create mode 100644 node_modules/lodash/_arrayEachRight.js create mode 100644 node_modules/lodash/_arrayEvery.js create mode 100644 node_modules/lodash/_arrayFilter.js create mode 100644 node_modules/lodash/_arrayIncludes.js create mode 100644 node_modules/lodash/_arrayIncludesWith.js create mode 100644 node_modules/lodash/_arrayLikeKeys.js create mode 100644 node_modules/lodash/_arrayMap.js create mode 100644 node_modules/lodash/_arrayPush.js create mode 100644 node_modules/lodash/_arrayReduce.js create mode 100644 node_modules/lodash/_arrayReduceRight.js create mode 100644 node_modules/lodash/_arraySample.js create mode 100644 node_modules/lodash/_arraySampleSize.js create mode 100644 node_modules/lodash/_arrayShuffle.js create mode 100644 node_modules/lodash/_arraySome.js create mode 100644 node_modules/lodash/_asciiSize.js create mode 100644 node_modules/lodash/_asciiToArray.js create mode 100644 node_modules/lodash/_asciiWords.js create mode 100644 node_modules/lodash/_assignMergeValue.js create mode 100644 node_modules/lodash/_assignValue.js create mode 100644 node_modules/lodash/_assocIndexOf.js create mode 100644 node_modules/lodash/_baseAggregator.js create mode 100644 node_modules/lodash/_baseAssign.js create mode 100644 node_modules/lodash/_baseAssignIn.js create mode 100644 node_modules/lodash/_baseAssignValue.js create mode 100644 node_modules/lodash/_baseAt.js create mode 100644 node_modules/lodash/_baseClamp.js create mode 100644 node_modules/lodash/_baseClone.js create mode 100644 node_modules/lodash/_baseConforms.js create mode 100644 node_modules/lodash/_baseConformsTo.js create mode 100644 node_modules/lodash/_baseCreate.js create mode 100644 node_modules/lodash/_baseDelay.js create mode 100644 node_modules/lodash/_baseDifference.js create mode 100644 node_modules/lodash/_baseEach.js create mode 100644 node_modules/lodash/_baseEachRight.js create mode 100644 node_modules/lodash/_baseEvery.js create mode 100644 node_modules/lodash/_baseExtremum.js create mode 100644 node_modules/lodash/_baseFill.js create mode 100644 node_modules/lodash/_baseFilter.js create mode 100644 node_modules/lodash/_baseFindIndex.js create mode 100644 node_modules/lodash/_baseFindKey.js create mode 100644 node_modules/lodash/_baseFlatten.js create mode 100644 node_modules/lodash/_baseFor.js create mode 100644 node_modules/lodash/_baseForOwn.js create mode 100644 node_modules/lodash/_baseForOwnRight.js create mode 100644 node_modules/lodash/_baseForRight.js create mode 100644 node_modules/lodash/_baseFunctions.js create mode 100644 node_modules/lodash/_baseGet.js create mode 100644 node_modules/lodash/_baseGetAllKeys.js create mode 100644 node_modules/lodash/_baseGetTag.js create mode 100644 node_modules/lodash/_baseGt.js create mode 100644 node_modules/lodash/_baseHas.js create mode 100644 node_modules/lodash/_baseHasIn.js create mode 100644 node_modules/lodash/_baseInRange.js create mode 100644 node_modules/lodash/_baseIndexOf.js create mode 100644 node_modules/lodash/_baseIndexOfWith.js create mode 100644 node_modules/lodash/_baseIntersection.js create mode 100644 node_modules/lodash/_baseInverter.js create mode 100644 node_modules/lodash/_baseInvoke.js create mode 100644 node_modules/lodash/_baseIsArguments.js create mode 100644 node_modules/lodash/_baseIsArrayBuffer.js create mode 100644 node_modules/lodash/_baseIsDate.js create mode 100644 node_modules/lodash/_baseIsEqual.js create mode 100644 node_modules/lodash/_baseIsEqualDeep.js create mode 100644 node_modules/lodash/_baseIsMap.js create mode 100644 node_modules/lodash/_baseIsMatch.js create mode 100644 node_modules/lodash/_baseIsNaN.js create mode 100644 node_modules/lodash/_baseIsNative.js create mode 100644 node_modules/lodash/_baseIsRegExp.js create mode 100644 node_modules/lodash/_baseIsSet.js create mode 100644 node_modules/lodash/_baseIsTypedArray.js create mode 100644 node_modules/lodash/_baseIteratee.js create mode 100644 node_modules/lodash/_baseKeys.js create mode 100644 node_modules/lodash/_baseKeysIn.js create mode 100644 node_modules/lodash/_baseLodash.js create mode 100644 node_modules/lodash/_baseLt.js create mode 100644 node_modules/lodash/_baseMap.js create mode 100644 node_modules/lodash/_baseMatches.js create mode 100644 node_modules/lodash/_baseMatchesProperty.js create mode 100644 node_modules/lodash/_baseMean.js create mode 100644 node_modules/lodash/_baseMerge.js create mode 100644 node_modules/lodash/_baseMergeDeep.js create mode 100644 node_modules/lodash/_baseNth.js create mode 100644 node_modules/lodash/_baseOrderBy.js create mode 100644 node_modules/lodash/_basePick.js create mode 100644 node_modules/lodash/_basePickBy.js create mode 100644 node_modules/lodash/_baseProperty.js create mode 100644 node_modules/lodash/_basePropertyDeep.js create mode 100644 node_modules/lodash/_basePropertyOf.js create mode 100644 node_modules/lodash/_basePullAll.js create mode 100644 node_modules/lodash/_basePullAt.js create mode 100644 node_modules/lodash/_baseRandom.js create mode 100644 node_modules/lodash/_baseRange.js create mode 100644 node_modules/lodash/_baseReduce.js create mode 100644 node_modules/lodash/_baseRepeat.js create mode 100644 node_modules/lodash/_baseRest.js create mode 100644 node_modules/lodash/_baseSample.js create mode 100644 node_modules/lodash/_baseSampleSize.js create mode 100644 node_modules/lodash/_baseSet.js create mode 100644 node_modules/lodash/_baseSetData.js create mode 100644 node_modules/lodash/_baseSetToString.js create mode 100644 node_modules/lodash/_baseShuffle.js create mode 100644 node_modules/lodash/_baseSlice.js create mode 100644 node_modules/lodash/_baseSome.js create mode 100644 node_modules/lodash/_baseSortBy.js create mode 100644 node_modules/lodash/_baseSortedIndex.js create mode 100644 node_modules/lodash/_baseSortedIndexBy.js create mode 100644 node_modules/lodash/_baseSortedUniq.js create mode 100644 node_modules/lodash/_baseSum.js create mode 100644 node_modules/lodash/_baseTimes.js create mode 100644 node_modules/lodash/_baseToNumber.js create mode 100644 node_modules/lodash/_baseToPairs.js create mode 100644 node_modules/lodash/_baseToString.js create mode 100644 node_modules/lodash/_baseUnary.js create mode 100644 node_modules/lodash/_baseUniq.js create mode 100644 node_modules/lodash/_baseUnset.js create mode 100644 node_modules/lodash/_baseUpdate.js create mode 100644 node_modules/lodash/_baseValues.js create mode 100644 node_modules/lodash/_baseWhile.js create mode 100644 node_modules/lodash/_baseWrapperValue.js create mode 100644 node_modules/lodash/_baseXor.js create mode 100644 node_modules/lodash/_baseZipObject.js create mode 100644 node_modules/lodash/_cacheHas.js create mode 100644 node_modules/lodash/_castArrayLikeObject.js create mode 100644 node_modules/lodash/_castFunction.js create mode 100644 node_modules/lodash/_castPath.js create mode 100644 node_modules/lodash/_castRest.js create mode 100644 node_modules/lodash/_castSlice.js create mode 100644 node_modules/lodash/_charsEndIndex.js create mode 100644 node_modules/lodash/_charsStartIndex.js create mode 100644 node_modules/lodash/_cloneArrayBuffer.js create mode 100644 node_modules/lodash/_cloneBuffer.js create mode 100644 node_modules/lodash/_cloneDataView.js create mode 100644 node_modules/lodash/_cloneRegExp.js create mode 100644 node_modules/lodash/_cloneSymbol.js create mode 100644 node_modules/lodash/_cloneTypedArray.js create mode 100644 node_modules/lodash/_compareAscending.js create mode 100644 node_modules/lodash/_compareMultiple.js create mode 100644 node_modules/lodash/_composeArgs.js create mode 100644 node_modules/lodash/_composeArgsRight.js create mode 100644 node_modules/lodash/_copyArray.js create mode 100644 node_modules/lodash/_copyObject.js create mode 100644 node_modules/lodash/_copySymbols.js create mode 100644 node_modules/lodash/_copySymbolsIn.js create mode 100644 node_modules/lodash/_coreJsData.js create mode 100644 node_modules/lodash/_countHolders.js create mode 100644 node_modules/lodash/_createAggregator.js create mode 100644 node_modules/lodash/_createAssigner.js create mode 100644 node_modules/lodash/_createBaseEach.js create mode 100644 node_modules/lodash/_createBaseFor.js create mode 100644 node_modules/lodash/_createBind.js create mode 100644 node_modules/lodash/_createCaseFirst.js create mode 100644 node_modules/lodash/_createCompounder.js create mode 100644 node_modules/lodash/_createCtor.js create mode 100644 node_modules/lodash/_createCurry.js create mode 100644 node_modules/lodash/_createFind.js create mode 100644 node_modules/lodash/_createFlow.js create mode 100644 node_modules/lodash/_createHybrid.js create mode 100644 node_modules/lodash/_createInverter.js create mode 100644 node_modules/lodash/_createMathOperation.js create mode 100644 node_modules/lodash/_createOver.js create mode 100644 node_modules/lodash/_createPadding.js create mode 100644 node_modules/lodash/_createPartial.js create mode 100644 node_modules/lodash/_createRange.js create mode 100644 node_modules/lodash/_createRecurry.js create mode 100644 node_modules/lodash/_createRelationalOperation.js create mode 100644 node_modules/lodash/_createRound.js create mode 100644 node_modules/lodash/_createSet.js create mode 100644 node_modules/lodash/_createToPairs.js create mode 100644 node_modules/lodash/_createWrap.js create mode 100644 node_modules/lodash/_customDefaultsAssignIn.js create mode 100644 node_modules/lodash/_customDefaultsMerge.js create mode 100644 node_modules/lodash/_customOmitClone.js create mode 100644 node_modules/lodash/_deburrLetter.js create mode 100644 node_modules/lodash/_defineProperty.js create mode 100644 node_modules/lodash/_equalArrays.js create mode 100644 node_modules/lodash/_equalByTag.js create mode 100644 node_modules/lodash/_equalObjects.js create mode 100644 node_modules/lodash/_escapeHtmlChar.js create mode 100644 node_modules/lodash/_escapeStringChar.js create mode 100644 node_modules/lodash/_flatRest.js create mode 100644 node_modules/lodash/_freeGlobal.js create mode 100644 node_modules/lodash/_getAllKeys.js create mode 100644 node_modules/lodash/_getAllKeysIn.js create mode 100644 node_modules/lodash/_getData.js create mode 100644 node_modules/lodash/_getFuncName.js create mode 100644 node_modules/lodash/_getHolder.js create mode 100644 node_modules/lodash/_getMapData.js create mode 100644 node_modules/lodash/_getMatchData.js create mode 100644 node_modules/lodash/_getNative.js create mode 100644 node_modules/lodash/_getPrototype.js create mode 100644 node_modules/lodash/_getRawTag.js create mode 100644 node_modules/lodash/_getSymbols.js create mode 100644 node_modules/lodash/_getSymbolsIn.js create mode 100644 node_modules/lodash/_getTag.js create mode 100644 node_modules/lodash/_getValue.js create mode 100644 node_modules/lodash/_getView.js create mode 100644 node_modules/lodash/_getWrapDetails.js create mode 100644 node_modules/lodash/_hasPath.js create mode 100644 node_modules/lodash/_hasUnicode.js create mode 100644 node_modules/lodash/_hasUnicodeWord.js create mode 100644 node_modules/lodash/_hashClear.js create mode 100644 node_modules/lodash/_hashDelete.js create mode 100644 node_modules/lodash/_hashGet.js create mode 100644 node_modules/lodash/_hashHas.js create mode 100644 node_modules/lodash/_hashSet.js create mode 100644 node_modules/lodash/_initCloneArray.js create mode 100644 node_modules/lodash/_initCloneByTag.js create mode 100644 node_modules/lodash/_initCloneObject.js create mode 100644 node_modules/lodash/_insertWrapDetails.js create mode 100644 node_modules/lodash/_isFlattenable.js create mode 100644 node_modules/lodash/_isIndex.js create mode 100644 node_modules/lodash/_isIterateeCall.js create mode 100644 node_modules/lodash/_isKey.js create mode 100644 node_modules/lodash/_isKeyable.js create mode 100644 node_modules/lodash/_isLaziable.js create mode 100644 node_modules/lodash/_isMaskable.js create mode 100644 node_modules/lodash/_isMasked.js create mode 100644 node_modules/lodash/_isPrototype.js create mode 100644 node_modules/lodash/_isStrictComparable.js create mode 100644 node_modules/lodash/_iteratorToArray.js create mode 100644 node_modules/lodash/_lazyClone.js create mode 100644 node_modules/lodash/_lazyReverse.js create mode 100644 node_modules/lodash/_lazyValue.js create mode 100644 node_modules/lodash/_listCacheClear.js create mode 100644 node_modules/lodash/_listCacheDelete.js create mode 100644 node_modules/lodash/_listCacheGet.js create mode 100644 node_modules/lodash/_listCacheHas.js create mode 100644 node_modules/lodash/_listCacheSet.js create mode 100644 node_modules/lodash/_mapCacheClear.js create mode 100644 node_modules/lodash/_mapCacheDelete.js create mode 100644 node_modules/lodash/_mapCacheGet.js create mode 100644 node_modules/lodash/_mapCacheHas.js create mode 100644 node_modules/lodash/_mapCacheSet.js create mode 100644 node_modules/lodash/_mapToArray.js create mode 100644 node_modules/lodash/_matchesStrictComparable.js create mode 100644 node_modules/lodash/_memoizeCapped.js create mode 100644 node_modules/lodash/_mergeData.js create mode 100644 node_modules/lodash/_metaMap.js create mode 100644 node_modules/lodash/_nativeCreate.js create mode 100644 node_modules/lodash/_nativeKeys.js create mode 100644 node_modules/lodash/_nativeKeysIn.js create mode 100644 node_modules/lodash/_nodeUtil.js create mode 100644 node_modules/lodash/_objectToString.js create mode 100644 node_modules/lodash/_overArg.js create mode 100644 node_modules/lodash/_overRest.js create mode 100644 node_modules/lodash/_parent.js create mode 100644 node_modules/lodash/_reEscape.js create mode 100644 node_modules/lodash/_reEvaluate.js create mode 100644 node_modules/lodash/_reInterpolate.js create mode 100644 node_modules/lodash/_realNames.js create mode 100644 node_modules/lodash/_reorder.js create mode 100644 node_modules/lodash/_replaceHolders.js create mode 100644 node_modules/lodash/_root.js create mode 100644 node_modules/lodash/_safeGet.js create mode 100644 node_modules/lodash/_setCacheAdd.js create mode 100644 node_modules/lodash/_setCacheHas.js create mode 100644 node_modules/lodash/_setData.js create mode 100644 node_modules/lodash/_setToArray.js create mode 100644 node_modules/lodash/_setToPairs.js create mode 100644 node_modules/lodash/_setToString.js create mode 100644 node_modules/lodash/_setWrapToString.js create mode 100644 node_modules/lodash/_shortOut.js create mode 100644 node_modules/lodash/_shuffleSelf.js create mode 100644 node_modules/lodash/_stackClear.js create mode 100644 node_modules/lodash/_stackDelete.js create mode 100644 node_modules/lodash/_stackGet.js create mode 100644 node_modules/lodash/_stackHas.js create mode 100644 node_modules/lodash/_stackSet.js create mode 100644 node_modules/lodash/_strictIndexOf.js create mode 100644 node_modules/lodash/_strictLastIndexOf.js create mode 100644 node_modules/lodash/_stringSize.js create mode 100644 node_modules/lodash/_stringToArray.js create mode 100644 node_modules/lodash/_stringToPath.js create mode 100644 node_modules/lodash/_toKey.js create mode 100644 node_modules/lodash/_toSource.js create mode 100644 node_modules/lodash/_unescapeHtmlChar.js create mode 100644 node_modules/lodash/_unicodeSize.js create mode 100644 node_modules/lodash/_unicodeToArray.js create mode 100644 node_modules/lodash/_unicodeWords.js create mode 100644 node_modules/lodash/_updateWrapDetails.js create mode 100644 node_modules/lodash/_wrapperClone.js create mode 100644 node_modules/lodash/add.js create mode 100644 node_modules/lodash/after.js create mode 100644 node_modules/lodash/array.js create mode 100644 node_modules/lodash/ary.js create mode 100644 node_modules/lodash/assign.js create mode 100644 node_modules/lodash/assignIn.js create mode 100644 node_modules/lodash/assignInWith.js create mode 100644 node_modules/lodash/assignWith.js create mode 100644 node_modules/lodash/at.js create mode 100644 node_modules/lodash/attempt.js create mode 100644 node_modules/lodash/before.js create mode 100644 node_modules/lodash/bind.js create mode 100644 node_modules/lodash/bindAll.js create mode 100644 node_modules/lodash/bindKey.js create mode 100644 node_modules/lodash/camelCase.js create mode 100644 node_modules/lodash/capitalize.js create mode 100644 node_modules/lodash/castArray.js create mode 100644 node_modules/lodash/ceil.js create mode 100644 node_modules/lodash/chain.js create mode 100644 node_modules/lodash/chunk.js create mode 100644 node_modules/lodash/clamp.js create mode 100644 node_modules/lodash/clone.js create mode 100644 node_modules/lodash/cloneDeep.js create mode 100644 node_modules/lodash/cloneDeepWith.js create mode 100644 node_modules/lodash/cloneWith.js create mode 100644 node_modules/lodash/collection.js create mode 100644 node_modules/lodash/commit.js create mode 100644 node_modules/lodash/compact.js create mode 100644 node_modules/lodash/concat.js create mode 100644 node_modules/lodash/cond.js create mode 100644 node_modules/lodash/conforms.js create mode 100644 node_modules/lodash/conformsTo.js create mode 100644 node_modules/lodash/constant.js create mode 100644 node_modules/lodash/core.js create mode 100644 node_modules/lodash/core.min.js create mode 100644 node_modules/lodash/countBy.js create mode 100644 node_modules/lodash/create.js create mode 100644 node_modules/lodash/curry.js create mode 100644 node_modules/lodash/curryRight.js create mode 100644 node_modules/lodash/date.js create mode 100644 node_modules/lodash/debounce.js create mode 100644 node_modules/lodash/deburr.js create mode 100644 node_modules/lodash/defaultTo.js create mode 100644 node_modules/lodash/defaults.js create mode 100644 node_modules/lodash/defaultsDeep.js create mode 100644 node_modules/lodash/defer.js create mode 100644 node_modules/lodash/delay.js create mode 100644 node_modules/lodash/difference.js create mode 100644 node_modules/lodash/differenceBy.js create mode 100644 node_modules/lodash/differenceWith.js create mode 100644 node_modules/lodash/divide.js create mode 100644 node_modules/lodash/drop.js create mode 100644 node_modules/lodash/dropRight.js create mode 100644 node_modules/lodash/dropRightWhile.js create mode 100644 node_modules/lodash/dropWhile.js create mode 100644 node_modules/lodash/each.js create mode 100644 node_modules/lodash/eachRight.js create mode 100644 node_modules/lodash/endsWith.js create mode 100644 node_modules/lodash/entries.js create mode 100644 node_modules/lodash/entriesIn.js create mode 100644 node_modules/lodash/eq.js create mode 100644 node_modules/lodash/escape.js create mode 100644 node_modules/lodash/escapeRegExp.js create mode 100644 node_modules/lodash/every.js create mode 100644 node_modules/lodash/extend.js create mode 100644 node_modules/lodash/extendWith.js create mode 100644 node_modules/lodash/fill.js create mode 100644 node_modules/lodash/filter.js create mode 100644 node_modules/lodash/find.js create mode 100644 node_modules/lodash/findIndex.js create mode 100644 node_modules/lodash/findKey.js create mode 100644 node_modules/lodash/findLast.js create mode 100644 node_modules/lodash/findLastIndex.js create mode 100644 node_modules/lodash/findLastKey.js create mode 100644 node_modules/lodash/first.js create mode 100644 node_modules/lodash/flatMap.js create mode 100644 node_modules/lodash/flatMapDeep.js create mode 100644 node_modules/lodash/flatMapDepth.js create mode 100644 node_modules/lodash/flatten.js create mode 100644 node_modules/lodash/flattenDeep.js create mode 100644 node_modules/lodash/flattenDepth.js create mode 100644 node_modules/lodash/flip.js create mode 100644 node_modules/lodash/floor.js create mode 100644 node_modules/lodash/flow.js create mode 100644 node_modules/lodash/flowRight.js create mode 100644 node_modules/lodash/forEach.js create mode 100644 node_modules/lodash/forEachRight.js create mode 100644 node_modules/lodash/forIn.js create mode 100644 node_modules/lodash/forInRight.js create mode 100644 node_modules/lodash/forOwn.js create mode 100644 node_modules/lodash/forOwnRight.js create mode 100644 node_modules/lodash/fp.js create mode 100644 node_modules/lodash/fp/F.js create mode 100644 node_modules/lodash/fp/T.js create mode 100644 node_modules/lodash/fp/__.js create mode 100644 node_modules/lodash/fp/_baseConvert.js create mode 100644 node_modules/lodash/fp/_convertBrowser.js create mode 100644 node_modules/lodash/fp/_falseOptions.js create mode 100644 node_modules/lodash/fp/_mapping.js create mode 100644 node_modules/lodash/fp/_util.js create mode 100644 node_modules/lodash/fp/add.js create mode 100644 node_modules/lodash/fp/after.js create mode 100644 node_modules/lodash/fp/all.js create mode 100644 node_modules/lodash/fp/allPass.js create mode 100644 node_modules/lodash/fp/always.js create mode 100644 node_modules/lodash/fp/any.js create mode 100644 node_modules/lodash/fp/anyPass.js create mode 100644 node_modules/lodash/fp/apply.js create mode 100644 node_modules/lodash/fp/array.js create mode 100644 node_modules/lodash/fp/ary.js create mode 100644 node_modules/lodash/fp/assign.js create mode 100644 node_modules/lodash/fp/assignAll.js create mode 100644 node_modules/lodash/fp/assignAllWith.js create mode 100644 node_modules/lodash/fp/assignIn.js create mode 100644 node_modules/lodash/fp/assignInAll.js create mode 100644 node_modules/lodash/fp/assignInAllWith.js create mode 100644 node_modules/lodash/fp/assignInWith.js create mode 100644 node_modules/lodash/fp/assignWith.js create mode 100644 node_modules/lodash/fp/assoc.js create mode 100644 node_modules/lodash/fp/assocPath.js create mode 100644 node_modules/lodash/fp/at.js create mode 100644 node_modules/lodash/fp/attempt.js create mode 100644 node_modules/lodash/fp/before.js create mode 100644 node_modules/lodash/fp/bind.js create mode 100644 node_modules/lodash/fp/bindAll.js create mode 100644 node_modules/lodash/fp/bindKey.js create mode 100644 node_modules/lodash/fp/camelCase.js create mode 100644 node_modules/lodash/fp/capitalize.js create mode 100644 node_modules/lodash/fp/castArray.js create mode 100644 node_modules/lodash/fp/ceil.js create mode 100644 node_modules/lodash/fp/chain.js create mode 100644 node_modules/lodash/fp/chunk.js create mode 100644 node_modules/lodash/fp/clamp.js create mode 100644 node_modules/lodash/fp/clone.js create mode 100644 node_modules/lodash/fp/cloneDeep.js create mode 100644 node_modules/lodash/fp/cloneDeepWith.js create mode 100644 node_modules/lodash/fp/cloneWith.js create mode 100644 node_modules/lodash/fp/collection.js create mode 100644 node_modules/lodash/fp/commit.js create mode 100644 node_modules/lodash/fp/compact.js create mode 100644 node_modules/lodash/fp/complement.js create mode 100644 node_modules/lodash/fp/compose.js create mode 100644 node_modules/lodash/fp/concat.js create mode 100644 node_modules/lodash/fp/cond.js create mode 100644 node_modules/lodash/fp/conforms.js create mode 100644 node_modules/lodash/fp/conformsTo.js create mode 100644 node_modules/lodash/fp/constant.js create mode 100644 node_modules/lodash/fp/contains.js create mode 100644 node_modules/lodash/fp/convert.js create mode 100644 node_modules/lodash/fp/countBy.js create mode 100644 node_modules/lodash/fp/create.js create mode 100644 node_modules/lodash/fp/curry.js create mode 100644 node_modules/lodash/fp/curryN.js create mode 100644 node_modules/lodash/fp/curryRight.js create mode 100644 node_modules/lodash/fp/curryRightN.js create mode 100644 node_modules/lodash/fp/date.js create mode 100644 node_modules/lodash/fp/debounce.js create mode 100644 node_modules/lodash/fp/deburr.js create mode 100644 node_modules/lodash/fp/defaultTo.js create mode 100644 node_modules/lodash/fp/defaults.js create mode 100644 node_modules/lodash/fp/defaultsAll.js create mode 100644 node_modules/lodash/fp/defaultsDeep.js create mode 100644 node_modules/lodash/fp/defaultsDeepAll.js create mode 100644 node_modules/lodash/fp/defer.js create mode 100644 node_modules/lodash/fp/delay.js create mode 100644 node_modules/lodash/fp/difference.js create mode 100644 node_modules/lodash/fp/differenceBy.js create mode 100644 node_modules/lodash/fp/differenceWith.js create mode 100644 node_modules/lodash/fp/dissoc.js create mode 100644 node_modules/lodash/fp/dissocPath.js create mode 100644 node_modules/lodash/fp/divide.js create mode 100644 node_modules/lodash/fp/drop.js create mode 100644 node_modules/lodash/fp/dropLast.js create mode 100644 node_modules/lodash/fp/dropLastWhile.js create mode 100644 node_modules/lodash/fp/dropRight.js create mode 100644 node_modules/lodash/fp/dropRightWhile.js create mode 100644 node_modules/lodash/fp/dropWhile.js create mode 100644 node_modules/lodash/fp/each.js create mode 100644 node_modules/lodash/fp/eachRight.js create mode 100644 node_modules/lodash/fp/endsWith.js create mode 100644 node_modules/lodash/fp/entries.js create mode 100644 node_modules/lodash/fp/entriesIn.js create mode 100644 node_modules/lodash/fp/eq.js create mode 100644 node_modules/lodash/fp/equals.js create mode 100644 node_modules/lodash/fp/escape.js create mode 100644 node_modules/lodash/fp/escapeRegExp.js create mode 100644 node_modules/lodash/fp/every.js create mode 100644 node_modules/lodash/fp/extend.js create mode 100644 node_modules/lodash/fp/extendAll.js create mode 100644 node_modules/lodash/fp/extendAllWith.js create mode 100644 node_modules/lodash/fp/extendWith.js create mode 100644 node_modules/lodash/fp/fill.js create mode 100644 node_modules/lodash/fp/filter.js create mode 100644 node_modules/lodash/fp/find.js create mode 100644 node_modules/lodash/fp/findFrom.js create mode 100644 node_modules/lodash/fp/findIndex.js create mode 100644 node_modules/lodash/fp/findIndexFrom.js create mode 100644 node_modules/lodash/fp/findKey.js create mode 100644 node_modules/lodash/fp/findLast.js create mode 100644 node_modules/lodash/fp/findLastFrom.js create mode 100644 node_modules/lodash/fp/findLastIndex.js create mode 100644 node_modules/lodash/fp/findLastIndexFrom.js create mode 100644 node_modules/lodash/fp/findLastKey.js create mode 100644 node_modules/lodash/fp/first.js create mode 100644 node_modules/lodash/fp/flatMap.js create mode 100644 node_modules/lodash/fp/flatMapDeep.js create mode 100644 node_modules/lodash/fp/flatMapDepth.js create mode 100644 node_modules/lodash/fp/flatten.js create mode 100644 node_modules/lodash/fp/flattenDeep.js create mode 100644 node_modules/lodash/fp/flattenDepth.js create mode 100644 node_modules/lodash/fp/flip.js create mode 100644 node_modules/lodash/fp/floor.js create mode 100644 node_modules/lodash/fp/flow.js create mode 100644 node_modules/lodash/fp/flowRight.js create mode 100644 node_modules/lodash/fp/forEach.js create mode 100644 node_modules/lodash/fp/forEachRight.js create mode 100644 node_modules/lodash/fp/forIn.js create mode 100644 node_modules/lodash/fp/forInRight.js create mode 100644 node_modules/lodash/fp/forOwn.js create mode 100644 node_modules/lodash/fp/forOwnRight.js create mode 100644 node_modules/lodash/fp/fromPairs.js create mode 100644 node_modules/lodash/fp/function.js create mode 100644 node_modules/lodash/fp/functions.js create mode 100644 node_modules/lodash/fp/functionsIn.js create mode 100644 node_modules/lodash/fp/get.js create mode 100644 node_modules/lodash/fp/getOr.js create mode 100644 node_modules/lodash/fp/groupBy.js create mode 100644 node_modules/lodash/fp/gt.js create mode 100644 node_modules/lodash/fp/gte.js create mode 100644 node_modules/lodash/fp/has.js create mode 100644 node_modules/lodash/fp/hasIn.js create mode 100644 node_modules/lodash/fp/head.js create mode 100644 node_modules/lodash/fp/identical.js create mode 100644 node_modules/lodash/fp/identity.js create mode 100644 node_modules/lodash/fp/inRange.js create mode 100644 node_modules/lodash/fp/includes.js create mode 100644 node_modules/lodash/fp/includesFrom.js create mode 100644 node_modules/lodash/fp/indexBy.js create mode 100644 node_modules/lodash/fp/indexOf.js create mode 100644 node_modules/lodash/fp/indexOfFrom.js create mode 100644 node_modules/lodash/fp/init.js create mode 100644 node_modules/lodash/fp/initial.js create mode 100644 node_modules/lodash/fp/intersection.js create mode 100644 node_modules/lodash/fp/intersectionBy.js create mode 100644 node_modules/lodash/fp/intersectionWith.js create mode 100644 node_modules/lodash/fp/invert.js create mode 100644 node_modules/lodash/fp/invertBy.js create mode 100644 node_modules/lodash/fp/invertObj.js create mode 100644 node_modules/lodash/fp/invoke.js create mode 100644 node_modules/lodash/fp/invokeArgs.js create mode 100644 node_modules/lodash/fp/invokeArgsMap.js create mode 100644 node_modules/lodash/fp/invokeMap.js create mode 100644 node_modules/lodash/fp/isArguments.js create mode 100644 node_modules/lodash/fp/isArray.js create mode 100644 node_modules/lodash/fp/isArrayBuffer.js create mode 100644 node_modules/lodash/fp/isArrayLike.js create mode 100644 node_modules/lodash/fp/isArrayLikeObject.js create mode 100644 node_modules/lodash/fp/isBoolean.js create mode 100644 node_modules/lodash/fp/isBuffer.js create mode 100644 node_modules/lodash/fp/isDate.js create mode 100644 node_modules/lodash/fp/isElement.js create mode 100644 node_modules/lodash/fp/isEmpty.js create mode 100644 node_modules/lodash/fp/isEqual.js create mode 100644 node_modules/lodash/fp/isEqualWith.js create mode 100644 node_modules/lodash/fp/isError.js create mode 100644 node_modules/lodash/fp/isFinite.js create mode 100644 node_modules/lodash/fp/isFunction.js create mode 100644 node_modules/lodash/fp/isInteger.js create mode 100644 node_modules/lodash/fp/isLength.js create mode 100644 node_modules/lodash/fp/isMap.js create mode 100644 node_modules/lodash/fp/isMatch.js create mode 100644 node_modules/lodash/fp/isMatchWith.js create mode 100644 node_modules/lodash/fp/isNaN.js create mode 100644 node_modules/lodash/fp/isNative.js create mode 100644 node_modules/lodash/fp/isNil.js create mode 100644 node_modules/lodash/fp/isNull.js create mode 100644 node_modules/lodash/fp/isNumber.js create mode 100644 node_modules/lodash/fp/isObject.js create mode 100644 node_modules/lodash/fp/isObjectLike.js create mode 100644 node_modules/lodash/fp/isPlainObject.js create mode 100644 node_modules/lodash/fp/isRegExp.js create mode 100644 node_modules/lodash/fp/isSafeInteger.js create mode 100644 node_modules/lodash/fp/isSet.js create mode 100644 node_modules/lodash/fp/isString.js create mode 100644 node_modules/lodash/fp/isSymbol.js create mode 100644 node_modules/lodash/fp/isTypedArray.js create mode 100644 node_modules/lodash/fp/isUndefined.js create mode 100644 node_modules/lodash/fp/isWeakMap.js create mode 100644 node_modules/lodash/fp/isWeakSet.js create mode 100644 node_modules/lodash/fp/iteratee.js create mode 100644 node_modules/lodash/fp/join.js create mode 100644 node_modules/lodash/fp/juxt.js create mode 100644 node_modules/lodash/fp/kebabCase.js create mode 100644 node_modules/lodash/fp/keyBy.js create mode 100644 node_modules/lodash/fp/keys.js create mode 100644 node_modules/lodash/fp/keysIn.js create mode 100644 node_modules/lodash/fp/lang.js create mode 100644 node_modules/lodash/fp/last.js create mode 100644 node_modules/lodash/fp/lastIndexOf.js create mode 100644 node_modules/lodash/fp/lastIndexOfFrom.js create mode 100644 node_modules/lodash/fp/lowerCase.js create mode 100644 node_modules/lodash/fp/lowerFirst.js create mode 100644 node_modules/lodash/fp/lt.js create mode 100644 node_modules/lodash/fp/lte.js create mode 100644 node_modules/lodash/fp/map.js create mode 100644 node_modules/lodash/fp/mapKeys.js create mode 100644 node_modules/lodash/fp/mapValues.js create mode 100644 node_modules/lodash/fp/matches.js create mode 100644 node_modules/lodash/fp/matchesProperty.js create mode 100644 node_modules/lodash/fp/math.js create mode 100644 node_modules/lodash/fp/max.js create mode 100644 node_modules/lodash/fp/maxBy.js create mode 100644 node_modules/lodash/fp/mean.js create mode 100644 node_modules/lodash/fp/meanBy.js create mode 100644 node_modules/lodash/fp/memoize.js create mode 100644 node_modules/lodash/fp/merge.js create mode 100644 node_modules/lodash/fp/mergeAll.js create mode 100644 node_modules/lodash/fp/mergeAllWith.js create mode 100644 node_modules/lodash/fp/mergeWith.js create mode 100644 node_modules/lodash/fp/method.js create mode 100644 node_modules/lodash/fp/methodOf.js create mode 100644 node_modules/lodash/fp/min.js create mode 100644 node_modules/lodash/fp/minBy.js create mode 100644 node_modules/lodash/fp/mixin.js create mode 100644 node_modules/lodash/fp/multiply.js create mode 100644 node_modules/lodash/fp/nAry.js create mode 100644 node_modules/lodash/fp/negate.js create mode 100644 node_modules/lodash/fp/next.js create mode 100644 node_modules/lodash/fp/noop.js create mode 100644 node_modules/lodash/fp/now.js create mode 100644 node_modules/lodash/fp/nth.js create mode 100644 node_modules/lodash/fp/nthArg.js create mode 100644 node_modules/lodash/fp/number.js create mode 100644 node_modules/lodash/fp/object.js create mode 100644 node_modules/lodash/fp/omit.js create mode 100644 node_modules/lodash/fp/omitAll.js create mode 100644 node_modules/lodash/fp/omitBy.js create mode 100644 node_modules/lodash/fp/once.js create mode 100644 node_modules/lodash/fp/orderBy.js create mode 100644 node_modules/lodash/fp/over.js create mode 100644 node_modules/lodash/fp/overArgs.js create mode 100644 node_modules/lodash/fp/overEvery.js create mode 100644 node_modules/lodash/fp/overSome.js create mode 100644 node_modules/lodash/fp/pad.js create mode 100644 node_modules/lodash/fp/padChars.js create mode 100644 node_modules/lodash/fp/padCharsEnd.js create mode 100644 node_modules/lodash/fp/padCharsStart.js create mode 100644 node_modules/lodash/fp/padEnd.js create mode 100644 node_modules/lodash/fp/padStart.js create mode 100644 node_modules/lodash/fp/parseInt.js create mode 100644 node_modules/lodash/fp/partial.js create mode 100644 node_modules/lodash/fp/partialRight.js create mode 100644 node_modules/lodash/fp/partition.js create mode 100644 node_modules/lodash/fp/path.js create mode 100644 node_modules/lodash/fp/pathEq.js create mode 100644 node_modules/lodash/fp/pathOr.js create mode 100644 node_modules/lodash/fp/paths.js create mode 100644 node_modules/lodash/fp/pick.js create mode 100644 node_modules/lodash/fp/pickAll.js create mode 100644 node_modules/lodash/fp/pickBy.js create mode 100644 node_modules/lodash/fp/pipe.js create mode 100644 node_modules/lodash/fp/placeholder.js create mode 100644 node_modules/lodash/fp/plant.js create mode 100644 node_modules/lodash/fp/pluck.js create mode 100644 node_modules/lodash/fp/prop.js create mode 100644 node_modules/lodash/fp/propEq.js create mode 100644 node_modules/lodash/fp/propOr.js create mode 100644 node_modules/lodash/fp/property.js create mode 100644 node_modules/lodash/fp/propertyOf.js create mode 100644 node_modules/lodash/fp/props.js create mode 100644 node_modules/lodash/fp/pull.js create mode 100644 node_modules/lodash/fp/pullAll.js create mode 100644 node_modules/lodash/fp/pullAllBy.js create mode 100644 node_modules/lodash/fp/pullAllWith.js create mode 100644 node_modules/lodash/fp/pullAt.js create mode 100644 node_modules/lodash/fp/random.js create mode 100644 node_modules/lodash/fp/range.js create mode 100644 node_modules/lodash/fp/rangeRight.js create mode 100644 node_modules/lodash/fp/rangeStep.js create mode 100644 node_modules/lodash/fp/rangeStepRight.js create mode 100644 node_modules/lodash/fp/rearg.js create mode 100644 node_modules/lodash/fp/reduce.js create mode 100644 node_modules/lodash/fp/reduceRight.js create mode 100644 node_modules/lodash/fp/reject.js create mode 100644 node_modules/lodash/fp/remove.js create mode 100644 node_modules/lodash/fp/repeat.js create mode 100644 node_modules/lodash/fp/replace.js create mode 100644 node_modules/lodash/fp/rest.js create mode 100644 node_modules/lodash/fp/restFrom.js create mode 100644 node_modules/lodash/fp/result.js create mode 100644 node_modules/lodash/fp/reverse.js create mode 100644 node_modules/lodash/fp/round.js create mode 100644 node_modules/lodash/fp/sample.js create mode 100644 node_modules/lodash/fp/sampleSize.js create mode 100644 node_modules/lodash/fp/seq.js create mode 100644 node_modules/lodash/fp/set.js create mode 100644 node_modules/lodash/fp/setWith.js create mode 100644 node_modules/lodash/fp/shuffle.js create mode 100644 node_modules/lodash/fp/size.js create mode 100644 node_modules/lodash/fp/slice.js create mode 100644 node_modules/lodash/fp/snakeCase.js create mode 100644 node_modules/lodash/fp/some.js create mode 100644 node_modules/lodash/fp/sortBy.js create mode 100644 node_modules/lodash/fp/sortedIndex.js create mode 100644 node_modules/lodash/fp/sortedIndexBy.js create mode 100644 node_modules/lodash/fp/sortedIndexOf.js create mode 100644 node_modules/lodash/fp/sortedLastIndex.js create mode 100644 node_modules/lodash/fp/sortedLastIndexBy.js create mode 100644 node_modules/lodash/fp/sortedLastIndexOf.js create mode 100644 node_modules/lodash/fp/sortedUniq.js create mode 100644 node_modules/lodash/fp/sortedUniqBy.js create mode 100644 node_modules/lodash/fp/split.js create mode 100644 node_modules/lodash/fp/spread.js create mode 100644 node_modules/lodash/fp/spreadFrom.js create mode 100644 node_modules/lodash/fp/startCase.js create mode 100644 node_modules/lodash/fp/startsWith.js create mode 100644 node_modules/lodash/fp/string.js create mode 100644 node_modules/lodash/fp/stubArray.js create mode 100644 node_modules/lodash/fp/stubFalse.js create mode 100644 node_modules/lodash/fp/stubObject.js create mode 100644 node_modules/lodash/fp/stubString.js create mode 100644 node_modules/lodash/fp/stubTrue.js create mode 100644 node_modules/lodash/fp/subtract.js create mode 100644 node_modules/lodash/fp/sum.js create mode 100644 node_modules/lodash/fp/sumBy.js create mode 100644 node_modules/lodash/fp/symmetricDifference.js create mode 100644 node_modules/lodash/fp/symmetricDifferenceBy.js create mode 100644 node_modules/lodash/fp/symmetricDifferenceWith.js create mode 100644 node_modules/lodash/fp/tail.js create mode 100644 node_modules/lodash/fp/take.js create mode 100644 node_modules/lodash/fp/takeLast.js create mode 100644 node_modules/lodash/fp/takeLastWhile.js create mode 100644 node_modules/lodash/fp/takeRight.js create mode 100644 node_modules/lodash/fp/takeRightWhile.js create mode 100644 node_modules/lodash/fp/takeWhile.js create mode 100644 node_modules/lodash/fp/tap.js create mode 100644 node_modules/lodash/fp/template.js create mode 100644 node_modules/lodash/fp/templateSettings.js create mode 100644 node_modules/lodash/fp/throttle.js create mode 100644 node_modules/lodash/fp/thru.js create mode 100644 node_modules/lodash/fp/times.js create mode 100644 node_modules/lodash/fp/toArray.js create mode 100644 node_modules/lodash/fp/toFinite.js create mode 100644 node_modules/lodash/fp/toInteger.js create mode 100644 node_modules/lodash/fp/toIterator.js create mode 100644 node_modules/lodash/fp/toJSON.js create mode 100644 node_modules/lodash/fp/toLength.js create mode 100644 node_modules/lodash/fp/toLower.js create mode 100644 node_modules/lodash/fp/toNumber.js create mode 100644 node_modules/lodash/fp/toPairs.js create mode 100644 node_modules/lodash/fp/toPairsIn.js create mode 100644 node_modules/lodash/fp/toPath.js create mode 100644 node_modules/lodash/fp/toPlainObject.js create mode 100644 node_modules/lodash/fp/toSafeInteger.js create mode 100644 node_modules/lodash/fp/toString.js create mode 100644 node_modules/lodash/fp/toUpper.js create mode 100644 node_modules/lodash/fp/transform.js create mode 100644 node_modules/lodash/fp/trim.js create mode 100644 node_modules/lodash/fp/trimChars.js create mode 100644 node_modules/lodash/fp/trimCharsEnd.js create mode 100644 node_modules/lodash/fp/trimCharsStart.js create mode 100644 node_modules/lodash/fp/trimEnd.js create mode 100644 node_modules/lodash/fp/trimStart.js create mode 100644 node_modules/lodash/fp/truncate.js create mode 100644 node_modules/lodash/fp/unapply.js create mode 100644 node_modules/lodash/fp/unary.js create mode 100644 node_modules/lodash/fp/unescape.js create mode 100644 node_modules/lodash/fp/union.js create mode 100644 node_modules/lodash/fp/unionBy.js create mode 100644 node_modules/lodash/fp/unionWith.js create mode 100644 node_modules/lodash/fp/uniq.js create mode 100644 node_modules/lodash/fp/uniqBy.js create mode 100644 node_modules/lodash/fp/uniqWith.js create mode 100644 node_modules/lodash/fp/uniqueId.js create mode 100644 node_modules/lodash/fp/unnest.js create mode 100644 node_modules/lodash/fp/unset.js create mode 100644 node_modules/lodash/fp/unzip.js create mode 100644 node_modules/lodash/fp/unzipWith.js create mode 100644 node_modules/lodash/fp/update.js create mode 100644 node_modules/lodash/fp/updateWith.js create mode 100644 node_modules/lodash/fp/upperCase.js create mode 100644 node_modules/lodash/fp/upperFirst.js create mode 100644 node_modules/lodash/fp/useWith.js create mode 100644 node_modules/lodash/fp/util.js create mode 100644 node_modules/lodash/fp/value.js create mode 100644 node_modules/lodash/fp/valueOf.js create mode 100644 node_modules/lodash/fp/values.js create mode 100644 node_modules/lodash/fp/valuesIn.js create mode 100644 node_modules/lodash/fp/where.js create mode 100644 node_modules/lodash/fp/whereEq.js create mode 100644 node_modules/lodash/fp/without.js create mode 100644 node_modules/lodash/fp/words.js create mode 100644 node_modules/lodash/fp/wrap.js create mode 100644 node_modules/lodash/fp/wrapperAt.js create mode 100644 node_modules/lodash/fp/wrapperChain.js create mode 100644 node_modules/lodash/fp/wrapperLodash.js create mode 100644 node_modules/lodash/fp/wrapperReverse.js create mode 100644 node_modules/lodash/fp/wrapperValue.js create mode 100644 node_modules/lodash/fp/xor.js create mode 100644 node_modules/lodash/fp/xorBy.js create mode 100644 node_modules/lodash/fp/xorWith.js create mode 100644 node_modules/lodash/fp/zip.js create mode 100644 node_modules/lodash/fp/zipAll.js create mode 100644 node_modules/lodash/fp/zipObj.js create mode 100644 node_modules/lodash/fp/zipObject.js create mode 100644 node_modules/lodash/fp/zipObjectDeep.js create mode 100644 node_modules/lodash/fp/zipWith.js create mode 100644 node_modules/lodash/fromPairs.js create mode 100644 node_modules/lodash/function.js create mode 100644 node_modules/lodash/functions.js create mode 100644 node_modules/lodash/functionsIn.js create mode 100644 node_modules/lodash/get.js create mode 100644 node_modules/lodash/groupBy.js create mode 100644 node_modules/lodash/gt.js create mode 100644 node_modules/lodash/gte.js create mode 100644 node_modules/lodash/has.js create mode 100644 node_modules/lodash/hasIn.js create mode 100644 node_modules/lodash/head.js create mode 100644 node_modules/lodash/identity.js create mode 100644 node_modules/lodash/inRange.js create mode 100644 node_modules/lodash/includes.js create mode 100644 node_modules/lodash/index.js create mode 100644 node_modules/lodash/indexOf.js create mode 100644 node_modules/lodash/initial.js create mode 100644 node_modules/lodash/intersection.js create mode 100644 node_modules/lodash/intersectionBy.js create mode 100644 node_modules/lodash/intersectionWith.js create mode 100644 node_modules/lodash/invert.js create mode 100644 node_modules/lodash/invertBy.js create mode 100644 node_modules/lodash/invoke.js create mode 100644 node_modules/lodash/invokeMap.js create mode 100644 node_modules/lodash/isArguments.js create mode 100644 node_modules/lodash/isArray.js create mode 100644 node_modules/lodash/isArrayBuffer.js create mode 100644 node_modules/lodash/isArrayLike.js create mode 100644 node_modules/lodash/isArrayLikeObject.js create mode 100644 node_modules/lodash/isBoolean.js create mode 100644 node_modules/lodash/isBuffer.js create mode 100644 node_modules/lodash/isDate.js create mode 100644 node_modules/lodash/isElement.js create mode 100644 node_modules/lodash/isEmpty.js create mode 100644 node_modules/lodash/isEqual.js create mode 100644 node_modules/lodash/isEqualWith.js create mode 100644 node_modules/lodash/isError.js create mode 100644 node_modules/lodash/isFinite.js create mode 100644 node_modules/lodash/isFunction.js create mode 100644 node_modules/lodash/isInteger.js create mode 100644 node_modules/lodash/isLength.js create mode 100644 node_modules/lodash/isMap.js create mode 100644 node_modules/lodash/isMatch.js create mode 100644 node_modules/lodash/isMatchWith.js create mode 100644 node_modules/lodash/isNaN.js create mode 100644 node_modules/lodash/isNative.js create mode 100644 node_modules/lodash/isNil.js create mode 100644 node_modules/lodash/isNull.js create mode 100644 node_modules/lodash/isNumber.js create mode 100644 node_modules/lodash/isObject.js create mode 100644 node_modules/lodash/isObjectLike.js create mode 100644 node_modules/lodash/isPlainObject.js create mode 100644 node_modules/lodash/isRegExp.js create mode 100644 node_modules/lodash/isSafeInteger.js create mode 100644 node_modules/lodash/isSet.js create mode 100644 node_modules/lodash/isString.js create mode 100644 node_modules/lodash/isSymbol.js create mode 100644 node_modules/lodash/isTypedArray.js create mode 100644 node_modules/lodash/isUndefined.js create mode 100644 node_modules/lodash/isWeakMap.js create mode 100644 node_modules/lodash/isWeakSet.js create mode 100644 node_modules/lodash/iteratee.js create mode 100644 node_modules/lodash/join.js create mode 100644 node_modules/lodash/kebabCase.js create mode 100644 node_modules/lodash/keyBy.js create mode 100644 node_modules/lodash/keys.js create mode 100644 node_modules/lodash/keysIn.js create mode 100644 node_modules/lodash/lang.js create mode 100644 node_modules/lodash/last.js create mode 100644 node_modules/lodash/lastIndexOf.js create mode 100644 node_modules/lodash/lodash.js create mode 100644 node_modules/lodash/lodash.min.js create mode 100644 node_modules/lodash/lowerCase.js create mode 100644 node_modules/lodash/lowerFirst.js create mode 100644 node_modules/lodash/lt.js create mode 100644 node_modules/lodash/lte.js create mode 100644 node_modules/lodash/map.js create mode 100644 node_modules/lodash/mapKeys.js create mode 100644 node_modules/lodash/mapValues.js create mode 100644 node_modules/lodash/matches.js create mode 100644 node_modules/lodash/matchesProperty.js create mode 100644 node_modules/lodash/math.js create mode 100644 node_modules/lodash/max.js create mode 100644 node_modules/lodash/maxBy.js create mode 100644 node_modules/lodash/mean.js create mode 100644 node_modules/lodash/meanBy.js create mode 100644 node_modules/lodash/memoize.js create mode 100644 node_modules/lodash/merge.js create mode 100644 node_modules/lodash/mergeWith.js create mode 100644 node_modules/lodash/method.js create mode 100644 node_modules/lodash/methodOf.js create mode 100644 node_modules/lodash/min.js create mode 100644 node_modules/lodash/minBy.js create mode 100644 node_modules/lodash/mixin.js create mode 100644 node_modules/lodash/multiply.js create mode 100644 node_modules/lodash/negate.js create mode 100644 node_modules/lodash/next.js create mode 100644 node_modules/lodash/noop.js create mode 100644 node_modules/lodash/now.js create mode 100644 node_modules/lodash/nth.js create mode 100644 node_modules/lodash/nthArg.js create mode 100644 node_modules/lodash/number.js create mode 100644 node_modules/lodash/object.js create mode 100644 node_modules/lodash/omit.js create mode 100644 node_modules/lodash/omitBy.js create mode 100644 node_modules/lodash/once.js create mode 100644 node_modules/lodash/orderBy.js create mode 100644 node_modules/lodash/over.js create mode 100644 node_modules/lodash/overArgs.js create mode 100644 node_modules/lodash/overEvery.js create mode 100644 node_modules/lodash/overSome.js create mode 100644 node_modules/lodash/package.json create mode 100644 node_modules/lodash/pad.js create mode 100644 node_modules/lodash/padEnd.js create mode 100644 node_modules/lodash/padStart.js create mode 100644 node_modules/lodash/parseInt.js create mode 100644 node_modules/lodash/partial.js create mode 100644 node_modules/lodash/partialRight.js create mode 100644 node_modules/lodash/partition.js create mode 100644 node_modules/lodash/pick.js create mode 100644 node_modules/lodash/pickBy.js create mode 100644 node_modules/lodash/plant.js create mode 100644 node_modules/lodash/property.js create mode 100644 node_modules/lodash/propertyOf.js create mode 100644 node_modules/lodash/pull.js create mode 100644 node_modules/lodash/pullAll.js create mode 100644 node_modules/lodash/pullAllBy.js create mode 100644 node_modules/lodash/pullAllWith.js create mode 100644 node_modules/lodash/pullAt.js create mode 100644 node_modules/lodash/random.js create mode 100644 node_modules/lodash/range.js create mode 100644 node_modules/lodash/rangeRight.js create mode 100644 node_modules/lodash/rearg.js create mode 100644 node_modules/lodash/reduce.js create mode 100644 node_modules/lodash/reduceRight.js create mode 100644 node_modules/lodash/reject.js create mode 100644 node_modules/lodash/remove.js create mode 100644 node_modules/lodash/repeat.js create mode 100644 node_modules/lodash/replace.js create mode 100644 node_modules/lodash/rest.js create mode 100644 node_modules/lodash/result.js create mode 100644 node_modules/lodash/reverse.js create mode 100644 node_modules/lodash/round.js create mode 100644 node_modules/lodash/sample.js create mode 100644 node_modules/lodash/sampleSize.js create mode 100644 node_modules/lodash/seq.js create mode 100644 node_modules/lodash/set.js create mode 100644 node_modules/lodash/setWith.js create mode 100644 node_modules/lodash/shuffle.js create mode 100644 node_modules/lodash/size.js create mode 100644 node_modules/lodash/slice.js create mode 100644 node_modules/lodash/snakeCase.js create mode 100644 node_modules/lodash/some.js create mode 100644 node_modules/lodash/sortBy.js create mode 100644 node_modules/lodash/sortedIndex.js create mode 100644 node_modules/lodash/sortedIndexBy.js create mode 100644 node_modules/lodash/sortedIndexOf.js create mode 100644 node_modules/lodash/sortedLastIndex.js create mode 100644 node_modules/lodash/sortedLastIndexBy.js create mode 100644 node_modules/lodash/sortedLastIndexOf.js create mode 100644 node_modules/lodash/sortedUniq.js create mode 100644 node_modules/lodash/sortedUniqBy.js create mode 100644 node_modules/lodash/split.js create mode 100644 node_modules/lodash/spread.js create mode 100644 node_modules/lodash/startCase.js create mode 100644 node_modules/lodash/startsWith.js create mode 100644 node_modules/lodash/string.js create mode 100644 node_modules/lodash/stubArray.js create mode 100644 node_modules/lodash/stubFalse.js create mode 100644 node_modules/lodash/stubObject.js create mode 100644 node_modules/lodash/stubString.js create mode 100644 node_modules/lodash/stubTrue.js create mode 100644 node_modules/lodash/subtract.js create mode 100644 node_modules/lodash/sum.js create mode 100644 node_modules/lodash/sumBy.js create mode 100644 node_modules/lodash/tail.js create mode 100644 node_modules/lodash/take.js create mode 100644 node_modules/lodash/takeRight.js create mode 100644 node_modules/lodash/takeRightWhile.js create mode 100644 node_modules/lodash/takeWhile.js create mode 100644 node_modules/lodash/tap.js create mode 100644 node_modules/lodash/template.js create mode 100644 node_modules/lodash/templateSettings.js create mode 100644 node_modules/lodash/throttle.js create mode 100644 node_modules/lodash/thru.js create mode 100644 node_modules/lodash/times.js create mode 100644 node_modules/lodash/toArray.js create mode 100644 node_modules/lodash/toFinite.js create mode 100644 node_modules/lodash/toInteger.js create mode 100644 node_modules/lodash/toIterator.js create mode 100644 node_modules/lodash/toJSON.js create mode 100644 node_modules/lodash/toLength.js create mode 100644 node_modules/lodash/toLower.js create mode 100644 node_modules/lodash/toNumber.js create mode 100644 node_modules/lodash/toPairs.js create mode 100644 node_modules/lodash/toPairsIn.js create mode 100644 node_modules/lodash/toPath.js create mode 100644 node_modules/lodash/toPlainObject.js create mode 100644 node_modules/lodash/toSafeInteger.js create mode 100644 node_modules/lodash/toString.js create mode 100644 node_modules/lodash/toUpper.js create mode 100644 node_modules/lodash/transform.js create mode 100644 node_modules/lodash/trim.js create mode 100644 node_modules/lodash/trimEnd.js create mode 100644 node_modules/lodash/trimStart.js create mode 100644 node_modules/lodash/truncate.js create mode 100644 node_modules/lodash/unary.js create mode 100644 node_modules/lodash/unescape.js create mode 100644 node_modules/lodash/union.js create mode 100644 node_modules/lodash/unionBy.js create mode 100644 node_modules/lodash/unionWith.js create mode 100644 node_modules/lodash/uniq.js create mode 100644 node_modules/lodash/uniqBy.js create mode 100644 node_modules/lodash/uniqWith.js create mode 100644 node_modules/lodash/uniqueId.js create mode 100644 node_modules/lodash/unset.js create mode 100644 node_modules/lodash/unzip.js create mode 100644 node_modules/lodash/unzipWith.js create mode 100644 node_modules/lodash/update.js create mode 100644 node_modules/lodash/updateWith.js create mode 100644 node_modules/lodash/upperCase.js create mode 100644 node_modules/lodash/upperFirst.js create mode 100644 node_modules/lodash/util.js create mode 100644 node_modules/lodash/value.js create mode 100644 node_modules/lodash/valueOf.js create mode 100644 node_modules/lodash/values.js create mode 100644 node_modules/lodash/valuesIn.js create mode 100644 node_modules/lodash/without.js create mode 100644 node_modules/lodash/words.js create mode 100644 node_modules/lodash/wrap.js create mode 100644 node_modules/lodash/wrapperAt.js create mode 100644 node_modules/lodash/wrapperChain.js create mode 100644 node_modules/lodash/wrapperLodash.js create mode 100644 node_modules/lodash/wrapperReverse.js create mode 100644 node_modules/lodash/wrapperValue.js create mode 100644 node_modules/lodash/xor.js create mode 100644 node_modules/lodash/xorBy.js create mode 100644 node_modules/lodash/xorWith.js create mode 100644 node_modules/lodash/zip.js create mode 100644 node_modules/lodash/zipObject.js create mode 100644 node_modules/lodash/zipObjectDeep.js create mode 100644 node_modules/lodash/zipWith.js create mode 100644 node_modules/lowercase-keys/index.js create mode 100644 node_modules/lowercase-keys/license create mode 100644 node_modules/lowercase-keys/package.json create mode 100644 node_modules/lowercase-keys/readme.md create mode 100644 node_modules/make-dir/index.d.ts create mode 100644 node_modules/make-dir/index.js create mode 100644 node_modules/make-dir/license create mode 100644 node_modules/make-dir/node_modules/.bin/semver create mode 100644 node_modules/make-dir/node_modules/.bin/semver.cmd create mode 100644 node_modules/make-dir/node_modules/.bin/semver.ps1 create mode 100644 node_modules/make-dir/node_modules/semver/CHANGELOG.md create mode 100644 node_modules/make-dir/node_modules/semver/LICENSE create mode 100644 node_modules/make-dir/node_modules/semver/README.md create mode 100644 node_modules/make-dir/node_modules/semver/bin/semver.js create mode 100644 node_modules/make-dir/node_modules/semver/package.json create mode 100644 node_modules/make-dir/node_modules/semver/range.bnf create mode 100644 node_modules/make-dir/node_modules/semver/semver.js create mode 100644 node_modules/make-dir/package.json create mode 100644 node_modules/make-dir/readme.md create mode 100644 node_modules/media-typer/HISTORY.md create mode 100644 node_modules/media-typer/LICENSE create mode 100644 node_modules/media-typer/README.md create mode 100644 node_modules/media-typer/index.js create mode 100644 node_modules/media-typer/package.json create mode 100644 node_modules/memory-pager/.travis.yml create mode 100644 node_modules/memory-pager/LICENSE create mode 100644 node_modules/memory-pager/README.md create mode 100644 node_modules/memory-pager/index.js create mode 100644 node_modules/memory-pager/package.json create mode 100644 node_modules/memory-pager/test.js create mode 100644 node_modules/merge-descriptors/HISTORY.md create mode 100644 node_modules/merge-descriptors/LICENSE create mode 100644 node_modules/merge-descriptors/README.md create mode 100644 node_modules/merge-descriptors/index.js create mode 100644 node_modules/merge-descriptors/package.json create mode 100644 node_modules/methods/HISTORY.md create mode 100644 node_modules/methods/LICENSE create mode 100644 node_modules/methods/README.md create mode 100644 node_modules/methods/index.js create mode 100644 node_modules/methods/package.json create mode 100644 node_modules/mime-db/HISTORY.md create mode 100644 node_modules/mime-db/LICENSE create mode 100644 node_modules/mime-db/README.md create mode 100644 node_modules/mime-db/db.json create mode 100644 node_modules/mime-db/index.js create mode 100644 node_modules/mime-db/package.json create mode 100644 node_modules/mime-types/HISTORY.md create mode 100644 node_modules/mime-types/LICENSE create mode 100644 node_modules/mime-types/README.md create mode 100644 node_modules/mime-types/index.js create mode 100644 node_modules/mime-types/package.json create mode 100644 node_modules/mime/.npmignore create mode 100644 node_modules/mime/CHANGELOG.md create mode 100644 node_modules/mime/LICENSE create mode 100644 node_modules/mime/README.md create mode 100644 node_modules/mime/cli.js create mode 100644 node_modules/mime/mime.js create mode 100644 node_modules/mime/package.json create mode 100644 node_modules/mime/src/build.js create mode 100644 node_modules/mime/src/test.js create mode 100644 node_modules/mime/types.json create mode 100644 node_modules/mimic-response/index.js create mode 100644 node_modules/mimic-response/license create mode 100644 node_modules/mimic-response/package.json create mode 100644 node_modules/mimic-response/readme.md create mode 100644 node_modules/minimatch/LICENSE create mode 100644 node_modules/minimatch/README.md create mode 100644 node_modules/minimatch/minimatch.js create mode 100644 node_modules/minimatch/package.json create mode 100644 node_modules/minimist/.travis.yml create mode 100644 node_modules/minimist/LICENSE create mode 100644 node_modules/minimist/example/parse.js create mode 100644 node_modules/minimist/index.js create mode 100644 node_modules/minimist/package.json create mode 100644 node_modules/minimist/readme.markdown create mode 100644 node_modules/minimist/test/all_bool.js create mode 100644 node_modules/minimist/test/bool.js create mode 100644 node_modules/minimist/test/dash.js create mode 100644 node_modules/minimist/test/default_bool.js create mode 100644 node_modules/minimist/test/dotted.js create mode 100644 node_modules/minimist/test/kv_short.js create mode 100644 node_modules/minimist/test/long.js create mode 100644 node_modules/minimist/test/num.js create mode 100644 node_modules/minimist/test/parse.js create mode 100644 node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/minimist/test/proto.js create mode 100644 node_modules/minimist/test/short.js create mode 100644 node_modules/minimist/test/stop_early.js create mode 100644 node_modules/minimist/test/unknown.js create mode 100644 node_modules/minimist/test/whitespace.js create mode 100644 node_modules/mongodb/HISTORY.md create mode 100644 node_modules/mongodb/LICENSE.md create mode 100644 node_modules/mongodb/README.md create mode 100644 node_modules/mongodb/index.js create mode 100644 node_modules/mongodb/lib/admin.js create mode 100644 node_modules/mongodb/lib/aggregation_cursor.js create mode 100644 node_modules/mongodb/lib/apm.js create mode 100644 node_modules/mongodb/lib/async/.eslintrc create mode 100644 node_modules/mongodb/lib/async/async_iterator.js create mode 100644 node_modules/mongodb/lib/bulk/common.js create mode 100644 node_modules/mongodb/lib/bulk/ordered.js create mode 100644 node_modules/mongodb/lib/bulk/unordered.js create mode 100644 node_modules/mongodb/lib/change_stream.js create mode 100644 node_modules/mongodb/lib/cmap/connection.js create mode 100644 node_modules/mongodb/lib/cmap/connection_pool.js create mode 100644 node_modules/mongodb/lib/cmap/errors.js create mode 100644 node_modules/mongodb/lib/cmap/events.js create mode 100644 node_modules/mongodb/lib/cmap/message_stream.js create mode 100644 node_modules/mongodb/lib/cmap/stream_description.js create mode 100644 node_modules/mongodb/lib/collection.js create mode 100644 node_modules/mongodb/lib/command_cursor.js create mode 100644 node_modules/mongodb/lib/constants.js create mode 100644 node_modules/mongodb/lib/core/auth/auth_provider.js create mode 100644 node_modules/mongodb/lib/core/auth/defaultAuthProviders.js create mode 100644 node_modules/mongodb/lib/core/auth/gssapi.js create mode 100644 node_modules/mongodb/lib/core/auth/mongo_credentials.js create mode 100644 node_modules/mongodb/lib/core/auth/mongocr.js create mode 100644 node_modules/mongodb/lib/core/auth/mongodb_aws.js create mode 100644 node_modules/mongodb/lib/core/auth/plain.js create mode 100644 node_modules/mongodb/lib/core/auth/scram.js create mode 100644 node_modules/mongodb/lib/core/auth/x509.js create mode 100644 node_modules/mongodb/lib/core/connection/apm.js create mode 100644 node_modules/mongodb/lib/core/connection/command_result.js create mode 100644 node_modules/mongodb/lib/core/connection/commands.js create mode 100644 node_modules/mongodb/lib/core/connection/connect.js create mode 100644 node_modules/mongodb/lib/core/connection/connection.js create mode 100644 node_modules/mongodb/lib/core/connection/logger.js create mode 100644 node_modules/mongodb/lib/core/connection/msg.js create mode 100644 node_modules/mongodb/lib/core/connection/pool.js create mode 100644 node_modules/mongodb/lib/core/connection/utils.js create mode 100644 node_modules/mongodb/lib/core/cursor.js create mode 100644 node_modules/mongodb/lib/core/error.js create mode 100644 node_modules/mongodb/lib/core/index.js create mode 100644 node_modules/mongodb/lib/core/sdam/common.js create mode 100644 node_modules/mongodb/lib/core/sdam/events.js create mode 100644 node_modules/mongodb/lib/core/sdam/monitor.js create mode 100644 node_modules/mongodb/lib/core/sdam/server.js create mode 100644 node_modules/mongodb/lib/core/sdam/server_description.js create mode 100644 node_modules/mongodb/lib/core/sdam/server_selection.js create mode 100644 node_modules/mongodb/lib/core/sdam/srv_polling.js create mode 100644 node_modules/mongodb/lib/core/sdam/topology.js create mode 100644 node_modules/mongodb/lib/core/sdam/topology_description.js create mode 100644 node_modules/mongodb/lib/core/sessions.js create mode 100644 node_modules/mongodb/lib/core/tools/smoke_plugin.js create mode 100644 node_modules/mongodb/lib/core/topologies/mongos.js create mode 100644 node_modules/mongodb/lib/core/topologies/read_preference.js create mode 100644 node_modules/mongodb/lib/core/topologies/replset.js create mode 100644 node_modules/mongodb/lib/core/topologies/replset_state.js create mode 100644 node_modules/mongodb/lib/core/topologies/server.js create mode 100644 node_modules/mongodb/lib/core/topologies/shared.js create mode 100644 node_modules/mongodb/lib/core/transactions.js create mode 100644 node_modules/mongodb/lib/core/uri_parser.js create mode 100644 node_modules/mongodb/lib/core/utils.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/command.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/compression.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/constants.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/get_more.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/index.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/kill_cursors.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/query.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/shared.js create mode 100644 node_modules/mongodb/lib/core/wireprotocol/write_command.js create mode 100644 node_modules/mongodb/lib/cursor.js create mode 100644 node_modules/mongodb/lib/db.js create mode 100644 node_modules/mongodb/lib/dynamic_loaders.js create mode 100644 node_modules/mongodb/lib/error.js create mode 100644 node_modules/mongodb/lib/gridfs-stream/download.js create mode 100644 node_modules/mongodb/lib/gridfs-stream/index.js create mode 100644 node_modules/mongodb/lib/gridfs-stream/upload.js create mode 100644 node_modules/mongodb/lib/gridfs/chunk.js create mode 100644 node_modules/mongodb/lib/gridfs/grid_store.js create mode 100644 node_modules/mongodb/lib/mongo_client.js create mode 100644 node_modules/mongodb/lib/operations/add_user.js create mode 100644 node_modules/mongodb/lib/operations/admin_ops.js create mode 100644 node_modules/mongodb/lib/operations/aggregate.js create mode 100644 node_modules/mongodb/lib/operations/bulk_write.js create mode 100644 node_modules/mongodb/lib/operations/collection_ops.js create mode 100644 node_modules/mongodb/lib/operations/collections.js create mode 100644 node_modules/mongodb/lib/operations/command.js create mode 100644 node_modules/mongodb/lib/operations/command_v2.js create mode 100644 node_modules/mongodb/lib/operations/common_functions.js create mode 100644 node_modules/mongodb/lib/operations/connect.js create mode 100644 node_modules/mongodb/lib/operations/count.js create mode 100644 node_modules/mongodb/lib/operations/count_documents.js create mode 100644 node_modules/mongodb/lib/operations/create_collection.js create mode 100644 node_modules/mongodb/lib/operations/create_indexes.js create mode 100644 node_modules/mongodb/lib/operations/cursor_ops.js create mode 100644 node_modules/mongodb/lib/operations/db_ops.js create mode 100644 node_modules/mongodb/lib/operations/delete_many.js create mode 100644 node_modules/mongodb/lib/operations/delete_one.js create mode 100644 node_modules/mongodb/lib/operations/distinct.js create mode 100644 node_modules/mongodb/lib/operations/drop.js create mode 100644 node_modules/mongodb/lib/operations/drop_index.js create mode 100644 node_modules/mongodb/lib/operations/drop_indexes.js create mode 100644 node_modules/mongodb/lib/operations/estimated_document_count.js create mode 100644 node_modules/mongodb/lib/operations/execute_db_admin_command.js create mode 100644 node_modules/mongodb/lib/operations/execute_operation.js create mode 100644 node_modules/mongodb/lib/operations/find.js create mode 100644 node_modules/mongodb/lib/operations/find_and_modify.js create mode 100644 node_modules/mongodb/lib/operations/find_one.js create mode 100644 node_modules/mongodb/lib/operations/find_one_and_delete.js create mode 100644 node_modules/mongodb/lib/operations/find_one_and_replace.js create mode 100644 node_modules/mongodb/lib/operations/find_one_and_update.js create mode 100644 node_modules/mongodb/lib/operations/geo_haystack_search.js create mode 100644 node_modules/mongodb/lib/operations/index_exists.js create mode 100644 node_modules/mongodb/lib/operations/index_information.js create mode 100644 node_modules/mongodb/lib/operations/indexes.js create mode 100644 node_modules/mongodb/lib/operations/insert_many.js create mode 100644 node_modules/mongodb/lib/operations/insert_one.js create mode 100644 node_modules/mongodb/lib/operations/is_capped.js create mode 100644 node_modules/mongodb/lib/operations/list_collections.js create mode 100644 node_modules/mongodb/lib/operations/list_databases.js create mode 100644 node_modules/mongodb/lib/operations/list_indexes.js create mode 100644 node_modules/mongodb/lib/operations/map_reduce.js create mode 100644 node_modules/mongodb/lib/operations/operation.js create mode 100644 node_modules/mongodb/lib/operations/options_operation.js create mode 100644 node_modules/mongodb/lib/operations/profiling_level.js create mode 100644 node_modules/mongodb/lib/operations/re_index.js create mode 100644 node_modules/mongodb/lib/operations/remove_user.js create mode 100644 node_modules/mongodb/lib/operations/rename.js create mode 100644 node_modules/mongodb/lib/operations/replace_one.js create mode 100644 node_modules/mongodb/lib/operations/run_command.js create mode 100644 node_modules/mongodb/lib/operations/set_profiling_level.js create mode 100644 node_modules/mongodb/lib/operations/stats.js create mode 100644 node_modules/mongodb/lib/operations/update_many.js create mode 100644 node_modules/mongodb/lib/operations/update_one.js create mode 100644 node_modules/mongodb/lib/operations/validate_collection.js create mode 100644 node_modules/mongodb/lib/read_concern.js create mode 100644 node_modules/mongodb/lib/topologies/mongos.js create mode 100644 node_modules/mongodb/lib/topologies/native_topology.js create mode 100644 node_modules/mongodb/lib/topologies/replset.js create mode 100644 node_modules/mongodb/lib/topologies/server.js create mode 100644 node_modules/mongodb/lib/topologies/topology_base.js create mode 100644 node_modules/mongodb/lib/url_parser.js create mode 100644 node_modules/mongodb/lib/utils.js create mode 100644 node_modules/mongodb/lib/write_concern.js create mode 100644 node_modules/mongodb/package.json create mode 100644 node_modules/mongoose-legacy-pluralize/LICENSE create mode 100644 node_modules/mongoose-legacy-pluralize/README.md create mode 100644 node_modules/mongoose-legacy-pluralize/index.js create mode 100644 node_modules/mongoose-legacy-pluralize/package.json create mode 100644 node_modules/mongoose/History.md create mode 100644 node_modules/mongoose/LICENSE.md create mode 100644 node_modules/mongoose/README.md create mode 100644 node_modules/mongoose/SECURITY.md create mode 100644 node_modules/mongoose/browser.js create mode 100644 node_modules/mongoose/build-browser.js create mode 100644 node_modules/mongoose/dist/browser.umd.js create mode 100644 node_modules/mongoose/index.js create mode 100644 node_modules/mongoose/lib/aggregate.js create mode 100644 node_modules/mongoose/lib/browser.js create mode 100644 node_modules/mongoose/lib/browserDocument.js create mode 100644 node_modules/mongoose/lib/cast.js create mode 100644 node_modules/mongoose/lib/cast/boolean.js create mode 100644 node_modules/mongoose/lib/cast/date.js create mode 100644 node_modules/mongoose/lib/cast/decimal128.js create mode 100644 node_modules/mongoose/lib/cast/number.js create mode 100644 node_modules/mongoose/lib/cast/objectid.js create mode 100644 node_modules/mongoose/lib/cast/string.js create mode 100644 node_modules/mongoose/lib/collection.js create mode 100644 node_modules/mongoose/lib/connection.js create mode 100644 node_modules/mongoose/lib/connectionstate.js create mode 100644 node_modules/mongoose/lib/cursor/AggregationCursor.js create mode 100644 node_modules/mongoose/lib/cursor/ChangeStream.js create mode 100644 node_modules/mongoose/lib/cursor/QueryCursor.js create mode 100644 node_modules/mongoose/lib/document.js create mode 100644 node_modules/mongoose/lib/document_provider.js create mode 100644 node_modules/mongoose/lib/driver.js create mode 100644 node_modules/mongoose/lib/drivers/SPEC.md create mode 100644 node_modules/mongoose/lib/drivers/browser/ReadPreference.js create mode 100644 node_modules/mongoose/lib/drivers/browser/binary.js create mode 100644 node_modules/mongoose/lib/drivers/browser/decimal128.js create mode 100644 node_modules/mongoose/lib/drivers/browser/index.js create mode 100644 node_modules/mongoose/lib/drivers/browser/objectid.js create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/ReadPreference.js create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/binary.js create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/decimal128.js create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/index.js create mode 100644 node_modules/mongoose/lib/drivers/node-mongodb-native/objectid.js create mode 100644 node_modules/mongoose/lib/error/browserMissingSchema.js create mode 100644 node_modules/mongoose/lib/error/cast.js create mode 100644 node_modules/mongoose/lib/error/disconnected.js create mode 100644 node_modules/mongoose/lib/error/divergentArray.js create mode 100644 node_modules/mongoose/lib/error/index.js create mode 100644 node_modules/mongoose/lib/error/messages.js create mode 100644 node_modules/mongoose/lib/error/missingSchema.js create mode 100644 node_modules/mongoose/lib/error/mongooseError.js create mode 100644 node_modules/mongoose/lib/error/notFound.js create mode 100644 node_modules/mongoose/lib/error/objectExpected.js create mode 100644 node_modules/mongoose/lib/error/objectParameter.js create mode 100644 node_modules/mongoose/lib/error/overwriteModel.js create mode 100644 node_modules/mongoose/lib/error/parallelSave.js create mode 100644 node_modules/mongoose/lib/error/parallelValidate.js create mode 100644 node_modules/mongoose/lib/error/serverSelection.js create mode 100644 node_modules/mongoose/lib/error/strict.js create mode 100644 node_modules/mongoose/lib/error/validation.js create mode 100644 node_modules/mongoose/lib/error/validator.js create mode 100644 node_modules/mongoose/lib/error/version.js create mode 100644 node_modules/mongoose/lib/helpers/aggregate/stringifyAccumulatorOptions.js create mode 100644 node_modules/mongoose/lib/helpers/arrayDepth.js create mode 100644 node_modules/mongoose/lib/helpers/clone.js create mode 100644 node_modules/mongoose/lib/helpers/common.js create mode 100644 node_modules/mongoose/lib/helpers/cursor/eachAsync.js create mode 100644 node_modules/mongoose/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js create mode 100644 node_modules/mongoose/lib/helpers/discriminator/getConstructor.js create mode 100644 node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js create mode 100644 node_modules/mongoose/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js create mode 100644 node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js create mode 100644 node_modules/mongoose/lib/helpers/document/compile.js create mode 100644 node_modules/mongoose/lib/helpers/document/getEmbeddedDiscriminatorPath.js create mode 100644 node_modules/mongoose/lib/helpers/document/handleSpreadDoc.js create mode 100644 node_modules/mongoose/lib/helpers/each.js create mode 100644 node_modules/mongoose/lib/helpers/get.js create mode 100644 node_modules/mongoose/lib/helpers/getDefaultBulkwriteResult.js create mode 100644 node_modules/mongoose/lib/helpers/getFunctionName.js create mode 100644 node_modules/mongoose/lib/helpers/immediate.js create mode 100644 node_modules/mongoose/lib/helpers/indexes/isDefaultIdIndex.js create mode 100644 node_modules/mongoose/lib/helpers/indexes/isIndexEqual.js create mode 100644 node_modules/mongoose/lib/helpers/isBsonType.js create mode 100644 node_modules/mongoose/lib/helpers/isMongooseObject.js create mode 100644 node_modules/mongoose/lib/helpers/isObject.js create mode 100644 node_modules/mongoose/lib/helpers/isPromise.js create mode 100644 node_modules/mongoose/lib/helpers/model/applyHooks.js create mode 100644 node_modules/mongoose/lib/helpers/model/applyMethods.js create mode 100644 node_modules/mongoose/lib/helpers/model/applyStaticHooks.js create mode 100644 node_modules/mongoose/lib/helpers/model/applyStatics.js create mode 100644 node_modules/mongoose/lib/helpers/model/castBulkWrite.js create mode 100644 node_modules/mongoose/lib/helpers/model/discriminator.js create mode 100644 node_modules/mongoose/lib/helpers/once.js create mode 100644 node_modules/mongoose/lib/helpers/parallelLimit.js create mode 100644 node_modules/mongoose/lib/helpers/populate/SkipPopulateValue.js create mode 100644 node_modules/mongoose/lib/helpers/populate/assignRawDocsToIdStructure.js create mode 100644 node_modules/mongoose/lib/helpers/populate/assignVals.js create mode 100644 node_modules/mongoose/lib/helpers/populate/getModelsMapForPopulate.js create mode 100644 node_modules/mongoose/lib/helpers/populate/getSchemaTypes.js create mode 100644 node_modules/mongoose/lib/helpers/populate/getVirtual.js create mode 100644 node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js create mode 100644 node_modules/mongoose/lib/helpers/populate/lookupLocalFields.js create mode 100644 node_modules/mongoose/lib/helpers/populate/normalizeRefPath.js create mode 100644 node_modules/mongoose/lib/helpers/populate/removeDeselectedForeignField.js create mode 100644 node_modules/mongoose/lib/helpers/populate/validateRef.js create mode 100644 node_modules/mongoose/lib/helpers/printJestWarning.js create mode 100644 node_modules/mongoose/lib/helpers/projection/isDefiningProjection.js create mode 100644 node_modules/mongoose/lib/helpers/projection/isExclusive.js create mode 100644 node_modules/mongoose/lib/helpers/projection/isInclusive.js create mode 100644 node_modules/mongoose/lib/helpers/projection/isPathExcluded.js create mode 100644 node_modules/mongoose/lib/helpers/projection/isPathSelectedInclusive.js create mode 100644 node_modules/mongoose/lib/helpers/projection/parseProjection.js create mode 100644 node_modules/mongoose/lib/helpers/promiseOrCallback.js create mode 100644 node_modules/mongoose/lib/helpers/query/applyGlobalMaxTimeMS.js create mode 100644 node_modules/mongoose/lib/helpers/query/applyQueryMiddleware.js create mode 100644 node_modules/mongoose/lib/helpers/query/castFilterPath.js create mode 100644 node_modules/mongoose/lib/helpers/query/castUpdate.js create mode 100644 node_modules/mongoose/lib/helpers/query/completeMany.js create mode 100644 node_modules/mongoose/lib/helpers/query/getEmbeddedDiscriminatorPath.js create mode 100644 node_modules/mongoose/lib/helpers/query/handleImmutable.js create mode 100644 node_modules/mongoose/lib/helpers/query/hasDollarKeys.js create mode 100644 node_modules/mongoose/lib/helpers/query/isOperator.js create mode 100644 node_modules/mongoose/lib/helpers/query/selectPopulatedFields.js create mode 100644 node_modules/mongoose/lib/helpers/query/wrapThunk.js create mode 100644 node_modules/mongoose/lib/helpers/schema/addAutoId.js create mode 100644 node_modules/mongoose/lib/helpers/schema/applyPlugins.js create mode 100644 node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js create mode 100644 node_modules/mongoose/lib/helpers/schema/cleanPositionalOperators.js create mode 100644 node_modules/mongoose/lib/helpers/schema/getIndexes.js create mode 100644 node_modules/mongoose/lib/helpers/schema/getPath.js create mode 100644 node_modules/mongoose/lib/helpers/schema/handleIdOption.js create mode 100644 node_modules/mongoose/lib/helpers/schema/handleTimestampOption.js create mode 100644 node_modules/mongoose/lib/helpers/schema/merge.js create mode 100644 node_modules/mongoose/lib/helpers/schematype/handleImmutable.js create mode 100644 node_modules/mongoose/lib/helpers/setDefaultsOnInsert.js create mode 100644 node_modules/mongoose/lib/helpers/specialProperties.js create mode 100644 node_modules/mongoose/lib/helpers/symbols.js create mode 100644 node_modules/mongoose/lib/helpers/topology/allServersUnknown.js create mode 100644 node_modules/mongoose/lib/helpers/topology/isAtlas.js create mode 100644 node_modules/mongoose/lib/helpers/update/applyTimestampsToChildren.js create mode 100644 node_modules/mongoose/lib/helpers/update/applyTimestampsToUpdate.js create mode 100644 node_modules/mongoose/lib/helpers/update/castArrayFilters.js create mode 100644 node_modules/mongoose/lib/helpers/update/modifiedPaths.js create mode 100644 node_modules/mongoose/lib/helpers/update/moveImmutableProperties.js create mode 100644 node_modules/mongoose/lib/helpers/updateValidators.js create mode 100644 node_modules/mongoose/lib/index.js create mode 100644 node_modules/mongoose/lib/internal.js create mode 100644 node_modules/mongoose/lib/model.js create mode 100644 node_modules/mongoose/lib/options.js create mode 100644 node_modules/mongoose/lib/options/PopulateOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaArrayOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaBufferOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaDateOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaDocumentArrayOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaMapOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaNumberOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaObjectIdOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaSingleNestedOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaStringOptions.js create mode 100644 node_modules/mongoose/lib/options/SchemaTypeOptions.js create mode 100644 node_modules/mongoose/lib/options/VirtualOptions.js create mode 100644 node_modules/mongoose/lib/options/propertyOptions.js create mode 100644 node_modules/mongoose/lib/options/removeOptions.js create mode 100644 node_modules/mongoose/lib/options/saveOptions.js create mode 100644 node_modules/mongoose/lib/plugins/idGetter.js create mode 100644 node_modules/mongoose/lib/plugins/removeSubdocs.js create mode 100644 node_modules/mongoose/lib/plugins/saveSubdocs.js create mode 100644 node_modules/mongoose/lib/plugins/sharding.js create mode 100644 node_modules/mongoose/lib/plugins/trackTransaction.js create mode 100644 node_modules/mongoose/lib/plugins/validateBeforeSave.js create mode 100644 node_modules/mongoose/lib/promise_provider.js create mode 100644 node_modules/mongoose/lib/query.js create mode 100644 node_modules/mongoose/lib/queryhelpers.js create mode 100644 node_modules/mongoose/lib/schema.js create mode 100644 node_modules/mongoose/lib/schema/SingleNestedPath.js create mode 100644 node_modules/mongoose/lib/schema/array.js create mode 100644 node_modules/mongoose/lib/schema/boolean.js create mode 100644 node_modules/mongoose/lib/schema/buffer.js create mode 100644 node_modules/mongoose/lib/schema/date.js create mode 100644 node_modules/mongoose/lib/schema/decimal128.js create mode 100644 node_modules/mongoose/lib/schema/documentarray.js create mode 100644 node_modules/mongoose/lib/schema/index.js create mode 100644 node_modules/mongoose/lib/schema/map.js create mode 100644 node_modules/mongoose/lib/schema/mixed.js create mode 100644 node_modules/mongoose/lib/schema/number.js create mode 100644 node_modules/mongoose/lib/schema/objectid.js create mode 100644 node_modules/mongoose/lib/schema/operators/bitwise.js create mode 100644 node_modules/mongoose/lib/schema/operators/exists.js create mode 100644 node_modules/mongoose/lib/schema/operators/geospatial.js create mode 100644 node_modules/mongoose/lib/schema/operators/helpers.js create mode 100644 node_modules/mongoose/lib/schema/operators/text.js create mode 100644 node_modules/mongoose/lib/schema/operators/type.js create mode 100644 node_modules/mongoose/lib/schema/string.js create mode 100644 node_modules/mongoose/lib/schema/symbols.js create mode 100644 node_modules/mongoose/lib/schematype.js create mode 100644 node_modules/mongoose/lib/statemachine.js create mode 100644 node_modules/mongoose/lib/types/array.js create mode 100644 node_modules/mongoose/lib/types/buffer.js create mode 100644 node_modules/mongoose/lib/types/core_array.js create mode 100644 node_modules/mongoose/lib/types/decimal128.js create mode 100644 node_modules/mongoose/lib/types/documentarray.js create mode 100644 node_modules/mongoose/lib/types/embedded.js create mode 100644 node_modules/mongoose/lib/types/index.js create mode 100644 node_modules/mongoose/lib/types/map.js create mode 100644 node_modules/mongoose/lib/types/objectid.js create mode 100644 node_modules/mongoose/lib/types/subdocument.js create mode 100644 node_modules/mongoose/lib/utils.js create mode 100644 node_modules/mongoose/lib/validoptions.js create mode 100644 node_modules/mongoose/lib/virtualtype.js create mode 100644 node_modules/mongoose/node_modules/ms/index.js create mode 100644 node_modules/mongoose/node_modules/ms/license.md create mode 100644 node_modules/mongoose/node_modules/ms/package.json create mode 100644 node_modules/mongoose/node_modules/ms/readme.md create mode 100644 node_modules/mongoose/node_modules/safe-buffer/LICENSE create mode 100644 node_modules/mongoose/node_modules/safe-buffer/README.md create mode 100644 node_modules/mongoose/node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/mongoose/node_modules/safe-buffer/index.js create mode 100644 node_modules/mongoose/node_modules/safe-buffer/package.json create mode 100644 node_modules/mongoose/package.json create mode 100644 node_modules/mongoose/tools/auth.js create mode 100644 node_modules/mongoose/tools/repl.js create mode 100644 node_modules/mongoose/tools/sharded.js create mode 100644 node_modules/mpath/.travis.yml create mode 100644 node_modules/mpath/History.md create mode 100644 node_modules/mpath/LICENSE create mode 100644 node_modules/mpath/Makefile create mode 100644 node_modules/mpath/README.md create mode 100644 node_modules/mpath/bench.js create mode 100644 node_modules/mpath/bench.log create mode 100644 node_modules/mpath/bench.out create mode 100644 node_modules/mpath/index.js create mode 100644 node_modules/mpath/lib/index.js create mode 100644 node_modules/mpath/package.json create mode 100644 node_modules/mpath/test/index.js create mode 100644 node_modules/mquery/.eslintignore create mode 100644 node_modules/mquery/.travis.yml create mode 100644 node_modules/mquery/History.md create mode 100644 node_modules/mquery/LICENSE create mode 100644 node_modules/mquery/Makefile create mode 100644 node_modules/mquery/README.md create mode 100644 node_modules/mquery/lib/collection/collection.js create mode 100644 node_modules/mquery/lib/collection/index.js create mode 100644 node_modules/mquery/lib/collection/node.js create mode 100644 node_modules/mquery/lib/env.js create mode 100644 node_modules/mquery/lib/mquery.js create mode 100644 node_modules/mquery/lib/permissions.js create mode 100644 node_modules/mquery/lib/utils.js create mode 100644 node_modules/mquery/node_modules/debug/.coveralls.yml create mode 100644 node_modules/mquery/node_modules/debug/.eslintrc create mode 100644 node_modules/mquery/node_modules/debug/.npmignore create mode 100644 node_modules/mquery/node_modules/debug/.travis.yml create mode 100644 node_modules/mquery/node_modules/debug/CHANGELOG.md create mode 100644 node_modules/mquery/node_modules/debug/LICENSE create mode 100644 node_modules/mquery/node_modules/debug/Makefile create mode 100644 node_modules/mquery/node_modules/debug/README.md create mode 100644 node_modules/mquery/node_modules/debug/karma.conf.js create mode 100644 node_modules/mquery/node_modules/debug/node.js create mode 100644 node_modules/mquery/node_modules/debug/package.json create mode 100644 node_modules/mquery/node_modules/debug/src/browser.js create mode 100644 node_modules/mquery/node_modules/debug/src/debug.js create mode 100644 node_modules/mquery/node_modules/debug/src/index.js create mode 100644 node_modules/mquery/node_modules/debug/src/node.js create mode 100644 node_modules/mquery/package.json create mode 100644 node_modules/mquery/test/collection/browser.js create mode 100644 node_modules/mquery/test/collection/mongo.js create mode 100644 node_modules/mquery/test/collection/node.js create mode 100644 node_modules/mquery/test/env.js create mode 100644 node_modules/mquery/test/index.js create mode 100644 node_modules/mquery/test/utils.test.js create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/negotiator/HISTORY.md create mode 100644 node_modules/negotiator/LICENSE create mode 100644 node_modules/negotiator/README.md create mode 100644 node_modules/negotiator/index.js create mode 100644 node_modules/negotiator/lib/charset.js create mode 100644 node_modules/negotiator/lib/encoding.js create mode 100644 node_modules/negotiator/lib/language.js create mode 100644 node_modules/negotiator/lib/mediaType.js create mode 100644 node_modules/negotiator/package.json create mode 100644 node_modules/nodemon/.jscsrc create mode 100644 node_modules/nodemon/.jshintrc create mode 100644 node_modules/nodemon/.travis.yml create mode 100644 node_modules/nodemon/LICENSE create mode 100644 node_modules/nodemon/README.md create mode 100644 node_modules/nodemon/bin/nodemon.js create mode 100644 node_modules/nodemon/bin/postinstall.js create mode 100644 node_modules/nodemon/commitlint.config.js create mode 100644 node_modules/nodemon/doc/cli/authors.txt create mode 100644 node_modules/nodemon/doc/cli/config.txt create mode 100644 node_modules/nodemon/doc/cli/help.txt create mode 100644 node_modules/nodemon/doc/cli/logo.txt create mode 100644 node_modules/nodemon/doc/cli/options.txt create mode 100644 node_modules/nodemon/doc/cli/topics.txt create mode 100644 node_modules/nodemon/doc/cli/usage.txt create mode 100644 node_modules/nodemon/doc/cli/whoami.txt create mode 100644 node_modules/nodemon/lib/cli/index.js create mode 100644 node_modules/nodemon/lib/cli/parse.js create mode 100644 node_modules/nodemon/lib/config/command.js create mode 100644 node_modules/nodemon/lib/config/defaults.js create mode 100644 node_modules/nodemon/lib/config/exec.js create mode 100644 node_modules/nodemon/lib/config/index.js create mode 100644 node_modules/nodemon/lib/config/load.js create mode 100644 node_modules/nodemon/lib/help/index.js create mode 100644 node_modules/nodemon/lib/index.js create mode 100644 node_modules/nodemon/lib/monitor/index.js create mode 100644 node_modules/nodemon/lib/monitor/match.js create mode 100644 node_modules/nodemon/lib/monitor/run.js create mode 100644 node_modules/nodemon/lib/monitor/signals.js create mode 100644 node_modules/nodemon/lib/monitor/watch.js create mode 100644 node_modules/nodemon/lib/nodemon.js create mode 100644 node_modules/nodemon/lib/rules/add.js create mode 100644 node_modules/nodemon/lib/rules/index.js create mode 100644 node_modules/nodemon/lib/rules/parse.js create mode 100644 node_modules/nodemon/lib/spawn.js create mode 100644 node_modules/nodemon/lib/utils/bus.js create mode 100644 node_modules/nodemon/lib/utils/clone.js create mode 100644 node_modules/nodemon/lib/utils/colour.js create mode 100644 node_modules/nodemon/lib/utils/index.js create mode 100644 node_modules/nodemon/lib/utils/log.js create mode 100644 node_modules/nodemon/lib/utils/merge.js create mode 100644 node_modules/nodemon/lib/version.js create mode 100644 node_modules/nodemon/node_modules/debug/CHANGELOG.md create mode 100644 node_modules/nodemon/node_modules/debug/LICENSE create mode 100644 node_modules/nodemon/node_modules/debug/README.md create mode 100644 node_modules/nodemon/node_modules/debug/dist/debug.js create mode 100644 node_modules/nodemon/node_modules/debug/node.js create mode 100644 node_modules/nodemon/node_modules/debug/package.json create mode 100644 node_modules/nodemon/node_modules/debug/src/browser.js create mode 100644 node_modules/nodemon/node_modules/debug/src/common.js create mode 100644 node_modules/nodemon/node_modules/debug/src/index.js create mode 100644 node_modules/nodemon/node_modules/debug/src/node.js create mode 100644 node_modules/nodemon/node_modules/ms/index.js create mode 100644 node_modules/nodemon/node_modules/ms/license.md create mode 100644 node_modules/nodemon/node_modules/ms/package.json create mode 100644 node_modules/nodemon/node_modules/ms/readme.md create mode 100644 node_modules/nodemon/node_modules/supports-color/browser.js create mode 100644 node_modules/nodemon/node_modules/supports-color/index.js create mode 100644 node_modules/nodemon/node_modules/supports-color/license create mode 100644 node_modules/nodemon/node_modules/supports-color/package.json create mode 100644 node_modules/nodemon/node_modules/supports-color/readme.md create mode 100644 node_modules/nodemon/package.json create mode 100644 node_modules/nopt/.npmignore create mode 100644 node_modules/nopt/LICENSE create mode 100644 node_modules/nopt/README.md create mode 100644 node_modules/nopt/bin/nopt.js create mode 100644 node_modules/nopt/examples/my-program.js create mode 100644 node_modules/nopt/lib/nopt.js create mode 100644 node_modules/nopt/package.json create mode 100644 node_modules/normalize-package-data/AUTHORS create mode 100644 node_modules/normalize-package-data/LICENSE create mode 100644 node_modules/normalize-package-data/README.md create mode 100644 node_modules/normalize-package-data/lib/extract_description.js create mode 100644 node_modules/normalize-package-data/lib/fixer.js create mode 100644 node_modules/normalize-package-data/lib/make_warning.js create mode 100644 node_modules/normalize-package-data/lib/normalize.js create mode 100644 node_modules/normalize-package-data/lib/safe_format.js create mode 100644 node_modules/normalize-package-data/lib/typos.json create mode 100644 node_modules/normalize-package-data/lib/warning_messages.json create mode 100644 node_modules/normalize-package-data/package.json create mode 100644 node_modules/normalize-path/LICENSE create mode 100644 node_modules/normalize-path/README.md create mode 100644 node_modules/normalize-path/index.js create mode 100644 node_modules/normalize-path/package.json create mode 100644 node_modules/normalize-url/index.d.ts create mode 100644 node_modules/normalize-url/index.js create mode 100644 node_modules/normalize-url/license create mode 100644 node_modules/normalize-url/package.json create mode 100644 node_modules/normalize-url/readme.md create mode 100644 node_modules/oauth-sign/LICENSE create mode 100644 node_modules/oauth-sign/README.md create mode 100644 node_modules/oauth-sign/index.js create mode 100644 node_modules/oauth-sign/package.json create mode 100644 node_modules/on-finished/HISTORY.md create mode 100644 node_modules/on-finished/LICENSE create mode 100644 node_modules/on-finished/README.md create mode 100644 node_modules/on-finished/index.js create mode 100644 node_modules/on-finished/package.json create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/p-cancelable/index.d.ts create mode 100644 node_modules/p-cancelable/index.js create mode 100644 node_modules/p-cancelable/license create mode 100644 node_modules/p-cancelable/package.json create mode 100644 node_modules/p-cancelable/readme.md create mode 100644 node_modules/p-limit/index.d.ts create mode 100644 node_modules/p-limit/index.js create mode 100644 node_modules/p-limit/license create mode 100644 node_modules/p-limit/package.json create mode 100644 node_modules/p-limit/readme.md create mode 100644 node_modules/p-locate/index.d.ts create mode 100644 node_modules/p-locate/index.js create mode 100644 node_modules/p-locate/license create mode 100644 node_modules/p-locate/package.json create mode 100644 node_modules/p-locate/readme.md create mode 100644 node_modules/p-try/index.d.ts create mode 100644 node_modules/p-try/index.js create mode 100644 node_modules/p-try/license create mode 100644 node_modules/p-try/package.json create mode 100644 node_modules/p-try/readme.md create mode 100644 node_modules/package-json/index.d.ts create mode 100644 node_modules/package-json/index.js create mode 100644 node_modules/package-json/license create mode 100644 node_modules/package-json/node_modules/.bin/semver create mode 100644 node_modules/package-json/node_modules/.bin/semver.cmd create mode 100644 node_modules/package-json/node_modules/.bin/semver.ps1 create mode 100644 node_modules/package-json/node_modules/semver/CHANGELOG.md create mode 100644 node_modules/package-json/node_modules/semver/LICENSE create mode 100644 node_modules/package-json/node_modules/semver/README.md create mode 100644 node_modules/package-json/node_modules/semver/bin/semver.js create mode 100644 node_modules/package-json/node_modules/semver/package.json create mode 100644 node_modules/package-json/node_modules/semver/range.bnf create mode 100644 node_modules/package-json/node_modules/semver/semver.js create mode 100644 node_modules/package-json/package.json create mode 100644 node_modules/package-json/readme.md create mode 100644 node_modules/parse-json/index.js create mode 100644 node_modules/parse-json/license create mode 100644 node_modules/parse-json/package.json create mode 100644 node_modules/parse-json/readme.md create mode 100644 node_modules/parseurl/HISTORY.md create mode 100644 node_modules/parseurl/LICENSE create mode 100644 node_modules/parseurl/README.md create mode 100644 node_modules/parseurl/index.js create mode 100644 node_modules/parseurl/package.json create mode 100644 node_modules/path-exists/index.d.ts create mode 100644 node_modules/path-exists/index.js create mode 100644 node_modules/path-exists/license create mode 100644 node_modules/path-exists/package.json create mode 100644 node_modules/path-exists/readme.md create mode 100644 node_modules/path-parse/.travis.yml create mode 100644 node_modules/path-parse/LICENSE create mode 100644 node_modules/path-parse/README.md create mode 100644 node_modules/path-parse/index.js create mode 100644 node_modules/path-parse/package.json create mode 100644 node_modules/path-parse/test.js create mode 100644 node_modules/path-to-regexp/History.md create mode 100644 node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/path-to-regexp/index.js create mode 100644 node_modules/path-to-regexp/package.json create mode 100644 node_modules/performance-now/.npmignore create mode 100644 node_modules/performance-now/.tm_properties create mode 100644 node_modules/performance-now/.travis.yml create mode 100644 node_modules/performance-now/README.md create mode 100644 node_modules/performance-now/lib/performance-now.js create mode 100644 node_modules/performance-now/lib/performance-now.js.map create mode 100644 node_modules/performance-now/license.txt create mode 100644 node_modules/performance-now/package.json create mode 100644 node_modules/performance-now/src/index.d.ts create mode 100644 node_modules/performance-now/src/performance-now.coffee create mode 100644 node_modules/performance-now/test/mocha.opts create mode 100644 node_modules/performance-now/test/performance-now.coffee create mode 100644 node_modules/performance-now/test/scripts.coffee create mode 100644 node_modules/performance-now/test/scripts/delayed-call.coffee create mode 100644 node_modules/performance-now/test/scripts/delayed-require.coffee create mode 100644 node_modules/performance-now/test/scripts/difference.coffee create mode 100644 node_modules/performance-now/test/scripts/initial-value.coffee create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/pify/index.js create mode 100644 node_modules/pify/license create mode 100644 node_modules/pify/package.json create mode 100644 node_modules/pify/readme.md create mode 100644 node_modules/prepend-http/index.js create mode 100644 node_modules/prepend-http/license create mode 100644 node_modules/prepend-http/package.json create mode 100644 node_modules/prepend-http/readme.md create mode 100644 node_modules/process-nextick-args/index.js create mode 100644 node_modules/process-nextick-args/license.md create mode 100644 node_modules/process-nextick-args/package.json create mode 100644 node_modules/process-nextick-args/readme.md create mode 100644 node_modules/proxy-addr/HISTORY.md create mode 100644 node_modules/proxy-addr/LICENSE create mode 100644 node_modules/proxy-addr/README.md create mode 100644 node_modules/proxy-addr/index.js create mode 100644 node_modules/proxy-addr/package.json create mode 100644 node_modules/psl/LICENSE create mode 100644 node_modules/psl/README.md create mode 100644 node_modules/psl/browserstack-logo.svg create mode 100644 node_modules/psl/data/rules.json create mode 100644 node_modules/psl/dist/psl.js create mode 100644 node_modules/psl/dist/psl.min.js create mode 100644 node_modules/psl/index.js create mode 100644 node_modules/psl/package.json create mode 100644 node_modules/pstree.remy/.travis.yml create mode 100644 node_modules/pstree.remy/LICENSE create mode 100644 node_modules/pstree.remy/README.md create mode 100644 node_modules/pstree.remy/lib/index.js create mode 100644 node_modules/pstree.remy/lib/tree.js create mode 100644 node_modules/pstree.remy/lib/utils.js create mode 100644 node_modules/pstree.remy/package.json create mode 100644 node_modules/pstree.remy/tests/fixtures/index.js create mode 100644 node_modules/pstree.remy/tests/fixtures/out1 create mode 100644 node_modules/pstree.remy/tests/fixtures/out2 create mode 100644 node_modules/pstree.remy/tests/index.test.js create mode 100644 node_modules/pump/.travis.yml create mode 100644 node_modules/pump/LICENSE create mode 100644 node_modules/pump/README.md create mode 100644 node_modules/pump/index.js create mode 100644 node_modules/pump/package.json create mode 100644 node_modules/pump/test-browser.js create mode 100644 node_modules/pump/test-node.js create mode 100644 node_modules/punycode/LICENSE-MIT.txt create mode 100644 node_modules/punycode/README.md create mode 100644 node_modules/punycode/package.json create mode 100644 node_modules/punycode/punycode.es6.js create mode 100644 node_modules/punycode/punycode.js create mode 100644 node_modules/pupa/index.d.ts create mode 100644 node_modules/pupa/index.js create mode 100644 node_modules/pupa/license create mode 100644 node_modules/pupa/package.json create mode 100644 node_modules/pupa/readme.md create mode 100644 node_modules/qs/.editorconfig create mode 100644 node_modules/qs/.eslintignore create mode 100644 node_modules/qs/.eslintrc create mode 100644 node_modules/qs/CHANGELOG.md create mode 100644 node_modules/qs/LICENSE create mode 100644 node_modules/qs/README.md create mode 100644 node_modules/qs/dist/qs.js create mode 100644 node_modules/qs/lib/formats.js create mode 100644 node_modules/qs/lib/index.js create mode 100644 node_modules/qs/lib/parse.js create mode 100644 node_modules/qs/lib/stringify.js create mode 100644 node_modules/qs/lib/utils.js create mode 100644 node_modules/qs/package.json create mode 100644 node_modules/qs/test/.eslintrc create mode 100644 node_modules/qs/test/index.js create mode 100644 node_modules/qs/test/parse.js create mode 100644 node_modules/qs/test/stringify.js create mode 100644 node_modules/qs/test/utils.js create mode 100644 node_modules/querystring/.History.md.un~ create mode 100644 node_modules/querystring/.Readme.md.un~ create mode 100644 node_modules/querystring/.package.json.un~ create mode 100644 node_modules/querystring/.travis.yml create mode 100644 node_modules/querystring/History.md create mode 100644 node_modules/querystring/License.md create mode 100644 node_modules/querystring/Readme.md create mode 100644 node_modules/querystring/decode.js create mode 100644 node_modules/querystring/encode.js create mode 100644 node_modules/querystring/index.js create mode 100644 node_modules/querystring/package.json create mode 100644 node_modules/querystring/test/.index.js.un~ create mode 100644 node_modules/querystring/test/common-index.js create mode 100644 node_modules/querystring/test/index.js create mode 100644 node_modules/querystring/test/tap-index.js create mode 100644 node_modules/range-parser/HISTORY.md create mode 100644 node_modules/range-parser/LICENSE create mode 100644 node_modules/range-parser/README.md create mode 100644 node_modules/range-parser/index.js create mode 100644 node_modules/range-parser/package.json create mode 100644 node_modules/raw-body/HISTORY.md create mode 100644 node_modules/raw-body/LICENSE create mode 100644 node_modules/raw-body/README.md create mode 100644 node_modules/raw-body/index.d.ts create mode 100644 node_modules/raw-body/index.js create mode 100644 node_modules/raw-body/package.json create mode 100644 node_modules/rc/LICENSE.APACHE2 create mode 100644 node_modules/rc/LICENSE.BSD create mode 100644 node_modules/rc/LICENSE.MIT create mode 100644 node_modules/rc/README.md create mode 100644 node_modules/rc/browser.js create mode 100644 node_modules/rc/cli.js create mode 100644 node_modules/rc/index.js create mode 100644 node_modules/rc/lib/utils.js create mode 100644 node_modules/rc/package.json create mode 100644 node_modules/rc/test/ini.js create mode 100644 node_modules/rc/test/nested-env-vars.js create mode 100644 node_modules/rc/test/test.js create mode 100644 node_modules/read-pkg/index.js create mode 100644 node_modules/read-pkg/license create mode 100644 node_modules/read-pkg/package.json create mode 100644 node_modules/read-pkg/readme.md create mode 100644 node_modules/readable-stream/.travis.yml create mode 100644 node_modules/readable-stream/CONTRIBUTING.md create mode 100644 node_modules/readable-stream/GOVERNANCE.md create mode 100644 node_modules/readable-stream/LICENSE create mode 100644 node_modules/readable-stream/README.md create mode 100644 node_modules/readable-stream/doc/wg-meetings/2015-01-30.md create mode 100644 node_modules/readable-stream/duplex-browser.js create mode 100644 node_modules/readable-stream/duplex.js create mode 100644 node_modules/readable-stream/lib/_stream_duplex.js create mode 100644 node_modules/readable-stream/lib/_stream_passthrough.js create mode 100644 node_modules/readable-stream/lib/_stream_readable.js create mode 100644 node_modules/readable-stream/lib/_stream_transform.js create mode 100644 node_modules/readable-stream/lib/_stream_writable.js create mode 100644 node_modules/readable-stream/lib/internal/streams/BufferList.js create mode 100644 node_modules/readable-stream/lib/internal/streams/destroy.js create mode 100644 node_modules/readable-stream/lib/internal/streams/stream-browser.js create mode 100644 node_modules/readable-stream/lib/internal/streams/stream.js create mode 100644 node_modules/readable-stream/package.json create mode 100644 node_modules/readable-stream/passthrough.js create mode 100644 node_modules/readable-stream/readable-browser.js create mode 100644 node_modules/readable-stream/readable.js create mode 100644 node_modules/readable-stream/transform.js create mode 100644 node_modules/readable-stream/writable-browser.js create mode 100644 node_modules/readable-stream/writable.js create mode 100644 node_modules/readdirp/LICENSE create mode 100644 node_modules/readdirp/README.md create mode 100644 node_modules/readdirp/index.d.ts create mode 100644 node_modules/readdirp/index.js create mode 100644 node_modules/readdirp/package.json create mode 100644 node_modules/regexp-clone/.travis.yml create mode 100644 node_modules/regexp-clone/History.md create mode 100644 node_modules/regexp-clone/LICENSE create mode 100644 node_modules/regexp-clone/Makefile create mode 100644 node_modules/regexp-clone/README.md create mode 100644 node_modules/regexp-clone/index.js create mode 100644 node_modules/regexp-clone/package.json create mode 100644 node_modules/regexp-clone/test/index.js create mode 100644 node_modules/registry-auth-token/CHANGELOG.md create mode 100644 node_modules/registry-auth-token/LICENSE create mode 100644 node_modules/registry-auth-token/README.md create mode 100644 node_modules/registry-auth-token/base64.js create mode 100644 node_modules/registry-auth-token/index.js create mode 100644 node_modules/registry-auth-token/package.json create mode 100644 node_modules/registry-auth-token/registry-url.js create mode 100644 node_modules/registry-auth-token/test/auth-token.test.js create mode 100644 node_modules/registry-auth-token/test/registry-url.test.js create mode 100644 node_modules/registry-url/index.d.ts create mode 100644 node_modules/registry-url/index.js create mode 100644 node_modules/registry-url/license create mode 100644 node_modules/registry-url/package.json create mode 100644 node_modules/registry-url/readme.md create mode 100644 node_modules/request/CHANGELOG.md create mode 100644 node_modules/request/LICENSE create mode 100644 node_modules/request/README.md create mode 100644 node_modules/request/index.js create mode 100644 node_modules/request/lib/auth.js create mode 100644 node_modules/request/lib/cookies.js create mode 100644 node_modules/request/lib/getProxyFromURI.js create mode 100644 node_modules/request/lib/har.js create mode 100644 node_modules/request/lib/hawk.js create mode 100644 node_modules/request/lib/helpers.js create mode 100644 node_modules/request/lib/multipart.js create mode 100644 node_modules/request/lib/oauth.js create mode 100644 node_modules/request/lib/querystring.js create mode 100644 node_modules/request/lib/redirect.js create mode 100644 node_modules/request/lib/tunnel.js create mode 100644 node_modules/request/node_modules/qs/.editorconfig create mode 100644 node_modules/request/node_modules/qs/.eslintignore create mode 100644 node_modules/request/node_modules/qs/.eslintrc create mode 100644 node_modules/request/node_modules/qs/CHANGELOG.md create mode 100644 node_modules/request/node_modules/qs/LICENSE create mode 100644 node_modules/request/node_modules/qs/README.md create mode 100644 node_modules/request/node_modules/qs/dist/qs.js create mode 100644 node_modules/request/node_modules/qs/lib/formats.js create mode 100644 node_modules/request/node_modules/qs/lib/index.js create mode 100644 node_modules/request/node_modules/qs/lib/parse.js create mode 100644 node_modules/request/node_modules/qs/lib/stringify.js create mode 100644 node_modules/request/node_modules/qs/lib/utils.js create mode 100644 node_modules/request/node_modules/qs/package.json create mode 100644 node_modules/request/node_modules/qs/test/.eslintrc create mode 100644 node_modules/request/node_modules/qs/test/index.js create mode 100644 node_modules/request/node_modules/qs/test/parse.js create mode 100644 node_modules/request/node_modules/qs/test/stringify.js create mode 100644 node_modules/request/node_modules/qs/test/utils.js create mode 100644 node_modules/request/package.json create mode 100644 node_modules/request/request.js create mode 100644 node_modules/require-directory/.jshintrc create mode 100644 node_modules/require-directory/.npmignore create mode 100644 node_modules/require-directory/.travis.yml create mode 100644 node_modules/require-directory/LICENSE create mode 100644 node_modules/require-directory/README.markdown create mode 100644 node_modules/require-directory/index.js create mode 100644 node_modules/require-directory/package.json create mode 100644 node_modules/require-main-filename/CHANGELOG.md create mode 100644 node_modules/require-main-filename/LICENSE.txt create mode 100644 node_modules/require-main-filename/README.md create mode 100644 node_modules/require-main-filename/index.js create mode 100644 node_modules/require-main-filename/package.json create mode 100644 node_modules/require_optional/.npmignore create mode 100644 node_modules/require_optional/.travis.yml create mode 100644 node_modules/require_optional/HISTORY.md create mode 100644 node_modules/require_optional/LICENSE create mode 100644 node_modules/require_optional/README.md create mode 100644 node_modules/require_optional/index.js create mode 100644 node_modules/require_optional/package.json create mode 100644 node_modules/require_optional/test/nestedTest/index.js create mode 100644 node_modules/require_optional/test/nestedTest/package.json create mode 100644 node_modules/require_optional/test/require_optional_tests.js create mode 100644 node_modules/resolve-from/index.js create mode 100644 node_modules/resolve-from/license create mode 100644 node_modules/resolve-from/package.json create mode 100644 node_modules/resolve-from/readme.md create mode 100644 node_modules/resolve/.editorconfig create mode 100644 node_modules/resolve/.eslintignore create mode 100644 node_modules/resolve/.eslintrc create mode 100644 node_modules/resolve/.travis.yml create mode 100644 node_modules/resolve/LICENSE create mode 100644 node_modules/resolve/appveyor.yml create mode 100644 node_modules/resolve/example/async.js create mode 100644 node_modules/resolve/example/sync.js create mode 100644 node_modules/resolve/index.js create mode 100644 node_modules/resolve/lib/async.js create mode 100644 node_modules/resolve/lib/caller.js create mode 100644 node_modules/resolve/lib/core.js create mode 100644 node_modules/resolve/lib/core.json create mode 100644 node_modules/resolve/lib/is-core.js create mode 100644 node_modules/resolve/lib/node-modules-paths.js create mode 100644 node_modules/resolve/lib/normalize-options.js create mode 100644 node_modules/resolve/lib/sync.js create mode 100644 node_modules/resolve/package.json create mode 100644 node_modules/resolve/readme.markdown create mode 100644 node_modules/resolve/test/.eslintrc create mode 100644 node_modules/resolve/test/core.js create mode 100644 node_modules/resolve/test/dotdot.js create mode 100644 node_modules/resolve/test/dotdot/abc/index.js create mode 100644 node_modules/resolve/test/dotdot/index.js create mode 100644 node_modules/resolve/test/faulty_basedir.js create mode 100644 node_modules/resolve/test/filter.js create mode 100644 node_modules/resolve/test/filter_sync.js create mode 100644 node_modules/resolve/test/mock.js create mode 100644 node_modules/resolve/test/mock_sync.js create mode 100644 node_modules/resolve/test/module_dir.js create mode 100644 node_modules/resolve/test/module_dir/xmodules/aaa/index.js create mode 100644 node_modules/resolve/test/module_dir/ymodules/aaa/index.js create mode 100644 node_modules/resolve/test/module_dir/zmodules/bbb/main.js create mode 100644 node_modules/resolve/test/module_dir/zmodules/bbb/package.json create mode 100644 node_modules/resolve/test/node-modules-paths.js create mode 100644 node_modules/resolve/test/node_path.js create mode 100644 node_modules/resolve/test/node_path/x/aaa/index.js create mode 100644 node_modules/resolve/test/node_path/x/ccc/index.js create mode 100644 node_modules/resolve/test/node_path/y/bbb/index.js create mode 100644 node_modules/resolve/test/node_path/y/ccc/index.js create mode 100644 node_modules/resolve/test/nonstring.js create mode 100644 node_modules/resolve/test/pathfilter.js create mode 100644 node_modules/resolve/test/pathfilter/deep_ref/main.js create mode 100644 node_modules/resolve/test/precedence.js create mode 100644 node_modules/resolve/test/precedence/aaa.js create mode 100644 node_modules/resolve/test/precedence/aaa/index.js create mode 100644 node_modules/resolve/test/precedence/aaa/main.js create mode 100644 node_modules/resolve/test/precedence/bbb.js create mode 100644 node_modules/resolve/test/precedence/bbb/main.js create mode 100644 node_modules/resolve/test/resolver.js create mode 100644 node_modules/resolve/test/resolver/baz/doom.js create mode 100644 node_modules/resolve/test/resolver/baz/package.json create mode 100644 node_modules/resolve/test/resolver/baz/quux.js create mode 100644 node_modules/resolve/test/resolver/browser_field/a.js create mode 100644 node_modules/resolve/test/resolver/browser_field/b.js create mode 100644 node_modules/resolve/test/resolver/browser_field/package.json create mode 100644 node_modules/resolve/test/resolver/cup.coffee create mode 100644 node_modules/resolve/test/resolver/dot_main/index.js create mode 100644 node_modules/resolve/test/resolver/dot_main/package.json create mode 100644 node_modules/resolve/test/resolver/dot_slash_main/index.js create mode 100644 node_modules/resolve/test/resolver/dot_slash_main/package.json create mode 100644 node_modules/resolve/test/resolver/foo.js create mode 100644 node_modules/resolve/test/resolver/incorrect_main/index.js create mode 100644 node_modules/resolve/test/resolver/incorrect_main/package.json create mode 100644 node_modules/resolve/test/resolver/invalid_main/package.json create mode 100644 node_modules/resolve/test/resolver/mug.coffee create mode 100644 node_modules/resolve/test/resolver/mug.js create mode 100644 node_modules/resolve/test/resolver/multirepo/lerna.json create mode 100644 node_modules/resolve/test/resolver/multirepo/package.json create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js create mode 100644 node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json create mode 100644 node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js create mode 100644 node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json create mode 100644 node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js create mode 100644 node_modules/resolve/test/resolver/other_path/lib/other-lib.js create mode 100644 node_modules/resolve/test/resolver/other_path/root.js create mode 100644 node_modules/resolve/test/resolver/quux/foo/index.js create mode 100644 node_modules/resolve/test/resolver/same_names/foo.js create mode 100644 node_modules/resolve/test/resolver/same_names/foo/index.js create mode 100644 node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js create mode 100644 node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep create mode 100644 node_modules/resolve/test/resolver/symlinked/package/bar.js create mode 100644 node_modules/resolve/test/resolver/symlinked/package/package.json create mode 100644 node_modules/resolve/test/resolver/without_basedir/main.js create mode 100644 node_modules/resolve/test/resolver_sync.js create mode 100644 node_modules/resolve/test/shadowed_core.js create mode 100644 node_modules/resolve/test/shadowed_core/node_modules/util/index.js create mode 100644 node_modules/resolve/test/subdirs.js create mode 100644 node_modules/resolve/test/symlinks.js create mode 100644 node_modules/responselike/LICENSE create mode 100644 node_modules/responselike/README.md create mode 100644 node_modules/responselike/package.json create mode 100644 node_modules/responselike/src/index.js create mode 100644 node_modules/rxjs/AsyncSubject.d.ts create mode 100644 node_modules/rxjs/AsyncSubject.js create mode 100644 node_modules/rxjs/AsyncSubject.js.map create mode 100644 node_modules/rxjs/BehaviorSubject.d.ts create mode 100644 node_modules/rxjs/BehaviorSubject.js create mode 100644 node_modules/rxjs/BehaviorSubject.js.map create mode 100644 node_modules/rxjs/InnerSubscriber.d.ts create mode 100644 node_modules/rxjs/InnerSubscriber.js create mode 100644 node_modules/rxjs/InnerSubscriber.js.map create mode 100644 node_modules/rxjs/LICENSE.txt create mode 100644 node_modules/rxjs/Notification.d.ts create mode 100644 node_modules/rxjs/Notification.js create mode 100644 node_modules/rxjs/Notification.js.map create mode 100644 node_modules/rxjs/Observable.d.ts create mode 100644 node_modules/rxjs/Observable.js create mode 100644 node_modules/rxjs/Observable.js.map create mode 100644 node_modules/rxjs/Observer.d.ts create mode 100644 node_modules/rxjs/Observer.js create mode 100644 node_modules/rxjs/Observer.js.map create mode 100644 node_modules/rxjs/Operator.d.ts create mode 100644 node_modules/rxjs/Operator.js create mode 100644 node_modules/rxjs/Operator.js.map create mode 100644 node_modules/rxjs/OuterSubscriber.d.ts create mode 100644 node_modules/rxjs/OuterSubscriber.js create mode 100644 node_modules/rxjs/OuterSubscriber.js.map create mode 100644 node_modules/rxjs/README.md create mode 100644 node_modules/rxjs/ReplaySubject.d.ts create mode 100644 node_modules/rxjs/ReplaySubject.js create mode 100644 node_modules/rxjs/ReplaySubject.js.map create mode 100644 node_modules/rxjs/Rx.d.ts create mode 100644 node_modules/rxjs/Rx.js create mode 100644 node_modules/rxjs/Rx.js.map create mode 100644 node_modules/rxjs/Scheduler.d.ts create mode 100644 node_modules/rxjs/Scheduler.js create mode 100644 node_modules/rxjs/Scheduler.js.map create mode 100644 node_modules/rxjs/Subject.d.ts create mode 100644 node_modules/rxjs/Subject.js create mode 100644 node_modules/rxjs/Subject.js.map create mode 100644 node_modules/rxjs/SubjectSubscription.d.ts create mode 100644 node_modules/rxjs/SubjectSubscription.js create mode 100644 node_modules/rxjs/SubjectSubscription.js.map create mode 100644 node_modules/rxjs/Subscriber.d.ts create mode 100644 node_modules/rxjs/Subscriber.js create mode 100644 node_modules/rxjs/Subscriber.js.map create mode 100644 node_modules/rxjs/Subscription.d.ts create mode 100644 node_modules/rxjs/Subscription.js create mode 100644 node_modules/rxjs/Subscription.js.map create mode 100644 node_modules/rxjs/_esm2015/LICENSE.txt create mode 100644 node_modules/rxjs/_esm2015/README.md create mode 100644 node_modules/rxjs/_esm2015/ajax/index.js create mode 100644 node_modules/rxjs/_esm2015/ajax/index.js.map create mode 100644 node_modules/rxjs/_esm2015/fetch/index.js create mode 100644 node_modules/rxjs/_esm2015/fetch/index.js.map create mode 100644 node_modules/rxjs/_esm2015/index.js create mode 100644 node_modules/rxjs/_esm2015/index.js.map create mode 100644 node_modules/rxjs/_esm2015/internal-compatibility/index.js create mode 100644 node_modules/rxjs/_esm2015/internal-compatibility/index.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/AsyncSubject.js create mode 100644 node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/BehaviorSubject.js create mode 100644 node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/InnerSubscriber.js create mode 100644 node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Notification.js create mode 100644 node_modules/rxjs/_esm2015/internal/Notification.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Observable.js create mode 100644 node_modules/rxjs/_esm2015/internal/Observable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Observer.js create mode 100644 node_modules/rxjs/_esm2015/internal/Observer.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Operator.js create mode 100644 node_modules/rxjs/_esm2015/internal/Operator.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/OuterSubscriber.js create mode 100644 node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/ReplaySubject.js create mode 100644 node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Rx.js create mode 100644 node_modules/rxjs/_esm2015/internal/Rx.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Scheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/Scheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Subject.js create mode 100644 node_modules/rxjs/_esm2015/internal/Subject.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/SubjectSubscription.js create mode 100644 node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Subscriber.js create mode 100644 node_modules/rxjs/_esm2015/internal/Subscriber.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/Subscription.js create mode 100644 node_modules/rxjs/_esm2015/internal/Subscription.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/config.js create mode 100644 node_modules/rxjs/_esm2015/internal/config.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/innerSubscribe.js create mode 100644 node_modules/rxjs/_esm2015/internal/innerSubscribe.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/bindCallback.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/combineLatest.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/concat.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/concat.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/defer.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/defer.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/empty.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/empty.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/forkJoin.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/from.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/from.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromArray.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromEvent.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromIterable.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromPromise.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/generate.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/generate.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/iif.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/iif.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/interval.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/interval.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/merge.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/merge.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/never.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/never.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/of.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/of.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/pairs.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/pairs.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/partition.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/partition.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/race.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/race.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/range.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/range.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/throwError.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/throwError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/timer.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/timer.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/using.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/using.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/observable/zip.js create mode 100644 node_modules/rxjs/_esm2015/internal/observable/zip.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/audit.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/audit.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/auditTime.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/buffer.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/buffer.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferCount.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferTime.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/catchError.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/catchError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/combineAll.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/combineLatest.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concat.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concat.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concatAll.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concatMap.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/count.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/count.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/debounce.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/debounce.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/debounceTime.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/delay.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/delay.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/delayWhen.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/dematerialize.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/distinct.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/distinct.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/elementAt.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/endWith.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/endWith.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/every.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/every.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/exhaust.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/expand.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/expand.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/filter.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/filter.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/finalize.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/finalize.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/find.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/find.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/findIndex.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/first.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/first.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/groupBy.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/index.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/index.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/isEmpty.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/last.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/last.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/map.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/map.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mapTo.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/materialize.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/materialize.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/max.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/max.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/merge.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/merge.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeAll.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeMap.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeScan.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/min.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/min.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/multicast.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/multicast.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/observeOn.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/pairwise.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/partition.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/partition.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/pluck.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/pluck.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publish.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publish.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publishLast.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publishReplay.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/race.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/race.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/reduce.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/reduce.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/refCount.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/refCount.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/repeat.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/repeat.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/retry.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/retry.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/retryWhen.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/sample.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/sample.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/sampleTime.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/scan.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/scan.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/share.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/share.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/shareReplay.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/single.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/single.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skip.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skip.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skipLast.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skipUntil.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skipWhile.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/startWith.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/startWith.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/switchAll.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/switchMap.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/take.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/take.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/takeLast.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/takeUntil.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/takeWhile.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/tap.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/tap.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/throttle.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/throttle.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/throttleTime.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timeInterval.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timeout.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timeout.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timestamp.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/toArray.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/toArray.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/window.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/window.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowCount.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowTime.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowToggle.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowWhen.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/zip.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/zip.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/operators/zipAll.js create mode 100644 node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/Action.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/asap.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/async.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/async.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/queue.js create mode 100644 node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/symbol/iterator.js create mode 100644 node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/symbol/observable.js create mode 100644 node_modules/rxjs/_esm2015/internal/symbol/observable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js create mode 100644 node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/testing/HotObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js create mode 100644 node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js create mode 100644 node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/testing/TestMessage.js create mode 100644 node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/types.js create mode 100644 node_modules/rxjs/_esm2015/internal/types.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/EmptyError.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/Immediate.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/Immediate.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/TimeoutError.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/applyMixins.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/canReportError.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/canReportError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/errorObject.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/errorObject.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/hostReportError.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/identity.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/identity.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isArray.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isArray.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isArrayLike.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isDate.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isDate.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isFunction.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isFunction.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isIterable.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isIterable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isNumeric.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isObject.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isObject.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isPromise.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isPromise.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/isScheduler.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/noop.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/noop.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/not.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/not.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/pipe.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/pipe.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/root.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/root.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeTo.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/toSubscriber.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map create mode 100644 node_modules/rxjs/_esm2015/internal/util/tryCatch.js create mode 100644 node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map create mode 100644 node_modules/rxjs/_esm2015/operators/index.js create mode 100644 node_modules/rxjs/_esm2015/operators/index.js.map create mode 100644 node_modules/rxjs/_esm2015/path-mapping.js create mode 100644 node_modules/rxjs/_esm2015/testing/index.js create mode 100644 node_modules/rxjs/_esm2015/testing/index.js.map create mode 100644 node_modules/rxjs/_esm2015/webSocket/index.js create mode 100644 node_modules/rxjs/_esm2015/webSocket/index.js.map create mode 100644 node_modules/rxjs/_esm5/LICENSE.txt create mode 100644 node_modules/rxjs/_esm5/README.md create mode 100644 node_modules/rxjs/_esm5/ajax/index.js create mode 100644 node_modules/rxjs/_esm5/ajax/index.js.map create mode 100644 node_modules/rxjs/_esm5/fetch/index.js create mode 100644 node_modules/rxjs/_esm5/fetch/index.js.map create mode 100644 node_modules/rxjs/_esm5/index.js create mode 100644 node_modules/rxjs/_esm5/index.js.map create mode 100644 node_modules/rxjs/_esm5/internal-compatibility/index.js create mode 100644 node_modules/rxjs/_esm5/internal-compatibility/index.js.map create mode 100644 node_modules/rxjs/_esm5/internal/AsyncSubject.js create mode 100644 node_modules/rxjs/_esm5/internal/AsyncSubject.js.map create mode 100644 node_modules/rxjs/_esm5/internal/BehaviorSubject.js create mode 100644 node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map create mode 100644 node_modules/rxjs/_esm5/internal/InnerSubscriber.js create mode 100644 node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Notification.js create mode 100644 node_modules/rxjs/_esm5/internal/Notification.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Observable.js create mode 100644 node_modules/rxjs/_esm5/internal/Observable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Observer.js create mode 100644 node_modules/rxjs/_esm5/internal/Observer.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Operator.js create mode 100644 node_modules/rxjs/_esm5/internal/Operator.js.map create mode 100644 node_modules/rxjs/_esm5/internal/OuterSubscriber.js create mode 100644 node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map create mode 100644 node_modules/rxjs/_esm5/internal/ReplaySubject.js create mode 100644 node_modules/rxjs/_esm5/internal/ReplaySubject.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Rx.js create mode 100644 node_modules/rxjs/_esm5/internal/Rx.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Scheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/Scheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Subject.js create mode 100644 node_modules/rxjs/_esm5/internal/Subject.js.map create mode 100644 node_modules/rxjs/_esm5/internal/SubjectSubscription.js create mode 100644 node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Subscriber.js create mode 100644 node_modules/rxjs/_esm5/internal/Subscriber.js.map create mode 100644 node_modules/rxjs/_esm5/internal/Subscription.js create mode 100644 node_modules/rxjs/_esm5/internal/Subscription.js.map create mode 100644 node_modules/rxjs/_esm5/internal/config.js create mode 100644 node_modules/rxjs/_esm5/internal/config.js.map create mode 100644 node_modules/rxjs/_esm5/internal/innerSubscribe.js create mode 100644 node_modules/rxjs/_esm5/internal/innerSubscribe.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/bindCallback.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/combineLatest.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/concat.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/concat.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/defer.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/defer.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/ajax.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/fetch.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/empty.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/empty.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/forkJoin.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/from.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/from.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromArray.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromArray.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromEvent.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromIterable.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromPromise.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/generate.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/generate.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/iif.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/iif.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/interval.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/interval.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/merge.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/merge.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/never.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/never.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/of.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/of.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/pairs.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/pairs.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/partition.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/partition.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/race.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/race.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/range.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/range.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/throwError.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/throwError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/timer.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/timer.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/using.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/using.js.map create mode 100644 node_modules/rxjs/_esm5/internal/observable/zip.js create mode 100644 node_modules/rxjs/_esm5/internal/observable/zip.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/audit.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/audit.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/auditTime.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/auditTime.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/buffer.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/buffer.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferCount.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferTime.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferToggle.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferWhen.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/catchError.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/catchError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/combineAll.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/combineAll.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/combineLatest.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/concat.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/concat.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/concatAll.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/concatAll.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/concatMap.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/concatMap.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/concatMapTo.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/count.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/count.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/debounce.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/debounce.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/debounceTime.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/delay.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/delay.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/delayWhen.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/dematerialize.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/distinct.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/distinct.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/elementAt.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/elementAt.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/endWith.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/endWith.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/every.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/every.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/exhaust.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/exhaust.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/exhaustMap.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/expand.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/expand.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/filter.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/filter.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/finalize.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/finalize.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/find.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/find.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/findIndex.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/findIndex.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/first.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/first.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/groupBy.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/groupBy.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/ignoreElements.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/index.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/index.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/isEmpty.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/last.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/last.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/map.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/map.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/mapTo.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/mapTo.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/materialize.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/materialize.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/max.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/max.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/merge.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/merge.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeAll.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeMap.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeScan.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/min.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/min.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/multicast.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/multicast.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/observeOn.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/observeOn.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/pairwise.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/pairwise.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/partition.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/partition.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/pluck.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/pluck.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/publish.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/publish.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/publishBehavior.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/publishLast.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/publishLast.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/publishReplay.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/race.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/race.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/reduce.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/reduce.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/refCount.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/refCount.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/repeat.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/repeat.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/repeatWhen.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/retry.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/retry.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/retryWhen.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/sample.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/sample.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/sampleTime.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/scan.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/scan.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/share.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/share.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/shareReplay.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/single.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/single.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/skip.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/skip.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/skipLast.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/skipLast.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/skipUntil.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/skipWhile.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/startWith.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/startWith.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/subscribeOn.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/switchAll.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/switchAll.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/switchMap.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/switchMap.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/switchMapTo.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/take.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/take.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/takeLast.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/takeLast.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/takeUntil.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/takeWhile.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/tap.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/tap.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/throttle.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/throttle.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/throttleTime.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/timeInterval.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/timeout.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/timeout.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/timeoutWith.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/timestamp.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/timestamp.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/toArray.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/toArray.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/window.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/window.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowCount.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowCount.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowTime.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowTime.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowToggle.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowWhen.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/zip.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/zip.js.map create mode 100644 node_modules/rxjs/_esm5/internal/operators/zipAll.js create mode 100644 node_modules/rxjs/_esm5/internal/operators/zipAll.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduled.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/Action.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/Action.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/asap.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/asap.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/async.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/async.js.map create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/queue.js create mode 100644 node_modules/rxjs/_esm5/internal/scheduler/queue.js.map create mode 100644 node_modules/rxjs/_esm5/internal/symbol/iterator.js create mode 100644 node_modules/rxjs/_esm5/internal/symbol/iterator.js.map create mode 100644 node_modules/rxjs/_esm5/internal/symbol/observable.js create mode 100644 node_modules/rxjs/_esm5/internal/symbol/observable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js create mode 100644 node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map create mode 100644 node_modules/rxjs/_esm5/internal/testing/ColdObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/testing/HotObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js create mode 100644 node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map create mode 100644 node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js create mode 100644 node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/testing/TestMessage.js create mode 100644 node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map create mode 100644 node_modules/rxjs/_esm5/internal/testing/TestScheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/types.js create mode 100644 node_modules/rxjs/_esm5/internal/types.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js create mode 100644 node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/EmptyError.js create mode 100644 node_modules/rxjs/_esm5/internal/util/EmptyError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/Immediate.js create mode 100644 node_modules/rxjs/_esm5/internal/util/Immediate.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js create mode 100644 node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/TimeoutError.js create mode 100644 node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js create mode 100644 node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/applyMixins.js create mode 100644 node_modules/rxjs/_esm5/internal/util/applyMixins.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/canReportError.js create mode 100644 node_modules/rxjs/_esm5/internal/util/canReportError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/errorObject.js create mode 100644 node_modules/rxjs/_esm5/internal/util/errorObject.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/hostReportError.js create mode 100644 node_modules/rxjs/_esm5/internal/util/hostReportError.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/identity.js create mode 100644 node_modules/rxjs/_esm5/internal/util/identity.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isArray.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isArray.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isArrayLike.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isDate.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isDate.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isFunction.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isFunction.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isInteropObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isIterable.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isIterable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isNumeric.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isNumeric.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isObject.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isObject.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isPromise.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isPromise.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/isScheduler.js create mode 100644 node_modules/rxjs/_esm5/internal/util/isScheduler.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/noop.js create mode 100644 node_modules/rxjs/_esm5/internal/util/noop.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/not.js create mode 100644 node_modules/rxjs/_esm5/internal/util/not.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/pipe.js create mode 100644 node_modules/rxjs/_esm5/internal/util/pipe.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/root.js create mode 100644 node_modules/rxjs/_esm5/internal/util/root.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeTo.js create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToArray.js create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToResult.js create mode 100644 node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/toSubscriber.js create mode 100644 node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map create mode 100644 node_modules/rxjs/_esm5/internal/util/tryCatch.js create mode 100644 node_modules/rxjs/_esm5/internal/util/tryCatch.js.map create mode 100644 node_modules/rxjs/_esm5/operators/index.js create mode 100644 node_modules/rxjs/_esm5/operators/index.js.map create mode 100644 node_modules/rxjs/_esm5/path-mapping.js create mode 100644 node_modules/rxjs/_esm5/testing/index.js create mode 100644 node_modules/rxjs/_esm5/testing/index.js.map create mode 100644 node_modules/rxjs/_esm5/webSocket/index.js create mode 100644 node_modules/rxjs/_esm5/webSocket/index.js.map create mode 100644 node_modules/rxjs/add/observable/bindCallback.d.ts create mode 100644 node_modules/rxjs/add/observable/bindCallback.js create mode 100644 node_modules/rxjs/add/observable/bindCallback.js.map create mode 100644 node_modules/rxjs/add/observable/bindNodeCallback.d.ts create mode 100644 node_modules/rxjs/add/observable/bindNodeCallback.js create mode 100644 node_modules/rxjs/add/observable/bindNodeCallback.js.map create mode 100644 node_modules/rxjs/add/observable/combineLatest.d.ts create mode 100644 node_modules/rxjs/add/observable/combineLatest.js create mode 100644 node_modules/rxjs/add/observable/combineLatest.js.map create mode 100644 node_modules/rxjs/add/observable/concat.d.ts create mode 100644 node_modules/rxjs/add/observable/concat.js create mode 100644 node_modules/rxjs/add/observable/concat.js.map create mode 100644 node_modules/rxjs/add/observable/defer.d.ts create mode 100644 node_modules/rxjs/add/observable/defer.js create mode 100644 node_modules/rxjs/add/observable/defer.js.map create mode 100644 node_modules/rxjs/add/observable/dom/ajax.d.ts create mode 100644 node_modules/rxjs/add/observable/dom/ajax.js create mode 100644 node_modules/rxjs/add/observable/dom/ajax.js.map create mode 100644 node_modules/rxjs/add/observable/dom/webSocket.d.ts create mode 100644 node_modules/rxjs/add/observable/dom/webSocket.js create mode 100644 node_modules/rxjs/add/observable/dom/webSocket.js.map create mode 100644 node_modules/rxjs/add/observable/empty.d.ts create mode 100644 node_modules/rxjs/add/observable/empty.js create mode 100644 node_modules/rxjs/add/observable/empty.js.map create mode 100644 node_modules/rxjs/add/observable/forkJoin.d.ts create mode 100644 node_modules/rxjs/add/observable/forkJoin.js create mode 100644 node_modules/rxjs/add/observable/forkJoin.js.map create mode 100644 node_modules/rxjs/add/observable/from.d.ts create mode 100644 node_modules/rxjs/add/observable/from.js create mode 100644 node_modules/rxjs/add/observable/from.js.map create mode 100644 node_modules/rxjs/add/observable/fromEvent.d.ts create mode 100644 node_modules/rxjs/add/observable/fromEvent.js create mode 100644 node_modules/rxjs/add/observable/fromEvent.js.map create mode 100644 node_modules/rxjs/add/observable/fromEventPattern.d.ts create mode 100644 node_modules/rxjs/add/observable/fromEventPattern.js create mode 100644 node_modules/rxjs/add/observable/fromEventPattern.js.map create mode 100644 node_modules/rxjs/add/observable/fromPromise.d.ts create mode 100644 node_modules/rxjs/add/observable/fromPromise.js create mode 100644 node_modules/rxjs/add/observable/fromPromise.js.map create mode 100644 node_modules/rxjs/add/observable/generate.d.ts create mode 100644 node_modules/rxjs/add/observable/generate.js create mode 100644 node_modules/rxjs/add/observable/generate.js.map create mode 100644 node_modules/rxjs/add/observable/if.d.ts create mode 100644 node_modules/rxjs/add/observable/if.js create mode 100644 node_modules/rxjs/add/observable/if.js.map create mode 100644 node_modules/rxjs/add/observable/interval.d.ts create mode 100644 node_modules/rxjs/add/observable/interval.js create mode 100644 node_modules/rxjs/add/observable/interval.js.map create mode 100644 node_modules/rxjs/add/observable/merge.d.ts create mode 100644 node_modules/rxjs/add/observable/merge.js create mode 100644 node_modules/rxjs/add/observable/merge.js.map create mode 100644 node_modules/rxjs/add/observable/never.d.ts create mode 100644 node_modules/rxjs/add/observable/never.js create mode 100644 node_modules/rxjs/add/observable/never.js.map create mode 100644 node_modules/rxjs/add/observable/of.d.ts create mode 100644 node_modules/rxjs/add/observable/of.js create mode 100644 node_modules/rxjs/add/observable/of.js.map create mode 100644 node_modules/rxjs/add/observable/onErrorResumeNext.d.ts create mode 100644 node_modules/rxjs/add/observable/onErrorResumeNext.js create mode 100644 node_modules/rxjs/add/observable/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/add/observable/pairs.d.ts create mode 100644 node_modules/rxjs/add/observable/pairs.js create mode 100644 node_modules/rxjs/add/observable/pairs.js.map create mode 100644 node_modules/rxjs/add/observable/race.d.ts create mode 100644 node_modules/rxjs/add/observable/race.js create mode 100644 node_modules/rxjs/add/observable/race.js.map create mode 100644 node_modules/rxjs/add/observable/range.d.ts create mode 100644 node_modules/rxjs/add/observable/range.js create mode 100644 node_modules/rxjs/add/observable/range.js.map create mode 100644 node_modules/rxjs/add/observable/throw.d.ts create mode 100644 node_modules/rxjs/add/observable/throw.js create mode 100644 node_modules/rxjs/add/observable/throw.js.map create mode 100644 node_modules/rxjs/add/observable/timer.d.ts create mode 100644 node_modules/rxjs/add/observable/timer.js create mode 100644 node_modules/rxjs/add/observable/timer.js.map create mode 100644 node_modules/rxjs/add/observable/using.d.ts create mode 100644 node_modules/rxjs/add/observable/using.js create mode 100644 node_modules/rxjs/add/observable/using.js.map create mode 100644 node_modules/rxjs/add/observable/zip.d.ts create mode 100644 node_modules/rxjs/add/observable/zip.js create mode 100644 node_modules/rxjs/add/observable/zip.js.map create mode 100644 node_modules/rxjs/add/operator/audit.d.ts create mode 100644 node_modules/rxjs/add/operator/audit.js create mode 100644 node_modules/rxjs/add/operator/audit.js.map create mode 100644 node_modules/rxjs/add/operator/auditTime.d.ts create mode 100644 node_modules/rxjs/add/operator/auditTime.js create mode 100644 node_modules/rxjs/add/operator/auditTime.js.map create mode 100644 node_modules/rxjs/add/operator/buffer.d.ts create mode 100644 node_modules/rxjs/add/operator/buffer.js create mode 100644 node_modules/rxjs/add/operator/buffer.js.map create mode 100644 node_modules/rxjs/add/operator/bufferCount.d.ts create mode 100644 node_modules/rxjs/add/operator/bufferCount.js create mode 100644 node_modules/rxjs/add/operator/bufferCount.js.map create mode 100644 node_modules/rxjs/add/operator/bufferTime.d.ts create mode 100644 node_modules/rxjs/add/operator/bufferTime.js create mode 100644 node_modules/rxjs/add/operator/bufferTime.js.map create mode 100644 node_modules/rxjs/add/operator/bufferToggle.d.ts create mode 100644 node_modules/rxjs/add/operator/bufferToggle.js create mode 100644 node_modules/rxjs/add/operator/bufferToggle.js.map create mode 100644 node_modules/rxjs/add/operator/bufferWhen.d.ts create mode 100644 node_modules/rxjs/add/operator/bufferWhen.js create mode 100644 node_modules/rxjs/add/operator/bufferWhen.js.map create mode 100644 node_modules/rxjs/add/operator/catch.d.ts create mode 100644 node_modules/rxjs/add/operator/catch.js create mode 100644 node_modules/rxjs/add/operator/catch.js.map create mode 100644 node_modules/rxjs/add/operator/combineAll.d.ts create mode 100644 node_modules/rxjs/add/operator/combineAll.js create mode 100644 node_modules/rxjs/add/operator/combineAll.js.map create mode 100644 node_modules/rxjs/add/operator/combineLatest.d.ts create mode 100644 node_modules/rxjs/add/operator/combineLatest.js create mode 100644 node_modules/rxjs/add/operator/combineLatest.js.map create mode 100644 node_modules/rxjs/add/operator/concat.d.ts create mode 100644 node_modules/rxjs/add/operator/concat.js create mode 100644 node_modules/rxjs/add/operator/concat.js.map create mode 100644 node_modules/rxjs/add/operator/concatAll.d.ts create mode 100644 node_modules/rxjs/add/operator/concatAll.js create mode 100644 node_modules/rxjs/add/operator/concatAll.js.map create mode 100644 node_modules/rxjs/add/operator/concatMap.d.ts create mode 100644 node_modules/rxjs/add/operator/concatMap.js create mode 100644 node_modules/rxjs/add/operator/concatMap.js.map create mode 100644 node_modules/rxjs/add/operator/concatMapTo.d.ts create mode 100644 node_modules/rxjs/add/operator/concatMapTo.js create mode 100644 node_modules/rxjs/add/operator/concatMapTo.js.map create mode 100644 node_modules/rxjs/add/operator/count.d.ts create mode 100644 node_modules/rxjs/add/operator/count.js create mode 100644 node_modules/rxjs/add/operator/count.js.map create mode 100644 node_modules/rxjs/add/operator/debounce.d.ts create mode 100644 node_modules/rxjs/add/operator/debounce.js create mode 100644 node_modules/rxjs/add/operator/debounce.js.map create mode 100644 node_modules/rxjs/add/operator/debounceTime.d.ts create mode 100644 node_modules/rxjs/add/operator/debounceTime.js create mode 100644 node_modules/rxjs/add/operator/debounceTime.js.map create mode 100644 node_modules/rxjs/add/operator/defaultIfEmpty.d.ts create mode 100644 node_modules/rxjs/add/operator/defaultIfEmpty.js create mode 100644 node_modules/rxjs/add/operator/defaultIfEmpty.js.map create mode 100644 node_modules/rxjs/add/operator/delay.d.ts create mode 100644 node_modules/rxjs/add/operator/delay.js create mode 100644 node_modules/rxjs/add/operator/delay.js.map create mode 100644 node_modules/rxjs/add/operator/delayWhen.d.ts create mode 100644 node_modules/rxjs/add/operator/delayWhen.js create mode 100644 node_modules/rxjs/add/operator/delayWhen.js.map create mode 100644 node_modules/rxjs/add/operator/dematerialize.d.ts create mode 100644 node_modules/rxjs/add/operator/dematerialize.js create mode 100644 node_modules/rxjs/add/operator/dematerialize.js.map create mode 100644 node_modules/rxjs/add/operator/distinct.d.ts create mode 100644 node_modules/rxjs/add/operator/distinct.js create mode 100644 node_modules/rxjs/add/operator/distinct.js.map create mode 100644 node_modules/rxjs/add/operator/distinctUntilChanged.d.ts create mode 100644 node_modules/rxjs/add/operator/distinctUntilChanged.js create mode 100644 node_modules/rxjs/add/operator/distinctUntilChanged.js.map create mode 100644 node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts create mode 100644 node_modules/rxjs/add/operator/distinctUntilKeyChanged.js create mode 100644 node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map create mode 100644 node_modules/rxjs/add/operator/do.d.ts create mode 100644 node_modules/rxjs/add/operator/do.js create mode 100644 node_modules/rxjs/add/operator/do.js.map create mode 100644 node_modules/rxjs/add/operator/elementAt.d.ts create mode 100644 node_modules/rxjs/add/operator/elementAt.js create mode 100644 node_modules/rxjs/add/operator/elementAt.js.map create mode 100644 node_modules/rxjs/add/operator/every.d.ts create mode 100644 node_modules/rxjs/add/operator/every.js create mode 100644 node_modules/rxjs/add/operator/every.js.map create mode 100644 node_modules/rxjs/add/operator/exhaust.d.ts create mode 100644 node_modules/rxjs/add/operator/exhaust.js create mode 100644 node_modules/rxjs/add/operator/exhaust.js.map create mode 100644 node_modules/rxjs/add/operator/exhaustMap.d.ts create mode 100644 node_modules/rxjs/add/operator/exhaustMap.js create mode 100644 node_modules/rxjs/add/operator/exhaustMap.js.map create mode 100644 node_modules/rxjs/add/operator/expand.d.ts create mode 100644 node_modules/rxjs/add/operator/expand.js create mode 100644 node_modules/rxjs/add/operator/expand.js.map create mode 100644 node_modules/rxjs/add/operator/filter.d.ts create mode 100644 node_modules/rxjs/add/operator/filter.js create mode 100644 node_modules/rxjs/add/operator/filter.js.map create mode 100644 node_modules/rxjs/add/operator/finally.d.ts create mode 100644 node_modules/rxjs/add/operator/finally.js create mode 100644 node_modules/rxjs/add/operator/finally.js.map create mode 100644 node_modules/rxjs/add/operator/find.d.ts create mode 100644 node_modules/rxjs/add/operator/find.js create mode 100644 node_modules/rxjs/add/operator/find.js.map create mode 100644 node_modules/rxjs/add/operator/findIndex.d.ts create mode 100644 node_modules/rxjs/add/operator/findIndex.js create mode 100644 node_modules/rxjs/add/operator/findIndex.js.map create mode 100644 node_modules/rxjs/add/operator/first.d.ts create mode 100644 node_modules/rxjs/add/operator/first.js create mode 100644 node_modules/rxjs/add/operator/first.js.map create mode 100644 node_modules/rxjs/add/operator/groupBy.d.ts create mode 100644 node_modules/rxjs/add/operator/groupBy.js create mode 100644 node_modules/rxjs/add/operator/groupBy.js.map create mode 100644 node_modules/rxjs/add/operator/ignoreElements.d.ts create mode 100644 node_modules/rxjs/add/operator/ignoreElements.js create mode 100644 node_modules/rxjs/add/operator/ignoreElements.js.map create mode 100644 node_modules/rxjs/add/operator/isEmpty.d.ts create mode 100644 node_modules/rxjs/add/operator/isEmpty.js create mode 100644 node_modules/rxjs/add/operator/isEmpty.js.map create mode 100644 node_modules/rxjs/add/operator/last.d.ts create mode 100644 node_modules/rxjs/add/operator/last.js create mode 100644 node_modules/rxjs/add/operator/last.js.map create mode 100644 node_modules/rxjs/add/operator/let.d.ts create mode 100644 node_modules/rxjs/add/operator/let.js create mode 100644 node_modules/rxjs/add/operator/let.js.map create mode 100644 node_modules/rxjs/add/operator/map.d.ts create mode 100644 node_modules/rxjs/add/operator/map.js create mode 100644 node_modules/rxjs/add/operator/map.js.map create mode 100644 node_modules/rxjs/add/operator/mapTo.d.ts create mode 100644 node_modules/rxjs/add/operator/mapTo.js create mode 100644 node_modules/rxjs/add/operator/mapTo.js.map create mode 100644 node_modules/rxjs/add/operator/materialize.d.ts create mode 100644 node_modules/rxjs/add/operator/materialize.js create mode 100644 node_modules/rxjs/add/operator/materialize.js.map create mode 100644 node_modules/rxjs/add/operator/max.d.ts create mode 100644 node_modules/rxjs/add/operator/max.js create mode 100644 node_modules/rxjs/add/operator/max.js.map create mode 100644 node_modules/rxjs/add/operator/merge.d.ts create mode 100644 node_modules/rxjs/add/operator/merge.js create mode 100644 node_modules/rxjs/add/operator/merge.js.map create mode 100644 node_modules/rxjs/add/operator/mergeAll.d.ts create mode 100644 node_modules/rxjs/add/operator/mergeAll.js create mode 100644 node_modules/rxjs/add/operator/mergeAll.js.map create mode 100644 node_modules/rxjs/add/operator/mergeMap.d.ts create mode 100644 node_modules/rxjs/add/operator/mergeMap.js create mode 100644 node_modules/rxjs/add/operator/mergeMap.js.map create mode 100644 node_modules/rxjs/add/operator/mergeMapTo.d.ts create mode 100644 node_modules/rxjs/add/operator/mergeMapTo.js create mode 100644 node_modules/rxjs/add/operator/mergeMapTo.js.map create mode 100644 node_modules/rxjs/add/operator/mergeScan.d.ts create mode 100644 node_modules/rxjs/add/operator/mergeScan.js create mode 100644 node_modules/rxjs/add/operator/mergeScan.js.map create mode 100644 node_modules/rxjs/add/operator/min.d.ts create mode 100644 node_modules/rxjs/add/operator/min.js create mode 100644 node_modules/rxjs/add/operator/min.js.map create mode 100644 node_modules/rxjs/add/operator/multicast.d.ts create mode 100644 node_modules/rxjs/add/operator/multicast.js create mode 100644 node_modules/rxjs/add/operator/multicast.js.map create mode 100644 node_modules/rxjs/add/operator/observeOn.d.ts create mode 100644 node_modules/rxjs/add/operator/observeOn.js create mode 100644 node_modules/rxjs/add/operator/observeOn.js.map create mode 100644 node_modules/rxjs/add/operator/onErrorResumeNext.d.ts create mode 100644 node_modules/rxjs/add/operator/onErrorResumeNext.js create mode 100644 node_modules/rxjs/add/operator/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/add/operator/pairwise.d.ts create mode 100644 node_modules/rxjs/add/operator/pairwise.js create mode 100644 node_modules/rxjs/add/operator/pairwise.js.map create mode 100644 node_modules/rxjs/add/operator/partition.d.ts create mode 100644 node_modules/rxjs/add/operator/partition.js create mode 100644 node_modules/rxjs/add/operator/partition.js.map create mode 100644 node_modules/rxjs/add/operator/pluck.d.ts create mode 100644 node_modules/rxjs/add/operator/pluck.js create mode 100644 node_modules/rxjs/add/operator/pluck.js.map create mode 100644 node_modules/rxjs/add/operator/publish.d.ts create mode 100644 node_modules/rxjs/add/operator/publish.js create mode 100644 node_modules/rxjs/add/operator/publish.js.map create mode 100644 node_modules/rxjs/add/operator/publishBehavior.d.ts create mode 100644 node_modules/rxjs/add/operator/publishBehavior.js create mode 100644 node_modules/rxjs/add/operator/publishBehavior.js.map create mode 100644 node_modules/rxjs/add/operator/publishLast.d.ts create mode 100644 node_modules/rxjs/add/operator/publishLast.js create mode 100644 node_modules/rxjs/add/operator/publishLast.js.map create mode 100644 node_modules/rxjs/add/operator/publishReplay.d.ts create mode 100644 node_modules/rxjs/add/operator/publishReplay.js create mode 100644 node_modules/rxjs/add/operator/publishReplay.js.map create mode 100644 node_modules/rxjs/add/operator/race.d.ts create mode 100644 node_modules/rxjs/add/operator/race.js create mode 100644 node_modules/rxjs/add/operator/race.js.map create mode 100644 node_modules/rxjs/add/operator/reduce.d.ts create mode 100644 node_modules/rxjs/add/operator/reduce.js create mode 100644 node_modules/rxjs/add/operator/reduce.js.map create mode 100644 node_modules/rxjs/add/operator/repeat.d.ts create mode 100644 node_modules/rxjs/add/operator/repeat.js create mode 100644 node_modules/rxjs/add/operator/repeat.js.map create mode 100644 node_modules/rxjs/add/operator/repeatWhen.d.ts create mode 100644 node_modules/rxjs/add/operator/repeatWhen.js create mode 100644 node_modules/rxjs/add/operator/repeatWhen.js.map create mode 100644 node_modules/rxjs/add/operator/retry.d.ts create mode 100644 node_modules/rxjs/add/operator/retry.js create mode 100644 node_modules/rxjs/add/operator/retry.js.map create mode 100644 node_modules/rxjs/add/operator/retryWhen.d.ts create mode 100644 node_modules/rxjs/add/operator/retryWhen.js create mode 100644 node_modules/rxjs/add/operator/retryWhen.js.map create mode 100644 node_modules/rxjs/add/operator/sample.d.ts create mode 100644 node_modules/rxjs/add/operator/sample.js create mode 100644 node_modules/rxjs/add/operator/sample.js.map create mode 100644 node_modules/rxjs/add/operator/sampleTime.d.ts create mode 100644 node_modules/rxjs/add/operator/sampleTime.js create mode 100644 node_modules/rxjs/add/operator/sampleTime.js.map create mode 100644 node_modules/rxjs/add/operator/scan.d.ts create mode 100644 node_modules/rxjs/add/operator/scan.js create mode 100644 node_modules/rxjs/add/operator/scan.js.map create mode 100644 node_modules/rxjs/add/operator/sequenceEqual.d.ts create mode 100644 node_modules/rxjs/add/operator/sequenceEqual.js create mode 100644 node_modules/rxjs/add/operator/sequenceEqual.js.map create mode 100644 node_modules/rxjs/add/operator/share.d.ts create mode 100644 node_modules/rxjs/add/operator/share.js create mode 100644 node_modules/rxjs/add/operator/share.js.map create mode 100644 node_modules/rxjs/add/operator/shareReplay.d.ts create mode 100644 node_modules/rxjs/add/operator/shareReplay.js create mode 100644 node_modules/rxjs/add/operator/shareReplay.js.map create mode 100644 node_modules/rxjs/add/operator/single.d.ts create mode 100644 node_modules/rxjs/add/operator/single.js create mode 100644 node_modules/rxjs/add/operator/single.js.map create mode 100644 node_modules/rxjs/add/operator/skip.d.ts create mode 100644 node_modules/rxjs/add/operator/skip.js create mode 100644 node_modules/rxjs/add/operator/skip.js.map create mode 100644 node_modules/rxjs/add/operator/skipLast.d.ts create mode 100644 node_modules/rxjs/add/operator/skipLast.js create mode 100644 node_modules/rxjs/add/operator/skipLast.js.map create mode 100644 node_modules/rxjs/add/operator/skipUntil.d.ts create mode 100644 node_modules/rxjs/add/operator/skipUntil.js create mode 100644 node_modules/rxjs/add/operator/skipUntil.js.map create mode 100644 node_modules/rxjs/add/operator/skipWhile.d.ts create mode 100644 node_modules/rxjs/add/operator/skipWhile.js create mode 100644 node_modules/rxjs/add/operator/skipWhile.js.map create mode 100644 node_modules/rxjs/add/operator/startWith.d.ts create mode 100644 node_modules/rxjs/add/operator/startWith.js create mode 100644 node_modules/rxjs/add/operator/startWith.js.map create mode 100644 node_modules/rxjs/add/operator/subscribeOn.d.ts create mode 100644 node_modules/rxjs/add/operator/subscribeOn.js create mode 100644 node_modules/rxjs/add/operator/subscribeOn.js.map create mode 100644 node_modules/rxjs/add/operator/switch.d.ts create mode 100644 node_modules/rxjs/add/operator/switch.js create mode 100644 node_modules/rxjs/add/operator/switch.js.map create mode 100644 node_modules/rxjs/add/operator/switchMap.d.ts create mode 100644 node_modules/rxjs/add/operator/switchMap.js create mode 100644 node_modules/rxjs/add/operator/switchMap.js.map create mode 100644 node_modules/rxjs/add/operator/switchMapTo.d.ts create mode 100644 node_modules/rxjs/add/operator/switchMapTo.js create mode 100644 node_modules/rxjs/add/operator/switchMapTo.js.map create mode 100644 node_modules/rxjs/add/operator/take.d.ts create mode 100644 node_modules/rxjs/add/operator/take.js create mode 100644 node_modules/rxjs/add/operator/take.js.map create mode 100644 node_modules/rxjs/add/operator/takeLast.d.ts create mode 100644 node_modules/rxjs/add/operator/takeLast.js create mode 100644 node_modules/rxjs/add/operator/takeLast.js.map create mode 100644 node_modules/rxjs/add/operator/takeUntil.d.ts create mode 100644 node_modules/rxjs/add/operator/takeUntil.js create mode 100644 node_modules/rxjs/add/operator/takeUntil.js.map create mode 100644 node_modules/rxjs/add/operator/takeWhile.d.ts create mode 100644 node_modules/rxjs/add/operator/takeWhile.js create mode 100644 node_modules/rxjs/add/operator/takeWhile.js.map create mode 100644 node_modules/rxjs/add/operator/throttle.d.ts create mode 100644 node_modules/rxjs/add/operator/throttle.js create mode 100644 node_modules/rxjs/add/operator/throttle.js.map create mode 100644 node_modules/rxjs/add/operator/throttleTime.d.ts create mode 100644 node_modules/rxjs/add/operator/throttleTime.js create mode 100644 node_modules/rxjs/add/operator/throttleTime.js.map create mode 100644 node_modules/rxjs/add/operator/timeInterval.d.ts create mode 100644 node_modules/rxjs/add/operator/timeInterval.js create mode 100644 node_modules/rxjs/add/operator/timeInterval.js.map create mode 100644 node_modules/rxjs/add/operator/timeout.d.ts create mode 100644 node_modules/rxjs/add/operator/timeout.js create mode 100644 node_modules/rxjs/add/operator/timeout.js.map create mode 100644 node_modules/rxjs/add/operator/timeoutWith.d.ts create mode 100644 node_modules/rxjs/add/operator/timeoutWith.js create mode 100644 node_modules/rxjs/add/operator/timeoutWith.js.map create mode 100644 node_modules/rxjs/add/operator/timestamp.d.ts create mode 100644 node_modules/rxjs/add/operator/timestamp.js create mode 100644 node_modules/rxjs/add/operator/timestamp.js.map create mode 100644 node_modules/rxjs/add/operator/toArray.d.ts create mode 100644 node_modules/rxjs/add/operator/toArray.js create mode 100644 node_modules/rxjs/add/operator/toArray.js.map create mode 100644 node_modules/rxjs/add/operator/toPromise.d.ts create mode 100644 node_modules/rxjs/add/operator/toPromise.js create mode 100644 node_modules/rxjs/add/operator/toPromise.js.map create mode 100644 node_modules/rxjs/add/operator/window.d.ts create mode 100644 node_modules/rxjs/add/operator/window.js create mode 100644 node_modules/rxjs/add/operator/window.js.map create mode 100644 node_modules/rxjs/add/operator/windowCount.d.ts create mode 100644 node_modules/rxjs/add/operator/windowCount.js create mode 100644 node_modules/rxjs/add/operator/windowCount.js.map create mode 100644 node_modules/rxjs/add/operator/windowTime.d.ts create mode 100644 node_modules/rxjs/add/operator/windowTime.js create mode 100644 node_modules/rxjs/add/operator/windowTime.js.map create mode 100644 node_modules/rxjs/add/operator/windowToggle.d.ts create mode 100644 node_modules/rxjs/add/operator/windowToggle.js create mode 100644 node_modules/rxjs/add/operator/windowToggle.js.map create mode 100644 node_modules/rxjs/add/operator/windowWhen.d.ts create mode 100644 node_modules/rxjs/add/operator/windowWhen.js create mode 100644 node_modules/rxjs/add/operator/windowWhen.js.map create mode 100644 node_modules/rxjs/add/operator/withLatestFrom.d.ts create mode 100644 node_modules/rxjs/add/operator/withLatestFrom.js create mode 100644 node_modules/rxjs/add/operator/withLatestFrom.js.map create mode 100644 node_modules/rxjs/add/operator/zip.d.ts create mode 100644 node_modules/rxjs/add/operator/zip.js create mode 100644 node_modules/rxjs/add/operator/zip.js.map create mode 100644 node_modules/rxjs/add/operator/zipAll.d.ts create mode 100644 node_modules/rxjs/add/operator/zipAll.js create mode 100644 node_modules/rxjs/add/operator/zipAll.js.map create mode 100644 node_modules/rxjs/ajax/index.d.ts create mode 100644 node_modules/rxjs/ajax/index.js create mode 100644 node_modules/rxjs/ajax/index.js.map create mode 100644 node_modules/rxjs/ajax/package.json create mode 100644 node_modules/rxjs/bundles/rxjs.umd.js create mode 100644 node_modules/rxjs/bundles/rxjs.umd.js.map create mode 100644 node_modules/rxjs/bundles/rxjs.umd.min.js create mode 100644 node_modules/rxjs/bundles/rxjs.umd.min.js.map create mode 100644 node_modules/rxjs/fetch/index.d.ts create mode 100644 node_modules/rxjs/fetch/index.js create mode 100644 node_modules/rxjs/fetch/index.js.map create mode 100644 node_modules/rxjs/fetch/package.json create mode 100644 node_modules/rxjs/index.d.ts create mode 100644 node_modules/rxjs/index.js create mode 100644 node_modules/rxjs/index.js.map create mode 100644 node_modules/rxjs/interfaces.d.ts create mode 100644 node_modules/rxjs/interfaces.js create mode 100644 node_modules/rxjs/interfaces.js.map create mode 100644 node_modules/rxjs/internal-compatibility/index.d.ts create mode 100644 node_modules/rxjs/internal-compatibility/index.js create mode 100644 node_modules/rxjs/internal-compatibility/index.js.map create mode 100644 node_modules/rxjs/internal-compatibility/package.json create mode 100644 node_modules/rxjs/internal/AsyncSubject.d.ts create mode 100644 node_modules/rxjs/internal/AsyncSubject.js create mode 100644 node_modules/rxjs/internal/AsyncSubject.js.map create mode 100644 node_modules/rxjs/internal/BehaviorSubject.d.ts create mode 100644 node_modules/rxjs/internal/BehaviorSubject.js create mode 100644 node_modules/rxjs/internal/BehaviorSubject.js.map create mode 100644 node_modules/rxjs/internal/InnerSubscriber.d.ts create mode 100644 node_modules/rxjs/internal/InnerSubscriber.js create mode 100644 node_modules/rxjs/internal/InnerSubscriber.js.map create mode 100644 node_modules/rxjs/internal/Notification.d.ts create mode 100644 node_modules/rxjs/internal/Notification.js create mode 100644 node_modules/rxjs/internal/Notification.js.map create mode 100644 node_modules/rxjs/internal/Observable.d.ts create mode 100644 node_modules/rxjs/internal/Observable.js create mode 100644 node_modules/rxjs/internal/Observable.js.map create mode 100644 node_modules/rxjs/internal/Observer.d.ts create mode 100644 node_modules/rxjs/internal/Observer.js create mode 100644 node_modules/rxjs/internal/Observer.js.map create mode 100644 node_modules/rxjs/internal/Operator.d.ts create mode 100644 node_modules/rxjs/internal/Operator.js create mode 100644 node_modules/rxjs/internal/Operator.js.map create mode 100644 node_modules/rxjs/internal/OuterSubscriber.d.ts create mode 100644 node_modules/rxjs/internal/OuterSubscriber.js create mode 100644 node_modules/rxjs/internal/OuterSubscriber.js.map create mode 100644 node_modules/rxjs/internal/ReplaySubject.d.ts create mode 100644 node_modules/rxjs/internal/ReplaySubject.js create mode 100644 node_modules/rxjs/internal/ReplaySubject.js.map create mode 100644 node_modules/rxjs/internal/Rx.d.ts create mode 100644 node_modules/rxjs/internal/Rx.js create mode 100644 node_modules/rxjs/internal/Rx.js.map create mode 100644 node_modules/rxjs/internal/Scheduler.d.ts create mode 100644 node_modules/rxjs/internal/Scheduler.js create mode 100644 node_modules/rxjs/internal/Scheduler.js.map create mode 100644 node_modules/rxjs/internal/Subject.d.ts create mode 100644 node_modules/rxjs/internal/Subject.js create mode 100644 node_modules/rxjs/internal/Subject.js.map create mode 100644 node_modules/rxjs/internal/SubjectSubscription.d.ts create mode 100644 node_modules/rxjs/internal/SubjectSubscription.js create mode 100644 node_modules/rxjs/internal/SubjectSubscription.js.map create mode 100644 node_modules/rxjs/internal/Subscriber.d.ts create mode 100644 node_modules/rxjs/internal/Subscriber.js create mode 100644 node_modules/rxjs/internal/Subscriber.js.map create mode 100644 node_modules/rxjs/internal/Subscription.d.ts create mode 100644 node_modules/rxjs/internal/Subscription.js create mode 100644 node_modules/rxjs/internal/Subscription.js.map create mode 100644 node_modules/rxjs/internal/config.d.ts create mode 100644 node_modules/rxjs/internal/config.js create mode 100644 node_modules/rxjs/internal/config.js.map create mode 100644 node_modules/rxjs/internal/innerSubscribe.d.ts create mode 100644 node_modules/rxjs/internal/innerSubscribe.js create mode 100644 node_modules/rxjs/internal/innerSubscribe.js.map create mode 100644 node_modules/rxjs/internal/observable/ConnectableObservable.d.ts create mode 100644 node_modules/rxjs/internal/observable/ConnectableObservable.js create mode 100644 node_modules/rxjs/internal/observable/ConnectableObservable.js.map create mode 100644 node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts create mode 100644 node_modules/rxjs/internal/observable/SubscribeOnObservable.js create mode 100644 node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map create mode 100644 node_modules/rxjs/internal/observable/bindCallback.d.ts create mode 100644 node_modules/rxjs/internal/observable/bindCallback.js create mode 100644 node_modules/rxjs/internal/observable/bindCallback.js.map create mode 100644 node_modules/rxjs/internal/observable/bindNodeCallback.d.ts create mode 100644 node_modules/rxjs/internal/observable/bindNodeCallback.js create mode 100644 node_modules/rxjs/internal/observable/bindNodeCallback.js.map create mode 100644 node_modules/rxjs/internal/observable/combineLatest.d.ts create mode 100644 node_modules/rxjs/internal/observable/combineLatest.js create mode 100644 node_modules/rxjs/internal/observable/combineLatest.js.map create mode 100644 node_modules/rxjs/internal/observable/concat.d.ts create mode 100644 node_modules/rxjs/internal/observable/concat.js create mode 100644 node_modules/rxjs/internal/observable/concat.js.map create mode 100644 node_modules/rxjs/internal/observable/defer.d.ts create mode 100644 node_modules/rxjs/internal/observable/defer.js create mode 100644 node_modules/rxjs/internal/observable/defer.js.map create mode 100644 node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts create mode 100644 node_modules/rxjs/internal/observable/dom/AjaxObservable.js create mode 100644 node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map create mode 100644 node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts create mode 100644 node_modules/rxjs/internal/observable/dom/WebSocketSubject.js create mode 100644 node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map create mode 100644 node_modules/rxjs/internal/observable/dom/ajax.d.ts create mode 100644 node_modules/rxjs/internal/observable/dom/ajax.js create mode 100644 node_modules/rxjs/internal/observable/dom/ajax.js.map create mode 100644 node_modules/rxjs/internal/observable/dom/fetch.d.ts create mode 100644 node_modules/rxjs/internal/observable/dom/fetch.js create mode 100644 node_modules/rxjs/internal/observable/dom/fetch.js.map create mode 100644 node_modules/rxjs/internal/observable/dom/webSocket.d.ts create mode 100644 node_modules/rxjs/internal/observable/dom/webSocket.js create mode 100644 node_modules/rxjs/internal/observable/dom/webSocket.js.map create mode 100644 node_modules/rxjs/internal/observable/empty.d.ts create mode 100644 node_modules/rxjs/internal/observable/empty.js create mode 100644 node_modules/rxjs/internal/observable/empty.js.map create mode 100644 node_modules/rxjs/internal/observable/forkJoin.d.ts create mode 100644 node_modules/rxjs/internal/observable/forkJoin.js create mode 100644 node_modules/rxjs/internal/observable/forkJoin.js.map create mode 100644 node_modules/rxjs/internal/observable/from.d.ts create mode 100644 node_modules/rxjs/internal/observable/from.js create mode 100644 node_modules/rxjs/internal/observable/from.js.map create mode 100644 node_modules/rxjs/internal/observable/fromArray.d.ts create mode 100644 node_modules/rxjs/internal/observable/fromArray.js create mode 100644 node_modules/rxjs/internal/observable/fromArray.js.map create mode 100644 node_modules/rxjs/internal/observable/fromEvent.d.ts create mode 100644 node_modules/rxjs/internal/observable/fromEvent.js create mode 100644 node_modules/rxjs/internal/observable/fromEvent.js.map create mode 100644 node_modules/rxjs/internal/observable/fromEventPattern.d.ts create mode 100644 node_modules/rxjs/internal/observable/fromEventPattern.js create mode 100644 node_modules/rxjs/internal/observable/fromEventPattern.js.map create mode 100644 node_modules/rxjs/internal/observable/fromIterable.d.ts create mode 100644 node_modules/rxjs/internal/observable/fromIterable.js create mode 100644 node_modules/rxjs/internal/observable/fromIterable.js.map create mode 100644 node_modules/rxjs/internal/observable/fromPromise.d.ts create mode 100644 node_modules/rxjs/internal/observable/fromPromise.js create mode 100644 node_modules/rxjs/internal/observable/fromPromise.js.map create mode 100644 node_modules/rxjs/internal/observable/generate.d.ts create mode 100644 node_modules/rxjs/internal/observable/generate.js create mode 100644 node_modules/rxjs/internal/observable/generate.js.map create mode 100644 node_modules/rxjs/internal/observable/iif.d.ts create mode 100644 node_modules/rxjs/internal/observable/iif.js create mode 100644 node_modules/rxjs/internal/observable/iif.js.map create mode 100644 node_modules/rxjs/internal/observable/interval.d.ts create mode 100644 node_modules/rxjs/internal/observable/interval.js create mode 100644 node_modules/rxjs/internal/observable/interval.js.map create mode 100644 node_modules/rxjs/internal/observable/merge.d.ts create mode 100644 node_modules/rxjs/internal/observable/merge.js create mode 100644 node_modules/rxjs/internal/observable/merge.js.map create mode 100644 node_modules/rxjs/internal/observable/never.d.ts create mode 100644 node_modules/rxjs/internal/observable/never.js create mode 100644 node_modules/rxjs/internal/observable/never.js.map create mode 100644 node_modules/rxjs/internal/observable/of.d.ts create mode 100644 node_modules/rxjs/internal/observable/of.js create mode 100644 node_modules/rxjs/internal/observable/of.js.map create mode 100644 node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts create mode 100644 node_modules/rxjs/internal/observable/onErrorResumeNext.js create mode 100644 node_modules/rxjs/internal/observable/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/internal/observable/pairs.d.ts create mode 100644 node_modules/rxjs/internal/observable/pairs.js create mode 100644 node_modules/rxjs/internal/observable/pairs.js.map create mode 100644 node_modules/rxjs/internal/observable/partition.d.ts create mode 100644 node_modules/rxjs/internal/observable/partition.js create mode 100644 node_modules/rxjs/internal/observable/partition.js.map create mode 100644 node_modules/rxjs/internal/observable/race.d.ts create mode 100644 node_modules/rxjs/internal/observable/race.js create mode 100644 node_modules/rxjs/internal/observable/race.js.map create mode 100644 node_modules/rxjs/internal/observable/range.d.ts create mode 100644 node_modules/rxjs/internal/observable/range.js create mode 100644 node_modules/rxjs/internal/observable/range.js.map create mode 100644 node_modules/rxjs/internal/observable/throwError.d.ts create mode 100644 node_modules/rxjs/internal/observable/throwError.js create mode 100644 node_modules/rxjs/internal/observable/throwError.js.map create mode 100644 node_modules/rxjs/internal/observable/timer.d.ts create mode 100644 node_modules/rxjs/internal/observable/timer.js create mode 100644 node_modules/rxjs/internal/observable/timer.js.map create mode 100644 node_modules/rxjs/internal/observable/using.d.ts create mode 100644 node_modules/rxjs/internal/observable/using.js create mode 100644 node_modules/rxjs/internal/observable/using.js.map create mode 100644 node_modules/rxjs/internal/observable/zip.d.ts create mode 100644 node_modules/rxjs/internal/observable/zip.js create mode 100644 node_modules/rxjs/internal/observable/zip.js.map create mode 100644 node_modules/rxjs/internal/operators/audit.d.ts create mode 100644 node_modules/rxjs/internal/operators/audit.js create mode 100644 node_modules/rxjs/internal/operators/audit.js.map create mode 100644 node_modules/rxjs/internal/operators/auditTime.d.ts create mode 100644 node_modules/rxjs/internal/operators/auditTime.js create mode 100644 node_modules/rxjs/internal/operators/auditTime.js.map create mode 100644 node_modules/rxjs/internal/operators/buffer.d.ts create mode 100644 node_modules/rxjs/internal/operators/buffer.js create mode 100644 node_modules/rxjs/internal/operators/buffer.js.map create mode 100644 node_modules/rxjs/internal/operators/bufferCount.d.ts create mode 100644 node_modules/rxjs/internal/operators/bufferCount.js create mode 100644 node_modules/rxjs/internal/operators/bufferCount.js.map create mode 100644 node_modules/rxjs/internal/operators/bufferTime.d.ts create mode 100644 node_modules/rxjs/internal/operators/bufferTime.js create mode 100644 node_modules/rxjs/internal/operators/bufferTime.js.map create mode 100644 node_modules/rxjs/internal/operators/bufferToggle.d.ts create mode 100644 node_modules/rxjs/internal/operators/bufferToggle.js create mode 100644 node_modules/rxjs/internal/operators/bufferToggle.js.map create mode 100644 node_modules/rxjs/internal/operators/bufferWhen.d.ts create mode 100644 node_modules/rxjs/internal/operators/bufferWhen.js create mode 100644 node_modules/rxjs/internal/operators/bufferWhen.js.map create mode 100644 node_modules/rxjs/internal/operators/catchError.d.ts create mode 100644 node_modules/rxjs/internal/operators/catchError.js create mode 100644 node_modules/rxjs/internal/operators/catchError.js.map create mode 100644 node_modules/rxjs/internal/operators/combineAll.d.ts create mode 100644 node_modules/rxjs/internal/operators/combineAll.js create mode 100644 node_modules/rxjs/internal/operators/combineAll.js.map create mode 100644 node_modules/rxjs/internal/operators/combineLatest.d.ts create mode 100644 node_modules/rxjs/internal/operators/combineLatest.js create mode 100644 node_modules/rxjs/internal/operators/combineLatest.js.map create mode 100644 node_modules/rxjs/internal/operators/concat.d.ts create mode 100644 node_modules/rxjs/internal/operators/concat.js create mode 100644 node_modules/rxjs/internal/operators/concat.js.map create mode 100644 node_modules/rxjs/internal/operators/concatAll.d.ts create mode 100644 node_modules/rxjs/internal/operators/concatAll.js create mode 100644 node_modules/rxjs/internal/operators/concatAll.js.map create mode 100644 node_modules/rxjs/internal/operators/concatMap.d.ts create mode 100644 node_modules/rxjs/internal/operators/concatMap.js create mode 100644 node_modules/rxjs/internal/operators/concatMap.js.map create mode 100644 node_modules/rxjs/internal/operators/concatMapTo.d.ts create mode 100644 node_modules/rxjs/internal/operators/concatMapTo.js create mode 100644 node_modules/rxjs/internal/operators/concatMapTo.js.map create mode 100644 node_modules/rxjs/internal/operators/count.d.ts create mode 100644 node_modules/rxjs/internal/operators/count.js create mode 100644 node_modules/rxjs/internal/operators/count.js.map create mode 100644 node_modules/rxjs/internal/operators/debounce.d.ts create mode 100644 node_modules/rxjs/internal/operators/debounce.js create mode 100644 node_modules/rxjs/internal/operators/debounce.js.map create mode 100644 node_modules/rxjs/internal/operators/debounceTime.d.ts create mode 100644 node_modules/rxjs/internal/operators/debounceTime.js create mode 100644 node_modules/rxjs/internal/operators/debounceTime.js.map create mode 100644 node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts create mode 100644 node_modules/rxjs/internal/operators/defaultIfEmpty.js create mode 100644 node_modules/rxjs/internal/operators/defaultIfEmpty.js.map create mode 100644 node_modules/rxjs/internal/operators/delay.d.ts create mode 100644 node_modules/rxjs/internal/operators/delay.js create mode 100644 node_modules/rxjs/internal/operators/delay.js.map create mode 100644 node_modules/rxjs/internal/operators/delayWhen.d.ts create mode 100644 node_modules/rxjs/internal/operators/delayWhen.js create mode 100644 node_modules/rxjs/internal/operators/delayWhen.js.map create mode 100644 node_modules/rxjs/internal/operators/dematerialize.d.ts create mode 100644 node_modules/rxjs/internal/operators/dematerialize.js create mode 100644 node_modules/rxjs/internal/operators/dematerialize.js.map create mode 100644 node_modules/rxjs/internal/operators/distinct.d.ts create mode 100644 node_modules/rxjs/internal/operators/distinct.js create mode 100644 node_modules/rxjs/internal/operators/distinct.js.map create mode 100644 node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts create mode 100644 node_modules/rxjs/internal/operators/distinctUntilChanged.js create mode 100644 node_modules/rxjs/internal/operators/distinctUntilChanged.js.map create mode 100644 node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts create mode 100644 node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js create mode 100644 node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map create mode 100644 node_modules/rxjs/internal/operators/elementAt.d.ts create mode 100644 node_modules/rxjs/internal/operators/elementAt.js create mode 100644 node_modules/rxjs/internal/operators/elementAt.js.map create mode 100644 node_modules/rxjs/internal/operators/endWith.d.ts create mode 100644 node_modules/rxjs/internal/operators/endWith.js create mode 100644 node_modules/rxjs/internal/operators/endWith.js.map create mode 100644 node_modules/rxjs/internal/operators/every.d.ts create mode 100644 node_modules/rxjs/internal/operators/every.js create mode 100644 node_modules/rxjs/internal/operators/every.js.map create mode 100644 node_modules/rxjs/internal/operators/exhaust.d.ts create mode 100644 node_modules/rxjs/internal/operators/exhaust.js create mode 100644 node_modules/rxjs/internal/operators/exhaust.js.map create mode 100644 node_modules/rxjs/internal/operators/exhaustMap.d.ts create mode 100644 node_modules/rxjs/internal/operators/exhaustMap.js create mode 100644 node_modules/rxjs/internal/operators/exhaustMap.js.map create mode 100644 node_modules/rxjs/internal/operators/expand.d.ts create mode 100644 node_modules/rxjs/internal/operators/expand.js create mode 100644 node_modules/rxjs/internal/operators/expand.js.map create mode 100644 node_modules/rxjs/internal/operators/filter.d.ts create mode 100644 node_modules/rxjs/internal/operators/filter.js create mode 100644 node_modules/rxjs/internal/operators/filter.js.map create mode 100644 node_modules/rxjs/internal/operators/finalize.d.ts create mode 100644 node_modules/rxjs/internal/operators/finalize.js create mode 100644 node_modules/rxjs/internal/operators/finalize.js.map create mode 100644 node_modules/rxjs/internal/operators/find.d.ts create mode 100644 node_modules/rxjs/internal/operators/find.js create mode 100644 node_modules/rxjs/internal/operators/find.js.map create mode 100644 node_modules/rxjs/internal/operators/findIndex.d.ts create mode 100644 node_modules/rxjs/internal/operators/findIndex.js create mode 100644 node_modules/rxjs/internal/operators/findIndex.js.map create mode 100644 node_modules/rxjs/internal/operators/first.d.ts create mode 100644 node_modules/rxjs/internal/operators/first.js create mode 100644 node_modules/rxjs/internal/operators/first.js.map create mode 100644 node_modules/rxjs/internal/operators/groupBy.d.ts create mode 100644 node_modules/rxjs/internal/operators/groupBy.js create mode 100644 node_modules/rxjs/internal/operators/groupBy.js.map create mode 100644 node_modules/rxjs/internal/operators/ignoreElements.d.ts create mode 100644 node_modules/rxjs/internal/operators/ignoreElements.js create mode 100644 node_modules/rxjs/internal/operators/ignoreElements.js.map create mode 100644 node_modules/rxjs/internal/operators/index.d.ts create mode 100644 node_modules/rxjs/internal/operators/index.js create mode 100644 node_modules/rxjs/internal/operators/index.js.map create mode 100644 node_modules/rxjs/internal/operators/isEmpty.d.ts create mode 100644 node_modules/rxjs/internal/operators/isEmpty.js create mode 100644 node_modules/rxjs/internal/operators/isEmpty.js.map create mode 100644 node_modules/rxjs/internal/operators/last.d.ts create mode 100644 node_modules/rxjs/internal/operators/last.js create mode 100644 node_modules/rxjs/internal/operators/last.js.map create mode 100644 node_modules/rxjs/internal/operators/map.d.ts create mode 100644 node_modules/rxjs/internal/operators/map.js create mode 100644 node_modules/rxjs/internal/operators/map.js.map create mode 100644 node_modules/rxjs/internal/operators/mapTo.d.ts create mode 100644 node_modules/rxjs/internal/operators/mapTo.js create mode 100644 node_modules/rxjs/internal/operators/mapTo.js.map create mode 100644 node_modules/rxjs/internal/operators/materialize.d.ts create mode 100644 node_modules/rxjs/internal/operators/materialize.js create mode 100644 node_modules/rxjs/internal/operators/materialize.js.map create mode 100644 node_modules/rxjs/internal/operators/max.d.ts create mode 100644 node_modules/rxjs/internal/operators/max.js create mode 100644 node_modules/rxjs/internal/operators/max.js.map create mode 100644 node_modules/rxjs/internal/operators/merge.d.ts create mode 100644 node_modules/rxjs/internal/operators/merge.js create mode 100644 node_modules/rxjs/internal/operators/merge.js.map create mode 100644 node_modules/rxjs/internal/operators/mergeAll.d.ts create mode 100644 node_modules/rxjs/internal/operators/mergeAll.js create mode 100644 node_modules/rxjs/internal/operators/mergeAll.js.map create mode 100644 node_modules/rxjs/internal/operators/mergeMap.d.ts create mode 100644 node_modules/rxjs/internal/operators/mergeMap.js create mode 100644 node_modules/rxjs/internal/operators/mergeMap.js.map create mode 100644 node_modules/rxjs/internal/operators/mergeMapTo.d.ts create mode 100644 node_modules/rxjs/internal/operators/mergeMapTo.js create mode 100644 node_modules/rxjs/internal/operators/mergeMapTo.js.map create mode 100644 node_modules/rxjs/internal/operators/mergeScan.d.ts create mode 100644 node_modules/rxjs/internal/operators/mergeScan.js create mode 100644 node_modules/rxjs/internal/operators/mergeScan.js.map create mode 100644 node_modules/rxjs/internal/operators/min.d.ts create mode 100644 node_modules/rxjs/internal/operators/min.js create mode 100644 node_modules/rxjs/internal/operators/min.js.map create mode 100644 node_modules/rxjs/internal/operators/multicast.d.ts create mode 100644 node_modules/rxjs/internal/operators/multicast.js create mode 100644 node_modules/rxjs/internal/operators/multicast.js.map create mode 100644 node_modules/rxjs/internal/operators/observeOn.d.ts create mode 100644 node_modules/rxjs/internal/operators/observeOn.js create mode 100644 node_modules/rxjs/internal/operators/observeOn.js.map create mode 100644 node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts create mode 100644 node_modules/rxjs/internal/operators/onErrorResumeNext.js create mode 100644 node_modules/rxjs/internal/operators/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/internal/operators/pairwise.d.ts create mode 100644 node_modules/rxjs/internal/operators/pairwise.js create mode 100644 node_modules/rxjs/internal/operators/pairwise.js.map create mode 100644 node_modules/rxjs/internal/operators/partition.d.ts create mode 100644 node_modules/rxjs/internal/operators/partition.js create mode 100644 node_modules/rxjs/internal/operators/partition.js.map create mode 100644 node_modules/rxjs/internal/operators/pluck.d.ts create mode 100644 node_modules/rxjs/internal/operators/pluck.js create mode 100644 node_modules/rxjs/internal/operators/pluck.js.map create mode 100644 node_modules/rxjs/internal/operators/publish.d.ts create mode 100644 node_modules/rxjs/internal/operators/publish.js create mode 100644 node_modules/rxjs/internal/operators/publish.js.map create mode 100644 node_modules/rxjs/internal/operators/publishBehavior.d.ts create mode 100644 node_modules/rxjs/internal/operators/publishBehavior.js create mode 100644 node_modules/rxjs/internal/operators/publishBehavior.js.map create mode 100644 node_modules/rxjs/internal/operators/publishLast.d.ts create mode 100644 node_modules/rxjs/internal/operators/publishLast.js create mode 100644 node_modules/rxjs/internal/operators/publishLast.js.map create mode 100644 node_modules/rxjs/internal/operators/publishReplay.d.ts create mode 100644 node_modules/rxjs/internal/operators/publishReplay.js create mode 100644 node_modules/rxjs/internal/operators/publishReplay.js.map create mode 100644 node_modules/rxjs/internal/operators/race.d.ts create mode 100644 node_modules/rxjs/internal/operators/race.js create mode 100644 node_modules/rxjs/internal/operators/race.js.map create mode 100644 node_modules/rxjs/internal/operators/reduce.d.ts create mode 100644 node_modules/rxjs/internal/operators/reduce.js create mode 100644 node_modules/rxjs/internal/operators/reduce.js.map create mode 100644 node_modules/rxjs/internal/operators/refCount.d.ts create mode 100644 node_modules/rxjs/internal/operators/refCount.js create mode 100644 node_modules/rxjs/internal/operators/refCount.js.map create mode 100644 node_modules/rxjs/internal/operators/repeat.d.ts create mode 100644 node_modules/rxjs/internal/operators/repeat.js create mode 100644 node_modules/rxjs/internal/operators/repeat.js.map create mode 100644 node_modules/rxjs/internal/operators/repeatWhen.d.ts create mode 100644 node_modules/rxjs/internal/operators/repeatWhen.js create mode 100644 node_modules/rxjs/internal/operators/repeatWhen.js.map create mode 100644 node_modules/rxjs/internal/operators/retry.d.ts create mode 100644 node_modules/rxjs/internal/operators/retry.js create mode 100644 node_modules/rxjs/internal/operators/retry.js.map create mode 100644 node_modules/rxjs/internal/operators/retryWhen.d.ts create mode 100644 node_modules/rxjs/internal/operators/retryWhen.js create mode 100644 node_modules/rxjs/internal/operators/retryWhen.js.map create mode 100644 node_modules/rxjs/internal/operators/sample.d.ts create mode 100644 node_modules/rxjs/internal/operators/sample.js create mode 100644 node_modules/rxjs/internal/operators/sample.js.map create mode 100644 node_modules/rxjs/internal/operators/sampleTime.d.ts create mode 100644 node_modules/rxjs/internal/operators/sampleTime.js create mode 100644 node_modules/rxjs/internal/operators/sampleTime.js.map create mode 100644 node_modules/rxjs/internal/operators/scan.d.ts create mode 100644 node_modules/rxjs/internal/operators/scan.js create mode 100644 node_modules/rxjs/internal/operators/scan.js.map create mode 100644 node_modules/rxjs/internal/operators/sequenceEqual.d.ts create mode 100644 node_modules/rxjs/internal/operators/sequenceEqual.js create mode 100644 node_modules/rxjs/internal/operators/sequenceEqual.js.map create mode 100644 node_modules/rxjs/internal/operators/share.d.ts create mode 100644 node_modules/rxjs/internal/operators/share.js create mode 100644 node_modules/rxjs/internal/operators/share.js.map create mode 100644 node_modules/rxjs/internal/operators/shareReplay.d.ts create mode 100644 node_modules/rxjs/internal/operators/shareReplay.js create mode 100644 node_modules/rxjs/internal/operators/shareReplay.js.map create mode 100644 node_modules/rxjs/internal/operators/single.d.ts create mode 100644 node_modules/rxjs/internal/operators/single.js create mode 100644 node_modules/rxjs/internal/operators/single.js.map create mode 100644 node_modules/rxjs/internal/operators/skip.d.ts create mode 100644 node_modules/rxjs/internal/operators/skip.js create mode 100644 node_modules/rxjs/internal/operators/skip.js.map create mode 100644 node_modules/rxjs/internal/operators/skipLast.d.ts create mode 100644 node_modules/rxjs/internal/operators/skipLast.js create mode 100644 node_modules/rxjs/internal/operators/skipLast.js.map create mode 100644 node_modules/rxjs/internal/operators/skipUntil.d.ts create mode 100644 node_modules/rxjs/internal/operators/skipUntil.js create mode 100644 node_modules/rxjs/internal/operators/skipUntil.js.map create mode 100644 node_modules/rxjs/internal/operators/skipWhile.d.ts create mode 100644 node_modules/rxjs/internal/operators/skipWhile.js create mode 100644 node_modules/rxjs/internal/operators/skipWhile.js.map create mode 100644 node_modules/rxjs/internal/operators/startWith.d.ts create mode 100644 node_modules/rxjs/internal/operators/startWith.js create mode 100644 node_modules/rxjs/internal/operators/startWith.js.map create mode 100644 node_modules/rxjs/internal/operators/subscribeOn.d.ts create mode 100644 node_modules/rxjs/internal/operators/subscribeOn.js create mode 100644 node_modules/rxjs/internal/operators/subscribeOn.js.map create mode 100644 node_modules/rxjs/internal/operators/switchAll.d.ts create mode 100644 node_modules/rxjs/internal/operators/switchAll.js create mode 100644 node_modules/rxjs/internal/operators/switchAll.js.map create mode 100644 node_modules/rxjs/internal/operators/switchMap.d.ts create mode 100644 node_modules/rxjs/internal/operators/switchMap.js create mode 100644 node_modules/rxjs/internal/operators/switchMap.js.map create mode 100644 node_modules/rxjs/internal/operators/switchMapTo.d.ts create mode 100644 node_modules/rxjs/internal/operators/switchMapTo.js create mode 100644 node_modules/rxjs/internal/operators/switchMapTo.js.map create mode 100644 node_modules/rxjs/internal/operators/take.d.ts create mode 100644 node_modules/rxjs/internal/operators/take.js create mode 100644 node_modules/rxjs/internal/operators/take.js.map create mode 100644 node_modules/rxjs/internal/operators/takeLast.d.ts create mode 100644 node_modules/rxjs/internal/operators/takeLast.js create mode 100644 node_modules/rxjs/internal/operators/takeLast.js.map create mode 100644 node_modules/rxjs/internal/operators/takeUntil.d.ts create mode 100644 node_modules/rxjs/internal/operators/takeUntil.js create mode 100644 node_modules/rxjs/internal/operators/takeUntil.js.map create mode 100644 node_modules/rxjs/internal/operators/takeWhile.d.ts create mode 100644 node_modules/rxjs/internal/operators/takeWhile.js create mode 100644 node_modules/rxjs/internal/operators/takeWhile.js.map create mode 100644 node_modules/rxjs/internal/operators/tap.d.ts create mode 100644 node_modules/rxjs/internal/operators/tap.js create mode 100644 node_modules/rxjs/internal/operators/tap.js.map create mode 100644 node_modules/rxjs/internal/operators/throttle.d.ts create mode 100644 node_modules/rxjs/internal/operators/throttle.js create mode 100644 node_modules/rxjs/internal/operators/throttle.js.map create mode 100644 node_modules/rxjs/internal/operators/throttleTime.d.ts create mode 100644 node_modules/rxjs/internal/operators/throttleTime.js create mode 100644 node_modules/rxjs/internal/operators/throttleTime.js.map create mode 100644 node_modules/rxjs/internal/operators/throwIfEmpty.d.ts create mode 100644 node_modules/rxjs/internal/operators/throwIfEmpty.js create mode 100644 node_modules/rxjs/internal/operators/throwIfEmpty.js.map create mode 100644 node_modules/rxjs/internal/operators/timeInterval.d.ts create mode 100644 node_modules/rxjs/internal/operators/timeInterval.js create mode 100644 node_modules/rxjs/internal/operators/timeInterval.js.map create mode 100644 node_modules/rxjs/internal/operators/timeout.d.ts create mode 100644 node_modules/rxjs/internal/operators/timeout.js create mode 100644 node_modules/rxjs/internal/operators/timeout.js.map create mode 100644 node_modules/rxjs/internal/operators/timeoutWith.d.ts create mode 100644 node_modules/rxjs/internal/operators/timeoutWith.js create mode 100644 node_modules/rxjs/internal/operators/timeoutWith.js.map create mode 100644 node_modules/rxjs/internal/operators/timestamp.d.ts create mode 100644 node_modules/rxjs/internal/operators/timestamp.js create mode 100644 node_modules/rxjs/internal/operators/timestamp.js.map create mode 100644 node_modules/rxjs/internal/operators/toArray.d.ts create mode 100644 node_modules/rxjs/internal/operators/toArray.js create mode 100644 node_modules/rxjs/internal/operators/toArray.js.map create mode 100644 node_modules/rxjs/internal/operators/window.d.ts create mode 100644 node_modules/rxjs/internal/operators/window.js create mode 100644 node_modules/rxjs/internal/operators/window.js.map create mode 100644 node_modules/rxjs/internal/operators/windowCount.d.ts create mode 100644 node_modules/rxjs/internal/operators/windowCount.js create mode 100644 node_modules/rxjs/internal/operators/windowCount.js.map create mode 100644 node_modules/rxjs/internal/operators/windowTime.d.ts create mode 100644 node_modules/rxjs/internal/operators/windowTime.js create mode 100644 node_modules/rxjs/internal/operators/windowTime.js.map create mode 100644 node_modules/rxjs/internal/operators/windowToggle.d.ts create mode 100644 node_modules/rxjs/internal/operators/windowToggle.js create mode 100644 node_modules/rxjs/internal/operators/windowToggle.js.map create mode 100644 node_modules/rxjs/internal/operators/windowWhen.d.ts create mode 100644 node_modules/rxjs/internal/operators/windowWhen.js create mode 100644 node_modules/rxjs/internal/operators/windowWhen.js.map create mode 100644 node_modules/rxjs/internal/operators/withLatestFrom.d.ts create mode 100644 node_modules/rxjs/internal/operators/withLatestFrom.js create mode 100644 node_modules/rxjs/internal/operators/withLatestFrom.js.map create mode 100644 node_modules/rxjs/internal/operators/zip.d.ts create mode 100644 node_modules/rxjs/internal/operators/zip.js create mode 100644 node_modules/rxjs/internal/operators/zip.js.map create mode 100644 node_modules/rxjs/internal/operators/zipAll.d.ts create mode 100644 node_modules/rxjs/internal/operators/zipAll.js create mode 100644 node_modules/rxjs/internal/operators/zipAll.js.map create mode 100644 node_modules/rxjs/internal/scheduled/scheduleArray.d.ts create mode 100644 node_modules/rxjs/internal/scheduled/scheduleArray.js create mode 100644 node_modules/rxjs/internal/scheduled/scheduleArray.js.map create mode 100644 node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts create mode 100644 node_modules/rxjs/internal/scheduled/scheduleIterable.js create mode 100644 node_modules/rxjs/internal/scheduled/scheduleIterable.js.map create mode 100644 node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts create mode 100644 node_modules/rxjs/internal/scheduled/scheduleObservable.js create mode 100644 node_modules/rxjs/internal/scheduled/scheduleObservable.js.map create mode 100644 node_modules/rxjs/internal/scheduled/schedulePromise.d.ts create mode 100644 node_modules/rxjs/internal/scheduled/schedulePromise.js create mode 100644 node_modules/rxjs/internal/scheduled/schedulePromise.js.map create mode 100644 node_modules/rxjs/internal/scheduled/scheduled.d.ts create mode 100644 node_modules/rxjs/internal/scheduled/scheduled.js create mode 100644 node_modules/rxjs/internal/scheduled/scheduled.js.map create mode 100644 node_modules/rxjs/internal/scheduler/Action.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/Action.js create mode 100644 node_modules/rxjs/internal/scheduler/Action.js.map create mode 100644 node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/AnimationFrameAction.js create mode 100644 node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map create mode 100644 node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js create mode 100644 node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map create mode 100644 node_modules/rxjs/internal/scheduler/AsapAction.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/AsapAction.js create mode 100644 node_modules/rxjs/internal/scheduler/AsapAction.js.map create mode 100644 node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/AsapScheduler.js create mode 100644 node_modules/rxjs/internal/scheduler/AsapScheduler.js.map create mode 100644 node_modules/rxjs/internal/scheduler/AsyncAction.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/AsyncAction.js create mode 100644 node_modules/rxjs/internal/scheduler/AsyncAction.js.map create mode 100644 node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/AsyncScheduler.js create mode 100644 node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map create mode 100644 node_modules/rxjs/internal/scheduler/QueueAction.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/QueueAction.js create mode 100644 node_modules/rxjs/internal/scheduler/QueueAction.js.map create mode 100644 node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/QueueScheduler.js create mode 100644 node_modules/rxjs/internal/scheduler/QueueScheduler.js.map create mode 100644 node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js create mode 100644 node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map create mode 100644 node_modules/rxjs/internal/scheduler/animationFrame.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/animationFrame.js create mode 100644 node_modules/rxjs/internal/scheduler/animationFrame.js.map create mode 100644 node_modules/rxjs/internal/scheduler/asap.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/asap.js create mode 100644 node_modules/rxjs/internal/scheduler/asap.js.map create mode 100644 node_modules/rxjs/internal/scheduler/async.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/async.js create mode 100644 node_modules/rxjs/internal/scheduler/async.js.map create mode 100644 node_modules/rxjs/internal/scheduler/queue.d.ts create mode 100644 node_modules/rxjs/internal/scheduler/queue.js create mode 100644 node_modules/rxjs/internal/scheduler/queue.js.map create mode 100644 node_modules/rxjs/internal/symbol/iterator.d.ts create mode 100644 node_modules/rxjs/internal/symbol/iterator.js create mode 100644 node_modules/rxjs/internal/symbol/iterator.js.map create mode 100644 node_modules/rxjs/internal/symbol/observable.d.ts create mode 100644 node_modules/rxjs/internal/symbol/observable.js create mode 100644 node_modules/rxjs/internal/symbol/observable.js.map create mode 100644 node_modules/rxjs/internal/symbol/rxSubscriber.d.ts create mode 100644 node_modules/rxjs/internal/symbol/rxSubscriber.js create mode 100644 node_modules/rxjs/internal/symbol/rxSubscriber.js.map create mode 100644 node_modules/rxjs/internal/testing/ColdObservable.d.ts create mode 100644 node_modules/rxjs/internal/testing/ColdObservable.js create mode 100644 node_modules/rxjs/internal/testing/ColdObservable.js.map create mode 100644 node_modules/rxjs/internal/testing/HotObservable.d.ts create mode 100644 node_modules/rxjs/internal/testing/HotObservable.js create mode 100644 node_modules/rxjs/internal/testing/HotObservable.js.map create mode 100644 node_modules/rxjs/internal/testing/SubscriptionLog.d.ts create mode 100644 node_modules/rxjs/internal/testing/SubscriptionLog.js create mode 100644 node_modules/rxjs/internal/testing/SubscriptionLog.js.map create mode 100644 node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts create mode 100644 node_modules/rxjs/internal/testing/SubscriptionLoggable.js create mode 100644 node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map create mode 100644 node_modules/rxjs/internal/testing/TestMessage.d.ts create mode 100644 node_modules/rxjs/internal/testing/TestMessage.js create mode 100644 node_modules/rxjs/internal/testing/TestMessage.js.map create mode 100644 node_modules/rxjs/internal/testing/TestScheduler.d.ts create mode 100644 node_modules/rxjs/internal/testing/TestScheduler.js create mode 100644 node_modules/rxjs/internal/testing/TestScheduler.js.map create mode 100644 node_modules/rxjs/internal/types.d.ts create mode 100644 node_modules/rxjs/internal/types.js create mode 100644 node_modules/rxjs/internal/types.js.map create mode 100644 node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts create mode 100644 node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js create mode 100644 node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map create mode 100644 node_modules/rxjs/internal/util/EmptyError.d.ts create mode 100644 node_modules/rxjs/internal/util/EmptyError.js create mode 100644 node_modules/rxjs/internal/util/EmptyError.js.map create mode 100644 node_modules/rxjs/internal/util/Immediate.d.ts create mode 100644 node_modules/rxjs/internal/util/Immediate.js create mode 100644 node_modules/rxjs/internal/util/Immediate.js.map create mode 100644 node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts create mode 100644 node_modules/rxjs/internal/util/ObjectUnsubscribedError.js create mode 100644 node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map create mode 100644 node_modules/rxjs/internal/util/TimeoutError.d.ts create mode 100644 node_modules/rxjs/internal/util/TimeoutError.js create mode 100644 node_modules/rxjs/internal/util/TimeoutError.js.map create mode 100644 node_modules/rxjs/internal/util/UnsubscriptionError.d.ts create mode 100644 node_modules/rxjs/internal/util/UnsubscriptionError.js create mode 100644 node_modules/rxjs/internal/util/UnsubscriptionError.js.map create mode 100644 node_modules/rxjs/internal/util/applyMixins.d.ts create mode 100644 node_modules/rxjs/internal/util/applyMixins.js create mode 100644 node_modules/rxjs/internal/util/applyMixins.js.map create mode 100644 node_modules/rxjs/internal/util/canReportError.d.ts create mode 100644 node_modules/rxjs/internal/util/canReportError.js create mode 100644 node_modules/rxjs/internal/util/canReportError.js.map create mode 100644 node_modules/rxjs/internal/util/errorObject.d.ts create mode 100644 node_modules/rxjs/internal/util/errorObject.js create mode 100644 node_modules/rxjs/internal/util/errorObject.js.map create mode 100644 node_modules/rxjs/internal/util/hostReportError.d.ts create mode 100644 node_modules/rxjs/internal/util/hostReportError.js create mode 100644 node_modules/rxjs/internal/util/hostReportError.js.map create mode 100644 node_modules/rxjs/internal/util/identity.d.ts create mode 100644 node_modules/rxjs/internal/util/identity.js create mode 100644 node_modules/rxjs/internal/util/identity.js.map create mode 100644 node_modules/rxjs/internal/util/isArray.d.ts create mode 100644 node_modules/rxjs/internal/util/isArray.js create mode 100644 node_modules/rxjs/internal/util/isArray.js.map create mode 100644 node_modules/rxjs/internal/util/isArrayLike.d.ts create mode 100644 node_modules/rxjs/internal/util/isArrayLike.js create mode 100644 node_modules/rxjs/internal/util/isArrayLike.js.map create mode 100644 node_modules/rxjs/internal/util/isDate.d.ts create mode 100644 node_modules/rxjs/internal/util/isDate.js create mode 100644 node_modules/rxjs/internal/util/isDate.js.map create mode 100644 node_modules/rxjs/internal/util/isFunction.d.ts create mode 100644 node_modules/rxjs/internal/util/isFunction.js create mode 100644 node_modules/rxjs/internal/util/isFunction.js.map create mode 100644 node_modules/rxjs/internal/util/isInteropObservable.d.ts create mode 100644 node_modules/rxjs/internal/util/isInteropObservable.js create mode 100644 node_modules/rxjs/internal/util/isInteropObservable.js.map create mode 100644 node_modules/rxjs/internal/util/isIterable.d.ts create mode 100644 node_modules/rxjs/internal/util/isIterable.js create mode 100644 node_modules/rxjs/internal/util/isIterable.js.map create mode 100644 node_modules/rxjs/internal/util/isNumeric.d.ts create mode 100644 node_modules/rxjs/internal/util/isNumeric.js create mode 100644 node_modules/rxjs/internal/util/isNumeric.js.map create mode 100644 node_modules/rxjs/internal/util/isObject.d.ts create mode 100644 node_modules/rxjs/internal/util/isObject.js create mode 100644 node_modules/rxjs/internal/util/isObject.js.map create mode 100644 node_modules/rxjs/internal/util/isObservable.d.ts create mode 100644 node_modules/rxjs/internal/util/isObservable.js create mode 100644 node_modules/rxjs/internal/util/isObservable.js.map create mode 100644 node_modules/rxjs/internal/util/isPromise.d.ts create mode 100644 node_modules/rxjs/internal/util/isPromise.js create mode 100644 node_modules/rxjs/internal/util/isPromise.js.map create mode 100644 node_modules/rxjs/internal/util/isScheduler.d.ts create mode 100644 node_modules/rxjs/internal/util/isScheduler.js create mode 100644 node_modules/rxjs/internal/util/isScheduler.js.map create mode 100644 node_modules/rxjs/internal/util/noop.d.ts create mode 100644 node_modules/rxjs/internal/util/noop.js create mode 100644 node_modules/rxjs/internal/util/noop.js.map create mode 100644 node_modules/rxjs/internal/util/not.d.ts create mode 100644 node_modules/rxjs/internal/util/not.js create mode 100644 node_modules/rxjs/internal/util/not.js.map create mode 100644 node_modules/rxjs/internal/util/pipe.d.ts create mode 100644 node_modules/rxjs/internal/util/pipe.js create mode 100644 node_modules/rxjs/internal/util/pipe.js.map create mode 100644 node_modules/rxjs/internal/util/root.d.ts create mode 100644 node_modules/rxjs/internal/util/root.js create mode 100644 node_modules/rxjs/internal/util/root.js.map create mode 100644 node_modules/rxjs/internal/util/subscribeTo.d.ts create mode 100644 node_modules/rxjs/internal/util/subscribeTo.js create mode 100644 node_modules/rxjs/internal/util/subscribeTo.js.map create mode 100644 node_modules/rxjs/internal/util/subscribeToArray.d.ts create mode 100644 node_modules/rxjs/internal/util/subscribeToArray.js create mode 100644 node_modules/rxjs/internal/util/subscribeToArray.js.map create mode 100644 node_modules/rxjs/internal/util/subscribeToIterable.d.ts create mode 100644 node_modules/rxjs/internal/util/subscribeToIterable.js create mode 100644 node_modules/rxjs/internal/util/subscribeToIterable.js.map create mode 100644 node_modules/rxjs/internal/util/subscribeToObservable.d.ts create mode 100644 node_modules/rxjs/internal/util/subscribeToObservable.js create mode 100644 node_modules/rxjs/internal/util/subscribeToObservable.js.map create mode 100644 node_modules/rxjs/internal/util/subscribeToPromise.d.ts create mode 100644 node_modules/rxjs/internal/util/subscribeToPromise.js create mode 100644 node_modules/rxjs/internal/util/subscribeToPromise.js.map create mode 100644 node_modules/rxjs/internal/util/subscribeToResult.d.ts create mode 100644 node_modules/rxjs/internal/util/subscribeToResult.js create mode 100644 node_modules/rxjs/internal/util/subscribeToResult.js.map create mode 100644 node_modules/rxjs/internal/util/toSubscriber.d.ts create mode 100644 node_modules/rxjs/internal/util/toSubscriber.js create mode 100644 node_modules/rxjs/internal/util/toSubscriber.js.map create mode 100644 node_modules/rxjs/internal/util/tryCatch.d.ts create mode 100644 node_modules/rxjs/internal/util/tryCatch.js create mode 100644 node_modules/rxjs/internal/util/tryCatch.js.map create mode 100644 node_modules/rxjs/migrations/collection.json create mode 100644 node_modules/rxjs/migrations/update-6_0_0/index.js create mode 100644 node_modules/rxjs/migrations/update-6_0_0/index.js.map create mode 100644 node_modules/rxjs/observable/ArrayLikeObservable.d.ts create mode 100644 node_modules/rxjs/observable/ArrayLikeObservable.js create mode 100644 node_modules/rxjs/observable/ArrayLikeObservable.js.map create mode 100644 node_modules/rxjs/observable/ArrayObservable.d.ts create mode 100644 node_modules/rxjs/observable/ArrayObservable.js create mode 100644 node_modules/rxjs/observable/ArrayObservable.js.map create mode 100644 node_modules/rxjs/observable/BoundCallbackObservable.d.ts create mode 100644 node_modules/rxjs/observable/BoundCallbackObservable.js create mode 100644 node_modules/rxjs/observable/BoundCallbackObservable.js.map create mode 100644 node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts create mode 100644 node_modules/rxjs/observable/BoundNodeCallbackObservable.js create mode 100644 node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map create mode 100644 node_modules/rxjs/observable/ConnectableObservable.d.ts create mode 100644 node_modules/rxjs/observable/ConnectableObservable.js create mode 100644 node_modules/rxjs/observable/ConnectableObservable.js.map create mode 100644 node_modules/rxjs/observable/DeferObservable.d.ts create mode 100644 node_modules/rxjs/observable/DeferObservable.js create mode 100644 node_modules/rxjs/observable/DeferObservable.js.map create mode 100644 node_modules/rxjs/observable/EmptyObservable.d.ts create mode 100644 node_modules/rxjs/observable/EmptyObservable.js create mode 100644 node_modules/rxjs/observable/EmptyObservable.js.map create mode 100644 node_modules/rxjs/observable/ErrorObservable.d.ts create mode 100644 node_modules/rxjs/observable/ErrorObservable.js create mode 100644 node_modules/rxjs/observable/ErrorObservable.js.map create mode 100644 node_modules/rxjs/observable/ForkJoinObservable.d.ts create mode 100644 node_modules/rxjs/observable/ForkJoinObservable.js create mode 100644 node_modules/rxjs/observable/ForkJoinObservable.js.map create mode 100644 node_modules/rxjs/observable/FromEventObservable.d.ts create mode 100644 node_modules/rxjs/observable/FromEventObservable.js create mode 100644 node_modules/rxjs/observable/FromEventObservable.js.map create mode 100644 node_modules/rxjs/observable/FromEventPatternObservable.d.ts create mode 100644 node_modules/rxjs/observable/FromEventPatternObservable.js create mode 100644 node_modules/rxjs/observable/FromEventPatternObservable.js.map create mode 100644 node_modules/rxjs/observable/FromObservable.d.ts create mode 100644 node_modules/rxjs/observable/FromObservable.js create mode 100644 node_modules/rxjs/observable/FromObservable.js.map create mode 100644 node_modules/rxjs/observable/GenerateObservable.d.ts create mode 100644 node_modules/rxjs/observable/GenerateObservable.js create mode 100644 node_modules/rxjs/observable/GenerateObservable.js.map create mode 100644 node_modules/rxjs/observable/IfObservable.d.ts create mode 100644 node_modules/rxjs/observable/IfObservable.js create mode 100644 node_modules/rxjs/observable/IfObservable.js.map create mode 100644 node_modules/rxjs/observable/IntervalObservable.d.ts create mode 100644 node_modules/rxjs/observable/IntervalObservable.js create mode 100644 node_modules/rxjs/observable/IntervalObservable.js.map create mode 100644 node_modules/rxjs/observable/IteratorObservable.d.ts create mode 100644 node_modules/rxjs/observable/IteratorObservable.js create mode 100644 node_modules/rxjs/observable/IteratorObservable.js.map create mode 100644 node_modules/rxjs/observable/NeverObservable.d.ts create mode 100644 node_modules/rxjs/observable/NeverObservable.js create mode 100644 node_modules/rxjs/observable/NeverObservable.js.map create mode 100644 node_modules/rxjs/observable/PairsObservable.d.ts create mode 100644 node_modules/rxjs/observable/PairsObservable.js create mode 100644 node_modules/rxjs/observable/PairsObservable.js.map create mode 100644 node_modules/rxjs/observable/PromiseObservable.d.ts create mode 100644 node_modules/rxjs/observable/PromiseObservable.js create mode 100644 node_modules/rxjs/observable/PromiseObservable.js.map create mode 100644 node_modules/rxjs/observable/RangeObservable.d.ts create mode 100644 node_modules/rxjs/observable/RangeObservable.js create mode 100644 node_modules/rxjs/observable/RangeObservable.js.map create mode 100644 node_modules/rxjs/observable/ScalarObservable.d.ts create mode 100644 node_modules/rxjs/observable/ScalarObservable.js create mode 100644 node_modules/rxjs/observable/ScalarObservable.js.map create mode 100644 node_modules/rxjs/observable/SubscribeOnObservable.d.ts create mode 100644 node_modules/rxjs/observable/SubscribeOnObservable.js create mode 100644 node_modules/rxjs/observable/SubscribeOnObservable.js.map create mode 100644 node_modules/rxjs/observable/TimerObservable.d.ts create mode 100644 node_modules/rxjs/observable/TimerObservable.js create mode 100644 node_modules/rxjs/observable/TimerObservable.js.map create mode 100644 node_modules/rxjs/observable/UsingObservable.d.ts create mode 100644 node_modules/rxjs/observable/UsingObservable.js create mode 100644 node_modules/rxjs/observable/UsingObservable.js.map create mode 100644 node_modules/rxjs/observable/bindCallback.d.ts create mode 100644 node_modules/rxjs/observable/bindCallback.js create mode 100644 node_modules/rxjs/observable/bindCallback.js.map create mode 100644 node_modules/rxjs/observable/bindNodeCallback.d.ts create mode 100644 node_modules/rxjs/observable/bindNodeCallback.js create mode 100644 node_modules/rxjs/observable/bindNodeCallback.js.map create mode 100644 node_modules/rxjs/observable/combineLatest.d.ts create mode 100644 node_modules/rxjs/observable/combineLatest.js create mode 100644 node_modules/rxjs/observable/combineLatest.js.map create mode 100644 node_modules/rxjs/observable/concat.d.ts create mode 100644 node_modules/rxjs/observable/concat.js create mode 100644 node_modules/rxjs/observable/concat.js.map create mode 100644 node_modules/rxjs/observable/defer.d.ts create mode 100644 node_modules/rxjs/observable/defer.js create mode 100644 node_modules/rxjs/observable/defer.js.map create mode 100644 node_modules/rxjs/observable/dom/AjaxObservable.d.ts create mode 100644 node_modules/rxjs/observable/dom/AjaxObservable.js create mode 100644 node_modules/rxjs/observable/dom/AjaxObservable.js.map create mode 100644 node_modules/rxjs/observable/dom/WebSocketSubject.d.ts create mode 100644 node_modules/rxjs/observable/dom/WebSocketSubject.js create mode 100644 node_modules/rxjs/observable/dom/WebSocketSubject.js.map create mode 100644 node_modules/rxjs/observable/dom/ajax.d.ts create mode 100644 node_modules/rxjs/observable/dom/ajax.js create mode 100644 node_modules/rxjs/observable/dom/ajax.js.map create mode 100644 node_modules/rxjs/observable/dom/webSocket.d.ts create mode 100644 node_modules/rxjs/observable/dom/webSocket.js create mode 100644 node_modules/rxjs/observable/dom/webSocket.js.map create mode 100644 node_modules/rxjs/observable/empty.d.ts create mode 100644 node_modules/rxjs/observable/empty.js create mode 100644 node_modules/rxjs/observable/empty.js.map create mode 100644 node_modules/rxjs/observable/forkJoin.d.ts create mode 100644 node_modules/rxjs/observable/forkJoin.js create mode 100644 node_modules/rxjs/observable/forkJoin.js.map create mode 100644 node_modules/rxjs/observable/from.d.ts create mode 100644 node_modules/rxjs/observable/from.js create mode 100644 node_modules/rxjs/observable/from.js.map create mode 100644 node_modules/rxjs/observable/fromArray.d.ts create mode 100644 node_modules/rxjs/observable/fromArray.js create mode 100644 node_modules/rxjs/observable/fromArray.js.map create mode 100644 node_modules/rxjs/observable/fromEvent.d.ts create mode 100644 node_modules/rxjs/observable/fromEvent.js create mode 100644 node_modules/rxjs/observable/fromEvent.js.map create mode 100644 node_modules/rxjs/observable/fromEventPattern.d.ts create mode 100644 node_modules/rxjs/observable/fromEventPattern.js create mode 100644 node_modules/rxjs/observable/fromEventPattern.js.map create mode 100644 node_modules/rxjs/observable/fromIterable.d.ts create mode 100644 node_modules/rxjs/observable/fromIterable.js create mode 100644 node_modules/rxjs/observable/fromIterable.js.map create mode 100644 node_modules/rxjs/observable/fromPromise.d.ts create mode 100644 node_modules/rxjs/observable/fromPromise.js create mode 100644 node_modules/rxjs/observable/fromPromise.js.map create mode 100644 node_modules/rxjs/observable/generate.d.ts create mode 100644 node_modules/rxjs/observable/generate.js create mode 100644 node_modules/rxjs/observable/generate.js.map create mode 100644 node_modules/rxjs/observable/if.d.ts create mode 100644 node_modules/rxjs/observable/if.js create mode 100644 node_modules/rxjs/observable/if.js.map create mode 100644 node_modules/rxjs/observable/interval.d.ts create mode 100644 node_modules/rxjs/observable/interval.js create mode 100644 node_modules/rxjs/observable/interval.js.map create mode 100644 node_modules/rxjs/observable/merge.d.ts create mode 100644 node_modules/rxjs/observable/merge.js create mode 100644 node_modules/rxjs/observable/merge.js.map create mode 100644 node_modules/rxjs/observable/never.d.ts create mode 100644 node_modules/rxjs/observable/never.js create mode 100644 node_modules/rxjs/observable/never.js.map create mode 100644 node_modules/rxjs/observable/of.d.ts create mode 100644 node_modules/rxjs/observable/of.js create mode 100644 node_modules/rxjs/observable/of.js.map create mode 100644 node_modules/rxjs/observable/onErrorResumeNext.d.ts create mode 100644 node_modules/rxjs/observable/onErrorResumeNext.js create mode 100644 node_modules/rxjs/observable/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/observable/pairs.d.ts create mode 100644 node_modules/rxjs/observable/pairs.js create mode 100644 node_modules/rxjs/observable/pairs.js.map create mode 100644 node_modules/rxjs/observable/race.d.ts create mode 100644 node_modules/rxjs/observable/race.js create mode 100644 node_modules/rxjs/observable/race.js.map create mode 100644 node_modules/rxjs/observable/range.d.ts create mode 100644 node_modules/rxjs/observable/range.js create mode 100644 node_modules/rxjs/observable/range.js.map create mode 100644 node_modules/rxjs/observable/throw.d.ts create mode 100644 node_modules/rxjs/observable/throw.js create mode 100644 node_modules/rxjs/observable/throw.js.map create mode 100644 node_modules/rxjs/observable/timer.d.ts create mode 100644 node_modules/rxjs/observable/timer.js create mode 100644 node_modules/rxjs/observable/timer.js.map create mode 100644 node_modules/rxjs/observable/using.d.ts create mode 100644 node_modules/rxjs/observable/using.js create mode 100644 node_modules/rxjs/observable/using.js.map create mode 100644 node_modules/rxjs/observable/zip.d.ts create mode 100644 node_modules/rxjs/observable/zip.js create mode 100644 node_modules/rxjs/observable/zip.js.map create mode 100644 node_modules/rxjs/operator/audit.d.ts create mode 100644 node_modules/rxjs/operator/audit.js create mode 100644 node_modules/rxjs/operator/audit.js.map create mode 100644 node_modules/rxjs/operator/auditTime.d.ts create mode 100644 node_modules/rxjs/operator/auditTime.js create mode 100644 node_modules/rxjs/operator/auditTime.js.map create mode 100644 node_modules/rxjs/operator/buffer.d.ts create mode 100644 node_modules/rxjs/operator/buffer.js create mode 100644 node_modules/rxjs/operator/buffer.js.map create mode 100644 node_modules/rxjs/operator/bufferCount.d.ts create mode 100644 node_modules/rxjs/operator/bufferCount.js create mode 100644 node_modules/rxjs/operator/bufferCount.js.map create mode 100644 node_modules/rxjs/operator/bufferTime.d.ts create mode 100644 node_modules/rxjs/operator/bufferTime.js create mode 100644 node_modules/rxjs/operator/bufferTime.js.map create mode 100644 node_modules/rxjs/operator/bufferToggle.d.ts create mode 100644 node_modules/rxjs/operator/bufferToggle.js create mode 100644 node_modules/rxjs/operator/bufferToggle.js.map create mode 100644 node_modules/rxjs/operator/bufferWhen.d.ts create mode 100644 node_modules/rxjs/operator/bufferWhen.js create mode 100644 node_modules/rxjs/operator/bufferWhen.js.map create mode 100644 node_modules/rxjs/operator/catch.d.ts create mode 100644 node_modules/rxjs/operator/catch.js create mode 100644 node_modules/rxjs/operator/catch.js.map create mode 100644 node_modules/rxjs/operator/combineAll.d.ts create mode 100644 node_modules/rxjs/operator/combineAll.js create mode 100644 node_modules/rxjs/operator/combineAll.js.map create mode 100644 node_modules/rxjs/operator/combineLatest.d.ts create mode 100644 node_modules/rxjs/operator/combineLatest.js create mode 100644 node_modules/rxjs/operator/combineLatest.js.map create mode 100644 node_modules/rxjs/operator/concat.d.ts create mode 100644 node_modules/rxjs/operator/concat.js create mode 100644 node_modules/rxjs/operator/concat.js.map create mode 100644 node_modules/rxjs/operator/concatAll.d.ts create mode 100644 node_modules/rxjs/operator/concatAll.js create mode 100644 node_modules/rxjs/operator/concatAll.js.map create mode 100644 node_modules/rxjs/operator/concatMap.d.ts create mode 100644 node_modules/rxjs/operator/concatMap.js create mode 100644 node_modules/rxjs/operator/concatMap.js.map create mode 100644 node_modules/rxjs/operator/concatMapTo.d.ts create mode 100644 node_modules/rxjs/operator/concatMapTo.js create mode 100644 node_modules/rxjs/operator/concatMapTo.js.map create mode 100644 node_modules/rxjs/operator/count.d.ts create mode 100644 node_modules/rxjs/operator/count.js create mode 100644 node_modules/rxjs/operator/count.js.map create mode 100644 node_modules/rxjs/operator/debounce.d.ts create mode 100644 node_modules/rxjs/operator/debounce.js create mode 100644 node_modules/rxjs/operator/debounce.js.map create mode 100644 node_modules/rxjs/operator/debounceTime.d.ts create mode 100644 node_modules/rxjs/operator/debounceTime.js create mode 100644 node_modules/rxjs/operator/debounceTime.js.map create mode 100644 node_modules/rxjs/operator/defaultIfEmpty.d.ts create mode 100644 node_modules/rxjs/operator/defaultIfEmpty.js create mode 100644 node_modules/rxjs/operator/defaultIfEmpty.js.map create mode 100644 node_modules/rxjs/operator/delay.d.ts create mode 100644 node_modules/rxjs/operator/delay.js create mode 100644 node_modules/rxjs/operator/delay.js.map create mode 100644 node_modules/rxjs/operator/delayWhen.d.ts create mode 100644 node_modules/rxjs/operator/delayWhen.js create mode 100644 node_modules/rxjs/operator/delayWhen.js.map create mode 100644 node_modules/rxjs/operator/dematerialize.d.ts create mode 100644 node_modules/rxjs/operator/dematerialize.js create mode 100644 node_modules/rxjs/operator/dematerialize.js.map create mode 100644 node_modules/rxjs/operator/distinct.d.ts create mode 100644 node_modules/rxjs/operator/distinct.js create mode 100644 node_modules/rxjs/operator/distinct.js.map create mode 100644 node_modules/rxjs/operator/distinctUntilChanged.d.ts create mode 100644 node_modules/rxjs/operator/distinctUntilChanged.js create mode 100644 node_modules/rxjs/operator/distinctUntilChanged.js.map create mode 100644 node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts create mode 100644 node_modules/rxjs/operator/distinctUntilKeyChanged.js create mode 100644 node_modules/rxjs/operator/distinctUntilKeyChanged.js.map create mode 100644 node_modules/rxjs/operator/do.d.ts create mode 100644 node_modules/rxjs/operator/do.js create mode 100644 node_modules/rxjs/operator/do.js.map create mode 100644 node_modules/rxjs/operator/elementAt.d.ts create mode 100644 node_modules/rxjs/operator/elementAt.js create mode 100644 node_modules/rxjs/operator/elementAt.js.map create mode 100644 node_modules/rxjs/operator/every.d.ts create mode 100644 node_modules/rxjs/operator/every.js create mode 100644 node_modules/rxjs/operator/every.js.map create mode 100644 node_modules/rxjs/operator/exhaust.d.ts create mode 100644 node_modules/rxjs/operator/exhaust.js create mode 100644 node_modules/rxjs/operator/exhaust.js.map create mode 100644 node_modules/rxjs/operator/exhaustMap.d.ts create mode 100644 node_modules/rxjs/operator/exhaustMap.js create mode 100644 node_modules/rxjs/operator/exhaustMap.js.map create mode 100644 node_modules/rxjs/operator/expand.d.ts create mode 100644 node_modules/rxjs/operator/expand.js create mode 100644 node_modules/rxjs/operator/expand.js.map create mode 100644 node_modules/rxjs/operator/filter.d.ts create mode 100644 node_modules/rxjs/operator/filter.js create mode 100644 node_modules/rxjs/operator/filter.js.map create mode 100644 node_modules/rxjs/operator/finally.d.ts create mode 100644 node_modules/rxjs/operator/finally.js create mode 100644 node_modules/rxjs/operator/finally.js.map create mode 100644 node_modules/rxjs/operator/find.d.ts create mode 100644 node_modules/rxjs/operator/find.js create mode 100644 node_modules/rxjs/operator/find.js.map create mode 100644 node_modules/rxjs/operator/findIndex.d.ts create mode 100644 node_modules/rxjs/operator/findIndex.js create mode 100644 node_modules/rxjs/operator/findIndex.js.map create mode 100644 node_modules/rxjs/operator/first.d.ts create mode 100644 node_modules/rxjs/operator/first.js create mode 100644 node_modules/rxjs/operator/first.js.map create mode 100644 node_modules/rxjs/operator/groupBy.d.ts create mode 100644 node_modules/rxjs/operator/groupBy.js create mode 100644 node_modules/rxjs/operator/groupBy.js.map create mode 100644 node_modules/rxjs/operator/ignoreElements.d.ts create mode 100644 node_modules/rxjs/operator/ignoreElements.js create mode 100644 node_modules/rxjs/operator/ignoreElements.js.map create mode 100644 node_modules/rxjs/operator/isEmpty.d.ts create mode 100644 node_modules/rxjs/operator/isEmpty.js create mode 100644 node_modules/rxjs/operator/isEmpty.js.map create mode 100644 node_modules/rxjs/operator/last.d.ts create mode 100644 node_modules/rxjs/operator/last.js create mode 100644 node_modules/rxjs/operator/last.js.map create mode 100644 node_modules/rxjs/operator/let.d.ts create mode 100644 node_modules/rxjs/operator/let.js create mode 100644 node_modules/rxjs/operator/let.js.map create mode 100644 node_modules/rxjs/operator/map.d.ts create mode 100644 node_modules/rxjs/operator/map.js create mode 100644 node_modules/rxjs/operator/map.js.map create mode 100644 node_modules/rxjs/operator/mapTo.d.ts create mode 100644 node_modules/rxjs/operator/mapTo.js create mode 100644 node_modules/rxjs/operator/mapTo.js.map create mode 100644 node_modules/rxjs/operator/materialize.d.ts create mode 100644 node_modules/rxjs/operator/materialize.js create mode 100644 node_modules/rxjs/operator/materialize.js.map create mode 100644 node_modules/rxjs/operator/max.d.ts create mode 100644 node_modules/rxjs/operator/max.js create mode 100644 node_modules/rxjs/operator/max.js.map create mode 100644 node_modules/rxjs/operator/merge.d.ts create mode 100644 node_modules/rxjs/operator/merge.js create mode 100644 node_modules/rxjs/operator/merge.js.map create mode 100644 node_modules/rxjs/operator/mergeAll.d.ts create mode 100644 node_modules/rxjs/operator/mergeAll.js create mode 100644 node_modules/rxjs/operator/mergeAll.js.map create mode 100644 node_modules/rxjs/operator/mergeMap.d.ts create mode 100644 node_modules/rxjs/operator/mergeMap.js create mode 100644 node_modules/rxjs/operator/mergeMap.js.map create mode 100644 node_modules/rxjs/operator/mergeMapTo.d.ts create mode 100644 node_modules/rxjs/operator/mergeMapTo.js create mode 100644 node_modules/rxjs/operator/mergeMapTo.js.map create mode 100644 node_modules/rxjs/operator/mergeScan.d.ts create mode 100644 node_modules/rxjs/operator/mergeScan.js create mode 100644 node_modules/rxjs/operator/mergeScan.js.map create mode 100644 node_modules/rxjs/operator/min.d.ts create mode 100644 node_modules/rxjs/operator/min.js create mode 100644 node_modules/rxjs/operator/min.js.map create mode 100644 node_modules/rxjs/operator/multicast.d.ts create mode 100644 node_modules/rxjs/operator/multicast.js create mode 100644 node_modules/rxjs/operator/multicast.js.map create mode 100644 node_modules/rxjs/operator/observeOn.d.ts create mode 100644 node_modules/rxjs/operator/observeOn.js create mode 100644 node_modules/rxjs/operator/observeOn.js.map create mode 100644 node_modules/rxjs/operator/onErrorResumeNext.d.ts create mode 100644 node_modules/rxjs/operator/onErrorResumeNext.js create mode 100644 node_modules/rxjs/operator/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/operator/pairwise.d.ts create mode 100644 node_modules/rxjs/operator/pairwise.js create mode 100644 node_modules/rxjs/operator/pairwise.js.map create mode 100644 node_modules/rxjs/operator/partition.d.ts create mode 100644 node_modules/rxjs/operator/partition.js create mode 100644 node_modules/rxjs/operator/partition.js.map create mode 100644 node_modules/rxjs/operator/pluck.d.ts create mode 100644 node_modules/rxjs/operator/pluck.js create mode 100644 node_modules/rxjs/operator/pluck.js.map create mode 100644 node_modules/rxjs/operator/publish.d.ts create mode 100644 node_modules/rxjs/operator/publish.js create mode 100644 node_modules/rxjs/operator/publish.js.map create mode 100644 node_modules/rxjs/operator/publishBehavior.d.ts create mode 100644 node_modules/rxjs/operator/publishBehavior.js create mode 100644 node_modules/rxjs/operator/publishBehavior.js.map create mode 100644 node_modules/rxjs/operator/publishLast.d.ts create mode 100644 node_modules/rxjs/operator/publishLast.js create mode 100644 node_modules/rxjs/operator/publishLast.js.map create mode 100644 node_modules/rxjs/operator/publishReplay.d.ts create mode 100644 node_modules/rxjs/operator/publishReplay.js create mode 100644 node_modules/rxjs/operator/publishReplay.js.map create mode 100644 node_modules/rxjs/operator/race.d.ts create mode 100644 node_modules/rxjs/operator/race.js create mode 100644 node_modules/rxjs/operator/race.js.map create mode 100644 node_modules/rxjs/operator/reduce.d.ts create mode 100644 node_modules/rxjs/operator/reduce.js create mode 100644 node_modules/rxjs/operator/reduce.js.map create mode 100644 node_modules/rxjs/operator/repeat.d.ts create mode 100644 node_modules/rxjs/operator/repeat.js create mode 100644 node_modules/rxjs/operator/repeat.js.map create mode 100644 node_modules/rxjs/operator/repeatWhen.d.ts create mode 100644 node_modules/rxjs/operator/repeatWhen.js create mode 100644 node_modules/rxjs/operator/repeatWhen.js.map create mode 100644 node_modules/rxjs/operator/retry.d.ts create mode 100644 node_modules/rxjs/operator/retry.js create mode 100644 node_modules/rxjs/operator/retry.js.map create mode 100644 node_modules/rxjs/operator/retryWhen.d.ts create mode 100644 node_modules/rxjs/operator/retryWhen.js create mode 100644 node_modules/rxjs/operator/retryWhen.js.map create mode 100644 node_modules/rxjs/operator/sample.d.ts create mode 100644 node_modules/rxjs/operator/sample.js create mode 100644 node_modules/rxjs/operator/sample.js.map create mode 100644 node_modules/rxjs/operator/sampleTime.d.ts create mode 100644 node_modules/rxjs/operator/sampleTime.js create mode 100644 node_modules/rxjs/operator/sampleTime.js.map create mode 100644 node_modules/rxjs/operator/scan.d.ts create mode 100644 node_modules/rxjs/operator/scan.js create mode 100644 node_modules/rxjs/operator/scan.js.map create mode 100644 node_modules/rxjs/operator/sequenceEqual.d.ts create mode 100644 node_modules/rxjs/operator/sequenceEqual.js create mode 100644 node_modules/rxjs/operator/sequenceEqual.js.map create mode 100644 node_modules/rxjs/operator/share.d.ts create mode 100644 node_modules/rxjs/operator/share.js create mode 100644 node_modules/rxjs/operator/share.js.map create mode 100644 node_modules/rxjs/operator/shareReplay.d.ts create mode 100644 node_modules/rxjs/operator/shareReplay.js create mode 100644 node_modules/rxjs/operator/shareReplay.js.map create mode 100644 node_modules/rxjs/operator/single.d.ts create mode 100644 node_modules/rxjs/operator/single.js create mode 100644 node_modules/rxjs/operator/single.js.map create mode 100644 node_modules/rxjs/operator/skip.d.ts create mode 100644 node_modules/rxjs/operator/skip.js create mode 100644 node_modules/rxjs/operator/skip.js.map create mode 100644 node_modules/rxjs/operator/skipLast.d.ts create mode 100644 node_modules/rxjs/operator/skipLast.js create mode 100644 node_modules/rxjs/operator/skipLast.js.map create mode 100644 node_modules/rxjs/operator/skipUntil.d.ts create mode 100644 node_modules/rxjs/operator/skipUntil.js create mode 100644 node_modules/rxjs/operator/skipUntil.js.map create mode 100644 node_modules/rxjs/operator/skipWhile.d.ts create mode 100644 node_modules/rxjs/operator/skipWhile.js create mode 100644 node_modules/rxjs/operator/skipWhile.js.map create mode 100644 node_modules/rxjs/operator/startWith.d.ts create mode 100644 node_modules/rxjs/operator/startWith.js create mode 100644 node_modules/rxjs/operator/startWith.js.map create mode 100644 node_modules/rxjs/operator/subscribeOn.d.ts create mode 100644 node_modules/rxjs/operator/subscribeOn.js create mode 100644 node_modules/rxjs/operator/subscribeOn.js.map create mode 100644 node_modules/rxjs/operator/switch.d.ts create mode 100644 node_modules/rxjs/operator/switch.js create mode 100644 node_modules/rxjs/operator/switch.js.map create mode 100644 node_modules/rxjs/operator/switchMap.d.ts create mode 100644 node_modules/rxjs/operator/switchMap.js create mode 100644 node_modules/rxjs/operator/switchMap.js.map create mode 100644 node_modules/rxjs/operator/switchMapTo.d.ts create mode 100644 node_modules/rxjs/operator/switchMapTo.js create mode 100644 node_modules/rxjs/operator/switchMapTo.js.map create mode 100644 node_modules/rxjs/operator/take.d.ts create mode 100644 node_modules/rxjs/operator/take.js create mode 100644 node_modules/rxjs/operator/take.js.map create mode 100644 node_modules/rxjs/operator/takeLast.d.ts create mode 100644 node_modules/rxjs/operator/takeLast.js create mode 100644 node_modules/rxjs/operator/takeLast.js.map create mode 100644 node_modules/rxjs/operator/takeUntil.d.ts create mode 100644 node_modules/rxjs/operator/takeUntil.js create mode 100644 node_modules/rxjs/operator/takeUntil.js.map create mode 100644 node_modules/rxjs/operator/takeWhile.d.ts create mode 100644 node_modules/rxjs/operator/takeWhile.js create mode 100644 node_modules/rxjs/operator/takeWhile.js.map create mode 100644 node_modules/rxjs/operator/throttle.d.ts create mode 100644 node_modules/rxjs/operator/throttle.js create mode 100644 node_modules/rxjs/operator/throttle.js.map create mode 100644 node_modules/rxjs/operator/throttleTime.d.ts create mode 100644 node_modules/rxjs/operator/throttleTime.js create mode 100644 node_modules/rxjs/operator/throttleTime.js.map create mode 100644 node_modules/rxjs/operator/timeInterval.d.ts create mode 100644 node_modules/rxjs/operator/timeInterval.js create mode 100644 node_modules/rxjs/operator/timeInterval.js.map create mode 100644 node_modules/rxjs/operator/timeout.d.ts create mode 100644 node_modules/rxjs/operator/timeout.js create mode 100644 node_modules/rxjs/operator/timeout.js.map create mode 100644 node_modules/rxjs/operator/timeoutWith.d.ts create mode 100644 node_modules/rxjs/operator/timeoutWith.js create mode 100644 node_modules/rxjs/operator/timeoutWith.js.map create mode 100644 node_modules/rxjs/operator/timestamp.d.ts create mode 100644 node_modules/rxjs/operator/timestamp.js create mode 100644 node_modules/rxjs/operator/timestamp.js.map create mode 100644 node_modules/rxjs/operator/toArray.d.ts create mode 100644 node_modules/rxjs/operator/toArray.js create mode 100644 node_modules/rxjs/operator/toArray.js.map create mode 100644 node_modules/rxjs/operator/toPromise.d.ts create mode 100644 node_modules/rxjs/operator/toPromise.js create mode 100644 node_modules/rxjs/operator/toPromise.js.map create mode 100644 node_modules/rxjs/operator/window.d.ts create mode 100644 node_modules/rxjs/operator/window.js create mode 100644 node_modules/rxjs/operator/window.js.map create mode 100644 node_modules/rxjs/operator/windowCount.d.ts create mode 100644 node_modules/rxjs/operator/windowCount.js create mode 100644 node_modules/rxjs/operator/windowCount.js.map create mode 100644 node_modules/rxjs/operator/windowTime.d.ts create mode 100644 node_modules/rxjs/operator/windowTime.js create mode 100644 node_modules/rxjs/operator/windowTime.js.map create mode 100644 node_modules/rxjs/operator/windowToggle.d.ts create mode 100644 node_modules/rxjs/operator/windowToggle.js create mode 100644 node_modules/rxjs/operator/windowToggle.js.map create mode 100644 node_modules/rxjs/operator/windowWhen.d.ts create mode 100644 node_modules/rxjs/operator/windowWhen.js create mode 100644 node_modules/rxjs/operator/windowWhen.js.map create mode 100644 node_modules/rxjs/operator/withLatestFrom.d.ts create mode 100644 node_modules/rxjs/operator/withLatestFrom.js create mode 100644 node_modules/rxjs/operator/withLatestFrom.js.map create mode 100644 node_modules/rxjs/operator/zip.d.ts create mode 100644 node_modules/rxjs/operator/zip.js create mode 100644 node_modules/rxjs/operator/zip.js.map create mode 100644 node_modules/rxjs/operator/zipAll.d.ts create mode 100644 node_modules/rxjs/operator/zipAll.js create mode 100644 node_modules/rxjs/operator/zipAll.js.map create mode 100644 node_modules/rxjs/operators/audit.d.ts create mode 100644 node_modules/rxjs/operators/audit.js create mode 100644 node_modules/rxjs/operators/audit.js.map create mode 100644 node_modules/rxjs/operators/auditTime.d.ts create mode 100644 node_modules/rxjs/operators/auditTime.js create mode 100644 node_modules/rxjs/operators/auditTime.js.map create mode 100644 node_modules/rxjs/operators/buffer.d.ts create mode 100644 node_modules/rxjs/operators/buffer.js create mode 100644 node_modules/rxjs/operators/buffer.js.map create mode 100644 node_modules/rxjs/operators/bufferCount.d.ts create mode 100644 node_modules/rxjs/operators/bufferCount.js create mode 100644 node_modules/rxjs/operators/bufferCount.js.map create mode 100644 node_modules/rxjs/operators/bufferTime.d.ts create mode 100644 node_modules/rxjs/operators/bufferTime.js create mode 100644 node_modules/rxjs/operators/bufferTime.js.map create mode 100644 node_modules/rxjs/operators/bufferToggle.d.ts create mode 100644 node_modules/rxjs/operators/bufferToggle.js create mode 100644 node_modules/rxjs/operators/bufferToggle.js.map create mode 100644 node_modules/rxjs/operators/bufferWhen.d.ts create mode 100644 node_modules/rxjs/operators/bufferWhen.js create mode 100644 node_modules/rxjs/operators/bufferWhen.js.map create mode 100644 node_modules/rxjs/operators/catchError.d.ts create mode 100644 node_modules/rxjs/operators/catchError.js create mode 100644 node_modules/rxjs/operators/catchError.js.map create mode 100644 node_modules/rxjs/operators/combineAll.d.ts create mode 100644 node_modules/rxjs/operators/combineAll.js create mode 100644 node_modules/rxjs/operators/combineAll.js.map create mode 100644 node_modules/rxjs/operators/combineLatest.d.ts create mode 100644 node_modules/rxjs/operators/combineLatest.js create mode 100644 node_modules/rxjs/operators/combineLatest.js.map create mode 100644 node_modules/rxjs/operators/concat.d.ts create mode 100644 node_modules/rxjs/operators/concat.js create mode 100644 node_modules/rxjs/operators/concat.js.map create mode 100644 node_modules/rxjs/operators/concatAll.d.ts create mode 100644 node_modules/rxjs/operators/concatAll.js create mode 100644 node_modules/rxjs/operators/concatAll.js.map create mode 100644 node_modules/rxjs/operators/concatMap.d.ts create mode 100644 node_modules/rxjs/operators/concatMap.js create mode 100644 node_modules/rxjs/operators/concatMap.js.map create mode 100644 node_modules/rxjs/operators/concatMapTo.d.ts create mode 100644 node_modules/rxjs/operators/concatMapTo.js create mode 100644 node_modules/rxjs/operators/concatMapTo.js.map create mode 100644 node_modules/rxjs/operators/count.d.ts create mode 100644 node_modules/rxjs/operators/count.js create mode 100644 node_modules/rxjs/operators/count.js.map create mode 100644 node_modules/rxjs/operators/debounce.d.ts create mode 100644 node_modules/rxjs/operators/debounce.js create mode 100644 node_modules/rxjs/operators/debounce.js.map create mode 100644 node_modules/rxjs/operators/debounceTime.d.ts create mode 100644 node_modules/rxjs/operators/debounceTime.js create mode 100644 node_modules/rxjs/operators/debounceTime.js.map create mode 100644 node_modules/rxjs/operators/defaultIfEmpty.d.ts create mode 100644 node_modules/rxjs/operators/defaultIfEmpty.js create mode 100644 node_modules/rxjs/operators/defaultIfEmpty.js.map create mode 100644 node_modules/rxjs/operators/delay.d.ts create mode 100644 node_modules/rxjs/operators/delay.js create mode 100644 node_modules/rxjs/operators/delay.js.map create mode 100644 node_modules/rxjs/operators/delayWhen.d.ts create mode 100644 node_modules/rxjs/operators/delayWhen.js create mode 100644 node_modules/rxjs/operators/delayWhen.js.map create mode 100644 node_modules/rxjs/operators/dematerialize.d.ts create mode 100644 node_modules/rxjs/operators/dematerialize.js create mode 100644 node_modules/rxjs/operators/dematerialize.js.map create mode 100644 node_modules/rxjs/operators/distinct.d.ts create mode 100644 node_modules/rxjs/operators/distinct.js create mode 100644 node_modules/rxjs/operators/distinct.js.map create mode 100644 node_modules/rxjs/operators/distinctUntilChanged.d.ts create mode 100644 node_modules/rxjs/operators/distinctUntilChanged.js create mode 100644 node_modules/rxjs/operators/distinctUntilChanged.js.map create mode 100644 node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts create mode 100644 node_modules/rxjs/operators/distinctUntilKeyChanged.js create mode 100644 node_modules/rxjs/operators/distinctUntilKeyChanged.js.map create mode 100644 node_modules/rxjs/operators/elementAt.d.ts create mode 100644 node_modules/rxjs/operators/elementAt.js create mode 100644 node_modules/rxjs/operators/elementAt.js.map create mode 100644 node_modules/rxjs/operators/every.d.ts create mode 100644 node_modules/rxjs/operators/every.js create mode 100644 node_modules/rxjs/operators/every.js.map create mode 100644 node_modules/rxjs/operators/exhaust.d.ts create mode 100644 node_modules/rxjs/operators/exhaust.js create mode 100644 node_modules/rxjs/operators/exhaust.js.map create mode 100644 node_modules/rxjs/operators/exhaustMap.d.ts create mode 100644 node_modules/rxjs/operators/exhaustMap.js create mode 100644 node_modules/rxjs/operators/exhaustMap.js.map create mode 100644 node_modules/rxjs/operators/expand.d.ts create mode 100644 node_modules/rxjs/operators/expand.js create mode 100644 node_modules/rxjs/operators/expand.js.map create mode 100644 node_modules/rxjs/operators/filter.d.ts create mode 100644 node_modules/rxjs/operators/filter.js create mode 100644 node_modules/rxjs/operators/filter.js.map create mode 100644 node_modules/rxjs/operators/finalize.d.ts create mode 100644 node_modules/rxjs/operators/finalize.js create mode 100644 node_modules/rxjs/operators/finalize.js.map create mode 100644 node_modules/rxjs/operators/find.d.ts create mode 100644 node_modules/rxjs/operators/find.js create mode 100644 node_modules/rxjs/operators/find.js.map create mode 100644 node_modules/rxjs/operators/findIndex.d.ts create mode 100644 node_modules/rxjs/operators/findIndex.js create mode 100644 node_modules/rxjs/operators/findIndex.js.map create mode 100644 node_modules/rxjs/operators/first.d.ts create mode 100644 node_modules/rxjs/operators/first.js create mode 100644 node_modules/rxjs/operators/first.js.map create mode 100644 node_modules/rxjs/operators/groupBy.d.ts create mode 100644 node_modules/rxjs/operators/groupBy.js create mode 100644 node_modules/rxjs/operators/groupBy.js.map create mode 100644 node_modules/rxjs/operators/ignoreElements.d.ts create mode 100644 node_modules/rxjs/operators/ignoreElements.js create mode 100644 node_modules/rxjs/operators/ignoreElements.js.map create mode 100644 node_modules/rxjs/operators/index.d.ts create mode 100644 node_modules/rxjs/operators/index.js create mode 100644 node_modules/rxjs/operators/index.js.map create mode 100644 node_modules/rxjs/operators/isEmpty.d.ts create mode 100644 node_modules/rxjs/operators/isEmpty.js create mode 100644 node_modules/rxjs/operators/isEmpty.js.map create mode 100644 node_modules/rxjs/operators/last.d.ts create mode 100644 node_modules/rxjs/operators/last.js create mode 100644 node_modules/rxjs/operators/last.js.map create mode 100644 node_modules/rxjs/operators/map.d.ts create mode 100644 node_modules/rxjs/operators/map.js create mode 100644 node_modules/rxjs/operators/map.js.map create mode 100644 node_modules/rxjs/operators/mapTo.d.ts create mode 100644 node_modules/rxjs/operators/mapTo.js create mode 100644 node_modules/rxjs/operators/mapTo.js.map create mode 100644 node_modules/rxjs/operators/materialize.d.ts create mode 100644 node_modules/rxjs/operators/materialize.js create mode 100644 node_modules/rxjs/operators/materialize.js.map create mode 100644 node_modules/rxjs/operators/max.d.ts create mode 100644 node_modules/rxjs/operators/max.js create mode 100644 node_modules/rxjs/operators/max.js.map create mode 100644 node_modules/rxjs/operators/merge.d.ts create mode 100644 node_modules/rxjs/operators/merge.js create mode 100644 node_modules/rxjs/operators/merge.js.map create mode 100644 node_modules/rxjs/operators/mergeAll.d.ts create mode 100644 node_modules/rxjs/operators/mergeAll.js create mode 100644 node_modules/rxjs/operators/mergeAll.js.map create mode 100644 node_modules/rxjs/operators/mergeMap.d.ts create mode 100644 node_modules/rxjs/operators/mergeMap.js create mode 100644 node_modules/rxjs/operators/mergeMap.js.map create mode 100644 node_modules/rxjs/operators/mergeMapTo.d.ts create mode 100644 node_modules/rxjs/operators/mergeMapTo.js create mode 100644 node_modules/rxjs/operators/mergeMapTo.js.map create mode 100644 node_modules/rxjs/operators/mergeScan.d.ts create mode 100644 node_modules/rxjs/operators/mergeScan.js create mode 100644 node_modules/rxjs/operators/mergeScan.js.map create mode 100644 node_modules/rxjs/operators/min.d.ts create mode 100644 node_modules/rxjs/operators/min.js create mode 100644 node_modules/rxjs/operators/min.js.map create mode 100644 node_modules/rxjs/operators/multicast.d.ts create mode 100644 node_modules/rxjs/operators/multicast.js create mode 100644 node_modules/rxjs/operators/multicast.js.map create mode 100644 node_modules/rxjs/operators/observeOn.d.ts create mode 100644 node_modules/rxjs/operators/observeOn.js create mode 100644 node_modules/rxjs/operators/observeOn.js.map create mode 100644 node_modules/rxjs/operators/onErrorResumeNext.d.ts create mode 100644 node_modules/rxjs/operators/onErrorResumeNext.js create mode 100644 node_modules/rxjs/operators/onErrorResumeNext.js.map create mode 100644 node_modules/rxjs/operators/package.json create mode 100644 node_modules/rxjs/operators/pairwise.d.ts create mode 100644 node_modules/rxjs/operators/pairwise.js create mode 100644 node_modules/rxjs/operators/pairwise.js.map create mode 100644 node_modules/rxjs/operators/partition.d.ts create mode 100644 node_modules/rxjs/operators/partition.js create mode 100644 node_modules/rxjs/operators/partition.js.map create mode 100644 node_modules/rxjs/operators/pluck.d.ts create mode 100644 node_modules/rxjs/operators/pluck.js create mode 100644 node_modules/rxjs/operators/pluck.js.map create mode 100644 node_modules/rxjs/operators/publish.d.ts create mode 100644 node_modules/rxjs/operators/publish.js create mode 100644 node_modules/rxjs/operators/publish.js.map create mode 100644 node_modules/rxjs/operators/publishBehavior.d.ts create mode 100644 node_modules/rxjs/operators/publishBehavior.js create mode 100644 node_modules/rxjs/operators/publishBehavior.js.map create mode 100644 node_modules/rxjs/operators/publishLast.d.ts create mode 100644 node_modules/rxjs/operators/publishLast.js create mode 100644 node_modules/rxjs/operators/publishLast.js.map create mode 100644 node_modules/rxjs/operators/publishReplay.d.ts create mode 100644 node_modules/rxjs/operators/publishReplay.js create mode 100644 node_modules/rxjs/operators/publishReplay.js.map create mode 100644 node_modules/rxjs/operators/race.d.ts create mode 100644 node_modules/rxjs/operators/race.js create mode 100644 node_modules/rxjs/operators/race.js.map create mode 100644 node_modules/rxjs/operators/reduce.d.ts create mode 100644 node_modules/rxjs/operators/reduce.js create mode 100644 node_modules/rxjs/operators/reduce.js.map create mode 100644 node_modules/rxjs/operators/refCount.d.ts create mode 100644 node_modules/rxjs/operators/refCount.js create mode 100644 node_modules/rxjs/operators/refCount.js.map create mode 100644 node_modules/rxjs/operators/repeat.d.ts create mode 100644 node_modules/rxjs/operators/repeat.js create mode 100644 node_modules/rxjs/operators/repeat.js.map create mode 100644 node_modules/rxjs/operators/repeatWhen.d.ts create mode 100644 node_modules/rxjs/operators/repeatWhen.js create mode 100644 node_modules/rxjs/operators/repeatWhen.js.map create mode 100644 node_modules/rxjs/operators/retry.d.ts create mode 100644 node_modules/rxjs/operators/retry.js create mode 100644 node_modules/rxjs/operators/retry.js.map create mode 100644 node_modules/rxjs/operators/retryWhen.d.ts create mode 100644 node_modules/rxjs/operators/retryWhen.js create mode 100644 node_modules/rxjs/operators/retryWhen.js.map create mode 100644 node_modules/rxjs/operators/sample.d.ts create mode 100644 node_modules/rxjs/operators/sample.js create mode 100644 node_modules/rxjs/operators/sample.js.map create mode 100644 node_modules/rxjs/operators/sampleTime.d.ts create mode 100644 node_modules/rxjs/operators/sampleTime.js create mode 100644 node_modules/rxjs/operators/sampleTime.js.map create mode 100644 node_modules/rxjs/operators/scan.d.ts create mode 100644 node_modules/rxjs/operators/scan.js create mode 100644 node_modules/rxjs/operators/scan.js.map create mode 100644 node_modules/rxjs/operators/sequenceEqual.d.ts create mode 100644 node_modules/rxjs/operators/sequenceEqual.js create mode 100644 node_modules/rxjs/operators/sequenceEqual.js.map create mode 100644 node_modules/rxjs/operators/share.d.ts create mode 100644 node_modules/rxjs/operators/share.js create mode 100644 node_modules/rxjs/operators/share.js.map create mode 100644 node_modules/rxjs/operators/shareReplay.d.ts create mode 100644 node_modules/rxjs/operators/shareReplay.js create mode 100644 node_modules/rxjs/operators/shareReplay.js.map create mode 100644 node_modules/rxjs/operators/single.d.ts create mode 100644 node_modules/rxjs/operators/single.js create mode 100644 node_modules/rxjs/operators/single.js.map create mode 100644 node_modules/rxjs/operators/skip.d.ts create mode 100644 node_modules/rxjs/operators/skip.js create mode 100644 node_modules/rxjs/operators/skip.js.map create mode 100644 node_modules/rxjs/operators/skipLast.d.ts create mode 100644 node_modules/rxjs/operators/skipLast.js create mode 100644 node_modules/rxjs/operators/skipLast.js.map create mode 100644 node_modules/rxjs/operators/skipUntil.d.ts create mode 100644 node_modules/rxjs/operators/skipUntil.js create mode 100644 node_modules/rxjs/operators/skipUntil.js.map create mode 100644 node_modules/rxjs/operators/skipWhile.d.ts create mode 100644 node_modules/rxjs/operators/skipWhile.js create mode 100644 node_modules/rxjs/operators/skipWhile.js.map create mode 100644 node_modules/rxjs/operators/startWith.d.ts create mode 100644 node_modules/rxjs/operators/startWith.js create mode 100644 node_modules/rxjs/operators/startWith.js.map create mode 100644 node_modules/rxjs/operators/subscribeOn.d.ts create mode 100644 node_modules/rxjs/operators/subscribeOn.js create mode 100644 node_modules/rxjs/operators/subscribeOn.js.map create mode 100644 node_modules/rxjs/operators/switchAll.d.ts create mode 100644 node_modules/rxjs/operators/switchAll.js create mode 100644 node_modules/rxjs/operators/switchAll.js.map create mode 100644 node_modules/rxjs/operators/switchMap.d.ts create mode 100644 node_modules/rxjs/operators/switchMap.js create mode 100644 node_modules/rxjs/operators/switchMap.js.map create mode 100644 node_modules/rxjs/operators/switchMapTo.d.ts create mode 100644 node_modules/rxjs/operators/switchMapTo.js create mode 100644 node_modules/rxjs/operators/switchMapTo.js.map create mode 100644 node_modules/rxjs/operators/take.d.ts create mode 100644 node_modules/rxjs/operators/take.js create mode 100644 node_modules/rxjs/operators/take.js.map create mode 100644 node_modules/rxjs/operators/takeLast.d.ts create mode 100644 node_modules/rxjs/operators/takeLast.js create mode 100644 node_modules/rxjs/operators/takeLast.js.map create mode 100644 node_modules/rxjs/operators/takeUntil.d.ts create mode 100644 node_modules/rxjs/operators/takeUntil.js create mode 100644 node_modules/rxjs/operators/takeUntil.js.map create mode 100644 node_modules/rxjs/operators/takeWhile.d.ts create mode 100644 node_modules/rxjs/operators/takeWhile.js create mode 100644 node_modules/rxjs/operators/takeWhile.js.map create mode 100644 node_modules/rxjs/operators/tap.d.ts create mode 100644 node_modules/rxjs/operators/tap.js create mode 100644 node_modules/rxjs/operators/tap.js.map create mode 100644 node_modules/rxjs/operators/throttle.d.ts create mode 100644 node_modules/rxjs/operators/throttle.js create mode 100644 node_modules/rxjs/operators/throttle.js.map create mode 100644 node_modules/rxjs/operators/throttleTime.d.ts create mode 100644 node_modules/rxjs/operators/throttleTime.js create mode 100644 node_modules/rxjs/operators/throttleTime.js.map create mode 100644 node_modules/rxjs/operators/throwIfEmpty.d.ts create mode 100644 node_modules/rxjs/operators/throwIfEmpty.js create mode 100644 node_modules/rxjs/operators/throwIfEmpty.js.map create mode 100644 node_modules/rxjs/operators/timeInterval.d.ts create mode 100644 node_modules/rxjs/operators/timeInterval.js create mode 100644 node_modules/rxjs/operators/timeInterval.js.map create mode 100644 node_modules/rxjs/operators/timeout.d.ts create mode 100644 node_modules/rxjs/operators/timeout.js create mode 100644 node_modules/rxjs/operators/timeout.js.map create mode 100644 node_modules/rxjs/operators/timeoutWith.d.ts create mode 100644 node_modules/rxjs/operators/timeoutWith.js create mode 100644 node_modules/rxjs/operators/timeoutWith.js.map create mode 100644 node_modules/rxjs/operators/timestamp.d.ts create mode 100644 node_modules/rxjs/operators/timestamp.js create mode 100644 node_modules/rxjs/operators/timestamp.js.map create mode 100644 node_modules/rxjs/operators/toArray.d.ts create mode 100644 node_modules/rxjs/operators/toArray.js create mode 100644 node_modules/rxjs/operators/toArray.js.map create mode 100644 node_modules/rxjs/operators/window.d.ts create mode 100644 node_modules/rxjs/operators/window.js create mode 100644 node_modules/rxjs/operators/window.js.map create mode 100644 node_modules/rxjs/operators/windowCount.d.ts create mode 100644 node_modules/rxjs/operators/windowCount.js create mode 100644 node_modules/rxjs/operators/windowCount.js.map create mode 100644 node_modules/rxjs/operators/windowTime.d.ts create mode 100644 node_modules/rxjs/operators/windowTime.js create mode 100644 node_modules/rxjs/operators/windowTime.js.map create mode 100644 node_modules/rxjs/operators/windowToggle.d.ts create mode 100644 node_modules/rxjs/operators/windowToggle.js create mode 100644 node_modules/rxjs/operators/windowToggle.js.map create mode 100644 node_modules/rxjs/operators/windowWhen.d.ts create mode 100644 node_modules/rxjs/operators/windowWhen.js create mode 100644 node_modules/rxjs/operators/windowWhen.js.map create mode 100644 node_modules/rxjs/operators/withLatestFrom.d.ts create mode 100644 node_modules/rxjs/operators/withLatestFrom.js create mode 100644 node_modules/rxjs/operators/withLatestFrom.js.map create mode 100644 node_modules/rxjs/operators/zip.d.ts create mode 100644 node_modules/rxjs/operators/zip.js create mode 100644 node_modules/rxjs/operators/zip.js.map create mode 100644 node_modules/rxjs/operators/zipAll.d.ts create mode 100644 node_modules/rxjs/operators/zipAll.js create mode 100644 node_modules/rxjs/operators/zipAll.js.map create mode 100644 node_modules/rxjs/package.json create mode 100644 node_modules/rxjs/scheduler/animationFrame.d.ts create mode 100644 node_modules/rxjs/scheduler/animationFrame.js create mode 100644 node_modules/rxjs/scheduler/animationFrame.js.map create mode 100644 node_modules/rxjs/scheduler/asap.d.ts create mode 100644 node_modules/rxjs/scheduler/asap.js create mode 100644 node_modules/rxjs/scheduler/asap.js.map create mode 100644 node_modules/rxjs/scheduler/async.d.ts create mode 100644 node_modules/rxjs/scheduler/async.js create mode 100644 node_modules/rxjs/scheduler/async.js.map create mode 100644 node_modules/rxjs/scheduler/queue.d.ts create mode 100644 node_modules/rxjs/scheduler/queue.js create mode 100644 node_modules/rxjs/scheduler/queue.js.map create mode 100644 node_modules/rxjs/src/AsyncSubject.ts create mode 100644 node_modules/rxjs/src/BehaviorSubject.ts create mode 100644 node_modules/rxjs/src/InnerSubscriber.ts create mode 100644 node_modules/rxjs/src/LICENSE.txt create mode 100644 node_modules/rxjs/src/MiscJSDoc.ts create mode 100644 node_modules/rxjs/src/Notification.ts create mode 100644 node_modules/rxjs/src/Observable.ts create mode 100644 node_modules/rxjs/src/Observer.ts create mode 100644 node_modules/rxjs/src/Operator.ts create mode 100644 node_modules/rxjs/src/OuterSubscriber.ts create mode 100644 node_modules/rxjs/src/README.md create mode 100644 node_modules/rxjs/src/ReplaySubject.ts create mode 100644 node_modules/rxjs/src/Rx.global.js create mode 100644 node_modules/rxjs/src/Rx.ts create mode 100644 node_modules/rxjs/src/Scheduler.ts create mode 100644 node_modules/rxjs/src/Subject.ts create mode 100644 node_modules/rxjs/src/SubjectSubscription.ts create mode 100644 node_modules/rxjs/src/Subscriber.ts create mode 100644 node_modules/rxjs/src/Subscription.ts create mode 100644 node_modules/rxjs/src/add/observable/bindCallback.ts create mode 100644 node_modules/rxjs/src/add/observable/bindNodeCallback.ts create mode 100644 node_modules/rxjs/src/add/observable/combineLatest.ts create mode 100644 node_modules/rxjs/src/add/observable/concat.ts create mode 100644 node_modules/rxjs/src/add/observable/defer.ts create mode 100644 node_modules/rxjs/src/add/observable/dom/ajax.ts create mode 100644 node_modules/rxjs/src/add/observable/dom/webSocket.ts create mode 100644 node_modules/rxjs/src/add/observable/empty.ts create mode 100644 node_modules/rxjs/src/add/observable/forkJoin.ts create mode 100644 node_modules/rxjs/src/add/observable/from.ts create mode 100644 node_modules/rxjs/src/add/observable/fromEvent.ts create mode 100644 node_modules/rxjs/src/add/observable/fromEventPattern.ts create mode 100644 node_modules/rxjs/src/add/observable/fromPromise.ts create mode 100644 node_modules/rxjs/src/add/observable/generate.ts create mode 100644 node_modules/rxjs/src/add/observable/if.ts create mode 100644 node_modules/rxjs/src/add/observable/interval.ts create mode 100644 node_modules/rxjs/src/add/observable/merge.ts create mode 100644 node_modules/rxjs/src/add/observable/never.ts create mode 100644 node_modules/rxjs/src/add/observable/of.ts create mode 100644 node_modules/rxjs/src/add/observable/onErrorResumeNext.ts create mode 100644 node_modules/rxjs/src/add/observable/pairs.ts create mode 100644 node_modules/rxjs/src/add/observable/race.ts create mode 100644 node_modules/rxjs/src/add/observable/range.ts create mode 100644 node_modules/rxjs/src/add/observable/throw.ts create mode 100644 node_modules/rxjs/src/add/observable/timer.ts create mode 100644 node_modules/rxjs/src/add/observable/using.ts create mode 100644 node_modules/rxjs/src/add/observable/zip.ts create mode 100644 node_modules/rxjs/src/add/operator/audit.ts create mode 100644 node_modules/rxjs/src/add/operator/auditTime.ts create mode 100644 node_modules/rxjs/src/add/operator/buffer.ts create mode 100644 node_modules/rxjs/src/add/operator/bufferCount.ts create mode 100644 node_modules/rxjs/src/add/operator/bufferTime.ts create mode 100644 node_modules/rxjs/src/add/operator/bufferToggle.ts create mode 100644 node_modules/rxjs/src/add/operator/bufferWhen.ts create mode 100644 node_modules/rxjs/src/add/operator/catch.ts create mode 100644 node_modules/rxjs/src/add/operator/combineAll.ts create mode 100644 node_modules/rxjs/src/add/operator/combineLatest.ts create mode 100644 node_modules/rxjs/src/add/operator/concat.ts create mode 100644 node_modules/rxjs/src/add/operator/concatAll.ts create mode 100644 node_modules/rxjs/src/add/operator/concatMap.ts create mode 100644 node_modules/rxjs/src/add/operator/concatMapTo.ts create mode 100644 node_modules/rxjs/src/add/operator/count.ts create mode 100644 node_modules/rxjs/src/add/operator/debounce.ts create mode 100644 node_modules/rxjs/src/add/operator/debounceTime.ts create mode 100644 node_modules/rxjs/src/add/operator/defaultIfEmpty.ts create mode 100644 node_modules/rxjs/src/add/operator/delay.ts create mode 100644 node_modules/rxjs/src/add/operator/delayWhen.ts create mode 100644 node_modules/rxjs/src/add/operator/dematerialize.ts create mode 100644 node_modules/rxjs/src/add/operator/distinct.ts create mode 100644 node_modules/rxjs/src/add/operator/distinctUntilChanged.ts create mode 100644 node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts create mode 100644 node_modules/rxjs/src/add/operator/do.ts create mode 100644 node_modules/rxjs/src/add/operator/elementAt.ts create mode 100644 node_modules/rxjs/src/add/operator/every.ts create mode 100644 node_modules/rxjs/src/add/operator/exhaust.ts create mode 100644 node_modules/rxjs/src/add/operator/exhaustMap.ts create mode 100644 node_modules/rxjs/src/add/operator/expand.ts create mode 100644 node_modules/rxjs/src/add/operator/filter.ts create mode 100644 node_modules/rxjs/src/add/operator/finally.ts create mode 100644 node_modules/rxjs/src/add/operator/find.ts create mode 100644 node_modules/rxjs/src/add/operator/findIndex.ts create mode 100644 node_modules/rxjs/src/add/operator/first.ts create mode 100644 node_modules/rxjs/src/add/operator/groupBy.ts create mode 100644 node_modules/rxjs/src/add/operator/ignoreElements.ts create mode 100644 node_modules/rxjs/src/add/operator/isEmpty.ts create mode 100644 node_modules/rxjs/src/add/operator/last.ts create mode 100644 node_modules/rxjs/src/add/operator/let.ts create mode 100644 node_modules/rxjs/src/add/operator/map.ts create mode 100644 node_modules/rxjs/src/add/operator/mapTo.ts create mode 100644 node_modules/rxjs/src/add/operator/materialize.ts create mode 100644 node_modules/rxjs/src/add/operator/max.ts create mode 100644 node_modules/rxjs/src/add/operator/merge.ts create mode 100644 node_modules/rxjs/src/add/operator/mergeAll.ts create mode 100644 node_modules/rxjs/src/add/operator/mergeMap.ts create mode 100644 node_modules/rxjs/src/add/operator/mergeMapTo.ts create mode 100644 node_modules/rxjs/src/add/operator/mergeScan.ts create mode 100644 node_modules/rxjs/src/add/operator/min.ts create mode 100644 node_modules/rxjs/src/add/operator/multicast.ts create mode 100644 node_modules/rxjs/src/add/operator/observeOn.ts create mode 100644 node_modules/rxjs/src/add/operator/onErrorResumeNext.ts create mode 100644 node_modules/rxjs/src/add/operator/pairwise.ts create mode 100644 node_modules/rxjs/src/add/operator/partition.ts create mode 100644 node_modules/rxjs/src/add/operator/pluck.ts create mode 100644 node_modules/rxjs/src/add/operator/publish.ts create mode 100644 node_modules/rxjs/src/add/operator/publishBehavior.ts create mode 100644 node_modules/rxjs/src/add/operator/publishLast.ts create mode 100644 node_modules/rxjs/src/add/operator/publishReplay.ts create mode 100644 node_modules/rxjs/src/add/operator/race.ts create mode 100644 node_modules/rxjs/src/add/operator/reduce.ts create mode 100644 node_modules/rxjs/src/add/operator/repeat.ts create mode 100644 node_modules/rxjs/src/add/operator/repeatWhen.ts create mode 100644 node_modules/rxjs/src/add/operator/retry.ts create mode 100644 node_modules/rxjs/src/add/operator/retryWhen.ts create mode 100644 node_modules/rxjs/src/add/operator/sample.ts create mode 100644 node_modules/rxjs/src/add/operator/sampleTime.ts create mode 100644 node_modules/rxjs/src/add/operator/scan.ts create mode 100644 node_modules/rxjs/src/add/operator/sequenceEqual.ts create mode 100644 node_modules/rxjs/src/add/operator/share.ts create mode 100644 node_modules/rxjs/src/add/operator/shareReplay.ts create mode 100644 node_modules/rxjs/src/add/operator/single.ts create mode 100644 node_modules/rxjs/src/add/operator/skip.ts create mode 100644 node_modules/rxjs/src/add/operator/skipLast.ts create mode 100644 node_modules/rxjs/src/add/operator/skipUntil.ts create mode 100644 node_modules/rxjs/src/add/operator/skipWhile.ts create mode 100644 node_modules/rxjs/src/add/operator/startWith.ts create mode 100644 node_modules/rxjs/src/add/operator/subscribeOn.ts create mode 100644 node_modules/rxjs/src/add/operator/switch.ts create mode 100644 node_modules/rxjs/src/add/operator/switchMap.ts create mode 100644 node_modules/rxjs/src/add/operator/switchMapTo.ts create mode 100644 node_modules/rxjs/src/add/operator/take.ts create mode 100644 node_modules/rxjs/src/add/operator/takeLast.ts create mode 100644 node_modules/rxjs/src/add/operator/takeUntil.ts create mode 100644 node_modules/rxjs/src/add/operator/takeWhile.ts create mode 100644 node_modules/rxjs/src/add/operator/throttle.ts create mode 100644 node_modules/rxjs/src/add/operator/throttleTime.ts create mode 100644 node_modules/rxjs/src/add/operator/timeInterval.ts create mode 100644 node_modules/rxjs/src/add/operator/timeout.ts create mode 100644 node_modules/rxjs/src/add/operator/timeoutWith.ts create mode 100644 node_modules/rxjs/src/add/operator/timestamp.ts create mode 100644 node_modules/rxjs/src/add/operator/toArray.ts create mode 100644 node_modules/rxjs/src/add/operator/toPromise.ts create mode 100644 node_modules/rxjs/src/add/operator/window.ts create mode 100644 node_modules/rxjs/src/add/operator/windowCount.ts create mode 100644 node_modules/rxjs/src/add/operator/windowTime.ts create mode 100644 node_modules/rxjs/src/add/operator/windowToggle.ts create mode 100644 node_modules/rxjs/src/add/operator/windowWhen.ts create mode 100644 node_modules/rxjs/src/add/operator/withLatestFrom.ts create mode 100644 node_modules/rxjs/src/add/operator/zip.ts create mode 100644 node_modules/rxjs/src/add/operator/zipAll.ts create mode 100644 node_modules/rxjs/src/ajax/index.ts create mode 100644 node_modules/rxjs/src/ajax/package.json create mode 100644 node_modules/rxjs/src/fetch/index.ts create mode 100644 node_modules/rxjs/src/fetch/package.json create mode 100644 node_modules/rxjs/src/index.ts create mode 100644 node_modules/rxjs/src/interfaces.ts create mode 100644 node_modules/rxjs/src/internal-compatibility/index.ts create mode 100644 node_modules/rxjs/src/internal-compatibility/package.json create mode 100644 node_modules/rxjs/src/internal/AsyncSubject.ts create mode 100644 node_modules/rxjs/src/internal/BehaviorSubject.ts create mode 100644 node_modules/rxjs/src/internal/InnerSubscriber.ts create mode 100644 node_modules/rxjs/src/internal/Notification.ts create mode 100644 node_modules/rxjs/src/internal/Observable.ts create mode 100644 node_modules/rxjs/src/internal/Observer.ts create mode 100644 node_modules/rxjs/src/internal/Operator.ts create mode 100644 node_modules/rxjs/src/internal/OuterSubscriber.ts create mode 100644 node_modules/rxjs/src/internal/ReplaySubject.ts create mode 100644 node_modules/rxjs/src/internal/Rx.ts create mode 100644 node_modules/rxjs/src/internal/Scheduler.ts create mode 100644 node_modules/rxjs/src/internal/Subject.ts create mode 100644 node_modules/rxjs/src/internal/SubjectSubscription.ts create mode 100644 node_modules/rxjs/src/internal/Subscriber.ts create mode 100644 node_modules/rxjs/src/internal/Subscription.ts create mode 100644 node_modules/rxjs/src/internal/config.ts create mode 100644 node_modules/rxjs/src/internal/innerSubscribe.ts create mode 100644 node_modules/rxjs/src/internal/observable/ConnectableObservable.ts create mode 100644 node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts create mode 100644 node_modules/rxjs/src/internal/observable/bindCallback.ts create mode 100644 node_modules/rxjs/src/internal/observable/bindNodeCallback.ts create mode 100644 node_modules/rxjs/src/internal/observable/combineLatest.ts create mode 100644 node_modules/rxjs/src/internal/observable/concat.ts create mode 100644 node_modules/rxjs/src/internal/observable/defer.ts create mode 100644 node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts create mode 100644 node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts create mode 100644 node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts create mode 100644 node_modules/rxjs/src/internal/observable/dom/ajax.ts create mode 100644 node_modules/rxjs/src/internal/observable/dom/fetch.ts create mode 100644 node_modules/rxjs/src/internal/observable/dom/webSocket.ts create mode 100644 node_modules/rxjs/src/internal/observable/empty.ts create mode 100644 node_modules/rxjs/src/internal/observable/forkJoin.ts create mode 100644 node_modules/rxjs/src/internal/observable/from.ts create mode 100644 node_modules/rxjs/src/internal/observable/fromArray.ts create mode 100644 node_modules/rxjs/src/internal/observable/fromEvent.ts create mode 100644 node_modules/rxjs/src/internal/observable/fromEventPattern.ts create mode 100644 node_modules/rxjs/src/internal/observable/fromIterable.ts create mode 100644 node_modules/rxjs/src/internal/observable/fromObservable.ts create mode 100644 node_modules/rxjs/src/internal/observable/fromPromise.ts create mode 100644 node_modules/rxjs/src/internal/observable/generate.ts create mode 100644 node_modules/rxjs/src/internal/observable/iif.ts create mode 100644 node_modules/rxjs/src/internal/observable/interval.ts create mode 100644 node_modules/rxjs/src/internal/observable/merge.ts create mode 100644 node_modules/rxjs/src/internal/observable/never.ts create mode 100644 node_modules/rxjs/src/internal/observable/of.ts create mode 100644 node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts create mode 100644 node_modules/rxjs/src/internal/observable/pairs.ts create mode 100644 node_modules/rxjs/src/internal/observable/partition.ts create mode 100644 node_modules/rxjs/src/internal/observable/race.ts create mode 100644 node_modules/rxjs/src/internal/observable/range.ts create mode 100644 node_modules/rxjs/src/internal/observable/throwError.ts create mode 100644 node_modules/rxjs/src/internal/observable/timer.ts create mode 100644 node_modules/rxjs/src/internal/observable/using.ts create mode 100644 node_modules/rxjs/src/internal/observable/zip.ts create mode 100644 node_modules/rxjs/src/internal/operators/audit.ts create mode 100644 node_modules/rxjs/src/internal/operators/auditTime.ts create mode 100644 node_modules/rxjs/src/internal/operators/buffer.ts create mode 100644 node_modules/rxjs/src/internal/operators/bufferCount.ts create mode 100644 node_modules/rxjs/src/internal/operators/bufferTime.ts create mode 100644 node_modules/rxjs/src/internal/operators/bufferToggle.ts create mode 100644 node_modules/rxjs/src/internal/operators/bufferWhen.ts create mode 100644 node_modules/rxjs/src/internal/operators/catchError.ts create mode 100644 node_modules/rxjs/src/internal/operators/combineAll.ts create mode 100644 node_modules/rxjs/src/internal/operators/combineLatest.ts create mode 100644 node_modules/rxjs/src/internal/operators/concat.ts create mode 100644 node_modules/rxjs/src/internal/operators/concatAll.ts create mode 100644 node_modules/rxjs/src/internal/operators/concatMap.ts create mode 100644 node_modules/rxjs/src/internal/operators/concatMapTo.ts create mode 100644 node_modules/rxjs/src/internal/operators/count.ts create mode 100644 node_modules/rxjs/src/internal/operators/debounce.ts create mode 100644 node_modules/rxjs/src/internal/operators/debounceTime.ts create mode 100644 node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts create mode 100644 node_modules/rxjs/src/internal/operators/delay.ts create mode 100644 node_modules/rxjs/src/internal/operators/delayWhen.ts create mode 100644 node_modules/rxjs/src/internal/operators/dematerialize.ts create mode 100644 node_modules/rxjs/src/internal/operators/distinct.ts create mode 100644 node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts create mode 100644 node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts create mode 100644 node_modules/rxjs/src/internal/operators/elementAt.ts create mode 100644 node_modules/rxjs/src/internal/operators/endWith.ts create mode 100644 node_modules/rxjs/src/internal/operators/every.ts create mode 100644 node_modules/rxjs/src/internal/operators/exhaust.ts create mode 100644 node_modules/rxjs/src/internal/operators/exhaustMap.ts create mode 100644 node_modules/rxjs/src/internal/operators/expand.ts create mode 100644 node_modules/rxjs/src/internal/operators/filter.ts create mode 100644 node_modules/rxjs/src/internal/operators/finalize.ts create mode 100644 node_modules/rxjs/src/internal/operators/find.ts create mode 100644 node_modules/rxjs/src/internal/operators/findIndex.ts create mode 100644 node_modules/rxjs/src/internal/operators/first.ts create mode 100644 node_modules/rxjs/src/internal/operators/groupBy.ts create mode 100644 node_modules/rxjs/src/internal/operators/ignoreElements.ts create mode 100644 node_modules/rxjs/src/internal/operators/index.ts create mode 100644 node_modules/rxjs/src/internal/operators/isEmpty.ts create mode 100644 node_modules/rxjs/src/internal/operators/last.ts create mode 100644 node_modules/rxjs/src/internal/operators/map.ts create mode 100644 node_modules/rxjs/src/internal/operators/mapTo.ts create mode 100644 node_modules/rxjs/src/internal/operators/materialize.ts create mode 100644 node_modules/rxjs/src/internal/operators/max.ts create mode 100644 node_modules/rxjs/src/internal/operators/merge.ts create mode 100644 node_modules/rxjs/src/internal/operators/mergeAll.ts create mode 100644 node_modules/rxjs/src/internal/operators/mergeMap.ts create mode 100644 node_modules/rxjs/src/internal/operators/mergeMapTo.ts create mode 100644 node_modules/rxjs/src/internal/operators/mergeScan.ts create mode 100644 node_modules/rxjs/src/internal/operators/min.ts create mode 100644 node_modules/rxjs/src/internal/operators/multicast.ts create mode 100644 node_modules/rxjs/src/internal/operators/observeOn.ts create mode 100644 node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts create mode 100644 node_modules/rxjs/src/internal/operators/pairwise.ts create mode 100644 node_modules/rxjs/src/internal/operators/partition.ts create mode 100644 node_modules/rxjs/src/internal/operators/pluck.ts create mode 100644 node_modules/rxjs/src/internal/operators/publish.ts create mode 100644 node_modules/rxjs/src/internal/operators/publishBehavior.ts create mode 100644 node_modules/rxjs/src/internal/operators/publishLast.ts create mode 100644 node_modules/rxjs/src/internal/operators/publishReplay.ts create mode 100644 node_modules/rxjs/src/internal/operators/race.ts create mode 100644 node_modules/rxjs/src/internal/operators/reduce.ts create mode 100644 node_modules/rxjs/src/internal/operators/refCount.ts create mode 100644 node_modules/rxjs/src/internal/operators/repeat.ts create mode 100644 node_modules/rxjs/src/internal/operators/repeatWhen.ts create mode 100644 node_modules/rxjs/src/internal/operators/retry.ts create mode 100644 node_modules/rxjs/src/internal/operators/retryWhen.ts create mode 100644 node_modules/rxjs/src/internal/operators/sample.ts create mode 100644 node_modules/rxjs/src/internal/operators/sampleTime.ts create mode 100644 node_modules/rxjs/src/internal/operators/scan.ts create mode 100644 node_modules/rxjs/src/internal/operators/sequenceEqual.ts create mode 100644 node_modules/rxjs/src/internal/operators/share.ts create mode 100644 node_modules/rxjs/src/internal/operators/shareReplay.ts create mode 100644 node_modules/rxjs/src/internal/operators/single.ts create mode 100644 node_modules/rxjs/src/internal/operators/skip.ts create mode 100644 node_modules/rxjs/src/internal/operators/skipLast.ts create mode 100644 node_modules/rxjs/src/internal/operators/skipUntil.ts create mode 100644 node_modules/rxjs/src/internal/operators/skipWhile.ts create mode 100644 node_modules/rxjs/src/internal/operators/startWith.ts create mode 100644 node_modules/rxjs/src/internal/operators/subscribeOn.ts create mode 100644 node_modules/rxjs/src/internal/operators/switchAll.ts create mode 100644 node_modules/rxjs/src/internal/operators/switchMap.ts create mode 100644 node_modules/rxjs/src/internal/operators/switchMapTo.ts create mode 100644 node_modules/rxjs/src/internal/operators/take.ts create mode 100644 node_modules/rxjs/src/internal/operators/takeLast.ts create mode 100644 node_modules/rxjs/src/internal/operators/takeUntil.ts create mode 100644 node_modules/rxjs/src/internal/operators/takeWhile.ts create mode 100644 node_modules/rxjs/src/internal/operators/tap.ts create mode 100644 node_modules/rxjs/src/internal/operators/throttle.ts create mode 100644 node_modules/rxjs/src/internal/operators/throttleTime.ts create mode 100644 node_modules/rxjs/src/internal/operators/throwIfEmpty.ts create mode 100644 node_modules/rxjs/src/internal/operators/timeInterval.ts create mode 100644 node_modules/rxjs/src/internal/operators/timeout.ts create mode 100644 node_modules/rxjs/src/internal/operators/timeoutWith.ts create mode 100644 node_modules/rxjs/src/internal/operators/timestamp.ts create mode 100644 node_modules/rxjs/src/internal/operators/toArray.ts create mode 100644 node_modules/rxjs/src/internal/operators/window.ts create mode 100644 node_modules/rxjs/src/internal/operators/windowCount.ts create mode 100644 node_modules/rxjs/src/internal/operators/windowTime.ts create mode 100644 node_modules/rxjs/src/internal/operators/windowToggle.ts create mode 100644 node_modules/rxjs/src/internal/operators/windowWhen.ts create mode 100644 node_modules/rxjs/src/internal/operators/withLatestFrom.ts create mode 100644 node_modules/rxjs/src/internal/operators/zip.ts create mode 100644 node_modules/rxjs/src/internal/operators/zipAll.ts create mode 100644 node_modules/rxjs/src/internal/scheduled/scheduleArray.ts create mode 100644 node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts create mode 100644 node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts create mode 100644 node_modules/rxjs/src/internal/scheduled/schedulePromise.ts create mode 100644 node_modules/rxjs/src/internal/scheduled/scheduled.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/Action.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/AsapAction.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/AsyncAction.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/QueueAction.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/animationFrame.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/asap.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/async.ts create mode 100644 node_modules/rxjs/src/internal/scheduler/queue.ts create mode 100644 node_modules/rxjs/src/internal/symbol/iterator.ts create mode 100644 node_modules/rxjs/src/internal/symbol/observable.ts create mode 100644 node_modules/rxjs/src/internal/symbol/rxSubscriber.ts create mode 100644 node_modules/rxjs/src/internal/testing/ColdObservable.ts create mode 100644 node_modules/rxjs/src/internal/testing/HotObservable.ts create mode 100644 node_modules/rxjs/src/internal/testing/SubscriptionLog.ts create mode 100644 node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts create mode 100644 node_modules/rxjs/src/internal/testing/TestMessage.ts create mode 100644 node_modules/rxjs/src/internal/testing/TestScheduler.ts create mode 100644 node_modules/rxjs/src/internal/types.ts create mode 100644 node_modules/rxjs/src/internal/umd.ts create mode 100644 node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts create mode 100644 node_modules/rxjs/src/internal/util/EmptyError.ts create mode 100644 node_modules/rxjs/src/internal/util/Immediate.ts create mode 100644 node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts create mode 100644 node_modules/rxjs/src/internal/util/TimeoutError.ts create mode 100644 node_modules/rxjs/src/internal/util/UnsubscriptionError.ts create mode 100644 node_modules/rxjs/src/internal/util/applyMixins.ts create mode 100644 node_modules/rxjs/src/internal/util/canReportError.ts create mode 100644 node_modules/rxjs/src/internal/util/errorObject.ts create mode 100644 node_modules/rxjs/src/internal/util/hostReportError.ts create mode 100644 node_modules/rxjs/src/internal/util/identity.ts create mode 100644 node_modules/rxjs/src/internal/util/isArray.ts create mode 100644 node_modules/rxjs/src/internal/util/isArrayLike.ts create mode 100644 node_modules/rxjs/src/internal/util/isDate.ts create mode 100644 node_modules/rxjs/src/internal/util/isFunction.ts create mode 100644 node_modules/rxjs/src/internal/util/isInteropObservable.ts create mode 100644 node_modules/rxjs/src/internal/util/isIterable.ts create mode 100644 node_modules/rxjs/src/internal/util/isNumeric.ts create mode 100644 node_modules/rxjs/src/internal/util/isObject.ts create mode 100644 node_modules/rxjs/src/internal/util/isObservable.ts create mode 100644 node_modules/rxjs/src/internal/util/isPromise.ts create mode 100644 node_modules/rxjs/src/internal/util/isScheduler.ts create mode 100644 node_modules/rxjs/src/internal/util/noop.ts create mode 100644 node_modules/rxjs/src/internal/util/not.ts create mode 100644 node_modules/rxjs/src/internal/util/pipe.ts create mode 100644 node_modules/rxjs/src/internal/util/root.ts create mode 100644 node_modules/rxjs/src/internal/util/subscribeTo.ts create mode 100644 node_modules/rxjs/src/internal/util/subscribeToArray.ts create mode 100644 node_modules/rxjs/src/internal/util/subscribeToIterable.ts create mode 100644 node_modules/rxjs/src/internal/util/subscribeToObservable.ts create mode 100644 node_modules/rxjs/src/internal/util/subscribeToPromise.ts create mode 100644 node_modules/rxjs/src/internal/util/subscribeToResult.ts create mode 100644 node_modules/rxjs/src/internal/util/toSubscriber.ts create mode 100644 node_modules/rxjs/src/internal/util/tryCatch.ts create mode 100644 node_modules/rxjs/src/observable/ArrayLikeObservable.ts create mode 100644 node_modules/rxjs/src/observable/ArrayObservable.ts create mode 100644 node_modules/rxjs/src/observable/BoundCallbackObservable.ts create mode 100644 node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts create mode 100644 node_modules/rxjs/src/observable/ConnectableObservable.ts create mode 100644 node_modules/rxjs/src/observable/DeferObservable.ts create mode 100644 node_modules/rxjs/src/observable/EmptyObservable.ts create mode 100644 node_modules/rxjs/src/observable/ErrorObservable.ts create mode 100644 node_modules/rxjs/src/observable/ForkJoinObservable.ts create mode 100644 node_modules/rxjs/src/observable/FromEventObservable.ts create mode 100644 node_modules/rxjs/src/observable/FromEventPatternObservable.ts create mode 100644 node_modules/rxjs/src/observable/FromObservable.ts create mode 100644 node_modules/rxjs/src/observable/GenerateObservable.ts create mode 100644 node_modules/rxjs/src/observable/IfObservable.ts create mode 100644 node_modules/rxjs/src/observable/IntervalObservable.ts create mode 100644 node_modules/rxjs/src/observable/IteratorObservable.ts create mode 100644 node_modules/rxjs/src/observable/NeverObservable.ts create mode 100644 node_modules/rxjs/src/observable/PairsObservable.ts create mode 100644 node_modules/rxjs/src/observable/PromiseObservable.ts create mode 100644 node_modules/rxjs/src/observable/RangeObservable.ts create mode 100644 node_modules/rxjs/src/observable/ScalarObservable.ts create mode 100644 node_modules/rxjs/src/observable/SubscribeOnObservable.ts create mode 100644 node_modules/rxjs/src/observable/TimerObservable.ts create mode 100644 node_modules/rxjs/src/observable/UsingObservable.ts create mode 100644 node_modules/rxjs/src/observable/bindCallback.ts create mode 100644 node_modules/rxjs/src/observable/bindNodeCallback.ts create mode 100644 node_modules/rxjs/src/observable/combineLatest.ts create mode 100644 node_modules/rxjs/src/observable/concat.ts create mode 100644 node_modules/rxjs/src/observable/defer.ts create mode 100644 node_modules/rxjs/src/observable/dom/AjaxObservable.ts create mode 100644 node_modules/rxjs/src/observable/dom/WebSocketSubject.ts create mode 100644 node_modules/rxjs/src/observable/dom/ajax.ts create mode 100644 node_modules/rxjs/src/observable/dom/webSocket.ts create mode 100644 node_modules/rxjs/src/observable/empty.ts create mode 100644 node_modules/rxjs/src/observable/forkJoin.ts create mode 100644 node_modules/rxjs/src/observable/from.ts create mode 100644 node_modules/rxjs/src/observable/fromArray.ts create mode 100644 node_modules/rxjs/src/observable/fromEvent.ts create mode 100644 node_modules/rxjs/src/observable/fromEventPattern.ts create mode 100644 node_modules/rxjs/src/observable/fromIterable.ts create mode 100644 node_modules/rxjs/src/observable/fromPromise.ts create mode 100644 node_modules/rxjs/src/observable/generate.ts create mode 100644 node_modules/rxjs/src/observable/if.ts create mode 100644 node_modules/rxjs/src/observable/interval.ts create mode 100644 node_modules/rxjs/src/observable/merge.ts create mode 100644 node_modules/rxjs/src/observable/never.ts create mode 100644 node_modules/rxjs/src/observable/of.ts create mode 100644 node_modules/rxjs/src/observable/onErrorResumeNext.ts create mode 100644 node_modules/rxjs/src/observable/pairs.ts create mode 100644 node_modules/rxjs/src/observable/race.ts create mode 100644 node_modules/rxjs/src/observable/range.ts create mode 100644 node_modules/rxjs/src/observable/throw.ts create mode 100644 node_modules/rxjs/src/observable/timer.ts create mode 100644 node_modules/rxjs/src/observable/using.ts create mode 100644 node_modules/rxjs/src/observable/zip.ts create mode 100644 node_modules/rxjs/src/operator/audit.ts create mode 100644 node_modules/rxjs/src/operator/auditTime.ts create mode 100644 node_modules/rxjs/src/operator/buffer.ts create mode 100644 node_modules/rxjs/src/operator/bufferCount.ts create mode 100644 node_modules/rxjs/src/operator/bufferTime.ts create mode 100644 node_modules/rxjs/src/operator/bufferToggle.ts create mode 100644 node_modules/rxjs/src/operator/bufferWhen.ts create mode 100644 node_modules/rxjs/src/operator/catch.ts create mode 100644 node_modules/rxjs/src/operator/combineAll.ts create mode 100644 node_modules/rxjs/src/operator/combineLatest.ts create mode 100644 node_modules/rxjs/src/operator/concat.ts create mode 100644 node_modules/rxjs/src/operator/concatAll.ts create mode 100644 node_modules/rxjs/src/operator/concatMap.ts create mode 100644 node_modules/rxjs/src/operator/concatMapTo.ts create mode 100644 node_modules/rxjs/src/operator/count.ts create mode 100644 node_modules/rxjs/src/operator/debounce.ts create mode 100644 node_modules/rxjs/src/operator/debounceTime.ts create mode 100644 node_modules/rxjs/src/operator/defaultIfEmpty.ts create mode 100644 node_modules/rxjs/src/operator/delay.ts create mode 100644 node_modules/rxjs/src/operator/delayWhen.ts create mode 100644 node_modules/rxjs/src/operator/dematerialize.ts create mode 100644 node_modules/rxjs/src/operator/distinct.ts create mode 100644 node_modules/rxjs/src/operator/distinctUntilChanged.ts create mode 100644 node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts create mode 100644 node_modules/rxjs/src/operator/do.ts create mode 100644 node_modules/rxjs/src/operator/elementAt.ts create mode 100644 node_modules/rxjs/src/operator/every.ts create mode 100644 node_modules/rxjs/src/operator/exhaust.ts create mode 100644 node_modules/rxjs/src/operator/exhaustMap.ts create mode 100644 node_modules/rxjs/src/operator/expand.ts create mode 100644 node_modules/rxjs/src/operator/filter.ts create mode 100644 node_modules/rxjs/src/operator/finally.ts create mode 100644 node_modules/rxjs/src/operator/find.ts create mode 100644 node_modules/rxjs/src/operator/findIndex.ts create mode 100644 node_modules/rxjs/src/operator/first.ts create mode 100644 node_modules/rxjs/src/operator/groupBy.ts create mode 100644 node_modules/rxjs/src/operator/ignoreElements.ts create mode 100644 node_modules/rxjs/src/operator/isEmpty.ts create mode 100644 node_modules/rxjs/src/operator/last.ts create mode 100644 node_modules/rxjs/src/operator/let.ts create mode 100644 node_modules/rxjs/src/operator/map.ts create mode 100644 node_modules/rxjs/src/operator/mapTo.ts create mode 100644 node_modules/rxjs/src/operator/materialize.ts create mode 100644 node_modules/rxjs/src/operator/max.ts create mode 100644 node_modules/rxjs/src/operator/merge.ts create mode 100644 node_modules/rxjs/src/operator/mergeAll.ts create mode 100644 node_modules/rxjs/src/operator/mergeMap.ts create mode 100644 node_modules/rxjs/src/operator/mergeMapTo.ts create mode 100644 node_modules/rxjs/src/operator/mergeScan.ts create mode 100644 node_modules/rxjs/src/operator/min.ts create mode 100644 node_modules/rxjs/src/operator/multicast.ts create mode 100644 node_modules/rxjs/src/operator/observeOn.ts create mode 100644 node_modules/rxjs/src/operator/onErrorResumeNext.ts create mode 100644 node_modules/rxjs/src/operator/pairwise.ts create mode 100644 node_modules/rxjs/src/operator/partition.ts create mode 100644 node_modules/rxjs/src/operator/pluck.ts create mode 100644 node_modules/rxjs/src/operator/publish.ts create mode 100644 node_modules/rxjs/src/operator/publishBehavior.ts create mode 100644 node_modules/rxjs/src/operator/publishLast.ts create mode 100644 node_modules/rxjs/src/operator/publishReplay.ts create mode 100644 node_modules/rxjs/src/operator/race.ts create mode 100644 node_modules/rxjs/src/operator/reduce.ts create mode 100644 node_modules/rxjs/src/operator/repeat.ts create mode 100644 node_modules/rxjs/src/operator/repeatWhen.ts create mode 100644 node_modules/rxjs/src/operator/retry.ts create mode 100644 node_modules/rxjs/src/operator/retryWhen.ts create mode 100644 node_modules/rxjs/src/operator/sample.ts create mode 100644 node_modules/rxjs/src/operator/sampleTime.ts create mode 100644 node_modules/rxjs/src/operator/scan.ts create mode 100644 node_modules/rxjs/src/operator/sequenceEqual.ts create mode 100644 node_modules/rxjs/src/operator/share.ts create mode 100644 node_modules/rxjs/src/operator/shareReplay.ts create mode 100644 node_modules/rxjs/src/operator/single.ts create mode 100644 node_modules/rxjs/src/operator/skip.ts create mode 100644 node_modules/rxjs/src/operator/skipLast.ts create mode 100644 node_modules/rxjs/src/operator/skipUntil.ts create mode 100644 node_modules/rxjs/src/operator/skipWhile.ts create mode 100644 node_modules/rxjs/src/operator/startWith.ts create mode 100644 node_modules/rxjs/src/operator/subscribeOn.ts create mode 100644 node_modules/rxjs/src/operator/switch.ts create mode 100644 node_modules/rxjs/src/operator/switchMap.ts create mode 100644 node_modules/rxjs/src/operator/switchMapTo.ts create mode 100644 node_modules/rxjs/src/operator/take.ts create mode 100644 node_modules/rxjs/src/operator/takeLast.ts create mode 100644 node_modules/rxjs/src/operator/takeUntil.ts create mode 100644 node_modules/rxjs/src/operator/takeWhile.ts create mode 100644 node_modules/rxjs/src/operator/throttle.ts create mode 100644 node_modules/rxjs/src/operator/throttleTime.ts create mode 100644 node_modules/rxjs/src/operator/timeInterval.ts create mode 100644 node_modules/rxjs/src/operator/timeout.ts create mode 100644 node_modules/rxjs/src/operator/timeoutWith.ts create mode 100644 node_modules/rxjs/src/operator/timestamp.ts create mode 100644 node_modules/rxjs/src/operator/toArray.ts create mode 100644 node_modules/rxjs/src/operator/toPromise.ts create mode 100644 node_modules/rxjs/src/operator/window.ts create mode 100644 node_modules/rxjs/src/operator/windowCount.ts create mode 100644 node_modules/rxjs/src/operator/windowTime.ts create mode 100644 node_modules/rxjs/src/operator/windowToggle.ts create mode 100644 node_modules/rxjs/src/operator/windowWhen.ts create mode 100644 node_modules/rxjs/src/operator/withLatestFrom.ts create mode 100644 node_modules/rxjs/src/operator/zip.ts create mode 100644 node_modules/rxjs/src/operator/zipAll.ts create mode 100644 node_modules/rxjs/src/operators/audit.ts create mode 100644 node_modules/rxjs/src/operators/auditTime.ts create mode 100644 node_modules/rxjs/src/operators/buffer.ts create mode 100644 node_modules/rxjs/src/operators/bufferCount.ts create mode 100644 node_modules/rxjs/src/operators/bufferTime.ts create mode 100644 node_modules/rxjs/src/operators/bufferToggle.ts create mode 100644 node_modules/rxjs/src/operators/bufferWhen.ts create mode 100644 node_modules/rxjs/src/operators/catchError.ts create mode 100644 node_modules/rxjs/src/operators/combineAll.ts create mode 100644 node_modules/rxjs/src/operators/combineLatest.ts create mode 100644 node_modules/rxjs/src/operators/concat.ts create mode 100644 node_modules/rxjs/src/operators/concatAll.ts create mode 100644 node_modules/rxjs/src/operators/concatMap.ts create mode 100644 node_modules/rxjs/src/operators/concatMapTo.ts create mode 100644 node_modules/rxjs/src/operators/count.ts create mode 100644 node_modules/rxjs/src/operators/debounce.ts create mode 100644 node_modules/rxjs/src/operators/debounceTime.ts create mode 100644 node_modules/rxjs/src/operators/defaultIfEmpty.ts create mode 100644 node_modules/rxjs/src/operators/delay.ts create mode 100644 node_modules/rxjs/src/operators/delayWhen.ts create mode 100644 node_modules/rxjs/src/operators/dematerialize.ts create mode 100644 node_modules/rxjs/src/operators/distinct.ts create mode 100644 node_modules/rxjs/src/operators/distinctUntilChanged.ts create mode 100644 node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts create mode 100644 node_modules/rxjs/src/operators/elementAt.ts create mode 100644 node_modules/rxjs/src/operators/every.ts create mode 100644 node_modules/rxjs/src/operators/exhaust.ts create mode 100644 node_modules/rxjs/src/operators/exhaustMap.ts create mode 100644 node_modules/rxjs/src/operators/expand.ts create mode 100644 node_modules/rxjs/src/operators/filter.ts create mode 100644 node_modules/rxjs/src/operators/finalize.ts create mode 100644 node_modules/rxjs/src/operators/find.ts create mode 100644 node_modules/rxjs/src/operators/findIndex.ts create mode 100644 node_modules/rxjs/src/operators/first.ts create mode 100644 node_modules/rxjs/src/operators/groupBy.ts create mode 100644 node_modules/rxjs/src/operators/ignoreElements.ts create mode 100644 node_modules/rxjs/src/operators/index.ts create mode 100644 node_modules/rxjs/src/operators/isEmpty.ts create mode 100644 node_modules/rxjs/src/operators/last.ts create mode 100644 node_modules/rxjs/src/operators/map.ts create mode 100644 node_modules/rxjs/src/operators/mapTo.ts create mode 100644 node_modules/rxjs/src/operators/materialize.ts create mode 100644 node_modules/rxjs/src/operators/max.ts create mode 100644 node_modules/rxjs/src/operators/merge.ts create mode 100644 node_modules/rxjs/src/operators/mergeAll.ts create mode 100644 node_modules/rxjs/src/operators/mergeMap.ts create mode 100644 node_modules/rxjs/src/operators/mergeMapTo.ts create mode 100644 node_modules/rxjs/src/operators/mergeScan.ts create mode 100644 node_modules/rxjs/src/operators/min.ts create mode 100644 node_modules/rxjs/src/operators/multicast.ts create mode 100644 node_modules/rxjs/src/operators/observeOn.ts create mode 100644 node_modules/rxjs/src/operators/onErrorResumeNext.ts create mode 100644 node_modules/rxjs/src/operators/package.json create mode 100644 node_modules/rxjs/src/operators/pairwise.ts create mode 100644 node_modules/rxjs/src/operators/partition.ts create mode 100644 node_modules/rxjs/src/operators/pluck.ts create mode 100644 node_modules/rxjs/src/operators/publish.ts create mode 100644 node_modules/rxjs/src/operators/publishBehavior.ts create mode 100644 node_modules/rxjs/src/operators/publishLast.ts create mode 100644 node_modules/rxjs/src/operators/publishReplay.ts create mode 100644 node_modules/rxjs/src/operators/race.ts create mode 100644 node_modules/rxjs/src/operators/reduce.ts create mode 100644 node_modules/rxjs/src/operators/refCount.ts create mode 100644 node_modules/rxjs/src/operators/repeat.ts create mode 100644 node_modules/rxjs/src/operators/repeatWhen.ts create mode 100644 node_modules/rxjs/src/operators/retry.ts create mode 100644 node_modules/rxjs/src/operators/retryWhen.ts create mode 100644 node_modules/rxjs/src/operators/sample.ts create mode 100644 node_modules/rxjs/src/operators/sampleTime.ts create mode 100644 node_modules/rxjs/src/operators/scan.ts create mode 100644 node_modules/rxjs/src/operators/sequenceEqual.ts create mode 100644 node_modules/rxjs/src/operators/share.ts create mode 100644 node_modules/rxjs/src/operators/shareReplay.ts create mode 100644 node_modules/rxjs/src/operators/single.ts create mode 100644 node_modules/rxjs/src/operators/skip.ts create mode 100644 node_modules/rxjs/src/operators/skipLast.ts create mode 100644 node_modules/rxjs/src/operators/skipUntil.ts create mode 100644 node_modules/rxjs/src/operators/skipWhile.ts create mode 100644 node_modules/rxjs/src/operators/startWith.ts create mode 100644 node_modules/rxjs/src/operators/subscribeOn.ts create mode 100644 node_modules/rxjs/src/operators/switchAll.ts create mode 100644 node_modules/rxjs/src/operators/switchMap.ts create mode 100644 node_modules/rxjs/src/operators/switchMapTo.ts create mode 100644 node_modules/rxjs/src/operators/take.ts create mode 100644 node_modules/rxjs/src/operators/takeLast.ts create mode 100644 node_modules/rxjs/src/operators/takeUntil.ts create mode 100644 node_modules/rxjs/src/operators/takeWhile.ts create mode 100644 node_modules/rxjs/src/operators/tap.ts create mode 100644 node_modules/rxjs/src/operators/throttle.ts create mode 100644 node_modules/rxjs/src/operators/throttleTime.ts create mode 100644 node_modules/rxjs/src/operators/throwIfEmpty.ts create mode 100644 node_modules/rxjs/src/operators/timeInterval.ts create mode 100644 node_modules/rxjs/src/operators/timeout.ts create mode 100644 node_modules/rxjs/src/operators/timeoutWith.ts create mode 100644 node_modules/rxjs/src/operators/timestamp.ts create mode 100644 node_modules/rxjs/src/operators/toArray.ts create mode 100644 node_modules/rxjs/src/operators/window.ts create mode 100644 node_modules/rxjs/src/operators/windowCount.ts create mode 100644 node_modules/rxjs/src/operators/windowTime.ts create mode 100644 node_modules/rxjs/src/operators/windowToggle.ts create mode 100644 node_modules/rxjs/src/operators/windowWhen.ts create mode 100644 node_modules/rxjs/src/operators/withLatestFrom.ts create mode 100644 node_modules/rxjs/src/operators/zip.ts create mode 100644 node_modules/rxjs/src/operators/zipAll.ts create mode 100644 node_modules/rxjs/src/scheduler/animationFrame.ts create mode 100644 node_modules/rxjs/src/scheduler/asap.ts create mode 100644 node_modules/rxjs/src/scheduler/async.ts create mode 100644 node_modules/rxjs/src/scheduler/queue.ts create mode 100644 node_modules/rxjs/src/symbol/iterator.ts create mode 100644 node_modules/rxjs/src/symbol/observable.ts create mode 100644 node_modules/rxjs/src/symbol/rxSubscriber.ts create mode 100644 node_modules/rxjs/src/testing/index.ts create mode 100644 node_modules/rxjs/src/testing/package.json create mode 100644 node_modules/rxjs/src/tsconfig.json create mode 100644 node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts create mode 100644 node_modules/rxjs/src/util/EmptyError.ts create mode 100644 node_modules/rxjs/src/util/Immediate.ts create mode 100644 node_modules/rxjs/src/util/ObjectUnsubscribedError.ts create mode 100644 node_modules/rxjs/src/util/TimeoutError.ts create mode 100644 node_modules/rxjs/src/util/UnsubscriptionError.ts create mode 100644 node_modules/rxjs/src/util/applyMixins.ts create mode 100644 node_modules/rxjs/src/util/errorObject.ts create mode 100644 node_modules/rxjs/src/util/hostReportError.ts create mode 100644 node_modules/rxjs/src/util/identity.ts create mode 100644 node_modules/rxjs/src/util/isArray.ts create mode 100644 node_modules/rxjs/src/util/isArrayLike.ts create mode 100644 node_modules/rxjs/src/util/isDate.ts create mode 100644 node_modules/rxjs/src/util/isFunction.ts create mode 100644 node_modules/rxjs/src/util/isIterable.ts create mode 100644 node_modules/rxjs/src/util/isNumeric.ts create mode 100644 node_modules/rxjs/src/util/isObject.ts create mode 100644 node_modules/rxjs/src/util/isObservable.ts create mode 100644 node_modules/rxjs/src/util/isPromise.ts create mode 100644 node_modules/rxjs/src/util/isScheduler.ts create mode 100644 node_modules/rxjs/src/util/noop.ts create mode 100644 node_modules/rxjs/src/util/not.ts create mode 100644 node_modules/rxjs/src/util/pipe.ts create mode 100644 node_modules/rxjs/src/util/root.ts create mode 100644 node_modules/rxjs/src/util/subscribeTo.ts create mode 100644 node_modules/rxjs/src/util/subscribeToArray.ts create mode 100644 node_modules/rxjs/src/util/subscribeToIterable.ts create mode 100644 node_modules/rxjs/src/util/subscribeToObservable.ts create mode 100644 node_modules/rxjs/src/util/subscribeToPromise.ts create mode 100644 node_modules/rxjs/src/util/subscribeToResult.ts create mode 100644 node_modules/rxjs/src/util/toSubscriber.ts create mode 100644 node_modules/rxjs/src/util/tryCatch.ts create mode 100644 node_modules/rxjs/src/webSocket/index.ts create mode 100644 node_modules/rxjs/src/webSocket/package.json create mode 100644 node_modules/rxjs/symbol/iterator.d.ts create mode 100644 node_modules/rxjs/symbol/iterator.js create mode 100644 node_modules/rxjs/symbol/iterator.js.map create mode 100644 node_modules/rxjs/symbol/observable.d.ts create mode 100644 node_modules/rxjs/symbol/observable.js create mode 100644 node_modules/rxjs/symbol/observable.js.map create mode 100644 node_modules/rxjs/symbol/rxSubscriber.d.ts create mode 100644 node_modules/rxjs/symbol/rxSubscriber.js create mode 100644 node_modules/rxjs/symbol/rxSubscriber.js.map create mode 100644 node_modules/rxjs/testing/index.d.ts create mode 100644 node_modules/rxjs/testing/index.js create mode 100644 node_modules/rxjs/testing/index.js.map create mode 100644 node_modules/rxjs/testing/package.json create mode 100644 node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts create mode 100644 node_modules/rxjs/util/ArgumentOutOfRangeError.js create mode 100644 node_modules/rxjs/util/ArgumentOutOfRangeError.js.map create mode 100644 node_modules/rxjs/util/EmptyError.d.ts create mode 100644 node_modules/rxjs/util/EmptyError.js create mode 100644 node_modules/rxjs/util/EmptyError.js.map create mode 100644 node_modules/rxjs/util/Immediate.d.ts create mode 100644 node_modules/rxjs/util/Immediate.js create mode 100644 node_modules/rxjs/util/Immediate.js.map create mode 100644 node_modules/rxjs/util/ObjectUnsubscribedError.d.ts create mode 100644 node_modules/rxjs/util/ObjectUnsubscribedError.js create mode 100644 node_modules/rxjs/util/ObjectUnsubscribedError.js.map create mode 100644 node_modules/rxjs/util/TimeoutError.d.ts create mode 100644 node_modules/rxjs/util/TimeoutError.js create mode 100644 node_modules/rxjs/util/TimeoutError.js.map create mode 100644 node_modules/rxjs/util/UnsubscriptionError.d.ts create mode 100644 node_modules/rxjs/util/UnsubscriptionError.js create mode 100644 node_modules/rxjs/util/UnsubscriptionError.js.map create mode 100644 node_modules/rxjs/util/applyMixins.d.ts create mode 100644 node_modules/rxjs/util/applyMixins.js create mode 100644 node_modules/rxjs/util/applyMixins.js.map create mode 100644 node_modules/rxjs/util/errorObject.d.ts create mode 100644 node_modules/rxjs/util/errorObject.js create mode 100644 node_modules/rxjs/util/errorObject.js.map create mode 100644 node_modules/rxjs/util/hostReportError.d.ts create mode 100644 node_modules/rxjs/util/hostReportError.js create mode 100644 node_modules/rxjs/util/hostReportError.js.map create mode 100644 node_modules/rxjs/util/identity.d.ts create mode 100644 node_modules/rxjs/util/identity.js create mode 100644 node_modules/rxjs/util/identity.js.map create mode 100644 node_modules/rxjs/util/isArray.d.ts create mode 100644 node_modules/rxjs/util/isArray.js create mode 100644 node_modules/rxjs/util/isArray.js.map create mode 100644 node_modules/rxjs/util/isArrayLike.d.ts create mode 100644 node_modules/rxjs/util/isArrayLike.js create mode 100644 node_modules/rxjs/util/isArrayLike.js.map create mode 100644 node_modules/rxjs/util/isDate.d.ts create mode 100644 node_modules/rxjs/util/isDate.js create mode 100644 node_modules/rxjs/util/isDate.js.map create mode 100644 node_modules/rxjs/util/isFunction.d.ts create mode 100644 node_modules/rxjs/util/isFunction.js create mode 100644 node_modules/rxjs/util/isFunction.js.map create mode 100644 node_modules/rxjs/util/isIterable.d.ts create mode 100644 node_modules/rxjs/util/isIterable.js create mode 100644 node_modules/rxjs/util/isIterable.js.map create mode 100644 node_modules/rxjs/util/isNumeric.d.ts create mode 100644 node_modules/rxjs/util/isNumeric.js create mode 100644 node_modules/rxjs/util/isNumeric.js.map create mode 100644 node_modules/rxjs/util/isObject.d.ts create mode 100644 node_modules/rxjs/util/isObject.js create mode 100644 node_modules/rxjs/util/isObject.js.map create mode 100644 node_modules/rxjs/util/isObservable.d.ts create mode 100644 node_modules/rxjs/util/isObservable.js create mode 100644 node_modules/rxjs/util/isObservable.js.map create mode 100644 node_modules/rxjs/util/isPromise.d.ts create mode 100644 node_modules/rxjs/util/isPromise.js create mode 100644 node_modules/rxjs/util/isPromise.js.map create mode 100644 node_modules/rxjs/util/isScheduler.d.ts create mode 100644 node_modules/rxjs/util/isScheduler.js create mode 100644 node_modules/rxjs/util/isScheduler.js.map create mode 100644 node_modules/rxjs/util/noop.d.ts create mode 100644 node_modules/rxjs/util/noop.js create mode 100644 node_modules/rxjs/util/noop.js.map create mode 100644 node_modules/rxjs/util/not.d.ts create mode 100644 node_modules/rxjs/util/not.js create mode 100644 node_modules/rxjs/util/not.js.map create mode 100644 node_modules/rxjs/util/pipe.d.ts create mode 100644 node_modules/rxjs/util/pipe.js create mode 100644 node_modules/rxjs/util/pipe.js.map create mode 100644 node_modules/rxjs/util/root.d.ts create mode 100644 node_modules/rxjs/util/root.js create mode 100644 node_modules/rxjs/util/root.js.map create mode 100644 node_modules/rxjs/util/subscribeTo.d.ts create mode 100644 node_modules/rxjs/util/subscribeTo.js create mode 100644 node_modules/rxjs/util/subscribeTo.js.map create mode 100644 node_modules/rxjs/util/subscribeToArray.d.ts create mode 100644 node_modules/rxjs/util/subscribeToArray.js create mode 100644 node_modules/rxjs/util/subscribeToArray.js.map create mode 100644 node_modules/rxjs/util/subscribeToIterable.d.ts create mode 100644 node_modules/rxjs/util/subscribeToIterable.js create mode 100644 node_modules/rxjs/util/subscribeToIterable.js.map create mode 100644 node_modules/rxjs/util/subscribeToObservable.d.ts create mode 100644 node_modules/rxjs/util/subscribeToObservable.js create mode 100644 node_modules/rxjs/util/subscribeToObservable.js.map create mode 100644 node_modules/rxjs/util/subscribeToPromise.d.ts create mode 100644 node_modules/rxjs/util/subscribeToPromise.js create mode 100644 node_modules/rxjs/util/subscribeToPromise.js.map create mode 100644 node_modules/rxjs/util/subscribeToResult.d.ts create mode 100644 node_modules/rxjs/util/subscribeToResult.js create mode 100644 node_modules/rxjs/util/subscribeToResult.js.map create mode 100644 node_modules/rxjs/util/toSubscriber.d.ts create mode 100644 node_modules/rxjs/util/toSubscriber.js create mode 100644 node_modules/rxjs/util/toSubscriber.js.map create mode 100644 node_modules/rxjs/util/tryCatch.d.ts create mode 100644 node_modules/rxjs/util/tryCatch.js create mode 100644 node_modules/rxjs/util/tryCatch.js.map create mode 100644 node_modules/rxjs/webSocket/index.d.ts create mode 100644 node_modules/rxjs/webSocket/index.js create mode 100644 node_modules/rxjs/webSocket/index.js.map create mode 100644 node_modules/rxjs/webSocket/package.json create mode 100644 node_modules/safe-buffer/LICENSE create mode 100644 node_modules/safe-buffer/README.md create mode 100644 node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/safe-buffer/index.js create mode 100644 node_modules/safe-buffer/package.json create mode 100644 node_modules/safer-buffer/LICENSE create mode 100644 node_modules/safer-buffer/Porting-Buffer.md create mode 100644 node_modules/safer-buffer/Readme.md create mode 100644 node_modules/safer-buffer/dangerous.js create mode 100644 node_modules/safer-buffer/package.json create mode 100644 node_modules/safer-buffer/safer.js create mode 100644 node_modules/safer-buffer/tests.js create mode 100644 node_modules/saslprep/.editorconfig create mode 100644 node_modules/saslprep/.gitattributes create mode 100644 node_modules/saslprep/.travis.yml create mode 100644 node_modules/saslprep/CHANGELOG.md create mode 100644 node_modules/saslprep/LICENSE create mode 100644 node_modules/saslprep/code-points.mem create mode 100644 node_modules/saslprep/generate-code-points.js create mode 100644 node_modules/saslprep/index.js create mode 100644 node_modules/saslprep/lib/code-points.js create mode 100644 node_modules/saslprep/lib/memory-code-points.js create mode 100644 node_modules/saslprep/lib/util.js create mode 100644 node_modules/saslprep/package.json create mode 100644 node_modules/saslprep/readme.md create mode 100644 node_modules/saslprep/test/index.js create mode 100644 node_modules/saslprep/test/util.js create mode 100644 node_modules/semver-diff/index.d.ts create mode 100644 node_modules/semver-diff/index.js create mode 100644 node_modules/semver-diff/license create mode 100644 node_modules/semver-diff/node_modules/.bin/semver create mode 100644 node_modules/semver-diff/node_modules/.bin/semver.cmd create mode 100644 node_modules/semver-diff/node_modules/.bin/semver.ps1 create mode 100644 node_modules/semver-diff/node_modules/semver/CHANGELOG.md create mode 100644 node_modules/semver-diff/node_modules/semver/LICENSE create mode 100644 node_modules/semver-diff/node_modules/semver/README.md create mode 100644 node_modules/semver-diff/node_modules/semver/bin/semver.js create mode 100644 node_modules/semver-diff/node_modules/semver/package.json create mode 100644 node_modules/semver-diff/node_modules/semver/range.bnf create mode 100644 node_modules/semver-diff/node_modules/semver/semver.js create mode 100644 node_modules/semver-diff/package.json create mode 100644 node_modules/semver-diff/readme.md create mode 100644 node_modules/semver/CHANGELOG.md create mode 100644 node_modules/semver/LICENSE create mode 100644 node_modules/semver/README.md create mode 100644 node_modules/semver/bin/semver create mode 100644 node_modules/semver/package.json create mode 100644 node_modules/semver/range.bnf create mode 100644 node_modules/semver/semver.js create mode 100644 node_modules/send/HISTORY.md create mode 100644 node_modules/send/LICENSE create mode 100644 node_modules/send/README.md create mode 100644 node_modules/send/index.js create mode 100644 node_modules/send/node_modules/ms/index.js create mode 100644 node_modules/send/node_modules/ms/license.md create mode 100644 node_modules/send/node_modules/ms/package.json create mode 100644 node_modules/send/node_modules/ms/readme.md create mode 100644 node_modules/send/package.json create mode 100644 node_modules/serve-static/HISTORY.md create mode 100644 node_modules/serve-static/LICENSE create mode 100644 node_modules/serve-static/README.md create mode 100644 node_modules/serve-static/index.js create mode 100644 node_modules/serve-static/package.json create mode 100644 node_modules/set-blocking/CHANGELOG.md create mode 100644 node_modules/set-blocking/LICENSE.txt create mode 100644 node_modules/set-blocking/README.md create mode 100644 node_modules/set-blocking/index.js create mode 100644 node_modules/set-blocking/package.json create mode 100644 node_modules/setprototypeof/LICENSE create mode 100644 node_modules/setprototypeof/README.md create mode 100644 node_modules/setprototypeof/index.d.ts create mode 100644 node_modules/setprototypeof/index.js create mode 100644 node_modules/setprototypeof/package.json create mode 100644 node_modules/setprototypeof/test/index.js create mode 100644 node_modules/sift/.babelrc create mode 100644 node_modules/sift/.coveralls.yml create mode 100644 node_modules/sift/.travis.yml create mode 100644 node_modules/sift/MIT-LICENSE.txt create mode 100644 node_modules/sift/README.md create mode 100644 node_modules/sift/bower.json create mode 100644 node_modules/sift/changelog.md create mode 100644 node_modules/sift/coverage/coverage.json create mode 100644 node_modules/sift/coverage/lcov.info create mode 100644 node_modules/sift/gulpfile.js create mode 100644 node_modules/sift/index.d.ts create mode 100644 node_modules/sift/lib/index.js create mode 100644 node_modules/sift/package.json create mode 100644 node_modules/sift/sift.min.js create mode 100644 node_modules/sift/src/index.js create mode 100644 node_modules/sift/test/basic-test.js create mode 100644 node_modules/sift/test/immutable-test.js create mode 100644 node_modules/sift/test/objects-test.js create mode 100644 node_modules/sift/test/operations-test.js create mode 100644 node_modules/sift/tsconfig.json create mode 100644 node_modules/sift/webpack.config.js create mode 100644 node_modules/sift/yarn.lock create mode 100644 node_modules/signal-exit/CHANGELOG.md create mode 100644 node_modules/signal-exit/LICENSE.txt create mode 100644 node_modules/signal-exit/README.md create mode 100644 node_modules/signal-exit/index.js create mode 100644 node_modules/signal-exit/package.json create mode 100644 node_modules/signal-exit/signals.js create mode 100644 node_modules/sliced/History.md create mode 100644 node_modules/sliced/LICENSE create mode 100644 node_modules/sliced/README.md create mode 100644 node_modules/sliced/index.js create mode 100644 node_modules/sliced/package.json create mode 100644 node_modules/sparse-bitfield/.npmignore create mode 100644 node_modules/sparse-bitfield/.travis.yml create mode 100644 node_modules/sparse-bitfield/LICENSE create mode 100644 node_modules/sparse-bitfield/README.md create mode 100644 node_modules/sparse-bitfield/index.js create mode 100644 node_modules/sparse-bitfield/package.json create mode 100644 node_modules/sparse-bitfield/test.js create mode 100644 node_modules/spawn-command/.npmignore create mode 100644 node_modules/spawn-command/.travis.yml create mode 100644 node_modules/spawn-command/LICENSE create mode 100644 node_modules/spawn-command/README.md create mode 100644 node_modules/spawn-command/examples/simple.js create mode 100644 node_modules/spawn-command/lib/spawn-command.js create mode 100644 node_modules/spawn-command/package.json create mode 100644 node_modules/spawn-command/test/fixtures/commit create mode 100644 node_modules/spawn-command/test/spawn-command-test.js create mode 100644 node_modules/spdx-correct/LICENSE create mode 100644 node_modules/spdx-correct/README.md create mode 100644 node_modules/spdx-correct/index.js create mode 100644 node_modules/spdx-correct/package.json create mode 100644 node_modules/spdx-exceptions/README.md create mode 100644 node_modules/spdx-exceptions/index.json create mode 100644 node_modules/spdx-exceptions/package.json create mode 100644 node_modules/spdx-expression-parse/AUTHORS create mode 100644 node_modules/spdx-expression-parse/LICENSE create mode 100644 node_modules/spdx-expression-parse/README.md create mode 100644 node_modules/spdx-expression-parse/index.js create mode 100644 node_modules/spdx-expression-parse/package.json create mode 100644 node_modules/spdx-expression-parse/parse.js create mode 100644 node_modules/spdx-expression-parse/scan.js create mode 100644 node_modules/spdx-license-ids/README.md create mode 100644 node_modules/spdx-license-ids/deprecated.json create mode 100644 node_modules/spdx-license-ids/index.json create mode 100644 node_modules/spdx-license-ids/package.json create mode 100644 node_modules/sshpk/.npmignore create mode 100644 node_modules/sshpk/.travis.yml create mode 100644 node_modules/sshpk/LICENSE create mode 100644 node_modules/sshpk/README.md create mode 100644 node_modules/sshpk/bin/sshpk-conv create mode 100644 node_modules/sshpk/bin/sshpk-sign create mode 100644 node_modules/sshpk/bin/sshpk-verify create mode 100644 node_modules/sshpk/lib/algs.js create mode 100644 node_modules/sshpk/lib/certificate.js create mode 100644 node_modules/sshpk/lib/dhe.js create mode 100644 node_modules/sshpk/lib/ed-compat.js create mode 100644 node_modules/sshpk/lib/errors.js create mode 100644 node_modules/sshpk/lib/fingerprint.js create mode 100644 node_modules/sshpk/lib/formats/auto.js create mode 100644 node_modules/sshpk/lib/formats/dnssec.js create mode 100644 node_modules/sshpk/lib/formats/openssh-cert.js create mode 100644 node_modules/sshpk/lib/formats/pem.js create mode 100644 node_modules/sshpk/lib/formats/pkcs1.js create mode 100644 node_modules/sshpk/lib/formats/pkcs8.js create mode 100644 node_modules/sshpk/lib/formats/putty.js create mode 100644 node_modules/sshpk/lib/formats/rfc4253.js create mode 100644 node_modules/sshpk/lib/formats/ssh-private.js create mode 100644 node_modules/sshpk/lib/formats/ssh.js create mode 100644 node_modules/sshpk/lib/formats/x509-pem.js create mode 100644 node_modules/sshpk/lib/formats/x509.js create mode 100644 node_modules/sshpk/lib/identity.js create mode 100644 node_modules/sshpk/lib/index.js create mode 100644 node_modules/sshpk/lib/key.js create mode 100644 node_modules/sshpk/lib/private-key.js create mode 100644 node_modules/sshpk/lib/signature.js create mode 100644 node_modules/sshpk/lib/ssh-buffer.js create mode 100644 node_modules/sshpk/lib/utils.js create mode 100644 node_modules/sshpk/man/man1/sshpk-conv.1 create mode 100644 node_modules/sshpk/man/man1/sshpk-sign.1 create mode 100644 node_modules/sshpk/man/man1/sshpk-verify.1 create mode 100644 node_modules/sshpk/package.json create mode 100644 node_modules/statuses/HISTORY.md create mode 100644 node_modules/statuses/LICENSE create mode 100644 node_modules/statuses/README.md create mode 100644 node_modules/statuses/codes.json create mode 100644 node_modules/statuses/index.js create mode 100644 node_modules/statuses/package.json create mode 100644 node_modules/string-width/index.d.ts create mode 100644 node_modules/string-width/index.js create mode 100644 node_modules/string-width/license create mode 100644 node_modules/string-width/package.json create mode 100644 node_modules/string-width/readme.md create mode 100644 node_modules/string_decoder/.travis.yml create mode 100644 node_modules/string_decoder/LICENSE create mode 100644 node_modules/string_decoder/README.md create mode 100644 node_modules/string_decoder/lib/string_decoder.js create mode 100644 node_modules/string_decoder/package.json create mode 100644 node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/strip-ansi/index.js create mode 100644 node_modules/strip-ansi/license create mode 100644 node_modules/strip-ansi/package.json create mode 100644 node_modules/strip-ansi/readme.md create mode 100644 node_modules/strip-json-comments/index.js create mode 100644 node_modules/strip-json-comments/license create mode 100644 node_modules/strip-json-comments/package.json create mode 100644 node_modules/strip-json-comments/readme.md create mode 100644 node_modules/supports-color/browser.js create mode 100644 node_modules/supports-color/index.js create mode 100644 node_modules/supports-color/license create mode 100644 node_modules/supports-color/package.json create mode 100644 node_modules/supports-color/readme.md create mode 100644 node_modules/term-size/index.d.ts create mode 100644 node_modules/term-size/index.js create mode 100644 node_modules/term-size/license create mode 100644 node_modules/term-size/package.json create mode 100644 node_modules/term-size/readme.md create mode 100644 node_modules/term-size/vendor/.DS_Store create mode 100644 node_modules/term-size/vendor/macos/.DS_Store create mode 100644 node_modules/term-size/vendor/macos/term-size create mode 100644 node_modules/term-size/vendor/windows/term-size.exe create mode 100644 node_modules/to-readable-stream/index.js create mode 100644 node_modules/to-readable-stream/license create mode 100644 node_modules/to-readable-stream/package.json create mode 100644 node_modules/to-readable-stream/readme.md create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/toidentifier/LICENSE create mode 100644 node_modules/toidentifier/README.md create mode 100644 node_modules/toidentifier/index.js create mode 100644 node_modules/toidentifier/package.json create mode 100644 node_modules/touch/LICENSE create mode 100644 node_modules/touch/README.md create mode 100644 node_modules/touch/bin/nodetouch.js create mode 100644 node_modules/touch/index.js create mode 100644 node_modules/touch/package.json create mode 100644 node_modules/tough-cookie/LICENSE create mode 100644 node_modules/tough-cookie/README.md create mode 100644 node_modules/tough-cookie/lib/cookie.js create mode 100644 node_modules/tough-cookie/lib/memstore.js create mode 100644 node_modules/tough-cookie/lib/pathMatch.js create mode 100644 node_modules/tough-cookie/lib/permuteDomain.js create mode 100644 node_modules/tough-cookie/lib/pubsuffix-psl.js create mode 100644 node_modules/tough-cookie/lib/store.js create mode 100644 node_modules/tough-cookie/lib/version.js create mode 100644 node_modules/tough-cookie/package.json create mode 100644 node_modules/tree-kill/LICENSE create mode 100644 node_modules/tree-kill/README.md create mode 100644 node_modules/tree-kill/cli.js create mode 100644 node_modules/tree-kill/index.d.ts create mode 100644 node_modules/tree-kill/index.js create mode 100644 node_modules/tree-kill/package.json create mode 100644 node_modules/tslib/CopyrightNotice.txt create mode 100644 node_modules/tslib/LICENSE.txt create mode 100644 node_modules/tslib/README.md create mode 100644 node_modules/tslib/package.json create mode 100644 node_modules/tslib/tslib.d.ts create mode 100644 node_modules/tslib/tslib.es6.html create mode 100644 node_modules/tslib/tslib.es6.js create mode 100644 node_modules/tslib/tslib.html create mode 100644 node_modules/tslib/tslib.js create mode 100644 node_modules/tunnel-agent/LICENSE create mode 100644 node_modules/tunnel-agent/README.md create mode 100644 node_modules/tunnel-agent/index.js create mode 100644 node_modules/tunnel-agent/package.json create mode 100644 node_modules/tweetnacl/.npmignore create mode 100644 node_modules/tweetnacl/AUTHORS.md create mode 100644 node_modules/tweetnacl/CHANGELOG.md create mode 100644 node_modules/tweetnacl/LICENSE create mode 100644 node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md create mode 100644 node_modules/tweetnacl/README.md create mode 100644 node_modules/tweetnacl/nacl-fast.js create mode 100644 node_modules/tweetnacl/nacl-fast.min.js create mode 100644 node_modules/tweetnacl/nacl.d.ts create mode 100644 node_modules/tweetnacl/nacl.js create mode 100644 node_modules/tweetnacl/nacl.min.js create mode 100644 node_modules/tweetnacl/package.json create mode 100644 node_modules/type-fest/index.d.ts create mode 100644 node_modules/type-fest/license create mode 100644 node_modules/type-fest/package.json create mode 100644 node_modules/type-fest/readme.md create mode 100644 node_modules/type-fest/source/basic.d.ts create mode 100644 node_modules/type-fest/source/except.d.ts create mode 100644 node_modules/type-fest/source/literal-union.d.ts create mode 100644 node_modules/type-fest/source/merge-exclusive.d.ts create mode 100644 node_modules/type-fest/source/merge.d.ts create mode 100644 node_modules/type-fest/source/mutable.d.ts create mode 100644 node_modules/type-fest/source/opaque.d.ts create mode 100644 node_modules/type-fest/source/package-json.d.ts create mode 100644 node_modules/type-fest/source/partial-deep.d.ts create mode 100644 node_modules/type-fest/source/promisable.d.ts create mode 100644 node_modules/type-fest/source/readonly-deep.d.ts create mode 100644 node_modules/type-fest/source/require-at-least-one.d.ts create mode 100644 node_modules/type-fest/source/require-exactly-one.d.ts create mode 100644 node_modules/type-fest/source/set-optional.d.ts create mode 100644 node_modules/type-fest/source/set-required.d.ts create mode 100644 node_modules/type-is/HISTORY.md create mode 100644 node_modules/type-is/LICENSE create mode 100644 node_modules/type-is/README.md create mode 100644 node_modules/type-is/index.js create mode 100644 node_modules/type-is/package.json create mode 100644 node_modules/typedarray-to-buffer/.airtap.yml create mode 100644 node_modules/typedarray-to-buffer/.travis.yml create mode 100644 node_modules/typedarray-to-buffer/LICENSE create mode 100644 node_modules/typedarray-to-buffer/README.md create mode 100644 node_modules/typedarray-to-buffer/index.js create mode 100644 node_modules/typedarray-to-buffer/package.json create mode 100644 node_modules/typedarray-to-buffer/test/basic.js create mode 100644 node_modules/undefsafe/.jscsrc create mode 100644 node_modules/undefsafe/.jshintrc create mode 100644 node_modules/undefsafe/.npmignore create mode 100644 node_modules/undefsafe/.travis.yml create mode 100644 node_modules/undefsafe/LICENSE create mode 100644 node_modules/undefsafe/README.md create mode 100644 node_modules/undefsafe/example.js create mode 100644 node_modules/undefsafe/lib/undefsafe.js create mode 100644 node_modules/undefsafe/package.json create mode 100644 node_modules/unique-string/index.d.ts create mode 100644 node_modules/unique-string/index.js create mode 100644 node_modules/unique-string/license create mode 100644 node_modules/unique-string/package.json create mode 100644 node_modules/unique-string/readme.md create mode 100644 node_modules/unpipe/HISTORY.md create mode 100644 node_modules/unpipe/LICENSE create mode 100644 node_modules/unpipe/README.md create mode 100644 node_modules/unpipe/index.js create mode 100644 node_modules/unpipe/package.json create mode 100644 node_modules/update-notifier/check.js create mode 100644 node_modules/update-notifier/index.js create mode 100644 node_modules/update-notifier/license create mode 100644 node_modules/update-notifier/node_modules/chalk/index.d.ts create mode 100644 node_modules/update-notifier/node_modules/chalk/license create mode 100644 node_modules/update-notifier/node_modules/chalk/package.json create mode 100644 node_modules/update-notifier/node_modules/chalk/readme.md create mode 100644 node_modules/update-notifier/node_modules/chalk/source/index.js create mode 100644 node_modules/update-notifier/node_modules/chalk/source/templates.js create mode 100644 node_modules/update-notifier/node_modules/chalk/source/util.js create mode 100644 node_modules/update-notifier/node_modules/has-flag/index.d.ts create mode 100644 node_modules/update-notifier/node_modules/has-flag/index.js create mode 100644 node_modules/update-notifier/node_modules/has-flag/license create mode 100644 node_modules/update-notifier/node_modules/has-flag/package.json create mode 100644 node_modules/update-notifier/node_modules/has-flag/readme.md create mode 100644 node_modules/update-notifier/node_modules/supports-color/browser.js create mode 100644 node_modules/update-notifier/node_modules/supports-color/index.js create mode 100644 node_modules/update-notifier/node_modules/supports-color/license create mode 100644 node_modules/update-notifier/node_modules/supports-color/package.json create mode 100644 node_modules/update-notifier/node_modules/supports-color/readme.md create mode 100644 node_modules/update-notifier/package.json create mode 100644 node_modules/update-notifier/readme.md create mode 100644 node_modules/uri-js/LICENSE create mode 100644 node_modules/uri-js/README.md create mode 100644 node_modules/uri-js/dist/es5/uri.all.d.ts create mode 100644 node_modules/uri-js/dist/es5/uri.all.js create mode 100644 node_modules/uri-js/dist/es5/uri.all.js.map create mode 100644 node_modules/uri-js/dist/es5/uri.all.min.d.ts create mode 100644 node_modules/uri-js/dist/es5/uri.all.min.js create mode 100644 node_modules/uri-js/dist/es5/uri.all.min.js.map create mode 100644 node_modules/uri-js/dist/esnext/index.d.ts create mode 100644 node_modules/uri-js/dist/esnext/index.js create mode 100644 node_modules/uri-js/dist/esnext/index.js.map create mode 100644 node_modules/uri-js/dist/esnext/regexps-iri.d.ts create mode 100644 node_modules/uri-js/dist/esnext/regexps-iri.js create mode 100644 node_modules/uri-js/dist/esnext/regexps-iri.js.map create mode 100644 node_modules/uri-js/dist/esnext/regexps-uri.d.ts create mode 100644 node_modules/uri-js/dist/esnext/regexps-uri.js create mode 100644 node_modules/uri-js/dist/esnext/regexps-uri.js.map create mode 100644 node_modules/uri-js/dist/esnext/schemes/http.d.ts create mode 100644 node_modules/uri-js/dist/esnext/schemes/http.js create mode 100644 node_modules/uri-js/dist/esnext/schemes/http.js.map create mode 100644 node_modules/uri-js/dist/esnext/schemes/https.d.ts create mode 100644 node_modules/uri-js/dist/esnext/schemes/https.js create mode 100644 node_modules/uri-js/dist/esnext/schemes/https.js.map create mode 100644 node_modules/uri-js/dist/esnext/schemes/mailto.d.ts create mode 100644 node_modules/uri-js/dist/esnext/schemes/mailto.js create mode 100644 node_modules/uri-js/dist/esnext/schemes/mailto.js.map create mode 100644 node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts create mode 100644 node_modules/uri-js/dist/esnext/schemes/urn-uuid.js create mode 100644 node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map create mode 100644 node_modules/uri-js/dist/esnext/schemes/urn.d.ts create mode 100644 node_modules/uri-js/dist/esnext/schemes/urn.js create mode 100644 node_modules/uri-js/dist/esnext/schemes/urn.js.map create mode 100644 node_modules/uri-js/dist/esnext/schemes/ws.d.ts create mode 100644 node_modules/uri-js/dist/esnext/schemes/ws.js create mode 100644 node_modules/uri-js/dist/esnext/schemes/ws.js.map create mode 100644 node_modules/uri-js/dist/esnext/schemes/wss.d.ts create mode 100644 node_modules/uri-js/dist/esnext/schemes/wss.js create mode 100644 node_modules/uri-js/dist/esnext/schemes/wss.js.map create mode 100644 node_modules/uri-js/dist/esnext/uri.d.ts create mode 100644 node_modules/uri-js/dist/esnext/uri.js create mode 100644 node_modules/uri-js/dist/esnext/uri.js.map create mode 100644 node_modules/uri-js/dist/esnext/util.d.ts create mode 100644 node_modules/uri-js/dist/esnext/util.js create mode 100644 node_modules/uri-js/dist/esnext/util.js.map create mode 100644 node_modules/uri-js/package.json create mode 100644 node_modules/uri-js/yarn.lock create mode 100644 node_modules/url-parse-lax/index.js create mode 100644 node_modules/url-parse-lax/license create mode 100644 node_modules/url-parse-lax/package.json create mode 100644 node_modules/url-parse-lax/readme.md create mode 100644 node_modules/util-deprecate/History.md create mode 100644 node_modules/util-deprecate/LICENSE create mode 100644 node_modules/util-deprecate/README.md create mode 100644 node_modules/util-deprecate/browser.js create mode 100644 node_modules/util-deprecate/node.js create mode 100644 node_modules/util-deprecate/package.json create mode 100644 node_modules/utils-merge/.npmignore create mode 100644 node_modules/utils-merge/LICENSE create mode 100644 node_modules/utils-merge/README.md create mode 100644 node_modules/utils-merge/index.js create mode 100644 node_modules/utils-merge/package.json create mode 100644 node_modules/uuid/AUTHORS create mode 100644 node_modules/uuid/CHANGELOG.md create mode 100644 node_modules/uuid/LICENSE.md create mode 100644 node_modules/uuid/README.md create mode 100644 node_modules/uuid/bin/uuid create mode 100644 node_modules/uuid/index.js create mode 100644 node_modules/uuid/lib/bytesToUuid.js create mode 100644 node_modules/uuid/lib/md5-browser.js create mode 100644 node_modules/uuid/lib/md5.js create mode 100644 node_modules/uuid/lib/rng-browser.js create mode 100644 node_modules/uuid/lib/rng.js create mode 100644 node_modules/uuid/lib/sha1-browser.js create mode 100644 node_modules/uuid/lib/sha1.js create mode 100644 node_modules/uuid/lib/v35.js create mode 100644 node_modules/uuid/package.json create mode 100644 node_modules/uuid/v1.js create mode 100644 node_modules/uuid/v3.js create mode 100644 node_modules/uuid/v4.js create mode 100644 node_modules/uuid/v5.js create mode 100644 node_modules/validate-npm-package-license/LICENSE create mode 100644 node_modules/validate-npm-package-license/README.md create mode 100644 node_modules/validate-npm-package-license/index.js create mode 100644 node_modules/validate-npm-package-license/package.json create mode 100644 node_modules/validator/CHANGELOG.md create mode 100644 node_modules/validator/LICENSE create mode 100644 node_modules/validator/README.md create mode 100644 node_modules/validator/es/index.js create mode 100644 node_modules/validator/es/lib/alpha.js create mode 100644 node_modules/validator/es/lib/blacklist.js create mode 100644 node_modules/validator/es/lib/contains.js create mode 100644 node_modules/validator/es/lib/equals.js create mode 100644 node_modules/validator/es/lib/escape.js create mode 100644 node_modules/validator/es/lib/isAfter.js create mode 100644 node_modules/validator/es/lib/isAlpha.js create mode 100644 node_modules/validator/es/lib/isAlphanumeric.js create mode 100644 node_modules/validator/es/lib/isAscii.js create mode 100644 node_modules/validator/es/lib/isBIC.js create mode 100644 node_modules/validator/es/lib/isBase32.js create mode 100644 node_modules/validator/es/lib/isBase64.js create mode 100644 node_modules/validator/es/lib/isBefore.js create mode 100644 node_modules/validator/es/lib/isBoolean.js create mode 100644 node_modules/validator/es/lib/isBtcAddress.js create mode 100644 node_modules/validator/es/lib/isByteLength.js create mode 100644 node_modules/validator/es/lib/isCreditCard.js create mode 100644 node_modules/validator/es/lib/isCurrency.js create mode 100644 node_modules/validator/es/lib/isDataURI.js create mode 100644 node_modules/validator/es/lib/isDate.js create mode 100644 node_modules/validator/es/lib/isDecimal.js create mode 100644 node_modules/validator/es/lib/isDivisibleBy.js create mode 100644 node_modules/validator/es/lib/isEAN.js create mode 100644 node_modules/validator/es/lib/isEmail.js create mode 100644 node_modules/validator/es/lib/isEmpty.js create mode 100644 node_modules/validator/es/lib/isEthereumAddress.js create mode 100644 node_modules/validator/es/lib/isFQDN.js create mode 100644 node_modules/validator/es/lib/isFloat.js create mode 100644 node_modules/validator/es/lib/isFullWidth.js create mode 100644 node_modules/validator/es/lib/isHSL.js create mode 100644 node_modules/validator/es/lib/isHalfWidth.js create mode 100644 node_modules/validator/es/lib/isHash.js create mode 100644 node_modules/validator/es/lib/isHexColor.js create mode 100644 node_modules/validator/es/lib/isHexadecimal.js create mode 100644 node_modules/validator/es/lib/isIBAN.js create mode 100644 node_modules/validator/es/lib/isIMEI.js create mode 100644 node_modules/validator/es/lib/isIP.js create mode 100644 node_modules/validator/es/lib/isIPRange.js create mode 100644 node_modules/validator/es/lib/isISBN.js create mode 100644 node_modules/validator/es/lib/isISIN.js create mode 100644 node_modules/validator/es/lib/isISO31661Alpha2.js create mode 100644 node_modules/validator/es/lib/isISO31661Alpha3.js create mode 100644 node_modules/validator/es/lib/isISO8601.js create mode 100644 node_modules/validator/es/lib/isISRC.js create mode 100644 node_modules/validator/es/lib/isISSN.js create mode 100644 node_modules/validator/es/lib/isIdentityCard.js create mode 100644 node_modules/validator/es/lib/isIn.js create mode 100644 node_modules/validator/es/lib/isInt.js create mode 100644 node_modules/validator/es/lib/isJSON.js create mode 100644 node_modules/validator/es/lib/isJWT.js create mode 100644 node_modules/validator/es/lib/isLatLong.js create mode 100644 node_modules/validator/es/lib/isLength.js create mode 100644 node_modules/validator/es/lib/isLocale.js create mode 100644 node_modules/validator/es/lib/isLowercase.js create mode 100644 node_modules/validator/es/lib/isMACAddress.js create mode 100644 node_modules/validator/es/lib/isMD5.js create mode 100644 node_modules/validator/es/lib/isMagnetURI.js create mode 100644 node_modules/validator/es/lib/isMimeType.js create mode 100644 node_modules/validator/es/lib/isMobilePhone.js create mode 100644 node_modules/validator/es/lib/isMongoId.js create mode 100644 node_modules/validator/es/lib/isMultibyte.js create mode 100644 node_modules/validator/es/lib/isNumeric.js create mode 100644 node_modules/validator/es/lib/isOctal.js create mode 100644 node_modules/validator/es/lib/isPassportNumber.js create mode 100644 node_modules/validator/es/lib/isPort.js create mode 100644 node_modules/validator/es/lib/isPostalCode.js create mode 100644 node_modules/validator/es/lib/isRFC3339.js create mode 100644 node_modules/validator/es/lib/isRgbColor.js create mode 100644 node_modules/validator/es/lib/isSemVer.js create mode 100644 node_modules/validator/es/lib/isSlug.js create mode 100644 node_modules/validator/es/lib/isSurrogatePair.js create mode 100644 node_modules/validator/es/lib/isTaxID.js create mode 100644 node_modules/validator/es/lib/isURL.js create mode 100644 node_modules/validator/es/lib/isUUID.js create mode 100644 node_modules/validator/es/lib/isUppercase.js create mode 100644 node_modules/validator/es/lib/isVariableWidth.js create mode 100644 node_modules/validator/es/lib/isWhitelisted.js create mode 100644 node_modules/validator/es/lib/ltrim.js create mode 100644 node_modules/validator/es/lib/matches.js create mode 100644 node_modules/validator/es/lib/normalizeEmail.js create mode 100644 node_modules/validator/es/lib/rtrim.js create mode 100644 node_modules/validator/es/lib/stripLow.js create mode 100644 node_modules/validator/es/lib/toBoolean.js create mode 100644 node_modules/validator/es/lib/toDate.js create mode 100644 node_modules/validator/es/lib/toFloat.js create mode 100644 node_modules/validator/es/lib/toInt.js create mode 100644 node_modules/validator/es/lib/trim.js create mode 100644 node_modules/validator/es/lib/unescape.js create mode 100644 node_modules/validator/es/lib/util/assertString.js create mode 100644 node_modules/validator/es/lib/util/includes.js create mode 100644 node_modules/validator/es/lib/util/merge.js create mode 100644 node_modules/validator/es/lib/util/multilineRegex.js create mode 100644 node_modules/validator/es/lib/util/toString.js create mode 100644 node_modules/validator/es/lib/whitelist.js create mode 100644 node_modules/validator/index.js create mode 100644 node_modules/validator/lib/alpha.js create mode 100644 node_modules/validator/lib/blacklist.js create mode 100644 node_modules/validator/lib/contains.js create mode 100644 node_modules/validator/lib/equals.js create mode 100644 node_modules/validator/lib/escape.js create mode 100644 node_modules/validator/lib/isAfter.js create mode 100644 node_modules/validator/lib/isAlpha.js create mode 100644 node_modules/validator/lib/isAlphanumeric.js create mode 100644 node_modules/validator/lib/isAscii.js create mode 100644 node_modules/validator/lib/isBIC.js create mode 100644 node_modules/validator/lib/isBase32.js create mode 100644 node_modules/validator/lib/isBase64.js create mode 100644 node_modules/validator/lib/isBefore.js create mode 100644 node_modules/validator/lib/isBoolean.js create mode 100644 node_modules/validator/lib/isBtcAddress.js create mode 100644 node_modules/validator/lib/isByteLength.js create mode 100644 node_modules/validator/lib/isCreditCard.js create mode 100644 node_modules/validator/lib/isCurrency.js create mode 100644 node_modules/validator/lib/isDataURI.js create mode 100644 node_modules/validator/lib/isDate.js create mode 100644 node_modules/validator/lib/isDecimal.js create mode 100644 node_modules/validator/lib/isDivisibleBy.js create mode 100644 node_modules/validator/lib/isEAN.js create mode 100644 node_modules/validator/lib/isEmail.js create mode 100644 node_modules/validator/lib/isEmpty.js create mode 100644 node_modules/validator/lib/isEthereumAddress.js create mode 100644 node_modules/validator/lib/isFQDN.js create mode 100644 node_modules/validator/lib/isFloat.js create mode 100644 node_modules/validator/lib/isFullWidth.js create mode 100644 node_modules/validator/lib/isHSL.js create mode 100644 node_modules/validator/lib/isHalfWidth.js create mode 100644 node_modules/validator/lib/isHash.js create mode 100644 node_modules/validator/lib/isHexColor.js create mode 100644 node_modules/validator/lib/isHexadecimal.js create mode 100644 node_modules/validator/lib/isIBAN.js create mode 100644 node_modules/validator/lib/isIMEI.js create mode 100644 node_modules/validator/lib/isIP.js create mode 100644 node_modules/validator/lib/isIPRange.js create mode 100644 node_modules/validator/lib/isISBN.js create mode 100644 node_modules/validator/lib/isISIN.js create mode 100644 node_modules/validator/lib/isISO31661Alpha2.js create mode 100644 node_modules/validator/lib/isISO31661Alpha3.js create mode 100644 node_modules/validator/lib/isISO8601.js create mode 100644 node_modules/validator/lib/isISRC.js create mode 100644 node_modules/validator/lib/isISSN.js create mode 100644 node_modules/validator/lib/isIdentityCard.js create mode 100644 node_modules/validator/lib/isIn.js create mode 100644 node_modules/validator/lib/isInt.js create mode 100644 node_modules/validator/lib/isJSON.js create mode 100644 node_modules/validator/lib/isJWT.js create mode 100644 node_modules/validator/lib/isLatLong.js create mode 100644 node_modules/validator/lib/isLength.js create mode 100644 node_modules/validator/lib/isLocale.js create mode 100644 node_modules/validator/lib/isLowercase.js create mode 100644 node_modules/validator/lib/isMACAddress.js create mode 100644 node_modules/validator/lib/isMD5.js create mode 100644 node_modules/validator/lib/isMagnetURI.js create mode 100644 node_modules/validator/lib/isMimeType.js create mode 100644 node_modules/validator/lib/isMobilePhone.js create mode 100644 node_modules/validator/lib/isMongoId.js create mode 100644 node_modules/validator/lib/isMultibyte.js create mode 100644 node_modules/validator/lib/isNumeric.js create mode 100644 node_modules/validator/lib/isOctal.js create mode 100644 node_modules/validator/lib/isPassportNumber.js create mode 100644 node_modules/validator/lib/isPort.js create mode 100644 node_modules/validator/lib/isPostalCode.js create mode 100644 node_modules/validator/lib/isRFC3339.js create mode 100644 node_modules/validator/lib/isRgbColor.js create mode 100644 node_modules/validator/lib/isSemVer.js create mode 100644 node_modules/validator/lib/isSlug.js create mode 100644 node_modules/validator/lib/isSurrogatePair.js create mode 100644 node_modules/validator/lib/isTaxID.js create mode 100644 node_modules/validator/lib/isURL.js create mode 100644 node_modules/validator/lib/isUUID.js create mode 100644 node_modules/validator/lib/isUppercase.js create mode 100644 node_modules/validator/lib/isVariableWidth.js create mode 100644 node_modules/validator/lib/isWhitelisted.js create mode 100644 node_modules/validator/lib/ltrim.js create mode 100644 node_modules/validator/lib/matches.js create mode 100644 node_modules/validator/lib/normalizeEmail.js create mode 100644 node_modules/validator/lib/rtrim.js create mode 100644 node_modules/validator/lib/stripLow.js create mode 100644 node_modules/validator/lib/toBoolean.js create mode 100644 node_modules/validator/lib/toDate.js create mode 100644 node_modules/validator/lib/toFloat.js create mode 100644 node_modules/validator/lib/toInt.js create mode 100644 node_modules/validator/lib/trim.js create mode 100644 node_modules/validator/lib/unescape.js create mode 100644 node_modules/validator/lib/util/assertString.js create mode 100644 node_modules/validator/lib/util/includes.js create mode 100644 node_modules/validator/lib/util/merge.js create mode 100644 node_modules/validator/lib/util/multilineRegex.js create mode 100644 node_modules/validator/lib/util/toString.js create mode 100644 node_modules/validator/lib/whitelist.js create mode 100644 node_modules/validator/package.json create mode 100644 node_modules/validator/validator.js create mode 100644 node_modules/validator/validator.min.js create mode 100644 node_modules/vary/HISTORY.md create mode 100644 node_modules/vary/LICENSE create mode 100644 node_modules/vary/README.md create mode 100644 node_modules/vary/index.js create mode 100644 node_modules/vary/package.json create mode 100644 node_modules/verror/.npmignore create mode 100644 node_modules/verror/CHANGES.md create mode 100644 node_modules/verror/CONTRIBUTING.md create mode 100644 node_modules/verror/LICENSE create mode 100644 node_modules/verror/README.md create mode 100644 node_modules/verror/lib/verror.js create mode 100644 node_modules/verror/package.json create mode 100644 node_modules/which-module/CHANGELOG.md create mode 100644 node_modules/which-module/LICENSE create mode 100644 node_modules/which-module/README.md create mode 100644 node_modules/which-module/index.js create mode 100644 node_modules/which-module/package.json create mode 100644 node_modules/widest-line/index.d.ts create mode 100644 node_modules/widest-line/index.js create mode 100644 node_modules/widest-line/license create mode 100644 node_modules/widest-line/package.json create mode 100644 node_modules/widest-line/readme.md create mode 100644 node_modules/wrap-ansi/index.js create mode 100644 node_modules/wrap-ansi/license create mode 100644 node_modules/wrap-ansi/package.json create mode 100644 node_modules/wrap-ansi/readme.md create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js create mode 100644 node_modules/write-file-atomic/CHANGELOG.md create mode 100644 node_modules/write-file-atomic/LICENSE create mode 100644 node_modules/write-file-atomic/README.md create mode 100644 node_modules/write-file-atomic/index.js create mode 100644 node_modules/write-file-atomic/package.json create mode 100644 node_modules/xdg-basedir/index.d.ts create mode 100644 node_modules/xdg-basedir/index.js create mode 100644 node_modules/xdg-basedir/license create mode 100644 node_modules/xdg-basedir/package.json create mode 100644 node_modules/xdg-basedir/readme.md create mode 100644 node_modules/y18n/CHANGELOG.md create mode 100644 node_modules/y18n/LICENSE create mode 100644 node_modules/y18n/README.md create mode 100644 node_modules/y18n/index.js create mode 100644 node_modules/y18n/package.json create mode 100644 node_modules/yargs-parser/CHANGELOG.md create mode 100644 node_modules/yargs-parser/LICENSE.txt create mode 100644 node_modules/yargs-parser/README.md create mode 100644 node_modules/yargs-parser/index.js create mode 100644 node_modules/yargs-parser/lib/tokenize-arg-string.js create mode 100644 node_modules/yargs-parser/package.json create mode 100644 node_modules/yargs/CHANGELOG.md create mode 100644 node_modules/yargs/LICENSE create mode 100644 node_modules/yargs/README.md create mode 100644 node_modules/yargs/build/lib/apply-extends.d.ts create mode 100644 node_modules/yargs/build/lib/apply-extends.js create mode 100644 node_modules/yargs/build/lib/argsert.d.ts create mode 100644 node_modules/yargs/build/lib/argsert.js create mode 100644 node_modules/yargs/build/lib/command.d.ts create mode 100644 node_modules/yargs/build/lib/command.js create mode 100644 node_modules/yargs/build/lib/common-types.d.ts create mode 100644 node_modules/yargs/build/lib/common-types.js create mode 100644 node_modules/yargs/build/lib/completion-templates.d.ts create mode 100644 node_modules/yargs/build/lib/completion-templates.js create mode 100644 node_modules/yargs/build/lib/completion.d.ts create mode 100644 node_modules/yargs/build/lib/completion.js create mode 100644 node_modules/yargs/build/lib/is-promise.d.ts create mode 100644 node_modules/yargs/build/lib/is-promise.js create mode 100644 node_modules/yargs/build/lib/levenshtein.d.ts create mode 100644 node_modules/yargs/build/lib/levenshtein.js create mode 100644 node_modules/yargs/build/lib/middleware.d.ts create mode 100644 node_modules/yargs/build/lib/middleware.js create mode 100644 node_modules/yargs/build/lib/obj-filter.d.ts create mode 100644 node_modules/yargs/build/lib/obj-filter.js create mode 100644 node_modules/yargs/build/lib/parse-command.d.ts create mode 100644 node_modules/yargs/build/lib/parse-command.js create mode 100644 node_modules/yargs/build/lib/process-argv.d.ts create mode 100644 node_modules/yargs/build/lib/process-argv.js create mode 100644 node_modules/yargs/build/lib/usage.d.ts create mode 100644 node_modules/yargs/build/lib/usage.js create mode 100644 node_modules/yargs/build/lib/validation.d.ts create mode 100644 node_modules/yargs/build/lib/validation.js create mode 100644 node_modules/yargs/build/lib/yargs.d.ts create mode 100644 node_modules/yargs/build/lib/yargs.js create mode 100644 node_modules/yargs/build/lib/yerror.d.ts create mode 100644 node_modules/yargs/build/lib/yerror.js create mode 100644 node_modules/yargs/index.js create mode 100644 node_modules/yargs/locales/be.json create mode 100644 node_modules/yargs/locales/de.json create mode 100644 node_modules/yargs/locales/en.json create mode 100644 node_modules/yargs/locales/es.json create mode 100644 node_modules/yargs/locales/fi.json create mode 100644 node_modules/yargs/locales/fr.json create mode 100644 node_modules/yargs/locales/hi.json create mode 100644 node_modules/yargs/locales/hu.json create mode 100644 node_modules/yargs/locales/id.json create mode 100644 node_modules/yargs/locales/it.json create mode 100644 node_modules/yargs/locales/ja.json create mode 100644 node_modules/yargs/locales/ko.json create mode 100644 node_modules/yargs/locales/nb.json create mode 100644 node_modules/yargs/locales/nl.json create mode 100644 node_modules/yargs/locales/nn.json create mode 100644 node_modules/yargs/locales/pirate.json create mode 100644 node_modules/yargs/locales/pl.json create mode 100644 node_modules/yargs/locales/pt.json create mode 100644 node_modules/yargs/locales/pt_BR.json create mode 100644 node_modules/yargs/locales/ru.json create mode 100644 node_modules/yargs/locales/th.json create mode 100644 node_modules/yargs/locales/tr.json create mode 100644 node_modules/yargs/locales/zh_CN.json create mode 100644 node_modules/yargs/locales/zh_TW.json create mode 100644 node_modules/yargs/package.json create mode 100644 node_modules/yargs/yargs.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..166b9697ba15a58c095b1eca06166adc9eab51c9 GIT binary patch literal 58 kcmezWPnki1p_n0`A( +/// +/// +/// +/// +declare type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array; +declare type Primitive = null | undefined | string | number | boolean | Symbol; +export interface ArrayLike { + length: number; +} +export interface Class { + new (...args: any[]): T; +} +declare type DomElement = object & { + nodeType: 1; + nodeName: string; +}; +declare type NodeStream = object & { + pipe: Function; +}; +export declare const enum TypeName { + null = "null", + boolean = "boolean", + undefined = "undefined", + string = "string", + number = "number", + symbol = "symbol", + Function = "Function", + GeneratorFunction = "GeneratorFunction", + AsyncFunction = "AsyncFunction", + Observable = "Observable", + Array = "Array", + Buffer = "Buffer", + Object = "Object", + RegExp = "RegExp", + Date = "Date", + Error = "Error", + Map = "Map", + Set = "Set", + WeakMap = "WeakMap", + WeakSet = "WeakSet", + Int8Array = "Int8Array", + Uint8Array = "Uint8Array", + Uint8ClampedArray = "Uint8ClampedArray", + Int16Array = "Int16Array", + Uint16Array = "Uint16Array", + Int32Array = "Int32Array", + Uint32Array = "Uint32Array", + Float32Array = "Float32Array", + Float64Array = "Float64Array", + ArrayBuffer = "ArrayBuffer", + SharedArrayBuffer = "SharedArrayBuffer", + DataView = "DataView", + Promise = "Promise", + URL = "URL" +} +declare function is(value: unknown): TypeName; +declare namespace is { + const undefined: (value: unknown) => value is undefined; + const string: (value: unknown) => value is string; + const number: (value: unknown) => value is number; + const function_: (value: unknown) => value is Function; + const null_: (value: unknown) => value is null; + const class_: (value: unknown) => value is Class; + const boolean: (value: unknown) => value is boolean; + const symbol: (value: unknown) => value is Symbol; + const numericString: (value: unknown) => boolean; + const array: (arg: any) => arg is any[]; + const buffer: (input: unknown) => input is Buffer; + const nullOrUndefined: (value: unknown) => value is null | undefined; + const object: (value: unknown) => value is object; + const iterable: (value: unknown) => value is IterableIterator; + const asyncIterable: (value: unknown) => value is AsyncIterableIterator; + const generator: (value: unknown) => value is Generator; + const nativePromise: (value: unknown) => value is Promise; + const promise: (value: unknown) => value is Promise; + const generatorFunction: (value: unknown) => value is GeneratorFunction; + const asyncFunction: (value: unknown) => value is Function; + const boundFunction: (value: unknown) => value is Function; + const regExp: (value: unknown) => value is RegExp; + const date: (value: unknown) => value is Date; + const error: (value: unknown) => value is Error; + const map: (value: unknown) => value is Map; + const set: (value: unknown) => value is Set; + const weakMap: (value: unknown) => value is WeakMap; + const weakSet: (value: unknown) => value is WeakSet; + const int8Array: (value: unknown) => value is Int8Array; + const uint8Array: (value: unknown) => value is Uint8Array; + const uint8ClampedArray: (value: unknown) => value is Uint8ClampedArray; + const int16Array: (value: unknown) => value is Int16Array; + const uint16Array: (value: unknown) => value is Uint16Array; + const int32Array: (value: unknown) => value is Int32Array; + const uint32Array: (value: unknown) => value is Uint32Array; + const float32Array: (value: unknown) => value is Float32Array; + const float64Array: (value: unknown) => value is Float64Array; + const arrayBuffer: (value: unknown) => value is ArrayBuffer; + const sharedArrayBuffer: (value: unknown) => value is SharedArrayBuffer; + const dataView: (value: unknown) => value is DataView; + const directInstanceOf: (instance: unknown, klass: Class) => instance is T; + const urlInstance: (value: unknown) => value is URL; + const urlString: (value: unknown) => boolean; + const truthy: (value: unknown) => boolean; + const falsy: (value: unknown) => boolean; + const nan: (value: unknown) => boolean; + const primitive: (value: unknown) => value is Primitive; + const integer: (value: unknown) => value is number; + const safeInteger: (value: unknown) => value is number; + const plainObject: (value: unknown) => boolean; + const typedArray: (value: unknown) => value is TypedArray; + const arrayLike: (value: unknown) => value is ArrayLike; + const inRange: (value: number, range: number | number[]) => boolean; + const domElement: (value: unknown) => value is DomElement; + const observable: (value: unknown) => boolean; + const nodeStream: (value: unknown) => value is NodeStream; + const infinite: (value: unknown) => boolean; + const even: (value: number) => boolean; + const odd: (value: number) => boolean; + const emptyArray: (value: unknown) => boolean; + const nonEmptyArray: (value: unknown) => boolean; + const emptyString: (value: unknown) => boolean; + const nonEmptyString: (value: unknown) => boolean; + const emptyStringOrWhitespace: (value: unknown) => boolean; + const emptyObject: (value: unknown) => boolean; + const nonEmptyObject: (value: unknown) => boolean; + const emptySet: (value: unknown) => boolean; + const nonEmptySet: (value: unknown) => boolean; + const emptyMap: (value: unknown) => boolean; + const nonEmptyMap: (value: unknown) => boolean; + const any: (predicate: unknown, ...values: unknown[]) => boolean; + const all: (predicate: unknown, ...values: unknown[]) => boolean; +} +export default is; diff --git a/node_modules/@sindresorhus/is/dist/index.js b/node_modules/@sindresorhus/is/dist/index.js new file mode 100644 index 00000000..3cbafae1 --- /dev/null +++ b/node_modules/@sindresorhus/is/dist/index.js @@ -0,0 +1,245 @@ +"use strict"; +/// +/// +/// +/// +Object.defineProperty(exports, "__esModule", { value: true }); +// TODO: Use the `URL` global when targeting Node.js 10 +// tslint:disable-next-line +const URLGlobal = typeof URL === 'undefined' ? require('url').URL : URL; +const toString = Object.prototype.toString; +const isOfType = (type) => (value) => typeof value === type; +const isBuffer = (input) => !is.nullOrUndefined(input) && !is.nullOrUndefined(input.constructor) && is.function_(input.constructor.isBuffer) && input.constructor.isBuffer(input); +const getObjectType = (value) => { + const objectName = toString.call(value).slice(8, -1); + if (objectName) { + return objectName; + } + return null; +}; +const isObjectOfType = (type) => (value) => getObjectType(value) === type; +function is(value) { + switch (value) { + case null: + return "null" /* null */; + case true: + case false: + return "boolean" /* boolean */; + default: + } + switch (typeof value) { + case 'undefined': + return "undefined" /* undefined */; + case 'string': + return "string" /* string */; + case 'number': + return "number" /* number */; + case 'symbol': + return "symbol" /* symbol */; + default: + } + if (is.function_(value)) { + return "Function" /* Function */; + } + if (is.observable(value)) { + return "Observable" /* Observable */; + } + if (Array.isArray(value)) { + return "Array" /* Array */; + } + if (isBuffer(value)) { + return "Buffer" /* Buffer */; + } + const tagType = getObjectType(value); + if (tagType) { + return tagType; + } + if (value instanceof String || value instanceof Boolean || value instanceof Number) { + throw new TypeError('Please don\'t use object wrappers for primitive types'); + } + return "Object" /* Object */; +} +(function (is) { + // tslint:disable-next-line:strict-type-predicates + const isObject = (value) => typeof value === 'object'; + // tslint:disable:variable-name + is.undefined = isOfType('undefined'); + is.string = isOfType('string'); + is.number = isOfType('number'); + is.function_ = isOfType('function'); + // tslint:disable-next-line:strict-type-predicates + is.null_ = (value) => value === null; + is.class_ = (value) => is.function_(value) && value.toString().startsWith('class '); + is.boolean = (value) => value === true || value === false; + is.symbol = isOfType('symbol'); + // tslint:enable:variable-name + is.numericString = (value) => is.string(value) && value.length > 0 && !Number.isNaN(Number(value)); + is.array = Array.isArray; + is.buffer = isBuffer; + is.nullOrUndefined = (value) => is.null_(value) || is.undefined(value); + is.object = (value) => !is.nullOrUndefined(value) && (is.function_(value) || isObject(value)); + is.iterable = (value) => !is.nullOrUndefined(value) && is.function_(value[Symbol.iterator]); + is.asyncIterable = (value) => !is.nullOrUndefined(value) && is.function_(value[Symbol.asyncIterator]); + is.generator = (value) => is.iterable(value) && is.function_(value.next) && is.function_(value.throw); + is.nativePromise = (value) => isObjectOfType("Promise" /* Promise */)(value); + const hasPromiseAPI = (value) => !is.null_(value) && + isObject(value) && + is.function_(value.then) && + is.function_(value.catch); + is.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value); + is.generatorFunction = isObjectOfType("GeneratorFunction" /* GeneratorFunction */); + is.asyncFunction = isObjectOfType("AsyncFunction" /* AsyncFunction */); + is.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype'); + is.regExp = isObjectOfType("RegExp" /* RegExp */); + is.date = isObjectOfType("Date" /* Date */); + is.error = isObjectOfType("Error" /* Error */); + is.map = (value) => isObjectOfType("Map" /* Map */)(value); + is.set = (value) => isObjectOfType("Set" /* Set */)(value); + is.weakMap = (value) => isObjectOfType("WeakMap" /* WeakMap */)(value); + is.weakSet = (value) => isObjectOfType("WeakSet" /* WeakSet */)(value); + is.int8Array = isObjectOfType("Int8Array" /* Int8Array */); + is.uint8Array = isObjectOfType("Uint8Array" /* Uint8Array */); + is.uint8ClampedArray = isObjectOfType("Uint8ClampedArray" /* Uint8ClampedArray */); + is.int16Array = isObjectOfType("Int16Array" /* Int16Array */); + is.uint16Array = isObjectOfType("Uint16Array" /* Uint16Array */); + is.int32Array = isObjectOfType("Int32Array" /* Int32Array */); + is.uint32Array = isObjectOfType("Uint32Array" /* Uint32Array */); + is.float32Array = isObjectOfType("Float32Array" /* Float32Array */); + is.float64Array = isObjectOfType("Float64Array" /* Float64Array */); + is.arrayBuffer = isObjectOfType("ArrayBuffer" /* ArrayBuffer */); + is.sharedArrayBuffer = isObjectOfType("SharedArrayBuffer" /* SharedArrayBuffer */); + is.dataView = isObjectOfType("DataView" /* DataView */); + is.directInstanceOf = (instance, klass) => Object.getPrototypeOf(instance) === klass.prototype; + is.urlInstance = (value) => isObjectOfType("URL" /* URL */)(value); + is.urlString = (value) => { + if (!is.string(value)) { + return false; + } + try { + new URLGlobal(value); // tslint:disable-line no-unused-expression + return true; + } + catch (_a) { + return false; + } + }; + is.truthy = (value) => Boolean(value); + is.falsy = (value) => !value; + is.nan = (value) => Number.isNaN(value); + const primitiveTypes = new Set([ + 'undefined', + 'string', + 'number', + 'boolean', + 'symbol' + ]); + is.primitive = (value) => is.null_(value) || primitiveTypes.has(typeof value); + is.integer = (value) => Number.isInteger(value); + is.safeInteger = (value) => Number.isSafeInteger(value); + is.plainObject = (value) => { + // From: https://github.com/sindresorhus/is-plain-obj/blob/master/index.js + let prototype; + return getObjectType(value) === "Object" /* Object */ && + (prototype = Object.getPrototypeOf(value), prototype === null || // tslint:disable-line:ban-comma-operator + prototype === Object.getPrototypeOf({})); + }; + const typedArrayTypes = new Set([ + "Int8Array" /* Int8Array */, + "Uint8Array" /* Uint8Array */, + "Uint8ClampedArray" /* Uint8ClampedArray */, + "Int16Array" /* Int16Array */, + "Uint16Array" /* Uint16Array */, + "Int32Array" /* Int32Array */, + "Uint32Array" /* Uint32Array */, + "Float32Array" /* Float32Array */, + "Float64Array" /* Float64Array */ + ]); + is.typedArray = (value) => { + const objectType = getObjectType(value); + if (objectType === null) { + return false; + } + return typedArrayTypes.has(objectType); + }; + const isValidLength = (value) => is.safeInteger(value) && value > -1; + is.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length); + is.inRange = (value, range) => { + if (is.number(range)) { + return value >= Math.min(0, range) && value <= Math.max(range, 0); + } + if (is.array(range) && range.length === 2) { + return value >= Math.min(...range) && value <= Math.max(...range); + } + throw new TypeError(`Invalid range: ${JSON.stringify(range)}`); + }; + const NODE_TYPE_ELEMENT = 1; + const DOM_PROPERTIES_TO_CHECK = [ + 'innerHTML', + 'ownerDocument', + 'style', + 'attributes', + 'nodeValue' + ]; + is.domElement = (value) => is.object(value) && value.nodeType === NODE_TYPE_ELEMENT && is.string(value.nodeName) && + !is.plainObject(value) && DOM_PROPERTIES_TO_CHECK.every(property => property in value); + is.observable = (value) => { + if (!value) { + return false; + } + if (value[Symbol.observable] && value === value[Symbol.observable]()) { + return true; + } + if (value['@@observable'] && value === value['@@observable']()) { + return true; + } + return false; + }; + is.nodeStream = (value) => !is.nullOrUndefined(value) && isObject(value) && is.function_(value.pipe) && !is.observable(value); + is.infinite = (value) => value === Infinity || value === -Infinity; + const isAbsoluteMod2 = (rem) => (value) => is.integer(value) && Math.abs(value % 2) === rem; + is.even = isAbsoluteMod2(0); + is.odd = isAbsoluteMod2(1); + const isWhiteSpaceString = (value) => is.string(value) && /\S/.test(value) === false; + is.emptyArray = (value) => is.array(value) && value.length === 0; + is.nonEmptyArray = (value) => is.array(value) && value.length > 0; + is.emptyString = (value) => is.string(value) && value.length === 0; + is.nonEmptyString = (value) => is.string(value) && value.length > 0; + is.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value); + is.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0; + is.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0; + is.emptySet = (value) => is.set(value) && value.size === 0; + is.nonEmptySet = (value) => is.set(value) && value.size > 0; + is.emptyMap = (value) => is.map(value) && value.size === 0; + is.nonEmptyMap = (value) => is.map(value) && value.size > 0; + const predicateOnArray = (method, predicate, values) => { + if (is.function_(predicate) === false) { + throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`); + } + if (values.length === 0) { + throw new TypeError('Invalid number of values'); + } + return method.call(values, predicate); + }; + // tslint:disable variable-name + is.any = (predicate, ...values) => predicateOnArray(Array.prototype.some, predicate, values); + is.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values); + // tslint:enable variable-name +})(is || (is = {})); +// Some few keywords are reserved, but we'll populate them for Node.js users +// See https://github.com/Microsoft/TypeScript/issues/2536 +Object.defineProperties(is, { + class: { + value: is.class_ + }, + function: { + value: is.function_ + }, + null: { + value: is.null_ + } +}); +exports.default = is; +// For CommonJS default export support +module.exports = is; +module.exports.default = is; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@sindresorhus/is/dist/index.js.map b/node_modules/@sindresorhus/is/dist/index.js.map new file mode 100644 index 00000000..cd827fc2 --- /dev/null +++ b/node_modules/@sindresorhus/is/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,0CAA0C;AAC1C,2CAA2C;AAC3C,0BAA0B;;AAE1B,uDAAuD;AACvD,2BAA2B;AAC3B,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAqDxE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC3C,MAAM,QAAQ,GAAG,CAAI,IAAY,EAAE,EAAE,CAAC,CAAC,KAAc,EAAc,EAAE,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC;AAC5F,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAE,KAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,KAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAK,KAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEhP,MAAM,aAAa,GAAG,CAAC,KAAc,EAAmB,EAAE;IACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,UAAU,EAAE;QACf,OAAO,UAAsB,CAAC;KAC9B;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAI,IAAc,EAAE,EAAE,CAAC,CAAC,KAAc,EAAc,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAE5G,SAAS,EAAE,CAAC,KAAc;IACzB,QAAQ,KAAK,EAAE;QACd,KAAK,IAAI;YACR,yBAAqB;QACtB,KAAK,IAAI,CAAC;QACV,KAAK,KAAK;YACT,+BAAwB;QACzB,QAAQ;KACR;IAED,QAAQ,OAAO,KAAK,EAAE;QACrB,KAAK,WAAW;YACf,mCAA0B;QAC3B,KAAK,QAAQ;YACZ,6BAAuB;QACxB,KAAK,QAAQ;YACZ,6BAAuB;QACxB,KAAK,QAAQ;YACZ,6BAAuB;QACxB,QAAQ;KACR;IAED,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACxB,iCAAyB;KACzB;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACzB,qCAA2B;KAC3B;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,2BAAsB;KACtB;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACpB,6BAAuB;KACvB;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,EAAE;QACZ,OAAO,OAAO,CAAC;KACf;IAED,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,MAAM,EAAE;QACnF,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;KAC7E;IAED,6BAAuB;AACxB,CAAC;AAED,WAAU,EAAE;IACX,kDAAkD;IAClD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;IAEhF,+BAA+B;IAClB,YAAS,GAAG,QAAQ,CAAY,WAAW,CAAC,CAAC;IAC7C,SAAM,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC;IACpC,SAAM,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC;IACpC,YAAS,GAAG,QAAQ,CAAW,UAAU,CAAC,CAAC;IACxD,kDAAkD;IACrC,QAAK,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;IAC1D,SAAM,GAAG,CAAC,KAAc,EAAkB,EAAE,CAAC,GAAA,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvG,UAAO,GAAG,CAAC,KAAc,EAAoB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC;IAClF,SAAM,GAAG,QAAQ,CAAS,QAAQ,CAAC,CAAC;IACjD,8BAA8B;IAEjB,gBAAa,GAAG,CAAC,KAAc,EAAW,EAAE,CACxD,GAAA,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtD,QAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IACtB,SAAM,GAAG,QAAQ,CAAC;IAElB,kBAAe,GAAG,CAAC,KAAc,EAA6B,EAAE,CAAC,GAAA,KAAK,CAAC,KAAK,CAAC,IAAI,GAAA,SAAS,CAAC,KAAK,CAAC,CAAC;IAClG,SAAM,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,CAAC,GAAA,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,SAAS,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/G,WAAQ,GAAG,CAAC,KAAc,EAAsC,EAAE,CAAC,CAAC,GAAA,eAAe,CAAC,KAAK,CAAC,IAAI,GAAA,SAAS,CAAE,KAAmC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/J,gBAAa,GAAG,CAAC,KAAc,EAA2C,EAAE,CAAC,CAAC,GAAA,eAAe,CAAC,KAAK,CAAC,IAAI,GAAA,SAAS,CAAE,KAAwC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACnL,YAAS,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,GAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAA,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEvH,gBAAa,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC1E,cAAc,yBAAoC,CAAC,KAAK,CAAC,CAAC;IAE3D,MAAM,aAAa,GAAG,CAAC,KAAc,EAA6B,EAAE,CACnE,CAAC,GAAA,KAAK,CAAC,KAAK,CAAC;QACb,QAAQ,CAAC,KAAK,CAAY;QAC1B,GAAA,SAAS,CAAE,KAA0B,CAAC,IAAI,CAAC;QAC3C,GAAA,SAAS,CAAE,KAA0B,CAAC,KAAK,CAAC,CAAC;IAEjC,UAAO,GAAG,CAAC,KAAc,EAA6B,EAAE,CAAC,GAAA,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IAEtG,oBAAiB,GAAG,cAAc,6CAA+C,CAAC;IAClF,gBAAa,GAAG,cAAc,qCAAkC,CAAC;IACjE,gBAAa,GAAG,CAAC,KAAc,EAAqB,EAAE,CAAC,GAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAE9G,SAAM,GAAG,cAAc,uBAAyB,CAAC;IACjD,OAAI,GAAG,cAAc,mBAAqB,CAAC;IAC3C,QAAK,GAAG,cAAc,qBAAuB,CAAC;IAC9C,MAAG,GAAG,CAAC,KAAc,EAAkC,EAAE,CAAC,cAAc,iBAAqC,CAAC,KAAK,CAAC,CAAC;IACrH,MAAG,GAAG,CAAC,KAAc,EAAyB,EAAE,CAAC,cAAc,iBAA4B,CAAC,KAAK,CAAC,CAAC;IACnG,UAAO,GAAG,CAAC,KAAc,EAAqC,EAAE,CAAC,cAAc,yBAA4C,CAAC,KAAK,CAAC,CAAC;IACnI,UAAO,GAAG,CAAC,KAAc,EAA4B,EAAE,CAAC,cAAc,yBAAmC,CAAC,KAAK,CAAC,CAAC;IAEjH,YAAS,GAAG,cAAc,6BAA+B,CAAC;IAC1D,aAAU,GAAG,cAAc,+BAAiC,CAAC;IAC7D,oBAAiB,GAAG,cAAc,6CAA+C,CAAC;IAClF,aAAU,GAAG,cAAc,+BAAiC,CAAC;IAC7D,cAAW,GAAG,cAAc,iCAAmC,CAAC;IAChE,aAAU,GAAG,cAAc,+BAAiC,CAAC;IAC7D,cAAW,GAAG,cAAc,iCAAmC,CAAC;IAChE,eAAY,GAAG,cAAc,mCAAqC,CAAC;IACnE,eAAY,GAAG,cAAc,mCAAqC,CAAC;IAEnE,cAAW,GAAG,cAAc,iCAAmC,CAAC;IAChE,oBAAiB,GAAG,cAAc,6CAA+C,CAAC;IAClF,WAAQ,GAAG,cAAc,2BAA6B,CAAC;IAEvD,mBAAgB,GAAG,CAAI,QAAiB,EAAE,KAAe,EAAiB,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACjI,cAAW,GAAG,CAAC,KAAc,EAAgB,EAAE,CAAC,cAAc,iBAAmB,CAAC,KAAK,CAAC,CAAC;IAEzF,YAAS,GAAG,CAAC,KAAc,EAAE,EAAE;QAC3C,IAAI,CAAC,GAAA,MAAM,CAAC,KAAK,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACb;QAED,IAAI;YACH,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,2CAA2C;YACjE,OAAO,IAAI,CAAC;SACZ;QAAC,WAAM;YACP,OAAO,KAAK,CAAC;SACb;IACF,CAAC,CAAC;IAEW,SAAM,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,QAAK,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;IAEnC,MAAG,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC9B,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;KACR,CAAC,CAAC;IAEU,YAAS,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,GAAA,KAAK,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC;IAErG,UAAO,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAe,CAAC,CAAC;IACjF,cAAW,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAe,CAAC,CAAC;IAEzF,cAAW,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7C,0EAA0E;QAC1E,IAAI,SAAS,CAAC;QAEd,OAAO,aAAa,CAAC,KAAK,CAAC,0BAAoB;YAC9C,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,SAAS,KAAK,IAAI,IAAI,yCAAyC;gBACzG,SAAS,KAAK,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;;;;;;;;;;KAU/B,CAAC,CAAC;IACU,aAAU,GAAG,CAAC,KAAc,EAAuB,EAAE;QACjE,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,UAAU,KAAK,IAAI,EAAE;YACxB,OAAO,KAAK,CAAC;SACb;QAED,OAAO,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9D,YAAS,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,CAAC,GAAA,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,SAAS,CAAC,KAAK,CAAC,IAAI,aAAa,CAAE,KAAmB,CAAC,MAAM,CAAC,CAAC;IAE/I,UAAO,GAAG,CAAC,KAAa,EAAE,KAAwB,EAAE,EAAE;QAClE,IAAI,GAAA,MAAM,CAAC,KAAK,CAAC,EAAE;YAClB,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAClE;QAED,IAAI,GAAA,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;SAClE;QAED,MAAM,IAAI,SAAS,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAC5B,MAAM,uBAAuB,GAAG;QAC/B,WAAW;QACX,eAAe;QACf,OAAO;QACP,YAAY;QACZ,WAAW;KACX,CAAC;IAEW,aAAU,GAAG,CAAC,KAAc,EAAuB,EAAE,CAAC,GAAA,MAAM,CAAC,KAAK,CAAC,IAAK,KAAoB,CAAC,QAAQ,KAAK,iBAAiB,IAAI,GAAA,MAAM,CAAE,KAAoB,CAAC,QAAQ,CAAC;QACjL,CAAC,GAAA,WAAW,CAAC,KAAK,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,IAAK,KAAoB,CAAC,CAAC;IAExF,aAAU,GAAG,CAAC,KAAc,EAAE,EAAE;QAC5C,IAAI,CAAC,KAAK,EAAE;YACX,OAAO,KAAK,CAAC;SACb;QAED,IAAK,KAAa,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,KAAM,KAAa,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE;YACvF,OAAO,IAAI,CAAC;SACZ;QAED,IAAK,KAAa,CAAC,cAAc,CAAC,IAAI,KAAK,KAAM,KAAa,CAAC,cAAc,CAAC,EAAE,EAAE;YACjF,OAAO,IAAI,CAAC;SACZ;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;IAEW,aAAU,GAAG,CAAC,KAAc,EAAuB,EAAE,CAAC,CAAC,GAAA,eAAe,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAY,IAAI,GAAA,SAAS,CAAE,KAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAA,UAAU,CAAC,KAAK,CAAC,CAAC;IAE3K,WAAQ,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC;IAEtF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,GAAA,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;IAC5F,OAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACzB,MAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IAE9E,aAAU,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpE,gBAAa,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAErE,cAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACtE,iBAAc,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,0BAAuB,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,WAAW,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE9F,cAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACjH,iBAAc,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAElH,WAAQ,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC9D,cAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAE/D,WAAQ,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IAC9D,cAAW,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,GAAA,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAG5E,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAE,SAAkB,EAAE,MAAiB,EAAE,EAAE;QACvF,IAAI,GAAA,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE;YACnC,MAAM,IAAI,SAAS,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SACvE;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;SAChD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAgB,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,+BAA+B;IAClB,MAAG,GAAG,CAAC,SAAkB,EAAE,GAAG,MAAiB,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9G,MAAG,GAAG,CAAC,SAAkB,EAAE,GAAG,MAAiB,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5H,8BAA8B;AAC/B,CAAC,EAvNS,EAAE,KAAF,EAAE,QAuNX;AAED,4EAA4E;AAC5E,0DAA0D;AAC1D,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE;IAC3B,KAAK,EAAE;QACN,KAAK,EAAE,EAAE,CAAC,MAAM;KAChB;IACD,QAAQ,EAAE;QACT,KAAK,EAAE,EAAE,CAAC,SAAS;KACnB;IACD,IAAI,EAAE;QACL,KAAK,EAAE,EAAE,CAAC,KAAK;KACf;CACD,CAAC,CAAC;AAEH,kBAAe,EAAE,CAAC;AAElB,sCAAsC;AACtC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;AACpB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@sindresorhus/is/license b/node_modules/@sindresorhus/is/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/@sindresorhus/is/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@sindresorhus/is/package.json b/node_modules/@sindresorhus/is/package.json new file mode 100644 index 00000000..59ab336a --- /dev/null +++ b/node_modules/@sindresorhus/is/package.json @@ -0,0 +1,96 @@ +{ + "_from": "@sindresorhus/is@^0.14.0", + "_id": "@sindresorhus/is@0.14.0", + "_inBundle": false, + "_integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "_location": "/@sindresorhus/is", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@sindresorhus/is@^0.14.0", + "name": "@sindresorhus/is", + "escapedName": "@sindresorhus%2fis", + "scope": "@sindresorhus", + "rawSpec": "^0.14.0", + "saveSpec": null, + "fetchSpec": "^0.14.0" + }, + "_requiredBy": [ + "/got" + ], + "_resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "_shasum": "9fb3a3cf3132328151f353de4632e01e52102bea", + "_spec": "@sindresorhus/is@^0.14.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\got", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Type check values: `is.string('🦄') //=> true`", + "devDependencies": { + "@sindresorhus/tsconfig": "^0.1.0", + "@types/jsdom": "^11.12.0", + "@types/node": "^10.12.10", + "@types/tempy": "^0.2.0", + "@types/zen-observable": "^0.8.0", + "ava": "^0.25.0", + "del-cli": "^1.1.0", + "jsdom": "^11.6.2", + "rxjs": "^6.3.3", + "tempy": "^0.2.1", + "tslint": "^5.9.1", + "tslint-xo": "^0.10.0", + "typescript": "^3.2.1", + "zen-observable": "^0.8.8" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/sindresorhus/is#readme", + "keywords": [ + "type", + "types", + "is", + "check", + "checking", + "validate", + "validation", + "utility", + "util", + "typeof", + "instanceof", + "object", + "assert", + "assertion", + "test", + "kind", + "primitive", + "verify", + "compare" + ], + "license": "MIT", + "main": "dist/index.js", + "name": "@sindresorhus/is", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is.git" + }, + "scripts": { + "build": "del dist && tsc", + "lint": "tslint --format stylish --project .", + "prepublish": "npm run build && del dist/tests", + "test": "npm run lint && npm run build && ava dist/tests" + }, + "types": "dist/index.d.ts", + "version": "0.14.0" +} diff --git a/node_modules/@sindresorhus/is/readme.md b/node_modules/@sindresorhus/is/readme.md new file mode 100644 index 00000000..97c023b5 --- /dev/null +++ b/node_modules/@sindresorhus/is/readme.md @@ -0,0 +1,451 @@ +# is [![Build Status](https://travis-ci.org/sindresorhus/is.svg?branch=master)](https://travis-ci.org/sindresorhus/is) + +> Type check values: `is.string('🦄') //=> true` + + + + +## Install + +``` +$ npm install @sindresorhus/is +``` + + +## Usage + +```js +const is = require('@sindresorhus/is'); + +is('🦄'); +//=> 'string' + +is(new Map()); +//=> 'Map' + +is.number(6); +//=> true +``` + +When using `is` together with TypeScript, [type guards](http://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types) are being used to infer the correct type inside if-else statements. + +```ts +import is from '@sindresorhus/is'; + +const padLeft = (value: string, padding: string | number) => { + if (is.number(padding)) { + // `padding` is typed as `number` + return Array(padding + 1).join(' ') + value; + } + + if (is.string(padding)) { + // `padding` is typed as `string` + return padding + value; + } + + throw new TypeError(`Expected 'padding' to be of type 'string' or 'number', got '${is(padding)}'.`); +} + +padLeft('🦄', 3); +//=> ' 🦄' + +padLeft('🦄', '🌈'); +//=> '🌈🦄' +``` + + +## API + +### is(value) + +Returns the type of `value`. + +Primitives are lowercase and object types are camelcase. + +Example: + +- `'undefined'` +- `'null'` +- `'string'` +- `'symbol'` +- `'Array'` +- `'Function'` +- `'Object'` + +Note: It will throw an error if you try to feed it object-wrapped primitives, as that's a bad practice. For example `new String('foo')`. + +### is.{method} + +All the below methods accept a value and returns a boolean for whether the value is of the desired type. + +#### Primitives + +##### .undefined(value) +##### .null(value) +##### .string(value) +##### .number(value) +##### .boolean(value) +##### .symbol(value) + +#### Built-in types + +##### .array(value) +##### .function(value) +##### .buffer(value) +##### .object(value) + +Keep in mind that [functions are objects too](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions). + +##### .numericString(value) + +Returns `true` for a string that represents a number. For example, `'42'` and `'-8'`. + +Note: `'NaN'` returns `false`, but `'Infinity'` and `'-Infinity'` return `true`. + +##### .regExp(value) +##### .date(value) +##### .error(value) +##### .nativePromise(value) +##### .promise(value) + +Returns `true` for any object with a `.then()` and `.catch()` method. Prefer this one over `.nativePromise()` as you usually want to allow userland promise implementations too. + +##### .generator(value) + +Returns `true` for any object that implements its own `.next()` and `.throw()` methods and has a function definition for `Symbol.iterator`. + +##### .generatorFunction(value) + +##### .asyncFunction(value) + +Returns `true` for any `async` function that can be called with the `await` operator. + +```js +is.asyncFunction(async () => {}); +// => true + +is.asyncFunction(() => {}); +// => false +``` + +##### .boundFunction(value) + +Returns `true` for any `bound` function. + +```js +is.boundFunction(() => {}); +// => true + +is.boundFunction(function () {}.bind(null)); +// => true + +is.boundFunction(function () {}); +// => false +``` + +##### .map(value) +##### .set(value) +##### .weakMap(value) +##### .weakSet(value) + +#### Typed arrays + +##### .int8Array(value) +##### .uint8Array(value) +##### .uint8ClampedArray(value) +##### .int16Array(value) +##### .uint16Array(value) +##### .int32Array(value) +##### .uint32Array(value) +##### .float32Array(value) +##### .float64Array(value) + +#### Structured data + +##### .arrayBuffer(value) +##### .sharedArrayBuffer(value) +##### .dataView(value) + +#### Emptiness + +##### .emptyString(value) + +Returns `true` if the value is a `string` and the `.length` is 0. + +##### .nonEmptyString(value) + +Returns `true` if the value is a `string` and the `.length` is more than 0. + +##### .emptyStringOrWhitespace(value) + +Returns `true` if `is.emptyString(value)` or if it's a `string` that is all whitespace. + +##### .emptyArray(value) + +Returns `true` if the value is an `Array` and the `.length` is 0. + +##### .nonEmptyArray(value) + +Returns `true` if the value is an `Array` and the `.length` is more than 0. + +##### .emptyObject(value) + +Returns `true` if the value is an `Object` and `Object.keys(value).length` is 0. + +Please note that `Object.keys` returns only own enumerable properties. Hence something like this can happen: + +```js +const object1 = {}; + +Object.defineProperty(object1, 'property1', { + value: 42, + writable: true, + enumerable: false, + configurable: true +}); + +is.emptyObject(object1); +// => true +``` + +##### .nonEmptyObject(value) + +Returns `true` if the value is an `Object` and `Object.keys(value).length` is more than 0. + +##### .emptySet(value) + +Returns `true` if the value is a `Set` and the `.size` is 0. + +##### .nonEmptySet(Value) + +Returns `true` if the value is a `Set` and the `.size` is more than 0. + +##### .emptyMap(value) + +Returns `true` if the value is a `Map` and the `.size` is 0. + +##### .nonEmptyMap(value) + +Returns `true` if the value is a `Map` and the `.size` is more than 0. + +#### Miscellaneous + +##### .directInstanceOf(value, class) + +Returns `true` if `value` is a direct instance of `class`. + +```js +is.directInstanceOf(new Error(), Error); +//=> true + +class UnicornError extends Error {} + +is.directInstanceOf(new UnicornError(), Error); +//=> false +``` + +##### .urlInstance(value) + +Returns `true` if `value` is an instance of the [`URL` class](https://developer.mozilla.org/en-US/docs/Web/API/URL). + +```js +const url = new URL('https://example.com'); + +is.urlInstance(url); +//=> true +``` + +### .url(value) + +Returns `true` if `value` is a URL string. + +Note: this only does basic checking using the [`URL` class](https://developer.mozilla.org/en-US/docs/Web/API/URL) constructor. + +```js +const url = 'https://example.com'; + +is.url(url); +//=> true + +is.url(new URL(url)); +//=> false +``` + +##### .truthy(value) + +Returns `true` for all values that evaluate to true in a boolean context: + +```js +is.truthy('🦄'); +//=> true + +is.truthy(undefined); +//=> false +``` + +##### .falsy(value) + +Returns `true` if `value` is one of: `false`, `0`, `''`, `null`, `undefined`, `NaN`. + +##### .nan(value) +##### .nullOrUndefined(value) +##### .primitive(value) + +JavaScript primitives are as follows: `null`, `undefined`, `string`, `number`, `boolean`, `symbol`. + +##### .integer(value) + +##### .safeInteger(value) + +Returns `true` if `value` is a [safe integer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger). + +##### .plainObject(value) + +An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`. + +##### .iterable(value) +##### .asyncIterable(value) +##### .class(value) + +Returns `true` for instances created by a class. + +##### .typedArray(value) + +##### .arrayLike(value) + +A `value` is array-like if it is not a function and has a `value.length` that is a safe integer greater than or equal to 0. + +```js +is.arrayLike(document.forms); +//=> true + +function foo() { + is.arrayLike(arguments); + //=> true +} +foo(); +``` + +##### .inRange(value, range) + +Check if `value` (number) is in the given `range`. The range is an array of two values, lower bound and upper bound, in no specific order. + +```js +is.inRange(3, [0, 5]); +is.inRange(3, [5, 0]); +is.inRange(0, [-2, 2]); +``` + +##### .inRange(value, upperBound) + +Check if `value` (number) is in the range of `0` to `upperBound`. + +```js +is.inRange(3, 10); +``` + +##### .domElement(value) + +Returns `true` if `value` is a DOM Element. + +##### .nodeStream(value) + +Returns `true` if `value` is a Node.js [stream](https://nodejs.org/api/stream.html). + +```js +const fs = require('fs'); + +is.nodeStream(fs.createReadStream('unicorn.png')); +//=> true +``` + +##### .observable(value) + +Returns `true` if `value` is an `Observable`. + +```js +const {Observable} = require('rxjs'); + +is.observable(new Observable()); +//=> true +``` + +##### .infinite(value) + +Check if `value` is `Infinity` or `-Infinity`. + +##### .even(value) + +Returns `true` if `value` is an even integer. + +##### .odd(value) + +Returns `true` if `value` is an odd integer. + +##### .any(predicate, ...values) + +Returns `true` if **any** of the input `values` returns true in the `predicate`: + +```js +is.any(is.string, {}, true, '🦄'); +//=> true + +is.any(is.boolean, 'unicorns', [], new Map()); +//=> false +``` + +##### .all(predicate, ...values) + +Returns `true` if **all** of the input `values` returns true in the `predicate`: + +```js +is.all(is.object, {}, new Map(), new Set()); +//=> true + +is.all(is.string, '🦄', [], 'unicorns'); +//=> false +``` + + +## FAQ + +### Why yet another type checking module? + +There are hundreds of type checking modules on npm, unfortunately, I couldn't find any that fit my needs: + +- Includes both type methods and ability to get the type +- Types of primitives returned as lowercase and object types as camelcase +- Covers all built-ins +- Unsurprising behavior +- Well-maintained +- Comprehensive test suite + +For the ones I found, pick 3 of these. + +The most common mistakes I noticed in these modules was using `instanceof` for type checking, forgetting that functions are objects, and omitting `symbol` as a primitive. + + +## Related + +- [ow](https://github.com/sindresorhus/ow) - Function argument validation for humans +- [is-stream](https://github.com/sindresorhus/is-stream) - Check if something is a Node.js stream +- [is-observable](https://github.com/sindresorhus/is-observable) - Check if a value is an Observable +- [file-type](https://github.com/sindresorhus/file-type) - Detect the file type of a Buffer/Uint8Array +- [is-ip](https://github.com/sindresorhus/is-ip) - Check if a string is an IP address +- [is-array-sorted](https://github.com/sindresorhus/is-array-sorted) - Check if an Array is sorted +- [is-error-constructor](https://github.com/sindresorhus/is-error-constructor) - Check if a value is an error constructor +- [is-empty-iterable](https://github.com/sindresorhus/is-empty-iterable) - Check if an Iterable is empty +- [is-blob](https://github.com/sindresorhus/is-blob) - Check if a value is a Blob - File-like object of immutable, raw data +- [has-emoji](https://github.com/sindresorhus/has-emoji) - Check whether a string has any emoji + + +## Created by + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Giora Guttsait](https://github.com/gioragutt) +- [Brandon Smith](https://github.com/brandon93s) + + +## License + +MIT diff --git a/node_modules/@szmarczak/http-timer/LICENSE b/node_modules/@szmarczak/http-timer/LICENSE new file mode 100644 index 00000000..15ad2e8d --- /dev/null +++ b/node_modules/@szmarczak/http-timer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Szymon Marczak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@szmarczak/http-timer/README.md b/node_modules/@szmarczak/http-timer/README.md new file mode 100644 index 00000000..13279ed8 --- /dev/null +++ b/node_modules/@szmarczak/http-timer/README.md @@ -0,0 +1,70 @@ +# http-timer +> Timings for HTTP requests + +[![Build Status](https://travis-ci.org/szmarczak/http-timer.svg?branch=master)](https://travis-ci.org/szmarczak/http-timer) +[![Coverage Status](https://coveralls.io/repos/github/szmarczak/http-timer/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/http-timer?branch=master) +[![install size](https://packagephobia.now.sh/badge?p=@szmarczak/http-timer)](https://packagephobia.now.sh/result?p=@szmarczak/http-timer) + +Inspired by the [`request` package](https://github.com/request/request). + +## Usage +```js +'use strict'; +const https = require('https'); +const timer = require('@szmarczak/http-timer'); + +const request = https.get('https://httpbin.org/anything'); +const timings = timer(request); + +request.on('response', response => { + response.on('data', () => {}); // Consume the data somehow + response.on('end', () => { + console.log(timings); + }); +}); + +// { start: 1535708511443, +// socket: 1535708511444, +// lookup: 1535708511444, +// connect: 1535708511582, +// upload: 1535708511887, +// response: 1535708512037, +// end: 1535708512040, +// phases: +// { wait: 1, +// dns: 0, +// tcp: 138, +// request: 305, +// firstByte: 150, +// download: 3, +// total: 597 } } +``` + +## API + +### timer(request) + +Returns: `Object` + +- `start` - Time when the request started. +- `socket` - Time when a socket was assigned to the request. +- `lookup` - Time when the DNS lookup finished. +- `connect` - Time when the socket successfully connected. +- `upload` - Time when the request finished uploading. +- `response` - Time when the request fired the `response` event. +- `end` - Time when the response fired the `end` event. +- `error` - Time when the request fired the `error` event. +- `phases` + - `wait` - `timings.socket - timings.start` + - `dns` - `timings.lookup - timings.socket` + - `tcp` - `timings.connect - timings.lookup` + - `request` - `timings.upload - timings.connect` + - `firstByte` - `timings.response - timings.upload` + - `download` - `timings.end - timings.response` + - `total` - `timings.end - timings.start` or `timings.error - timings.start` + +**Note**: The time is a `number` representing the milliseconds elapsed since the UNIX epoch. + +## License + +MIT diff --git a/node_modules/@szmarczak/http-timer/package.json b/node_modules/@szmarczak/http-timer/package.json new file mode 100644 index 00000000..9fc18cd3 --- /dev/null +++ b/node_modules/@szmarczak/http-timer/package.json @@ -0,0 +1,75 @@ +{ + "_from": "@szmarczak/http-timer@^1.1.2", + "_id": "@szmarczak/http-timer@1.1.2", + "_inBundle": false, + "_integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "_location": "/@szmarczak/http-timer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@szmarczak/http-timer@^1.1.2", + "name": "@szmarczak/http-timer", + "escapedName": "@szmarczak%2fhttp-timer", + "scope": "@szmarczak", + "rawSpec": "^1.1.2", + "saveSpec": null, + "fetchSpec": "^1.1.2" + }, + "_requiredBy": [ + "/got" + ], + "_resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "_shasum": "b1665e2c461a2cd92f4c1bbf50d5454de0d4b421", + "_spec": "@szmarczak/http-timer@^1.1.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\got", + "author": { + "name": "Szymon Marczak" + }, + "bugs": { + "url": "https://github.com/szmarczak/http-timer/issues" + }, + "bundleDependencies": false, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "deprecated": false, + "description": "Timings for HTTP requests", + "devDependencies": { + "ava": "^0.25.0", + "coveralls": "^3.0.2", + "nyc": "^12.0.2", + "p-event": "^2.1.0", + "xo": "^0.22.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "source" + ], + "homepage": "https://github.com/szmarczak/http-timer#readme", + "keywords": [ + "http", + "https", + "timer", + "timings" + ], + "license": "MIT", + "main": "source", + "name": "@szmarczak/http-timer", + "repository": { + "type": "git", + "url": "git+https://github.com/szmarczak/http-timer.git" + }, + "scripts": { + "coveralls": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && nyc ava" + }, + "version": "1.1.2", + "xo": { + "rules": { + "unicorn/filename-case": "camelCase" + } + } +} diff --git a/node_modules/@szmarczak/http-timer/source/index.js b/node_modules/@szmarczak/http-timer/source/index.js new file mode 100644 index 00000000..e2945804 --- /dev/null +++ b/node_modules/@szmarczak/http-timer/source/index.js @@ -0,0 +1,99 @@ +'use strict'; +const deferToConnect = require('defer-to-connect'); + +module.exports = request => { + const timings = { + start: Date.now(), + socket: null, + lookup: null, + connect: null, + upload: null, + response: null, + end: null, + error: null, + phases: { + wait: null, + dns: null, + tcp: null, + request: null, + firstByte: null, + download: null, + total: null + } + }; + + const handleError = origin => { + const emit = origin.emit.bind(origin); + origin.emit = (event, ...args) => { + // Catches the `error` event + if (event === 'error') { + timings.error = Date.now(); + timings.phases.total = timings.error - timings.start; + + origin.emit = emit; + } + + // Saves the original behavior + return emit(event, ...args); + }; + }; + + let uploadFinished = false; + const onUpload = () => { + timings.upload = Date.now(); + timings.phases.request = timings.upload - timings.connect; + }; + + handleError(request); + + request.once('socket', socket => { + timings.socket = Date.now(); + timings.phases.wait = timings.socket - timings.start; + + const lookupListener = () => { + timings.lookup = Date.now(); + timings.phases.dns = timings.lookup - timings.socket; + }; + + socket.once('lookup', lookupListener); + + deferToConnect(socket, () => { + timings.connect = Date.now(); + + if (timings.lookup === null) { + socket.removeListener('lookup', lookupListener); + timings.lookup = timings.connect; + timings.phases.dns = timings.lookup - timings.socket; + } + + timings.phases.tcp = timings.connect - timings.lookup; + + if (uploadFinished && !timings.upload) { + onUpload(); + } + }); + }); + + request.once('finish', () => { + uploadFinished = true; + + if (timings.connect) { + onUpload(); + } + }); + + request.once('response', response => { + timings.response = Date.now(); + timings.phases.firstByte = timings.response - timings.upload; + + handleError(response); + + response.once('end', () => { + timings.end = Date.now(); + timings.phases.download = timings.end - timings.response; + timings.phases.total = timings.end - timings.start; + }); + }); + + return timings; +}; diff --git a/node_modules/@types/color-name/LICENSE b/node_modules/@types/color-name/LICENSE new file mode 100644 index 00000000..21071075 --- /dev/null +++ b/node_modules/@types/color-name/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. 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/node_modules/@types/color-name/README.md b/node_modules/@types/color-name/README.md new file mode 100644 index 00000000..d08d108b --- /dev/null +++ b/node_modules/@types/color-name/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/color-name` + +# Summary +This package contains type definitions for color-name ( https://github.com/colorjs/color-name ). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/color-name + +Additional Details + * Last updated: Wed, 13 Feb 2019 16:16:48 GMT + * Dependencies: none + * Global values: none + +# Credits +These definitions were written by Junyoung Clare Jang . diff --git a/node_modules/@types/color-name/index.d.ts b/node_modules/@types/color-name/index.d.ts new file mode 100644 index 00000000..b5bff471 --- /dev/null +++ b/node_modules/@types/color-name/index.d.ts @@ -0,0 +1,161 @@ +// Type definitions for color-name 1.1 +// Project: https://github.com/colorjs/color-name +// Definitions by: Junyoung Clare Jang +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * Tuple of Red, Green, and Blue + * @example + * // Red = 55, Green = 70, Blue = 0 + * const rgb: RGB = [55, 70, 0]; + */ +export type RGB = [number, number, number]; + +export const aliceblue: RGB; +export const antiquewhite: RGB; +export const aqua: RGB; +export const aquamarine: RGB; +export const azure: RGB; +export const beige: RGB; +export const bisque: RGB; +export const black: RGB; +export const blanchedalmond: RGB; +export const blue: RGB; +export const blueviolet: RGB; +export const brown: RGB; +export const burlywood: RGB; +export const cadetblue: RGB; +export const chartreuse: RGB; +export const chocolate: RGB; +export const coral: RGB; +export const cornflowerblue: RGB; +export const cornsilk: RGB; +export const crimson: RGB; +export const cyan: RGB; +export const darkblue: RGB; +export const darkcyan: RGB; +export const darkgoldenrod: RGB; +export const darkgray: RGB; +export const darkgreen: RGB; +export const darkgrey: RGB; +export const darkkhaki: RGB; +export const darkmagenta: RGB; +export const darkolivegreen: RGB; +export const darkorange: RGB; +export const darkorchid: RGB; +export const darkred: RGB; +export const darksalmon: RGB; +export const darkseagreen: RGB; +export const darkslateblue: RGB; +export const darkslategray: RGB; +export const darkslategrey: RGB; +export const darkturquoise: RGB; +export const darkviolet: RGB; +export const deeppink: RGB; +export const deepskyblue: RGB; +export const dimgray: RGB; +export const dimgrey: RGB; +export const dodgerblue: RGB; +export const firebrick: RGB; +export const floralwhite: RGB; +export const forestgreen: RGB; +export const fuchsia: RGB; +export const gainsboro: RGB; +export const ghostwhite: RGB; +export const gold: RGB; +export const goldenrod: RGB; +export const gray: RGB; +export const green: RGB; +export const greenyellow: RGB; +export const grey: RGB; +export const honeydew: RGB; +export const hotpink: RGB; +export const indianred: RGB; +export const indigo: RGB; +export const ivory: RGB; +export const khaki: RGB; +export const lavender: RGB; +export const lavenderblush: RGB; +export const lawngreen: RGB; +export const lemonchiffon: RGB; +export const lightblue: RGB; +export const lightcoral: RGB; +export const lightcyan: RGB; +export const lightgoldenrodyellow: RGB; +export const lightgray: RGB; +export const lightgreen: RGB; +export const lightgrey: RGB; +export const lightpink: RGB; +export const lightsalmon: RGB; +export const lightseagreen: RGB; +export const lightskyblue: RGB; +export const lightslategray: RGB; +export const lightslategrey: RGB; +export const lightsteelblue: RGB; +export const lightyellow: RGB; +export const lime: RGB; +export const limegreen: RGB; +export const linen: RGB; +export const magenta: RGB; +export const maroon: RGB; +export const mediumaquamarine: RGB; +export const mediumblue: RGB; +export const mediumorchid: RGB; +export const mediumpurple: RGB; +export const mediumseagreen: RGB; +export const mediumslateblue: RGB; +export const mediumspringgreen: RGB; +export const mediumturquoise: RGB; +export const mediumvioletred: RGB; +export const midnightblue: RGB; +export const mintcream: RGB; +export const mistyrose: RGB; +export const moccasin: RGB; +export const navajowhite: RGB; +export const navy: RGB; +export const oldlace: RGB; +export const olive: RGB; +export const olivedrab: RGB; +export const orange: RGB; +export const orangered: RGB; +export const orchid: RGB; +export const palegoldenrod: RGB; +export const palegreen: RGB; +export const paleturquoise: RGB; +export const palevioletred: RGB; +export const papayawhip: RGB; +export const peachpuff: RGB; +export const peru: RGB; +export const pink: RGB; +export const plum: RGB; +export const powderblue: RGB; +export const purple: RGB; +export const rebeccapurple: RGB; +export const red: RGB; +export const rosybrown: RGB; +export const royalblue: RGB; +export const saddlebrown: RGB; +export const salmon: RGB; +export const sandybrown: RGB; +export const seagreen: RGB; +export const seashell: RGB; +export const sienna: RGB; +export const silver: RGB; +export const skyblue: RGB; +export const slateblue: RGB; +export const slategray: RGB; +export const slategrey: RGB; +export const snow: RGB; +export const springgreen: RGB; +export const steelblue: RGB; +export const tan: RGB; +export const teal: RGB; +export const thistle: RGB; +export const tomato: RGB; +export const turquoise: RGB; +export const violet: RGB; +export const wheat: RGB; +export const white: RGB; +export const whitesmoke: RGB; +export const yellow: RGB; +export const yellowgreen: RGB; diff --git a/node_modules/@types/color-name/package.json b/node_modules/@types/color-name/package.json new file mode 100644 index 00000000..e134d89a --- /dev/null +++ b/node_modules/@types/color-name/package.json @@ -0,0 +1,52 @@ +{ + "_from": "@types/color-name@^1.1.1", + "_id": "@types/color-name@1.1.1", + "_inBundle": false, + "_integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "_location": "/@types/color-name", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@types/color-name@^1.1.1", + "name": "@types/color-name", + "escapedName": "@types%2fcolor-name", + "scope": "@types", + "rawSpec": "^1.1.1", + "saveSpec": null, + "fetchSpec": "^1.1.1" + }, + "_requiredBy": [ + "/ansi-styles" + ], + "_resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "_shasum": "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0", + "_spec": "@types/color-name@^1.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\ansi-styles", + "bugs": { + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Junyoung Clare Jang", + "url": "https://github.com/Ailrun" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "TypeScript definitions for color-name", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped#readme", + "license": "MIT", + "main": "", + "name": "@types/color-name", + "repository": { + "type": "git", + "url": "git+https://github.com/DefinitelyTyped/DefinitelyTyped.git" + }, + "scripts": {}, + "typeScriptVersion": "2.0", + "types": "index", + "typesPublisherContentHash": "e22c6881e2dcf766e32142cbb82d9acf9c08258bdf0da8e76c8a448d1be44ac7", + "version": "1.1.1" +} diff --git a/node_modules/abbrev/LICENSE b/node_modules/abbrev/LICENSE new file mode 100644 index 00000000..9bcfa9d7 --- /dev/null +++ b/node_modules/abbrev/LICENSE @@ -0,0 +1,46 @@ +This software is dual-licensed under the ISC and MIT licenses. +You may use this software under EITHER of the following licenses. + +---------- + +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +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. + +---------- + +Copyright Isaac Z. Schlueter and 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/node_modules/abbrev/README.md b/node_modules/abbrev/README.md new file mode 100644 index 00000000..99746fe6 --- /dev/null +++ b/node_modules/abbrev/README.md @@ -0,0 +1,23 @@ +# abbrev-js + +Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). + +Usage: + + var abbrev = require("abbrev"); + abbrev("foo", "fool", "folding", "flop"); + + // returns: + { fl: 'flop' + , flo: 'flop' + , flop: 'flop' + , fol: 'folding' + , fold: 'folding' + , foldi: 'folding' + , foldin: 'folding' + , folding: 'folding' + , foo: 'foo' + , fool: 'fool' + } + +This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. diff --git a/node_modules/abbrev/abbrev.js b/node_modules/abbrev/abbrev.js new file mode 100644 index 00000000..7b1dc5d6 --- /dev/null +++ b/node_modules/abbrev/abbrev.js @@ -0,0 +1,61 @@ +module.exports = exports = abbrev.abbrev = abbrev + +abbrev.monkeyPatch = monkeyPatch + +function monkeyPatch () { + Object.defineProperty(Array.prototype, 'abbrev', { + value: function () { return abbrev(this) }, + enumerable: false, configurable: true, writable: true + }) + + Object.defineProperty(Object.prototype, 'abbrev', { + value: function () { return abbrev(Object.keys(this)) }, + enumerable: false, configurable: true, writable: true + }) +} + +function abbrev (list) { + if (arguments.length !== 1 || !Array.isArray(list)) { + list = Array.prototype.slice.call(arguments, 0) + } + for (var i = 0, l = list.length, args = [] ; i < l ; i ++) { + args[i] = typeof list[i] === "string" ? list[i] : String(list[i]) + } + + // sort them lexicographically, so that they're next to their nearest kin + args = args.sort(lexSort) + + // walk through each, seeing how much it has in common with the next and previous + var abbrevs = {} + , prev = "" + for (var i = 0, l = args.length ; i < l ; i ++) { + var current = args[i] + , next = args[i + 1] || "" + , nextMatches = true + , prevMatches = true + if (current === next) continue + for (var j = 0, cl = current.length ; j < cl ; j ++) { + var curChar = current.charAt(j) + nextMatches = nextMatches && curChar === next.charAt(j) + prevMatches = prevMatches && curChar === prev.charAt(j) + if (!nextMatches && !prevMatches) { + j ++ + break + } + } + prev = current + if (j === cl) { + abbrevs[current] = current + continue + } + for (var a = current.substr(0, j) ; j <= cl ; j ++) { + abbrevs[a] = current + a += current.charAt(j) + } + } + return abbrevs +} + +function lexSort (a, b) { + return a === b ? 0 : a > b ? 1 : -1 +} diff --git a/node_modules/abbrev/package.json b/node_modules/abbrev/package.json new file mode 100644 index 00000000..c8a26dcc --- /dev/null +++ b/node_modules/abbrev/package.json @@ -0,0 +1,56 @@ +{ + "_from": "abbrev@1", + "_id": "abbrev@1.1.1", + "_inBundle": false, + "_integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "_location": "/abbrev", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "abbrev@1", + "name": "abbrev", + "escapedName": "abbrev", + "rawSpec": "1", + "saveSpec": null, + "fetchSpec": "1" + }, + "_requiredBy": [ + "/nopt" + ], + "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "_shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8", + "_spec": "abbrev@1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\nopt", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me" + }, + "bugs": { + "url": "https://github.com/isaacs/abbrev-js/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Like ruby's abbrev module, but in js", + "devDependencies": { + "tap": "^10.1" + }, + "files": [ + "abbrev.js" + ], + "homepage": "https://github.com/isaacs/abbrev-js#readme", + "license": "ISC", + "main": "abbrev.js", + "name": "abbrev", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test.js --100" + }, + "version": "1.1.1" +} diff --git a/node_modules/accepts/HISTORY.md b/node_modules/accepts/HISTORY.md new file mode 100644 index 00000000..0bf04178 --- /dev/null +++ b/node_modules/accepts/HISTORY.md @@ -0,0 +1,236 @@ +1.3.7 / 2019-04-29 +================== + + * deps: negotiator@0.6.2 + - Fix sorting charset, encoding, and language with extra parameters + +1.3.6 / 2019-04-28 +================== + + * deps: mime-types@~2.1.24 + - deps: mime-db@~1.40.0 + +1.3.5 / 2018-02-28 +================== + + * deps: mime-types@~2.1.18 + - deps: mime-db@~1.33.0 + +1.3.4 / 2017-08-22 +================== + + * deps: mime-types@~2.1.16 + - deps: mime-db@~1.29.0 + +1.3.3 / 2016-05-02 +================== + + * deps: mime-types@~2.1.11 + - deps: mime-db@~1.23.0 + * deps: negotiator@0.6.1 + - perf: improve `Accept` parsing speed + - perf: improve `Accept-Charset` parsing speed + - perf: improve `Accept-Encoding` parsing speed + - perf: improve `Accept-Language` parsing speed + +1.3.2 / 2016-03-08 +================== + + * deps: mime-types@~2.1.10 + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + - deps: mime-db@~1.22.0 + +1.3.1 / 2016-01-19 +================== + + * deps: mime-types@~2.1.9 + - deps: mime-db@~1.21.0 + +1.3.0 / 2015-09-29 +================== + + * deps: mime-types@~2.1.7 + - deps: mime-db@~1.19.0 + * deps: negotiator@0.6.0 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Lazy-load modules from main entry point + - perf: delay type concatenation until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove closures getting spec properties + - perf: remove a closure from media type parsing + - perf: remove property delete from media type parsing + +1.2.13 / 2015-09-06 +=================== + + * deps: mime-types@~2.1.6 + - deps: mime-db@~1.18.0 + +1.2.12 / 2015-07-30 +=================== + + * deps: mime-types@~2.1.4 + - deps: mime-db@~1.16.0 + +1.2.11 / 2015-07-16 +=================== + + * deps: mime-types@~2.1.3 + - deps: mime-db@~1.15.0 + +1.2.10 / 2015-07-01 +=================== + + * deps: mime-types@~2.1.2 + - deps: mime-db@~1.14.0 + +1.2.9 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - perf: fix deopt during mapping + +1.2.8 / 2015-06-07 +================== + + * deps: mime-types@~2.1.0 + - deps: mime-db@~1.13.0 + * perf: avoid argument reassignment & argument slice + * perf: avoid negotiator recursive construction + * perf: enable strict mode + * perf: remove unnecessary bitwise operator + +1.2.7 / 2015-05-10 +================== + + * deps: negotiator@0.5.3 + - Fix media type parameter matching to be case-insensitive + +1.2.6 / 2015-05-07 +================== + + * deps: mime-types@~2.0.11 + - deps: mime-db@~1.9.1 + * deps: negotiator@0.5.2 + - Fix comparing media types with quoted values + - Fix splitting media types with quoted commas + +1.2.5 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - deps: mime-db@~1.8.0 + +1.2.4 / 2015-02-14 +================== + + * Support Node.js 0.6 + * deps: mime-types@~2.0.9 + - deps: mime-db@~1.7.0 + * deps: negotiator@0.5.1 + - Fix preference sorting to be stable for long acceptable lists + +1.2.3 / 2015-01-31 +================== + + * deps: mime-types@~2.0.8 + - deps: mime-db@~1.6.0 + +1.2.2 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - deps: mime-db@~1.5.0 + +1.2.1 / 2014-12-30 +================== + + * deps: mime-types@~2.0.5 + - deps: mime-db@~1.3.1 + +1.2.0 / 2014-12-19 +================== + + * deps: negotiator@0.5.0 + - Fix list return order when large accepted list + - Fix missing identity encoding when q=0 exists + - Remove dynamic building of Negotiator class + +1.1.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - deps: mime-db@~1.3.0 + +1.1.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - deps: mime-db@~1.2.0 + +1.1.2 / 2014-10-14 +================== + + * deps: negotiator@0.4.9 + - Fix error when media type has invalid parameter + +1.1.1 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - deps: mime-db@~1.1.0 + * deps: negotiator@0.4.8 + - Fix all negotiations to be case-insensitive + - Stable sort preferences of same quality according to client order + +1.1.0 / 2014-09-02 +================== + + * update `mime-types` + +1.0.7 / 2014-07-04 +================== + + * Fix wrong type returned from `type` when match after unknown extension + +1.0.6 / 2014-06-24 +================== + + * deps: negotiator@0.4.7 + +1.0.5 / 2014-06-20 +================== + + * fix crash when unknown extension given + +1.0.4 / 2014-06-19 +================== + + * use `mime-types` + +1.0.3 / 2014-06-11 +================== + + * deps: negotiator@0.4.6 + - Order by specificity when quality is the same + +1.0.2 / 2014-05-29 +================== + + * Fix interpretation when header not in request + * deps: pin negotiator@0.4.5 + +1.0.1 / 2014-01-18 +================== + + * Identity encoding isn't always acceptable + * deps: negotiator@~0.4.0 + +1.0.0 / 2013-12-27 +================== + + * Genesis diff --git a/node_modules/accepts/LICENSE b/node_modules/accepts/LICENSE new file mode 100644 index 00000000..06166077 --- /dev/null +++ b/node_modules/accepts/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/accepts/README.md b/node_modules/accepts/README.md new file mode 100644 index 00000000..66a2f540 --- /dev/null +++ b/node_modules/accepts/README.md @@ -0,0 +1,142 @@ +# accepts + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). +Extracted from [koa](https://www.npmjs.com/package/koa) for general use. + +In addition to negotiator, it allows: + +- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` + as well as `('text/html', 'application/json')`. +- Allows type shorthands such as `json`. +- Returns `false` when no types match +- Treats non-existent headers as `*` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install accepts +``` + +## API + + + +```js +var accepts = require('accepts') +``` + +### accepts(req) + +Create a new `Accepts` object for the given `req`. + +#### .charset(charsets) + +Return the first accepted charset. If nothing in `charsets` is accepted, +then `false` is returned. + +#### .charsets() + +Return the charsets that the request accepts, in the order of the client's +preference (most preferred first). + +#### .encoding(encodings) + +Return the first accepted encoding. If nothing in `encodings` is accepted, +then `false` is returned. + +#### .encodings() + +Return the encodings that the request accepts, in the order of the client's +preference (most preferred first). + +#### .language(languages) + +Return the first accepted language. If nothing in `languages` is accepted, +then `false` is returned. + +#### .languages() + +Return the languages that the request accepts, in the order of the client's +preference (most preferred first). + +#### .type(types) + +Return the first accepted type (and it is returned as the same text as what +appears in the `types` array). If nothing in `types` is accepted, then `false` +is returned. + +The `types` array can contain full MIME types or file extensions. Any value +that is not a full MIME types is passed to `require('mime-types').lookup`. + +#### .types() + +Return the types that the request accepts, in the order of the client's +preference (most preferred first). + +## Examples + +### Simple type negotiation + +This simple example shows how to use `accepts` to return a different typed +respond body based on what the client wants to accept. The server lists it's +preferences in order and will get back the best match between the client and +server. + +```js +var accepts = require('accepts') +var http = require('http') + +function app (req, res) { + var accept = accepts(req) + + // the order of this list is significant; should be server preferred order + switch (accept.type(['json', 'html'])) { + case 'json': + res.setHeader('Content-Type', 'application/json') + res.write('{"hello":"world!"}') + break + case 'html': + res.setHeader('Content-Type', 'text/html') + res.write('hello, world!') + break + default: + // the fallback is text/plain, so no need to specify it above + res.setHeader('Content-Type', 'text/plain') + res.write('hello, world!') + break + } + + res.end() +} + +http.createServer(app).listen(3000) +``` + +You can test this out with the cURL program: +```sh +curl -I -H'Accept: text/html' http://localhost:3000/ +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master +[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master +[node-version-image]: https://badgen.net/npm/node/accepts +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/accepts +[npm-url]: https://npmjs.org/package/accepts +[npm-version-image]: https://badgen.net/npm/v/accepts +[travis-image]: https://badgen.net/travis/jshttp/accepts/master +[travis-url]: https://travis-ci.org/jshttp/accepts diff --git a/node_modules/accepts/index.js b/node_modules/accepts/index.js new file mode 100644 index 00000000..e9b2f63f --- /dev/null +++ b/node_modules/accepts/index.js @@ -0,0 +1,238 @@ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Negotiator = require('negotiator') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = Accepts + +/** + * Create a new Accepts object for the given req. + * + * @param {object} req + * @public + */ + +function Accepts (req) { + if (!(this instanceof Accepts)) { + return new Accepts(req) + } + + this.headers = req.headers + this.negotiator = new Negotiator(req) +} + +/** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json" or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * this.types('html'); + * // => "html" + * + * // Accept: text/*, application/json + * this.types('html'); + * // => "html" + * this.types('text/html'); + * // => "text/html" + * this.types('json', 'text'); + * // => "json" + * this.types('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * this.types('image/png'); + * this.types('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * this.types(['html', 'json']); + * this.types('html', 'json'); + * // => "json" + * + * @param {String|Array} types... + * @return {String|Array|Boolean} + * @public + */ + +Accepts.prototype.type = +Accepts.prototype.types = function (types_) { + var types = types_ + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i] + } + } + + // no types, return all requested types + if (!types || types.length === 0) { + return this.negotiator.mediaTypes() + } + + // no accept header, return first given type + if (!this.headers.accept) { + return types[0] + } + + var mimes = types.map(extToMime) + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) + var first = accepts[0] + + return first + ? types[mimes.indexOf(first)] + : false +} + +/** + * Return accepted encodings or best fit based on `encodings`. + * + * Given `Accept-Encoding: gzip, deflate` + * an array sorted by quality is returned: + * + * ['gzip', 'deflate'] + * + * @param {String|Array} encodings... + * @return {String|Array} + * @public + */ + +Accepts.prototype.encoding = +Accepts.prototype.encodings = function (encodings_) { + var encodings = encodings_ + + // support flattened arguments + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length) + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i] + } + } + + // no encodings, return all requested encodings + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings() + } + + return this.negotiator.encodings(encodings)[0] || false +} + +/** + * Return accepted charsets or best fit based on `charsets`. + * + * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` + * an array sorted by quality is returned: + * + * ['utf-8', 'utf-7', 'iso-8859-1'] + * + * @param {String|Array} charsets... + * @return {String|Array} + * @public + */ + +Accepts.prototype.charset = +Accepts.prototype.charsets = function (charsets_) { + var charsets = charsets_ + + // support flattened arguments + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length) + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i] + } + } + + // no charsets, return all requested charsets + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets() + } + + return this.negotiator.charsets(charsets)[0] || false +} + +/** + * Return accepted languages or best fit based on `langs`. + * + * Given `Accept-Language: en;q=0.8, es, pt` + * an array sorted by quality is returned: + * + * ['es', 'pt', 'en'] + * + * @param {String|Array} langs... + * @return {Array|String} + * @public + */ + +Accepts.prototype.lang = +Accepts.prototype.langs = +Accepts.prototype.language = +Accepts.prototype.languages = function (languages_) { + var languages = languages_ + + // support flattened arguments + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length) + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i] + } + } + + // no languages, return all requested languages + if (!languages || languages.length === 0) { + return this.negotiator.languages() + } + + return this.negotiator.languages(languages)[0] || false +} + +/** + * Convert extnames to mime. + * + * @param {String} type + * @return {String} + * @private + */ + +function extToMime (type) { + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if mime is valid. + * + * @param {String} type + * @return {String} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git a/node_modules/accepts/package.json b/node_modules/accepts/package.json new file mode 100644 index 00000000..5b62d55f --- /dev/null +++ b/node_modules/accepts/package.json @@ -0,0 +1,86 @@ +{ + "_from": "accepts@~1.3.7", + "_id": "accepts@1.3.7", + "_inBundle": false, + "_integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "_location": "/accepts", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "accepts@~1.3.7", + "name": "accepts", + "escapedName": "accepts", + "rawSpec": "~1.3.7", + "saveSpec": null, + "fetchSpec": "~1.3.7" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "_shasum": "531bc726517a3b2b41f850021c6cc15eaab507cd", + "_spec": "accepts@~1.3.7", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/accepts/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "deprecated": false, + "description": "Higher-level content negotiation", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.0.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/accepts#readme", + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ], + "license": "MIT", + "name": "accepts", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/accepts.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "version": "1.3.7" +} diff --git a/node_modules/ajv/.tonic_example.js b/node_modules/ajv/.tonic_example.js new file mode 100644 index 00000000..aa11812d --- /dev/null +++ b/node_modules/ajv/.tonic_example.js @@ -0,0 +1,20 @@ +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/node_modules/ajv/LICENSE b/node_modules/ajv/LICENSE new file mode 100644 index 00000000..96ee7199 --- /dev/null +++ b/node_modules/ajv/LICENSE @@ -0,0 +1,22 @@ +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/node_modules/ajv/README.md b/node_modules/ajv/README.md new file mode 100644 index 00000000..3a88820d --- /dev/null +++ b/node_modules/ajv/README.md @@ -0,0 +1,1477 @@ +Ajv logo + +# Ajv: Another JSON Schema Validator + +The fastest JSON Schema validator for Node.js and browser. Supports draft-04/06/07. + +[![Build Status](https://travis-ci.org/ajv-validator/ajv.svg?branch=master)](https://travis-ci.org/ajv-validator/ajv) +[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv) +[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv) +[![Coverage Status](https://coveralls.io/repos/github/ajv-validator/ajv/badge.svg?branch=master)](https://coveralls.io/github/ajv-validator/ajv?branch=master) +[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv) +[![GitHub Sponsors](https://img.shields.io/badge/$-sponsors-brightgreen)](https://github.com/sponsors/epoberezkin) + + +## Mozilla MOSS grant and OpenJS Foundation + +[](https://www.mozilla.org/en-US/moss/)     [](https://openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/) + +Ajv has been awarded a grant from Mozilla’s [Open Source Support (MOSS) program](https://www.mozilla.org/en-US/moss/) in the “Foundational Technology” track! It will sponsor the development of Ajv support of [JSON Schema version 2019-09](https://tools.ietf.org/html/draft-handrews-json-schema-02) and of [JSON Type Definition](https://tools.ietf.org/html/draft-ucarion-json-type-definition-04). + +Ajv also joined [OpenJS Foundation](https://openjsf.org/) – having this support will help ensure the longevity and stability of Ajv for all its users. + +This [blog post](https://www.poberezkin.com/posts/2020-08-14-ajv-json-validator-mozilla-open-source-grant-openjs-foundation.html) has more details. + +I am looking for the long term maintainers of Ajv – working with [ReadySet](https://www.thereadyset.co/), also sponsored by Mozilla, to establish clear guidelines for the role of a "maintainer" and the contribution standards, and to encourage a wider, more inclusive, contribution from the community. + + +## Please [sponsor Ajv development](https://github.com/sponsors/epoberezkin) + +Since I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant! + +Your continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released. + +Please sponsor Ajv via: +- [GitHub sponsors page](https://github.com/sponsors/epoberezkin) (GitHub will match it) +- [Ajv Open Collective️](https://opencollective.com/ajv) + +Thank you. + + +#### Open Collective sponsors + + + + + + + + + + + + + + + +## Using version 6 + +[JSON Schema draft-07](http://json-schema.org/latest/json-schema-validation.html) is published. + +[Ajv version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0) that supports draft-07 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas, draft-06 schemas will be supported without changes). + +__Please note__: To use Ajv with draft-06 schemas you need to explicitly add the meta-schema to the validator instance: + +```javascript +ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json')); +``` + +To use Ajv with draft-04 schemas in addition to explicitly adding meta-schema you also need to use option schemaId: + +```javascript +var ajv = new Ajv({schemaId: 'id'}); +// If you want to use both draft-04 and draft-06/07 schemas: +// var ajv = new Ajv({schemaId: 'auto'}); +ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json')); +``` + + +## Contents + +- [Performance](#performance) +- [Features](#features) +- [Getting started](#getting-started) +- [Frequently Asked Questions](https://github.com/ajv-validator/ajv/blob/master/FAQ.md) +- [Using in browser](#using-in-browser) + - [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp) +- [Command line interface](#command-line-interface) +- Validation + - [Keywords](#validation-keywords) + - [Annotation keywords](#annotation-keywords) + - [Formats](#formats) + - [Combining schemas with $ref](#ref) + - [$data reference](#data-reference) + - NEW: [$merge and $patch keywords](#merge-and-patch-keywords) + - [Defining custom keywords](#defining-custom-keywords) + - [Asynchronous schema compilation](#asynchronous-schema-compilation) + - [Asynchronous validation](#asynchronous-validation) +- [Security considerations](#security-considerations) + - [Security contact](#security-contact) + - [Untrusted schemas](#untrusted-schemas) + - [Circular references in objects](#circular-references-in-javascript-objects) + - [Trusted schemas](#security-risks-of-trusted-schemas) + - [ReDoS attack](#redos-attack) +- Modifying data during validation + - [Filtering data](#filtering-data) + - [Assigning defaults](#assigning-defaults) + - [Coercing data types](#coercing-data-types) +- API + - [Methods](#api) + - [Options](#options) + - [Validation errors](#validation-errors) +- [Plugins](#plugins) +- [Related packages](#related-packages) +- [Some packages using Ajv](#some-packages-using-ajv) +- [Tests, Contributing, Changes history](#tests) +- [Support, Code of conduct, License](#open-source-software-support) + + +## Performance + +Ajv generates code using [doT templates](https://github.com/olado/doT) to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization. + +Currently Ajv is the fastest and the most standard compliant validator according to these benchmarks: + +- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place +- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster +- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html) +- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html) + + +Performance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark): + +[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance) + + +## Features + +- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) and draft-04 standards: + - all validation keywords (see [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md)) + - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available) + - support of circular references between schemas + - correct string lengths for strings with unicode pairs (can be turned off) + - [formats](#formats) defined by JSON Schema draft-07 standard and custom formats (can be turned off) + - [validates schemas against meta-schema](#api-validateschema) +- supports [browsers](#using-in-browser) and Node.js 0.10-14.x +- [asynchronous loading](#asynchronous-schema-compilation) of referenced schemas during compilation +- "All errors" validation mode with [option allErrors](#options) +- [error messages with parameters](#validation-errors) describing error reasons to allow creating custom error messages +- i18n error messages support with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package +- [filtering data](#filtering-data) from additional properties +- [assigning defaults](#assigning-defaults) to missing properties and items +- [coercing data](#coercing-data-types) to the types specified in `type` keywords +- [custom keywords](#defining-custom-keywords) +- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else` +- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail). +- keywords `switch`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package +- [$data reference](#data-reference) to use values from the validated data as values for the schema keywords +- [asynchronous validation](#asynchronous-validation) of custom formats and keywords + + +## Install + +``` +npm install ajv +``` + + +## Getting started + +Try it in the Node.js REPL: https://tonicdev.com/npm/ajv + + +The fastest validation call: + +```javascript +// Node.js require: +var Ajv = require('ajv'); +// or ESM/TypeScript import +import Ajv from 'ajv'; + +var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true} +var validate = ajv.compile(schema); +var valid = validate(data); +if (!valid) console.log(validate.errors); +``` + +or with less code + +```javascript +// ... +var valid = ajv.validate(schema, data); +if (!valid) console.log(ajv.errors); +// ... +``` + +or + +```javascript +// ... +var valid = ajv.addSchema(schema, 'mySchema') + .validate('mySchema', data); +if (!valid) console.log(ajv.errorsText()); +// ... +``` + +See [API](#api) and [Options](#options) for more details. + +Ajv compiles schemas to functions and caches them in all cases (using schema serialized with [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) or a custom function as a key), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again. + +The best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call). + +__Please note__: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors) + +__Note for TypeScript users__: `ajv` provides its own TypeScript declarations +out of the box, so you don't need to install the deprecated `@types/ajv` +module. + + +## Using in browser + +You can require Ajv directly from the code you browserify - in this case Ajv will be a part of your bundle. + +If you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)). + +Then you need to load Ajv in the browser: +```html + +``` + +This bundle can be used with different module systems; it creates global `Ajv` if no module system is found. + +The browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv). + +Ajv is tested with these browsers: + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin) + +__Please note__: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/ajv-validator/ajv/issues/234)). + + +### Ajv and Content Security Policies (CSP) + +If you're using Ajv to compile a schema (the typical use) in a browser document that is loaded with a Content Security Policy (CSP), that policy will require a `script-src` directive that includes the value `'unsafe-eval'`. +:warning: NOTE, however, that `unsafe-eval` is NOT recommended in a secure CSP[[1]](https://developer.chrome.com/extensions/contentSecurityPolicy#relaxing-eval), as it has the potential to open the document to cross-site scripting (XSS) attacks. + +In order to make use of Ajv without easing your CSP, you can [pre-compile a schema using the CLI](https://github.com/ajv-validator/ajv-cli#compile-schemas). This will transpile the schema JSON into a JavaScript file that exports a `validate` function that works simlarly to a schema compiled at runtime. + +Note that pre-compilation of schemas is performed using [ajv-pack](https://github.com/ajv-validator/ajv-pack) and there are [some limitations to the schema features it can compile](https://github.com/ajv-validator/ajv-pack#limitations). A successfully pre-compiled schema is equivalent to the same schema compiled at runtime. + + +## Command line interface + +CLI is available as a separate npm package [ajv-cli](https://github.com/ajv-validator/ajv-cli). It supports: + +- compiling JSON Schemas to test their validity +- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/ajv-validator/ajv-pack)) +- migrate schemas to draft-07 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate)) +- validating data file(s) against JSON Schema +- testing expected validity of data against JSON Schema +- referenced schemas +- custom meta-schemas +- files in JSON, JSON5, YAML, and JavaScript format +- all Ajv options +- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format + + +## Validation keywords + +Ajv supports all validation keywords from draft-07 of JSON Schema standard: + +- [type](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#type) +- [for numbers](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf +- [for strings](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format +- [for arrays](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems, [contains](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#contains) +- [for objects](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minProperties, required, properties, patternProperties, additionalProperties, dependencies, [propertyNames](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#propertynames) +- [for all types](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, [const](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#const) +- [compound keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#compound-keywords) - not, oneOf, anyOf, allOf, [if/then/else](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#ifthenelse) + +With [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package Ajv also supports validation keywords from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON Schema standard: + +- [patternRequired](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#patternrequired-proposed) - like `required` but with patterns that some property should match. +- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-proposed) - setting limits for date, time, etc. + +See [JSON Schema validation keywords](https://github.com/ajv-validator/ajv/blob/master/KEYWORDS.md) for more details. + + +## Annotation keywords + +JSON Schema specification defines several annotation keywords that describe schema itself but do not perform any validation. + +- `title` and `description`: information about the data represented by that schema +- `$comment` (NEW in draft-07): information for developers. With option `$comment` Ajv logs or passes the comment string to the user-supplied function. See [Options](#options). +- `default`: a default value of the data instance, see [Assigning defaults](#assigning-defaults). +- `examples` (NEW in draft-06): an array of data instances. Ajv does not check the validity of these instances against the schema. +- `readOnly` and `writeOnly` (NEW in draft-07): marks data-instance as read-only or write-only in relation to the source of the data (database, api, etc.). +- `contentEncoding`: [RFC 2045](https://tools.ietf.org/html/rfc2045#section-6.1 ), e.g., "base64". +- `contentMediaType`: [RFC 2046](https://tools.ietf.org/html/rfc2046), e.g., "image/png". + +__Please note__: Ajv does not implement validation of the keywords `examples`, `contentEncoding` and `contentMediaType` but it reserves them. If you want to create a plugin that implements some of them, it should remove these keywords from the instance. + + +## Formats + +Ajv implements formats defined by JSON Schema specification and several other formats. It is recommended NOT to use "format" keyword implementations with untrusted data, as they use potentially unsafe regular expressions - see [ReDoS attack](#redos-attack). + +__Please note__: if you need to use "format" keyword to validate untrusted data, you MUST assess their suitability and safety for your validation scenarios. + +The following formats are implemented for string validation with "format" keyword: + +- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6). +- _time_: time with optional time-zone. +- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)). +- _uri_: full URI. +- _uri-reference_: URI reference, including full and relative URIs. +- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570) +- _url_ (deprecated): [URL record](https://url.spec.whatwg.org/#concept-url). +- _email_: email address. +- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5). +- _ipv4_: IP address v4. +- _ipv6_: IP address v6. +- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor. +- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122). +- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901). +- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00). + +__Please note__: JSON Schema draft-07 also defines formats `iri`, `iri-reference`, `idn-hostname` and `idn-email` for URLs, hostnames and emails with international characters. Ajv does not implement these formats. If you create Ajv plugin that implements them please make a PR to mention this plugin here. + +There are two modes of format validation: `fast` and `full`. This mode affects formats `date`, `time`, `date-time`, `uri`, `uri-reference`, and `email`. See [Options](#options) for details. + +You can add additional formats and replace any of the formats above using [addFormat](#api-addformat) method. + +The option `unknownFormats` allows changing the default behaviour when an unknown format is encountered. In this case Ajv can either fail schema compilation (default) or ignore it (default in versions before 5.0.0). You also can allow specific format(s) that will be ignored. See [Options](#options) for details. + +You can find regular expressions used for format validation and the sources that were used in [formats.js](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js). + + +## Combining schemas with $ref + +You can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword. + +Example: + +```javascript +var schema = { + "$id": "http://example.com/schemas/schema.json", + "type": "object", + "properties": { + "foo": { "$ref": "defs.json#/definitions/int" }, + "bar": { "$ref": "defs.json#/definitions/str" } + } +}; + +var defsSchema = { + "$id": "http://example.com/schemas/defs.json", + "definitions": { + "int": { "type": "integer" }, + "str": { "type": "string" } + } +}; +``` + +Now to compile your schema you can either pass all schemas to Ajv instance: + +```javascript +var ajv = new Ajv({schemas: [schema, defsSchema]}); +var validate = ajv.getSchema('http://example.com/schemas/schema.json'); +``` + +or use `addSchema` method: + +```javascript +var ajv = new Ajv; +var validate = ajv.addSchema(defsSchema) + .compile(schema); +``` + +See [Options](#options) and [addSchema](#api) method. + +__Please note__: +- `$ref` is resolved as the uri-reference using schema $id as the base URI (see the example). +- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.). +- You don't have to host your schema files at the URIs that you use as schema $id. These URIs are only used to identify the schemas, and according to JSON Schema specification validators should not expect to be able to download the schemas from these URIs. +- The actual location of the schema file in the file system is not used. +- You can pass the identifier of the schema as the second parameter of `addSchema` method or as a property name in `schemas` option. This identifier can be used instead of (or in addition to) schema $id. +- You cannot have the same $id (or the schema identifier) used for more than one schema - the exception will be thrown. +- You can implement dynamic resolution of the referenced schemas using `compileAsync` method. In this way you can store schemas in any system (files, web, database, etc.) and reference them without explicitly adding to Ajv instance. See [Asynchronous schema compilation](#asynchronous-schema-compilation). + + +## $data reference + +With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema-org/json-schema-spec/issues/51) for more information about how it works. + +`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems. + +The value of "$data" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the $data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema). + +Examples. + +This schema requires that the value in property `smaller` is less or equal than the value in the property larger: + +```javascript +var ajv = new Ajv({$data: true}); + +var schema = { + "properties": { + "smaller": { + "type": "number", + "maximum": { "$data": "1/larger" } + }, + "larger": { "type": "number" } + } +}; + +var validData = { + smaller: 5, + larger: 7 +}; + +ajv.validate(schema, validData); // true +``` + +This schema requires that the properties have the same format as their field names: + +```javascript +var schema = { + "additionalProperties": { + "type": "string", + "format": { "$data": "0#" } + } +}; + +var validData = { + 'date-time': '1963-06-19T08:30:06.283185Z', + email: 'joe.bloggs@example.com' +} +``` + +`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not "number" for maximum keyword) the validation fails. + + +## $merge and $patch keywords + +With the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON Schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902). + +To add keywords `$merge` and `$patch` to Ajv instance use this code: + +```javascript +require('ajv-merge-patch')(ajv); +``` + +Examples. + +Using `$merge`: + +```json +{ + "$merge": { + "source": { + "type": "object", + "properties": { "p": { "type": "string" } }, + "additionalProperties": false + }, + "with": { + "properties": { "q": { "type": "number" } } + } + } +} +``` + +Using `$patch`: + +```json +{ + "$patch": { + "source": { + "type": "object", + "properties": { "p": { "type": "string" } }, + "additionalProperties": false + }, + "with": [ + { "op": "add", "path": "/properties/q", "value": { "type": "number" } } + ] + } +} +``` + +The schemas above are equivalent to this schema: + +```json +{ + "type": "object", + "properties": { + "p": { "type": "string" }, + "q": { "type": "number" } + }, + "additionalProperties": false +} +``` + +The properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema. + +See the package [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) for more information. + + +## Defining custom keywords + +The advantages of using custom keywords are: + +- allow creating validation scenarios that cannot be expressed using JSON Schema +- simplify your schemas +- help bringing a bigger part of the validation logic to your schemas +- make your schemas more expressive, less verbose and closer to your application domain +- implement custom data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated + +If a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result). + +The concerns you have to be aware of when extending JSON Schema standard with custom keywords are the portability and understanding of your schemas. You will have to support these custom keywords on other platforms and to properly document these keywords so that everybody can understand them in your schemas. + +You can define custom keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords. + +Ajv allows defining keywords with: +- validation function +- compilation function +- macro function +- inline compilation function that should return code (as string) that will be inlined in the currently compiled schema. + +Example. `range` and `exclusiveRange` keywords using compiled schema: + +```javascript +ajv.addKeyword('range', { + type: 'number', + compile: function (sch, parentSchema) { + var min = sch[0]; + var max = sch[1]; + + return parentSchema.exclusiveRange === true + ? function (data) { return data > min && data < max; } + : function (data) { return data >= min && data <= max; } + } +}); + +var schema = { "range": [2, 4], "exclusiveRange": true }; +var validate = ajv.compile(schema); +console.log(validate(2.01)); // true +console.log(validate(3.99)); // true +console.log(validate(2)); // false +console.log(validate(4)); // false +``` + +Several custom keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package - they can be used for your schemas and as a starting point for your own custom keywords. + +See [Defining custom keywords](https://github.com/ajv-validator/ajv/blob/master/CUSTOM.md) for more details. + + +## Asynchronous schema compilation + +During asynchronous compilation remote references are loaded using supplied function. See `compileAsync` [method](#api-compileAsync) and `loadSchema` [option](#options). + +Example: + +```javascript +var ajv = new Ajv({ loadSchema: loadSchema }); + +ajv.compileAsync(schema).then(function (validate) { + var valid = validate(data); + // ... +}); + +function loadSchema(uri) { + return request.json(uri).then(function (res) { + if (res.statusCode >= 400) + throw new Error('Loading error: ' + res.statusCode); + return res.body; + }); +} +``` + +__Please note__: [Option](#options) `missingRefs` should NOT be set to `"ignore"` or `"fail"` for asynchronous compilation to work. + + +## Asynchronous validation + +Example in Node.js REPL: https://tonicdev.com/esp/ajv-asynchronous-validation + +You can define custom formats and keywords that perform validation asynchronously by accessing database or some other service. You should add `async: true` in the keyword or format definition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [Defining custom keywords](#defining-custom-keywords)). + +If your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `"$async": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation. + +__Please note__: all asynchronous subschemas that are referenced from the current or other schemas should have `"$async": true` keyword as well, otherwise the schema compilation will fail. + +Validation function for an asynchronous custom format/keyword should return a promise that resolves with `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return custom errors from the keyword function). + +Ajv compiles asynchronous schemas to [es7 async functions](http://tc39.github.io/ecmascript-asyncawait/) that can optionally be transpiled with [nodent](https://github.com/MatAtBread/nodent). Async functions are supported in Node.js 7+ and all modern browsers. You can also supply any other transpiler as a function via `processCode` option. See [Options](#options). + +The compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas. + +Validation result will be a promise that resolves with validated data or rejects with an exception `Ajv.ValidationError` that contains the array of validation errors in `errors` property. + + +Example: + +```javascript +var ajv = new Ajv; +// require('ajv-async')(ajv); + +ajv.addKeyword('idExists', { + async: true, + type: 'number', + validate: checkIdExists +}); + + +function checkIdExists(schema, data) { + return knex(schema.table) + .select('id') + .where('id', data) + .then(function (rows) { + return !!rows.length; // true if record is found + }); +} + +var schema = { + "$async": true, + "properties": { + "userId": { + "type": "integer", + "idExists": { "table": "users" } + }, + "postId": { + "type": "integer", + "idExists": { "table": "posts" } + } + } +}; + +var validate = ajv.compile(schema); + +validate({ userId: 1, postId: 19 }) +.then(function (data) { + console.log('Data is valid', data); // { userId: 1, postId: 19 } +}) +.catch(function (err) { + if (!(err instanceof Ajv.ValidationError)) throw err; + // data is invalid + console.log('Validation errors:', err.errors); +}); +``` + +### Using transpilers with asynchronous validation functions. + +[ajv-async](https://github.com/ajv-validator/ajv-async) uses [nodent](https://github.com/MatAtBread/nodent) to transpile async functions. To use another transpiler you should separately install it (or load its bundle in the browser). + + +#### Using nodent + +```javascript +var ajv = new Ajv; +require('ajv-async')(ajv); +// in the browser if you want to load ajv-async bundle separately you can: +// window.ajvAsync(ajv); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + + +#### Using other transpilers + +```javascript +var ajv = new Ajv({ processCode: transpileFunc }); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + +See [Options](#options). + + +## Security considerations + +JSON Schema, if properly used, can replace data sanitisation. It doesn't replace other API security considerations. It also introduces additional security aspects to consider. + + +##### Security contact + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues. + + +##### Untrusted schemas + +Ajv treats JSON schemas as trusted as your application code. This security model is based on the most common use case, when the schemas are static and bundled together with the application. + +If your schemas are received from untrusted sources (or generated from untrusted data) there are several scenarios you need to prevent: +- compiling schemas can cause stack overflow (if they are too deep) +- compiling schemas can be slow (e.g. [#557](https://github.com/ajv-validator/ajv/issues/557)) +- validating certain data can be slow + +It is difficult to predict all the scenarios, but at the very least it may help to limit the size of untrusted schemas (e.g. limit JSON string length) and also the maximum schema object depth (that can be high for relatively small JSON strings). You also may want to mitigate slow regular expressions in `pattern` and `patternProperties` keywords. + +Regardless the measures you take, using untrusted schemas increases security risks. + + +##### Circular references in JavaScript objects + +Ajv does not support schemas and validated data that have circular references in objects. See [issue #802](https://github.com/ajv-validator/ajv/issues/802). + +An attempt to compile such schemas or validate such data would cause stack overflow (or will not complete in case of asynchronous validation). Depending on the parser you use, untrusted data can lead to circular references. + + +##### Security risks of trusted schemas + +Some keywords in JSON Schemas can lead to very slow validation for certain data. These keywords include (but may be not limited to): + +- `pattern` and `format` for large strings - in some cases using `maxLength` can help mitigate it, but certain regular expressions can lead to exponential validation time even with relatively short strings (see [ReDoS attack](#redos-attack)). +- `patternProperties` for large property names - use `propertyNames` to mitigate, but some regular expressions can have exponential evaluation time as well. +- `uniqueItems` for large non-scalar arrays - use `maxItems` to mitigate + +__Please note__: The suggestions above to prevent slow validation would only work if you do NOT use `allErrors: true` in production code (using it would continue validation after validation errors). + +You can validate your JSON schemas against [this meta-schema](https://github.com/ajv-validator/ajv/blob/master/lib/refs/json-schema-secure.json) to check that these recommendations are followed: + +```javascript +const isSchemaSecure = ajv.compile(require('ajv/lib/refs/json-schema-secure.json')); + +const schema1 = {format: 'email'}; +isSchemaSecure(schema1); // false + +const schema2 = {format: 'email', maxLength: MAX_LENGTH}; +isSchemaSecure(schema2); // true +``` + +__Please note__: following all these recommendation is not a guarantee that validation of untrusted data is safe - it can still lead to some undesirable results. + + +##### Content Security Policies (CSP) +See [Ajv and Content Security Policies (CSP)](#ajv-and-content-security-policies-csp) + + +## ReDoS attack + +Certain regular expressions can lead to the exponential evaluation time even with relatively short strings. + +Please assess the regular expressions you use in the schemas on their vulnerability to this attack - see [safe-regex](https://github.com/substack/safe-regex), for example. + +__Please note__: some formats that Ajv implements use [regular expressions](https://github.com/ajv-validator/ajv/blob/master/lib/compile/formats.js) that can be vulnerable to ReDoS attack, so if you use Ajv to validate data from untrusted sources __it is strongly recommended__ to consider the following: + +- making assessment of "format" implementations in Ajv. +- using `format: 'fast'` option that simplifies some of the regular expressions (although it does not guarantee that they are safe). +- replacing format implementations provided by Ajv with your own implementations of "format" keyword that either uses different regular expressions or another approach to format validation. Please see [addFormat](#api-addformat) method. +- disabling format validation by ignoring "format" keyword with option `format: false` + +Whatever mitigation you choose, please assume all formats provided by Ajv as potentially unsafe and make your own assessment of their suitability for your validation scenarios. + + +## Filtering data + +With [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation. + +This option modifies original data. + +Example: + +```javascript +var ajv = new Ajv({ removeAdditional: true }); +var schema = { + "additionalProperties": false, + "properties": { + "foo": { "type": "number" }, + "bar": { + "additionalProperties": { "type": "number" }, + "properties": { + "baz": { "type": "string" } + } + } + } +} + +var data = { + "foo": 0, + "additional1": 1, // will be removed; `additionalProperties` == false + "bar": { + "baz": "abc", + "additional2": 2 // will NOT be removed; `additionalProperties` != false + }, +} + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 0, "bar": { "baz": "abc", "additional2": 2 } +``` + +If `removeAdditional` option in the example above were `"all"` then both `additional1` and `additional2` properties would have been removed. + +If the option were `"failing"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed). + +__Please note__: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example: + +```json +{ + "type": "object", + "oneOf": [ + { + "properties": { + "foo": { "type": "string" } + }, + "required": [ "foo" ], + "additionalProperties": false + }, + { + "properties": { + "bar": { "type": "integer" } + }, + "required": [ "bar" ], + "additionalProperties": false + } + ] +} +``` + +The intention of the schema above is to allow objects with either the string property "foo" or the integer property "bar", but not with both and not with any other properties. + +With the option `removeAdditional: true` the validation will pass for the object `{ "foo": "abc"}` but will fail for the object `{"bar": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema). + +While this behaviour is unexpected (issues [#129](https://github.com/ajv-validator/ajv/issues/129), [#134](https://github.com/ajv-validator/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way: + +```json +{ + "type": "object", + "properties": { + "foo": { "type": "string" }, + "bar": { "type": "integer" } + }, + "additionalProperties": false, + "oneOf": [ + { "required": [ "foo" ] }, + { "required": [ "bar" ] } + ] +} +``` + +The schema above is also more efficient - it will compile into a faster function. + + +## Assigning defaults + +With [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items. + +With the option value `"empty"` properties and items equal to `null` or `""` (empty string) will be considered missing and assigned defaults. + +This option modifies original data. + +__Please note__: the default value is inserted in the generated validation code as a literal, so the value inserted in the data will be the deep clone of the default in the schema. + + +Example 1 (`default` in `properties`): + +```javascript +var ajv = new Ajv({ useDefaults: true }); +var schema = { + "type": "object", + "properties": { + "foo": { "type": "number" }, + "bar": { "type": "string", "default": "baz" } + }, + "required": [ "foo", "bar" ] +}; + +var data = { "foo": 1 }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 1, "bar": "baz" } +``` + +Example 2 (`default` in `items`): + +```javascript +var schema = { + "type": "array", + "items": [ + { "type": "number" }, + { "type": "string", "default": "foo" } + ] +} + +var data = [ 1 ]; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // [ 1, "foo" ] +``` + +`default` keywords in other cases are ignored: + +- not in `properties` or `items` subschemas +- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/ajv-validator/ajv/issues/42)) +- in `if` subschema of `switch` keyword +- in schemas generated by custom macro keywords + +The [`strictDefaults` option](#options) customizes Ajv's behavior for the defaults that Ajv ignores (`true` raises an error, and `"log"` outputs a warning). + + +## Coercing data types + +When you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards. + +This option modifies original data. + +__Please note__: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value. + + +Example 1: + +```javascript +var ajv = new Ajv({ coerceTypes: true }); +var schema = { + "type": "object", + "properties": { + "foo": { "type": "number" }, + "bar": { "type": "boolean" } + }, + "required": [ "foo", "bar" ] +}; + +var data = { "foo": "1", "bar": "false" }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 1, "bar": false } +``` + +Example 2 (array coercions): + +```javascript +var ajv = new Ajv({ coerceTypes: 'array' }); +var schema = { + "properties": { + "foo": { "type": "array", "items": { "type": "number" } }, + "bar": { "type": "boolean" } + } +}; + +var data = { "foo": "1", "bar": ["false"] }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": [1], "bar": false } +``` + +The coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of "anyOf" and other compound keywords). + +See [Coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md) for details. + + +## API + +##### new Ajv(Object options) -> Object + +Create Ajv instance. + + +##### .compile(Object schema) -> Function<Object data> + +Generate validating function and cache the compiled schema for future use. + +Validating function returns a boolean value. This function has properties `errors` and `schema`. Errors encountered during the last validation are assigned to `errors` property (it is assigned `null` if there was no errors). `schema` property contains the reference to the original schema. + +The schema passed to this method will be validated against meta-schema unless `validateSchema` option is false. If schema is invalid, an error will be thrown. See [options](#options). + + +##### .compileAsync(Object schema [, Boolean meta] [, Function callback]) -> Promise + +Asynchronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. This function returns a Promise that resolves to a validation function. An optional callback passed to `compileAsync` will be called with 2 parameters: error (or null) and validating function. The returned promise will reject (and the callback will be called with an error) when: + +- missing schema can't be loaded (`loadSchema` returns a Promise that rejects). +- a schema containing a missing reference is loaded, but the reference cannot be resolved. +- schema (or some loaded/referenced schema) is invalid. + +The function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded. + +You can asynchronously compile meta-schema by passing `true` as the second parameter. + +See example in [Asynchronous compilation](#asynchronous-schema-compilation). + + +##### .validate(Object schema|String key|String ref, data) -> Boolean + +Validate data using passed schema (it will be compiled and cached). + +Instead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference. + +Validation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors). + +__Please note__: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later. + +If the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation). + + +##### .addSchema(Array<Object>|Object schema [, String key]) -> Ajv + +Add schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole. + +Array of schemas can be passed (schemas should have ids), the second parameter will be ignored. + +Key can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key. + + +Once the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data. + +Although `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time. + +By default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option. + +__Please note__: Ajv uses the [method chaining syntax](https://en.wikipedia.org/wiki/Method_chaining) for all methods with the prefix `add*` and `remove*`. +This allows you to do nice things like the following. + +```javascript +var validate = new Ajv().addSchema(schema).addFormat(name, regex).getSchema(uri); +``` + +##### .addMetaSchema(Array<Object>|Object schema [, String key]) -> Ajv + +Adds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option). + +There is no need to explicitly add draft-07 meta schema (http://json-schema.org/draft-07/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`. + + +##### .validateSchema(Object schema) -> Boolean + +Validates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON Schema standard. + +By default this method is called automatically when the schema is added, so you rarely need to use it directly. + +If schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false). + +If schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema. + +Errors will be available at `ajv.errors`. + + +##### .getSchema(String key) -> Function<Object data> + +Retrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). The returned validating function has `schema` property with the reference to the original schema. + + +##### .removeSchema([Object schema|String key|String ref|RegExp pattern]) -> Ajv + +Remove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references. + +Schema can be removed using: +- key passed to `addSchema` +- it's full reference (id) +- RegExp that should match schema id or key (meta-schemas won't be removed) +- actual schema object that will be stable-stringified to remove schema from cache + +If no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared. + + +##### .addFormat(String name, String|RegExp|Function|Object format) -> Ajv + +Add custom format to validate strings or numbers. It can also be used to replace pre-defined formats for Ajv instance. + +Strings are converted to RegExp. + +Function should return validation result as `true` or `false`. + +If object is passed it should have properties `validate`, `compare` and `async`: + +- _validate_: a string, RegExp or a function as described above. +- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (defined in [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) package). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal. +- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`. +- _type_: an optional type of data that the format applies to. It can be `"string"` (default) or `"number"` (see https://github.com/ajv-validator/ajv/issues/291#issuecomment-259923858). If the type of data is different, the validation will pass. + +Custom formats can be also added via `formats` option. + + +##### .addKeyword(String keyword, Object definition) -> Ajv + +Add custom validation keyword to Ajv instance. + +Keyword should be different from all standard JSON Schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance. + +Keyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`. +It is recommended to use an application-specific prefix for keywords to avoid current and future name collisions. + +Example Keywords: +- `"xyz-example"`: valid, and uses prefix for the xyz project to avoid name collisions. +- `"example"`: valid, but not recommended as it could collide with future versions of JSON Schema etc. +- `"3-example"`: invalid as numbers are not allowed to be the first character in a keyword + +Keyword definition is an object with the following properties: + +- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types. +- _validate_: validating function +- _compile_: compiling function +- _macro_: macro function +- _inline_: compiling function that returns code (as string) +- _schema_: an optional `false` value used with "validate" keyword to not pass schema +- _metaSchema_: an optional meta-schema for keyword schema +- _dependencies_: an optional list of properties that must be present in the parent schema - it will be checked during schema compilation +- _modifying_: `true` MUST be passed if keyword modifies data +- _statements_: `true` can be passed in case inline keyword generates statements (as opposed to expression) +- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords. +- _$data_: an optional `true` value to support [$data reference](#data-reference) as the value of custom keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has validating function (as the only option or in addition to compile, macro or inline function). +- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of "macro" and "inline" keywords. +- _errors_: an optional boolean or string `"full"` indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation. + +_compile_, _macro_ and _inline_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to them to support $data reference. + +__Please note__: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed. + +See [Defining custom keywords](#defining-custom-keywords) for more details. + + +##### .getKeyword(String keyword) -> Object|Boolean + +Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown. + + +##### .removeKeyword(String keyword) -> Ajv + +Removes custom or pre-defined keyword so you can redefine them. + +While this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results. + +__Please note__: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again. + + +##### .errorsText([Array<Object> errors [, Object options]]) -> String + +Returns the text with all errors in a String. + +Options can have properties `separator` (string used to separate errors, ", " by default) and `dataVar` (the variable name that dataPaths are prefixed with, "data" by default). + + +## Options + +Defaults: + +```javascript +{ + // validation and reporting options: + $data: false, + allErrors: false, + verbose: false, + $comment: false, // NEW in Ajv version 6.0 + jsonPointers: false, + uniqueItems: true, + unicode: true, + nullable: false, + format: 'fast', + formats: {}, + unknownFormats: true, + schemas: {}, + logger: undefined, + // referenced schema options: + schemaId: '$id', + missingRefs: true, + extendRefs: 'ignore', // recommended 'fail' + loadSchema: undefined, // function(uri: string): Promise {} + // options to modify validated data: + removeAdditional: false, + useDefaults: false, + coerceTypes: false, + // strict mode options + strictDefaults: false, + strictKeywords: false, + strictNumbers: false, + // asynchronous validation options: + transpile: undefined, // requires ajv-async package + // advanced options: + meta: true, + validateSchema: true, + addUsedSchema: true, + inlineRefs: true, + passContext: false, + loopRequired: Infinity, + ownProperties: false, + multipleOfPrecision: false, + errorDataPath: 'object', // deprecated + messages: true, + sourceCode: false, + processCode: undefined, // function (str: string, schema: object): string {} + cache: new Cache, + serialize: undefined +} +``` + +##### Validation and reporting options + +- _$data_: support [$data references](#data-reference). Draft 6 meta-schema that is added by default will be extended to allow them. If you want to use another meta-schema you need to use $dataMetaSchema method to add support for $data reference. See [API](#api). +- _allErrors_: check all rules collecting all errors. Default is to return after the first error. +- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default). +- _$comment_ (NEW in Ajv version 6.0): log or pass the value of `$comment` keyword to a function. Option values: + - `false` (default): ignore $comment keyword. + - `true`: log the keyword value to console. + - function: pass the keyword value, its schema path and root schema to the specified function +- _jsonPointers_: set `dataPath` property of errors using [JSON Pointers](https://tools.ietf.org/html/rfc6901) instead of JavaScript property access notation. +- _uniqueItems_: validate `uniqueItems` keyword (true by default). +- _unicode_: calculate correct length of strings with unicode pairs (true by default). Pass `false` to use `.length` of strings that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters. +- _nullable_: support keyword "nullable" from [Open API 3 specification](https://swagger.io/docs/specification/data-models/data-types/). +- _format_: formats validation mode. Option values: + - `"fast"` (default) - simplified and fast validation (see [Formats](#formats) for details of which formats are available and affected by this option). + - `"full"` - more restrictive and slow validation. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode. + - `false` - ignore all format keywords. +- _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method. +- _keywords_: an object with custom keywords. Keys and values will be passed to `addKeyword` method. +- _unknownFormats_: handling of unknown formats. Option values: + - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [$data reference](#data-reference) and it is unknown the validation will fail. + - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [$data reference](#data-reference) and it is not in this array the validation will fail. + - `"ignore"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON Schema specification. +- _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object. +- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. See [Error logging](#error-logging). Option values: + - custom logger - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown. + - `false` - logging is disabled. + + +##### Referenced schema options + +- _schemaId_: this option defines which keywords are used as schema URI. Option value: + - `"$id"` (default) - only use `$id` keyword as schema URI (as specified in JSON Schema draft-06/07), ignore `id` keyword (if it is present a warning will be logged). + - `"id"` - only use `id` keyword as schema URI (as specified in JSON Schema draft-04), ignore `$id` keyword (if it is present a warning will be logged). + - `"auto"` - use both `$id` and `id` keywords as schema URI. If both are present (in the same schema object) and different the exception will be thrown during schema compilation. +- _missingRefs_: handling of missing referenced schemas. Option values: + - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted). + - `"ignore"` - to log error during compilation and always pass validation. + - `"fail"` - to log error and successfully compile schema but fail validation if this rule is checked. +- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values: + - `"ignore"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation. + - `"fail"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing. + - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0). +- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation). + + +##### Options to modify validated data + +- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values: + - `false` (default) - not to remove additional properties + - `"all"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them). + - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed. + - `"failing"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema). +- _useDefaults_: replace missing or undefined properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values: + - `false` (default) - do not use defaults + - `true` - insert defaults by value (object literal is used). + - `"empty"` - in addition to missing or undefined, use defaults for properties and items that are equal to `null` or `""` (an empty string). + - `"shared"` (deprecated) - insert defaults by reference. If the default is an object, it will be shared by all instances of validated data. If you modify the inserted default in the validated data, it will be modified in the schema as well. +- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/ajv-validator/ajv/blob/master/COERCION.md). Option values: + - `false` (default) - no type coercion. + - `true` - coerce scalar data types. + - `"array"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema). + + +##### Strict mode options + +- _strictDefaults_: report ignored `default` keywords in schemas. Option values: + - `false` (default) - ignored defaults are not reported + - `true` - if an ignored default is present, throw an error + - `"log"` - if an ignored default is present, log warning +- _strictKeywords_: report unknown keywords in schemas. Option values: + - `false` (default) - unknown keywords are not reported + - `true` - if an unknown keyword is present, throw an error + - `"log"` - if an unknown keyword is present, log warning +- _strictNumbers_: validate numbers strictly, failing validation for NaN and Infinity. Option values: + - `false` (default) - NaN or Infinity will pass validation for numeric types + - `true` - NaN or Infinity will not pass validation for numeric types + +##### Asynchronous validation options + +- _transpile_: Requires [ajv-async](https://github.com/ajv-validator/ajv-async) package. It determines whether Ajv transpiles compiled asynchronous validation function. Option values: + - `undefined` (default) - transpile with [nodent](https://github.com/MatAtBread/nodent) if async functions are not supported. + - `true` - always transpile with nodent. + - `false` - do not transpile; if async functions are not supported an exception will be thrown. + + +##### Advanced options + +- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword. +- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can be http://json-schema.org/draft-07/schema or absent (draft-07 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values: + - `true` (default) - if the validation fails, throw the exception. + - `"log"` - if the validation fails, log error. + - `false` - skip schema validation. +- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with "#". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method. +- _inlineRefs_: Affects compilation of referenced schemas. Option values: + - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions. + - `false` - to not inline referenced schemas (they will be compiled as separate functions). + - integer number - to limit the maximum number of keywords of the schema that will be inlined. +- _passContext_: pass validation context to custom keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your custom keywords. By default `this` is Ajv instance. +- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance. +- _ownProperties_: by default Ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst. +- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/ajv-validator/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations). +- _errorDataPath_ (deprecated): set `dataPath` to point to 'object' (default) or to 'property' when validating keywords `required`, `additionalProperties` and `dependencies`. +- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when custom messages are used (e.g. with [ajv-i18n](https://github.com/ajv-validator/ajv-i18n)). +- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call). +- _processCode_: an optional function to process generated code before it is passed to Function constructor. It can be used to either beautify (the validating function is generated without line-breaks) or to transpile code. Starting from version 5.0.0 this option replaced options: + - `beautify` that formatted the generated function using [js-beautify](https://github.com/beautify-web/js-beautify). If you want to beautify the generated code pass a function calling `require('js-beautify').js_beautify` as `processCode: code => js_beautify(code)`. + - `transpile` that transpiled asynchronous validation function. You can still use `transpile` option with [ajv-async](https://github.com/ajv-validator/ajv-async) package. See [Asynchronous validation](#asynchronous-validation) for more information. +- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`. +- _serialize_: an optional function to serialize schema to cache key. Pass `false` to use schema itself as a key (e.g., if WeakMap used as a cache). By default [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used. + + +## Validation errors + +In case of validation failure, Ajv assigns the array of errors to `errors` property of validation function (or to `errors` property of Ajv instance when `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation), the returned promise is rejected with exception `Ajv.ValidationError` that has `errors` property. + + +### Error objects + +Each error is an object with the following properties: + +- _keyword_: validation keyword. +- _dataPath_: the path to the part of the data that was validated. By default `dataPath` uses JavaScript property access notation (e.g., `".prop[1].subProp"`). When the option `jsonPointers` is true (see [Options](#options)) `dataPath` will be set using JSON pointer standard (e.g., `"/prop/1/subProp"`). +- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation. +- _params_: the object with the additional information about error that can be used to create custom error messages (e.g., using [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) package). See below for parameters set by all keywords. +- _message_: the standard error message (can be excluded with option `messages` set to false). +- _schema_: the schema of the keyword (added with `verbose` option). +- _parentSchema_: the schema containing the keyword (added with `verbose` option) +- _data_: the data validated by the keyword (added with `verbose` option). + +__Please note__: `propertyNames` keyword schema validation errors have an additional property `propertyName`, `dataPath` points to the object. After schema validation for each property name, if it is invalid an additional error is added with the property `keyword` equal to `"propertyNames"`. + + +### Error parameters + +Properties of `params` object in errors depend on the keyword that failed validation. + +- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword). +- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false). +- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords). +- `dependencies` - properties: + - `property` (dependent property), + - `missingProperty` (required missing dependency - only the first one is reported currently) + - `deps` (required dependencies, comma separated list as a string), + - `depsCount` (the number of required dependencies). +- `format` - property `format` (the schema of the keyword). +- `maximum`, `minimum` - properties: + - `limit` (number, the schema of the keyword), + - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`), + - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be "<", "<=", ">", ">=") +- `multipleOf` - property `multipleOf` (the schema of the keyword) +- `pattern` - property `pattern` (the schema of the keyword) +- `required` - property `missingProperty` (required property that is missing). +- `propertyNames` - property `propertyName` (an invalid property name). +- `patternRequired` (in ajv-keywords) - property `missingPattern` (required pattern that did not match any property). +- `type` - property `type` (required type(s), a string, can be a comma-separated list) +- `uniqueItems` - properties `i` and `j` (indices of duplicate items). +- `const` - property `allowedValue` pointing to the value (the schema of the keyword). +- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword). +- `$ref` - property `ref` with the referenced schema URI. +- `oneOf` - property `passingSchemas` (array of indices of passing schemas, null if no schema passes). +- custom keywords (in case keyword definition doesn't create errors) - property `keyword` (the keyword name). + + +### Error logging + +Using the `logger` option when initiallizing Ajv will allow you to define custom logging. Here you can build upon the exisiting logging. The use of other logging packages is supported as long as the package or its associated wrapper exposes the required methods. If any of the required methods are missing an exception will be thrown. +- **Required Methods**: `log`, `warn`, `error` + +```javascript +var otherLogger = new OtherLogger(); +var ajv = new Ajv({ + logger: { + log: console.log.bind(console), + warn: function warn() { + otherLogger.logWarn.apply(otherLogger, arguments); + }, + error: function error() { + otherLogger.logError.apply(otherLogger, arguments); + console.error.apply(console, arguments); + } + } +}); +``` + + +## Plugins + +Ajv can be extended with plugins that add custom keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions: + +- it exports a function +- this function accepts ajv instance as the first parameter and returns the same instance to allow chaining +- this function can accept an optional configuration as the second parameter + +If you have published a useful plugin please submit a PR to add it to the next section. + + +## Related packages + +- [ajv-async](https://github.com/ajv-validator/ajv-async) - plugin to configure async validation mode +- [ajv-bsontype](https://github.com/BoLaMN/ajv-bsontype) - plugin to validate mongodb's bsonType formats +- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface +- [ajv-errors](https://github.com/ajv-validator/ajv-errors) - plugin for custom error messages +- [ajv-i18n](https://github.com/ajv-validator/ajv-i18n) - internationalised error messages +- [ajv-istanbul](https://github.com/ajv-validator/ajv-istanbul) - plugin to instrument generated validation code to measure test coverage of your schemas +- [ajv-keywords](https://github.com/ajv-validator/ajv-keywords) - plugin with custom validation keywords (select, typeof, etc.) +- [ajv-merge-patch](https://github.com/ajv-validator/ajv-merge-patch) - plugin with keywords $merge and $patch +- [ajv-pack](https://github.com/ajv-validator/ajv-pack) - produces a compact module exporting validation functions +- [ajv-formats-draft2019](https://github.com/luzlab/ajv-formats-draft2019) - format validators for draft2019 that aren't already included in ajv (ie. `idn-hostname`, `idn-email`, `iri`, `iri-reference` and `duration`). + +## Some packages using Ajv + +- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser +- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services +- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition +- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator +- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org +- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON Schema http://jsonschemalint.com +- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js +- [table](https://github.com/gajus/table) - formats data into a string table +- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser +- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content +- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation +- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation +- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages +- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema +- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON Schema with expect in mocha tests +- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema +- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file +- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app +- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter +- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages +- [ESLint](https://github.com/eslint/eslint) - the pluggable linting utility for JavaScript and JSX + + +## Tests + +``` +npm install +git submodule update --init +npm test +``` + +## Contributing + +All validation functions are generated using doT templates in [dot](https://github.com/ajv-validator/ajv/tree/master/lib/dot) folder. Templates are precompiled so doT is not a run-time dependency. + +`npm run build` - compiles templates to [dotjs](https://github.com/ajv-validator/ajv/tree/master/lib/dotjs) folder. + +`npm run watch` - automatically compiles templates when files in dot folder change + +Please see [Contributing guidelines](https://github.com/ajv-validator/ajv/blob/master/CONTRIBUTING.md) + + +## Changes history + +See https://github.com/ajv-validator/ajv/releases + +__Please note__: [Changes in version 6.0.0](https://github.com/ajv-validator/ajv/releases/tag/v6.0.0). + +[Version 5.0.0](https://github.com/ajv-validator/ajv/releases/tag/5.0.0). + +[Version 4.0.0](https://github.com/ajv-validator/ajv/releases/tag/4.0.0). + +[Version 3.0.0](https://github.com/ajv-validator/ajv/releases/tag/3.0.0). + +[Version 2.0.0](https://github.com/ajv-validator/ajv/releases/tag/2.0.0). + + +## Code of conduct + +Please review and follow the [Code of conduct](https://github.com/ajv-validator/ajv/blob/master/CODE_OF_CONDUCT.md). + +Please report any unacceptable behaviour to ajv.validator@gmail.com - it will be reviewed by the project team. + + +## Open-source software support + +Ajv is a part of [Tidelift subscription](https://tidelift.com/subscription/pkg/npm-ajv?utm_source=npm-ajv&utm_medium=referral&utm_campaign=readme) - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers. + + +## License + +[MIT](https://github.com/ajv-validator/ajv/blob/master/LICENSE) diff --git a/node_modules/ajv/dist/ajv.bundle.js b/node_modules/ajv/dist/ajv.bundle.js new file mode 100644 index 00000000..2a34a771 --- /dev/null +++ b/node_modules/ajv/dist/ajv.bundle.js @@ -0,0 +1,7189 @@ +(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%\\^`{|}]|%[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-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-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= 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= 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', + $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) + ' 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) + ' 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 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 + * @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 state to , + // 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 + * @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 Gary Court + * @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} 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%\\^`{|}]|%[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-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-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",_=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 "+_+") { ",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 "+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 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 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;$= 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>1,e+=k(e/r);455k((A-a)/h))&&L("overflow"),a+=p*h;var f=d<=o?1:o+26<=d?26:d-o;if(pk(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("-");pk((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(RA&&L("overflow"),R==a){for(var $=s,j=36;;j+=36){var D=j<=o?1:o+26<=j?26:j-o;if($>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;tA-Z\\x5E-\\x7E]",'[\\"\\\\]')),Y=new RegExp(M,"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("[^]",M,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"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); + + message: string; + errors: Array; + 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; + /** + * 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} validating function + */ + compileAsync(schema: object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): PromiseLike; + /** + * 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, 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} 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 | null, options?: ErrorsTextOptions): string; + errors?: Array | null; + } + + interface CustomLogger { + log(...args: any[]): any; + warn(...args: any[]): any; + error(...args: any[]): any; + } + + interface ValidateFunction { + ( + data: any, + dataPath?: string, + parentData?: object | Array, + parentDataProperty?: string | number, + rootData?: object | Array + ): boolean | PromiseLike; + schema?: object | boolean; + errors?: null | Array; + refs?: object; + refVal?: Array; + 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; + schemaId?: '$id' | 'id' | 'auto'; + missingRefs?: true | 'ignore' | 'fail'; + extendRefs?: true | 'ignore' | 'fail'; + loadSchema?: (uri: string, cb?: (err: Error, schema: object) => void) => PromiseLike; + 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); + type NumberFormatValidator = ((data: number) => boolean | PromiseLike); + + 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; + async?: boolean; + $data?: boolean; + errors?: boolean | string; + metaSchema?: object; + // schema: false makes validate not to expect schema (ValidateFunction) + schema?: boolean; + statements?: boolean; + dependencies?: Array; + 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, + parentDataProperty?: string | number, + rootData?: object | Array + ): boolean | PromiseLike; + errors?: Array; + } + + 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; + } +} + +export = ajv; diff --git a/node_modules/ajv/lib/ajv.js b/node_modules/ajv/lib/ajv.js new file mode 100644 index 00000000..06a45b65 --- /dev/null +++ b/node_modules/ajv/lib/ajv.js @@ -0,0 +1,506 @@ +'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} 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%\\^`{|}]|%[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-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-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/node_modules/ajv/lib/compile/index.js b/node_modules/ajv/lib/compile/index.js new file mode 100644 index 00000000..97518c42 --- /dev/null +++ b/node_modules/ajv/lib/compile/index.js @@ -0,0 +1,387 @@ +'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= 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/node_modules/ajv/lib/compile/util.js b/node_modules/ajv/lib/compile/util.js new file mode 100644 index 00000000..ef07b8c7 --- /dev/null +++ b/node_modules/ajv/lib/compile/util.js @@ -0,0 +1,239 @@ +'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= 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' + , $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/node_modules/ajv/lib/dot/_limitItems.jst b/node_modules/ajv/lib/dot/_limitItems.jst new file mode 100644 index 00000000..741329e7 --- /dev/null +++ b/node_modules/ajv/lib/dot/_limitItems.jst @@ -0,0 +1,12 @@ +{{# 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/node_modules/ajv/lib/dot/_limitLength.jst b/node_modules/ajv/lib/dot/_limitLength.jst new file mode 100644 index 00000000..285c66bd --- /dev/null +++ b/node_modules/ajv/lib/dot/_limitLength.jst @@ -0,0 +1,12 @@ +{{# 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/node_modules/ajv/lib/dot/_limitProperties.jst b/node_modules/ajv/lib/dot/_limitProperties.jst new file mode 100644 index 00000000..c4c21551 --- /dev/null +++ b/node_modules/ajv/lib/dot/_limitProperties.jst @@ -0,0 +1,12 @@ +{{# 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/node_modules/ajv/lib/dot/allOf.jst b/node_modules/ajv/lib/dot/allOf.jst new file mode 100644 index 00000000..0e782fe9 --- /dev/null +++ b/node_modules/ajv/lib/dot/allOf.jst @@ -0,0 +1,32 @@ +{{# 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/node_modules/ajv/lib/dot/anyOf.jst b/node_modules/ajv/lib/dot/anyOf.jst new file mode 100644 index 00000000..ea909ee6 --- /dev/null +++ b/node_modules/ajv/lib/dot/anyOf.jst @@ -0,0 +1,46 @@ +{{# 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/node_modules/ajv/lib/dot/coerce.def b/node_modules/ajv/lib/dot/coerce.def new file mode 100644 index 00000000..c947ed6a --- /dev/null +++ b/node_modules/ajv/lib/dot/coerce.def @@ -0,0 +1,51 @@ +{{## 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/node_modules/ajv/lib/dot/comment.jst b/node_modules/ajv/lib/dot/comment.jst new file mode 100644 index 00000000..f9591503 --- /dev/null +++ b/node_modules/ajv/lib/dot/comment.jst @@ -0,0 +1,9 @@ +{{# 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/node_modules/ajv/lib/dot/const.jst b/node_modules/ajv/lib/dot/const.jst new file mode 100644 index 00000000..2aa22980 --- /dev/null +++ b/node_modules/ajv/lib/dot/const.jst @@ -0,0 +1,11 @@ +{{# 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/node_modules/ajv/lib/dot/contains.jst b/node_modules/ajv/lib/dot/contains.jst new file mode 100644 index 00000000..4dc99674 --- /dev/null +++ b/node_modules/ajv/lib/dot/contains.jst @@ -0,0 +1,55 @@ +{{# 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/node_modules/ajv/lib/dot/custom.jst b/node_modules/ajv/lib/dot/custom.jst new file mode 100644 index 00000000..d30588fb --- /dev/null +++ b/node_modules/ajv/lib/dot/custom.jst @@ -0,0 +1,191 @@ +{{# 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}} 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/node_modules/ajv/lib/dot/dependencies.jst b/node_modules/ajv/lib/dot/dependencies.jst new file mode 100644 index 00000000..e4bdddec --- /dev/null +++ b/node_modules/ajv/lib/dot/dependencies.jst @@ -0,0 +1,79 @@ +{{# 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/node_modules/ajv/lib/dot/enum.jst b/node_modules/ajv/lib/dot/enum.jst new file mode 100644 index 00000000..357c2e8c --- /dev/null +++ b/node_modules/ajv/lib/dot/enum.jst @@ -0,0 +1,30 @@ +{{# 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/node_modules/ajv/lib/dot/errors.def b/node_modules/ajv/lib/dot/errors.def new file mode 100644 index 00000000..5c5752cb --- /dev/null +++ b/node_modules/ajv/lib/dot/errors.def @@ -0,0 +1,194 @@ +{{# 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/node_modules/ajv/lib/dot/format.jst b/node_modules/ajv/lib/dot/format.jst new file mode 100644 index 00000000..37f14da8 --- /dev/null +++ b/node_modules/ajv/lib/dot/format.jst @@ -0,0 +1,106 @@ +{{# 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/node_modules/ajv/lib/dot/if.jst b/node_modules/ajv/lib/dot/if.jst new file mode 100644 index 00000000..adb50361 --- /dev/null +++ b/node_modules/ajv/lib/dot/if.jst @@ -0,0 +1,73 @@ +{{# 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/node_modules/ajv/lib/dot/items.jst b/node_modules/ajv/lib/dot/items.jst new file mode 100644 index 00000000..acc932a2 --- /dev/null +++ b/node_modules/ajv/lib/dot/items.jst @@ -0,0 +1,98 @@ +{{# 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/node_modules/ajv/lib/dot/missing.def b/node_modules/ajv/lib/dot/missing.def new file mode 100644 index 00000000..a73b9f96 --- /dev/null +++ b/node_modules/ajv/lib/dot/missing.def @@ -0,0 +1,39 @@ +{{## 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/node_modules/ajv/lib/dot/multipleOf.jst b/node_modules/ajv/lib/dot/multipleOf.jst new file mode 100644 index 00000000..6d88a456 --- /dev/null +++ b/node_modules/ajv/lib/dot/multipleOf.jst @@ -0,0 +1,22 @@ +{{# 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/node_modules/ajv/lib/dot/not.jst b/node_modules/ajv/lib/dot/not.jst new file mode 100644 index 00000000..e03185ae --- /dev/null +++ b/node_modules/ajv/lib/dot/not.jst @@ -0,0 +1,43 @@ +{{# 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/node_modules/ajv/lib/dot/oneOf.jst b/node_modules/ajv/lib/dot/oneOf.jst new file mode 100644 index 00000000..bcce2c6e --- /dev/null +++ b/node_modules/ajv/lib/dot/oneOf.jst @@ -0,0 +1,54 @@ +{{# 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/node_modules/ajv/lib/dot/pattern.jst b/node_modules/ajv/lib/dot/pattern.jst new file mode 100644 index 00000000..3a37ef6c --- /dev/null +++ b/node_modules/ajv/lib/dot/pattern.jst @@ -0,0 +1,14 @@ +{{# 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/node_modules/ajv/lib/dot/properties.jst b/node_modules/ajv/lib/dot/properties.jst new file mode 100644 index 00000000..5cebb9b1 --- /dev/null +++ b/node_modules/ajv/lib/dot/properties.jst @@ -0,0 +1,245 @@ +{{# 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/node_modules/ajv/lib/dot/propertyNames.jst b/node_modules/ajv/lib/dot/propertyNames.jst new file mode 100644 index 00000000..d456ccaf --- /dev/null +++ b/node_modules/ajv/lib/dot/propertyNames.jst @@ -0,0 +1,52 @@ +{{# 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}}= 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/node_modules/ajv/lib/dot/uniqueItems.jst b/node_modules/ajv/lib/dot/uniqueItems.jst new file mode 100644 index 00000000..e69b8308 --- /dev/null +++ b/node_modules/ajv/lib/dot/uniqueItems.jst @@ -0,0 +1,62 @@ +{{# 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/node_modules/ajv/lib/dot/validate.jst b/node_modules/ajv/lib/dot/validate.jst new file mode 100644 index 00000000..32087e71 --- /dev/null +++ b/node_modules/ajv/lib/dot/validate.jst @@ -0,0 +1,276 @@ +{{# 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/node_modules/ajv/lib/dotjs/README.md b/node_modules/ajv/lib/dotjs/README.md new file mode 100644 index 00000000..4d994846 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/README.md @@ -0,0 +1,3 @@ +These files are compiled dot templates from dot folder. + +Do NOT edit them directly, edit the templates and run `npm run build` from main ajv folder. diff --git a/node_modules/ajv/lib/dotjs/_limit.js b/node_modules/ajv/lib/dotjs/_limit.js new file mode 100644 index 00000000..05a1979d --- /dev/null +++ b/node_modules/ajv/lib/dotjs/_limit.js @@ -0,0 +1,163 @@ +'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/node_modules/ajv/lib/dotjs/_limitItems.js b/node_modules/ajv/lib/dotjs/_limitItems.js new file mode 100644 index 00000000..e092a559 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/_limitItems.js @@ -0,0 +1,80 @@ +'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/node_modules/ajv/lib/dotjs/_limitLength.js b/node_modules/ajv/lib/dotjs/_limitLength.js new file mode 100644 index 00000000..ecbd3fe1 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/_limitLength.js @@ -0,0 +1,85 @@ +'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/node_modules/ajv/lib/dotjs/_limitProperties.js b/node_modules/ajv/lib/dotjs/_limitProperties.js new file mode 100644 index 00000000..d232755a --- /dev/null +++ b/node_modules/ajv/lib/dotjs/_limitProperties.js @@ -0,0 +1,80 @@ +'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/node_modules/ajv/lib/dotjs/allOf.js b/node_modules/ajv/lib/dotjs/allOf.js new file mode 100644 index 00000000..fb8c2e4b --- /dev/null +++ b/node_modules/ajv/lib/dotjs/allOf.js @@ -0,0 +1,42 @@ +'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/node_modules/ajv/lib/dotjs/anyOf.js b/node_modules/ajv/lib/dotjs/anyOf.js new file mode 100644 index 00000000..0600a9d4 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/anyOf.js @@ -0,0 +1,73 @@ +'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/node_modules/ajv/lib/dotjs/comment.js b/node_modules/ajv/lib/dotjs/comment.js new file mode 100644 index 00000000..dd66bb8f --- /dev/null +++ b/node_modules/ajv/lib/dotjs/comment.js @@ -0,0 +1,14 @@ +'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/node_modules/ajv/lib/dotjs/const.js b/node_modules/ajv/lib/dotjs/const.js new file mode 100644 index 00000000..15b7c619 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/const.js @@ -0,0 +1,56 @@ +'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/node_modules/ajv/lib/dotjs/contains.js b/node_modules/ajv/lib/dotjs/contains.js new file mode 100644 index 00000000..7d763009 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/contains.js @@ -0,0 +1,81 @@ +'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/node_modules/ajv/lib/dotjs/custom.js b/node_modules/ajv/lib/dotjs/custom.js new file mode 100644 index 00000000..f3e641e7 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/custom.js @@ -0,0 +1,228 @@ +'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) + ' 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/node_modules/ajv/lib/dotjs/enum.js b/node_modules/ajv/lib/dotjs/enum.js new file mode 100644 index 00000000..90580b9f --- /dev/null +++ b/node_modules/ajv/lib/dotjs/enum.js @@ -0,0 +1,66 @@ +'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/node_modules/ajv/lib/dotjs/format.js b/node_modules/ajv/lib/dotjs/format.js new file mode 100644 index 00000000..cd9a5693 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/format.js @@ -0,0 +1,150 @@ +'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/node_modules/ajv/lib/dotjs/if.js b/node_modules/ajv/lib/dotjs/if.js new file mode 100644 index 00000000..94d27ad8 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/if.js @@ -0,0 +1,103 @@ +'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/node_modules/ajv/lib/dotjs/index.js b/node_modules/ajv/lib/dotjs/index.js new file mode 100644 index 00000000..2fb1b00e --- /dev/null +++ b/node_modules/ajv/lib/dotjs/index.js @@ -0,0 +1,33 @@ +'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/node_modules/ajv/lib/dotjs/items.js b/node_modules/ajv/lib/dotjs/items.js new file mode 100644 index 00000000..bee5d67d --- /dev/null +++ b/node_modules/ajv/lib/dotjs/items.js @@ -0,0 +1,140 @@ +'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/node_modules/ajv/lib/dotjs/multipleOf.js b/node_modules/ajv/lib/dotjs/multipleOf.js new file mode 100644 index 00000000..9d6401b8 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/multipleOf.js @@ -0,0 +1,80 @@ +'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/node_modules/ajv/lib/dotjs/not.js b/node_modules/ajv/lib/dotjs/not.js new file mode 100644 index 00000000..f50c9378 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/not.js @@ -0,0 +1,84 @@ +'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/node_modules/ajv/lib/dotjs/oneOf.js b/node_modules/ajv/lib/dotjs/oneOf.js new file mode 100644 index 00000000..dfe2fd55 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/oneOf.js @@ -0,0 +1,73 @@ +'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/node_modules/ajv/lib/dotjs/pattern.js b/node_modules/ajv/lib/dotjs/pattern.js new file mode 100644 index 00000000..1d74d6b0 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/pattern.js @@ -0,0 +1,75 @@ +'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/node_modules/ajv/lib/dotjs/properties.js b/node_modules/ajv/lib/dotjs/properties.js new file mode 100644 index 00000000..bc5ee554 --- /dev/null +++ b/node_modules/ajv/lib/dotjs/properties.js @@ -0,0 +1,335 @@ +'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/node_modules/ajv/lib/dotjs/propertyNames.js b/node_modules/ajv/lib/dotjs/propertyNames.js new file mode 100644 index 00000000..2a54a08f --- /dev/null +++ b/node_modules/ajv/lib/dotjs/propertyNames.js @@ -0,0 +1,81 @@ +'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) + ' 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/node_modules/ajv/lib/dotjs/uniqueItems.js b/node_modules/ajv/lib/dotjs/uniqueItems.js new file mode 100644 index 00000000..0736a0ed --- /dev/null +++ b/node_modules/ajv/lib/dotjs/uniqueItems.js @@ -0,0 +1,86 @@ +'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/node_modules/ajv/lib/dotjs/validate.js b/node_modules/ajv/lib/dotjs/validate.js new file mode 100644 index 00000000..f295824b --- /dev/null +++ b/node_modules/ajv/lib/dotjs/validate.js @@ -0,0 +1,482 @@ +'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/node_modules/ajv/lib/keyword.js b/node_modules/ajv/lib/keyword.js new file mode 100644 index 00000000..06da9a2d --- /dev/null +++ b/node_modules/ajv/lib/keyword.js @@ -0,0 +1,146 @@ +'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 ../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/node_modules/ajv/scripts/travis-gh-pages b/node_modules/ajv/scripts/travis-gh-pages new file mode 100644 index 00000000..b3d4f3d0 --- /dev/null +++ b/node_modules/ajv/scripts/travis-gh-pages @@ -0,0 +1,23 @@ +#!/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/]+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/node_modules/ansi-align/CHANGELOG.md b/node_modules/ansi-align/CHANGELOG.md new file mode 100644 index 00000000..0db57f7b --- /dev/null +++ b/node_modules/ansi-align/CHANGELOG.md @@ -0,0 +1,51 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + + +# [3.0.0](https://github.com/nexdrew/ansi-align/compare/v2.0.0...v3.0.0) (2018-12-17) + + +### Bug Fixes + +* **package:** update string-width to version 3.0.0 ([#50](https://github.com/nexdrew/ansi-align/issues/50)) ([67f0d8f](https://github.com/nexdrew/ansi-align/commit/67f0d8f)) + + +### BREAKING CHANGES + +* **package:** Node 4 no longer supported, please update to Node 6+ or use ansi-align@2.0.0 + + + + +# [2.0.0](https://github.com/nexdrew/ansi-align/compare/v1.1.0...v2.0.0) (2017-05-01) + + +### Features + +* ES2015ify, dropping support for Node <4 ([#30](https://github.com/nexdrew/ansi-align/issues/30)) ([7b43f48](https://github.com/nexdrew/ansi-align/commit/7b43f48)) + + +### BREAKING CHANGES + +* Node 0.10 or 0.12 no longer supported, please update to Node 4+ or use ansi-align@1.1.0 + + + + +# [1.1.0](https://github.com/nexdrew/ansi-align/compare/v1.0.0...v1.1.0) (2016-06-06) + + +### Features + +* support left-alignment as no-op ([#3](https://github.com/nexdrew/ansi-align/issues/3)) ([e581db6](https://github.com/nexdrew/ansi-align/commit/e581db6)) + + + + +# 1.0.0 (2016-04-30) + + +### Features + +* initial commit ([1914d90](https://github.com/nexdrew/ansi-align/commit/1914d90)) diff --git a/node_modules/ansi-align/LICENSE b/node_modules/ansi-align/LICENSE new file mode 100644 index 00000000..ab601b65 --- /dev/null +++ b/node_modules/ansi-align/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2016, Contributors + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided 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/node_modules/ansi-align/README.md b/node_modules/ansi-align/README.md new file mode 100644 index 00000000..5e516825 --- /dev/null +++ b/node_modules/ansi-align/README.md @@ -0,0 +1,80 @@ +# ansi-align + +> align-text with ANSI support for CLIs + +[![Build Status](https://travis-ci.org/nexdrew/ansi-align.svg?branch=master)](https://travis-ci.org/nexdrew/ansi-align) +[![Coverage Status](https://coveralls.io/repos/github/nexdrew/ansi-align/badge.svg?branch=master)](https://coveralls.io/github/nexdrew/ansi-align?branch=master) +[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version) +[![Greenkeeper badge](https://badges.greenkeeper.io/nexdrew/ansi-align.svg)](https://greenkeeper.io/) + +Easily center- or right- align a block of text, carefully ignoring ANSI escape codes. + +E.g. turn this: + +ansi text block no alignment :( + +Into this: + +ansi text block center aligned! + +## Install + +```sh +npm install --save ansi-align +``` + +```js +var ansiAlign = require('ansi-align') +``` + +## API + +### `ansiAlign(text, [opts])` + +Align the given text per the line with the greatest [`string-width`](https://github.com/sindresorhus/string-width), returning a new string (or array). + +#### Arguments + +- `text`: required, string or array + + The text to align. If a string is given, it will be split using either the `opts.split` value or `'\n'` by default. If an array is given, a different array of modified strings will be returned. + +- `opts`: optional, object + + Options to change behavior, see below. + +#### Options + +- `opts.align`: string, default `'center'` + + The alignment mode. Use `'center'` for center-alignment, `'right'` for right-alignment, or `'left'` for left-alignment. Note that the given `text` is assumed to be left-aligned already, so specifying `align: 'left'` just returns the `text` as is (no-op). + +- `opts.split`: string or RegExp, default `'\n'` + + The separator to use when splitting the text. Only used if text is given as a string. + +- `opts.pad`: string, default `' '` + + The value used to left-pad (prepend to) lines of lesser width. Will be repeated as necessary to adjust alignment to the line with the greatest width. + +### `ansiAlign.center(text)` + +Alias for `ansiAlign(text, { align: 'center' })`. + +### `ansiAlign.right(text)` + +Alias for `ansiAlign(text, { align: 'right' })`. + +### `ansiAlign.left(text)` + +Alias for `ansiAlign(text, { align: 'left' })`, which is a no-op. + +## Similar Packages + +- [`center-align`](https://github.com/jonschlinkert/center-align): Very close to this package, except it doesn't support ANSI codes. +- [`left-pad`](https://github.com/camwest/left-pad): Great for left-padding but does not support center alignment or ANSI codes. +- Pretty much anything by the [chalk](https://github.com/chalk) team + +## License + +ISC © Contributors diff --git a/node_modules/ansi-align/index.js b/node_modules/ansi-align/index.js new file mode 100644 index 00000000..67fa826d --- /dev/null +++ b/node_modules/ansi-align/index.js @@ -0,0 +1,61 @@ +'use strict' + +const stringWidth = require('string-width') + +function ansiAlign (text, opts) { + if (!text) return text + + opts = opts || {} + const align = opts.align || 'center' + + // short-circuit `align: 'left'` as no-op + if (align === 'left') return text + + const split = opts.split || '\n' + const pad = opts.pad || ' ' + const widthDiffFn = align !== 'right' ? halfDiff : fullDiff + + let returnString = false + if (!Array.isArray(text)) { + returnString = true + text = String(text).split(split) + } + + let width + let maxWidth = 0 + text = text.map(function (str) { + str = String(str) + width = stringWidth(str) + maxWidth = Math.max(width, maxWidth) + return { + str, + width + } + }).map(function (obj) { + return new Array(widthDiffFn(maxWidth, obj.width) + 1).join(pad) + obj.str + }) + + return returnString ? text.join(split) : text +} + +ansiAlign.left = function left (text) { + return ansiAlign(text, { align: 'left' }) +} + +ansiAlign.center = function center (text) { + return ansiAlign(text, { align: 'center' }) +} + +ansiAlign.right = function right (text) { + return ansiAlign(text, { align: 'right' }) +} + +module.exports = ansiAlign + +function halfDiff (maxWidth, curWidth) { + return Math.floor((maxWidth - curWidth) / 2) +} + +function fullDiff (maxWidth, curWidth) { + return maxWidth - curWidth +} diff --git a/node_modules/ansi-align/node_modules/ansi-regex/index.js b/node_modules/ansi-align/node_modules/ansi-regex/index.js new file mode 100644 index 00000000..c2544800 --- /dev/null +++ b/node_modules/ansi-align/node_modules/ansi-regex/index.js @@ -0,0 +1,14 @@ +'use strict'; + +module.exports = options => { + options = Object.assign({ + onlyFirst: false + }, options); + + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' + ].join('|'); + + return new RegExp(pattern, options.onlyFirst ? undefined : 'g'); +}; diff --git a/node_modules/ansi-align/node_modules/ansi-regex/license b/node_modules/ansi-align/node_modules/ansi-regex/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/ansi-align/node_modules/ansi-regex/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-align/node_modules/ansi-regex/package.json b/node_modules/ansi-align/node_modules/ansi-regex/package.json new file mode 100644 index 00000000..427fe7e6 --- /dev/null +++ b/node_modules/ansi-align/node_modules/ansi-regex/package.json @@ -0,0 +1,85 @@ +{ + "_from": "ansi-regex@^4.1.0", + "_id": "ansi-regex@4.1.0", + "_inBundle": false, + "_integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "_location": "/ansi-align/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ansi-regex@^4.1.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "^4.1.0", + "saveSpec": null, + "fetchSpec": "^4.1.0" + }, + "_requiredBy": [ + "/ansi-align/strip-ansi" + ], + "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "_shasum": "8b9f8f08cf1acb843756a839ca8c7e3168c51997", + "_spec": "ansi-regex@^4.1.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\ansi-align\\node_modules\\strip-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "^0.25.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "4.1.0" +} diff --git a/node_modules/ansi-align/node_modules/ansi-regex/readme.md b/node_modules/ansi-align/node_modules/ansi-regex/readme.md new file mode 100644 index 00000000..d19c4466 --- /dev/null +++ b/node_modules/ansi-align/node_modules/ansi-regex/readme.md @@ -0,0 +1,87 @@ +# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex) + +> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- + + +## Install + +``` +$ npm install ansi-regex +``` + + +## Usage + +```js +const ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] + +'\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'] +``` + + +## API + +### ansiRegex([options]) + +Returns a regex for matching ANSI escape codes. + +#### options + +##### onlyFirst + +Type: `boolean`
+Default: `false` *(Matches any ANSI escape codes in a string)* + +Match only the first ANSI escape. + + +## FAQ + +### Why do you test for codes not in the ECMA 48 standard? + +Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. + +On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. + + +## Security + +To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +## License + +MIT diff --git a/node_modules/ansi-align/node_modules/emoji-regex/LICENSE-MIT.txt b/node_modules/ansi-align/node_modules/emoji-regex/LICENSE-MIT.txt new file mode 100644 index 00000000..a41e0a7e --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-align/node_modules/emoji-regex/README.md b/node_modules/ansi-align/node_modules/emoji-regex/README.md new file mode 100644 index 00000000..37cf14e0 --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/README.md @@ -0,0 +1,73 @@ +# emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex) + +_emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard. + +This repository contains a script that generates this regular expression based on [the data from Unicode Technical Report #51](https://github.com/mathiasbynens/unicode-tr51). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard. + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install emoji-regex +``` + +In [Node.js](https://nodejs.org/): + +```js +const emojiRegex = require('emoji-regex'); +// Note: because the regular expression has the global flag set, this module +// exports a function that returns the regex rather than exporting the regular +// expression itself, to make it impossible to (accidentally) mutate the +// original regular expression. + +const text = ` +\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation) +\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji +\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base) +\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier +`; + +const regex = emojiRegex(); +let match; +while (match = regex.exec(text)) { + const emoji = match[0]; + console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`); +} +``` + +Console output: + +``` +Matched sequence ⌚ — code points: 1 +Matched sequence ⌚ — code points: 1 +Matched sequence ↔️ — code points: 2 +Matched sequence ↔️ — code points: 2 +Matched sequence 👩 — code points: 1 +Matched sequence 👩 — code points: 1 +Matched sequence 👩🏿 — code points: 2 +Matched sequence 👩🏿 — code points: 2 +``` + +To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex: + +```js +const emojiRegex = require('emoji-regex/text.js'); +``` + +Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes: + +```js +const emojiRegex = require('emoji-regex/es2015/index.js'); +const emojiRegexText = require('emoji-regex/es2015/text.js'); +``` + +## Author + +| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](https://mathiasbynens.be/) | + +## License + +_emoji-regex_ is available under the [MIT](https://mths.be/mit) license. diff --git a/node_modules/ansi-align/node_modules/emoji-regex/es2015/index.js b/node_modules/ansi-align/node_modules/emoji-regex/es2015/index.js new file mode 100644 index 00000000..0216db95 --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/es2015/index.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}(?:\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074})\u{E007F}|\u200D\u2620\uFE0F)|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F468}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u{1F468}(?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F469}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F468}(?:\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|[\u{1F3FB}-\u{1F3FF}])|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}]|\u{1F469}\u200D\u{1F466}|\u{1F1F6}\u{1F1E6}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9D1}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F469}\u{1F46E}\u{1F470}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/ansi-align/node_modules/emoji-regex/es2015/text.js b/node_modules/ansi-align/node_modules/emoji-regex/es2015/text.js new file mode 100644 index 00000000..d0a771d3 --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/es2015/text.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}(?:\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0077}\u{E006C}\u{E0073}|\u{E0073}\u{E0063}\u{E0074})\u{E007F}|\u200D\u2620\uFE0F)|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F468}(?:\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}])|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u{1F468}(?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F469}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|\u{1F468}(?:\u200D(?:[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u{1F466}\u{1F467}])|[\u{1F3FB}-\u{1F3FF}])|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F469}\u200D\u{1F467}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9B0}-\u{1F9B3}]|\u{1F469}\u200D\u{1F466}|\u{1F1F6}\u{1F1E6}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|[#\*0-9]\uFE0F\u20E3|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9D1}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6F9}\u{1F910}-\u{1F93A}\u{1F93C}-\u{1F93E}\u{1F940}-\u{1F945}\u{1F947}-\u{1F970}\u{1F973}-\u{1F976}\u{1F97A}\u{1F97C}-\u{1F9A2}\u{1F9B0}-\u{1F9B9}\u{1F9C0}-\u{1F9C2}\u{1F9D0}-\u{1F9FF}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F469}\u{1F46E}\u{1F470}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/ansi-align/node_modules/emoji-regex/index.d.ts b/node_modules/ansi-align/node_modules/emoji-regex/index.d.ts new file mode 100644 index 00000000..2c317cda --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/index.d.ts @@ -0,0 +1,5 @@ +declare module 'emoji-regex' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} diff --git a/node_modules/ansi-align/node_modules/emoji-regex/index.js b/node_modules/ansi-align/node_modules/emoji-regex/index.js new file mode 100644 index 00000000..e2237a4e --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/index.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = function () { + // https://mths.be/emoji + return /\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g; +}; diff --git a/node_modules/ansi-align/node_modules/emoji-regex/package.json b/node_modules/ansi-align/node_modules/emoji-regex/package.json new file mode 100644 index 00000000..11d2b360 --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/package.json @@ -0,0 +1,78 @@ +{ + "_from": "emoji-regex@^7.0.1", + "_id": "emoji-regex@7.0.3", + "_inBundle": false, + "_integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "_location": "/ansi-align/emoji-regex", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "emoji-regex@^7.0.1", + "name": "emoji-regex", + "escapedName": "emoji-regex", + "rawSpec": "^7.0.1", + "saveSpec": null, + "fetchSpec": "^7.0.1" + }, + "_requiredBy": [ + "/ansi-align/string-width" + ], + "_resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "_shasum": "933a04052860c85e83c122479c4748a8e4c72156", + "_spec": "emoji-regex@^7.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\ansi-align\\node_modules\\string-width", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/mathiasbynens/emoji-regex/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", + "devDependencies": { + "@babel/cli": "^7.0.0", + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "mocha": "^5.2.0", + "regexgen": "^1.3.0", + "unicode-11.0.0": "^0.7.7", + "unicode-tr51": "^9.0.1" + }, + "files": [ + "LICENSE-MIT.txt", + "index.js", + "index.d.ts", + "text.js", + "es2015/index.js", + "es2015/text.js" + ], + "homepage": "https://mths.be/emoji-regex", + "keywords": [ + "unicode", + "regex", + "regexp", + "regular expressions", + "code points", + "symbols", + "characters", + "emoji" + ], + "license": "MIT", + "main": "index.js", + "name": "emoji-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/mathiasbynens/emoji-regex.git" + }, + "scripts": { + "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js", + "test": "mocha", + "test:watch": "npm run test -- --watch" + }, + "types": "index.d.ts", + "version": "7.0.3" +} diff --git a/node_modules/ansi-align/node_modules/emoji-regex/text.js b/node_modules/ansi-align/node_modules/emoji-regex/text.js new file mode 100644 index 00000000..199ae3be --- /dev/null +++ b/node_modules/ansi-align/node_modules/emoji-regex/text.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = function () { + // https://mths.be/emoji + return /\uD83C\uDFF4(?:\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\u200D\u2620\uFE0F)|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDB0-\uDDB3])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF9]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD70\uDD73-\uDD76\uDD7A\uDD7C-\uDDA2\uDDB0-\uDDB9\uDDC0-\uDDC2\uDDD0-\uDDFF])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDD1-\uDDDD])/g; +}; diff --git a/node_modules/ansi-align/node_modules/is-fullwidth-code-point/index.js b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/index.js new file mode 100644 index 00000000..d506327c --- /dev/null +++ b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/index.js @@ -0,0 +1,46 @@ +'use strict'; +/* eslint-disable yoda */ +module.exports = x => { + if (Number.isNaN(x)) { + return false; + } + + // code points are derived from: + // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt + if ( + x >= 0x1100 && ( + x <= 0x115f || // Hangul Jamo + x === 0x2329 || // LEFT-POINTING ANGLE BRACKET + x === 0x232a || // RIGHT-POINTING ANGLE BRACKET + // CJK Radicals Supplement .. Enclosed CJK Letters and Months + (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) || + // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A + (0x3250 <= x && x <= 0x4dbf) || + // CJK Unified Ideographs .. Yi Radicals + (0x4e00 <= x && x <= 0xa4c6) || + // Hangul Jamo Extended-A + (0xa960 <= x && x <= 0xa97c) || + // Hangul Syllables + (0xac00 <= x && x <= 0xd7a3) || + // CJK Compatibility Ideographs + (0xf900 <= x && x <= 0xfaff) || + // Vertical Forms + (0xfe10 <= x && x <= 0xfe19) || + // CJK Compatibility Forms .. Small Form Variants + (0xfe30 <= x && x <= 0xfe6b) || + // Halfwidth and Fullwidth Forms + (0xff01 <= x && x <= 0xff60) || + (0xffe0 <= x && x <= 0xffe6) || + // Kana Supplement + (0x1b000 <= x && x <= 0x1b001) || + // Enclosed Ideographic Supplement + (0x1f200 <= x && x <= 0x1f251) || + // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane + (0x20000 <= x && x <= 0x3fffd) + ) + ) { + return true; + } + + return false; +}; diff --git a/node_modules/ansi-align/node_modules/is-fullwidth-code-point/license b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/license new file mode 100644 index 00000000..654d0bfe --- /dev/null +++ b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/ansi-align/node_modules/is-fullwidth-code-point/package.json b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/package.json new file mode 100644 index 00000000..436dadc2 --- /dev/null +++ b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/package.json @@ -0,0 +1,77 @@ +{ + "_from": "is-fullwidth-code-point@^2.0.0", + "_id": "is-fullwidth-code-point@2.0.0", + "_inBundle": false, + "_integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "_location": "/ansi-align/is-fullwidth-code-point", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-fullwidth-code-point@^2.0.0", + "name": "is-fullwidth-code-point", + "escapedName": "is-fullwidth-code-point", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/ansi-align/string-width" + ], + "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "_shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f", + "_spec": "is-fullwidth-code-point@^2.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\ansi-align\\node_modules\\string-width", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", + "keywords": [ + "fullwidth", + "full-width", + "full", + "width", + "unicode", + "character", + "char", + "string", + "str", + "codepoint", + "code", + "point", + "is", + "detect", + "check" + ], + "license": "MIT", + "name": "is-fullwidth-code-point", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0", + "xo": { + "esnext": true + } +} diff --git a/node_modules/ansi-align/node_modules/is-fullwidth-code-point/readme.md b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/readme.md new file mode 100644 index 00000000..093b0281 --- /dev/null +++ b/node_modules/ansi-align/node_modules/is-fullwidth-code-point/readme.md @@ -0,0 +1,39 @@ +# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point) + +> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) + + +## Install + +``` +$ npm install --save is-fullwidth-code-point +``` + + +## Usage + +```js +const isFullwidthCodePoint = require('is-fullwidth-code-point'); + +isFullwidthCodePoint('谢'.codePointAt()); +//=> true + +isFullwidthCodePoint('a'.codePointAt()); +//=> false +``` + + +## API + +### isFullwidthCodePoint(input) + +#### input + +Type: `number` + +[Code point](https://en.wikipedia.org/wiki/Code_point) of a character. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/ansi-align/node_modules/string-width/index.js b/node_modules/ansi-align/node_modules/string-width/index.js new file mode 100644 index 00000000..33c9d6c0 --- /dev/null +++ b/node_modules/ansi-align/node_modules/string-width/index.js @@ -0,0 +1,39 @@ +'use strict'; +const stripAnsi = require('strip-ansi'); +const isFullwidthCodePoint = require('is-fullwidth-code-point'); +const emojiRegex = require('emoji-regex')(); + +module.exports = input => { + input = input.replace(emojiRegex, ' '); + + if (typeof input !== 'string' || input.length === 0) { + return 0; + } + + input = stripAnsi(input); + + let width = 0; + + for (let i = 0; i < input.length; i++) { + const code = input.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; +}; diff --git a/node_modules/ansi-align/node_modules/string-width/license b/node_modules/ansi-align/node_modules/string-width/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/ansi-align/node_modules/string-width/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-align/node_modules/string-width/package.json b/node_modules/ansi-align/node_modules/string-width/package.json new file mode 100644 index 00000000..e8118a31 --- /dev/null +++ b/node_modules/ansi-align/node_modules/string-width/package.json @@ -0,0 +1,88 @@ +{ + "_from": "string-width@^3.0.0", + "_id": "string-width@3.1.0", + "_inBundle": false, + "_integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "_location": "/ansi-align/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "string-width@^3.0.0", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/ansi-align" + ], + "_resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "_shasum": "22767be21b62af1081574306f69ac51b62203961", + "_spec": "string-width@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\ansi-align", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "bundleDependencies": false, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "deprecated": false, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "^1.0.1", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "keywords": [ + "string", + "str", + "character", + "char", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "3.1.0" +} diff --git a/node_modules/ansi-align/node_modules/string-width/readme.md b/node_modules/ansi-align/node_modules/string-width/readme.md new file mode 100644 index 00000000..d39d95f5 --- /dev/null +++ b/node_modules/ansi-align/node_modules/string-width/readme.md @@ -0,0 +1,45 @@ +# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width) + +> Get the visual width of a string - the number of columns required to display it + +Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. + +Useful to be able to measure the actual width of command-line output. + + +## Install + +``` +$ npm install string-width +``` + + +## Usage + +```js +const stringWidth = require('string-width'); + +stringWidth('古'); +//=> 2 + +stringWidth('\u001b[1m古\u001b[22m'); +//=> 2 + +stringWidth('a'); +//=> 1 + +stringWidth('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +// => 5 +``` + + +## Related + +- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module +- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string +- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/ansi-align/node_modules/strip-ansi/index.d.ts b/node_modules/ansi-align/node_modules/strip-ansi/index.d.ts new file mode 100644 index 00000000..44e954d0 --- /dev/null +++ b/node_modules/ansi-align/node_modules/strip-ansi/index.d.ts @@ -0,0 +1,15 @@ +/** +Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string. + +@example +``` +import stripAnsi from 'strip-ansi'; + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` +*/ +export default function stripAnsi(string: string): string; diff --git a/node_modules/ansi-align/node_modules/strip-ansi/index.js b/node_modules/ansi-align/node_modules/strip-ansi/index.js new file mode 100644 index 00000000..9788c96d --- /dev/null +++ b/node_modules/ansi-align/node_modules/strip-ansi/index.js @@ -0,0 +1,7 @@ +'use strict'; +const ansiRegex = require('ansi-regex'); + +const stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; + +module.exports = stripAnsi; +module.exports.default = stripAnsi; diff --git a/node_modules/ansi-align/node_modules/strip-ansi/license b/node_modules/ansi-align/node_modules/strip-ansi/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/ansi-align/node_modules/strip-ansi/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-align/node_modules/strip-ansi/package.json b/node_modules/ansi-align/node_modules/strip-ansi/package.json new file mode 100644 index 00000000..179e2301 --- /dev/null +++ b/node_modules/ansi-align/node_modules/strip-ansi/package.json @@ -0,0 +1,86 @@ +{ + "_from": "strip-ansi@^5.1.0", + "_id": "strip-ansi@5.2.0", + "_inBundle": false, + "_integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "_location": "/ansi-align/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "strip-ansi@^5.1.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "^5.1.0", + "saveSpec": null, + "fetchSpec": "^5.1.0" + }, + "_requiredBy": [ + "/ansi-align/string-width" + ], + "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "_shasum": "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae", + "_spec": "strip-ansi@^5.1.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\ansi-align\\node_modules\\string-width", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "bundleDependencies": false, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "deprecated": false, + "description": "Strip ANSI escape codes from a string", + "devDependencies": { + "ava": "^1.3.1", + "tsd-check": "^0.5.0", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "version": "5.2.0" +} diff --git a/node_modules/ansi-align/node_modules/strip-ansi/readme.md b/node_modules/ansi-align/node_modules/strip-ansi/readme.md new file mode 100644 index 00000000..8681fe8a --- /dev/null +++ b/node_modules/ansi-align/node_modules/strip-ansi/readme.md @@ -0,0 +1,61 @@ +# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) + +> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string + +--- + +
+ + Get professional support for 'strip-ansi' with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- + +## Install + +``` +$ npm install strip-ansi +``` + + +## Usage + +```js +const stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` + + +## Security + +To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. + + +## Related + +- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module +- [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Streaming version of this module +- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes +- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +## License + +MIT diff --git a/node_modules/ansi-align/package.json b/node_modules/ansi-align/package.json new file mode 100644 index 00000000..deecebff --- /dev/null +++ b/node_modules/ansi-align/package.json @@ -0,0 +1,70 @@ +{ + "_from": "ansi-align@^3.0.0", + "_id": "ansi-align@3.0.0", + "_inBundle": false, + "_integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "_location": "/ansi-align", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ansi-align@^3.0.0", + "name": "ansi-align", + "escapedName": "ansi-align", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/boxen" + ], + "_resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "_shasum": "b536b371cf687caaef236c18d3e21fe3797467cb", + "_spec": "ansi-align@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\boxen", + "author": { + "name": "nexdrew" + }, + "bugs": { + "url": "https://github.com/nexdrew/ansi-align/issues" + }, + "bundleDependencies": false, + "dependencies": { + "string-width": "^3.0.0" + }, + "deprecated": false, + "description": "align-text with ANSI support for CLIs", + "devDependencies": { + "ava": "^1.0.1", + "chalk": "^2.4.1", + "coveralls": "^3.0.2", + "nyc": "^13.1.0", + "standard": "^12.0.1", + "standard-version": "^4.4.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/nexdrew/ansi-align#readme", + "keywords": [ + "ansi", + "align", + "cli", + "center", + "pad" + ], + "license": "ISC", + "main": "index.js", + "name": "ansi-align", + "repository": { + "type": "git", + "url": "git+https://github.com/nexdrew/ansi-align.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "nyc ava" + }, + "version": "3.0.0" +} diff --git a/node_modules/ansi-regex/index.d.ts b/node_modules/ansi-regex/index.d.ts new file mode 100644 index 00000000..2dbf6af2 --- /dev/null +++ b/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/node_modules/ansi-regex/index.js b/node_modules/ansi-regex/index.js new file mode 100644 index 00000000..35054aa6 --- /dev/null +++ b/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\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' + ].join('|'); + + return new RegExp(pattern, onlyFirst ? undefined : 'g'); +}; diff --git a/node_modules/ansi-regex/license b/node_modules/ansi-regex/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/ansi-regex/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-regex/package.json b/node_modules/ansi-regex/package.json new file mode 100644 index 00000000..b8468a86 --- /dev/null +++ b/node_modules/ansi-regex/package.json @@ -0,0 +1,87 @@ +{ + "_from": "ansi-regex@^5.0.0", + "_id": "ansi-regex@5.0.0", + "_inBundle": false, + "_integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "_location": "/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ansi-regex@^5.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "^5.0.0", + "saveSpec": null, + "fetchSpec": "^5.0.0" + }, + "_requiredBy": [ + "/strip-ansi" + ], + "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "_shasum": "388539f55179bf39339c81af30a654d69f87cb75", + "_spec": "ansi-regex@^5.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\strip-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.9.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava && tsd", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "5.0.0" +} diff --git a/node_modules/ansi-regex/readme.md b/node_modules/ansi-regex/readme.md new file mode 100644 index 00000000..3c2b77c4 --- /dev/null +++ b/node_modules/ansi-regex/readme.md @@ -0,0 +1,78 @@ +# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex) + +> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) + + +## Install + +``` +$ npm install ansi-regex +``` + + +## Usage + +```js +const ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] + +'\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'] +``` + + +## API + +### ansiRegex(options?) + +Returns a regex for matching ANSI escape codes. + +#### options + +Type: `object` + +##### onlyFirst + +Type: `boolean`
+Default: `false` *(Matches any ANSI escape codes in a string)* + +Match only the first ANSI escape. + + +## FAQ + +### Why do you test for codes not in the ECMA 48 standard? + +Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. + +On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/ansi-styles/index.d.ts b/node_modules/ansi-styles/index.d.ts new file mode 100644 index 00000000..7e9b2b71 --- /dev/null +++ b/node_modules/ansi-styles/index.d.ts @@ -0,0 +1,197 @@ +import * as cssColors from 'color-name'; + +declare namespace ansiStyles { + interface ColorConvert { + /** + The RGB color space. + + @param red - (`0`-`255`) + @param green - (`0`-`255`) + @param blue - (`0`-`255`) + */ + rgb(red: number, green: number, blue: number): string; + + /** + The RGB HEX color space. + + @param hex - A hexadecimal string containing RGB data. + */ + hex(hex: string): string; + + /** + @param keyword - A CSS color name. + */ + keyword(keyword: keyof typeof cssColors): string; + + /** + The HSL color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param lightness - (`0`-`100`) + */ + hsl(hue: number, saturation: number, lightness: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param value - (`0`-`100`) + */ + hsv(hue: number, saturation: number, value: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param whiteness - (`0`-`100`) + @param blackness - (`0`-`100`) + */ + hwb(hue: number, whiteness: number, blackness: number): string; + + /** + Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color. + */ + ansi(ansi: number): string; + + /** + Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(ansi: number): string; + } + + interface CSPair { + /** + The ANSI terminal control sequence for starting this style. + */ + readonly open: string; + + /** + The ANSI terminal control sequence for ending this style. + */ + readonly close: string; + } + + interface ColorBase { + readonly ansi: ColorConvert; + readonly ansi256: ColorConvert; + readonly ansi16m: ColorConvert; + + /** + The ANSI terminal control sequence for ending this color. + */ + readonly close: string; + } + + interface Modifier { + /** + Resets the current color chain. + */ + readonly reset: CSPair; + + /** + Make text bold. + */ + readonly bold: CSPair; + + /** + Emitting only a small amount of light. + */ + readonly dim: CSPair; + + /** + Make text italic. (Not widely supported) + */ + readonly italic: CSPair; + + /** + Make text underline. (Not widely supported) + */ + readonly underline: CSPair; + + /** + Inverse background and foreground colors. + */ + readonly inverse: CSPair; + + /** + Prints the text, but makes it invisible. + */ + readonly hidden: CSPair; + + /** + Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: CSPair; + } + + interface ForegroundColor { + readonly black: CSPair; + readonly red: CSPair; + readonly green: CSPair; + readonly yellow: CSPair; + readonly blue: CSPair; + readonly cyan: CSPair; + readonly magenta: CSPair; + readonly white: CSPair; + + /** + Alias for `blackBright`. + */ + readonly gray: CSPair; + + /** + Alias for `blackBright`. + */ + readonly grey: CSPair; + + readonly blackBright: CSPair; + readonly redBright: CSPair; + readonly greenBright: CSPair; + readonly yellowBright: CSPair; + readonly blueBright: CSPair; + readonly cyanBright: CSPair; + readonly magentaBright: CSPair; + readonly whiteBright: CSPair; + } + + interface BackgroundColor { + readonly bgBlack: CSPair; + readonly bgRed: CSPair; + readonly bgGreen: CSPair; + readonly bgYellow: CSPair; + readonly bgBlue: CSPair; + readonly bgCyan: CSPair; + readonly bgMagenta: CSPair; + readonly bgWhite: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGray: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGrey: CSPair; + + readonly bgBlackBright: CSPair; + readonly bgRedBright: CSPair; + readonly bgGreenBright: CSPair; + readonly bgYellowBright: CSPair; + readonly bgBlueBright: CSPair; + readonly bgCyanBright: CSPair; + readonly bgMagentaBright: CSPair; + readonly bgWhiteBright: CSPair; + } +} + +declare const ansiStyles: { + readonly modifier: ansiStyles.Modifier; + readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase; + readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase; + readonly codes: ReadonlyMap; +} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier; + +export = ansiStyles; diff --git a/node_modules/ansi-styles/index.js b/node_modules/ansi-styles/index.js new file mode 100644 index 00000000..5d82581a --- /dev/null +++ b/node_modules/ansi-styles/index.js @@ -0,0 +1,163 @@ +'use strict'; + +const wrapAnsi16 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${code + offset}m`; +}; + +const wrapAnsi256 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${38 + offset};5;${code}m`; +}; + +const wrapAnsi16m = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; + +const ansi2ansi = n => n; +const rgb2rgb = (r, g, b) => [r, g, b]; + +const setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); + + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); + + return value; + }, + enumerable: true, + configurable: true + }); +}; + +/** @type {typeof import('color-convert')} */ +let colorConvert; +const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = require('color-convert'); + } + + const offset = isBackground ? 10 : 0; + const styles = {}; + + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + if (sourceSpace === targetSpace) { + styles[name] = wrap(identity, offset); + } else if (typeof suite === 'object') { + styles[name] = wrap(suite[targetSpace], offset); + } + } + + return styles; +}; + +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + + // Bright color + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + + // Alias bright black as gray (and grey) + styles.color.gray = styles.color.blackBright; + styles.bgColor.bgGray = styles.bgColor.bgBlackBright; + styles.color.grey = styles.color.blackBright; + styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; + + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + + group[styleName] = styles[styleName]; + + codes.set(style[0], style[1]); + } + + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } + + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + + setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); + setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); + + return styles; +} + +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); diff --git a/node_modules/ansi-styles/license b/node_modules/ansi-styles/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/ansi-styles/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-styles/package.json b/node_modules/ansi-styles/package.json new file mode 100644 index 00000000..80ddd438 --- /dev/null +++ b/node_modules/ansi-styles/package.json @@ -0,0 +1,89 @@ +{ + "_from": "ansi-styles@^4.0.0", + "_id": "ansi-styles@4.2.1", + "_inBundle": false, + "_integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "_location": "/ansi-styles", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ansi-styles@^4.0.0", + "name": "ansi-styles", + "escapedName": "ansi-styles", + "rawSpec": "^4.0.0", + "saveSpec": null, + "fetchSpec": "^4.0.0" + }, + "_requiredBy": [ + "/wrap-ansi" + ], + "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "_shasum": "90ae75c424d008d2624c5bf29ead3177ebfcf359", + "_spec": "ansi-styles@^4.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\wrap-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "deprecated": false, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava && tsd" + }, + "version": "4.2.1" +} diff --git a/node_modules/ansi-styles/readme.md b/node_modules/ansi-styles/readme.md new file mode 100644 index 00000000..2a1ef654 --- /dev/null +++ b/node_modules/ansi-styles/readme.md @@ -0,0 +1,158 @@ +# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) + +> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal + +You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. + + + +## Install + +``` +$ npm install ansi-styles +``` + +## Usage + +```js +const style = require('ansi-styles'); + +console.log(`${style.green.open}Hello world!${style.green.close}`); + + +// Color conversion between 16/256/truecolor +// NOTE: If conversion goes to 16 colors or 256 colors, the original color +// may be degraded to fit that color palette. This means terminals +// that do not support 16 million colors will best-match the +// original color. +console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); +console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); +console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); +``` + +## API + +Each style has an `open` and `close` property. + +## Styles + +### Modifiers + +- `reset` +- `bold` +- `dim` +- `italic` *(Not widely supported)* +- `underline` +- `inverse` +- `hidden` +- `strikethrough` *(Not widely supported)* + +### Colors + +- `black` +- `red` +- `green` +- `yellow` +- `blue` +- `magenta` +- `cyan` +- `white` +- `blackBright` (alias: `gray`, `grey`) +- `redBright` +- `greenBright` +- `yellowBright` +- `blueBright` +- `magentaBright` +- `cyanBright` +- `whiteBright` + +### Background colors + +- `bgBlack` +- `bgRed` +- `bgGreen` +- `bgYellow` +- `bgBlue` +- `bgMagenta` +- `bgCyan` +- `bgWhite` +- `bgBlackBright` (alias: `bgGray`, `bgGrey`) +- `bgRedBright` +- `bgGreenBright` +- `bgYellowBright` +- `bgBlueBright` +- `bgMagentaBright` +- `bgCyanBright` +- `bgWhiteBright` + +## Advanced usage + +By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. + +- `style.modifier` +- `style.color` +- `style.bgColor` + +###### Example + +```js +console.log(style.color.green.open); +``` + +Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. + +###### Example + +```js +console.log(style.codes.get(36)); +//=> 39 +``` + +## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) + +`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. + +The following color spaces from `color-convert` are supported: + +- `rgb` +- `hex` +- `keyword` +- `hsl` +- `hsv` +- `hwb` +- `ansi` +- `ansi256` + +To use these, call the associated conversion function with the intended output, for example: + +```js +style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code +style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code + +style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code +style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code + +style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code +style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code +``` + +## Related + +- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/anymatch/LICENSE b/node_modules/anymatch/LICENSE new file mode 100644 index 00000000..491766ca --- /dev/null +++ b/node_modules/anymatch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.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/node_modules/anymatch/README.md b/node_modules/anymatch/README.md new file mode 100644 index 00000000..1dd67f53 --- /dev/null +++ b/node_modules/anymatch/README.md @@ -0,0 +1,87 @@ +anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master) +====== +Javascript module to match a string against a regular expression, glob, string, +or function that takes the string as an argument and returns a truthy or falsy +value. The matcher can also be an array of any or all of these. Useful for +allowing a very flexible user-defined config to define things like file paths. + +__Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__ + + +Usage +----- +```sh +npm install anymatch +``` + +#### anymatch(matchers, testString, [returnIndex], [options]) +* __matchers__: (_Array|String|RegExp|Function_) +String to be directly matched, string with glob patterns, regular expression +test, function that takes the testString as an argument and returns a truthy +value if it should be matched, or an array of any number and mix of these types. +* __testString__: (_String|Array_) The string to test against the matchers. If +passed as an array, the first element of the array will be used as the +`testString` for non-function matchers, while the entire array will be applied +as the arguments for function matchers. +* __options__: (_Object_ [optional]_) Any of the [picomatch](https://github.com/micromatch/picomatch#options) options. + * __returnIndex__: (_Boolean [optional]_) If true, return the array index of +the first matcher that that testString matched, or -1 if no match, instead of a +boolean result. + +```js +const anymatch = require('anymatch'); + +const matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, string => string.includes('bar') && string.length > 10 ] ; + +anymatch(matchers, 'path/to/file.js'); // true +anymatch(matchers, 'path/anyjs/baz.js'); // true +anymatch(matchers, 'path/to/foo.js'); // true +anymatch(matchers, 'path/to/bar.js'); // true +anymatch(matchers, 'bar.js'); // false + +// returnIndex = true +anymatch(matchers, 'foo.js', {returnIndex: true}); // 2 +anymatch(matchers, 'path/anyjs/foo.js', {returnIndex: true}); // 1 + +// any picomatc + +// using globs to match directories and their children +anymatch('node_modules', 'node_modules'); // true +anymatch('node_modules', 'node_modules/somelib/index.js'); // false +anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true +anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false +anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true + +const matcher = anymatch(matchers); +['foo.js', 'bar.js'].filter(matcher); // [ 'foo.js' ] +anymatch master* ❯ + +``` + +#### anymatch(matchers) +You can also pass in only your matcher(s) to get a curried function that has +already been bound to the provided matching criteria. This can be used as an +`Array#filter` callback. + +```js +var matcher = anymatch(matchers); + +matcher('path/to/file.js'); // true +matcher('path/anyjs/baz.js', true); // 1 + +['foo.js', 'bar.js'].filter(matcher); // ['foo.js'] +``` + +Changelog +---------- +[See release notes page on GitHub](https://github.com/micromatch/anymatch/releases) + +- **v3.0:** Removed `startIndex` and `endIndex` arguments. Node 8.x-only. +- **v2.0:** [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information). +- **v1.2:** anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch) +for glob pattern matching. Issues with glob pattern matching should be +reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues). + +License +------- +[ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE) diff --git a/node_modules/anymatch/index.d.ts b/node_modules/anymatch/index.d.ts new file mode 100644 index 00000000..196d0617 --- /dev/null +++ b/node_modules/anymatch/index.d.ts @@ -0,0 +1,19 @@ +type AnymatchFn = (testString: string) => boolean; +type AnymatchPattern = string|RegExp|AnymatchFn; +type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] +type AnymatchTester = { + (testString: string|any[], returnIndex: true): number; + (testString: string|any[]): boolean; +} + +type PicomatchOptions = {dot: boolean}; + +declare const anymatch: { + (matchers: AnymatchMatcher): AnymatchTester; + (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; + (matchers: AnymatchMatcher, testString: string|any[]): boolean; +} + +export {AnymatchMatcher as Matcher} +export {AnymatchTester as Tester} +export default anymatch diff --git a/node_modules/anymatch/index.js b/node_modules/anymatch/index.js new file mode 100644 index 00000000..24529c8a --- /dev/null +++ b/node_modules/anymatch/index.js @@ -0,0 +1,102 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { value: true }); + +const picomatch = require('picomatch'); +const normalizePath = require('normalize-path'); + +/** + * @typedef {(testString: string) => boolean} AnymatchFn + * @typedef {string|RegExp|AnymatchFn} AnymatchPattern + * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher + */ +const BANG = '!'; +const DEFAULT_OPTIONS = {returnIndex: false}; +const arrify = (item) => Array.isArray(item) ? item : [item]; + +/** + * @param {AnymatchPattern} matcher + * @param {object} options + * @returns {AnymatchFn} + */ +const createPattern = (matcher, options) => { + if (typeof matcher === 'function') { + return matcher; + } + if (typeof matcher === 'string') { + const glob = picomatch(matcher, options); + return (string) => matcher === string || glob(string); + } + if (matcher instanceof RegExp) { + return (string) => matcher.test(string); + } + return (string) => false; +}; + +/** + * @param {Array} patterns + * @param {Array} negPatterns + * @param {String|Array} args + * @param {Boolean} returnIndex + * @returns {boolean|number} + */ +const matchPatterns = (patterns, negPatterns, args, returnIndex) => { + const isList = Array.isArray(args); + const _path = isList ? args[0] : args; + if (!isList && typeof _path !== 'string') { + throw new TypeError('anymatch: second argument must be a string: got ' + + Object.prototype.toString.call(_path)) + } + const path = normalizePath(_path); + + for (let index = 0; index < negPatterns.length; index++) { + const nglob = negPatterns[index]; + if (nglob(path)) { + return returnIndex ? -1 : false; + } + } + + const applied = isList && [path].concat(args.slice(1)); + for (let index = 0; index < patterns.length; index++) { + const pattern = patterns[index]; + if (isList ? pattern(...applied) : pattern(path)) { + return returnIndex ? index : true; + } + } + + return returnIndex ? -1 : false; +}; + +/** + * @param {AnymatchMatcher} matchers + * @param {Array|string} testString + * @param {object} options + * @returns {boolean|number|Function} + */ +const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { + if (matchers == null) { + throw new TypeError('anymatch: specify first argument'); + } + const opts = typeof options === 'boolean' ? {returnIndex: options} : options; + const returnIndex = opts.returnIndex || false; + + // Early cache for matchers. + const mtchers = arrify(matchers); + const negatedGlobs = mtchers + .filter(item => typeof item === 'string' && item.charAt(0) === BANG) + .map(item => item.slice(1)) + .map(item => picomatch(item, opts)); + const patterns = mtchers.map(matcher => createPattern(matcher, opts)); + + if (testString == null) { + return (testString, ri = false) => { + const returnIndex = typeof ri === 'boolean' ? ri : false; + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); + } + } + + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); +}; + +anymatch.default = anymatch; +module.exports = anymatch; diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json new file mode 100644 index 00000000..63c61599 --- /dev/null +++ b/node_modules/anymatch/package.json @@ -0,0 +1,76 @@ +{ + "_from": "anymatch@~3.1.1", + "_id": "anymatch@3.1.1", + "_inBundle": false, + "_integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "_location": "/anymatch", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "anymatch@~3.1.1", + "name": "anymatch", + "escapedName": "anymatch", + "rawSpec": "~3.1.1", + "saveSpec": null, + "fetchSpec": "~3.1.1" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "_shasum": "c55ecf02185e2469259399310c173ce31233b142", + "_spec": "anymatch@~3.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\chokidar", + "author": { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + "bugs": { + "url": "https://github.com/micromatch/anymatch/issues" + }, + "bundleDependencies": false, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "deprecated": false, + "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", + "devDependencies": { + "mocha": "^6.1.3", + "nyc": "^14.0.0" + }, + "engines": { + "node": ">= 8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/micromatch/anymatch", + "keywords": [ + "match", + "any", + "string", + "file", + "fs", + "list", + "glob", + "regex", + "regexp", + "regular", + "expression", + "function" + ], + "license": "ISC", + "name": "anymatch", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/anymatch.git" + }, + "scripts": { + "mocha": "mocha", + "test": "nyc mocha" + }, + "version": "3.1.1" +} diff --git a/node_modules/array-flatten/LICENSE b/node_modules/array-flatten/LICENSE new file mode 100644 index 00000000..983fbe8a --- /dev/null +++ b/node_modules/array-flatten/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/array-flatten/README.md b/node_modules/array-flatten/README.md new file mode 100644 index 00000000..91fa5b63 --- /dev/null +++ b/node_modules/array-flatten/README.md @@ -0,0 +1,43 @@ +# Array Flatten + +[![NPM version][npm-image]][npm-url] +[![NPM downloads][downloads-image]][downloads-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] + +> Flatten an array of nested arrays into a single flat array. Accepts an optional depth. + +## Installation + +``` +npm install array-flatten --save +``` + +## Usage + +```javascript +var flatten = require('array-flatten') + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) +//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2) +//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] + +(function () { + flatten(arguments) //=> [1, 2, 3] +})(1, [2, 3]) +``` + +## License + +MIT + +[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat +[npm-url]: https://npmjs.org/package/array-flatten +[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat +[downloads-url]: https://npmjs.org/package/array-flatten +[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat +[travis-url]: https://travis-ci.org/blakeembrey/array-flatten +[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat +[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master diff --git a/node_modules/array-flatten/array-flatten.js b/node_modules/array-flatten/array-flatten.js new file mode 100644 index 00000000..089117b3 --- /dev/null +++ b/node_modules/array-flatten/array-flatten.js @@ -0,0 +1,64 @@ +'use strict' + +/** + * Expose `arrayFlatten`. + */ +module.exports = arrayFlatten + +/** + * Recursive flatten function with depth. + * + * @param {Array} array + * @param {Array} result + * @param {Number} depth + * @return {Array} + */ +function flattenWithDepth (array, result, depth) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (depth > 0 && Array.isArray(value)) { + flattenWithDepth(value, result, depth - 1) + } else { + result.push(value) + } + } + + return result +} + +/** + * Recursive flatten function. Omitting depth is slightly faster. + * + * @param {Array} array + * @param {Array} result + * @return {Array} + */ +function flattenForever (array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (Array.isArray(value)) { + flattenForever(value, result) + } else { + result.push(value) + } + } + + return result +} + +/** + * Flatten an array, with the ability to define a depth. + * + * @param {Array} array + * @param {Number} depth + * @return {Array} + */ +function arrayFlatten (array, depth) { + if (depth == null) { + return flattenForever(array, []) + } + + return flattenWithDepth(array, [], depth) +} diff --git a/node_modules/array-flatten/package.json b/node_modules/array-flatten/package.json new file mode 100644 index 00000000..7fa8da69 --- /dev/null +++ b/node_modules/array-flatten/package.json @@ -0,0 +1,64 @@ +{ + "_from": "array-flatten@1.1.1", + "_id": "array-flatten@1.1.1", + "_inBundle": false, + "_integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "_location": "/array-flatten", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "array-flatten@1.1.1", + "name": "array-flatten", + "escapedName": "array-flatten", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "_shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2", + "_spec": "array-flatten@1.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "bugs": { + "url": "https://github.com/blakeembrey/array-flatten/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Flatten an array of nested arrays into a single flat array", + "devDependencies": { + "istanbul": "^0.3.13", + "mocha": "^2.2.4", + "pre-commit": "^1.0.7", + "standard": "^3.7.3" + }, + "files": [ + "array-flatten.js", + "LICENSE" + ], + "homepage": "https://github.com/blakeembrey/array-flatten", + "keywords": [ + "array", + "flatten", + "arguments", + "depth" + ], + "license": "MIT", + "main": "array-flatten.js", + "name": "array-flatten", + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "version": "1.1.1" +} diff --git a/node_modules/asn1/LICENSE b/node_modules/asn1/LICENSE new file mode 100644 index 00000000..9b5dcdb7 --- /dev/null +++ b/node_modules/asn1/LICENSE @@ -0,0 +1,19 @@ +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/node_modules/asn1/README.md b/node_modules/asn1/README.md new file mode 100644 index 00000000..2208210a --- /dev/null +++ b/node_modules/asn1/README.md @@ -0,0 +1,50 @@ +node-asn1 is a library for encoding and decoding ASN.1 datatypes in pure JS. +Currently BER encoding is supported; at some point I'll likely have to do DER. + +## Usage + +Mostly, if you're *actually* needing to read and write ASN.1, you probably don't +need this readme to explain what and why. If you have no idea what ASN.1 is, +see this: ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc + +The source is pretty much self-explanatory, and has read/write methods for the +common types out there. + +### Decoding + +The following reads an ASN.1 sequence with a boolean. + + var Ber = require('asn1').Ber; + + var reader = new Ber.Reader(Buffer.from([0x30, 0x03, 0x01, 0x01, 0xff])); + + reader.readSequence(); + console.log('Sequence len: ' + reader.length); + if (reader.peek() === Ber.Boolean) + console.log(reader.readBoolean()); + +### Encoding + +The following generates the same payload as above. + + var Ber = require('asn1').Ber; + + var writer = new Ber.Writer(); + + writer.startSequence(); + writer.writeBoolean(true); + writer.endSequence(); + + console.log(writer.buffer); + +## Installation + + npm install asn1 + +## License + +MIT. + +## Bugs + +See . diff --git a/node_modules/asn1/lib/ber/errors.js b/node_modules/asn1/lib/ber/errors.js new file mode 100644 index 00000000..4557b8ae --- /dev/null +++ b/node_modules/asn1/lib/ber/errors.js @@ -0,0 +1,13 @@ +// Copyright 2011 Mark Cavage All rights reserved. + + +module.exports = { + + newInvalidAsn1Error: function (msg) { + var e = new Error(); + e.name = 'InvalidAsn1Error'; + e.message = msg || ''; + return e; + } + +}; diff --git a/node_modules/asn1/lib/ber/index.js b/node_modules/asn1/lib/ber/index.js new file mode 100644 index 00000000..387d1326 --- /dev/null +++ b/node_modules/asn1/lib/ber/index.js @@ -0,0 +1,27 @@ +// Copyright 2011 Mark Cavage 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/node_modules/asn1/lib/ber/reader.js b/node_modules/asn1/lib/ber/reader.js new file mode 100644 index 00000000..8a7e4ca0 --- /dev/null +++ b/node_modules/asn1/lib/ber/reader.js @@ -0,0 +1,262 @@ +// Copyright 2011 Mark Cavage 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/node_modules/asn1/lib/ber/types.js b/node_modules/asn1/lib/ber/types.js new file mode 100644 index 00000000..8aea0001 --- /dev/null +++ b/node_modules/asn1/lib/ber/types.js @@ -0,0 +1,36 @@ +// Copyright 2011 Mark Cavage 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/node_modules/asn1/lib/ber/writer.js b/node_modules/asn1/lib/ber/writer.js new file mode 100644 index 00000000..3515acf7 --- /dev/null +++ b/node_modules/asn1/lib/ber/writer.js @@ -0,0 +1,317 @@ +// Copyright 2011 Mark Cavage 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/node_modules/asn1/lib/index.js b/node_modules/asn1/lib/index.js new file mode 100644 index 00000000..ede3ab23 --- /dev/null +++ b/node_modules/asn1/lib/index.js @@ -0,0 +1,20 @@ +// Copyright 2011 Mark Cavage 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/node_modules/asn1/package.json b/node_modules/asn1/package.json new file mode 100644 index 00000000..27ea7660 --- /dev/null +++ b/node_modules/asn1/package.json @@ -0,0 +1,75 @@ +{ + "_from": "asn1@~0.2.3", + "_id": "asn1@0.2.4", + "_inBundle": false, + "_integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "_location": "/asn1", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "asn1@~0.2.3", + "name": "asn1", + "escapedName": "asn1", + "rawSpec": "~0.2.3", + "saveSpec": null, + "fetchSpec": "~0.2.3" + }, + "_requiredBy": [ + "/sshpk" + ], + "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "_shasum": "8d2475dfab553bb33e77b54e59e880bb8ce23136", + "_spec": "asn1@~0.2.3", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\sshpk", + "author": { + "name": "Joyent", + "url": "joyent.com" + }, + "bugs": { + "url": "https://github.com/joyent/node-asn1/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + { + "name": "David Gwynne", + "email": "loki@animata.net" + }, + { + "name": "Yunong Xiao", + "email": "yunong@joyent.com" + }, + { + "name": "Alex Wilson", + "email": "alex.wilson@joyent.com" + } + ], + "dependencies": { + "safer-buffer": "~2.1.0" + }, + "deprecated": false, + "description": "Contains parsers and serializers for ASN.1 (currently BER only)", + "devDependencies": { + "eslint": "2.13.1", + "eslint-plugin-joyent": "~1.3.0", + "faucet": "0.0.1", + "istanbul": "^0.3.6", + "tape": "^3.5.0" + }, + "homepage": "https://github.com/joyent/node-asn1#readme", + "license": "MIT", + "main": "lib/index.js", + "name": "asn1", + "repository": { + "type": "git", + "url": "git://github.com/joyent/node-asn1.git" + }, + "scripts": { + "test": "tape ./test/ber/*.test.js" + }, + "version": "0.2.4" +} diff --git a/node_modules/assert-plus/AUTHORS b/node_modules/assert-plus/AUTHORS new file mode 100644 index 00000000..1923524f --- /dev/null +++ b/node_modules/assert-plus/AUTHORS @@ -0,0 +1,6 @@ +Dave Eddy +Fred Kuo +Lars-Magnus Skog +Mark Cavage +Patrick Mooney +Rob Gulewich diff --git a/node_modules/assert-plus/CHANGES.md b/node_modules/assert-plus/CHANGES.md new file mode 100644 index 00000000..57d92bfd --- /dev/null +++ b/node_modules/assert-plus/CHANGES.md @@ -0,0 +1,14 @@ +# 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/node_modules/assert-plus/README.md b/node_modules/assert-plus/README.md new file mode 100644 index 00000000..ec200d16 --- /dev/null +++ b/node_modules/assert-plus/README.md @@ -0,0 +1,162 @@ +# assert-plus + +This library is a super small wrapper over node's assert module that has two +things: (1) the ability to disable assertions with the environment variable +NODE\_NDEBUG, and (2) some API wrappers for argument testing. Like +`assert.string(myArg, 'myArg')`. As a simple example, most of my code looks +like this: + +```javascript + var assert = require('assert-plus'); + + function fooAccount(options, callback) { + assert.object(options, 'options'); + assert.number(options.id, 'options.id'); + assert.bool(options.isManager, 'options.isManager'); + assert.string(options.name, 'options.name'); + assert.arrayOfString(options.email, 'options.email'); + assert.func(callback, 'callback'); + + // Do stuff + callback(null, {}); + } +``` + +# API + +All methods that *aren't* part of node's core assert API are simply assumed to +take an argument, and then a string 'name' that's not a message; `AssertionError` +will be thrown if the assertion fails with a message like: + + AssertionError: foo (string) is required + at test (/home/mark/work/foo/foo.js:3:9) + at Object. (/home/mark/work/foo/foo.js:15:1) + at Module._compile (module.js:446:26) + at Object..js (module.js:464:10) + at Module.load (module.js:353:31) + at Function._load (module.js:311:12) + at Array.0 (module.js:484:10) + at EventEmitter._tickCallback (node.js:190:38) + +from: + +```javascript + function test(foo) { + assert.string(foo, 'foo'); + } +``` + +There you go. You can check that arrays are of a homogeneous type with `Arrayof$Type`: + +```javascript + function test(foo) { + assert.arrayOfString(foo, 'foo'); + } +``` + +You can assert IFF an argument is not `undefined` (i.e., an optional arg): + +```javascript + assert.optionalString(foo, 'foo'); +``` + +Lastly, you can opt-out of assertion checking altogether by setting the +environment variable `NODE_NDEBUG=1`. This is pseudo-useful if you have +lots of assertions, and don't want to pay `typeof ()` taxes to v8 in +production. Be advised: The standard functions re-exported from `assert` are +also disabled in assert-plus if NDEBUG is specified. Using them directly from +the `assert` module avoids this behavior. + +The complete list of APIs is: + +* assert.array +* assert.bool +* assert.buffer +* assert.func +* assert.number +* assert.finite +* assert.object +* assert.string +* assert.stream +* assert.date +* assert.regexp +* assert.uuid +* assert.arrayOfArray +* assert.arrayOfBool +* assert.arrayOfBuffer +* assert.arrayOfFunc +* assert.arrayOfNumber +* assert.arrayOfFinite +* assert.arrayOfObject +* assert.arrayOfString +* assert.arrayOfStream +* assert.arrayOfDate +* assert.arrayOfRegexp +* assert.arrayOfUuid +* assert.optionalArray +* assert.optionalBool +* assert.optionalBuffer +* assert.optionalFunc +* assert.optionalNumber +* assert.optionalFinite +* assert.optionalObject +* assert.optionalString +* assert.optionalStream +* assert.optionalDate +* assert.optionalRegexp +* assert.optionalUuid +* assert.optionalArrayOfArray +* assert.optionalArrayOfBool +* assert.optionalArrayOfBuffer +* assert.optionalArrayOfFunc +* assert.optionalArrayOfNumber +* assert.optionalArrayOfFinite +* assert.optionalArrayOfObject +* assert.optionalArrayOfString +* assert.optionalArrayOfStream +* assert.optionalArrayOfDate +* assert.optionalArrayOfRegexp +* assert.optionalArrayOfUuid +* assert.AssertionError +* assert.fail +* assert.ok +* assert.equal +* assert.notEqual +* assert.deepEqual +* assert.notDeepEqual +* assert.strictEqual +* assert.notStrictEqual +* assert.throws +* assert.doesNotThrow +* assert.ifError + +# Installation + + npm install assert-plus + +## License + +The MIT License (MIT) +Copyright (c) 2012 Mark Cavage + +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. + +## Bugs + +See . diff --git a/node_modules/assert-plus/assert.js b/node_modules/assert-plus/assert.js new file mode 100644 index 00000000..26f944ee --- /dev/null +++ b/node_modules/assert-plus/assert.js @@ -0,0 +1,211 @@ +// 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/node_modules/assert-plus/package.json b/node_modules/assert-plus/package.json new file mode 100644 index 00000000..c0977c2c --- /dev/null +++ b/node_modules/assert-plus/package.json @@ -0,0 +1,87 @@ +{ + "_from": "assert-plus@^1.0.0", + "_id": "assert-plus@1.0.0", + "_inBundle": false, + "_integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "_location": "/assert-plus", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "assert-plus@^1.0.0", + "name": "assert-plus", + "escapedName": "assert-plus", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/dashdash", + "/getpass", + "/http-signature", + "/jsprim", + "/sshpk", + "/verror" + ], + "_resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "_shasum": "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525", + "_spec": "assert-plus@^1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\http-signature", + "author": { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + "bugs": { + "url": "https://github.com/mcavage/node-assert-plus/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Dave Eddy", + "email": "dave@daveeddy.com" + }, + { + "name": "Fred Kuo", + "email": "fred.kuo@joyent.com" + }, + { + "name": "Lars-Magnus Skog", + "email": "ralphtheninja@riseup.net" + }, + { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + { + "name": "Patrick Mooney", + "email": "pmooney@pfmooney.com" + }, + { + "name": "Rob Gulewich", + "email": "robert.gulewich@joyent.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Extra assertions on top of node's assert module", + "devDependencies": { + "faucet": "0.0.1", + "tape": "4.2.2" + }, + "engines": { + "node": ">=0.8" + }, + "homepage": "https://github.com/mcavage/node-assert-plus#readme", + "license": "MIT", + "main": "./assert.js", + "name": "assert-plus", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/mcavage/node-assert-plus.git" + }, + "scripts": { + "test": "tape tests/*.js | ./node_modules/.bin/faucet" + }, + "version": "1.0.0" +} diff --git a/node_modules/asynckit/LICENSE b/node_modules/asynckit/LICENSE new file mode 100644 index 00000000..c9eca5dd --- /dev/null +++ b/node_modules/asynckit/LICENSE @@ -0,0 +1,21 @@ +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/node_modules/asynckit/README.md b/node_modules/asynckit/README.md new file mode 100644 index 00000000..ddcc7e6b --- /dev/null +++ b/node_modules/asynckit/README.md @@ -0,0 +1,233 @@ +# asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit) + +Minimal async jobs utility library, with streams support. + +[![PhantomJS Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=browser&style=flat)](https://travis-ci.org/alexindigo/asynckit) +[![Linux Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=linux:0.12-6.x&style=flat)](https://travis-ci.org/alexindigo/asynckit) +[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/asynckit/v0.4.0.svg?label=windows:0.12-6.x&style=flat)](https://ci.appveyor.com/project/alexindigo/asynckit) + +[![Coverage Status](https://img.shields.io/coveralls/alexindigo/asynckit/v0.4.0.svg?label=code+coverage&style=flat)](https://coveralls.io/github/alexindigo/asynckit?branch=master) +[![Dependency Status](https://img.shields.io/david/alexindigo/asynckit/v0.4.0.svg?style=flat)](https://david-dm.org/alexindigo/asynckit) +[![bitHound Overall Score](https://www.bithound.io/github/alexindigo/asynckit/badges/score.svg)](https://www.bithound.io/github/alexindigo/asynckit) + + + +AsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects. +Optionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method. + +It ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators. + +| compression | size | +| :----------------- | -------: | +| asynckit.js | 12.34 kB | +| asynckit.min.js | 4.11 kB | +| asynckit.min.js.gz | 1.47 kB | + + +## Install + +```sh +$ npm install --save asynckit +``` + +## Examples + +### Parallel Jobs + +Runs iterator over provided array in parallel. Stores output in the `result` array, +on the matching positions. In unlikely event of an error from one of the jobs, +will terminate rest of the active jobs (if abort function is provided) +and return error along with salvaged data to the main callback function. + +#### Input Array + +```javascript +var parallel = require('asynckit').parallel + , assert = require('assert') + ; + +var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] + , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] + , target = [] + ; + +parallel(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); +}); + +// async job accepts one element from the array +// and a callback function +function asyncJob(item, cb) +{ + // different delays (in ms) per item + var delay = item * 25; + + // pretend different jobs take different time to finish + // and not in consequential order + var timeoutId = setTimeout(function() { + target.push(item); + cb(null, item * 2); + }, delay); + + // allow to cancel "leftover" jobs upon error + // return function, invoking of which will abort this job + return clearTimeout.bind(null, timeoutId); +} +``` + +More examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js). + +#### Input Object + +Also it supports named jobs, listed via object. + +```javascript +var parallel = require('asynckit/parallel') + , assert = require('assert') + ; + +var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } + , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } + , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] + , expectedKeys = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ] + , target = [] + , keys = [] + ; + +parallel(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); + assert.deepEqual(keys, expectedKeys); +}); + +// supports full value, key, callback (shortcut) interface +function asyncJob(item, key, cb) +{ + // different delays (in ms) per item + var delay = item * 25; + + // pretend different jobs take different time to finish + // and not in consequential order + var timeoutId = setTimeout(function() { + keys.push(key); + target.push(item); + cb(null, item * 2); + }, delay); + + // allow to cancel "leftover" jobs upon error + // return function, invoking of which will abort this job + return clearTimeout.bind(null, timeoutId); +} +``` + +More examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js). + +### Serial Jobs + +Runs iterator over provided array sequentially. Stores output in the `result` array, +on the matching positions. In unlikely event of an error from one of the jobs, +will not proceed to the rest of the items in the list +and return error along with salvaged data to the main callback function. + +#### Input Array + +```javascript +var serial = require('asynckit/serial') + , assert = require('assert') + ; + +var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] + , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] + , target = [] + ; + +serial(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); +}); + +// extended interface (item, key, callback) +// also supported for arrays +function asyncJob(item, key, cb) +{ + target.push(key); + + // it will be automatically made async + // even it iterator "returns" in the same event loop + cb(null, item * 2); +} +``` + +More examples could be found in [test/test-serial-array.js](test/test-serial-array.js). + +#### Input Object + +Also it supports named jobs, listed via object. + +```javascript +var serial = require('asynckit').serial + , assert = require('assert') + ; + +var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] + , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] + , target = [] + ; + +var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } + , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } + , expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ] + , target = [] + ; + + +serial(source, asyncJob, function(err, result) +{ + assert.deepEqual(result, expectedResult); + assert.deepEqual(target, expectedTarget); +}); + +// shortcut interface (item, callback) +// works for object as well as for the arrays +function asyncJob(item, cb) +{ + target.push(item); + + // it will be automatically made async + // even it iterator "returns" in the same event loop + cb(null, item * 2); +} +``` + +More examples could be found in [test/test-serial-object.js](test/test-serial-object.js). + +_Note: Since _object_ is an _unordered_ collection of properties, +it may produce unexpected results with sequential iterations. +Whenever order of the jobs' execution is important please use `serialOrdered` method._ + +### Ordered Serial Iterations + +TBD + +For example [compare-property](compare-property) package. + +### Streaming interface + +TBD + +## Want to Know More? + +More examples can be found in [test folder](test/). + +Or open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions. + +## License + +AsyncKit is licensed under the MIT license. diff --git a/node_modules/asynckit/bench.js b/node_modules/asynckit/bench.js new file mode 100644 index 00000000..c612f1a5 --- /dev/null +++ b/node_modules/asynckit/bench.js @@ -0,0 +1,76 @@ +/* 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/node_modules/asynckit/index.js b/node_modules/asynckit/index.js new file mode 100644 index 00000000..455f9454 --- /dev/null +++ b/node_modules/asynckit/index.js @@ -0,0 +1,6 @@ +module.exports = +{ + parallel : require('./parallel.js'), + serial : require('./serial.js'), + serialOrdered : require('./serialOrdered.js') +}; diff --git a/node_modules/asynckit/lib/abort.js b/node_modules/asynckit/lib/abort.js new file mode 100644 index 00000000..114367e5 --- /dev/null +++ b/node_modules/asynckit/lib/abort.js @@ -0,0 +1,29 @@ +// 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/node_modules/asynckit/lib/async.js b/node_modules/asynckit/lib/async.js new file mode 100644 index 00000000..7f1288a4 --- /dev/null +++ b/node_modules/asynckit/lib/async.js @@ -0,0 +1,34 @@ +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/node_modules/asynckit/lib/defer.js b/node_modules/asynckit/lib/defer.js new file mode 100644 index 00000000..b67110c7 --- /dev/null +++ b/node_modules/asynckit/lib/defer.js @@ -0,0 +1,26 @@ +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/node_modules/asynckit/lib/iterate.js b/node_modules/asynckit/lib/iterate.js new file mode 100644 index 00000000..5d2839a5 --- /dev/null +++ b/node_modules/asynckit/lib/iterate.js @@ -0,0 +1,75 @@ +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/node_modules/asynckit/lib/readable_asynckit.js b/node_modules/asynckit/lib/readable_asynckit.js new file mode 100644 index 00000000..78ad240f --- /dev/null +++ b/node_modules/asynckit/lib/readable_asynckit.js @@ -0,0 +1,91 @@ +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/node_modules/asynckit/lib/readable_parallel.js b/node_modules/asynckit/lib/readable_parallel.js new file mode 100644 index 00000000..5d2929f7 --- /dev/null +++ b/node_modules/asynckit/lib/readable_parallel.js @@ -0,0 +1,25 @@ +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/node_modules/asynckit/lib/readable_serial.js b/node_modules/asynckit/lib/readable_serial.js new file mode 100644 index 00000000..78226982 --- /dev/null +++ b/node_modules/asynckit/lib/readable_serial.js @@ -0,0 +1,25 @@ +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/node_modules/asynckit/lib/readable_serial_ordered.js b/node_modules/asynckit/lib/readable_serial_ordered.js new file mode 100644 index 00000000..3de89c47 --- /dev/null +++ b/node_modules/asynckit/lib/readable_serial_ordered.js @@ -0,0 +1,29 @@ +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/node_modules/asynckit/lib/state.js b/node_modules/asynckit/lib/state.js new file mode 100644 index 00000000..cbea7ad8 --- /dev/null +++ b/node_modules/asynckit/lib/state.js @@ -0,0 +1,37 @@ +// 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/node_modules/asynckit/lib/streamify.js b/node_modules/asynckit/lib/streamify.js new file mode 100644 index 00000000..f56a1c92 --- /dev/null +++ b/node_modules/asynckit/lib/streamify.js @@ -0,0 +1,141 @@ +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/node_modules/asynckit/lib/terminator.js b/node_modules/asynckit/lib/terminator.js new file mode 100644 index 00000000..d6eb9921 --- /dev/null +++ b/node_modules/asynckit/lib/terminator.js @@ -0,0 +1,29 @@ +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/node_modules/asynckit/package.json b/node_modules/asynckit/package.json new file mode 100644 index 00000000..54d1ab43 --- /dev/null +++ b/node_modules/asynckit/package.json @@ -0,0 +1,91 @@ +{ + "_from": "asynckit@^0.4.0", + "_id": "asynckit@0.4.0", + "_inBundle": false, + "_integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "_location": "/asynckit", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "asynckit@^0.4.0", + "name": "asynckit", + "escapedName": "asynckit", + "rawSpec": "^0.4.0", + "saveSpec": null, + "fetchSpec": "^0.4.0" + }, + "_requiredBy": [ + "/form-data" + ], + "_resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "_shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79", + "_spec": "asynckit@^0.4.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\form-data", + "author": { + "name": "Alex Indigo", + "email": "iam@alexindigo.com" + }, + "bugs": { + "url": "https://github.com/alexindigo/asynckit/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Minimal async jobs utility library, with streams support", + "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" + }, + "homepage": "https://github.com/alexindigo/asynckit#readme", + "keywords": [ + "async", + "jobs", + "parallel", + "serial", + "iterator", + "array", + "object", + "stream", + "destroy", + "terminate", + "abort" + ], + "license": "MIT", + "main": "index.js", + "name": "asynckit", + "pre-commit": [ + "clean", + "lint", + "test", + "browser", + "report", + "size" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/alexindigo/asynckit.git" + }, + "scripts": { + "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec", + "clean": "rimraf coverage", + "debug": "tape test/test-*.js", + "lint": "eslint *.js lib/*.js test/*.js", + "report": "istanbul report", + "size": "browserify index.js | size-table asynckit", + "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec", + "win-test": "tape test/test-*.js" + }, + "version": "0.4.0" +} diff --git a/node_modules/asynckit/parallel.js b/node_modules/asynckit/parallel.js new file mode 100644 index 00000000..3c50344d --- /dev/null +++ b/node_modules/asynckit/parallel.js @@ -0,0 +1,43 @@ +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/node_modules/asynckit/serial.js b/node_modules/asynckit/serial.js new file mode 100644 index 00000000..6cd949a6 --- /dev/null +++ b/node_modules/asynckit/serial.js @@ -0,0 +1,17 @@ +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/node_modules/asynckit/serialOrdered.js b/node_modules/asynckit/serialOrdered.js new file mode 100644 index 00000000..607eafea --- /dev/null +++ b/node_modules/asynckit/serialOrdered.js @@ -0,0 +1,75 @@ +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/node_modules/asynckit/stream.js b/node_modules/asynckit/stream.js new file mode 100644 index 00000000..d43465f9 --- /dev/null +++ b/node_modules/asynckit/stream.js @@ -0,0 +1,21 @@ +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/node_modules/aws-sign2/LICENSE b/node_modules/aws-sign2/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/aws-sign2/LICENSE @@ -0,0 +1,55 @@ +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/node_modules/aws-sign2/README.md b/node_modules/aws-sign2/README.md new file mode 100644 index 00000000..763564e0 --- /dev/null +++ b/node_modules/aws-sign2/README.md @@ -0,0 +1,4 @@ +aws-sign +======== + +AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module. diff --git a/node_modules/aws-sign2/index.js b/node_modules/aws-sign2/index.js new file mode 100644 index 00000000..fb35f6db --- /dev/null +++ b/node_modules/aws-sign2/index.js @@ -0,0 +1,212 @@ + +/*! + * Copyright 2010 LearnBoost + * + * 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 :" + * + * @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: + * + * \n + * \n + * \n + * \n + * [headers\n] + * + * + * @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: + * + * \n + * + * + * @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/node_modules/aws-sign2/package.json b/node_modules/aws-sign2/package.json new file mode 100644 index 00000000..862cb992 --- /dev/null +++ b/node_modules/aws-sign2/package.json @@ -0,0 +1,50 @@ +{ + "_from": "aws-sign2@~0.7.0", + "_id": "aws-sign2@0.7.0", + "_inBundle": false, + "_integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "_location": "/aws-sign2", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "aws-sign2@~0.7.0", + "name": "aws-sign2", + "escapedName": "aws-sign2", + "rawSpec": "~0.7.0", + "saveSpec": null, + "fetchSpec": "~0.7.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "_shasum": "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8", + "_spec": "aws-sign2@~0.7.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\request", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "bugs": { + "url": "https://github.com/mikeal/aws-sign/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.", + "devDependencies": {}, + "engines": { + "node": "*" + }, + "homepage": "https://github.com/mikeal/aws-sign#readme", + "license": "Apache-2.0", + "main": "index.js", + "name": "aws-sign2", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/aws-sign.git" + }, + "version": "0.7.0" +} diff --git a/node_modules/aws4/.github/FUNDING.yml b/node_modules/aws4/.github/FUNDING.yml new file mode 100644 index 00000000..b7fdd974 --- /dev/null +++ b/node_modules/aws4/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# These are supported funding model platforms + +github: mhart diff --git a/node_modules/aws4/.travis.yml b/node_modules/aws4/.travis.yml new file mode 100644 index 00000000..178bf31e --- /dev/null +++ b/node_modules/aws4/.travis.yml @@ -0,0 +1,9 @@ +language: node_js +node_js: + - "0.10" + - "0.12" + - "4" + - "6" + - "8" + - "10" + - "12" diff --git a/node_modules/aws4/LICENSE b/node_modules/aws4/LICENSE new file mode 100644 index 00000000..4f321e59 --- /dev/null +++ b/node_modules/aws4/LICENSE @@ -0,0 +1,19 @@ +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/node_modules/aws4/README.md b/node_modules/aws4/README.md new file mode 100644 index 00000000..7202e452 --- /dev/null +++ b/node_modules/aws4/README.md @@ -0,0 +1,183 @@ +aws4 +---- + +[![Build Status](https://api.travis-ci.org/mhart/aws4.png?branch=master)](https://travis-ci.org/github/mhart/aws4) + +A small utility to sign vanilla Node.js http(s) request options using Amazon's +[AWS Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + +If you want to sign and send AWS requests in a modern browser, or an environment like [Cloudflare Workers](https://developers.cloudflare.com/workers/), then check out [aws4fetch](https://github.com/mhart/aws4fetch) – otherwise you can also bundle this library for use [in older browsers](./browser). + +The only AWS service that *doesn't* support v4 as of 2020-05-22 is +[SimpleDB](https://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API.html) +(it only supports [AWS Signature Version 2](https://github.com/mhart/aws2)). + +It also provides defaults for a number of core AWS headers and +request parameters, making it very easy to query AWS services, or +build out a fully-featured AWS library. + +Example +------- + +```javascript +var https = require('https') +var aws4 = require('aws4') + +// to illustrate usage, we'll create a utility function to request and pipe to stdout +function request(opts) { https.request(opts, function(res) { res.pipe(process.stdout) }).end(opts.body || '') } + +// aws4 will sign an options object as you'd pass to http.request, with an AWS service and region +var opts = { host: 'my-bucket.s3.us-west-1.amazonaws.com', path: '/my-object', service: 's3', region: 'us-west-1' } + +// aws4.sign() will sign and modify these options, ready to pass to http.request +aws4.sign(opts, { accessKeyId: '', secretAccessKey: '' }) + +// or it can get credentials from process.env.AWS_ACCESS_KEY_ID, etc +aws4.sign(opts) + +// for most AWS services, aws4 can figure out the service and region if you pass a host +opts = { host: 'my-bucket.s3.us-west-1.amazonaws.com', path: '/my-object' } + +// usually it will add/modify request headers, but you can also sign the query: +opts = { host: 'my-bucket.s3.amazonaws.com', path: '/?X-Amz-Expires=12345', signQuery: true } + +// and for services with simple hosts, aws4 can infer the host from service and region: +opts = { service: 'sqs', region: 'us-east-1', path: '/?Action=ListQueues' } + +// and if you're using us-east-1, it's the default: +opts = { service: 'sqs', path: '/?Action=ListQueues' } + +aws4.sign(opts) +console.log(opts) +/* +{ + host: 'sqs.us-east-1.amazonaws.com', + path: '/?Action=ListQueues', + headers: { + Host: 'sqs.us-east-1.amazonaws.com', + 'X-Amz-Date': '20121226T061030Z', + Authorization: 'AWS4-HMAC-SHA256 Credential=ABCDEF/20121226/us-east-1/sqs/aws4_request, ...' + } +} +*/ + +// we can now use this to query AWS +request(opts) +/* + + +... +*/ + +// aws4 can infer the HTTP method if a body is passed in +// method will be POST and Content-Type: 'application/x-www-form-urlencoded; charset=utf-8' +request(aws4.sign({ service: 'iam', body: 'Action=ListGroups&Version=2010-05-08' })) +/* + +... +*/ + +// you can specify any custom option or header as per usual +request(aws4.sign({ + service: 'dynamodb', + region: 'ap-southeast-2', + method: 'POST', + path: '/', + headers: { + 'Content-Type': 'application/x-amz-json-1.0', + 'X-Amz-Target': 'DynamoDB_20120810.ListTables' + }, + body: '{}' +})) +/* +{"TableNames":[]} +... +*/ + +// The raw RequestSigner can be used to generate CodeCommit Git passwords +var signer = new aws4.RequestSigner({ + service: 'codecommit', + host: 'git-codecommit.us-east-1.amazonaws.com', + method: 'GIT', + path: '/v1/repos/MyAwesomeRepo', +}) +var password = signer.getDateTime() + 'Z' + signer.signature() + +// see example.js for examples with other services +``` + +API +--- + +### aws4.sign(requestOptions, [credentials]) + +Calculates and populates any necessary AWS headers and/or request +options on `requestOptions`. Returns `requestOptions` as a convenience for chaining. + +`requestOptions` is an object holding the same options that the Node.js +[http.request](https://nodejs.org/docs/latest/api/http.html#http_http_request_options_callback) +function takes. + +The following properties of `requestOptions` are used in the signing or +populated if they don't already exist: + +- `hostname` or `host` (will try to be determined from `service` and `region` if not given) +- `method` (will use `'GET'` if not given or `'POST'` if there is a `body`) +- `path` (will use `'/'` if not given) +- `body` (will use `''` if not given) +- `service` (will try to be calculated from `hostname` or `host` if not given) +- `region` (will try to be calculated from `hostname` or `host` or use `'us-east-1'` if not given) +- `signQuery` (to sign the query instead of adding an `Authorization` header, defaults to false) +- `headers['Host']` (will use `hostname` or `host` or be calculated if not given) +- `headers['Content-Type']` (will use `'application/x-www-form-urlencoded; charset=utf-8'` + if not given and there is a `body`) +- `headers['Date']` (used to calculate the signature date if given, otherwise `new Date` is used) + +Your AWS credentials (which can be found in your +[AWS console](https://portal.aws.amazon.com/gp/aws/securityCredentials)) +can be specified in one of two ways: + +- As the second argument, like this: + +```javascript +aws4.sign(requestOptions, { + secretAccessKey: "", + accessKeyId: "", + sessionToken: "" +}) +``` + +- From `process.env`, such as this: + +``` +export AWS_ACCESS_KEY_ID="" +export AWS_SECRET_ACCESS_KEY="" +export AWS_SESSION_TOKEN="" +``` + +(will also use `AWS_ACCESS_KEY` and `AWS_SECRET_KEY` if available) + +The `sessionToken` property and `AWS_SESSION_TOKEN` environment variable are optional for signing +with [IAM STS temporary credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html). + +Installation +------------ + +With [npm](https://www.npmjs.com/) do: + +``` +npm install aws4 +``` + +Can also be used [in the browser](./browser). + +Thanks +------ + +Thanks to [@jed](https://github.com/jed) for his +[dynamo-client](https://github.com/jed/dynamo-client) lib where I first +committed and subsequently extracted this code. + +Also thanks to the +[official Node.js AWS SDK](https://github.com/aws/aws-sdk-js) for giving +me a start on implementing the v4 signature. diff --git a/node_modules/aws4/aws4.js b/node_modules/aws4/aws4.js new file mode 100644 index 00000000..8c772597 --- /dev/null +++ b/node_modules/aws4/aws4.js @@ -0,0 +1,357 @@ +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)) +} + +// 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) + .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() }) + .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/node_modules/aws4/lru.js b/node_modules/aws4/lru.js new file mode 100644 index 00000000..333f66a4 --- /dev/null +++ b/node_modules/aws4/lru.js @@ -0,0 +1,96 @@ +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/node_modules/aws4/package.json b/node_modules/aws4/package.json new file mode 100644 index 00000000..80e57364 --- /dev/null +++ b/node_modules/aws4/package.json @@ -0,0 +1,53 @@ +{ + "_from": "aws4@^1.8.0", + "_id": "aws4@1.10.1", + "_inBundle": false, + "_integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "_location": "/aws4", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "aws4@^1.8.0", + "name": "aws4", + "escapedName": "aws4", + "rawSpec": "^1.8.0", + "saveSpec": null, + "fetchSpec": "^1.8.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", + "_shasum": "e1e82e4f3e999e2cfd61b161280d16a111f86428", + "_spec": "aws4@^1.8.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\request", + "author": { + "name": "Michael Hart", + "email": "michael.hart.au@gmail.com", + "url": "https://github.com/mhart" + }, + "bugs": { + "url": "https://github.com/mhart/aws4/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Signs and prepares requests using AWS Signature Version 4", + "devDependencies": { + "mocha": "^2.5.3", + "should": "^8.4.0" + }, + "homepage": "https://github.com/mhart/aws4#readme", + "license": "MIT", + "main": "aws4.js", + "name": "aws4", + "repository": { + "type": "git", + "url": "git+https://github.com/mhart/aws4.git" + }, + "scripts": { + "integration": "node ./test/slow.js", + "test": "mocha ./test/fast.js -R list" + }, + "version": "1.10.1" +} diff --git a/node_modules/balanced-match/.npmignore b/node_modules/balanced-match/.npmignore new file mode 100644 index 00000000..ae5d8c36 --- /dev/null +++ b/node_modules/balanced-match/.npmignore @@ -0,0 +1,5 @@ +test +.gitignore +.travis.yml +Makefile +example.js diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md new file mode 100644 index 00000000..2cdc8e41 --- /dev/null +++ b/node_modules/balanced-match/LICENSE.md @@ -0,0 +1,21 @@ +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/balanced-match/README.md b/node_modules/balanced-match/README.md new file mode 100644 index 00000000..08e918c0 --- /dev/null +++ b/node_modules/balanced-match/README.md @@ -0,0 +1,91 @@ +# balanced-match + +Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! + +[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) +[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) + +[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) + +## Example + +Get the first matching pair of braces: + +```js +var balanced = require('balanced-match'); + +console.log(balanced('{', '}', 'pre{in{nested}}post')); +console.log(balanced('{', '}', 'pre{first}between{second}post')); +console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); +``` + +The matches are: + +```bash +$ node example.js +{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } +{ start: 3, + end: 9, + pre: 'pre', + body: 'first', + post: 'between{second}post' } +{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } +``` + +## API + +### var m = balanced(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +object with those keys: + +* **start** the index of the first match of `a` +* **end** the index of the matching `b` +* **pre** the preamble, `a` and `b` not included +* **body** the match, `a` and `b` not included +* **post** the postscript, `a` and `b` not included + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. + +### var r = balanced.range(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +array with indexes: `[ , ]`. + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install balanced-match +``` + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/balanced-match/index.js b/node_modules/balanced-match/index.js new file mode 100644 index 00000000..1685a762 --- /dev/null +++ b/node_modules/balanced-match/index.js @@ -0,0 +1,59 @@ +'use strict'; +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json new file mode 100644 index 00000000..262368f2 --- /dev/null +++ b/node_modules/balanced-match/package.json @@ -0,0 +1,77 @@ +{ + "_from": "balanced-match@^1.0.0", + "_id": "balanced-match@1.0.0", + "_inBundle": false, + "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "_location": "/balanced-match", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "balanced-match@^1.0.0", + "name": "balanced-match", + "escapedName": "balanced-match", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/brace-expansion" + ], + "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767", + "_spec": "balanced-match@^1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\brace-expansion", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/balanced-match/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "homepage": "https://github.com/juliangruber/balanced-match", + "keywords": [ + "match", + "regexp", + "test", + "balanced", + "parse" + ], + "license": "MIT", + "main": "index.js", + "name": "balanced-match", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "scripts": { + "bench": "make bench", + "test": "make test" + }, + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "version": "1.0.0" +} diff --git a/node_modules/bcrypt-pbkdf/CONTRIBUTING.md b/node_modules/bcrypt-pbkdf/CONTRIBUTING.md new file mode 100644 index 00000000..401d34ed --- /dev/null +++ b/node_modules/bcrypt-pbkdf/CONTRIBUTING.md @@ -0,0 +1,13 @@ +# 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/node_modules/bcrypt-pbkdf/LICENSE b/node_modules/bcrypt-pbkdf/LICENSE new file mode 100644 index 00000000..fc58d2ab --- /dev/null +++ b/node_modules/bcrypt-pbkdf/LICENSE @@ -0,0 +1,66 @@ +The Blowfish portions are under the following license: + +Blowfish block cipher for OpenBSD +Copyright 1997 Niels Provos +All rights reserved. + +Implementation advice by David Mazieres . + +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 + +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 + +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/node_modules/bcrypt-pbkdf/README.md b/node_modules/bcrypt-pbkdf/README.md new file mode 100644 index 00000000..7551f335 --- /dev/null +++ b/node_modules/bcrypt-pbkdf/README.md @@ -0,0 +1,45 @@ +Port of the OpenBSD `bcrypt_pbkdf` function to pure Javascript. `npm`-ified +version of [Devi Mandiri's port](https://github.com/devi/tmp/blob/master/js/bcrypt_pbkdf.js), +with some minor performance improvements. The code is copied verbatim (and +un-styled) from Devi's work. + +This product includes software developed by Niels Provos. + +## API + +### `bcrypt_pbkdf.pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds)` + +Derive a cryptographic key of arbitrary length from a given password and salt, +using the OpenBSD `bcrypt_pbkdf` function. This is a combination of Blowfish and +SHA-512. + +See [this article](http://www.tedunangst.com/flak/post/bcrypt-pbkdf) for +further information. + +Parameters: + + * `pass`, a Uint8Array of length `passlen` + * `passlen`, an integer Number + * `salt`, a Uint8Array of length `saltlen` + * `saltlen`, an integer Number + * `key`, a Uint8Array of length `keylen`, will be filled with output + * `keylen`, an integer Number + * `rounds`, an integer Number, number of rounds of the PBKDF to run + +### `bcrypt_pbkdf.hash(sha2pass, sha2salt, out)` + +Calculate a Blowfish hash, given SHA2-512 output of a password and salt. Used as +part of the inner round function in the PBKDF. + +Parameters: + + * `sha2pass`, a Uint8Array of length 64 + * `sha2salt`, a Uint8Array of length 64 + * `out`, a Uint8Array of length 32, will be filled with output + +## License + +This source form 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. For each of the full license texts see `LICENSE`. diff --git a/node_modules/bcrypt-pbkdf/index.js b/node_modules/bcrypt-pbkdf/index.js new file mode 100644 index 00000000..b1b5ad4b --- /dev/null +++ b/node_modules/bcrypt-pbkdf/index.js @@ -0,0 +1,556 @@ +'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 + */ + +/* + * The Blowfish portions are under the following license: + * + * Blowfish block cipher for OpenBSD + * Copyright 1997 Niels Provos + * All rights reserved. + * + * Implementation advice by David Mazieres . + * + * 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 + * + * 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 + * + * 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/node_modules/bcrypt-pbkdf/package.json b/node_modules/bcrypt-pbkdf/package.json new file mode 100644 index 00000000..406fcb7c --- /dev/null +++ b/node_modules/bcrypt-pbkdf/package.json @@ -0,0 +1,44 @@ +{ + "_from": "bcrypt-pbkdf@^1.0.0", + "_id": "bcrypt-pbkdf@1.0.2", + "_inBundle": false, + "_integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "_location": "/bcrypt-pbkdf", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "bcrypt-pbkdf@^1.0.0", + "name": "bcrypt-pbkdf", + "escapedName": "bcrypt-pbkdf", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/sshpk" + ], + "_resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "_shasum": "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e", + "_spec": "bcrypt-pbkdf@^1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\sshpk", + "bugs": { + "url": "https://github.com/joyent/node-bcrypt-pbkdf/issues" + }, + "bundleDependencies": false, + "dependencies": { + "tweetnacl": "^0.14.3" + }, + "deprecated": false, + "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS", + "devDependencies": {}, + "homepage": "https://github.com/joyent/node-bcrypt-pbkdf#readme", + "license": "BSD-3-Clause", + "main": "index.js", + "name": "bcrypt-pbkdf", + "repository": { + "type": "git", + "url": "git://github.com/joyent/node-bcrypt-pbkdf.git" + }, + "version": "1.0.2" +} diff --git a/node_modules/bcryptjs/.npmignore b/node_modules/bcryptjs/.npmignore new file mode 100644 index 00000000..e14a5749 --- /dev/null +++ b/node_modules/bcryptjs/.npmignore @@ -0,0 +1,6 @@ +node_modules/ +npm-debug.log +debug.log +doco/ +tests/bench.js +*.png diff --git a/node_modules/bcryptjs/.travis.yml b/node_modules/bcryptjs/.travis.yml new file mode 100644 index 00000000..e2ed92d6 --- /dev/null +++ b/node_modules/bcryptjs/.travis.yml @@ -0,0 +1,18 @@ +language: node_js + +node_js: + - 0.10 + - 0.12 + - 4 + - 6 + +before_script: npm -g install testjs + +env: + - CXX=g++-4.8 +addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.8 diff --git a/node_modules/bcryptjs/.vscode/settings.json b/node_modules/bcryptjs/.vscode/settings.json new file mode 100644 index 00000000..0c4a6693 --- /dev/null +++ b/node_modules/bcryptjs/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "vsicons.presets.angular": false +} \ No newline at end of file diff --git a/node_modules/bcryptjs/LICENSE b/node_modules/bcryptjs/LICENSE new file mode 100644 index 00000000..3f6395fa --- /dev/null +++ b/node_modules/bcryptjs/LICENSE @@ -0,0 +1,50 @@ +bcrypt.js +--------- +Copyright (c) 2012 Nevins Bartolomeo +Copyright (c) 2012 Shane Girish +Copyright (c) 2014 Daniel Wirtz + +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. + +isaac.js +-------- +Copyright (c) 2012 Yves-Marie K. Rinquin + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/bcryptjs/README.md b/node_modules/bcryptjs/README.md new file mode 100644 index 00000000..3fd75170 --- /dev/null +++ b/node_modules/bcryptjs/README.md @@ -0,0 +1,251 @@ +bcrypt.js +========= +Optimized bcrypt in JavaScript with zero dependencies. Compatible to the C++ [bcrypt](https://npmjs.org/package/bcrypt) +binding on node.js and also working in the browser. + +build static donate ❤ + + +Security considerations +----------------------- +Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over time, the +iteration count can be increased to make it slower, so it remains resistant to brute-force search attacks even with +increasing computation power. ([see](http://en.wikipedia.org/wiki/Bcrypt)) + +While bcrypt.js is compatible to the C++ bcrypt binding, it is written in pure JavaScript and thus slower ([about 30%](https://github.com/dcodeIO/bcrypt.js/wiki/Benchmark)), effectively reducing the number of iterations that can be +processed in an equal time span. + +The maximum input length is 72 bytes (note that UTF8 encoded characters use up to 4 bytes) and the length of generated +hashes is 60 characters. + +Usage +----- +The library is compatible with CommonJS and AMD loaders and is exposed globally as `dcodeIO.bcrypt` if neither is +available. + +### node.js + +On node.js, the inbuilt [crypto module](http://nodejs.org/api/crypto.html)'s randomBytes interface is used to obtain +secure random numbers. + +`npm install bcryptjs` + +```js +var bcrypt = require('bcryptjs'); +... +``` + +### Browser + +In the browser, bcrypt.js relies on [Web Crypto API](http://www.w3.org/TR/WebCryptoAPI)'s getRandomValues +interface to obtain secure random numbers. If no cryptographically secure source of randomness is available, you may +specify one through [bcrypt.setRandomFallback](https://github.com/dcodeIO/bcrypt.js#setrandomfallbackrandom). + +```js +var bcrypt = dcodeIO.bcrypt; +... +``` + +or + +```js +require.config({ + paths: { "bcrypt": "/path/to/bcrypt.js" } +}); +require(["bcrypt"], function(bcrypt) { + ... +}); +``` + +Usage - Sync +------------ +To hash a password: + +```javascript +var bcrypt = require('bcryptjs'); +var salt = bcrypt.genSaltSync(10); +var hash = bcrypt.hashSync("B4c0/\/", salt); +// Store hash in your password DB. +``` + +To check a password: + +```javascript +// Load hash from your password DB. +bcrypt.compareSync("B4c0/\/", hash); // true +bcrypt.compareSync("not_bacon", hash); // false +``` + +Auto-gen a salt and hash: + +```javascript +var hash = bcrypt.hashSync('bacon', 8); +``` + +Usage - Async +------------- +To hash a password: + +```javascript +var bcrypt = require('bcryptjs'); +bcrypt.genSalt(10, function(err, salt) { + bcrypt.hash("B4c0/\/", salt, function(err, hash) { + // Store hash in your password DB. + }); +}); +``` + +To check a password: + +```javascript +// Load hash from your password DB. +bcrypt.compare("B4c0/\/", hash, function(err, res) { + // res === true +}); +bcrypt.compare("not_bacon", hash, function(err, res) { + // res === false +}); + +// As of bcryptjs 2.4.0, compare returns a promise if callback is omitted: +bcrypt.compare("B4c0/\/", hash).then((res) => { + // res === true +}); +``` + +Auto-gen a salt and hash: + +```javascript +bcrypt.hash('bacon', 8, function(err, hash) { +}); +``` + +**Note:** Under the hood, asynchronisation splits a crypto operation into small chunks. After the completion of a chunk, the execution of the next chunk is placed on the back of [JS event loop queue](https://developer.mozilla.org/en/docs/Web/JavaScript/EventLoop), thus efficiently sharing the computational resources with the other operations in the queue. + +API +--- +### setRandomFallback(random) + +Sets the pseudo random number generator to use as a fallback if neither node's `crypto` module nor the Web Crypto +API is available. Please note: It is highly important that the PRNG used is cryptographically secure and that it is +seeded properly! + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| random | *function(number):!Array.<number>* | Function taking the number of bytes to generate as its sole argument, returning the corresponding array of cryptographically secure random byte values. +| **@see** | | http://nodejs.org/api/crypto.html +| **@see** | | http://www.w3.org/TR/WebCryptoAPI/ + +**Hint:** You might use [isaac.js](https://github.com/rubycon/isaac.js) as a CSPRNG but you still have to make sure to +seed it properly. + +### genSaltSync(rounds=, seed_length=) + +Synchronously generates a salt. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| rounds | *number* | Number of rounds to use, defaults to 10 if omitted +| seed_length | *number* | Not supported. +| **@returns** | *string* | Resulting salt +| **@throws** | *Error* | If a random fallback is required but not set + +### genSalt(rounds=, seed_length=, callback) + +Asynchronously generates a salt. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| rounds | *number | function(Error, string=)* | Number of rounds to use, defaults to 10 if omitted +| seed_length | *number | function(Error, string=)* | Not supported. +| callback | *function(Error, string=)* | Callback receiving the error, if any, and the resulting salt +| **@returns** | *Promise* | If `callback` has been omitted +| **@throws** | *Error* | If `callback` is present but not a function + +### hashSync(s, salt=) + +Synchronously generates a hash for the given string. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | String to hash +| salt | *number | string* | Salt length to generate or salt to use, default to 10 +| **@returns** | *string* | Resulting hash + +### hash(s, salt, callback, progressCallback=) + +Asynchronously generates a hash for the given string. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | String to hash +| salt | *number | string* | Salt length to generate or salt to use +| callback | *function(Error, string=)* | Callback receiving the error, if any, and the resulting hash +| progressCallback | *function(number)* | Callback successively called with the percentage of rounds completed (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. +| **@returns** | *Promise* | If `callback` has been omitted +| **@throws** | *Error* | If `callback` is present but not a function + +### compareSync(s, hash) + +Synchronously tests a string against a hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | String to compare +| hash | *string* | Hash to test against +| **@returns** | *boolean* | true if matching, otherwise false +| **@throws** | *Error* | If an argument is illegal + +### compare(s, hash, callback, progressCallback=) + +Asynchronously compares the given data against the given hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| s | *string* | Data to compare +| hash | *string* | Data to be compared to +| callback | *function(Error, boolean)* | Callback receiving the error, if any, otherwise the result +| progressCallback | *function(number)* | Callback successively called with the percentage of rounds completed (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. +| **@returns** | *Promise* | If `callback` has been omitted +| **@throws** | *Error* | If `callback` is present but not a function + +### getRounds(hash) + +Gets the number of rounds used to encrypt the specified hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| hash | *string* | Hash to extract the used number of rounds from +| **@returns** | *number* | Number of rounds used +| **@throws** | *Error* | If `hash` is not a string + +### getSalt(hash) + +Gets the salt portion from a hash. Does not validate the hash. + +| Parameter | Type | Description +|-----------------|-----------------|--------------- +| hash | *string* | Hash to extract the salt from +| **@returns** | *string* | Extracted salt part +| **@throws** | *Error* | If `hash` is not a string or otherwise invalid + + +Command line +------------ +`Usage: bcrypt [salt]` + +If the input has spaces inside, simply surround it with quotes. + +Downloads +--------- +* [Distributions](https://github.com/dcodeIO/bcrypt.js/tree/master/dist) +* [ZIP-Archive](https://github.com/dcodeIO/bcrypt.js/archive/master.zip) +* [Tarball](https://github.com/dcodeIO/bcrypt.js/tarball/master) + +Credits +------- +Based on work started by Shane Girish at [bcrypt-nodejs](https://github.com/shaneGirish/bcrypt-nodejs) (MIT-licensed), +which is itself based on [javascript-bcrypt](http://code.google.com/p/javascript-bcrypt/) (New BSD-licensed). + +License +------- +New-BSD / MIT ([see](https://github.com/dcodeIO/bcrypt.js/blob/master/LICENSE)) diff --git a/node_modules/bcryptjs/bin/bcrypt b/node_modules/bcryptjs/bin/bcrypt new file mode 100644 index 00000000..4cfc9d90 --- /dev/null +++ b/node_modules/bcryptjs/bin/bcrypt @@ -0,0 +1,25 @@ +#!/usr/bin/env node + +var path = require("path"), + bcrypt = require(path.join(__dirname, '..', 'index.js')), + pkg = require(path.join(__dirname, '..', 'package.json')); + +if (process.argv.length < 3) { + process.stderr.write([ // No dependencies, so we do it from hand. + "", + " |_ _ _ _ |_", + " |_)(_| \\/|_)|_ v"+pkg['version']+" (c) "+pkg['author'], + " / | " + ].join('\n')+'\n\n'+" Usage: "+path.basename(process.argv[1])+" [rounds|salt]\n"); + process.exit(1); +} else { + var salt; + if (process.argv.length > 3) { + salt = process.argv[3]; + var rounds = parseInt(salt, 10); + if (rounds == salt) + salt = bcrypt.genSaltSync(rounds); + } else + salt = bcrypt.genSaltSync(); + process.stdout.write(bcrypt.hashSync(process.argv[2], salt)+"\n"); +} diff --git a/node_modules/bcryptjs/bower.json b/node_modules/bcryptjs/bower.json new file mode 100644 index 00000000..c1524053 --- /dev/null +++ b/node_modules/bcryptjs/bower.json @@ -0,0 +1,22 @@ +{ + "name": "bcryptjs", + "description": "Optimized bcrypt in plain JavaScript with zero dependencies.", + "version": "2.4.3", + "main": "dist/bcrypt.min.js", + "license": "New-BSD", + "homepage": "http://dcode.io/", + "repository": { + "type": "git", + "url": "git://github.com/dcodeIO/bcrypt.js.git" + }, + "keywords": ["bcrypt", "password", "auth", "authentication", "encryption", "crypt", "crypto"], + "dependencies": {}, + "devDependencies": {}, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/node_modules/bcryptjs/dist/README.md b/node_modules/bcryptjs/dist/README.md new file mode 100644 index 00000000..4020f456 --- /dev/null +++ b/node_modules/bcryptjs/dist/README.md @@ -0,0 +1,15 @@ +Distributions +============= +bcrypt.js is available as the following distributions: + +* **[bcrypt.js](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.js)** + contains the commented source code. + +* **[bcrypt.min.js](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.min.js)** + has been compiled with Closure Compiler using advanced optimizations. + +* **[bcrypt.min.map](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.min.map)** + contains the source map generated by Closure Compiler. + +* **[bcrypt.min.js.gz](https://github.com/dcodeIO/bcrypt.js/blob/master/dist/bcrypt.min.js.gz)** + has also been gzipped using `-9`. diff --git a/node_modules/bcryptjs/dist/bcrypt.js b/node_modules/bcryptjs/dist/bcrypt.js new file mode 100644 index 00000000..a50dbeeb --- /dev/null +++ b/node_modules/bcryptjs/dist/bcrypt.js @@ -0,0 +1,1379 @@ +/* + Copyright (c) 2012 Nevins Bartolomeo + Copyright (c) 2012 Shane Girish + Copyright (c) 2014 Daniel Wirtz + + 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. + */ + +/** + * @license bcrypt.js (c) 2013 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bcrypt.js for details + */ +(function(global, factory) { + + /* AMD */ if (typeof define === 'function' && define["amd"]) + define([], factory); + /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) + module["exports"] = factory(); + /* Global */ else + (global["dcodeIO"] = global["dcodeIO"] || {})["bcrypt"] = factory(); + +}(this, function() { + "use strict"; + + /** + * bcrypt namespace. + * @type {Object.} + */ + var bcrypt = {}; + + /** + * The random implementation to use as a fallback. + * @type {?function(number):!Array.} + * @inner + */ + var randomFallback = null; + + /** + * Generates cryptographically secure random bytes. + * @function + * @param {number} len Bytes length + * @returns {!Array.} Random bytes + * @throws {Error} If no random implementation is available + * @inner + */ + function random(len) { + /* node */ if (typeof module !== 'undefined' && module && module['exports']) + try { + return require("crypto")['randomBytes'](len); + } catch (e) {} + /* WCA */ try { + var a; (self['crypto']||self['msCrypto'])['getRandomValues'](a = new Uint32Array(len)); + return Array.prototype.slice.call(a); + } catch (e) {} + /* fallback */ if (!randomFallback) + throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative"); + return randomFallback(len); + } + + // Test if any secure randomness source is available + var randomAvailable = false; + try { + random(1); + randomAvailable = true; + } catch (e) {} + + // Default fallback, if any + randomFallback = null; + /** + * Sets the pseudo random number generator to use as a fallback if neither node's `crypto` module nor the Web Crypto + * API is available. Please note: It is highly important that the PRNG used is cryptographically secure and that it + * is seeded properly! + * @param {?function(number):!Array.} random Function taking the number of bytes to generate as its + * sole argument, returning the corresponding array of cryptographically secure random byte values. + * @see http://nodejs.org/api/crypto.html + * @see http://www.w3.org/TR/WebCryptoAPI/ + */ + bcrypt.setRandomFallback = function(random) { + randomFallback = random; + }; + + /** + * Synchronously generates a salt. + * @param {number=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {number=} seed_length Not supported. + * @returns {string} Resulting salt + * @throws {Error} If a random fallback is required but not set + * @expose + */ + bcrypt.genSaltSync = function(rounds, seed_length) { + rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof rounds !== 'number') + throw Error("Illegal arguments: "+(typeof rounds)+", "+(typeof seed_length)); + if (rounds < 4) + rounds = 4; + else if (rounds > 31) + rounds = 31; + var salt = []; + salt.push("$2a$"); + if (rounds < 10) + salt.push("0"); + salt.push(rounds.toString()); + salt.push('$'); + salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw + return salt.join(''); + }; + + /** + * Asynchronously generates a salt. + * @param {(number|function(Error, string=))=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {(number|function(Error, string=))=} seed_length Not supported. + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting salt + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ + bcrypt.genSalt = function(rounds, seed_length, callback) { + if (typeof seed_length === 'function') + callback = seed_length, + seed_length = undefined; // Not supported. + if (typeof rounds === 'function') + callback = rounds, + rounds = undefined; + if (typeof rounds === 'undefined') + rounds = GENSALT_DEFAULT_LOG2_ROUNDS; + else if (typeof rounds !== 'number') + throw Error("illegal arguments: "+(typeof rounds)); + + function _async(callback) { + nextTick(function() { // Pretty thin, but salting is fast enough + try { + callback(null, bcrypt.genSaltSync(rounds)); + } catch (err) { + callback(err); + } + }); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); + }; + + /** + * Synchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {(number|string)=} salt Salt length to generate or salt to use, default to 10 + * @returns {string} Resulting hash + * @expose + */ + bcrypt.hashSync = function(s, salt) { + if (typeof salt === 'undefined') + salt = GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof salt === 'number') + salt = bcrypt.genSaltSync(salt); + if (typeof s !== 'string' || typeof salt !== 'string') + throw Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)); + return _hash(s, salt); + }; + + /** + * Asynchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {number|string} salt Salt length to generate or salt to use + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash + * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed + * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ + bcrypt.hash = function(s, salt, callback, progressCallback) { + + function _async(callback) { + if (typeof s === 'string' && typeof salt === 'number') + bcrypt.genSalt(salt, function(err, salt) { + _hash(s, salt, callback, progressCallback); + }); + else if (typeof s === 'string' && typeof salt === 'string') + _hash(s, salt, callback, progressCallback); + else + nextTick(callback.bind(this, Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)))); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); + }; + + /** + * Compares two strings of the same length in constant time. + * @param {string} known Must be of the correct length + * @param {string} unknown Must be the same length as `known` + * @returns {boolean} + * @inner + */ + function safeStringCompare(known, unknown) { + var right = 0, + wrong = 0; + for (var i=0, k=known.length; i} UTF8 bytes + * @inner + */ + function stringToBytes(str) { + var out = [], + i = 0; + utfx.encodeUTF16toUTF8(function() { + if (i >= str.length) return null; + return str.charCodeAt(i++); + }, function(b) { + out.push(b); + }); + return out; + } + + // A base64 implementation for the bcrypt algorithm. This is partly non-standard. + + /** + * bcrypt's own non-standard base64 dictionary. + * @type {!Array.} + * @const + * @inner + **/ + var BASE64_CODE = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(''); + + /** + * @type {!Array.} + * @const + * @inner + **/ + var BASE64_INDEX = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, + -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1]; + + /** + * @type {!function(...number):string} + * @inner + */ + var stringFromCharCode = String.fromCharCode; + + /** + * Encodes a byte array to base64 with up to len bytes of input. + * @param {!Array.} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @inner + */ + function base64_encode(b, len) { + var off = 0, + rs = [], + c1, c2; + if (len <= 0 || len > b.length) + throw Error("Illegal len: "+len); + while (off < len) { + c1 = b[off++] & 0xff; + rs.push(BASE64_CODE[(c1 >> 2) & 0x3f]); + c1 = (c1 & 0x03) << 4; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 4) & 0x0f; + rs.push(BASE64_CODE[c1 & 0x3f]); + c1 = (c2 & 0x0f) << 2; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 6) & 0x03; + rs.push(BASE64_CODE[c1 & 0x3f]); + rs.push(BASE64_CODE[c2 & 0x3f]); + } + return rs.join(''); + } + + /** + * Decodes a base64 encoded string to up to len bytes of output. + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @inner + */ + function base64_decode(s, len) { + var off = 0, + slen = s.length, + olen = 0, + rs = [], + c1, c2, c3, c4, o, code; + if (len <= 0) + throw Error("Illegal len: "+len); + while (off < slen - 1 && olen < len) { + code = s.charCodeAt(off++); + c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + code = s.charCodeAt(off++); + c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c1 == -1 || c2 == -1) + break; + o = (c1 << 2) >>> 0; + o |= (c2 & 0x30) >> 4; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c3 == -1) + break; + o = ((c2 & 0x0f) << 4) >>> 0; + o |= (c3 & 0x3c) >> 2; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + o = ((c3 & 0x03) << 6) >>> 0; + o |= c4; + rs.push(stringFromCharCode(o)); + ++olen; + } + var res = []; + for (off = 0; off + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/utfx for details + */ + var utfx = function() { + "use strict"; + + /** + * utfx namespace. + * @inner + * @type {!Object.} + */ + var utfx = {}; + + /** + * Maximum valid code point. + * @type {number} + * @const + */ + utfx.MAX_CODEPOINT = 0x10FFFF; + + /** + * Encodes UTF8 code points to UTF8 bytes. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte + */ + utfx.encodeUTF8 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, + src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp < 0x80) + dst(cp&0x7F); + else if (cp < 0x800) + dst(((cp>>6)&0x1F)|0xC0), + dst((cp&0x3F)|0x80); + else if (cp < 0x10000) + dst(((cp>>12)&0x0F)|0xE0), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + else + dst(((cp>>18)&0x07)|0xF0), + dst(((cp>>12)&0x3F)|0x80), + dst(((cp>>6)&0x3F)|0x80), + dst((cp&0x3F)|0x80); + cp = null; + } + }; + + /** + * Decodes UTF8 bytes to UTF8 code points. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Code points destination as a function successively called with each decoded code point. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the + * remaining bytes. + */ + utfx.decodeUTF8 = function(src, dst) { + var a, b, c, d, fail = function(b) { + b = b.slice(0, b.indexOf(null)); + var err = Error(b.toString()); + err.name = "TruncatedError"; + err['bytes'] = b; + throw err; + }; + while ((a = src()) !== null) { + if ((a&0x80) === 0) + dst(a); + else if ((a&0xE0) === 0xC0) + ((b = src()) === null) && fail([a, b]), + dst(((a&0x1F)<<6) | (b&0x3F)); + else if ((a&0xF0) === 0xE0) + ((b=src()) === null || (c=src()) === null) && fail([a, b, c]), + dst(((a&0x0F)<<12) | ((b&0x3F)<<6) | (c&0x3F)); + else if ((a&0xF8) === 0xF0) + ((b=src()) === null || (c=src()) === null || (d=src()) === null) && fail([a, b, c ,d]), + dst(((a&0x07)<<18) | ((b&0x3F)<<12) | ((c&0x3F)<<6) | (d&0x3F)); + else throw RangeError("Illegal starting byte: "+a); + } + }; + + /** + * Converts UTF16 characters to UTF8 code points. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @param {!function(number)} dst Code points destination as a function successively called with each converted code + * point. + */ + utfx.UTF16toUTF8 = function(src, dst) { + var c1, c2 = null; + while (true) { + if ((c1 = c2 !== null ? c2 : src()) === null) + break; + if (c1 >= 0xD800 && c1 <= 0xDFFF) { + if ((c2 = src()) !== null) { + if (c2 >= 0xDC00 && c2 <= 0xDFFF) { + dst((c1-0xD800)*0x400+c2-0xDC00+0x10000); + c2 = null; continue; + } + } + } + dst(c1); + } + if (c2 !== null) dst(c2); + }; + + /** + * Converts UTF8 code points to UTF16 characters. + * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point + * respectively `null` if there are no more code points left or a single numeric code point. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a code point is out of range + */ + utfx.UTF8toUTF16 = function(src, dst) { + var cp = null; + if (typeof src === 'number') + cp = src, src = function() { return null; }; + while (cp !== null || (cp = src()) !== null) { + if (cp <= 0xFFFF) + dst(cp); + else + cp -= 0x10000, + dst((cp>>10)+0xD800), + dst((cp%0x400)+0xDC00); + cp = null; + } + }; + + /** + * Converts and encodes UTF16 characters to UTF8 bytes. + * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null` + * if there are no more characters left. + * @param {!function(number)} dst Bytes destination as a function successively called with the next byte. + */ + utfx.encodeUTF16toUTF8 = function(src, dst) { + utfx.UTF16toUTF8(src, function(cp) { + utfx.encodeUTF8(cp, dst); + }); + }; + + /** + * Decodes and converts UTF8 bytes to UTF16 characters. + * @param {!function():number|null} src Bytes source as a function returning the next byte respectively `null` if there + * are no more bytes left. + * @param {!function(number)} dst Characters destination as a function successively called with each converted char code. + * @throws {RangeError} If a starting byte is invalid in UTF8 + * @throws {Error} If the last sequence is truncated. Has an array property `bytes` holding the remaining bytes. + */ + utfx.decodeUTF8toUTF16 = function(src, dst) { + utfx.decodeUTF8(src, function(cp) { + utfx.UTF8toUTF16(cp, dst); + }); + }; + + /** + * Calculates the byte length of an UTF8 code point. + * @param {number} cp UTF8 code point + * @returns {number} Byte length + */ + utfx.calculateCodePoint = function(cp) { + return (cp < 0x80) ? 1 : (cp < 0x800) ? 2 : (cp < 0x10000) ? 3 : 4; + }; + + /** + * Calculates the number of UTF8 bytes required to store UTF8 code points. + * @param {(!function():number|null)} src Code points source as a function returning the next code point respectively + * `null` if there are no more code points left. + * @returns {number} The number of UTF8 bytes required + */ + utfx.calculateUTF8 = function(src) { + var cp, l=0; + while ((cp = src()) !== null) + l += utfx.calculateCodePoint(cp); + return l; + }; + + /** + * Calculates the number of UTF8 code points respectively UTF8 bytes required to store UTF16 char codes. + * @param {(!function():number|null)} src Characters source as a function returning the next char code respectively + * `null` if there are no more characters left. + * @returns {!Array.} The number of UTF8 code points at index 0 and the number of UTF8 bytes required at index 1. + */ + utfx.calculateUTF16asUTF8 = function(src) { + var n=0, l=0; + utfx.UTF16toUTF8(src, function(cp) { + ++n; l += utfx.calculateCodePoint(cp); + }); + return [n,l]; + }; + + return utfx; + }(); + + Date.now = Date.now || function() { return +new Date; }; + + /** + * @type {number} + * @const + * @inner + */ + var BCRYPT_SALT_LEN = 16; + + /** + * @type {number} + * @const + * @inner + */ + var GENSALT_DEFAULT_LOG2_ROUNDS = 10; + + /** + * @type {number} + * @const + * @inner + */ + var BLOWFISH_NUM_ROUNDS = 16; + + /** + * @type {number} + * @const + * @inner + */ + var MAX_EXECUTION_TIME = 100; + + /** + * @type {Array.} + * @const + * @inner + */ + var P_ORIG = [ + 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, + 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, + 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, + 0xb5470917, 0x9216d5d9, 0x8979fb1b + ]; + + /** + * @type {Array.} + * @const + * @inner + */ + var S_ORIG = [ + 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, 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, 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, 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 + ]; + + /** + * @type {Array.} + * @const + * @inner + */ + var C_ORIG = [ + 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944, + 0x6f756274 + ]; + + /** + * @param {Array.} lr + * @param {number} off + * @param {Array.} P + * @param {Array.} S + * @returns {Array.} + * @inner + */ + function _encipher(lr, off, P, S) { // This is our bottleneck: 1714/1905 ticks / 90% - see profile.txt + var n, + l = lr[off], + r = lr[off + 1]; + + l ^= P[0]; + + /* + for (var i=0, k=BLOWFISH_NUM_ROUNDS-2; i<=k;) + // Feistel substitution on left word + n = S[l >>> 24], + n += S[0x100 | ((l >> 16) & 0xff)], + n ^= S[0x200 | ((l >> 8) & 0xff)], + n += S[0x300 | (l & 0xff)], + r ^= n ^ P[++i], + // Feistel substitution on right word + n = S[r >>> 24], + n += S[0x100 | ((r >> 16) & 0xff)], + n ^= S[0x200 | ((r >> 8) & 0xff)], + n += S[0x300 | (r & 0xff)], + l ^= n ^ P[++i]; + */ + + //The following is an unrolled version of the above loop. + //Iteration 0 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[1]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[2]; + //Iteration 1 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[3]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[4]; + //Iteration 2 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[5]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[6]; + //Iteration 3 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[7]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[8]; + //Iteration 4 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[9]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[10]; + //Iteration 5 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[11]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[12]; + //Iteration 6 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[13]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[14]; + //Iteration 7 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[15]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[16]; + + lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1]; + lr[off + 1] = l; + return lr; + } + + /** + * @param {Array.} data + * @param {number} offp + * @returns {{key: number, offp: number}} + * @inner + */ + function _streamtoword(data, offp) { + for (var i = 0, word = 0; i < 4; ++i) + word = (word << 8) | (data[offp] & 0xff), + offp = (offp + 1) % data.length; + return { key: word, offp: offp }; + } + + /** + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ + function _key(key, P, S) { + var offset = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offset), + offset = sw.offp, + P[i] = P[i] ^ sw.key; + for (i = 0; i < plen; i += 2) + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; + } + + /** + * Expensive key schedule Blowfish. + * @param {Array.} data + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ + function _ekskey(data, key, P, S) { + var offp = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offp), + offp = sw.offp, + P[i] = P[i] ^ sw.key; + offp = 0; + for (i = 0; i < plen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; + } + + /** + * Internaly crypts a string. + * @param {Array.} b Bytes to crypt + * @param {Array.} salt Salt bytes to use + * @param {number} rounds Number of rounds + * @param {function(Error, Array.=)=} callback Callback receiving the error, if any, and the resulting bytes. If + * omitted, the operation will be performed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {!Array.|undefined} Resulting bytes if callback has been omitted, otherwise `undefined` + * @inner + */ + function _crypt(b, salt, rounds, callback, progressCallback) { + var cdata = C_ORIG.slice(), + clen = cdata.length, + err; + + // Validate + if (rounds < 4 || rounds > 31) { + err = Error("Illegal number of rounds (4-31): "+rounds); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + if (salt.length !== BCRYPT_SALT_LEN) { + err =Error("Illegal salt length: "+salt.length+" != "+BCRYPT_SALT_LEN); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + rounds = (1 << rounds) >>> 0; + + var P, S, i = 0, j; + + //Use typed arrays when available - huge speedup! + if (Int32Array) { + P = new Int32Array(P_ORIG); + S = new Int32Array(S_ORIG); + } else { + P = P_ORIG.slice(); + S = S_ORIG.slice(); + } + + _ekskey(salt, b, P, S); + + /** + * Calcualtes the next round. + * @returns {Array.|undefined} Resulting array if callback has been omitted, otherwise `undefined` + * @inner + */ + function next() { + if (progressCallback) + progressCallback(i / rounds); + if (i < rounds) { + var start = Date.now(); + for (; i < rounds;) { + i = i + 1; + _key(b, P, S); + _key(salt, P, S); + if (Date.now() - start > MAX_EXECUTION_TIME) + break; + } + } else { + for (i = 0; i < 64; i++) + for (j = 0; j < (clen >> 1); j++) + _encipher(cdata, j << 1, P, S); + var ret = []; + for (i = 0; i < clen; i++) + ret.push(((cdata[i] >> 24) & 0xff) >>> 0), + ret.push(((cdata[i] >> 16) & 0xff) >>> 0), + ret.push(((cdata[i] >> 8) & 0xff) >>> 0), + ret.push((cdata[i] & 0xff) >>> 0); + if (callback) { + callback(null, ret); + return; + } else + return ret; + } + if (callback) + nextTick(next); + } + + // Async + if (typeof callback !== 'undefined') { + next(); + + // Sync + } else { + var res; + while (true) + if (typeof(res = next()) !== 'undefined') + return res || []; + } + } + + /** + * Internally hashes a string. + * @param {string} s String to hash + * @param {?string} salt Salt to use, actually never null + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash. If omitted, + * hashing is perormed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {string|undefined} Resulting hash if callback has been omitted, otherwise `undefined` + * @inner + */ + function _hash(s, salt, callback, progressCallback) { + var err; + if (typeof s !== 'string' || typeof salt !== 'string') { + err = Error("Invalid string / salt: Not a string"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + + // Validate the salt + var minor, offset; + if (salt.charAt(0) !== '$' || salt.charAt(1) !== '2') { + err = Error("Invalid salt version: "+salt.substring(0,2)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + if (salt.charAt(2) === '$') + minor = String.fromCharCode(0), + offset = 3; + else { + minor = salt.charAt(2); + if ((minor !== 'a' && minor !== 'b' && minor !== 'y') || salt.charAt(3) !== '$') { + err = Error("Invalid salt revision: "+salt.substring(2,4)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + offset = 4; + } + + // Extract number of rounds + if (salt.charAt(offset + 2) > '$') { + err = Error("Missing salt rounds"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10, + r2 = parseInt(salt.substring(offset + 1, offset + 2), 10), + rounds = r1 + r2, + real_salt = salt.substring(offset + 3, offset + 25); + s += minor >= 'a' ? "\x00" : ""; + + var passwordb = stringToBytes(s), + saltb = base64_decode(real_salt, BCRYPT_SALT_LEN); + + /** + * Finishes hashing. + * @param {Array.} bytes Byte array + * @returns {string} + * @inner + */ + function finish(bytes) { + var res = []; + res.push("$2"); + if (minor >= 'a') + res.push(minor); + res.push("$"); + if (rounds < 10) + res.push("0"); + res.push(rounds.toString()); + res.push("$"); + res.push(base64_encode(saltb, saltb.length)); + res.push(base64_encode(bytes, C_ORIG.length * 4 - 1)); + return res.join(''); + } + + // Sync + if (typeof callback == 'undefined') + return finish(_crypt(passwordb, saltb, rounds)); + + // Async + else { + _crypt(passwordb, saltb, rounds, function(err, bytes) { + if (err) + callback(err, null); + else + callback(null, finish(bytes)); + }, progressCallback); + } + } + + /** + * Encodes a byte array to base64 with up to len bytes of input, using the custom bcrypt alphabet. + * @function + * @param {!Array.} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @expose + */ + bcrypt.encodeBase64 = base64_encode; + + /** + * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet. + * @function + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @expose + */ + bcrypt.decodeBase64 = base64_decode; + + return bcrypt; +})); diff --git a/node_modules/bcryptjs/dist/bcrypt.min.js b/node_modules/bcryptjs/dist/bcrypt.min.js new file mode 100644 index 00000000..0fd2f1e0 --- /dev/null +++ b/node_modules/bcryptjs/dist/bcrypt.min.js @@ -0,0 +1,48 @@ +/* + bcrypt.js (c) 2013 Daniel Wirtz + Released under the Apache License, Version 2.0 + see: https://github.com/dcodeIO/bcrypt.js for details +*/ +(function(u,r){"function"===typeof define&&define.amd?define([],r):"function"===typeof require&&"object"===typeof module&&module&&module.exports?module.exports=r():(u.dcodeIO=u.dcodeIO||{}).bcrypt=r()})(this,function(){function u(e){if("undefined"!==typeof module&&module&&module.exports)try{return require("crypto").randomBytes(e)}catch(d){}try{var c;(self.crypto||self.msCrypto).getRandomValues(c=new Uint32Array(e));return Array.prototype.slice.call(c)}catch(b){}if(!w)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative"); +return w(e)}function r(e,d){for(var c=0,b=0,a=0,f=e.length;ac?!1:0===b}function H(e){var d=[],c=0;I.encodeUTF16toUTF8(function(){return c>=e.length?null:e.charCodeAt(c++)},function(b){d.push(b)});return d}function x(e,d){var c=0,b=[],a,f;if(0>=d||d>e.length)throw Error("Illegal len: "+d);for(;c>2&63]);a=(a&3)<<4;if(c>=d){b.push(s[a&63]);break}f=e[c++]&255;a|=f>>4&15;b.push(s[a&63]);a=(f&15)<<2;if(c>=d){b.push(s[a& +63]);break}f=e[c++]&255;a|=f>>6&3;b.push(s[a&63]);b.push(s[f&63])}return b.join("")}function B(e,d){var c=0,b=e.length,a=0,f=[],g,m,h;if(0>=d)throw Error("Illegal len: "+d);for(;c>>0;h|=(m&48)>>4;f.push(z(h));if(++a>=d||c>=b)break;h=e.charCodeAt(c++);g=h>>0;h|=(g&60)>>2;f.push(z(h));if(++a>=d||c>=b)break;h=e.charCodeAt(c++);m=h>>0;h|=m;f.push(z(h));++a}b=[];for(c=0;c>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[1];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[2];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[3];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[4];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512| +f>>8&255];a+=b[768|f&255];g=g^a^c[5];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[6];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[7];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[8];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[9];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[10];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^ +c[11];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[12];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[13];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[14];a=b[f>>>24];a+=b[256|f>>16&255];a^=b[512|f>>8&255];a+=b[768|f&255];g=g^a^c[15];a=b[g>>>24];a+=b[256|g>>16&255];a^=b[512|g>>8&255];a+=b[768|g&255];f=f^a^c[16];e[d]=g^c[17];e[d+1]=f;return e}function t(e,d){for(var c=0,b=0;4>c;++c)b=b<<8|e[d]&255,d=(d+1)%e.length; +return{key:b,offp:d}}function C(e,d,c){for(var b=0,a=[0,0],f=d.length,g=c.length,m,h=0;hn;n++)for(y=0;y>1;y++)v(g,y<<1,l,k);h=[];for(n=0;n>24&255)>>>0),h.push((g[n]>>16&255)>>>0),h.push((g[n]>>8&255)>>>0),h.push((g[n]&255)>>>0);if(b){b(null,h);return}return h}b&&p(f)}var g=E.slice(),m=g.length,h;if(4>c||31>>0;var l,k,n=0,y;Int32Array?(l=new Int32Array(F),k=new Int32Array(G)):(l=F.slice(),k=G.slice());J(d,e,l,k);if("undefined"!==typeof b)f();else for(;;)if("undefined"!==typeof(h=f()))return h||[]}function A(e,d,c,b){function a(a){var b=[];b.push("$2");"a"<=f&&b.push(f);b.push("$");10>l&&b.push("0");b.push(l.toString());b.push("$");b.push(x(k,k.length));b.push(x(a,4* +E.length-1));return b.join("")}if("string"!==typeof e||"string"!==typeof d){b=Error("Invalid string / salt: Not a string");if(c){p(c.bind(this,b));return}throw b;}var f,g;if("$"!==d.charAt(0)||"2"!==d.charAt(1)){b=Error("Invalid salt version: "+d.substring(0,2));if(c){p(c.bind(this,b));return}throw b;}if("$"===d.charAt(2))f=String.fromCharCode(0),g=3;else{f=d.charAt(2);if("a"!==f&&"b"!==f&&"y"!==f||"$"!==d.charAt(3)){b=Error("Invalid salt revision: "+d.substring(2,4));if(c){p(c.bind(this,b));return}throw b; +}g=4}if("$"e?e=4:31e&&c.push("0");c.push(e.toString());c.push("$");c.push(x(u(16),16));return c.join("")};k.genSalt=function(e,d,c){function b(a){p(function(){try{a(null,k.genSaltSync(e))}catch(b){a(b)}})}"function"===typeof d&&(c=d,d=void 0);"function"===typeof e&&(c=e,e=void 0);if("undefined"===typeof e)e=10;else if("number"!==typeof e)throw Error("illegal arguments: "+typeof e);if(c){if("function"!==typeof c)throw Error("Illegal callback: "+ +typeof c);b(c)}else return new Promise(function(a,c){b(function(b,d){b?c(b):a(d)})})};k.hashSync=function(e,d){"undefined"===typeof d&&(d=10);"number"===typeof d&&(d=k.genSaltSync(d));if("string"!==typeof e||"string"!==typeof d)throw Error("Illegal arguments: "+typeof e+", "+typeof d);return A(e,d)};k.hash=function(e,d,c,b){function a(a){"string"===typeof e&&"number"===typeof d?k.genSalt(d,function(c,d){A(e,d,a,b)}):"string"===typeof e&&"string"===typeof d?A(e,d,a,b):p(a.bind(this,Error("Illegal arguments: "+ +typeof e+", "+typeof d)))}if(c){if("function"!==typeof c)throw Error("Illegal callback: "+typeof c);a(c)}else return new Promise(function(b,c){a(function(a,d){a?c(a):b(d)})})};k.compareSync=function(e,d){if("string"!==typeof e||"string"!==typeof d)throw Error("Illegal arguments: "+typeof e+", "+typeof d);return 60!==d.length?!1:r(k.hashSync(e,d.substr(0,d.length-31)),d)};k.compare=function(e,d,c,b){function a(a){"string"!==typeof e||"string"!==typeof d?p(a.bind(this,Error("Illegal arguments: "+typeof e+ +", "+typeof d))):60!==d.length?p(a.bind(this,null,!1)):k.hash(e,d.substr(0,29),function(b,c){b?a(b):a(null,r(c,d))},b)}if(c){if("function"!==typeof c)throw Error("Illegal callback: "+typeof c);a(c)}else return new Promise(function(b,c){a(function(a,d){a?c(a):b(d)})})};k.getRounds=function(e){if("string"!==typeof e)throw Error("Illegal arguments: "+typeof e);return parseInt(e.split("$")[2],10)};k.getSalt=function(e){if("string"!==typeof e)throw Error("Illegal arguments: "+typeof e);if(60!==e.length)throw Error("Illegal hash length: "+ +e.length+" != 60");return e.substring(0,29)};var p="undefined"!==typeof process&&process&&"function"===typeof process.nextTick?"function"===typeof setImmediate?setImmediate:process.nextTick:setTimeout,s="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),q=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12, +13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1],z=String.fromCharCode,I=function(){var e={MAX_CODEPOINT:1114111,encodeUTF8:function(d,c){var b=null;"number"===typeof d&&(b=d,d=function(){return null});for(;null!==b||null!==(b=d());)128>b?c(b&127):(2048>b?c(b>>6&31|192):(65536>b?c(b>>12&15|224):(c(b>>18&7|240),c(b>>12&63|128)),c(b>>6&63|128)),c(b&63|128)),b=null},decodeUTF8:function(d,c){for(var b, +a,f,e,k=function(a){a=a.slice(0,a.indexOf(null));var b=Error(a.toString());b.name="TruncatedError";b.bytes=a;throw b;};null!==(b=d());)if(0===(b&128))c(b);else if(192===(b&224))null===(a=d())&&k([b,a]),c((b&31)<<6|a&63);else if(224===(b&240))null!==(a=d())&&null!==(f=d())||k([b,a,f]),c((b&15)<<12|(a&63)<<6|f&63);else if(240===(b&248))null!==(a=d())&&null!==(f=d())&&null!==(e=d())||k([b,a,f,e]),c((b&7)<<18|(a&63)<<12|(f&63)<<6|e&63);else throw RangeError("Illegal starting byte: "+b);},UTF16toUTF8:function(d, +c){for(var b,a=null;null!==(b=null!==a?a:d());)55296<=b&&57343>=b&&null!==(a=d())&&56320<=a&&57343>=a?(c(1024*(b-55296)+a-56320+65536),a=null):c(b);null!==a&&c(a)},UTF8toUTF16:function(d,c){var b=null;"number"===typeof d&&(b=d,d=function(){return null});for(;null!==b||null!==(b=d());)65535>=b?c(b):(b-=65536,c((b>>10)+55296),c(b%1024+56320)),b=null},encodeUTF16toUTF8:function(d,c){e.UTF16toUTF8(d,function(b){e.encodeUTF8(b,c)})},decodeUTF8toUTF16:function(d,c){e.decodeUTF8(d,function(b){e.UTF8toUTF16(b, +c)})},calculateCodePoint:function(d){return 128>d?1:2048>d?2:65536>d?3:4},calculateUTF8:function(d){for(var c,b=0;null!==(c=d());)b+=e.calculateCodePoint(c);return b},calculateUTF16asUTF8:function(d){var c=0,b=0;e.UTF16toUTF8(d,function(a){++c;b+=e.calculateCodePoint(a)});return[c,b]}};return e}();Date.now=Date.now||function(){return+new Date};var F=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069, +3041331479,2450970073,2306472731],G=[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828, +289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486, +1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557, +442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592, +3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370, +48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946,1266315497,3048417604,3681880366,3289982499,290971E4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509, +1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880, +613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303, +2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385, +1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030, +4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055,3913112168, +2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499, +499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905, +3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651, +309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610, +1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037, +2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504,976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200, +2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241, +3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891, +3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409E3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588, +3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493, +1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462],E=[1332899944,1700884034,1701343084,1684370003,1668446532, +1869963892];k.encodeBase64=x;k.decodeBase64=B;return k}); diff --git a/node_modules/bcryptjs/dist/bcrypt.min.js.gz b/node_modules/bcryptjs/dist/bcrypt.min.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..6bde4bde53a58f73d813ca1143452f52f3dfd122 GIT binary patch literal 9443 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 literal 0 HcmV?d00001 diff --git a/node_modules/bcryptjs/dist/bcrypt.min.map b/node_modules/bcryptjs/dist/bcrypt.min.map new file mode 100644 index 00000000..35d0f837 --- /dev/null +++ b/node_modules/bcryptjs/dist/bcrypt.min.map @@ -0,0 +1,8 @@ +{ +"version":3, +"file":"", +"lineCount":48, +"mappings":"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", +"sources":["dist/bcrypt.js"], +"names":["global","factory","define","require","module","random","len","e","a","self","Uint32Array","Array","prototype","slice","call","randomFallback","Error","safeStringCompare","known","unknown","right","wrong","i","k","length","charCodeAt","stringToBytes","str","out","utfx","encodeUTF16toUTF8","b","push","base64_encode","off","rs","c1","c2","BASE64_CODE","join","base64_decode","s","slen","olen","o","code","BASE64_INDEX","stringFromCharCode","c3","c4","res","_encipher","lr","P","S","n","l","r","_streamtoword","data","offp","word","key","_key","offset","plen","sw","_ekskey","_crypt","salt","rounds","callback","progressCallback","next","start","Date","now","MAX_EXECUTION_TIME","j","clen","cdata","ret","nextTick","C_ORIG","err","bind","BCRYPT_SALT_LEN","Int32Array","P_ORIG","S_ORIG","_hash","finish","bytes","minor","toString","saltb","charAt","substring","String","fromCharCode","r1","parseInt","r2","real_salt","passwordb","bcrypt","setRandomFallback","bcrypt.setRandomFallback","genSaltSync","bcrypt.genSaltSync","seed_length","GENSALT_DEFAULT_LOG2_ROUNDS","genSalt","bcrypt.genSalt","_async","undefined","Promise","resolve","reject","hashSync","bcrypt.hashSync","hash","bcrypt.hash","compareSync","bcrypt.compareSync","substr","compare","bcrypt.compare","comp","getRounds","bcrypt.getRounds","split","getSalt","bcrypt.getSalt","process","setImmediate","setTimeout","utfx.encodeUTF8","src","dst","cp","utfx.decodeUTF8","c","d","fail","indexOf","name","RangeError","utfx.UTF16toUTF8","utfx.UTF8toUTF16","utfx.encodeUTF16toUTF8","UTF16toUTF8","encodeUTF8","utfx.decodeUTF8toUTF16","decodeUTF8","UTF8toUTF16","utfx.calculateCodePoint","utfx.calculateUTF8","calculateCodePoint","utfx.calculateUTF16asUTF8","encodeBase64","decodeBase64"] +} diff --git a/node_modules/bcryptjs/externs/bcrypt.js b/node_modules/bcryptjs/externs/bcrypt.js new file mode 100644 index 00000000..c458f9d7 --- /dev/null +++ b/node_modules/bcryptjs/externs/bcrypt.js @@ -0,0 +1,91 @@ +/* + * Copyright 2012 The Closure Compiler Authors. + * + * 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. + */ + +/** + * @fileoverview Definitions for bcrypt.js 2. + * @externs + * @author Daniel Wirtz + */ + +/** + * @type {Object.} + */ +var bcrypt = {}; + +/** + * @param {?function(number):!Array.} random + */ +bcrypt.setRandomFallback = function(random) {}; + +/** + * @param {number=} rounds + * @param {number=} seed_length + * @returns {string} + */ +bcrypt.genSaltSync = function(rounds, seed_length) {}; + +/** + * @param {(number|function(Error, ?string))=} rounds + * @param {(number|function(Error, ?string))=} seed_length + * @param {function(Error, string=)=} callback + */ +bcrypt.genSalt = function(rounds, seed_length, callback) {}; + +/** + * @param {string} s + * @param {(number|string)=} salt + * @returns {?string} + */ +bcrypt.hashSync = function(s, salt) {}; + +/** + * @param {string} s + * @param {number|string} salt + * @param {function(Error, string=)} callback + * @expose + */ +bcrypt.hash = function(s, salt, callback) {}; + +/** + * @param {string} s + * @param {string} hash + * @returns {boolean} + * @throws {Error} + */ +bcrypt.compareSync = function(s, hash) {}; + +/** + * @param {string} s + * @param {string} hash + * @param {function(Error, boolean)} callback + * @throws {Error} + */ +bcrypt.compare = function(s, hash, callback) {}; + +/** + * @param {string} hash + * @returns {number} + * @throws {Error} + */ +bcrypt.getRounds = function(hash) {}; + +/** + * @param {string} hash + * @returns {string} + * @throws {Error} + * @expose + */ +bcrypt.getSalt = function(hash) {}; diff --git a/node_modules/bcryptjs/externs/minimal-env.js b/node_modules/bcryptjs/externs/minimal-env.js new file mode 100644 index 00000000..0db9d4c0 --- /dev/null +++ b/node_modules/bcryptjs/externs/minimal-env.js @@ -0,0 +1,98 @@ +/** + * @fileoverview Minimal environment for bcrypt.js. + * @externs + */ + +/** + * @param {string} moduleName + * returns {*} + */ +function require(moduleName) {} + +/** + * @constructor + * @private + */ +var Module = function() {}; + +/** + * @type {*} + */ +Module.prototype.exports; + +/** + * @type {Module} + */ +var module; + +/** + * @type {string} + */ +var __dirname; + +/** + * @type {Object.} + */ +var process = {}; + +/** + * @param {function()} func + */ +process.nextTick = function(func) {}; + +/** + * @param {string} s + * @constructor + * @extends Array + */ +var Buffer = function(s) {}; + +/** + BEGIN_NODE_INCLUDE + var crypto = require('crypto'); + END_NODE_INCLUDE + */ + +/** + * @type {Object.} + */ +var crypto = {}; + +/** + * @param {number} n + * @returns {Array.} + */ +crypto.randomBytes = function(n) {}; + +/** + * @type {Object.} + */ +window.crypto = {}; + +/** + * @param {Uint8Array|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array} array + */ +window.crypto.getRandomValues = function(array) {}; + +/** + * @param {string} name + * @param {function(...[*]):*} constructor + */ +var define = function(name, constructor) {}; + +/** + * @type {boolean} + */ +define.amd; + +/** + * @param {...*} var_args + * @returns {string} + */ +String.fromCodePoint = function(var_args) {}; + +/** + * @param {number} offset + * @returns {number} + */ +String.prototype.codePointAt = function(offset) {}; diff --git a/node_modules/bcryptjs/index.js b/node_modules/bcryptjs/index.js new file mode 100644 index 00000000..f11b4e70 --- /dev/null +++ b/node_modules/bcryptjs/index.js @@ -0,0 +1,29 @@ +/* + Copyright (c) 2012 Nevins Bartolomeo + Copyright (c) 2012 Shane Girish + Copyright (c) 2013 Daniel Wirtz + + 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. + */ + +module.exports = require("./dist/bcrypt.js"); diff --git a/node_modules/bcryptjs/package.json b/node_modules/bcryptjs/package.json new file mode 100644 index 00000000..aaf10532 --- /dev/null +++ b/node_modules/bcryptjs/package.json @@ -0,0 +1,94 @@ +{ + "_from": "bcryptjs", + "_id": "bcryptjs@2.4.3", + "_inBundle": false, + "_integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", + "_location": "/bcryptjs", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "bcryptjs", + "name": "bcryptjs", + "escapedName": "bcryptjs", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "_shasum": "9ab5627b93e60621ff7cdac5da9733027df1d0cb", + "_spec": "bcryptjs", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social", + "author": { + "name": "Daniel Wirtz", + "email": "dcode@dcode.io" + }, + "browser": "dist/bcrypt.js", + "bugs": { + "url": "https://github.com/dcodeIO/bcrypt.js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Shane Girish", + "email": "shaneGirish@gmail.com", + "url": "https://github.com/shaneGirish" + }, + { + "name": "Alex Murray", + "url": "https://github.com/alexmurray" + }, + { + "name": "Nicolas Pelletier", + "url": "https://github.com/NicolasPelletier" + }, + { + "name": "Josh Rogers", + "url": "https://github.com/geekymole" + }, + { + "name": "Noah Isaacson", + "email": "noah@nisaacson.com", + "url": "https://github.com/nisaacson" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Optimized bcrypt in plain JavaScript with zero dependencies. Compatible to 'bcrypt'.", + "devDependencies": { + "bcrypt": "latest", + "closurecompiler": "~1", + "metascript": "~0.18", + "testjs": "~1", + "utfx": "~1" + }, + "homepage": "https://github.com/dcodeIO/bcrypt.js#readme", + "keywords": [ + "bcrypt", + "password", + "auth", + "authentication", + "encryption", + "crypt", + "crypto" + ], + "license": "MIT", + "main": "index.js", + "name": "bcryptjs", + "repository": { + "type": "url", + "url": "git+https://github.com/dcodeIO/bcrypt.js.git" + }, + "scripts": { + "build": "node scripts/build.js", + "compile": "node node_modules/closurecompiler/bin/ccjs dist/bcrypt.js --compilation_level=SIMPLE_OPTIMIZATIONS --create_source_map=dist/bcrypt.min.map > dist/bcrypt.min.js", + "compress": "gzip -c -9 dist/bcrypt.min.js > dist/bcrypt.min.js.gz", + "make": "npm run build && npm run compile && npm run compress && npm test", + "test": "node node_modules/testjs/bin/testjs" + }, + "version": "2.4.3" +} diff --git a/node_modules/bcryptjs/scripts/build.js b/node_modules/bcryptjs/scripts/build.js new file mode 100644 index 00000000..7b34ea48 --- /dev/null +++ b/node_modules/bcryptjs/scripts/build.js @@ -0,0 +1,37 @@ +var MetaScript = require("metascript"), + path = require("path"), + fs = require("fs"); + +var rootDir = path.join(__dirname, ".."), + srcDir = path.join(rootDir, "src"), + distDir = path.join(rootDir, "dist"), + pkg = require(path.join(rootDir, "package.json")), + filename; + +var scope = { + VERSION: pkg.version, + ISAAC: false +}; + +// Make standard build +console.log("Building bcrypt.js with scope", JSON.stringify(scope, null, 2)); +fs.writeFileSync( + path.join(distDir, "bcrypt.js"), + MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "wrap.js")), filename, scope, srcDir) +); + +// Make isaac build - see: https://github.com/dcodeIO/bcrypt.js/issues/16 +/* scope.ISAAC = true; +console.log("Building bcrypt-isaac.js with scope", JSON.stringify(scope, null, 2)); +fs.writeFileSync( + path.join(distDir, "bcrypt-isaac.js"), + MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "bcrypt.js")), filename, scope, srcDir) +); */ + +// Update bower.json +scope = { VERSION: pkg.version }; +console.log("Updating bower.json with scope", JSON.stringify(scope, null, 2)); +fs.writeFileSync( + path.join(rootDir, "bower.json"), + MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "bower.json")), filename, scope, srcDir) +); diff --git a/node_modules/bcryptjs/src/bcrypt.js b/node_modules/bcryptjs/src/bcrypt.js new file mode 100644 index 00000000..11dedc17 --- /dev/null +++ b/node_modules/bcryptjs/src/bcrypt.js @@ -0,0 +1,327 @@ +/** + * bcrypt namespace. + * @type {Object.} + */ +var bcrypt = {}; + +/** + * The random implementation to use as a fallback. + * @type {?function(number):!Array.} + * @inner + */ +var randomFallback = null; + +/** + * Generates cryptographically secure random bytes. + * @function + * @param {number} len Bytes length + * @returns {!Array.} Random bytes + * @throws {Error} If no random implementation is available + * @inner + */ +function random(len) { + /* node */ if (typeof module !== 'undefined' && module && module['exports']) + try { + return require("crypto")['randomBytes'](len); + } catch (e) {} + /* WCA */ try { + var a; (self['crypto']||self['msCrypto'])['getRandomValues'](a = new Uint32Array(len)); + return Array.prototype.slice.call(a); + } catch (e) {} + /* fallback */ if (!randomFallback) + throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative"); + return randomFallback(len); +} + +// Test if any secure randomness source is available +var randomAvailable = false; +try { + random(1); + randomAvailable = true; +} catch (e) {} + +// Default fallback, if any +randomFallback = /*? if (ISAAC) { */function(len) { + for (var a=[], i=0; i} random Function taking the number of bytes to generate as its + * sole argument, returning the corresponding array of cryptographically secure random byte values. + * @see http://nodejs.org/api/crypto.html + * @see http://www.w3.org/TR/WebCryptoAPI/ + */ +bcrypt.setRandomFallback = function(random) { + randomFallback = random; +}; + +/** + * Synchronously generates a salt. + * @param {number=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {number=} seed_length Not supported. + * @returns {string} Resulting salt + * @throws {Error} If a random fallback is required but not set + * @expose + */ +bcrypt.genSaltSync = function(rounds, seed_length) { + rounds = rounds || GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof rounds !== 'number') + throw Error("Illegal arguments: "+(typeof rounds)+", "+(typeof seed_length)); + if (rounds < 4) + rounds = 4; + else if (rounds > 31) + rounds = 31; + var salt = []; + salt.push("$2a$"); + if (rounds < 10) + salt.push("0"); + salt.push(rounds.toString()); + salt.push('$'); + salt.push(base64_encode(random(BCRYPT_SALT_LEN), BCRYPT_SALT_LEN)); // May throw + return salt.join(''); +}; + +/** + * Asynchronously generates a salt. + * @param {(number|function(Error, string=))=} rounds Number of rounds to use, defaults to 10 if omitted + * @param {(number|function(Error, string=))=} seed_length Not supported. + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting salt + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ +bcrypt.genSalt = function(rounds, seed_length, callback) { + if (typeof seed_length === 'function') + callback = seed_length, + seed_length = undefined; // Not supported. + if (typeof rounds === 'function') + callback = rounds, + rounds = undefined; + if (typeof rounds === 'undefined') + rounds = GENSALT_DEFAULT_LOG2_ROUNDS; + else if (typeof rounds !== 'number') + throw Error("illegal arguments: "+(typeof rounds)); + + function _async(callback) { + nextTick(function() { // Pretty thin, but salting is fast enough + try { + callback(null, bcrypt.genSaltSync(rounds)); + } catch (err) { + callback(err); + } + }); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); +}; + +/** + * Synchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {(number|string)=} salt Salt length to generate or salt to use, default to 10 + * @returns {string} Resulting hash + * @expose + */ +bcrypt.hashSync = function(s, salt) { + if (typeof salt === 'undefined') + salt = GENSALT_DEFAULT_LOG2_ROUNDS; + if (typeof salt === 'number') + salt = bcrypt.genSaltSync(salt); + if (typeof s !== 'string' || typeof salt !== 'string') + throw Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)); + return _hash(s, salt); +}; + +/** + * Asynchronously generates a hash for the given string. + * @param {string} s String to hash + * @param {number|string} salt Salt length to generate or salt to use + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash + * @param {function(number)=} progressCallback Callback successively called with the percentage of rounds completed + * (0.0 - 1.0), maximally once per `MAX_EXECUTION_TIME = 100` ms. + * @returns {!Promise} If `callback` has been omitted + * @throws {Error} If `callback` is present but not a function + * @expose + */ +bcrypt.hash = function(s, salt, callback, progressCallback) { + + function _async(callback) { + if (typeof s === 'string' && typeof salt === 'number') + bcrypt.genSalt(salt, function(err, salt) { + _hash(s, salt, callback, progressCallback); + }); + else if (typeof s === 'string' && typeof salt === 'string') + _hash(s, salt, callback, progressCallback); + else + nextTick(callback.bind(this, Error("Illegal arguments: "+(typeof s)+', '+(typeof salt)))); + } + + if (callback) { + if (typeof callback !== 'function') + throw Error("Illegal callback: "+typeof(callback)); + _async(callback); + } else + return new Promise(function(resolve, reject) { + _async(function(err, res) { + if (err) { + reject(err); + return; + } + resolve(res); + }); + }); +}; + +/** + * Compares two strings of the same length in constant time. + * @param {string} known Must be of the correct length + * @param {string} unknown Must be the same length as `known` + * @returns {boolean} + * @inner + */ +function safeStringCompare(known, unknown) { + var right = 0, + wrong = 0; + for (var i=0, k=known.length; i} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @expose + */ +bcrypt.encodeBase64 = base64_encode; + +/** + * Decodes a base64 encoded string to up to len bytes of output, using the custom bcrypt alphabet. + * @function + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @expose + */ +bcrypt.decodeBase64 = base64_decode; diff --git a/node_modules/bcryptjs/src/bcrypt/impl.js b/node_modules/bcryptjs/src/bcrypt/impl.js new file mode 100644 index 00000000..fb00aeee --- /dev/null +++ b/node_modules/bcryptjs/src/bcrypt/impl.js @@ -0,0 +1,669 @@ +/** + * @type {number} + * @const + * @inner + */ +var BCRYPT_SALT_LEN = 16; + +/** + * @type {number} + * @const + * @inner + */ +var GENSALT_DEFAULT_LOG2_ROUNDS = 10; + +/** + * @type {number} + * @const + * @inner + */ +var BLOWFISH_NUM_ROUNDS = 16; + +/** + * @type {number} + * @const + * @inner + */ +var MAX_EXECUTION_TIME = 100; + +/** + * @type {Array.} + * @const + * @inner + */ +var P_ORIG = [ + 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, + 0x299f31d0, 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, + 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, + 0xb5470917, 0x9216d5d9, 0x8979fb1b +]; + +/** + * @type {Array.} + * @const + * @inner + */ +var S_ORIG = [ + 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, 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, 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, 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 +]; + +/** + * @type {Array.} + * @const + * @inner + */ +var C_ORIG = [ + 0x4f727068, 0x65616e42, 0x65686f6c, 0x64657253, 0x63727944, + 0x6f756274 +]; + +/** + * @param {Array.} lr + * @param {number} off + * @param {Array.} P + * @param {Array.} S + * @returns {Array.} + * @inner + */ +function _encipher(lr, off, P, S) { // This is our bottleneck: 1714/1905 ticks / 90% - see profile.txt + var n, + l = lr[off], + r = lr[off + 1]; + + l ^= P[0]; + + /* + for (var i=0, k=BLOWFISH_NUM_ROUNDS-2; i<=k;) + // Feistel substitution on left word + n = S[l >>> 24], + n += S[0x100 | ((l >> 16) & 0xff)], + n ^= S[0x200 | ((l >> 8) & 0xff)], + n += S[0x300 | (l & 0xff)], + r ^= n ^ P[++i], + // Feistel substitution on right word + n = S[r >>> 24], + n += S[0x100 | ((r >> 16) & 0xff)], + n ^= S[0x200 | ((r >> 8) & 0xff)], + n += S[0x300 | (r & 0xff)], + l ^= n ^ P[++i]; + */ + + //The following is an unrolled version of the above loop. + //Iteration 0 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[1]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[2]; + //Iteration 1 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[3]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[4]; + //Iteration 2 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[5]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[6]; + //Iteration 3 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[7]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[8]; + //Iteration 4 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[9]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[10]; + //Iteration 5 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[11]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[12]; + //Iteration 6 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[13]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[14]; + //Iteration 7 + n = S[l >>> 24]; + n += S[0x100 | ((l >> 16) & 0xff)]; + n ^= S[0x200 | ((l >> 8) & 0xff)]; + n += S[0x300 | (l & 0xff)]; + r ^= n ^ P[15]; + n = S[r >>> 24]; + n += S[0x100 | ((r >> 16) & 0xff)]; + n ^= S[0x200 | ((r >> 8) & 0xff)]; + n += S[0x300 | (r & 0xff)]; + l ^= n ^ P[16]; + + lr[off] = r ^ P[BLOWFISH_NUM_ROUNDS + 1]; + lr[off + 1] = l; + return lr; +} + +/** + * @param {Array.} data + * @param {number} offp + * @returns {{key: number, offp: number}} + * @inner + */ +function _streamtoword(data, offp) { + for (var i = 0, word = 0; i < 4; ++i) + word = (word << 8) | (data[offp] & 0xff), + offp = (offp + 1) % data.length; + return { key: word, offp: offp }; +} + +/** + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ +function _key(key, P, S) { + var offset = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offset), + offset = sw.offp, + P[i] = P[i] ^ sw.key; + for (i = 0; i < plen; i += 2) + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; +} + +/** + * Expensive key schedule Blowfish. + * @param {Array.} data + * @param {Array.} key + * @param {Array.} P + * @param {Array.} S + * @inner + */ +function _ekskey(data, key, P, S) { + var offp = 0, + lr = [0, 0], + plen = P.length, + slen = S.length, + sw; + for (var i = 0; i < plen; i++) + sw = _streamtoword(key, offp), + offp = sw.offp, + P[i] = P[i] ^ sw.key; + offp = 0; + for (i = 0; i < plen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + P[i] = lr[0], + P[i + 1] = lr[1]; + for (i = 0; i < slen; i += 2) + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[0] ^= sw.key, + sw = _streamtoword(data, offp), + offp = sw.offp, + lr[1] ^= sw.key, + lr = _encipher(lr, 0, P, S), + S[i] = lr[0], + S[i + 1] = lr[1]; +} + +/** + * Internaly crypts a string. + * @param {Array.} b Bytes to crypt + * @param {Array.} salt Salt bytes to use + * @param {number} rounds Number of rounds + * @param {function(Error, Array.=)=} callback Callback receiving the error, if any, and the resulting bytes. If + * omitted, the operation will be performed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {!Array.|undefined} Resulting bytes if callback has been omitted, otherwise `undefined` + * @inner + */ +function _crypt(b, salt, rounds, callback, progressCallback) { + var cdata = C_ORIG.slice(), + clen = cdata.length, + err; + + // Validate + if (rounds < 4 || rounds > 31) { + err = Error("Illegal number of rounds (4-31): "+rounds); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + if (salt.length !== BCRYPT_SALT_LEN) { + err =Error("Illegal salt length: "+salt.length+" != "+BCRYPT_SALT_LEN); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + rounds = (1 << rounds) >>> 0; + + var P, S, i = 0, j; + + //Use typed arrays when available - huge speedup! + if (Int32Array) { + P = new Int32Array(P_ORIG); + S = new Int32Array(S_ORIG); + } else { + P = P_ORIG.slice(); + S = S_ORIG.slice(); + } + + _ekskey(salt, b, P, S); + + /** + * Calcualtes the next round. + * @returns {Array.|undefined} Resulting array if callback has been omitted, otherwise `undefined` + * @inner + */ + function next() { + if (progressCallback) + progressCallback(i / rounds); + if (i < rounds) { + var start = Date.now(); + for (; i < rounds;) { + i = i + 1; + _key(b, P, S); + _key(salt, P, S); + if (Date.now() - start > MAX_EXECUTION_TIME) + break; + } + } else { + for (i = 0; i < 64; i++) + for (j = 0; j < (clen >> 1); j++) + _encipher(cdata, j << 1, P, S); + var ret = []; + for (i = 0; i < clen; i++) + ret.push(((cdata[i] >> 24) & 0xff) >>> 0), + ret.push(((cdata[i] >> 16) & 0xff) >>> 0), + ret.push(((cdata[i] >> 8) & 0xff) >>> 0), + ret.push((cdata[i] & 0xff) >>> 0); + if (callback) { + callback(null, ret); + return; + } else + return ret; + } + if (callback) + nextTick(next); + } + + // Async + if (typeof callback !== 'undefined') { + next(); + + // Sync + } else { + var res; + while (true) + if (typeof(res = next()) !== 'undefined') + return res || []; + } +} + +/** + * Internally hashes a string. + * @param {string} s String to hash + * @param {?string} salt Salt to use, actually never null + * @param {function(Error, string=)=} callback Callback receiving the error, if any, and the resulting hash. If omitted, + * hashing is perormed synchronously. + * @param {function(number)=} progressCallback Callback called with the current progress + * @returns {string|undefined} Resulting hash if callback has been omitted, otherwise `undefined` + * @inner + */ +function _hash(s, salt, callback, progressCallback) { + var err; + if (typeof s !== 'string' || typeof salt !== 'string') { + err = Error("Invalid string / salt: Not a string"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + + // Validate the salt + var minor, offset; + if (salt.charAt(0) !== '$' || salt.charAt(1) !== '2') { + err = Error("Invalid salt version: "+salt.substring(0,2)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } + else + throw err; + } + if (salt.charAt(2) === '$') + minor = String.fromCharCode(0), + offset = 3; + else { + minor = salt.charAt(2); + if ((minor !== 'a' && minor !== 'b' && minor !== 'y') || salt.charAt(3) !== '$') { + err = Error("Invalid salt revision: "+salt.substring(2,4)); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + offset = 4; + } + + // Extract number of rounds + if (salt.charAt(offset + 2) > '$') { + err = Error("Missing salt rounds"); + if (callback) { + nextTick(callback.bind(this, err)); + return; + } else + throw err; + } + var r1 = parseInt(salt.substring(offset, offset + 1), 10) * 10, + r2 = parseInt(salt.substring(offset + 1, offset + 2), 10), + rounds = r1 + r2, + real_salt = salt.substring(offset + 3, offset + 25); + s += minor >= 'a' ? "\x00" : ""; + + var passwordb = stringToBytes(s), + saltb = base64_decode(real_salt, BCRYPT_SALT_LEN); + + /** + * Finishes hashing. + * @param {Array.} bytes Byte array + * @returns {string} + * @inner + */ + function finish(bytes) { + var res = []; + res.push("$2"); + if (minor >= 'a') + res.push(minor); + res.push("$"); + if (rounds < 10) + res.push("0"); + res.push(rounds.toString()); + res.push("$"); + res.push(base64_encode(saltb, saltb.length)); + res.push(base64_encode(bytes, C_ORIG.length * 4 - 1)); + return res.join(''); + } + + // Sync + if (typeof callback == 'undefined') + return finish(_crypt(passwordb, saltb, rounds)); + + // Async + else { + _crypt(passwordb, saltb, rounds, function(err, bytes) { + if (err) + callback(err, null); + else + callback(null, finish(bytes)); + }, progressCallback); + } +} diff --git a/node_modules/bcryptjs/src/bcrypt/prng/README.md b/node_modules/bcryptjs/src/bcrypt/prng/README.md new file mode 100644 index 00000000..4735aa67 --- /dev/null +++ b/node_modules/bcryptjs/src/bcrypt/prng/README.md @@ -0,0 +1,5 @@ +Because of [reasonable security doubts](https://github.com/dcodeIO/bcrypt.js/issues/16), these files, which used to be +a part of bcrypt-isaac.js, are no longer used but are kept here for reference only. + +What is required instead is a proper way to collect entropy sources (using an intermediate stream cipher) which is then +used to seed the CSPRNG. Pick one and use `bcrypt.setRandomFallback` instead. diff --git a/node_modules/bcryptjs/src/bcrypt/prng/accum.js b/node_modules/bcryptjs/src/bcrypt/prng/accum.js new file mode 100644 index 00000000..8ea77737 --- /dev/null +++ b/node_modules/bcryptjs/src/bcrypt/prng/accum.js @@ -0,0 +1,133 @@ +/* basic entropy accumulator */ +var accum = (function() { + + var pool, // randomness pool + time, // start timestamp + last; // last step timestamp + + /* initialize with default pool */ + function init() { + pool = []; + time = new Date().getTime(); + last = time; + // use Math.random + pool.push((Math.random() * 0xffffffff)|0); + // use current time + pool.push(time|0); + } + + /* perform one step */ + function step() { + if (!to) + return; + if (pool.length >= 255) { // stop at 255 values (1 more is added on fetch) + stop(); + return; + } + var now = new Date().getTime(); + // use actual time difference + pool.push(now-last); + // always compute, occasionally use Math.random + var rnd = (Math.random() * 0xffffffff)|0; + if (now % 2) + pool[pool.length-1] += rnd; + last = now; + to = setTimeout(step, 100+Math.random()*512); // use hypothetical time difference + } + + var to = null; + + /* starts accumulating */ + function start() { + if (to) return; + to = setTimeout(step, 100+Math.random()*512); + if (console.log) + console.log("bcrypt-isaac: collecting entropy..."); + // install collectors + if (typeof window !== 'undefined' && window && window.addEventListener) + window.addEventListener("load", loadCollector, false), + window.addEventListener("mousemove", mouseCollector, false), + window.addEventListener("touchmove", touchCollector, false); + else if (typeof document !== 'undefined' && document && document.attachEvent) + document.attachEvent("onload", loadCollector), + document.attachEvent("onmousemove", mouseCollector); + } + + /* stops accumulating */ + function stop() { + if (!to) return; + clearTimeout(to); to = null; + // uninstall collectors + if (typeof window !== 'undefined' && window && window.removeEventListener) + window.removeEventListener("load", loadCollector, false), + window.removeEventListener("mousemove", mouseCollector, false), + window.removeEventListener("touchmove", touchCollector, false); + else if (typeof document !== 'undefined' && document && document.detachEvent) + document.detachEvent("onload", loadCollector), + document.detachEvent("onmousemove", mouseCollector); + } + + /* fetches the randomness pool */ + function fetch() { + // add overall time difference + pool.push((new Date().getTime()-time)|0); + var res = pool; + init(); + if (console.log) + console.log("bcrypt-isaac: using "+res.length+"/256 samples of entropy"); + // console.log(res); + return res; + } + + /* adds the current time to the top of the pool */ + function addTime() { + pool[pool.length-1] += new Date().getTime() - time; + } + + /* page load collector */ + function loadCollector() { + if (!to || pool.length >= 255) + return; + pool.push(0); + addTime(); + } + + /* mouse events collector */ + function mouseCollector(ev) { + if (!to || pool.length >= 255) + return; + try { + var x = ev.x || ev.clientX || ev.offsetX || 0, + y = ev.y || ev.clientY || ev.offsetY || 0; + if (x != 0 || y != 0) + pool[pool.length-1] += ((x-mouseCollector.last[0]) ^ (y-mouseCollector.last[1])), + addTime(), + mouseCollector.last = [x,y]; + } catch (e) {} + } + mouseCollector.last = [0,0]; + + /* touch events collector */ + function touchCollector(ev) { + if (!to || pool.length >= 255) + return; + try { + var touch = ev.touches[0] || ev.changedTouches[0]; + var x = touch.pageX || touch.clientX || 0, + y = touch.pageY || touch.clientY || 0; + if (x != 0 || y != 0) + pool[pool.length-1] += (x-touchCollector.last[0]) ^ (y-touchCollector.last[1]), + addTime(), + touchCollector.last = [x,y]; + } catch (e) {} + } + touchCollector.last = [0,0]; + + init(); + return { + "start": start, + "stop": stop, + "fetch": fetch + } + +})(); diff --git a/node_modules/bcryptjs/src/bcrypt/prng/isaac.js b/node_modules/bcryptjs/src/bcrypt/prng/isaac.js new file mode 100644 index 00000000..e33b0e51 --- /dev/null +++ b/node_modules/bcryptjs/src/bcrypt/prng/isaac.js @@ -0,0 +1,140 @@ +/* + isaac.js Copyright (c) 2012 Yves-Marie K. Rinquin + + 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. + */ + +/* isaac module pattern */ +var isaac = (function(){ + + /* internal states */ + var m = Array(256), // internal memory + acc = 0, // accumulator + brs = 0, // last result + cnt = 0, // counter + r = Array(256), // result array + gnt = 0, // generation counter + isd = false; // initially seeded + + + /* 32-bit integer safe adder */ + function add(x, y) { + var lsb = (x & 0xffff) + (y & 0xffff), + msb = (x >>> 16) + (y >>> 16) + (lsb >>> 16); + return (msb << 16) | (lsb & 0xffff); + } + + /* initialisation */ + function reset() { + acc = brs = cnt = 0; + for (var i = 0; i < 256; ++i) + m[i] = r[i] = 0; + gnt = 0; + } + + /* seeding function */ + function seed(s) { + var a, b, c, d, e, f, g, h, i; + + /* seeding the seeds of love */ + a = b = c = d = e = f = g = h = 0x9e3779b9; /* the golden ratio */ + + if (s && typeof(s) === 'number') + s = [s]; + + if (s instanceof Array) { + reset(); + for (i = 0; i < s.length; ++i) + r[i & 0xff] += typeof(s[i]) === 'number' ? s[i] : 0; + } + + /* private: seed mixer */ + function seed_mix() { + a ^= b << 11; d = add(d, a); b = add(b, c); + b ^= c >>> 2; e = add(e, b); c = add(c, d); + c ^= d << 8; f = add(f, c); d = add(d, e); + d ^= e >>> 16; g = add(g, d); e = add(e, f); + e ^= f << 10; h = add(h, e); f = add(f, g); + f ^= g >>> 4; a = add(a, f); g = add(g, h); + g ^= h << 8; b = add(b, g); h = add(h, a); + h ^= a >>> 9; c = add(c, h); a = add(a, b); + } + + for (i = 0; i < 4; i++) /* scramble it */ + seed_mix(); + + for (i = 0; i < 256; i += 8) { + if (s) /* use all the information in the seed */ + a = add(a, r[i + 0]), b = add(b, r[i + 1]), + c = add(c, r[i + 2]), d = add(d, r[i + 3]), + e = add(e, r[i + 4]), f = add(f, r[i + 5]), + g = add(g, r[i + 6]), h = add(h, r[i + 7]); + seed_mix(); + /* fill in m[] with messy stuff */ + m[i + 0] = a; m[i + 1] = b; m[i + 2] = c; m[i + 3] = d; + m[i + 4] = e; m[i + 5] = f; m[i + 6] = g; m[i + 7] = h; + } + if (s) + /* do a second pass to make all of the seed affect all of m[] */ + for (i = 0; i < 256; i += 8) + a = add(a, m[i + 0]), b = add(b, m[i + 1]), + c = add(c, m[i + 2]), d = add(d, m[i + 3]), + e = add(e, m[i + 4]), f = add(f, m[i + 5]), + g = add(g, m[i + 6]), h = add(h, m[i + 7]), + seed_mix(), + /* fill in m[] with messy stuff (again) */ + m[i + 0] = a, m[i + 1] = b, m[i + 2] = c, m[i + 3] = d, + m[i + 4] = e, m[i + 5] = f, m[i + 6] = g, m[i + 7] = h; + prng(); /* fill in the first set of results */ + gnt = 256; /* prepare to use the first set of results */; + } + + /* isaac generator, n = number of run */ + function prng(n) { + var i, x, y; + n = n && typeof(n) === 'number' ? Math.abs(Math.floor(n)) : 1; + while (n--) { + cnt = add(cnt, 1); + brs = add(brs, cnt); + for(i = 0; i < 256; i++) { + switch(i & 3) { + case 0: acc ^= acc << 13; break; + case 1: acc ^= acc >>> 6; break; + case 2: acc ^= acc << 2; break; + case 3: acc ^= acc >>> 16; break; + } + acc = add(m[(i + 128) & 0xff], acc); x = m[i]; + m[i] = y = add(m[(x >>> 2) & 0xff], add(acc, brs)); + r[i] = brs = add(m[(y >>> 10) & 0xff], x); + } + } + } + + /* return a random number between */ + return function() { + if (!isd) // seed from accumulator + isd = true, + accum.stop(), + seed(accum.fetch()); + if (!gnt--) + prng(), gnt = 255; + return r[gnt]; + }; +})(); diff --git a/node_modules/bcryptjs/src/bcrypt/util.js b/node_modules/bcryptjs/src/bcrypt/util.js new file mode 100644 index 00000000..a149f71b --- /dev/null +++ b/node_modules/bcryptjs/src/bcrypt/util.js @@ -0,0 +1,33 @@ +/** + * Continues with the callback on the next tick. + * @function + * @param {function(...[*])} callback Callback to execute + * @inner + */ +var nextTick = typeof process !== 'undefined' && process && typeof process.nextTick === 'function' + ? (typeof setImmediate === 'function' ? setImmediate : process.nextTick) + : setTimeout; + +/** + * Converts a JavaScript string to UTF8 bytes. + * @param {string} str String + * @returns {!Array.} UTF8 bytes + * @inner + */ +function stringToBytes(str) { + var out = [], + i = 0; + utfx.encodeUTF16toUTF8(function() { + if (i >= str.length) return null; + return str.charCodeAt(i++); + }, function(b) { + out.push(b); + }); + return out; +} + +//? include("util/base64.js"); + +//? include("../../node_modules/utfx/dist/utfx-embeddable.js"); + +Date.now = Date.now || function() { return +new Date; }; diff --git a/node_modules/bcryptjs/src/bcrypt/util/base64.js b/node_modules/bcryptjs/src/bcrypt/util/base64.js new file mode 100644 index 00000000..deda4aff --- /dev/null +++ b/node_modules/bcryptjs/src/bcrypt/util/base64.js @@ -0,0 +1,115 @@ +// A base64 implementation for the bcrypt algorithm. This is partly non-standard. + +/** + * bcrypt's own non-standard base64 dictionary. + * @type {!Array.} + * @const + * @inner + **/ +var BASE64_CODE = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(''); + +/** + * @type {!Array.} + * @const + * @inner + **/ +var BASE64_INDEX = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, -1, + -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, -1, -1, -1, -1, -1]; + +/** + * @type {!function(...number):string} + * @inner + */ +var stringFromCharCode = String.fromCharCode; + +/** + * Encodes a byte array to base64 with up to len bytes of input. + * @param {!Array.} b Byte array + * @param {number} len Maximum input length + * @returns {string} + * @inner + */ +function base64_encode(b, len) { + var off = 0, + rs = [], + c1, c2; + if (len <= 0 || len > b.length) + throw Error("Illegal len: "+len); + while (off < len) { + c1 = b[off++] & 0xff; + rs.push(BASE64_CODE[(c1 >> 2) & 0x3f]); + c1 = (c1 & 0x03) << 4; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 4) & 0x0f; + rs.push(BASE64_CODE[c1 & 0x3f]); + c1 = (c2 & 0x0f) << 2; + if (off >= len) { + rs.push(BASE64_CODE[c1 & 0x3f]); + break; + } + c2 = b[off++] & 0xff; + c1 |= (c2 >> 6) & 0x03; + rs.push(BASE64_CODE[c1 & 0x3f]); + rs.push(BASE64_CODE[c2 & 0x3f]); + } + return rs.join(''); +} + +/** + * Decodes a base64 encoded string to up to len bytes of output. + * @param {string} s String to decode + * @param {number} len Maximum output length + * @returns {!Array.} + * @inner + */ +function base64_decode(s, len) { + var off = 0, + slen = s.length, + olen = 0, + rs = [], + c1, c2, c3, c4, o, code; + if (len <= 0) + throw Error("Illegal len: "+len); + while (off < slen - 1 && olen < len) { + code = s.charCodeAt(off++); + c1 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + code = s.charCodeAt(off++); + c2 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c1 == -1 || c2 == -1) + break; + o = (c1 << 2) >>> 0; + o |= (c2 & 0x30) >> 4; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c3 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + if (c3 == -1) + break; + o = ((c2 & 0x0f) << 4) >>> 0; + o |= (c3 & 0x3c) >> 2; + rs.push(stringFromCharCode(o)); + if (++olen >= len || off >= slen) + break; + code = s.charCodeAt(off++); + c4 = code < BASE64_INDEX.length ? BASE64_INDEX[code] : -1; + o = ((c3 & 0x03) << 6) >>> 0; + o |= c4; + rs.push(stringFromCharCode(o)); + ++olen; + } + var res = []; + for (off = 0; off + Copyright (c) 2012 Shane Girish + Copyright (c) 2014 Daniel Wirtz + + 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. + */ + +/** + * @license bcrypt.js (c) 2013 Daniel Wirtz + * Released under the Apache License, Version 2.0 + * see: https://github.com/dcodeIO/bcrypt.js for details + */ +(function(global, factory) { + + /* AMD */ if (typeof define === 'function' && define["amd"]) + define([], factory); + /* CommonJS */ else if (typeof require === 'function' && typeof module === "object" && module && module["exports"]) + module["exports"] = factory(); + /* Global */ else + (global["dcodeIO"] = global["dcodeIO"] || {})["bcrypt"] = factory(); + +}(this, function() { + "use strict"; + + //? include("bcrypt.js"); + + return bcrypt; +})); diff --git a/node_modules/bcryptjs/tests/quickbrown.txt b/node_modules/bcryptjs/tests/quickbrown.txt new file mode 100644 index 00000000..81e850f2 --- /dev/null +++ b/node_modules/bcryptjs/tests/quickbrown.txt @@ -0,0 +1,150 @@ +Sentences that contain all letters commonly used in a language +-------------------------------------------------------------- + +Markus Kuhn -- 2012-04-11 + +This is an example of a plain-text file encoded in UTF-8. + + +Danish (da) +--------- + + Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen + Wolther spillede på xylofon. + (= Quiz contestants were eating strawbery with cream while Wolther + the circus clown played on xylophone.) + +German (de) +----------- + + Falsches Üben von Xylophonmusik quält jeden größeren Zwerg + (= Wrongful practicing of xylophone music tortures every larger dwarf) + + Zwölf Boxkämpfer jagten Eva quer über den Sylter Deich + (= Twelve boxing fighters hunted Eva across the dike of Sylt) + + Heizölrückstoßabdämpfung + (= fuel oil recoil absorber) + (jqvwxy missing, but all non-ASCII letters in one word) + +Greek (el) +---------- + + Γαζέες καὶ μυρτιὲς δὲν θὰ βρῶ πιὰ στὸ χρυσαφὶ ξέφωτο + (= No more shall I see acacias or myrtles in the golden clearing) + + Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία + (= I uncover the soul-destroying abhorrence) + +English (en) +------------ + + The quick brown fox jumps over the lazy dog + +Spanish (es) +------------ + + El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y + frío, añoraba a su querido cachorro. + (Contains every letter and every accent, but not every combination + of vowel + acute.) + +French (fr) +----------- + + Portez ce vieux whisky au juge blond qui fume sur son île intérieure, à + côté de l'alcôve ovoïde, où les bûches se consument dans l'âtre, ce + qui lui permet de penser à la cænogenèse de l'être dont il est question + dans la cause ambiguë entendue à Moÿ, dans un capharnaüm qui, + pense-t-il, diminue çà et là la qualité de son œuvre. + + l'île exiguë + Où l'obèse jury mûr + Fête l'haï volapük, + Âne ex aéquo au whist, + Ôtez ce vœu déçu. + + Le cœur déçu mais l'âme plutôt naïve, Louÿs rêva de crapaüter en + canoë au delà des îles, près du mälström où brûlent les novæ. + +Irish Gaelic (ga) +----------------- + + D'fhuascail Íosa, Úrmhac na hÓighe Beannaithe, pór Éava agus Ádhaimh + +Hungarian (hu) +-------------- + + Árvíztűrő tükörfúrógép + (= flood-proof mirror-drilling machine, only all non-ASCII letters) + +Icelandic (is) +-------------- + + Kæmi ný öxi hér ykist þjófum nú bæði víl og ádrepa + + Sævör grét áðan því úlpan var ónýt + (some ASCII letters missing) + +Japanese (jp) +------------- + + Hiragana: (Iroha) + + いろはにほへとちりぬるを + わかよたれそつねならむ + うゐのおくやまけふこえて + あさきゆめみしゑひもせす + + Katakana: + + イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム + ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン + +Hebrew (iw) +----------- + + ? דג סקרן שט בים מאוכזב ולפתע מצא לו חברה איך הקליטה + +Polish (pl) +----------- + + Pchnąć w tę łódź jeża lub ośm skrzyń fig + (= To push a hedgehog or eight bins of figs in this boat) + +Russian (ru) +------------ + + В чащах юга жил бы цитрус? Да, но фальшивый экземпляр! + (= Would a citrus live in the bushes of south? Yes, but only a fake one!) + + Съешь же ещё этих мягких французских булок да выпей чаю + (= Eat some more of these fresh French loafs and have some tea) + +Thai (th) +--------- + + [--------------------------|------------------------] + ๏ เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน + จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญฤๅเข่นฆ่าบีฑาใคร + ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย + ปฏิบัติประพฤติกฎกำหนดใจ พูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอย ฯ + + [The copyright for the Thai example is owned by The Computer + Association of Thailand under the Royal Patronage of His Majesty the + King.] + +Turkish (tr) +------------ + + Pijamalı hasta, yağız şoföre çabucak güvendi. + (=Patient with pajamas, trusted swarthy driver quickly) + + +Special thanks to the people from all over the world who contributed +these sentences since 1999. + +A much larger collection of such pangrams is now available at + + http://en.wikipedia.org/wiki/List_of_pangrams + diff --git a/node_modules/bcryptjs/tests/suite.js b/node_modules/bcryptjs/tests/suite.js new file mode 100644 index 00000000..8c8afe19 --- /dev/null +++ b/node_modules/bcryptjs/tests/suite.js @@ -0,0 +1,197 @@ +var path = require("path"), + fs = require("fs"), + binding = require("bcrypt"), + bcrypt = require(path.join(__dirname, '..', 'index.js'))/*, + isaac = eval( + fs.readFileSync(path.join(__dirname, "..", "src", "bcrypt", "prng", "accum.js"))+ + fs.readFileSync(path.join(__dirname, "..", "src", "bcrypt", "prng", "isaac.js"))+ + " accum.start();"+ + " isaac" + )*/; + +module.exports = { + + "encodeBase64": function(test) { + var str = bcrypt.encodeBase64([0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10], 16); + test.strictEqual(str, "..CA.uOD/eaGAOmJB.yMBu"); + test.done(); + }, + + "decodeBase64": function(test) { + var bytes = bcrypt.decodeBase64("..CA.uOD/eaGAOmJB.yMBv.", 16); + test.deepEqual(bytes, [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F]); + test.done(); + }, + + "genSaltSync": function(test) { + var salt = bcrypt.genSaltSync(10); + test.ok(salt); + test.ok(typeof salt == 'string'); + test.ok(salt.length > 0); + test.done(); + }, + + "genSalt": function(test) { + bcrypt.genSalt(10, function(err, salt) { + test.ok(salt); + test.ok(typeof salt == 'string'); + test.ok(salt.length > 0); + test.done(); + }); + }, + + "hashSync": function(test) { + test.doesNotThrow(function() { + bcrypt.hashSync("hello", 10); + }); + test.notEqual(bcrypt.hashSync("hello", 10), bcrypt.hashSync("hello", 10)); + test.done(); + }, + + "hash": function(test) { + bcrypt.hash("hello", 10, function(err, hash) { + test.notOk(err); + test.ok(hash); + test.done(); + }); + }, + + "compareSync": function(test) { + var salt1 = bcrypt.genSaltSync(), + hash1 = bcrypt.hashSync("hello", salt1); // $2a$ + var salt2 = bcrypt.genSaltSync().replace(/\$2a\$/, "$2y$"), + hash2 = bcrypt.hashSync("world", salt2); + var salt3 = bcrypt.genSaltSync().replace(/\$2a\$/, "$2b$"), + hash3 = bcrypt.hashSync("hello world", salt3); + + test.strictEqual(hash1.substring(0,4), "$2a$"); + test.ok(bcrypt.compareSync("hello", hash1)); + test.notOk(bcrypt.compareSync("hello", hash2)); + test.notOk(bcrypt.compareSync("hello", hash3)); + + test.strictEqual(hash2.substring(0,4), "$2y$"); + test.ok(bcrypt.compareSync("world", hash2)); + test.notOk(bcrypt.compareSync("world", hash1)); + test.notOk(bcrypt.compareSync("world", hash3)); + + test.strictEqual(hash3.substring(0,4), "$2b$"); + test.ok(bcrypt.compareSync("hello world", hash3)); + test.notOk(bcrypt.compareSync("hello world", hash1)); + test.notOk(bcrypt.compareSync("hello world", hash2)); + + test.done(); + }, + + "compare": function(test) { + var salt1 = bcrypt.genSaltSync(), + hash1 = bcrypt.hashSync("hello", salt1); // $2a$ + var salt2 = bcrypt.genSaltSync(); + salt2 = salt2.substring(0,2)+'y'+salt2.substring(3); // $2y$ + var hash2 = bcrypt.hashSync("world", salt2); + bcrypt.compare("hello", hash1, function(err, same) { + test.notOk(err); + test.ok(same); + bcrypt.compare("hello", hash2, function(err, same) { + test.notOk(err); + test.notOk(same); + bcrypt.compare("world", hash2, function(err, same) { + test.notOk(err); + test.ok(same); + bcrypt.compare("world", hash1, function(err, same) { + test.notOk(err); + test.notOk(same); + test.done(); + }); + }); + }); + }); + }, + + "getSalt": function(test) { + var hash1 = bcrypt.hashSync("hello", bcrypt.genSaltSync()); + var salt = bcrypt.getSalt(hash1); + var hash2 = bcrypt.hashSync("hello", salt); + test.equal(hash1, hash2); + test.done(); + }, + + "getRounds": function(test) { + var hash1 = bcrypt.hashSync("hello", bcrypt.genSaltSync()); + test.equal(bcrypt.getRounds(hash1), 10); + test.done(); + }, + + "progress": function(test) { + bcrypt.genSalt(12, function(err, salt) { + test.ok(!err); + var progress = []; + bcrypt.hash("hello world", salt, function(err, hash) { + test.ok(!err); + test.ok(typeof hash === 'string'); + test.ok(progress.length >= 2); + test.strictEqual(progress[0], 0); + test.strictEqual(progress[progress.length-1], 1); + test.done(); + }, function(n) { + progress.push(n); + }); + }); + }, + + "promise": function(test) { + bcrypt.genSalt(10) + .then(function(salt) { + bcrypt.hash("hello", salt) + .then(function(hash) { + test.ok(hash); + bcrypt.compare("hello", hash) + .then(function(result) { + test.ok(result); + bcrypt.genSalt(/* no args */) + .then(function(salt) { + test.ok(salt); + test.done(); + }, function(err) { + test.fail(err, null, "promise rejected"); + }); + }, function(err) { + test.fail(err, null, "promise rejected"); + }); + }, function(err) { + test.fail(err, null, 'promise rejected'); + }); + }, function(err) { + test.fail(err, null, "promise rejected"); + }); + }, + + "compat": { + "quickbrown": function(test) { + var pass = fs.readFileSync(path.join(__dirname, "quickbrown.txt"))+"", + salt = bcrypt.genSaltSync(), + hash1 = binding.hashSync(pass, salt), + hash2 = bcrypt.hashSync(pass, salt); + test.equal(hash1, hash2); + test.done(); + }, + + "roundsOOB": function(test) { + var salt1 = bcrypt.genSaltSync(0), // $10$ like not set + salt2 = binding.genSaltSync(0); + test.strictEqual(salt1.substring(0, 7), "$2a$10$"); + test.strictEqual(salt2.substring(0, 7), "$2a$10$"); + + salt1 = bcrypt.genSaltSync(3); // $04$ is lower cap + salt2 = bcrypt.genSaltSync(3); + test.strictEqual(salt1.substring(0, 7), "$2a$04$"); + test.strictEqual(salt2.substring(0, 7), "$2a$04$"); + + salt1 = bcrypt.genSaltSync(32); // $31$ is upper cap + salt2 = bcrypt.genSaltSync(32); + test.strictEqual(salt1.substring(0, 7), "$2a$31$"); + test.strictEqual(salt2.substring(0, 7), "$2a$31$"); + + test.done(); + } + } +}; diff --git a/node_modules/binary-extensions/binary-extensions.json b/node_modules/binary-extensions/binary-extensions.json new file mode 100644 index 00000000..b33eac3b --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json @@ -0,0 +1,256 @@ +[ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "ai", + "aif", + "aiff", + "alz", + "ape", + "apk", + "appimage", + "ar", + "arj", + "asf", + "au", + "avi", + "bak", + "baml", + "bh", + "bin", + "bk", + "bmp", + "btif", + "bz2", + "bzip2", + "cab", + "caf", + "cgm", + "class", + "cmx", + "cpio", + "cr2", + "cur", + "dat", + "dcm", + "deb", + "dex", + "djvu", + "dll", + "dmg", + "dng", + "doc", + "docm", + "docx", + "dot", + "dotm", + "dra", + "DS_Store", + "dsk", + "dts", + "dtshd", + "dvb", + "dwg", + "dxf", + "ecelp4800", + "ecelp7470", + "ecelp9600", + "egg", + "eol", + "eot", + "epub", + "exe", + "f4v", + "fbs", + "fh", + "fla", + "flac", + "flatpak", + "fli", + "flv", + "fpx", + "fst", + "fvt", + "g3", + "gh", + "gif", + "graffle", + "gz", + "gzip", + "h261", + "h263", + "h264", + "icns", + "ico", + "ief", + "img", + "ipa", + "iso", + "jar", + "jpeg", + "jpg", + "jpgv", + "jpm", + "jxr", + "key", + "ktx", + "lha", + "lib", + "lvp", + "lz", + "lzh", + "lzma", + "lzo", + "m3u", + "m4a", + "m4v", + "mar", + "mdi", + "mht", + "mid", + "midi", + "mj2", + "mka", + "mkv", + "mmr", + "mng", + "mobi", + "mov", + "movie", + "mp3", + "mp4", + "mp4a", + "mpeg", + "mpg", + "mpga", + "mxu", + "nef", + "npx", + "numbers", + "nupkg", + "o", + "oga", + "ogg", + "ogv", + "otf", + "pages", + "pbm", + "pcx", + "pdb", + "pdf", + "pea", + "pgm", + "pic", + "png", + "pnm", + "pot", + "potm", + "potx", + "ppa", + "ppam", + "ppm", + "pps", + "ppsm", + "ppsx", + "ppt", + "pptm", + "pptx", + "psd", + "pya", + "pyc", + "pyo", + "pyv", + "qt", + "rar", + "ras", + "raw", + "resources", + "rgb", + "rip", + "rlc", + "rmf", + "rmvb", + "rpm", + "rtf", + "rz", + "s3m", + "s7z", + "scpt", + "sgi", + "shar", + "snap", + "sil", + "sketch", + "slk", + "smv", + "snk", + "so", + "stl", + "suo", + "sub", + "swf", + "tar", + "tbz", + "tbz2", + "tga", + "tgz", + "thmx", + "tif", + "tiff", + "tlz", + "ttc", + "ttf", + "txz", + "udf", + "uvh", + "uvi", + "uvm", + "uvp", + "uvs", + "uvu", + "viv", + "vob", + "war", + "wav", + "wax", + "wbmp", + "wdp", + "weba", + "webm", + "webp", + "whl", + "wim", + "wm", + "wma", + "wmv", + "wmx", + "woff", + "woff2", + "wrm", + "wvx", + "xbm", + "xif", + "xla", + "xlam", + "xls", + "xlsb", + "xlsm", + "xlsx", + "xlt", + "xltm", + "xltx", + "xm", + "xmind", + "xpi", + "xpm", + "xwd", + "xz", + "z", + "zip", + "zipx" +] diff --git a/node_modules/binary-extensions/binary-extensions.json.d.ts b/node_modules/binary-extensions/binary-extensions.json.d.ts new file mode 100644 index 00000000..94a248c2 --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json.d.ts @@ -0,0 +1,3 @@ +declare const binaryExtensionsJson: readonly string[]; + +export = binaryExtensionsJson; diff --git a/node_modules/binary-extensions/index.d.ts b/node_modules/binary-extensions/index.d.ts new file mode 100644 index 00000000..f469ac5f --- /dev/null +++ b/node_modules/binary-extensions/index.d.ts @@ -0,0 +1,14 @@ +/** +List of binary file extensions. + +@example +``` +import binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` +*/ +declare const binaryExtensions: readonly string[]; + +export = binaryExtensions; diff --git a/node_modules/binary-extensions/index.js b/node_modules/binary-extensions/index.js new file mode 100644 index 00000000..d46e4688 --- /dev/null +++ b/node_modules/binary-extensions/index.js @@ -0,0 +1 @@ +module.exports = require('./binary-extensions.json'); diff --git a/node_modules/binary-extensions/license b/node_modules/binary-extensions/license new file mode 100644 index 00000000..401b1c73 --- /dev/null +++ b/node_modules/binary-extensions/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/binary-extensions/package.json b/node_modules/binary-extensions/package.json new file mode 100644 index 00000000..977489fd --- /dev/null +++ b/node_modules/binary-extensions/package.json @@ -0,0 +1,70 @@ +{ + "_from": "binary-extensions@^2.0.0", + "_id": "binary-extensions@2.1.0", + "_inBundle": false, + "_integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "_location": "/binary-extensions", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "binary-extensions@^2.0.0", + "name": "binary-extensions", + "escapedName": "binary-extensions", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/is-binary-path" + ], + "_resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "_shasum": "30fa40c9e7fe07dbc895678cd287024dea241dd9", + "_spec": "binary-extensions@^2.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\is-binary-path", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/binary-extensions/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "List of binary file extensions", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts", + "binary-extensions.json", + "binary-extensions.json.d.ts" + ], + "homepage": "https://github.com/sindresorhus/binary-extensions#readme", + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "json", + "list", + "array" + ], + "license": "MIT", + "name": "binary-extensions", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/binary-extensions.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.1.0" +} diff --git a/node_modules/binary-extensions/readme.md b/node_modules/binary-extensions/readme.md new file mode 100644 index 00000000..344c52c9 --- /dev/null +++ b/node_modules/binary-extensions/readme.md @@ -0,0 +1,41 @@ +# binary-extensions [![Build Status](https://travis-ci.org/sindresorhus/binary-extensions.svg?branch=master)](https://travis-ci.org/sindresorhus/binary-extensions) + +> List of binary file extensions + +The list is just a [JSON file](binary-extensions.json) and can be used anywhere. + + +## Install + +``` +$ npm install binary-extensions +``` + + +## Usage + +```js +const binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` + + +## Related + +- [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file +- [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/bl/.jshintrc b/node_modules/bl/.jshintrc new file mode 100644 index 00000000..be119b29 --- /dev/null +++ b/node_modules/bl/.jshintrc @@ -0,0 +1,60 @@ +{ + "predef": [ ] + , "bitwise": false + , "camelcase": false + , "curly": false + , "eqeqeq": false + , "forin": false + , "immed": false + , "latedef": false + , "noarg": true + , "noempty": true + , "nonew": true + , "plusplus": false + , "quotmark": true + , "regexp": false + , "undef": true + , "unused": true + , "strict": false + , "trailing": true + , "maxlen": 120 + , "asi": true + , "boss": true + , "debug": true + , "eqnull": true + , "esnext": false + , "evil": true + , "expr": true + , "funcscope": false + , "globalstrict": false + , "iterator": false + , "lastsemic": true + , "laxbreak": true + , "laxcomma": true + , "loopfunc": true + , "multistr": false + , "onecase": false + , "proto": false + , "regexdash": false + , "scripturl": true + , "smarttabs": false + , "shadow": false + , "sub": true + , "supernew": false + , "validthis": true + , "browser": true + , "couch": false + , "devel": false + , "dojo": false + , "mootools": false + , "node": true + , "nonstandard": true + , "prototypejs": false + , "rhino": false + , "worker": true + , "wsh": false + , "nomen": false + , "onevar": false + , "passfail": false + , "esversion": 3 +} \ No newline at end of file diff --git a/node_modules/bl/.travis.yml b/node_modules/bl/.travis.yml new file mode 100644 index 00000000..1044a092 --- /dev/null +++ b/node_modules/bl/.travis.yml @@ -0,0 +1,15 @@ +sudo: false +language: node_js +node_js: + - '4' + - '6' + - '8' + - '9' + - '10' +branches: + only: + - master +notifications: + email: + - rod@vagg.org + - matteo.collina@gmail.com diff --git a/node_modules/bl/LICENSE.md b/node_modules/bl/LICENSE.md new file mode 100644 index 00000000..dea757d4 --- /dev/null +++ b/node_modules/bl/LICENSE.md @@ -0,0 +1,13 @@ +The MIT License (MIT) +===================== + +Copyright (c) 2013-2018 bl contributors +---------------------------------- + +*bl contributors listed at * + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/bl/README.md b/node_modules/bl/README.md new file mode 100644 index 00000000..79dca353 --- /dev/null +++ b/node_modules/bl/README.md @@ -0,0 +1,218 @@ +# bl *(BufferList)* + +[![Build Status](https://travis-ci.org/rvagg/bl.svg?branch=master)](https://travis-ci.org/rvagg/bl) + +**A Node.js Buffer list collector, reader and streamer thingy.** + +[![NPM](https://nodei.co/npm/bl.png?downloads=true&downloadRank=true)](https://nodei.co/npm/bl/) +[![NPM](https://nodei.co/npm-dl/bl.png?months=6&height=3)](https://nodei.co/npm/bl/) + +**bl** is a storage object for collections of Node Buffers, exposing them with the main Buffer readable API. Also works as a duplex stream so you can collect buffers from a stream that emits them and emit buffers to a stream that consumes them! + +The original buffers are kept intact and copies are only done as necessary. Any reads that require the use of a single original buffer will return a slice of that buffer only (which references the same memory as the original buffer). Reads that span buffers perform concatenation as required and return the results transparently. + +```js +const BufferList = require('bl') + +var bl = new BufferList() +bl.append(Buffer.from('abcd')) +bl.append(Buffer.from('efg')) +bl.append('hi') // bl will also accept & convert Strings +bl.append(Buffer.from('j')) +bl.append(Buffer.from([ 0x3, 0x4 ])) + +console.log(bl.length) // 12 + +console.log(bl.slice(0, 10).toString('ascii')) // 'abcdefghij' +console.log(bl.slice(3, 10).toString('ascii')) // 'defghij' +console.log(bl.slice(3, 6).toString('ascii')) // 'def' +console.log(bl.slice(3, 8).toString('ascii')) // 'defgh' +console.log(bl.slice(5, 10).toString('ascii')) // 'fghij' + +console.log(bl.indexOf('def')) // 3 +console.log(bl.indexOf('asdf')) // -1 + +// or just use toString! +console.log(bl.toString()) // 'abcdefghij\u0003\u0004' +console.log(bl.toString('ascii', 3, 8)) // 'defgh' +console.log(bl.toString('ascii', 5, 10)) // 'fghij' + +// other standard Buffer readables +console.log(bl.readUInt16BE(10)) // 0x0304 +console.log(bl.readUInt16LE(10)) // 0x0403 +``` + +Give it a callback in the constructor and use it just like **[concat-stream](https://github.com/maxogden/node-concat-stream)**: + +```js +const bl = require('bl') + , fs = require('fs') + +fs.createReadStream('README.md') + .pipe(bl(function (err, data) { // note 'new' isn't strictly required + // `data` is a complete Buffer object containing the full data + console.log(data.toString()) + })) +``` + +Note that when you use the *callback* method like this, the resulting `data` parameter is a concatenation of all `Buffer` objects in the list. If you want to avoid the overhead of this concatenation (in cases of extreme performance consciousness), then avoid the *callback* method and just listen to `'end'` instead, like a standard Stream. + +Or to fetch a URL using [hyperquest](https://github.com/substack/hyperquest) (should work with [request](http://github.com/mikeal/request) and even plain Node http too!): +```js +const hyperquest = require('hyperquest') + , bl = require('bl') + , url = 'https://raw.github.com/rvagg/bl/master/README.md' + +hyperquest(url).pipe(bl(function (err, data) { + console.log(data.toString()) +})) +``` + +Or, use it as a readable stream to recompose a list of Buffers to an output source: + +```js +const BufferList = require('bl') + , fs = require('fs') + +var bl = new BufferList() +bl.append(Buffer.from('abcd')) +bl.append(Buffer.from('efg')) +bl.append(Buffer.from('hi')) +bl.append(Buffer.from('j')) + +bl.pipe(fs.createWriteStream('gibberish.txt')) +``` + +## API + + * new BufferList([ callback ]) + * bl.length + * bl.append(buffer) + * bl.get(index) + * bl.indexOf(value[, byteOffset][, encoding]) + * bl.slice([ start[, end ] ]) + * bl.shallowSlice([ start[, end ] ]) + * bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) + * bl.duplicate() + * bl.consume(bytes) + * bl.toString([encoding, [ start, [ end ]]]) + * bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() + * Streams + +-------------------------------------------------------- + +### new BufferList([ callback | Buffer | Buffer array | BufferList | BufferList array | String ]) +The constructor takes an optional callback, if supplied, the callback will be called with an error argument followed by a reference to the **bl** instance, when `bl.end()` is called (i.e. from a piped stream). This is a convenient method of collecting the entire contents of a stream, particularly when the stream is *chunky*, such as a network stream. + +Normally, no arguments are required for the constructor, but you can initialise the list by passing in a single `Buffer` object or an array of `Buffer` object. + +`new` is not strictly required, if you don't instantiate a new object, it will be done automatically for you so you can create a new instance simply with: + +```js +var bl = require('bl') +var myinstance = bl() + +// equivalent to: + +var BufferList = require('bl') +var myinstance = new BufferList() +``` + +-------------------------------------------------------- + +### bl.length +Get the length of the list in bytes. This is the sum of the lengths of all of the buffers contained in the list, minus any initial offset for a semi-consumed buffer at the beginning. Should accurately represent the total number of bytes that can be read from the list. + +-------------------------------------------------------- + +### bl.append(Buffer | Buffer array | BufferList | BufferList array | String) +`append(buffer)` adds an additional buffer or BufferList to the internal list. `this` is returned so it can be chained. + +-------------------------------------------------------- + +### bl.get(index) +`get()` will return the byte at the specified index. + +-------------------------------------------------------- + +### bl.indexOf(value[, byteOffset][, encoding]) +`get()` will return the byte at the specified index. +`indexOf()` method returns the first index at which a given element can be found in the BufferList, or -1 if it is not present. + +-------------------------------------------------------- + +### bl.slice([ start, [ end ] ]) +`slice()` returns a new `Buffer` object containing the bytes within the range specified. Both `start` and `end` are optional and will default to the beginning and end of the list respectively. + +If the requested range spans a single internal buffer then a slice of that buffer will be returned which shares the original memory range of that Buffer. If the range spans multiple buffers then copy operations will likely occur to give you a uniform Buffer. + +-------------------------------------------------------- + +### bl.shallowSlice([ start, [ end ] ]) +`shallowSlice()` returns a new `BufferList` object containing the bytes within the range specified. Both `start` and `end` are optional and will default to the beginning and end of the list respectively. + +No copies will be performed. All buffers in the result share memory with the original list. + +-------------------------------------------------------- + +### bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) +`copy()` copies the content of the list in the `dest` buffer, starting from `destStart` and containing the bytes within the range specified with `srcStart` to `srcEnd`. `destStart`, `start` and `end` are optional and will default to the beginning of the `dest` buffer, and the beginning and end of the list respectively. + +-------------------------------------------------------- + +### bl.duplicate() +`duplicate()` performs a **shallow-copy** of the list. The internal Buffers remains the same, so if you change the underlying Buffers, the change will be reflected in both the original and the duplicate. This method is needed if you want to call `consume()` or `pipe()` and still keep the original list.Example: + +```js +var bl = new BufferList() + +bl.append('hello') +bl.append(' world') +bl.append('\n') + +bl.duplicate().pipe(process.stdout, { end: false }) + +console.log(bl.toString()) +``` + +-------------------------------------------------------- + +### bl.consume(bytes) +`consume()` will shift bytes *off the start of the list*. The number of bytes consumed don't need to line up with the sizes of the internal Buffers—initial offsets will be calculated accordingly in order to give you a consistent view of the data. + +-------------------------------------------------------- + +### bl.toString([encoding, [ start, [ end ]]]) +`toString()` will return a string representation of the buffer. The optional `start` and `end` arguments are passed on to `slice()`, while the `encoding` is passed on to `toString()` of the resulting Buffer. See the [Buffer#toString()](http://nodejs.org/docs/latest/api/buffer.html#buffer_buf_tostring_encoding_start_end) documentation for more information. + +-------------------------------------------------------- + +### bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() + +All of the standard byte-reading methods of the `Buffer` interface are implemented and will operate across internal Buffer boundaries transparently. + +See the [Buffer](http://nodejs.org/docs/latest/api/buffer.html) documentation for how these work. + +-------------------------------------------------------- + +### Streams +**bl** is a Node **[Duplex Stream](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_duplex)**, so it can be read from and written to like a standard Node stream. You can also `pipe()` to and from a **bl** instance. + +-------------------------------------------------------- + +## Contributors + +**bl** is brought to you by the following hackers: + + * [Rod Vagg](https://github.com/rvagg) + * [Matteo Collina](https://github.com/mcollina) + * [Jarett Cruger](https://github.com/jcrugzz) + +======= + + +## License & copyright + +Copyright (c) 2013-2018 bl contributors (listed above). + +bl is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details. diff --git a/node_modules/bl/bl.js b/node_modules/bl/bl.js new file mode 100644 index 00000000..52c37405 --- /dev/null +++ b/node_modules/bl/bl.js @@ -0,0 +1,392 @@ +'use strict' +var DuplexStream = require('readable-stream').Duplex + , util = require('util') + , Buffer = require('safe-buffer').Buffer + +function BufferList (callback) { + if (!(this instanceof BufferList)) + return new BufferList(callback) + + this._bufs = [] + this.length = 0 + + if (typeof callback == 'function') { + this._callback = callback + + var piper = function piper (err) { + if (this._callback) { + this._callback(err) + this._callback = null + } + }.bind(this) + + this.on('pipe', function onPipe (src) { + src.on('error', piper) + }) + this.on('unpipe', function onUnpipe (src) { + src.removeListener('error', piper) + }) + } else { + this.append(callback) + } + + DuplexStream.call(this) +} + + +util.inherits(BufferList, DuplexStream) + + +BufferList.prototype._offset = function _offset (offset) { + var tot = 0, i = 0, _t + if (offset === 0) return [ 0, 0 ] + for (; i < this._bufs.length; i++) { + _t = tot + this._bufs[i].length + if (offset < _t || i == this._bufs.length - 1) { + return [ i, offset - tot ] + } + tot = _t + } +} + +BufferList.prototype._reverseOffset = function (blOffset) { + var bufferId = blOffset[0] + var offset = blOffset[1] + for (var i = 0; i < bufferId; i++) { + offset += this._bufs[i].length + } + return offset +} + +BufferList.prototype.append = function append (buf) { + var i = 0 + + if (Buffer.isBuffer(buf)) { + this._appendBuffer(buf) + } else if (Array.isArray(buf)) { + for (; i < buf.length; i++) + this.append(buf[i]) + } else if (buf instanceof BufferList) { + // unwrap argument into individual BufferLists + for (; i < buf._bufs.length; i++) + this.append(buf._bufs[i]) + } else if (buf != null) { + // coerce number arguments to strings, since Buffer(number) does + // uninitialized memory allocation + if (typeof buf == 'number') + buf = buf.toString() + + this._appendBuffer(Buffer.from(buf)) + } + + return this +} + + +BufferList.prototype._appendBuffer = function appendBuffer (buf) { + this._bufs.push(buf) + this.length += buf.length +} + + +BufferList.prototype._write = function _write (buf, encoding, callback) { + this._appendBuffer(buf) + + if (typeof callback == 'function') + callback() +} + + +BufferList.prototype._read = function _read (size) { + if (!this.length) + return this.push(null) + + size = Math.min(size, this.length) + this.push(this.slice(0, size)) + this.consume(size) +} + + +BufferList.prototype.end = function end (chunk) { + DuplexStream.prototype.end.call(this, chunk) + + if (this._callback) { + this._callback(null, this.slice()) + this._callback = null + } +} + + +BufferList.prototype.get = function get (index) { + if (index > this.length || index < 0) { + return undefined + } + var offset = this._offset(index) + return this._bufs[offset[0]][offset[1]] +} + + +BufferList.prototype.slice = function slice (start, end) { + if (typeof start == 'number' && start < 0) + start += this.length + if (typeof end == 'number' && end < 0) + end += this.length + return this.copy(null, 0, start, end) +} + + +BufferList.prototype.copy = function copy (dst, dstStart, srcStart, srcEnd) { + if (typeof srcStart != 'number' || srcStart < 0) + srcStart = 0 + if (typeof srcEnd != 'number' || srcEnd > this.length) + srcEnd = this.length + if (srcStart >= this.length) + return dst || Buffer.alloc(0) + if (srcEnd <= 0) + return dst || Buffer.alloc(0) + + var copy = !!dst + , off = this._offset(srcStart) + , len = srcEnd - srcStart + , bytes = len + , bufoff = (copy && dstStart) || 0 + , start = off[1] + , l + , i + + // copy/slice everything + if (srcStart === 0 && srcEnd == this.length) { + if (!copy) { // slice, but full concat if multiple buffers + return this._bufs.length === 1 + ? this._bufs[0] + : Buffer.concat(this._bufs, this.length) + } + + // copy, need to copy individual buffers + for (i = 0; i < this._bufs.length; i++) { + this._bufs[i].copy(dst, bufoff) + bufoff += this._bufs[i].length + } + + return dst + } + + // easy, cheap case where it's a subset of one of the buffers + if (bytes <= this._bufs[off[0]].length - start) { + return copy + ? this._bufs[off[0]].copy(dst, dstStart, start, start + bytes) + : this._bufs[off[0]].slice(start, start + bytes) + } + + if (!copy) // a slice, we need something to copy in to + dst = Buffer.allocUnsafe(len) + + for (i = off[0]; i < this._bufs.length; i++) { + l = this._bufs[i].length - start + + if (bytes > l) { + this._bufs[i].copy(dst, bufoff, start) + bufoff += l + } else { + this._bufs[i].copy(dst, bufoff, start, start + bytes) + bufoff += l + break + } + + bytes -= l + + if (start) + start = 0 + } + + // safeguard so that we don't return uninitialized memory + if (dst.length > bufoff) return dst.slice(0, bufoff) + + return dst +} + +BufferList.prototype.shallowSlice = function shallowSlice (start, end) { + start = start || 0 + end = typeof end !== 'number' ? this.length : end + + if (start < 0) + start += this.length + if (end < 0) + end += this.length + + if (start === end) { + return new BufferList() + } + var startOffset = this._offset(start) + , endOffset = this._offset(end) + , buffers = this._bufs.slice(startOffset[0], endOffset[0] + 1) + + if (endOffset[1] == 0) + buffers.pop() + else + buffers[buffers.length-1] = buffers[buffers.length-1].slice(0, endOffset[1]) + + if (startOffset[1] != 0) + buffers[0] = buffers[0].slice(startOffset[1]) + + return new BufferList(buffers) +} + +BufferList.prototype.toString = function toString (encoding, start, end) { + return this.slice(start, end).toString(encoding) +} + +BufferList.prototype.consume = function consume (bytes) { + // first, normalize the argument, in accordance with how Buffer does it + bytes = Math.trunc(bytes) + // do nothing if not a positive number + if (Number.isNaN(bytes) || bytes <= 0) return this + + while (this._bufs.length) { + if (bytes >= this._bufs[0].length) { + bytes -= this._bufs[0].length + this.length -= this._bufs[0].length + this._bufs.shift() + } else { + this._bufs[0] = this._bufs[0].slice(bytes) + this.length -= bytes + break + } + } + return this +} + + +BufferList.prototype.duplicate = function duplicate () { + var i = 0 + , copy = new BufferList() + + for (; i < this._bufs.length; i++) + copy.append(this._bufs[i]) + + return copy +} + + +BufferList.prototype.destroy = function destroy () { + this._bufs.length = 0 + this.length = 0 + this.push(null) +} + + +BufferList.prototype.indexOf = function (search, offset, encoding) { + if (encoding === undefined && typeof offset === 'string') { + encoding = offset + offset = undefined + } + if (typeof search === 'function' || Array.isArray(search)) { + throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.') + } else if (typeof search === 'number') { + search = Buffer.from([search]) + } else if (typeof search === 'string') { + search = Buffer.from(search, encoding) + } else if (search instanceof BufferList) { + search = search.slice() + } else if (!Buffer.isBuffer(search)) { + search = Buffer.from(search) + } + + offset = Number(offset || 0) + if (isNaN(offset)) { + offset = 0 + } + + if (offset < 0) { + offset = this.length + offset + } + + if (offset < 0) { + offset = 0 + } + + if (search.length === 0) { + return offset > this.length ? this.length : offset + } + + var blOffset = this._offset(offset) + var blIndex = blOffset[0] // index of which internal buffer we're working on + var buffOffset = blOffset[1] // offset of the internal buffer we're working on + + // scan over each buffer + for (blIndex; blIndex < this._bufs.length; blIndex++) { + var buff = this._bufs[blIndex] + while(buffOffset < buff.length) { + var availableWindow = buff.length - buffOffset + if (availableWindow >= search.length) { + var nativeSearchResult = buff.indexOf(search, buffOffset) + if (nativeSearchResult !== -1) { + return this._reverseOffset([blIndex, nativeSearchResult]) + } + buffOffset = buff.length - search.length + 1 // end of native search window + } else { + var revOffset = this._reverseOffset([blIndex, buffOffset]) + if (this._match(revOffset, search)) { + return revOffset + } + buffOffset++ + } + } + buffOffset = 0 + } + return -1 +} + +BufferList.prototype._match = function(offset, search) { + if (this.length - offset < search.length) { + return false + } + for (var searchOffset = 0; searchOffset < search.length ; searchOffset++) { + if(this.get(offset + searchOffset) !== search[searchOffset]){ + return false + } + } + return true +} + + +;(function () { + var methods = { + 'readDoubleBE' : 8 + , 'readDoubleLE' : 8 + , 'readFloatBE' : 4 + , 'readFloatLE' : 4 + , 'readInt32BE' : 4 + , 'readInt32LE' : 4 + , 'readUInt32BE' : 4 + , 'readUInt32LE' : 4 + , 'readInt16BE' : 2 + , 'readInt16LE' : 2 + , 'readUInt16BE' : 2 + , 'readUInt16LE' : 2 + , 'readInt8' : 1 + , 'readUInt8' : 1 + , 'readIntBE' : null + , 'readIntLE' : null + , 'readUIntBE' : null + , 'readUIntLE' : null + } + + for (var m in methods) { + (function (m) { + if (methods[m] === null) { + BufferList.prototype[m] = function (offset, byteLength) { + return this.slice(offset, offset + byteLength)[m](0, byteLength) + } + } + else { + BufferList.prototype[m] = function (offset) { + return this.slice(offset, offset + methods[m])[m](0) + } + } + }(m)) + } +}()) + + +module.exports = BufferList diff --git a/node_modules/bl/package.json b/node_modules/bl/package.json new file mode 100644 index 00000000..f37a181d --- /dev/null +++ b/node_modules/bl/package.json @@ -0,0 +1,63 @@ +{ + "_from": "bl@^2.2.1", + "_id": "bl@2.2.1", + "_inBundle": false, + "_integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "_location": "/bl", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "bl@^2.2.1", + "name": "bl", + "escapedName": "bl", + "rawSpec": "^2.2.1", + "saveSpec": null, + "fetchSpec": "^2.2.1" + }, + "_requiredBy": [ + "/mongodb" + ], + "_resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "_shasum": "8c11a7b730655c5d56898cdc871224f40fd901d5", + "_spec": "bl@^2.2.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\mongodb", + "authors": [ + "Rod Vagg (https://github.com/rvagg)", + "Matteo Collina (https://github.com/mcollina)", + "Jarett Cruger (https://github.com/jcrugzz)" + ], + "bugs": { + "url": "https://github.com/rvagg/bl/issues" + }, + "bundleDependencies": false, + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + }, + "deprecated": false, + "description": "Buffer List: collect buffers and access with a standard readable Buffer interface, streamable too!", + "devDependencies": { + "faucet": "0.0.1", + "hash_file": "~0.1.1", + "tape": "~4.9.0" + }, + "homepage": "https://github.com/rvagg/bl", + "keywords": [ + "buffer", + "buffers", + "stream", + "awesomesauce" + ], + "license": "MIT", + "main": "bl.js", + "name": "bl", + "repository": { + "type": "git", + "url": "git+https://github.com/rvagg/bl.git" + }, + "scripts": { + "test": "node test/test.js | faucet" + }, + "version": "2.2.1" +} diff --git a/node_modules/bl/test/indexOf.js b/node_modules/bl/test/indexOf.js new file mode 100644 index 00000000..68435e1a --- /dev/null +++ b/node_modules/bl/test/indexOf.js @@ -0,0 +1,463 @@ +'use strict' + +var tape = require('tape') + , BufferList = require('../') + , Buffer = require('safe-buffer').Buffer + +tape('indexOf single byte needle', t => { + const bl = new BufferList(['abcdefg', 'abcdefg', '12345']) + t.equal(bl.indexOf('e'), 4) + t.equal(bl.indexOf('e', 5), 11) + t.equal(bl.indexOf('e', 12), -1) + t.equal(bl.indexOf('5'), 18) + t.end() +}) + +tape('indexOf multiple byte needle', t => { + const bl = new BufferList(['abcdefg', 'abcdefg']) + t.equal(bl.indexOf('ef'), 4) + t.equal(bl.indexOf('ef', 5), 11) + t.end() +}) + +tape('indexOf multiple byte needles across buffer boundaries', t => { + const bl = new BufferList(['abcdefg', 'abcdefg']) + t.equal(bl.indexOf('fgabc'), 5) + t.end() +}) + +tape('indexOf takes a buffer list search', t => { + const bl = new BufferList(['abcdefg', 'abcdefg']) + const search = new BufferList('fgabc') + t.equal(bl.indexOf(search), 5) + t.end() +}) + +tape('indexOf a zero byte needle', t => { + const b = new BufferList('abcdef') + const buf_empty = Buffer.from('') + t.equal(b.indexOf(''), 0) + t.equal(b.indexOf('', 1), 1) + t.equal(b.indexOf('', b.length + 1), b.length) + t.equal(b.indexOf('', Infinity), b.length) + t.equal(b.indexOf(buf_empty), 0) + t.equal(b.indexOf(buf_empty, 1), 1) + t.equal(b.indexOf(buf_empty, b.length + 1), b.length) + t.equal(b.indexOf(buf_empty, Infinity), b.length) + t.end() +}) + +tape('indexOf buffers smaller and larger than the needle', t => { + const bl = new BufferList(['abcdefg', 'a', 'bcdefg', 'a', 'bcfgab']) + t.equal(bl.indexOf('fgabc'), 5) + t.equal(bl.indexOf('fgabc', 6), 12) + t.equal(bl.indexOf('fgabc', 13), -1) + t.end() +}) + +// only present in node 6+ +;(process.version.substr(1).split('.')[0] >= 6) && tape('indexOf latin1 and binary encoding', t => { + const b = new BufferList('abcdef') + + // test latin1 encoding + t.equal( + new BufferList(Buffer.from(b.toString('latin1'), 'latin1')) + .indexOf('d', 0, 'latin1'), + 3 + ) + t.equal( + new BufferList(Buffer.from(b.toString('latin1'), 'latin1')) + .indexOf(Buffer.from('d', 'latin1'), 0, 'latin1'), + 3 + ) + t.equal( + new BufferList(Buffer.from('aa\u00e8aa', 'latin1')) + .indexOf('\u00e8', 'latin1'), + 2 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'latin1')) + .indexOf('\u00e8', 'latin1'), + 0 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'latin1')) + .indexOf(Buffer.from('\u00e8', 'latin1'), 'latin1'), + 0 + ) + + // test binary encoding + t.equal( + new BufferList(Buffer.from(b.toString('binary'), 'binary')) + .indexOf('d', 0, 'binary'), + 3 + ) + t.equal( + new BufferList(Buffer.from(b.toString('binary'), 'binary')) + .indexOf(Buffer.from('d', 'binary'), 0, 'binary'), + 3 + ) + t.equal( + new BufferList(Buffer.from('aa\u00e8aa', 'binary')) + .indexOf('\u00e8', 'binary'), + 2 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'binary')) + .indexOf('\u00e8', 'binary'), + 0 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'binary')) + .indexOf(Buffer.from('\u00e8', 'binary'), 'binary'), + 0 + ) + t.end() +}) + +tape('indexOf the entire nodejs10 buffer test suite', t => { + const b = new BufferList('abcdef') + const buf_a = Buffer.from('a') + const buf_bc = Buffer.from('bc') + const buf_f = Buffer.from('f') + const buf_z = Buffer.from('z') + + const stringComparison = 'abcdef' + + t.equal(b.indexOf('a'), 0) + t.equal(b.indexOf('a', 1), -1) + t.equal(b.indexOf('a', -1), -1) + t.equal(b.indexOf('a', -4), -1) + t.equal(b.indexOf('a', -b.length), 0) + t.equal(b.indexOf('a', NaN), 0) + t.equal(b.indexOf('a', -Infinity), 0) + t.equal(b.indexOf('a', Infinity), -1) + t.equal(b.indexOf('bc'), 1) + t.equal(b.indexOf('bc', 2), -1) + t.equal(b.indexOf('bc', -1), -1) + t.equal(b.indexOf('bc', -3), -1) + t.equal(b.indexOf('bc', -5), 1) + t.equal(b.indexOf('bc', NaN), 1) + t.equal(b.indexOf('bc', -Infinity), 1) + t.equal(b.indexOf('bc', Infinity), -1) + t.equal(b.indexOf('f'), b.length - 1) + t.equal(b.indexOf('z'), -1) + // empty search tests + t.equal(b.indexOf(buf_a), 0) + t.equal(b.indexOf(buf_a, 1), -1) + t.equal(b.indexOf(buf_a, -1), -1) + t.equal(b.indexOf(buf_a, -4), -1) + t.equal(b.indexOf(buf_a, -b.length), 0) + t.equal(b.indexOf(buf_a, NaN), 0) + t.equal(b.indexOf(buf_a, -Infinity), 0) + t.equal(b.indexOf(buf_a, Infinity), -1) + t.equal(b.indexOf(buf_bc), 1) + t.equal(b.indexOf(buf_bc, 2), -1) + t.equal(b.indexOf(buf_bc, -1), -1) + t.equal(b.indexOf(buf_bc, -3), -1) + t.equal(b.indexOf(buf_bc, -5), 1) + t.equal(b.indexOf(buf_bc, NaN), 1) + t.equal(b.indexOf(buf_bc, -Infinity), 1) + t.equal(b.indexOf(buf_bc, Infinity), -1) + t.equal(b.indexOf(buf_f), b.length - 1) + t.equal(b.indexOf(buf_z), -1) + t.equal(b.indexOf(0x61), 0) + t.equal(b.indexOf(0x61, 1), -1) + t.equal(b.indexOf(0x61, -1), -1) + t.equal(b.indexOf(0x61, -4), -1) + t.equal(b.indexOf(0x61, -b.length), 0) + t.equal(b.indexOf(0x61, NaN), 0) + t.equal(b.indexOf(0x61, -Infinity), 0) + t.equal(b.indexOf(0x61, Infinity), -1) + t.equal(b.indexOf(0x0), -1) + + // test offsets + t.equal(b.indexOf('d', 2), 3) + t.equal(b.indexOf('f', 5), 5) + t.equal(b.indexOf('f', -1), 5) + t.equal(b.indexOf('f', 6), -1) + + t.equal(b.indexOf(Buffer.from('d'), 2), 3) + t.equal(b.indexOf(Buffer.from('f'), 5), 5) + t.equal(b.indexOf(Buffer.from('f'), -1), 5) + t.equal(b.indexOf(Buffer.from('f'), 6), -1) + + t.equal(Buffer.from('ff').indexOf(Buffer.from('f'), 1, 'ucs2'), -1) + + // test invalid and uppercase encoding + t.equal(b.indexOf('b', 'utf8'), 1) + t.equal(b.indexOf('b', 'UTF8'), 1) + t.equal(b.indexOf('62', 'HEX'), 1) + t.throws(() => b.indexOf('bad', 'enc'), TypeError) + + // test hex encoding + t.equal( + Buffer.from(b.toString('hex'), 'hex') + .indexOf('64', 0, 'hex'), + 3 + ) + t.equal( + Buffer.from(b.toString('hex'), 'hex') + .indexOf(Buffer.from('64', 'hex'), 0, 'hex'), + 3 + ) + + // test base64 encoding + t.equal( + Buffer.from(b.toString('base64'), 'base64') + .indexOf('ZA==', 0, 'base64'), + 3 + ) + t.equal( + Buffer.from(b.toString('base64'), 'base64') + .indexOf(Buffer.from('ZA==', 'base64'), 0, 'base64'), + 3 + ) + + // test ascii encoding + t.equal( + Buffer.from(b.toString('ascii'), 'ascii') + .indexOf('d', 0, 'ascii'), + 3 + ) + t.equal( + Buffer.from(b.toString('ascii'), 'ascii') + .indexOf(Buffer.from('d', 'ascii'), 0, 'ascii'), + 3 + ) + + // test optional offset with passed encoding + t.equal(Buffer.from('aaaa0').indexOf('30', 'hex'), 4) + t.equal(Buffer.from('aaaa00a').indexOf('3030', 'hex'), 4) + + { + // test usc2 encoding + const twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2') + + t.equal(8, twoByteString.indexOf('\u0395', 4, 'ucs2')) + t.equal(6, twoByteString.indexOf('\u03a3', -4, 'ucs2')) + t.equal(4, twoByteString.indexOf('\u03a3', -6, 'ucs2')) + t.equal(4, twoByteString.indexOf( + Buffer.from('\u03a3', 'ucs2'), -6, 'ucs2')) + t.equal(-1, twoByteString.indexOf('\u03a3', -2, 'ucs2')) + } + + const mixedByteStringUcs2 = + Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395', 'ucs2') + t.equal(6, mixedByteStringUcs2.indexOf('bc', 0, 'ucs2')) + t.equal(10, mixedByteStringUcs2.indexOf('\u03a3', 0, 'ucs2')) + t.equal(-1, mixedByteStringUcs2.indexOf('\u0396', 0, 'ucs2')) + + t.equal( + 6, mixedByteStringUcs2.indexOf(Buffer.from('bc', 'ucs2'), 0, 'ucs2')) + t.equal( + 10, mixedByteStringUcs2.indexOf(Buffer.from('\u03a3', 'ucs2'), 0, 'ucs2')) + t.equal( + -1, mixedByteStringUcs2.indexOf(Buffer.from('\u0396', 'ucs2'), 0, 'ucs2')) + + { + const twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2') + + // Test single char pattern + t.equal(0, twoByteString.indexOf('\u039a', 0, 'ucs2')) + let index = twoByteString.indexOf('\u0391', 0, 'ucs2') + t.equal(2, index, `Alpha - at index ${index}`) + index = twoByteString.indexOf('\u03a3', 0, 'ucs2') + t.equal(4, index, `First Sigma - at index ${index}`) + index = twoByteString.indexOf('\u03a3', 6, 'ucs2') + t.equal(6, index, `Second Sigma - at index ${index}`) + index = twoByteString.indexOf('\u0395', 0, 'ucs2') + t.equal(8, index, `Epsilon - at index ${index}`) + index = twoByteString.indexOf('\u0392', 0, 'ucs2') + t.equal(-1, index, `Not beta - at index ${index}`) + + // Test multi-char pattern + index = twoByteString.indexOf('\u039a\u0391', 0, 'ucs2') + t.equal(0, index, `Lambda Alpha - at index ${index}`) + index = twoByteString.indexOf('\u0391\u03a3', 0, 'ucs2') + t.equal(2, index, `Alpha Sigma - at index ${index}`) + index = twoByteString.indexOf('\u03a3\u03a3', 0, 'ucs2') + t.equal(4, index, `Sigma Sigma - at index ${index}`) + index = twoByteString.indexOf('\u03a3\u0395', 0, 'ucs2') + t.equal(6, index, `Sigma Epsilon - at index ${index}`) + } + + const mixedByteStringUtf8 = Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395') + t.equal(5, mixedByteStringUtf8.indexOf('bc')) + t.equal(5, mixedByteStringUtf8.indexOf('bc', 5)) + t.equal(5, mixedByteStringUtf8.indexOf('bc', -8)) + t.equal(7, mixedByteStringUtf8.indexOf('\u03a3')) + t.equal(-1, mixedByteStringUtf8.indexOf('\u0396')) + + + // Test complex string indexOf algorithms. Only trigger for long strings. + // Long string that isn't a simple repeat of a shorter string. + let longString = 'A' + for (let i = 66; i < 76; i++) { // from 'B' to 'K' + longString = longString + String.fromCharCode(i) + longString + } + + const longBufferString = Buffer.from(longString) + + // pattern of 15 chars, repeated every 16 chars in long + let pattern = 'ABACABADABACABA' + for (let i = 0; i < longBufferString.length - pattern.length; i += 7) { + const index = longBufferString.indexOf(pattern, i) + t.equal((i + 15) & ~0xf, index, + `Long ABACABA...-string at index ${i}`) + } + + let index = longBufferString.indexOf('AJABACA') + t.equal(510, index, `Long AJABACA, First J - at index ${index}`) + index = longBufferString.indexOf('AJABACA', 511) + t.equal(1534, index, `Long AJABACA, Second J - at index ${index}`) + + pattern = 'JABACABADABACABA' + index = longBufferString.indexOf(pattern) + t.equal(511, index, `Long JABACABA..., First J - at index ${index}`) + index = longBufferString.indexOf(pattern, 512) + t.equal( + 1535, index, `Long JABACABA..., Second J - at index ${index}`) + + // Search for a non-ASCII string in a pure ASCII string. + const asciiString = Buffer.from( + 'arglebargleglopglyfarglebargleglopglyfarglebargleglopglyf') + t.equal(-1, asciiString.indexOf('\x2061')) + t.equal(3, asciiString.indexOf('leb', 0)) + + // Search in string containing many non-ASCII chars. + const allCodePoints = [] + for (let i = 0; i < 65536; i++) allCodePoints[i] = i + const allCharsString = String.fromCharCode.apply(String, allCodePoints) + const allCharsBufferUtf8 = Buffer.from(allCharsString) + const allCharsBufferUcs2 = Buffer.from(allCharsString, 'ucs2') + + // Search for string long enough to trigger complex search with ASCII pattern + // and UC16 subject. + t.equal(-1, allCharsBufferUtf8.indexOf('notfound')) + t.equal(-1, allCharsBufferUcs2.indexOf('notfound')) + + // Needle is longer than haystack, but only because it's encoded as UTF-16 + t.equal(Buffer.from('aaaa').indexOf('a'.repeat(4), 'ucs2'), -1) + + t.equal(Buffer.from('aaaa').indexOf('a'.repeat(4), 'utf8'), 0) + t.equal(Buffer.from('aaaa').indexOf('你好', 'ucs2'), -1) + + // Haystack has odd length, but the needle is UCS2. + t.equal(Buffer.from('aaaaa').indexOf('b', 'ucs2'), -1) + + { + // Find substrings in Utf8. + const lengths = [1, 3, 15]; // Single char, simple and complex. + const indices = [0x5, 0x60, 0x400, 0x680, 0x7ee, 0xFF02, 0x16610, 0x2f77b] + for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (let i = 0; i < indices.length; i++) { + const index = indices[i] + let length = lengths[lengthIndex] + + if (index + length > 0x7F) { + length = 2 * length + } + + if (index + length > 0x7FF) { + length = 3 * length + } + + if (index + length > 0xFFFF) { + length = 4 * length + } + + const patternBufferUtf8 = allCharsBufferUtf8.slice(index, index + length) + t.equal(index, allCharsBufferUtf8.indexOf(patternBufferUtf8)) + + const patternStringUtf8 = patternBufferUtf8.toString() + t.equal(index, allCharsBufferUtf8.indexOf(patternStringUtf8)) + } + } + } + + { + // Find substrings in Usc2. + const lengths = [2, 4, 16]; // Single char, simple and complex. + const indices = [0x5, 0x65, 0x105, 0x205, 0x285, 0x2005, 0x2085, 0xfff0] + for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (let i = 0; i < indices.length; i++) { + const index = indices[i] * 2 + const length = lengths[lengthIndex] + + const patternBufferUcs2 = + allCharsBufferUcs2.slice(index, index + length) + t.equal( + index, allCharsBufferUcs2.indexOf(patternBufferUcs2, 0, 'ucs2')) + + const patternStringUcs2 = patternBufferUcs2.toString('ucs2') + t.equal( + index, allCharsBufferUcs2.indexOf(patternStringUcs2, 0, 'ucs2')) + } + } + } + + [ + () => {}, + {}, + [] + ].forEach(val => { + debugger + t.throws(() => b.indexOf(val), TypeError, `"${JSON.stringify(val)}" should throw`) + }) + + // Test weird offset arguments. + // The following offsets coerce to NaN or 0, searching the whole Buffer + t.equal(b.indexOf('b', undefined), 1) + t.equal(b.indexOf('b', {}), 1) + t.equal(b.indexOf('b', 0), 1) + t.equal(b.indexOf('b', null), 1) + t.equal(b.indexOf('b', []), 1) + + // The following offset coerces to 2, in other words +[2] === 2 + t.equal(b.indexOf('b', [2]), -1) + + // Behavior should match String.indexOf() + t.equal( + b.indexOf('b', undefined), + stringComparison.indexOf('b', undefined)) + t.equal( + b.indexOf('b', {}), + stringComparison.indexOf('b', {})) + t.equal( + b.indexOf('b', 0), + stringComparison.indexOf('b', 0)) + t.equal( + b.indexOf('b', null), + stringComparison.indexOf('b', null)) + t.equal( + b.indexOf('b', []), + stringComparison.indexOf('b', [])) + t.equal( + b.indexOf('b', [2]), + stringComparison.indexOf('b', [2])) + + // test truncation of Number arguments to uint8 + { + const buf = Buffer.from('this is a test') + t.equal(buf.indexOf(0x6973), 3) + t.equal(buf.indexOf(0x697320), 4) + t.equal(buf.indexOf(0x69732069), 2) + t.equal(buf.indexOf(0x697374657374), 0) + t.equal(buf.indexOf(0x69737374), 0) + t.equal(buf.indexOf(0x69737465), 11) + t.equal(buf.indexOf(0x69737465), 11) + t.equal(buf.indexOf(-140), 0) + t.equal(buf.indexOf(-152), 1) + t.equal(buf.indexOf(0xff), -1) + t.equal(buf.indexOf(0xffff), -1) + } + + // Test that Uint8Array arguments are okay. + { + const needle = new Uint8Array([ 0x66, 0x6f, 0x6f ]) + const haystack = new BufferList(Buffer.from('a foo b foo')) + t.equal(haystack.indexOf(needle), 2) + } + t.end() +}) diff --git a/node_modules/bl/test/test.js b/node_modules/bl/test/test.js new file mode 100644 index 00000000..42fcad41 --- /dev/null +++ b/node_modules/bl/test/test.js @@ -0,0 +1,782 @@ +'use strict' + +var tape = require('tape') + , crypto = require('crypto') + , fs = require('fs') + , hash = require('hash_file') + , BufferList = require('../') + , Buffer = require('safe-buffer').Buffer + + , encodings = + ('hex utf8 utf-8 ascii binary base64' + + (process.browser ? '' : ' ucs2 ucs-2 utf16le utf-16le')).split(' ') + +// run the indexOf tests +require('./indexOf') + +tape('single bytes from single buffer', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abcd')) + + t.equal(bl.length, 4) + t.equal(bl.get(-1), undefined) + t.equal(bl.get(0), 97) + t.equal(bl.get(1), 98) + t.equal(bl.get(2), 99) + t.equal(bl.get(3), 100) + t.equal(bl.get(4), undefined) + + t.end() +}) + +tape('single bytes from multiple buffers', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.length, 10) + + t.equal(bl.get(0), 97) + t.equal(bl.get(1), 98) + t.equal(bl.get(2), 99) + t.equal(bl.get(3), 100) + t.equal(bl.get(4), 101) + t.equal(bl.get(5), 102) + t.equal(bl.get(6), 103) + t.equal(bl.get(7), 104) + t.equal(bl.get(8), 105) + t.equal(bl.get(9), 106) + t.end() +}) + +tape('multi bytes from single buffer', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abcd')) + + t.equal(bl.length, 4) + + t.equal(bl.slice(0, 4).toString('ascii'), 'abcd') + t.equal(bl.slice(0, 3).toString('ascii'), 'abc') + t.equal(bl.slice(1, 4).toString('ascii'), 'bcd') + t.equal(bl.slice(-4, -1).toString('ascii'), 'abc') + + t.end() +}) + +tape('multi bytes from single buffer (negative indexes)', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('buffer')) + + t.equal(bl.length, 6) + + t.equal(bl.slice(-6, -1).toString('ascii'), 'buffe') + t.equal(bl.slice(-6, -2).toString('ascii'), 'buff') + t.equal(bl.slice(-5, -2).toString('ascii'), 'uff') + + t.end() +}) + +tape('multiple bytes from multiple buffers', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') + t.equal(bl.slice(3, 6).toString('ascii'), 'def') + t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') + t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') + t.equal(bl.slice(-7, -4).toString('ascii'), 'def') + + t.end() +}) + +tape('multiple bytes from multiple buffer lists', function (t) { + var bl = new BufferList() + + bl.append(new BufferList([ Buffer.from('abcd'), Buffer.from('efg') ])) + bl.append(new BufferList([ Buffer.from('hi'), Buffer.from('j') ])) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + + t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') + t.equal(bl.slice(3, 6).toString('ascii'), 'def') + t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') + t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') + + t.end() +}) + +// same data as previous test, just using nested constructors +tape('multiple bytes from crazy nested buffer lists', function (t) { + var bl = new BufferList() + + bl.append(new BufferList([ + new BufferList([ + new BufferList(Buffer.from('abc')) + , Buffer.from('d') + , new BufferList(Buffer.from('efg')) + ]) + , new BufferList([ Buffer.from('hi') ]) + , new BufferList(Buffer.from('j')) + ])) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + + t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') + t.equal(bl.slice(3, 6).toString('ascii'), 'def') + t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') + t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') + + t.end() +}) + +tape('append accepts arrays of Buffers', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abc')) + bl.append([ Buffer.from('def') ]) + bl.append([ Buffer.from('ghi'), Buffer.from('jkl') ]) + bl.append([ Buffer.from('mnop'), Buffer.from('qrstu'), Buffer.from('vwxyz') ]) + t.equal(bl.length, 26) + t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') + t.end() +}) + +tape('append accepts arrays of BufferLists', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abc')) + bl.append([ new BufferList('def') ]) + bl.append(new BufferList([ Buffer.from('ghi'), new BufferList('jkl') ])) + bl.append([ Buffer.from('mnop'), new BufferList([ Buffer.from('qrstu'), Buffer.from('vwxyz') ]) ]) + t.equal(bl.length, 26) + t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') + t.end() +}) + +tape('append chainable', function (t) { + var bl = new BufferList() + t.ok(bl.append(Buffer.from('abcd')) === bl) + t.ok(bl.append([ Buffer.from('abcd') ]) === bl) + t.ok(bl.append(new BufferList(Buffer.from('abcd'))) === bl) + t.ok(bl.append([ new BufferList(Buffer.from('abcd')) ]) === bl) + t.end() +}) + +tape('append chainable (test results)', function (t) { + var bl = new BufferList('abc') + .append([ new BufferList('def') ]) + .append(new BufferList([ Buffer.from('ghi'), new BufferList('jkl') ])) + .append([ Buffer.from('mnop'), new BufferList([ Buffer.from('qrstu'), Buffer.from('vwxyz') ]) ]) + + t.equal(bl.length, 26) + t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') + t.end() +}) + +tape('consuming from multiple buffers', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + + bl.consume(3) + t.equal(bl.length, 7) + t.equal(bl.slice(0, 7).toString('ascii'), 'defghij') + + bl.consume(2) + t.equal(bl.length, 5) + t.equal(bl.slice(0, 5).toString('ascii'), 'fghij') + + bl.consume(1) + t.equal(bl.length, 4) + t.equal(bl.slice(0, 4).toString('ascii'), 'ghij') + + bl.consume(1) + t.equal(bl.length, 3) + t.equal(bl.slice(0, 3).toString('ascii'), 'hij') + + bl.consume(2) + t.equal(bl.length, 1) + t.equal(bl.slice(0, 1).toString('ascii'), 'j') + + t.end() +}) + +tape('complete consumption', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('a')) + bl.append(Buffer.from('b')) + + bl.consume(2) + + t.equal(bl.length, 0) + t.equal(bl._bufs.length, 0) + + t.end() +}) + +tape('test readUInt8 / readInt8', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUInt8(2), 0x3) + t.equal(bl.readInt8(2), 0x3) + t.equal(bl.readUInt8(3), 0x4) + t.equal(bl.readInt8(3), 0x4) + t.equal(bl.readUInt8(4), 0x23) + t.equal(bl.readInt8(4), 0x23) + t.equal(bl.readUInt8(5), 0x42) + t.equal(bl.readInt8(5), 0x42) + t.end() +}) + +tape('test readUInt16LE / readUInt16BE / readInt16LE / readInt16BE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUInt16BE(2), 0x0304) + t.equal(bl.readUInt16LE(2), 0x0403) + t.equal(bl.readInt16BE(2), 0x0304) + t.equal(bl.readInt16LE(2), 0x0403) + t.equal(bl.readUInt16BE(3), 0x0423) + t.equal(bl.readUInt16LE(3), 0x2304) + t.equal(bl.readInt16BE(3), 0x0423) + t.equal(bl.readInt16LE(3), 0x2304) + t.equal(bl.readUInt16BE(4), 0x2342) + t.equal(bl.readUInt16LE(4), 0x4223) + t.equal(bl.readInt16BE(4), 0x2342) + t.equal(bl.readInt16LE(4), 0x4223) + t.end() +}) + +tape('test readUInt32LE / readUInt32BE / readInt32LE / readInt32BE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUInt32BE(2), 0x03042342) + t.equal(bl.readUInt32LE(2), 0x42230403) + t.equal(bl.readInt32BE(2), 0x03042342) + t.equal(bl.readInt32LE(2), 0x42230403) + t.end() +}) + +tape('test readUIntLE / readUIntBE / readIntLE / readIntBE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[0] = 0x2 + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + buf3[2] = 0x61 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUIntBE(1, 1), 0x02) + t.equal(bl.readUIntBE(1, 2), 0x0203) + t.equal(bl.readUIntBE(1, 3), 0x020304) + t.equal(bl.readUIntBE(1, 4), 0x02030423) + t.equal(bl.readUIntBE(1, 5), 0x0203042342) + t.equal(bl.readUIntBE(1, 6), 0x020304234261) + t.equal(bl.readUIntLE(1, 1), 0x02) + t.equal(bl.readUIntLE(1, 2), 0x0302) + t.equal(bl.readUIntLE(1, 3), 0x040302) + t.equal(bl.readUIntLE(1, 4), 0x23040302) + t.equal(bl.readUIntLE(1, 5), 0x4223040302) + t.equal(bl.readUIntLE(1, 6), 0x614223040302) + t.equal(bl.readIntBE(1, 1), 0x02) + t.equal(bl.readIntBE(1, 2), 0x0203) + t.equal(bl.readIntBE(1, 3), 0x020304) + t.equal(bl.readIntBE(1, 4), 0x02030423) + t.equal(bl.readIntBE(1, 5), 0x0203042342) + t.equal(bl.readIntBE(1, 6), 0x020304234261) + t.equal(bl.readIntLE(1, 1), 0x02) + t.equal(bl.readIntLE(1, 2), 0x0302) + t.equal(bl.readIntLE(1, 3), 0x040302) + t.equal(bl.readIntLE(1, 4), 0x23040302) + t.equal(bl.readIntLE(1, 5), 0x4223040302) + t.equal(bl.readIntLE(1, 6), 0x614223040302) + t.end() +}) + +tape('test readFloatLE / readFloatBE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x00 + buf2[2] = 0x00 + buf3[0] = 0x80 + buf3[1] = 0x3f + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readFloatLE(2), 0x01) + t.end() +}) + +tape('test readDoubleLE / readDoubleBE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(10) + , bl = new BufferList() + + buf2[1] = 0x55 + buf2[2] = 0x55 + buf3[0] = 0x55 + buf3[1] = 0x55 + buf3[2] = 0x55 + buf3[3] = 0x55 + buf3[4] = 0xd5 + buf3[5] = 0x3f + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readDoubleLE(2), 0.3333333333333333) + t.end() +}) + +tape('test toString', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.toString('ascii', 0, 10), 'abcdefghij') + t.equal(bl.toString('ascii', 3, 10), 'defghij') + t.equal(bl.toString('ascii', 3, 6), 'def') + t.equal(bl.toString('ascii', 3, 8), 'defgh') + t.equal(bl.toString('ascii', 5, 10), 'fghij') + + t.end() +}) + +tape('test toString encoding', function (t) { + var bl = new BufferList() + , b = Buffer.from('abcdefghij\xff\x00') + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + bl.append(Buffer.from('\xff\x00')) + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc), enc) + }) + + t.end() +}) + +tape('uninitialized memory', function (t) { + const secret = crypto.randomBytes(256) + for (let i = 0; i < 1e6; i++) { + const clone = Buffer.from(secret) + const bl = new BufferList() + bl.append(Buffer.from('a')) + bl.consume(-1024) + const buf = bl.slice(1) + if (buf.indexOf(clone) !== -1) { + t.fail(`Match (at ${i})`) + break + } + } + t.end() +}) + +!process.browser && tape('test stream', function (t) { + var random = crypto.randomBytes(65534) + , rndhash = hash(random, 'md5') + , md5sum = crypto.createHash('md5') + , bl = new BufferList(function (err, buf) { + t.ok(Buffer.isBuffer(buf)) + t.ok(err === null) + t.equal(rndhash, hash(bl.slice(), 'md5')) + t.equal(rndhash, hash(buf, 'md5')) + + bl.pipe(fs.createWriteStream('/tmp/bl_test_rnd_out.dat')) + .on('close', function () { + var s = fs.createReadStream('/tmp/bl_test_rnd_out.dat') + s.on('data', md5sum.update.bind(md5sum)) + s.on('end', function() { + t.equal(rndhash, md5sum.digest('hex'), 'woohoo! correct hash!') + t.end() + }) + }) + + }) + + fs.writeFileSync('/tmp/bl_test_rnd.dat', random) + fs.createReadStream('/tmp/bl_test_rnd.dat').pipe(bl) +}) + +tape('instantiation with Buffer', function (t) { + var buf = crypto.randomBytes(1024) + , buf2 = crypto.randomBytes(1024) + , b = BufferList(buf) + + t.equal(buf.toString('hex'), b.slice().toString('hex'), 'same buffer') + b = BufferList([ buf, buf2 ]) + t.equal(b.slice().toString('hex'), Buffer.concat([ buf, buf2 ]).toString('hex'), 'same buffer') + t.end() +}) + +tape('test String appendage', function (t) { + var bl = new BufferList() + , b = Buffer.from('abcdefghij\xff\x00') + + bl.append('abcd') + bl.append('efg') + bl.append('hi') + bl.append('j') + bl.append('\xff\x00') + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc)) + }) + + t.end() +}) + +tape('test Number appendage', function (t) { + var bl = new BufferList() + , b = Buffer.from('1234567890') + + bl.append(1234) + bl.append(567) + bl.append(89) + bl.append(0) + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc)) + }) + + t.end() +}) + +tape('write nothing, should get empty buffer', function (t) { + t.plan(3) + BufferList(function (err, data) { + t.notOk(err, 'no error') + t.ok(Buffer.isBuffer(data), 'got a buffer') + t.equal(0, data.length, 'got a zero-length buffer') + t.end() + }).end() +}) + +tape('unicode string', function (t) { + t.plan(2) + var inp1 = '\u2600' + , inp2 = '\u2603' + , exp = inp1 + ' and ' + inp2 + , bl = BufferList() + bl.write(inp1) + bl.write(' and ') + bl.write(inp2) + t.equal(exp, bl.toString()) + t.equal(Buffer.from(exp).toString('hex'), bl.toString('hex')) +}) + +tape('should emit finish', function (t) { + var source = BufferList() + , dest = BufferList() + + source.write('hello') + source.pipe(dest) + + dest.on('finish', function () { + t.equal(dest.toString('utf8'), 'hello') + t.end() + }) +}) + +tape('basic copy', function (t) { + var buf = crypto.randomBytes(1024) + , buf2 = Buffer.alloc(1024) + , b = BufferList(buf) + + b.copy(buf2) + t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy after many appends', function (t) { + var buf = crypto.randomBytes(512) + , buf2 = Buffer.alloc(1024) + , b = BufferList(buf) + + b.append(buf) + b.copy(buf2) + t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy at a precise position', function (t) { + var buf = crypto.randomBytes(1004) + , buf2 = Buffer.alloc(1024) + , b = BufferList(buf) + + b.copy(buf2, 20) + t.equal(b.slice().toString('hex'), buf2.slice(20).toString('hex'), 'same buffer') + t.end() +}) + +tape('copy starting from a precise location', function (t) { + var buf = crypto.randomBytes(10) + , buf2 = Buffer.alloc(5) + , b = BufferList(buf) + + b.copy(buf2, 0, 5) + t.equal(b.slice(5).toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy in an interval', function (t) { + var rnd = crypto.randomBytes(10) + , b = BufferList(rnd) // put the random bytes there + , actual = Buffer.alloc(3) + , expected = Buffer.alloc(3) + + rnd.copy(expected, 0, 5, 8) + b.copy(actual, 0, 5, 8) + + t.equal(actual.toString('hex'), expected.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy an interval between two buffers', function (t) { + var buf = crypto.randomBytes(10) + , buf2 = Buffer.alloc(10) + , b = BufferList(buf) + + b.append(buf) + b.copy(buf2, 0, 5, 15) + + t.equal(b.slice(5, 15).toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('shallow slice across buffer boundaries', function (t) { + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice(3, 13).toString(), 'stSecondTh') + t.end() +}) + +tape('shallow slice within single buffer', function (t) { + t.plan(2) + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice(5, 10).toString(), 'Secon') + t.equal(bl.shallowSlice(7, 10).toString(), 'con') + t.end() +}) + +tape('shallow slice single buffer', function (t) { + t.plan(3) + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice(0, 5).toString(), 'First') + t.equal(bl.shallowSlice(5, 11).toString(), 'Second') + t.equal(bl.shallowSlice(11, 16).toString(), 'Third') +}) + +tape('shallow slice with negative or omitted indices', function (t) { + t.plan(4) + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice().toString(), 'FirstSecondThird') + t.equal(bl.shallowSlice(5).toString(), 'SecondThird') + t.equal(bl.shallowSlice(5, -3).toString(), 'SecondTh') + t.equal(bl.shallowSlice(-8).toString(), 'ondThird') +}) + +tape('shallow slice does not make a copy', function (t) { + t.plan(1) + var buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')] + var bl = (new BufferList(buffers)).shallowSlice(5, -3) + + buffers[1].fill('h') + buffers[2].fill('h') + + t.equal(bl.toString(), 'hhhhhhhh') +}) + +tape('shallow slice with 0 length', function (t) { + t.plan(1) + var buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')] + var bl = (new BufferList(buffers)).shallowSlice(0, 0) + t.equal(bl.length, 0) +}) + +tape('shallow slice with 0 length from middle', function (t) { + t.plan(1) + var buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')] + var bl = (new BufferList(buffers)).shallowSlice(10, 10) + t.equal(bl.length, 0) +}) + +tape('duplicate', function (t) { + t.plan(2) + + var bl = new BufferList('abcdefghij\xff\x00') + , dup = bl.duplicate() + + t.equal(bl.prototype, dup.prototype) + t.equal(bl.toString('hex'), dup.toString('hex')) +}) + +tape('destroy no pipe', function (t) { + t.plan(2) + + var bl = new BufferList('alsdkfja;lsdkfja;lsdk') + bl.destroy() + + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) +}) + +!process.browser && tape('destroy with pipe before read end', function (t) { + t.plan(2) + + var bl = new BufferList() + fs.createReadStream(__dirname + '/test.js') + .pipe(bl) + + bl.destroy() + + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) + +}) + +!process.browser && tape('destroy with pipe before read end with race', function (t) { + t.plan(2) + + var bl = new BufferList() + fs.createReadStream(__dirname + '/test.js') + .pipe(bl) + + setTimeout(function () { + bl.destroy() + setTimeout(function () { + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) + }, 500) + }, 500) +}) + +!process.browser && tape('destroy with pipe after read end', function (t) { + t.plan(2) + + var bl = new BufferList() + fs.createReadStream(__dirname + '/test.js') + .on('end', onEnd) + .pipe(bl) + + function onEnd () { + bl.destroy() + + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) + } +}) + +!process.browser && tape('destroy with pipe while writing to a destination', function (t) { + t.plan(4) + + var bl = new BufferList() + , ds = new BufferList() + + fs.createReadStream(__dirname + '/test.js') + .on('end', onEnd) + .pipe(bl) + + function onEnd () { + bl.pipe(ds) + + setTimeout(function () { + bl.destroy() + + t.equals(bl._bufs.length, 0) + t.equals(bl.length, 0) + + ds.destroy() + + t.equals(bl._bufs.length, 0) + t.equals(bl.length, 0) + + }, 100) + } +}) + +!process.browser && tape('handle error', function (t) { + t.plan(2) + fs.createReadStream('/does/not/exist').pipe(BufferList(function (err, data) { + t.ok(err instanceof Error, 'has error') + t.notOk(data, 'no data') + })) +}) diff --git a/node_modules/bluebird/LICENSE b/node_modules/bluebird/LICENSE new file mode 100644 index 00000000..ae732d52 --- /dev/null +++ b/node_modules/bluebird/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-2017 Petka Antonov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/bluebird/README.md b/node_modules/bluebird/README.md new file mode 100644 index 00000000..ba82f73e --- /dev/null +++ b/node_modules/bluebird/README.md @@ -0,0 +1,52 @@ + + Promises/A+ logo + + +[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird) +[![coverage-98%](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html) + +**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises) + +# Introduction + +Bluebird is a fully featured promise library with focus on innovative features and performance + +See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html) for further documentation, references and instructions. See the [**API reference**](http://bluebirdjs.com/docs/api-reference.html) here. + +For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x). + +# Questions and issues + +The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`. + + + +## Thanks + +Thanks to BrowserStack for providing us with a free account which lets us support old browsers like IE8. + +# License + +The MIT License (MIT) + +Copyright (c) 2013-2017 Petka Antonov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/node_modules/bluebird/changelog.md b/node_modules/bluebird/changelog.md new file mode 100644 index 00000000..73b2eb6c --- /dev/null +++ b/node_modules/bluebird/changelog.md @@ -0,0 +1 @@ +[http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html) diff --git a/node_modules/bluebird/js/browser/bluebird.core.js b/node_modules/bluebird/js/browser/bluebird.core.js new file mode 100644 index 00000000..85b77913 --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.core.js @@ -0,0 +1,3781 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core + * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + continue; + } + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +}; + +Async.prototype._drainQueues = function () { + this._drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + this._drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; + +},{"./queue":17,"./schedule":18,"./util":21}],2:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; + +},{}],3:[function(_dereq_,module,exports){ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = _dereq_("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; + +},{"./promise":15}],4:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; + +},{"./util":21}],5:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = _dereq_("./util"); +var getKeys = _dereq_("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; + +},{"./es5":10,"./util":21}],6:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; + +},{}],7:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, Context) { +var getDomain = Promise._getDomain; +var async = Promise._async; +var Warning = _dereq_("./errors").Warning; +var util = _dereq_("./util"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (true || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + var self = this; + setTimeout(function() { + self._notifyUnhandledRejection(); + }, 1); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var domain = getDomain(); + possiblyUnhandledRejection = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var domain = getDomain(); + unhandledRejectionHandled = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Context.deactivateLongStackTraces(); + async.enableTrampoline(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Context.activateLongStackTraces(); + async.disableTrampolineIfNecessary(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + +var fireDomEvent = (function() { + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new CustomEvent(name.toLowerCase(), { + detail: event, + cancelable: true + }); + return !util.global.dispatchEvent(domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new Event(name.toLowerCase(), { + cancelable: true + }); + domEvent.detail = event; + return !util.global.dispatchEvent(domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name.toLowerCase(), false, true, + event); + return !util.global.dispatchEvent(domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = firstLineError.stack.split("\n"); + var lastStackLines = lastLineError.stack.split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; + +},{"./errors":9,"./util":21}],8:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; + +},{}],9:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var Objectfreeze = es5.freeze; +var util = _dereq_("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; + +},{"./es5":10,"./util":21}],10:[function(_dereq_,module,exports){ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} + +},{}],11:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = _dereq_("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; + +},{"./catch_filter":5,"./util":21}],12:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, + getDomain) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!true) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!true) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var domain = getDomain(); + if (domain !== null) { + holder.fn = util.domainBind(domain, holder.fn); + } + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var args = [].slice.call(arguments);; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; + +},{"./util":21}],13:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; + +},{"./util":21}],14:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = _dereq_("./errors"); +var OperationalError = errors.OperationalError; +var es5 = _dereq_("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var args = [].slice.call(arguments, 1);; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; + +},{"./errors":9,"./es5":10,"./util":21}],15:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = _dereq_("./util"); + +var getDomain; +if (util.isNode) { + getDomain = function() { + var ret = process.domain; + if (ret === undefined) ret = null; + return ret; + }; +} else { + getDomain = function() { + return null; + }; +} +util.notEnumerableProp(Promise, "_getDomain", getDomain); + +var es5 = _dereq_("./es5"); +var Async = _dereq_("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = _dereq_("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); +var PromiseArray = + _dereq_("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = _dereq_("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; +var debug = _dereq_("./debuggability")(Promise, Context); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = _dereq_("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var domain = getDomain(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: domain === null ? handler + : (typeof handler === "function" && + util.domainBind(domain, handler)), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + this._bitField = this._bitField | 134217728; +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + domain +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = + domain === null ? reject : util.domainBind(domain, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + domain === null ? reject : util.domainBind(domain, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(promise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); +_dereq_("./direct_resolve")(Promise); +_dereq_("./synchronous_inspection")(Promise); +_dereq_("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); +Promise.Promise = Promise; +Promise.version = "3.5.1"; + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; + +},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = _dereq_("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; + +},{"./util":21}],17:[function(_dereq_,module,exports){ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; + +},{}],18:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova))) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; + +},{"./util":21}],19:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; + +},{}],20:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; + +},{"./util":21}],21:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var l = 8; + while (l--) new FakeConstructor(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if ({}.toString.call(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +function domainBind(self, cb) { + return self.bind(cb); +} + +var ret = { + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + hasDevTools: typeof chrome !== "undefined" && chrome && + typeof chrome.loadTimes === "function", + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + domainBind: domainBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version = process.versions.node.split(".").map(Number); + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; + +},{"./es5":10}]},{},[3])(3) +}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.core.min.js b/node_modules/bluebird/js/browser/bluebird.core.min.js new file mode 100644 index 00000000..6aca6aa3 --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.core.min.js @@ -0,0 +1,31 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core + * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+I.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?I.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new x(this._peekContext())}function _(t,e){if(H(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);I.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),I.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&X){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=C(s),l=c.length-1;l>=0;--l){var u=c[l];if(!V.test(u)){var p=u.match(Q);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=E(o);o.stack=a.message+"\n"+a.stack.join("\n")}tt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?w(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(I.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof N?N(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function j(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){B.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||k(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():I.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+T(e)+">, no stack trace)"}function T(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(nt=function(t){if(D.test(t))return!0;var e=R(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function x(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,x),e>32&&this.uncycle()}var O,A,N,L=e._getDomain,B=e._async,U=t("./errors").Warning,I=t("./util"),H=I.canAttachTrace,D=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,V=/\((?:timers\.js):\d+:\d+\)/,Q=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,G=null,M=!1,W=!(0==I.env("BLUEBIRD_DEBUG")||!I.env("BLUEBIRD_DEBUG")&&"development"!==I.env("NODE_ENV")),$=!(0==I.env("BLUEBIRD_WARNINGS")||!W&&!I.env("BLUEBIRD_WARNINGS")),z=!(0==I.env("BLUEBIRD_LONG_STACK_TRACES")||!W&&!I.env("BLUEBIRD_LONG_STACK_TRACES")),X=0!=I.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!I.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){j("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),j("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=L();A="function"==typeof t?null===e?t:I.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=L();O="function"==typeof t?null===e?t:I.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),B.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),B.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&P()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!I.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!I.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),I.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!I.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return I.isNode?function(){return process.emit.apply(process,arguments)}:I.global?function(t){var e="on"+t.toLowerCase(),n=I.global[e];return n?(n.apply(I.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){B.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){B.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,X=ot.warnings,I.isObject(n)&&"wForgottenReturn"in n&&(X=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(B.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;I.inherits(x,Error),n.CapturedTrace=x,x.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},x.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;b(r),m(r),I.notEnumerableProp(t,"stack",g(n,r)),I.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,G=e;var n=Error.captureStackTrace;return nt=function(t){return D.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,G=e,M=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(N=function(t){console.warn(t)},I.isNode&&process.stderr.isTTY?N=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:I.isNode||"string"!=typeof(new Error).stack||(N=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return z&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return f},checkForgottenReturns:d,setBounds:S,warn:y,deprecated:v,CapturedTrace:x,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":9,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var h=n(u,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));i[o++]=a}i.length=o;var s=arguments[r];return this._passThrough(h(i,s,this),1,void 0,l)},i}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("Catch statement predicate: expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0); +},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.1",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return N.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.js b/node_modules/bluebird/js/browser/bluebird.js new file mode 100644 index 00000000..2bc524b5 --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.js @@ -0,0 +1,5623 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + continue; + } + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +}; + +Async.prototype._drainQueues = function () { + this._drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + this._drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; + +},{"./queue":26,"./schedule":29,"./util":36}],3:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; + +},{}],4:[function(_dereq_,module,exports){ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = _dereq_("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; + +},{"./promise":22}],5:[function(_dereq_,module,exports){ +"use strict"; +var cr = Object.create; +if (cr) { + var callerCache = cr(null); + var getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; +} + +module.exports = function(Promise) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var isIdentifier = util.isIdentifier; + +var getMethodCaller; +var getGetter; +if (!true) { +var makeMethodCaller = function (methodName) { + return new Function("ensureMethod", " \n\ + return function(obj) { \n\ + 'use strict' \n\ + var len = this.length; \n\ + ensureMethod(obj, 'methodName'); \n\ + switch(len) { \n\ + case 1: return obj.methodName(this[0]); \n\ + case 2: return obj.methodName(this[0], this[1]); \n\ + case 3: return obj.methodName(this[0], this[1], this[2]); \n\ + case 0: return obj.methodName(); \n\ + default: \n\ + return obj.methodName.apply(obj, this); \n\ + } \n\ + }; \n\ + ".replace(/methodName/g, methodName))(ensureMethod); +}; + +var makeGetter = function (propertyName) { + return new Function("obj", " \n\ + 'use strict'; \n\ + return obj.propertyName; \n\ + ".replace("propertyName", propertyName)); +}; + +var getCompiled = function(name, compiler, cache) { + var ret = cache[name]; + if (typeof ret !== "function") { + if (!isIdentifier(name)) { + return null; + } + ret = compiler(name); + cache[name] = ret; + cache[" size"]++; + if (cache[" size"] > 512) { + var keys = Object.keys(cache); + for (var i = 0; i < 256; ++i) delete cache[keys[i]]; + cache[" size"] = keys.length - 256; + } + } + return ret; +}; + +getMethodCaller = function(name) { + return getCompiled(name, makeMethodCaller, callerCache); +}; + +getGetter = function(name) { + return getCompiled(name, makeGetter, getterCache); +}; +} + +function ensureMethod(obj, methodName) { + var fn; + if (obj != null) fn = obj[methodName]; + if (typeof fn !== "function") { + var message = "Object " + util.classString(obj) + " has no method '" + + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; +} + +function caller(obj) { + var methodName = this.pop(); + var fn = ensureMethod(obj, methodName); + return fn.apply(obj, this); +} +Promise.prototype.call = function (methodName) { + var args = [].slice.call(arguments, 1);; + if (!true) { + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (maybeCaller !== null) { + return this._then( + maybeCaller, undefined, undefined, args, undefined); + } + } + } + args.push(methodName); + return this._then(caller, undefined, undefined, args, undefined); +}; + +function namedGetter(obj) { + return obj[this]; +} +function indexedGetter(obj) { + var index = +this; + if (index < 0) index = Math.max(0, index + obj.length); + return obj[index]; +} +Promise.prototype.get = function (propertyName) { + var isIndex = (typeof propertyName === "number"); + var getter; + if (!isIndex) { + if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = maybeGetter !== null ? maybeGetter : namedGetter; + } else { + getter = namedGetter; + } + } else { + getter = indexedGetter; + } + return this._then(getter, undefined, undefined, propertyName, undefined); +}; +}; + +},{"./util":36}],6:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; + +},{"./util":36}],7:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = _dereq_("./util"); +var getKeys = _dereq_("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; + +},{"./es5":13,"./util":36}],8:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; + +},{}],9:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, Context) { +var getDomain = Promise._getDomain; +var async = Promise._async; +var Warning = _dereq_("./errors").Warning; +var util = _dereq_("./util"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (true || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + var self = this; + setTimeout(function() { + self._notifyUnhandledRejection(); + }, 1); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var domain = getDomain(); + possiblyUnhandledRejection = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var domain = getDomain(); + unhandledRejectionHandled = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Context.deactivateLongStackTraces(); + async.enableTrampoline(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Context.activateLongStackTraces(); + async.disableTrampolineIfNecessary(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + +var fireDomEvent = (function() { + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new CustomEvent(name.toLowerCase(), { + detail: event, + cancelable: true + }); + return !util.global.dispatchEvent(domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new Event(name.toLowerCase(), { + cancelable: true + }); + domEvent.detail = event; + return !util.global.dispatchEvent(domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name.toLowerCase(), false, true, + event); + return !util.global.dispatchEvent(domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = firstLineError.stack.split("\n"); + var lastStackLines = lastLineError.stack.split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; + +},{"./errors":12,"./util":36}],10:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; + +},{}],11:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseReduce = Promise.reduce; +var PromiseAll = Promise.all; + +function promiseAllThis() { + return PromiseAll(this); +} + +function PromiseMapSeries(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); +} + +Promise.prototype.each = function (fn) { + return PromiseReduce(this, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, this, undefined); +}; + +Promise.prototype.mapSeries = function (fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); +}; + +Promise.each = function (promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, promises, undefined); +}; + +Promise.mapSeries = PromiseMapSeries; +}; + + +},{}],12:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var Objectfreeze = es5.freeze; +var util = _dereq_("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; + +},{"./es5":13,"./util":36}],13:[function(_dereq_,module,exports){ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} + +},{}],14:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseMap = Promise.map; + +Promise.prototype.filter = function (fn, options) { + return PromiseMap(this, fn, options, INTERNAL); +}; + +Promise.filter = function (promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); +}; +}; + +},{}],15:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = _dereq_("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; + +},{"./catch_filter":7,"./util":36}],16:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + apiRejection, + INTERNAL, + tryConvertToPromise, + Proxyable, + debug) { +var errors = _dereq_("./errors"); +var TypeError = errors.TypeError; +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +var yieldHandlers = []; + +function promiseFromYieldHandler(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + traceParent._popContext(); + if (result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + traceParent._popContext(); + return ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; +} + +function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + if (debug.cancellation()) { + var internal = new Promise(INTERNAL); + var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); + this._promise = internal.lastly(function() { + return _finallyPromise; + }); + internal._captureStackTrace(); + internal._setOnCancel(this); + } else { + var promise = this._promise = new Promise(INTERNAL); + promise._captureStackTrace(); + } + this._stack = stack; + this._generatorFunction = generatorFunction; + this._receiver = receiver; + this._generator = undefined; + this._yieldHandlers = typeof yieldHandler === "function" + ? [yieldHandler].concat(yieldHandlers) + : yieldHandlers; + this._yieldedPromise = null; + this._cancellationPhase = false; +} +util.inherits(PromiseSpawn, Proxyable); + +PromiseSpawn.prototype._isResolved = function() { + return this._promise === null; +}; + +PromiseSpawn.prototype._cleanup = function() { + this._promise = this._generator = null; + if (debug.cancellation() && this._finallyPromise !== null) { + this._finallyPromise._fulfill(); + this._finallyPromise = null; + } +}; + +PromiseSpawn.prototype._promiseCancelled = function() { + if (this._isResolved()) return; + var implementsReturn = typeof this._generator["return"] !== "undefined"; + + var result; + if (!implementsReturn) { + var reason = new Promise.CancellationError( + "generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + result = tryCatch(this._generator["throw"]).call(this._generator, + reason); + this._promise._popContext(); + } else { + this._promise._pushContext(); + result = tryCatch(this._generator["return"]).call(this._generator, + undefined); + this._promise._popContext(); + } + this._cancellationPhase = true; + this._yieldedPromise = null; + this._continue(result); +}; + +PromiseSpawn.prototype._promiseFulfilled = function(value) { + this._yieldedPromise = null; + this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._promiseRejected = function(reason) { + this._yieldedPromise = null; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + var result = tryCatch(this._generator["throw"]) + .call(this._generator, reason); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._resultCancelled = function() { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null; + promise.cancel(); + } +}; + +PromiseSpawn.prototype.promise = function () { + return this._promise; +}; + +PromiseSpawn.prototype._run = function () { + this._generator = this._generatorFunction.call(this._receiver); + this._receiver = + this._generatorFunction = undefined; + this._promiseFulfilled(undefined); +}; + +PromiseSpawn.prototype._continue = function (result) { + var promise = this._promise; + if (result === errorObj) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._rejectCallback(result.e, false); + } + } + + var value = result.value; + if (result.done === true) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._resolveCallback(value); + } + } else { + var maybePromise = tryConvertToPromise(value, this._promise); + if (!(maybePromise instanceof Promise)) { + maybePromise = + promiseFromYieldHandler(maybePromise, + this._yieldHandlers, + this._promise); + if (maybePromise === null) { + this._promiseRejected( + new TypeError( + "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + + "From coroutine:\u000a" + + this._stack.split("\n").slice(1, -7).join("\n") + ) + ); + return; + } + } + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + this._yieldedPromise = maybePromise; + maybePromise._proxy(this, null); + } else if (((bitField & 33554432) !== 0)) { + Promise._async.invoke( + this._promiseFulfilled, this, maybePromise._value() + ); + } else if (((bitField & 16777216) !== 0)) { + Promise._async.invoke( + this._promiseRejected, this, maybePromise._reason() + ); + } else { + this._promiseCancelled(); + } + } +}; + +Promise.coroutine = function (generatorFunction, options) { + if (typeof generatorFunction !== "function") { + throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var yieldHandler = Object(options).yieldHandler; + var PromiseSpawn$ = PromiseSpawn; + var stack = new Error().stack; + return function () { + var generator = generatorFunction.apply(this, arguments); + var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, + stack); + var ret = spawn.promise(); + spawn._generator = generator; + spawn._promiseFulfilled(undefined); + return ret; + }; +}; + +Promise.coroutine.addYieldHandler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + yieldHandlers.push(fn); +}; + +Promise.spawn = function (generatorFunction) { + debug.deprecated("Promise.spawn()", "Promise.coroutine()"); + if (typeof generatorFunction !== "function") { + return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var spawn = new PromiseSpawn(generatorFunction, this); + var ret = spawn.promise(); + spawn._run(Promise.spawn); + return ret; +}; +}; + +},{"./errors":12,"./util":36}],17:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, + getDomain) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!true) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!true) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var domain = getDomain(); + if (domain !== null) { + holder.fn = util.domainBind(domain, holder.fn); + } + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var args = [].slice.call(arguments);; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; + +},{"./util":36}],18:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises); + this._promise._captureStackTrace(); + var domain = getDomain(); + this._callback = domain === null ? fn : util.domainBind(domain, fn); + this._preservedValues = _filter === INTERNAL + ? new Array(this.length()) + : null; + this._limit = limit; + this._inFlight = 0; + this._queue = []; + async.invoke(this._asyncInit, this, undefined); +} +util.inherits(MappingPromiseArray, PromiseArray); + +MappingPromiseArray.prototype._asyncInit = function() { + this._init$(undefined, -2); +}; + +MappingPromiseArray.prototype._init = function () {}; + +MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { + var values = this._values; + var length = this.length(); + var preservedValues = this._preservedValues; + var limit = this._limit; + + if (index < 0) { + index = (index * -1) - 1; + values[index] = value; + if (limit >= 1) { + this._inFlight--; + this._drainQueue(); + if (this._isResolved()) return true; + } + } else { + if (limit >= 1 && this._inFlight >= limit) { + values[index] = value; + this._queue.push(index); + return false; + } + if (preservedValues !== null) preservedValues[index] = value; + + var promise = this._promise; + var callback = this._callback; + var receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + preservedValues !== null ? "Promise.filter" : "Promise.map", + promise + ); + if (ret === errorObj) { + this._reject(ret.e); + return true; + } + + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + if (limit >= 1) this._inFlight++; + values[index] = maybePromise; + maybePromise._proxy(this, (index + 1) * -1); + return false; + } else if (((bitField & 33554432) !== 0)) { + ret = maybePromise._value(); + } else if (((bitField & 16777216) !== 0)) { + this._reject(maybePromise._reason()); + return true; + } else { + this._cancel(); + return true; + } + } + values[index] = ret; + } + var totalResolved = ++this._totalResolved; + if (totalResolved >= length) { + if (preservedValues !== null) { + this._filter(values, preservedValues); + } else { + this._resolve(values); + } + return true; + } + return false; +}; + +MappingPromiseArray.prototype._drainQueue = function () { + var queue = this._queue; + var limit = this._limit; + var values = this._values; + while (queue.length > 0 && this._inFlight < limit) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } +}; + +MappingPromiseArray.prototype._filter = function (booleans, values) { + var len = values.length; + var ret = new Array(len); + var j = 0; + for (var i = 0; i < len; ++i) { + if (booleans[i]) ret[j++] = values[i]; + } + ret.length = j; + this._resolve(ret); +}; + +MappingPromiseArray.prototype.preservedValues = function () { + return this._preservedValues; +}; + +function map(promises, fn, options, _filter) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + + var limit = 0; + if (options !== undefined) { + if (typeof options === "object" && options !== null) { + if (typeof options.concurrency !== "number") { + return Promise.reject( + new TypeError("'concurrency' must be a number but it is " + + util.classString(options.concurrency))); + } + limit = options.concurrency; + } else { + return Promise.reject(new TypeError( + "options argument must be an object but it is " + + util.classString(options))); + } + } + limit = typeof limit === "number" && + isFinite(limit) && limit >= 1 ? limit : 0; + return new MappingPromiseArray(promises, fn, limit, _filter).promise(); +} + +Promise.prototype.map = function (fn, options) { + return map(this, fn, options, null); +}; + +Promise.map = function (promises, fn, options, _filter) { + return map(promises, fn, options, _filter); +}; + + +}; + +},{"./util":36}],19:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; + +},{"./util":36}],20:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = _dereq_("./errors"); +var OperationalError = errors.OperationalError; +var es5 = _dereq_("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var args = [].slice.call(arguments, 1);; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; + +},{"./errors":12,"./es5":13,"./util":36}],21:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var util = _dereq_("./util"); +var async = Promise._async; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function spreadAdapter(val, nodeback) { + var promise = this; + if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); + var ret = + tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +function successAdapter(val, nodeback) { + var promise = this; + var receiver = promise._boundValue(); + var ret = val === undefined + ? tryCatch(nodeback).call(receiver, null) + : tryCatch(nodeback).call(receiver, null, val); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} +function errorAdapter(reason, nodeback) { + var promise = this; + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason; + reason = newReason; + } + var ret = tryCatch(nodeback).call(promise._boundValue(), reason); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, + options) { + if (typeof nodeback == "function") { + var adapter = successAdapter; + if (options !== undefined && Object(options).spread) { + adapter = spreadAdapter; + } + this._then( + adapter, + errorAdapter, + undefined, + this, + nodeback + ); + } + return this; +}; +}; + +},{"./util":36}],22:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = _dereq_("./util"); + +var getDomain; +if (util.isNode) { + getDomain = function() { + var ret = process.domain; + if (ret === undefined) ret = null; + return ret; + }; +} else { + getDomain = function() { + return null; + }; +} +util.notEnumerableProp(Promise, "_getDomain", getDomain); + +var es5 = _dereq_("./es5"); +var Async = _dereq_("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = _dereq_("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); +var PromiseArray = + _dereq_("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = _dereq_("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; +var debug = _dereq_("./debuggability")(Promise, Context); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = _dereq_("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var domain = getDomain(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: domain === null ? handler + : (typeof handler === "function" && + util.domainBind(domain, handler)), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + this._bitField = this._bitField | 134217728; +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + domain +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = + domain === null ? reject : util.domainBind(domain, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + domain === null ? reject : util.domainBind(domain, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(promise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); +_dereq_("./direct_resolve")(Promise); +_dereq_("./synchronous_inspection")(Promise); +_dereq_("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); +Promise.Promise = Promise; +Promise.version = "3.5.1"; +_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +_dereq_('./call_get.js')(Promise); +_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); +_dereq_('./timers.js')(Promise, INTERNAL, debug); +_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); +_dereq_('./nodeify.js')(Promise); +_dereq_('./promisify.js')(Promise, INTERNAL); +_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); +_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); +_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +_dereq_('./settle.js')(Promise, PromiseArray, debug); +_dereq_('./some.js')(Promise, PromiseArray, apiRejection); +_dereq_('./filter.js')(Promise, INTERNAL); +_dereq_('./each.js')(Promise, INTERNAL); +_dereq_('./any.js')(Promise); + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; + +},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = _dereq_("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; + +},{"./util":36}],24:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var THIS = {}; +var util = _dereq_("./util"); +var nodebackForPromise = _dereq_("./nodeback"); +var withAppended = util.withAppended; +var maybeWrapAsError = util.maybeWrapAsError; +var canEvaluate = util.canEvaluate; +var TypeError = _dereq_("./errors").TypeError; +var defaultSuffix = "Async"; +var defaultPromisified = {__isPromisified__: true}; +var noCopyProps = [ + "arity", "length", + "name", + "arguments", + "caller", + "callee", + "prototype", + "__isPromisified__" +]; +var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); + +var defaultFilter = function(name) { + return util.isIdentifier(name) && + name.charAt(0) !== "_" && + name !== "constructor"; +}; + +function propsFilter(key) { + return !noCopyPropsPattern.test(key); +} + +function isPromisified(fn) { + try { + return fn.__isPromisified__ === true; + } + catch (e) { + return false; + } +} + +function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, + defaultPromisified); + return val ? isPromisified(val) : false; +} +function checkValid(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) { + var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); + for (var j = 0; j < ret.length; j += 2) { + if (ret[j] === keyWithoutAsyncSuffix) { + throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" + .replace("%s", suffix)); + } + } + } + } +} + +function promisifiableMethods(obj, suffix, suffixRegexp, filter) { + var keys = util.inheritedDataKeys(obj); + var ret = []; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var value = obj[key]; + var passesDefaultFilter = filter === defaultFilter + ? true : defaultFilter(key, value, obj); + if (typeof value === "function" && + !isPromisified(value) && + !hasPromisified(obj, key, suffix) && + filter(key, value, obj, passesDefaultFilter)) { + ret.push(key, value); + } + } + checkValid(ret, suffix, suffixRegexp); + return ret; +} + +var escapeIdentRegex = function(str) { + return str.replace(/([$])/, "\\$"); +}; + +var makeNodePromisifiedEval; +if (!true) { +var switchCaseArgumentOrder = function(likelyArgumentCount) { + var ret = [likelyArgumentCount]; + var min = Math.max(0, likelyArgumentCount - 1 - 3); + for(var i = likelyArgumentCount - 1; i >= min; --i) { + ret.push(i); + } + for(var i = likelyArgumentCount + 1; i <= 3; ++i) { + ret.push(i); + } + return ret; +}; + +var argumentSequence = function(argumentCount) { + return util.filledRange(argumentCount, "_arg", ""); +}; + +var parameterDeclaration = function(parameterCount) { + return util.filledRange( + Math.max(parameterCount, 3), "_arg", ""); +}; + +var parameterCount = function(fn) { + if (typeof fn.length === "number") { + return Math.max(Math.min(fn.length, 1023 + 1), 0); + } + return 0; +}; + +makeNodePromisifiedEval = +function(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, parameterCount(fn) - 1); + var argumentOrder = switchCaseArgumentOrder(newParameterCount); + var shouldProxyThis = typeof callback === "string" || receiver === THIS; + + function generateCallForArgumentCount(count) { + var args = argumentSequence(count).join(", "); + var comma = count > 0 ? ", " : ""; + var ret; + if (shouldProxyThis) { + ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; + } else { + ret = receiver === undefined + ? "ret = callback({{args}}, nodeback); break;\n" + : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; + } + return ret.replace("{{args}}", args).replace(", ", comma); + } + + function generateArgumentSwitchCase() { + var ret = ""; + for (var i = 0; i < argumentOrder.length; ++i) { + ret += "case " + argumentOrder[i] +":" + + generateCallForArgumentCount(argumentOrder[i]); + } + + ret += " \n\ + default: \n\ + var args = new Array(len + 1); \n\ + var i = 0; \n\ + for (var i = 0; i < len; ++i) { \n\ + args[i] = arguments[i]; \n\ + } \n\ + args[i] = nodeback; \n\ + [CodeForCall] \n\ + break; \n\ + ".replace("[CodeForCall]", (shouldProxyThis + ? "ret = callback.apply(this, args);\n" + : "ret = callback.apply(receiver, args);\n")); + return ret; + } + + var getFunctionCode = typeof callback === "string" + ? ("this != null ? this['"+callback+"'] : fn") + : "fn"; + var body = "'use strict'; \n\ + var ret = function (Parameters) { \n\ + 'use strict'; \n\ + var len = arguments.length; \n\ + var promise = new Promise(INTERNAL); \n\ + promise._captureStackTrace(); \n\ + var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ + var ret; \n\ + var callback = tryCatch([GetFunctionCode]); \n\ + switch(len) { \n\ + [CodeForSwitchCase] \n\ + } \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ + } \n\ + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ + return promise; \n\ + }; \n\ + notEnumerableProp(ret, '__isPromisified__', true); \n\ + return ret; \n\ + ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) + .replace("[GetFunctionCode]", getFunctionCode); + body = body.replace("Parameters", parameterDeclaration(newParameterCount)); + return new Function("Promise", + "fn", + "receiver", + "withAppended", + "maybeWrapAsError", + "nodebackForPromise", + "tryCatch", + "errorObj", + "notEnumerableProp", + "INTERNAL", + body)( + Promise, + fn, + receiver, + withAppended, + maybeWrapAsError, + nodebackForPromise, + util.tryCatch, + util.errorObj, + util.notEnumerableProp, + INTERNAL); +}; +} + +function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = (function() {return this;})(); + var method = callback; + if (typeof method === "string") { + callback = fn; + } + function promisified() { + var _receiver = receiver; + if (receiver === THIS) _receiver = this; + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = typeof method === "string" && this !== defaultThis + ? this[method] : callback; + var fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch(e) { + promise._rejectCallback(maybeWrapAsError(e), true, true); + } + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); + return promise; + } + util.notEnumerableProp(promisified, "__isPromisified__", true); + return promisified; +} + +var makeNodePromisified = canEvaluate + ? makeNodePromisifiedEval + : makeNodePromisifiedClosure; + +function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); + var methods = + promisifiableMethods(obj, suffix, suffixRegexp, filter); + + for (var i = 0, len = methods.length; i < len; i+= 2) { + var key = methods[i]; + var fn = methods[i+1]; + var promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) { + obj[promisifiedKey] = + makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + } else { + var promisified = promisifier(fn, function() { + return makeNodePromisified(key, THIS, key, + fn, suffix, multiArgs); + }); + util.notEnumerableProp(promisified, "__isPromisified__", true); + obj[promisifiedKey] = promisified; + } + } + util.toFastProperties(obj); + return obj; +} + +function promisify(callback, receiver, multiArgs) { + return makeNodePromisified(callback, receiver, undefined, + callback, null, multiArgs); +} + +Promise.promisify = function (fn, options) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + if (isPromisified(fn)) { + return fn; + } + options = Object(options); + var receiver = options.context === undefined ? THIS : options.context; + var multiArgs = !!options.multiArgs; + var ret = promisify(fn, receiver, multiArgs); + util.copyDescriptors(fn, ret, propsFilter); + return ret; +}; + +Promise.promisifyAll = function (target, options) { + if (typeof target !== "function" && typeof target !== "object") { + throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + options = Object(options); + var multiArgs = !!options.multiArgs; + var suffix = options.suffix; + if (typeof suffix !== "string") suffix = defaultSuffix; + var filter = options.filter; + if (typeof filter !== "function") filter = defaultFilter; + var promisifier = options.promisifier; + if (typeof promisifier !== "function") promisifier = makeNodePromisified; + + if (!util.isIdentifier(suffix)) { + throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + + var keys = util.inheritedDataKeys(target); + for (var i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + if (keys[i] !== "constructor" && + util.isClass(value)) { + promisifyAll(value.prototype, suffix, filter, promisifier, + multiArgs); + promisifyAll(value, suffix, filter, promisifier, multiArgs); + } + } + + return promisifyAll(target, suffix, filter, promisifier, multiArgs); +}; +}; + + +},{"./errors":12,"./nodeback":20,"./util":36}],25:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function( + Promise, PromiseArray, tryConvertToPromise, apiRejection) { +var util = _dereq_("./util"); +var isObject = util.isObject; +var es5 = _dereq_("./es5"); +var Es6Map; +if (typeof Map === "function") Es6Map = Map; + +var mapToEntries = (function() { + var index = 0; + var size = 0; + + function extractEntry(value, key) { + this[index] = value; + this[index + size] = key; + index++; + } + + return function mapToEntries(map) { + size = map.size; + index = 0; + var ret = new Array(map.size * 2); + map.forEach(extractEntry, ret); + return ret; + }; +})(); + +var entriesToMap = function(entries) { + var ret = new Es6Map(); + var length = entries.length / 2 | 0; + for (var i = 0; i < length; ++i) { + var key = entries[length + i]; + var value = entries[i]; + ret.set(key, value); + } + return ret; +}; + +function PropertiesPromiseArray(obj) { + var isMap = false; + var entries; + if (Es6Map !== undefined && obj instanceof Es6Map) { + entries = mapToEntries(obj); + isMap = true; + } else { + var keys = es5.keys(obj); + var len = keys.length; + entries = new Array(len * 2); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key]; + entries[i + len] = key; + } + } + this.constructor$(entries); + this._isMap = isMap; + this._init$(undefined, isMap ? -6 : -3); +} +util.inherits(PropertiesPromiseArray, PromiseArray); + +PropertiesPromiseArray.prototype._init = function () {}; + +PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + var val; + if (this._isMap) { + val = entriesToMap(this._values); + } else { + val = {}; + var keyOffset = this.length(); + for (var i = 0, len = this.length(); i < len; ++i) { + val[this._values[i + keyOffset]] = this._values[i]; + } + } + this._resolve(val); + return true; + } + return false; +}; + +PropertiesPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +PropertiesPromiseArray.prototype.getActualLength = function (len) { + return len >> 1; +}; + +function props(promises) { + var ret; + var castValue = tryConvertToPromise(promises); + + if (!isObject(castValue)) { + return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } else if (castValue instanceof Promise) { + ret = castValue._then( + Promise.props, undefined, undefined, undefined, undefined); + } else { + ret = new PropertiesPromiseArray(castValue).promise(); + } + + if (castValue instanceof Promise) { + ret._propagateFrom(castValue, 2); + } + return ret; +} + +Promise.prototype.props = function () { + return props(this); +}; + +Promise.props = function (promises) { + return props(promises); +}; +}; + +},{"./es5":13,"./util":36}],26:[function(_dereq_,module,exports){ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; + +},{}],27:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function( + Promise, INTERNAL, tryConvertToPromise, apiRejection) { +var util = _dereq_("./util"); + +var raceLater = function (promise) { + return promise.then(function(array) { + return race(array, promise); + }); +}; + +function race(promises, parent) { + var maybePromise = tryConvertToPromise(promises); + + if (maybePromise instanceof Promise) { + return raceLater(maybePromise); + } else { + promises = util.asArray(promises); + if (promises === null) + return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + } + + var ret = new Promise(INTERNAL); + if (parent !== undefined) { + ret._propagateFrom(parent, 3); + } + var fulfill = ret._fulfill; + var reject = ret._reject; + for (var i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; + + if (val === undefined && !(i in promises)) { + continue; + } + + Promise.cast(val)._then(fulfill, reject, undefined, ret, null); + } + return ret; +} + +Promise.race = function (promises) { + return race(promises, undefined); +}; + +Promise.prototype.race = function () { + return race(this, undefined); +}; + +}; + +},{"./util":36}],28:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var domain = getDomain(); + this._fn = domain === null ? fn : util.domainBind(domain, fn); + if (initialValue !== undefined) { + initialValue = Promise.resolve(initialValue); + initialValue._attachCancellationCallback(this); + } + this._initialValue = initialValue; + this._currentCancellable = null; + if(_each === INTERNAL) { + this._eachValues = Array(this._length); + } else if (_each === 0) { + this._eachValues = null; + } else { + this._eachValues = undefined; + } + this._promise._captureStackTrace(); + this._init$(undefined, -5); +} +util.inherits(ReductionPromiseArray, PromiseArray); + +ReductionPromiseArray.prototype._gotAccum = function(accum) { + if (this._eachValues !== undefined && + this._eachValues !== null && + accum !== INTERNAL) { + this._eachValues.push(accum); + } +}; + +ReductionPromiseArray.prototype._eachComplete = function(value) { + if (this._eachValues !== null) { + this._eachValues.push(value); + } + return this._eachValues; +}; + +ReductionPromiseArray.prototype._init = function() {}; + +ReductionPromiseArray.prototype._resolveEmptyArray = function() { + this._resolve(this._eachValues !== undefined ? this._eachValues + : this._initialValue); +}; + +ReductionPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +ReductionPromiseArray.prototype._resolve = function(value) { + this._promise._resolveCallback(value); + this._values = null; +}; + +ReductionPromiseArray.prototype._resultCancelled = function(sender) { + if (sender === this._initialValue) return this._cancel(); + if (this._isResolved()) return; + this._resultCancelled$(); + if (this._currentCancellable instanceof Promise) { + this._currentCancellable.cancel(); + } + if (this._initialValue instanceof Promise) { + this._initialValue.cancel(); + } +}; + +ReductionPromiseArray.prototype._iterate = function (values) { + this._values = values; + var value; + var i; + var length = values.length; + if (this._initialValue !== undefined) { + value = this._initialValue; + i = 0; + } else { + value = Promise.resolve(values[0]); + i = 1; + } + + this._currentCancellable = value; + + if (!value.isRejected()) { + for (; i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + value = value._then(gotAccum, undefined, undefined, ctx, undefined); + } + } + + if (this._eachValues !== undefined) { + value = value + ._then(this._eachComplete, undefined, undefined, this, undefined); + } + value._then(completed, completed, undefined, value, this); +}; + +Promise.prototype.reduce = function (fn, initialValue) { + return reduce(this, fn, initialValue, null); +}; + +Promise.reduce = function (promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); +}; + +function completed(valueOrReason, array) { + if (this.isFulfilled()) { + array._resolve(valueOrReason); + } else { + array._reject(valueOrReason); + } +} + +function reduce(promises, fn, initialValue, _each) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var array = new ReductionPromiseArray(promises, fn, initialValue, _each); + return array.promise(); +} + +function gotAccum(accum) { + this.accum = accum; + this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + if (value instanceof Promise) { + this.array._currentCancellable = value; + return value._then(gotValue, undefined, undefined, this, undefined); + } else { + return gotValue.call(this, value); + } +} + +function gotValue(value) { + var array = this.array; + var promise = array._promise; + var fn = tryCatch(array._fn); + promise._pushContext(); + var ret; + if (array._eachValues !== undefined) { + ret = fn.call(promise._boundValue(), value, this.index, this.length); + } else { + ret = fn.call(promise._boundValue(), + this.accum, value, this.index, this.length); + } + if (ret instanceof Promise) { + array._currentCancellable = ret; + } + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", + promise + ); + return ret; +} +}; + +},{"./util":36}],29:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova))) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; + +},{"./util":36}],30:[function(_dereq_,module,exports){ +"use strict"; +module.exports = + function(Promise, PromiseArray, debug) { +var PromiseInspection = Promise.PromiseInspection; +var util = _dereq_("./util"); + +function SettledPromiseArray(values) { + this.constructor$(values); +} +util.inherits(SettledPromiseArray, PromiseArray); + +SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { + this._values[index] = inspection; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { + var ret = new PromiseInspection(); + ret._bitField = 33554432; + ret._settledValueField = value; + return this._promiseResolved(index, ret); +}; +SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection(); + ret._bitField = 16777216; + ret._settledValueField = reason; + return this._promiseResolved(index, ret); +}; + +Promise.settle = function (promises) { + debug.deprecated(".settle()", ".reflect()"); + return new SettledPromiseArray(promises).promise(); +}; + +Promise.prototype.settle = function () { + return Promise.settle(this); +}; +}; + +},{"./util":36}],31:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, apiRejection) { +var util = _dereq_("./util"); +var RangeError = _dereq_("./errors").RangeError; +var AggregateError = _dereq_("./errors").AggregateError; +var isArray = util.isArray; +var CANCELLATION = {}; + + +function SomePromiseArray(values) { + this.constructor$(values); + this._howMany = 0; + this._unwrap = false; + this._initialized = false; +} +util.inherits(SomePromiseArray, PromiseArray); + +SomePromiseArray.prototype._init = function () { + if (!this._initialized) { + return; + } + if (this._howMany === 0) { + this._resolve([]); + return; + } + this._init$(undefined, -5); + var isArrayResolved = isArray(this._values); + if (!this._isResolved() && + isArrayResolved && + this._howMany > this._canPossiblyFulfill()) { + this._reject(this._getRangeError(this.length())); + } +}; + +SomePromiseArray.prototype.init = function () { + this._initialized = true; + this._init(); +}; + +SomePromiseArray.prototype.setUnwrap = function () { + this._unwrap = true; +}; + +SomePromiseArray.prototype.howMany = function () { + return this._howMany; +}; + +SomePromiseArray.prototype.setHowMany = function (count) { + this._howMany = count; +}; + +SomePromiseArray.prototype._promiseFulfilled = function (value) { + this._addFulfilled(value); + if (this._fulfilled() === this.howMany()) { + this._values.length = this.howMany(); + if (this.howMany() === 1 && this._unwrap) { + this._resolve(this._values[0]); + } else { + this._resolve(this._values); + } + return true; + } + return false; + +}; +SomePromiseArray.prototype._promiseRejected = function (reason) { + this._addRejected(reason); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._promiseCancelled = function () { + if (this._values instanceof Promise || this._values == null) { + return this._cancel(); + } + this._addRejected(CANCELLATION); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._checkOutcome = function() { + if (this.howMany() > this._canPossiblyFulfill()) { + var e = new AggregateError(); + for (var i = this.length(); i < this._values.length; ++i) { + if (this._values[i] !== CANCELLATION) { + e.push(this._values[i]); + } + } + if (e.length > 0) { + this._reject(e); + } else { + this._cancel(); + } + return true; + } + return false; +}; + +SomePromiseArray.prototype._fulfilled = function () { + return this._totalResolved; +}; + +SomePromiseArray.prototype._rejected = function () { + return this._values.length - this.length(); +}; + +SomePromiseArray.prototype._addRejected = function (reason) { + this._values.push(reason); +}; + +SomePromiseArray.prototype._addFulfilled = function (value) { + this._values[this._totalResolved++] = value; +}; + +SomePromiseArray.prototype._canPossiblyFulfill = function () { + return this.length() - this._rejected(); +}; + +SomePromiseArray.prototype._getRangeError = function (count) { + var message = "Input array must contain at least " + + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); +}; + +SomePromiseArray.prototype._resolveEmptyArray = function () { + this._reject(this._getRangeError(0)); +}; + +function some(promises, howMany) { + if ((howMany | 0) !== howMany || howMany < 0) { + return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(howMany); + ret.init(); + return promise; +} + +Promise.some = function (promises, howMany) { + return some(promises, howMany); +}; + +Promise.prototype.some = function (howMany) { + return some(this, howMany); +}; + +Promise._SomePromiseArray = SomePromiseArray; +}; + +},{"./errors":12,"./util":36}],32:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; + +},{}],33:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; + +},{"./util":36}],34:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, debug) { +var util = _dereq_("./util"); +var TimeoutError = Promise.TimeoutError; + +function HandleWrapper(handle) { + this.handle = handle; +} + +HandleWrapper.prototype._resultCancelled = function() { + clearTimeout(this.handle); +}; + +var afterValue = function(value) { return delay(+this).thenReturn(value); }; +var delay = Promise.delay = function (ms, value) { + var ret; + var handle; + if (value !== undefined) { + ret = Promise.resolve(value) + ._then(afterValue, null, null, ms, undefined); + if (debug.cancellation() && value instanceof Promise) { + ret._setOnCancel(value); + } + } else { + ret = new Promise(INTERNAL); + handle = setTimeout(function() { ret._fulfill(); }, +ms); + if (debug.cancellation()) { + ret._setOnCancel(new HandleWrapper(handle)); + } + ret._captureStackTrace(); + } + ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.prototype.delay = function (ms) { + return delay(ms, this); +}; + +var afterTimeout = function (promise, message, parent) { + var err; + if (typeof message !== "string") { + if (message instanceof Error) { + err = message; + } else { + err = new TimeoutError("operation timed out"); + } + } else { + err = new TimeoutError(message); + } + util.markAsOriginatingFromRejection(err); + promise._attachExtraTrace(err); + promise._reject(err); + + if (parent != null) { + parent.cancel(); + } +}; + +function successClear(value) { + clearTimeout(this.handle); + return value; +} + +function failureClear(reason) { + clearTimeout(this.handle); + throw reason; +} + +Promise.prototype.timeout = function (ms, message) { + ms = +ms; + var ret, parent; + + var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { + if (ret.isPending()) { + afterTimeout(ret, message, parent); + } + }, ms)); + + if (debug.cancellation()) { + parent = this.then(); + ret = parent._then(successClear, failureClear, + undefined, handleWrapper, undefined); + ret._setOnCancel(handleWrapper); + } else { + ret = this._then(successClear, failureClear, + undefined, handleWrapper, undefined); + } + + return ret; +}; + +}; + +},{"./util":36}],35:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function (Promise, apiRejection, tryConvertToPromise, + createContext, INTERNAL, debug) { + var util = _dereq_("./util"); + var TypeError = _dereq_("./errors").TypeError; + var inherits = _dereq_("./util").inherits; + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + var NULL = {}; + + function thrower(e) { + setTimeout(function(){throw e;}, 0); + } + + function castPreservingDisposable(thenable) { + var maybePromise = tryConvertToPromise(thenable); + if (maybePromise !== thenable && + typeof thenable._isDisposable === "function" && + typeof thenable._getDisposer === "function" && + thenable._isDisposable()) { + maybePromise._setDisposable(thenable._getDisposer()); + } + return maybePromise; + } + function dispose(resources, inspection) { + var i = 0; + var len = resources.length; + var ret = new Promise(INTERNAL); + function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = castPreservingDisposable(resources[i++]); + if (maybePromise instanceof Promise && + maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise( + maybePromise._getDisposer().tryDispose(inspection), + resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) { + return maybePromise._then(iterator, thrower, + null, null, null); + } + } + iterator(); + } + iterator(); + return ret; + } + + function Disposer(data, promise, context) { + this._data = data; + this._promise = promise; + this._context = context; + } + + Disposer.prototype.data = function () { + return this._data; + }; + + Disposer.prototype.promise = function () { + return this._promise; + }; + + Disposer.prototype.resource = function () { + if (this.promise().isFulfilled()) { + return this.promise().value(); + } + return NULL; + }; + + Disposer.prototype.tryDispose = function(inspection) { + var resource = this.resource(); + var context = this._context; + if (context !== undefined) context._pushContext(); + var ret = resource !== NULL + ? this.doDispose(resource, inspection) : null; + if (context !== undefined) context._popContext(); + this._promise._unsetDisposable(); + this._data = null; + return ret; + }; + + Disposer.isDisposer = function (d) { + return (d != null && + typeof d.resource === "function" && + typeof d.tryDispose === "function"); + }; + + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + inherits(FunctionDisposer, Disposer); + + FunctionDisposer.prototype.doDispose = function (resource, inspection) { + var fn = this.data(); + return fn.call(resource, resource, inspection); + }; + + function maybeUnwrapDisposer(value) { + if (Disposer.isDisposer(value)) { + this.resources[this.index]._setDisposable(value); + return value.promise(); + } + return value; + } + + function ResourceList(length) { + this.length = length; + this.promise = null; + this[length-1] = null; + } + + ResourceList.prototype._resultCancelled = function() { + var len = this.length; + for (var i = 0; i < len; ++i) { + var item = this[i]; + if (item instanceof Promise) { + item.cancel(); + } + } + }; + + Promise.using = function () { + var len = arguments.length; + if (len < 2) return apiRejection( + "you must pass at least 2 arguments to Promise.using"); + var fn = arguments[len - 1]; + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var input; + var spreadArgs = true; + if (len === 2 && Array.isArray(arguments[0])) { + input = arguments[0]; + len = input.length; + spreadArgs = false; + } else { + input = arguments; + len--; + } + var resources = new ResourceList(len); + for (var i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + resource = resource.promise(); + resource._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + if (maybePromise instanceof Promise) { + resource = + maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, undefined); + } + } + resources[i] = resource; + } + + var reflectedResources = new Array(resources.length); + for (var i = 0; i < reflectedResources.length; ++i) { + reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + } + + var resultPromise = Promise.all(reflectedResources) + .then(function(inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) { + errorObj.e = inspection.error(); + return errorObj; + } else if (!inspection.isFulfilled()) { + resultPromise.cancel(); + return; + } + inspections[i] = inspection.value(); + } + promise._pushContext(); + + fn = tryCatch(fn); + var ret = spreadArgs + ? fn.apply(undefined, inspections) : fn(inspections); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, promiseCreated, "Promise.using", promise); + return ret; + }); + + var promise = resultPromise.lastly(function() { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + }); + resources.promise = promise; + promise._setOnCancel(resources); + return promise; + }; + + Promise.prototype._setDisposable = function (disposer) { + this._bitField = this._bitField | 131072; + this._disposer = disposer; + }; + + Promise.prototype._isDisposable = function () { + return (this._bitField & 131072) > 0; + }; + + Promise.prototype._getDisposer = function () { + return this._disposer; + }; + + Promise.prototype._unsetDisposable = function () { + this._bitField = this._bitField & (~131072); + this._disposer = undefined; + }; + + Promise.prototype.disposer = function (fn) { + if (typeof fn === "function") { + return new FunctionDisposer(fn, this, createContext()); + } + throw new TypeError(); + }; + +}; + +},{"./errors":12,"./util":36}],36:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var l = 8; + while (l--) new FakeConstructor(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if ({}.toString.call(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +function domainBind(self, cb) { + return self.bind(cb); +} + +var ret = { + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + hasDevTools: typeof chrome !== "undefined" && chrome && + typeof chrome.loadTimes === "function", + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + domainBind: domainBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version = process.versions.node.split(".").map(Number); + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; + +},{"./es5":13}]},{},[4])(4) +}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.min.js b/node_modules/bluebird/js/browser/bluebird.min.js new file mode 100644 index 00000000..e02a9cdd --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.min.js @@ -0,0 +1,31 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=a},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new S(this._peekContext())}function _(t,e){if(N(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=j(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&W){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=w(a),l=c.length-1;l>=0;--l){var u=c[l];if(!U.test(u)){var p=u.match(M);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=j(o);o.stack=s.message+"\n"+s.stack.join("\n")}tt("warning",o)||E(o,"",!0)}}function m(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function j(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?C(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function E(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+Q(i,t)}else r=e+String(t);"function"==typeof D?D(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function k(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||E(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(nt=function(t){if(B.test(t))return!0;var e=P(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,S),e>32&&this.uncycle()}var O,A,D,V=e._getDomain,I=e._async,L=t("./errors").Warning,H=t("./util"),N=H.canAttachTrace,B=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,U=/\((?:timers\.js):\d+:\d+\)/,M=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,Q=null,$=!1,G=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),z=!(0==H.env("BLUEBIRD_WARNINGS")||!G&&!H.env("BLUEBIRD_WARNINGS")),X=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!G&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),W=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(z||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){k("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),k("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=V();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=V();O="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&T()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&T()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!H.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,W=ot.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(W=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=j(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;b(r),g(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,Q=e;var n=Error.captureStackTrace;return nt=function(t){return B.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,Q=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(Q=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,Q=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(D=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?D=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(D=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:z,longStackTraces:!1,cancellation:!1,monitoring:!1};return X&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return h},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":12,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(x.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&x.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(x.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){x.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,x),t("./bind")(i,b,j,x),t("./cancel")(i,E,p,x),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.1",t("./map.js")(i,E,p,j,b,x),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,x),t("./timers.js")(i,b,x),t("./generators.js")(i,p,b,j,n,x),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,x),t("./settle.js")(i,E,x),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),x.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t), +this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/release/any.js b/node_modules/bluebird/js/release/any.js new file mode 100644 index 00000000..05a6228e --- /dev/null +++ b/node_modules/bluebird/js/release/any.js @@ -0,0 +1,21 @@ +"use strict"; +module.exports = function(Promise) { +var SomePromiseArray = Promise._SomePromiseArray; +function any(promises) { + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(1); + ret.setUnwrap(); + ret.init(); + return promise; +} + +Promise.any = function (promises) { + return any(promises); +}; + +Promise.prototype.any = function () { + return any(this); +}; + +}; diff --git a/node_modules/bluebird/js/release/assert.js b/node_modules/bluebird/js/release/assert.js new file mode 100644 index 00000000..4518231a --- /dev/null +++ b/node_modules/bluebird/js/release/assert.js @@ -0,0 +1,55 @@ +"use strict"; +module.exports = (function(){ +var AssertionError = (function() { + function AssertionError(a) { + this.constructor$(a); + this.message = a; + this.name = "AssertionError"; + } + AssertionError.prototype = new Error(); + AssertionError.prototype.constructor = AssertionError; + AssertionError.prototype.constructor$ = Error; + return AssertionError; +})(); + +function getParams(args) { + var params = []; + for (var i = 0; i < args.length; ++i) params.push("arg" + i); + return params; +} + +function nativeAssert(callName, args, expect) { + try { + var params = getParams(args); + var constructorArgs = params; + constructorArgs.push("return " + + callName + "("+ params.join(",") + ");"); + var fn = Function.apply(null, constructorArgs); + return fn.apply(null, args); + } catch (e) { + if (!(e instanceof SyntaxError)) { + throw e; + } else { + return expect; + } + } +} + +return function assert(boolExpr, message) { + if (boolExpr === true) return; + + if (typeof boolExpr === "string" && + boolExpr.charAt(0) === "%") { + var nativeCallName = boolExpr; + var $_len = arguments.length;var args = new Array(Math.max($_len - 2, 0)); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];}; + if (nativeAssert(nativeCallName, args, message) === message) return; + message = (nativeCallName + " !== " + message); + } + + var ret = new AssertionError(message); + if (Error.captureStackTrace) { + Error.captureStackTrace(ret, assert); + } + throw ret; +}; +})(); diff --git a/node_modules/bluebird/js/release/async.js b/node_modules/bluebird/js/release/async.js new file mode 100644 index 00000000..41f66556 --- /dev/null +++ b/node_modules/bluebird/js/release/async.js @@ -0,0 +1,161 @@ +"use strict"; +var firstLineError; +try {throw new Error(); } catch (e) {firstLineError = e;} +var schedule = require("./schedule"); +var Queue = require("./queue"); +var util = require("./util"); + +function Async() { + this._customScheduler = false; + this._isTickUsed = false; + this._lateQueue = new Queue(16); + this._normalQueue = new Queue(16); + this._haveDrainedQueues = false; + this._trampolineEnabled = true; + var self = this; + this.drainQueues = function () { + self._drainQueues(); + }; + this._schedule = schedule; +} + +Async.prototype.setScheduler = function(fn) { + var prev = this._schedule; + this._schedule = fn; + this._customScheduler = true; + return prev; +}; + +Async.prototype.hasCustomScheduler = function() { + return this._customScheduler; +}; + +Async.prototype.enableTrampoline = function() { + this._trampolineEnabled = true; +}; + +Async.prototype.disableTrampolineIfNecessary = function() { + if (util.hasDevTools) { + this._trampolineEnabled = false; + } +}; + +Async.prototype.haveItemsQueued = function () { + return this._isTickUsed || this._haveDrainedQueues; +}; + + +Async.prototype.fatalError = function(e, isNode) { + if (isNode) { + process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + + "\n"); + process.exit(2); + } else { + this.throwLater(e); + } +}; + +Async.prototype.throwLater = function(fn, arg) { + if (arguments.length === 1) { + arg = fn; + fn = function () { throw arg; }; + } + if (typeof setTimeout !== "undefined") { + setTimeout(function() { + fn(arg); + }, 0); + } else try { + this._schedule(function() { + fn(arg); + }); + } catch (e) { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } +}; + +function AsyncInvokeLater(fn, receiver, arg) { + this._lateQueue.push(fn, receiver, arg); + this._queueTick(); +} + +function AsyncInvoke(fn, receiver, arg) { + this._normalQueue.push(fn, receiver, arg); + this._queueTick(); +} + +function AsyncSettlePromises(promise) { + this._normalQueue._pushOne(promise); + this._queueTick(); +} + +if (!util.hasDevTools) { + Async.prototype.invokeLater = AsyncInvokeLater; + Async.prototype.invoke = AsyncInvoke; + Async.prototype.settlePromises = AsyncSettlePromises; +} else { + Async.prototype.invokeLater = function (fn, receiver, arg) { + if (this._trampolineEnabled) { + AsyncInvokeLater.call(this, fn, receiver, arg); + } else { + this._schedule(function() { + setTimeout(function() { + fn.call(receiver, arg); + }, 100); + }); + } + }; + + Async.prototype.invoke = function (fn, receiver, arg) { + if (this._trampolineEnabled) { + AsyncInvoke.call(this, fn, receiver, arg); + } else { + this._schedule(function() { + fn.call(receiver, arg); + }); + } + }; + + Async.prototype.settlePromises = function(promise) { + if (this._trampolineEnabled) { + AsyncSettlePromises.call(this, promise); + } else { + this._schedule(function() { + promise._settlePromises(); + }); + } + }; +} + +Async.prototype._drainQueue = function(queue) { + while (queue.length() > 0) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + continue; + } + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +}; + +Async.prototype._drainQueues = function () { + this._drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + this._drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; diff --git a/node_modules/bluebird/js/release/bind.js b/node_modules/bluebird/js/release/bind.js new file mode 100644 index 00000000..fc3379db --- /dev/null +++ b/node_modules/bluebird/js/release/bind.js @@ -0,0 +1,67 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; diff --git a/node_modules/bluebird/js/release/bluebird.js b/node_modules/bluebird/js/release/bluebird.js new file mode 100644 index 00000000..1c36cf36 --- /dev/null +++ b/node_modules/bluebird/js/release/bluebird.js @@ -0,0 +1,11 @@ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = require("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; diff --git a/node_modules/bluebird/js/release/call_get.js b/node_modules/bluebird/js/release/call_get.js new file mode 100644 index 00000000..0ed7714a --- /dev/null +++ b/node_modules/bluebird/js/release/call_get.js @@ -0,0 +1,123 @@ +"use strict"; +var cr = Object.create; +if (cr) { + var callerCache = cr(null); + var getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; +} + +module.exports = function(Promise) { +var util = require("./util"); +var canEvaluate = util.canEvaluate; +var isIdentifier = util.isIdentifier; + +var getMethodCaller; +var getGetter; +if (!false) { +var makeMethodCaller = function (methodName) { + return new Function("ensureMethod", " \n\ + return function(obj) { \n\ + 'use strict' \n\ + var len = this.length; \n\ + ensureMethod(obj, 'methodName'); \n\ + switch(len) { \n\ + case 1: return obj.methodName(this[0]); \n\ + case 2: return obj.methodName(this[0], this[1]); \n\ + case 3: return obj.methodName(this[0], this[1], this[2]); \n\ + case 0: return obj.methodName(); \n\ + default: \n\ + return obj.methodName.apply(obj, this); \n\ + } \n\ + }; \n\ + ".replace(/methodName/g, methodName))(ensureMethod); +}; + +var makeGetter = function (propertyName) { + return new Function("obj", " \n\ + 'use strict'; \n\ + return obj.propertyName; \n\ + ".replace("propertyName", propertyName)); +}; + +var getCompiled = function(name, compiler, cache) { + var ret = cache[name]; + if (typeof ret !== "function") { + if (!isIdentifier(name)) { + return null; + } + ret = compiler(name); + cache[name] = ret; + cache[" size"]++; + if (cache[" size"] > 512) { + var keys = Object.keys(cache); + for (var i = 0; i < 256; ++i) delete cache[keys[i]]; + cache[" size"] = keys.length - 256; + } + } + return ret; +}; + +getMethodCaller = function(name) { + return getCompiled(name, makeMethodCaller, callerCache); +}; + +getGetter = function(name) { + return getCompiled(name, makeGetter, getterCache); +}; +} + +function ensureMethod(obj, methodName) { + var fn; + if (obj != null) fn = obj[methodName]; + if (typeof fn !== "function") { + var message = "Object " + util.classString(obj) + " has no method '" + + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; +} + +function caller(obj) { + var methodName = this.pop(); + var fn = ensureMethod(obj, methodName); + return fn.apply(obj, this); +} +Promise.prototype.call = function (methodName) { + var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; + if (!false) { + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (maybeCaller !== null) { + return this._then( + maybeCaller, undefined, undefined, args, undefined); + } + } + } + args.push(methodName); + return this._then(caller, undefined, undefined, args, undefined); +}; + +function namedGetter(obj) { + return obj[this]; +} +function indexedGetter(obj) { + var index = +this; + if (index < 0) index = Math.max(0, index + obj.length); + return obj[index]; +} +Promise.prototype.get = function (propertyName) { + var isIndex = (typeof propertyName === "number"); + var getter; + if (!isIndex) { + if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = maybeGetter !== null ? maybeGetter : namedGetter; + } else { + getter = namedGetter; + } + } else { + getter = indexedGetter; + } + return this._then(getter, undefined, undefined, propertyName, undefined); +}; +}; diff --git a/node_modules/bluebird/js/release/cancel.js b/node_modules/bluebird/js/release/cancel.js new file mode 100644 index 00000000..7a12415e --- /dev/null +++ b/node_modules/bluebird/js/release/cancel.js @@ -0,0 +1,129 @@ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; diff --git a/node_modules/bluebird/js/release/catch_filter.js b/node_modules/bluebird/js/release/catch_filter.js new file mode 100644 index 00000000..0f24ce23 --- /dev/null +++ b/node_modules/bluebird/js/release/catch_filter.js @@ -0,0 +1,42 @@ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = require("./util"); +var getKeys = require("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; diff --git a/node_modules/bluebird/js/release/context.js b/node_modules/bluebird/js/release/context.js new file mode 100644 index 00000000..c307414f --- /dev/null +++ b/node_modules/bluebird/js/release/context.js @@ -0,0 +1,69 @@ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; diff --git a/node_modules/bluebird/js/release/debuggability.js b/node_modules/bluebird/js/release/debuggability.js new file mode 100644 index 00000000..69568041 --- /dev/null +++ b/node_modules/bluebird/js/release/debuggability.js @@ -0,0 +1,919 @@ +"use strict"; +module.exports = function(Promise, Context) { +var getDomain = Promise._getDomain; +var async = Promise._async; +var Warning = require("./errors").Warning; +var util = require("./util"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (false || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + var self = this; + setTimeout(function() { + self._notifyUnhandledRejection(); + }, 1); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var domain = getDomain(); + possiblyUnhandledRejection = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var domain = getDomain(); + unhandledRejectionHandled = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Context.deactivateLongStackTraces(); + async.enableTrampoline(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Context.activateLongStackTraces(); + async.disableTrampolineIfNecessary(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + +var fireDomEvent = (function() { + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new CustomEvent(name.toLowerCase(), { + detail: event, + cancelable: true + }); + return !util.global.dispatchEvent(domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new Event(name.toLowerCase(), { + cancelable: true + }); + domEvent.detail = event; + return !util.global.dispatchEvent(domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name.toLowerCase(), false, true, + event); + return !util.global.dispatchEvent(domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = firstLineError.stack.split("\n"); + var lastStackLines = lastLineError.stack.split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; diff --git a/node_modules/bluebird/js/release/direct_resolve.js b/node_modules/bluebird/js/release/direct_resolve.js new file mode 100644 index 00000000..a8902982 --- /dev/null +++ b/node_modules/bluebird/js/release/direct_resolve.js @@ -0,0 +1,46 @@ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; diff --git a/node_modules/bluebird/js/release/each.js b/node_modules/bluebird/js/release/each.js new file mode 100644 index 00000000..e4f3d05b --- /dev/null +++ b/node_modules/bluebird/js/release/each.js @@ -0,0 +1,30 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseReduce = Promise.reduce; +var PromiseAll = Promise.all; + +function promiseAllThis() { + return PromiseAll(this); +} + +function PromiseMapSeries(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); +} + +Promise.prototype.each = function (fn) { + return PromiseReduce(this, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, this, undefined); +}; + +Promise.prototype.mapSeries = function (fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); +}; + +Promise.each = function (promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, promises, undefined); +}; + +Promise.mapSeries = PromiseMapSeries; +}; + diff --git a/node_modules/bluebird/js/release/errors.js b/node_modules/bluebird/js/release/errors.js new file mode 100644 index 00000000..f62f323e --- /dev/null +++ b/node_modules/bluebird/js/release/errors.js @@ -0,0 +1,116 @@ +"use strict"; +var es5 = require("./es5"); +var Objectfreeze = es5.freeze; +var util = require("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; diff --git a/node_modules/bluebird/js/release/es5.js b/node_modules/bluebird/js/release/es5.js new file mode 100644 index 00000000..ea41d5a5 --- /dev/null +++ b/node_modules/bluebird/js/release/es5.js @@ -0,0 +1,80 @@ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} diff --git a/node_modules/bluebird/js/release/filter.js b/node_modules/bluebird/js/release/filter.js new file mode 100644 index 00000000..ed57bf01 --- /dev/null +++ b/node_modules/bluebird/js/release/filter.js @@ -0,0 +1,12 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseMap = Promise.map; + +Promise.prototype.filter = function (fn, options) { + return PromiseMap(this, fn, options, INTERNAL); +}; + +Promise.filter = function (promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); +}; +}; diff --git a/node_modules/bluebird/js/release/finally.js b/node_modules/bluebird/js/release/finally.js new file mode 100644 index 00000000..d57444be --- /dev/null +++ b/node_modules/bluebird/js/release/finally.js @@ -0,0 +1,146 @@ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = require("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = require("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; diff --git a/node_modules/bluebird/js/release/generators.js b/node_modules/bluebird/js/release/generators.js new file mode 100644 index 00000000..500c280c --- /dev/null +++ b/node_modules/bluebird/js/release/generators.js @@ -0,0 +1,223 @@ +"use strict"; +module.exports = function(Promise, + apiRejection, + INTERNAL, + tryConvertToPromise, + Proxyable, + debug) { +var errors = require("./errors"); +var TypeError = errors.TypeError; +var util = require("./util"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +var yieldHandlers = []; + +function promiseFromYieldHandler(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + traceParent._popContext(); + if (result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + traceParent._popContext(); + return ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; +} + +function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + if (debug.cancellation()) { + var internal = new Promise(INTERNAL); + var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); + this._promise = internal.lastly(function() { + return _finallyPromise; + }); + internal._captureStackTrace(); + internal._setOnCancel(this); + } else { + var promise = this._promise = new Promise(INTERNAL); + promise._captureStackTrace(); + } + this._stack = stack; + this._generatorFunction = generatorFunction; + this._receiver = receiver; + this._generator = undefined; + this._yieldHandlers = typeof yieldHandler === "function" + ? [yieldHandler].concat(yieldHandlers) + : yieldHandlers; + this._yieldedPromise = null; + this._cancellationPhase = false; +} +util.inherits(PromiseSpawn, Proxyable); + +PromiseSpawn.prototype._isResolved = function() { + return this._promise === null; +}; + +PromiseSpawn.prototype._cleanup = function() { + this._promise = this._generator = null; + if (debug.cancellation() && this._finallyPromise !== null) { + this._finallyPromise._fulfill(); + this._finallyPromise = null; + } +}; + +PromiseSpawn.prototype._promiseCancelled = function() { + if (this._isResolved()) return; + var implementsReturn = typeof this._generator["return"] !== "undefined"; + + var result; + if (!implementsReturn) { + var reason = new Promise.CancellationError( + "generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + result = tryCatch(this._generator["throw"]).call(this._generator, + reason); + this._promise._popContext(); + } else { + this._promise._pushContext(); + result = tryCatch(this._generator["return"]).call(this._generator, + undefined); + this._promise._popContext(); + } + this._cancellationPhase = true; + this._yieldedPromise = null; + this._continue(result); +}; + +PromiseSpawn.prototype._promiseFulfilled = function(value) { + this._yieldedPromise = null; + this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._promiseRejected = function(reason) { + this._yieldedPromise = null; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + var result = tryCatch(this._generator["throw"]) + .call(this._generator, reason); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._resultCancelled = function() { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null; + promise.cancel(); + } +}; + +PromiseSpawn.prototype.promise = function () { + return this._promise; +}; + +PromiseSpawn.prototype._run = function () { + this._generator = this._generatorFunction.call(this._receiver); + this._receiver = + this._generatorFunction = undefined; + this._promiseFulfilled(undefined); +}; + +PromiseSpawn.prototype._continue = function (result) { + var promise = this._promise; + if (result === errorObj) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._rejectCallback(result.e, false); + } + } + + var value = result.value; + if (result.done === true) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._resolveCallback(value); + } + } else { + var maybePromise = tryConvertToPromise(value, this._promise); + if (!(maybePromise instanceof Promise)) { + maybePromise = + promiseFromYieldHandler(maybePromise, + this._yieldHandlers, + this._promise); + if (maybePromise === null) { + this._promiseRejected( + new TypeError( + "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + + "From coroutine:\u000a" + + this._stack.split("\n").slice(1, -7).join("\n") + ) + ); + return; + } + } + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + this._yieldedPromise = maybePromise; + maybePromise._proxy(this, null); + } else if (((bitField & 33554432) !== 0)) { + Promise._async.invoke( + this._promiseFulfilled, this, maybePromise._value() + ); + } else if (((bitField & 16777216) !== 0)) { + Promise._async.invoke( + this._promiseRejected, this, maybePromise._reason() + ); + } else { + this._promiseCancelled(); + } + } +}; + +Promise.coroutine = function (generatorFunction, options) { + if (typeof generatorFunction !== "function") { + throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var yieldHandler = Object(options).yieldHandler; + var PromiseSpawn$ = PromiseSpawn; + var stack = new Error().stack; + return function () { + var generator = generatorFunction.apply(this, arguments); + var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, + stack); + var ret = spawn.promise(); + spawn._generator = generator; + spawn._promiseFulfilled(undefined); + return ret; + }; +}; + +Promise.coroutine.addYieldHandler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + yieldHandlers.push(fn); +}; + +Promise.spawn = function (generatorFunction) { + debug.deprecated("Promise.spawn()", "Promise.coroutine()"); + if (typeof generatorFunction !== "function") { + return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var spawn = new PromiseSpawn(generatorFunction, this); + var ret = spawn.promise(); + spawn._run(Promise.spawn); + return ret; +}; +}; diff --git a/node_modules/bluebird/js/release/join.js b/node_modules/bluebird/js/release/join.js new file mode 100644 index 00000000..4945e3f7 --- /dev/null +++ b/node_modules/bluebird/js/release/join.js @@ -0,0 +1,168 @@ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, + getDomain) { +var util = require("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!false) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!false) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var domain = getDomain(); + if (domain !== null) { + holder.fn = util.domainBind(domain, holder.fn); + } + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];}; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; diff --git a/node_modules/bluebird/js/release/map.js b/node_modules/bluebird/js/release/map.js new file mode 100644 index 00000000..976f15ef --- /dev/null +++ b/node_modules/bluebird/js/release/map.js @@ -0,0 +1,168 @@ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = require("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises); + this._promise._captureStackTrace(); + var domain = getDomain(); + this._callback = domain === null ? fn : util.domainBind(domain, fn); + this._preservedValues = _filter === INTERNAL + ? new Array(this.length()) + : null; + this._limit = limit; + this._inFlight = 0; + this._queue = []; + async.invoke(this._asyncInit, this, undefined); +} +util.inherits(MappingPromiseArray, PromiseArray); + +MappingPromiseArray.prototype._asyncInit = function() { + this._init$(undefined, -2); +}; + +MappingPromiseArray.prototype._init = function () {}; + +MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { + var values = this._values; + var length = this.length(); + var preservedValues = this._preservedValues; + var limit = this._limit; + + if (index < 0) { + index = (index * -1) - 1; + values[index] = value; + if (limit >= 1) { + this._inFlight--; + this._drainQueue(); + if (this._isResolved()) return true; + } + } else { + if (limit >= 1 && this._inFlight >= limit) { + values[index] = value; + this._queue.push(index); + return false; + } + if (preservedValues !== null) preservedValues[index] = value; + + var promise = this._promise; + var callback = this._callback; + var receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + preservedValues !== null ? "Promise.filter" : "Promise.map", + promise + ); + if (ret === errorObj) { + this._reject(ret.e); + return true; + } + + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + if (limit >= 1) this._inFlight++; + values[index] = maybePromise; + maybePromise._proxy(this, (index + 1) * -1); + return false; + } else if (((bitField & 33554432) !== 0)) { + ret = maybePromise._value(); + } else if (((bitField & 16777216) !== 0)) { + this._reject(maybePromise._reason()); + return true; + } else { + this._cancel(); + return true; + } + } + values[index] = ret; + } + var totalResolved = ++this._totalResolved; + if (totalResolved >= length) { + if (preservedValues !== null) { + this._filter(values, preservedValues); + } else { + this._resolve(values); + } + return true; + } + return false; +}; + +MappingPromiseArray.prototype._drainQueue = function () { + var queue = this._queue; + var limit = this._limit; + var values = this._values; + while (queue.length > 0 && this._inFlight < limit) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } +}; + +MappingPromiseArray.prototype._filter = function (booleans, values) { + var len = values.length; + var ret = new Array(len); + var j = 0; + for (var i = 0; i < len; ++i) { + if (booleans[i]) ret[j++] = values[i]; + } + ret.length = j; + this._resolve(ret); +}; + +MappingPromiseArray.prototype.preservedValues = function () { + return this._preservedValues; +}; + +function map(promises, fn, options, _filter) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + + var limit = 0; + if (options !== undefined) { + if (typeof options === "object" && options !== null) { + if (typeof options.concurrency !== "number") { + return Promise.reject( + new TypeError("'concurrency' must be a number but it is " + + util.classString(options.concurrency))); + } + limit = options.concurrency; + } else { + return Promise.reject(new TypeError( + "options argument must be an object but it is " + + util.classString(options))); + } + } + limit = typeof limit === "number" && + isFinite(limit) && limit >= 1 ? limit : 0; + return new MappingPromiseArray(promises, fn, limit, _filter).promise(); +} + +Promise.prototype.map = function (fn, options) { + return map(this, fn, options, null); +}; + +Promise.map = function (promises, fn, options, _filter) { + return map(promises, fn, options, _filter); +}; + + +}; diff --git a/node_modules/bluebird/js/release/method.js b/node_modules/bluebird/js/release/method.js new file mode 100644 index 00000000..ce9e4db7 --- /dev/null +++ b/node_modules/bluebird/js/release/method.js @@ -0,0 +1,55 @@ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; diff --git a/node_modules/bluebird/js/release/nodeback.js b/node_modules/bluebird/js/release/nodeback.js new file mode 100644 index 00000000..71e69ebd --- /dev/null +++ b/node_modules/bluebird/js/release/nodeback.js @@ -0,0 +1,51 @@ +"use strict"; +var util = require("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = require("./errors"); +var OperationalError = errors.OperationalError; +var es5 = require("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; diff --git a/node_modules/bluebird/js/release/nodeify.js b/node_modules/bluebird/js/release/nodeify.js new file mode 100644 index 00000000..ce2b1900 --- /dev/null +++ b/node_modules/bluebird/js/release/nodeify.js @@ -0,0 +1,58 @@ +"use strict"; +module.exports = function(Promise) { +var util = require("./util"); +var async = Promise._async; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function spreadAdapter(val, nodeback) { + var promise = this; + if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); + var ret = + tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +function successAdapter(val, nodeback) { + var promise = this; + var receiver = promise._boundValue(); + var ret = val === undefined + ? tryCatch(nodeback).call(receiver, null) + : tryCatch(nodeback).call(receiver, null, val); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} +function errorAdapter(reason, nodeback) { + var promise = this; + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason; + reason = newReason; + } + var ret = tryCatch(nodeback).call(promise._boundValue(), reason); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, + options) { + if (typeof nodeback == "function") { + var adapter = successAdapter; + if (options !== undefined && Object(options).spread) { + adapter = spreadAdapter; + } + this._then( + adapter, + errorAdapter, + undefined, + this, + nodeback + ); + } + return this; +}; +}; diff --git a/node_modules/bluebird/js/release/promise.js b/node_modules/bluebird/js/release/promise.js new file mode 100644 index 00000000..f4a641c3 --- /dev/null +++ b/node_modules/bluebird/js/release/promise.js @@ -0,0 +1,775 @@ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = require("./util"); + +var getDomain; +if (util.isNode) { + getDomain = function() { + var ret = process.domain; + if (ret === undefined) ret = null; + return ret; + }; +} else { + getDomain = function() { + return null; + }; +} +util.notEnumerableProp(Promise, "_getDomain", getDomain); + +var es5 = require("./es5"); +var Async = require("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = require("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = require("./thenables")(Promise, INTERNAL); +var PromiseArray = + require("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = require("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; +var debug = require("./debuggability")(Promise, Context); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + require("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = require("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = require("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var domain = getDomain(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: domain === null ? handler + : (typeof handler === "function" && + util.domainBind(domain, handler)), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + this._bitField = this._bitField | 134217728; +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + domain +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = + domain === null ? reject : util.domainBind(domain, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + domain === null ? reject : util.domainBind(domain, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(promise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +require("./cancel")(Promise, PromiseArray, apiRejection, debug); +require("./direct_resolve")(Promise); +require("./synchronous_inspection")(Promise); +require("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); +Promise.Promise = Promise; +Promise.version = "3.5.1"; +require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +require('./call_get.js')(Promise); +require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); +require('./timers.js')(Promise, INTERNAL, debug); +require('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); +require('./nodeify.js')(Promise); +require('./promisify.js')(Promise, INTERNAL); +require('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); +require('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); +require('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +require('./settle.js')(Promise, PromiseArray, debug); +require('./some.js')(Promise, PromiseArray, apiRejection); +require('./filter.js')(Promise, INTERNAL); +require('./each.js')(Promise, INTERNAL); +require('./any.js')(Promise); + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; diff --git a/node_modules/bluebird/js/release/promise_array.js b/node_modules/bluebird/js/release/promise_array.js new file mode 100644 index 00000000..0fb303eb --- /dev/null +++ b/node_modules/bluebird/js/release/promise_array.js @@ -0,0 +1,185 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = require("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; diff --git a/node_modules/bluebird/js/release/promisify.js b/node_modules/bluebird/js/release/promisify.js new file mode 100644 index 00000000..aa98e5bd --- /dev/null +++ b/node_modules/bluebird/js/release/promisify.js @@ -0,0 +1,314 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var THIS = {}; +var util = require("./util"); +var nodebackForPromise = require("./nodeback"); +var withAppended = util.withAppended; +var maybeWrapAsError = util.maybeWrapAsError; +var canEvaluate = util.canEvaluate; +var TypeError = require("./errors").TypeError; +var defaultSuffix = "Async"; +var defaultPromisified = {__isPromisified__: true}; +var noCopyProps = [ + "arity", "length", + "name", + "arguments", + "caller", + "callee", + "prototype", + "__isPromisified__" +]; +var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); + +var defaultFilter = function(name) { + return util.isIdentifier(name) && + name.charAt(0) !== "_" && + name !== "constructor"; +}; + +function propsFilter(key) { + return !noCopyPropsPattern.test(key); +} + +function isPromisified(fn) { + try { + return fn.__isPromisified__ === true; + } + catch (e) { + return false; + } +} + +function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, + defaultPromisified); + return val ? isPromisified(val) : false; +} +function checkValid(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) { + var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); + for (var j = 0; j < ret.length; j += 2) { + if (ret[j] === keyWithoutAsyncSuffix) { + throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" + .replace("%s", suffix)); + } + } + } + } +} + +function promisifiableMethods(obj, suffix, suffixRegexp, filter) { + var keys = util.inheritedDataKeys(obj); + var ret = []; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var value = obj[key]; + var passesDefaultFilter = filter === defaultFilter + ? true : defaultFilter(key, value, obj); + if (typeof value === "function" && + !isPromisified(value) && + !hasPromisified(obj, key, suffix) && + filter(key, value, obj, passesDefaultFilter)) { + ret.push(key, value); + } + } + checkValid(ret, suffix, suffixRegexp); + return ret; +} + +var escapeIdentRegex = function(str) { + return str.replace(/([$])/, "\\$"); +}; + +var makeNodePromisifiedEval; +if (!false) { +var switchCaseArgumentOrder = function(likelyArgumentCount) { + var ret = [likelyArgumentCount]; + var min = Math.max(0, likelyArgumentCount - 1 - 3); + for(var i = likelyArgumentCount - 1; i >= min; --i) { + ret.push(i); + } + for(var i = likelyArgumentCount + 1; i <= 3; ++i) { + ret.push(i); + } + return ret; +}; + +var argumentSequence = function(argumentCount) { + return util.filledRange(argumentCount, "_arg", ""); +}; + +var parameterDeclaration = function(parameterCount) { + return util.filledRange( + Math.max(parameterCount, 3), "_arg", ""); +}; + +var parameterCount = function(fn) { + if (typeof fn.length === "number") { + return Math.max(Math.min(fn.length, 1023 + 1), 0); + } + return 0; +}; + +makeNodePromisifiedEval = +function(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, parameterCount(fn) - 1); + var argumentOrder = switchCaseArgumentOrder(newParameterCount); + var shouldProxyThis = typeof callback === "string" || receiver === THIS; + + function generateCallForArgumentCount(count) { + var args = argumentSequence(count).join(", "); + var comma = count > 0 ? ", " : ""; + var ret; + if (shouldProxyThis) { + ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; + } else { + ret = receiver === undefined + ? "ret = callback({{args}}, nodeback); break;\n" + : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; + } + return ret.replace("{{args}}", args).replace(", ", comma); + } + + function generateArgumentSwitchCase() { + var ret = ""; + for (var i = 0; i < argumentOrder.length; ++i) { + ret += "case " + argumentOrder[i] +":" + + generateCallForArgumentCount(argumentOrder[i]); + } + + ret += " \n\ + default: \n\ + var args = new Array(len + 1); \n\ + var i = 0; \n\ + for (var i = 0; i < len; ++i) { \n\ + args[i] = arguments[i]; \n\ + } \n\ + args[i] = nodeback; \n\ + [CodeForCall] \n\ + break; \n\ + ".replace("[CodeForCall]", (shouldProxyThis + ? "ret = callback.apply(this, args);\n" + : "ret = callback.apply(receiver, args);\n")); + return ret; + } + + var getFunctionCode = typeof callback === "string" + ? ("this != null ? this['"+callback+"'] : fn") + : "fn"; + var body = "'use strict'; \n\ + var ret = function (Parameters) { \n\ + 'use strict'; \n\ + var len = arguments.length; \n\ + var promise = new Promise(INTERNAL); \n\ + promise._captureStackTrace(); \n\ + var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ + var ret; \n\ + var callback = tryCatch([GetFunctionCode]); \n\ + switch(len) { \n\ + [CodeForSwitchCase] \n\ + } \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ + } \n\ + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ + return promise; \n\ + }; \n\ + notEnumerableProp(ret, '__isPromisified__', true); \n\ + return ret; \n\ + ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) + .replace("[GetFunctionCode]", getFunctionCode); + body = body.replace("Parameters", parameterDeclaration(newParameterCount)); + return new Function("Promise", + "fn", + "receiver", + "withAppended", + "maybeWrapAsError", + "nodebackForPromise", + "tryCatch", + "errorObj", + "notEnumerableProp", + "INTERNAL", + body)( + Promise, + fn, + receiver, + withAppended, + maybeWrapAsError, + nodebackForPromise, + util.tryCatch, + util.errorObj, + util.notEnumerableProp, + INTERNAL); +}; +} + +function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = (function() {return this;})(); + var method = callback; + if (typeof method === "string") { + callback = fn; + } + function promisified() { + var _receiver = receiver; + if (receiver === THIS) _receiver = this; + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = typeof method === "string" && this !== defaultThis + ? this[method] : callback; + var fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch(e) { + promise._rejectCallback(maybeWrapAsError(e), true, true); + } + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); + return promise; + } + util.notEnumerableProp(promisified, "__isPromisified__", true); + return promisified; +} + +var makeNodePromisified = canEvaluate + ? makeNodePromisifiedEval + : makeNodePromisifiedClosure; + +function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); + var methods = + promisifiableMethods(obj, suffix, suffixRegexp, filter); + + for (var i = 0, len = methods.length; i < len; i+= 2) { + var key = methods[i]; + var fn = methods[i+1]; + var promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) { + obj[promisifiedKey] = + makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + } else { + var promisified = promisifier(fn, function() { + return makeNodePromisified(key, THIS, key, + fn, suffix, multiArgs); + }); + util.notEnumerableProp(promisified, "__isPromisified__", true); + obj[promisifiedKey] = promisified; + } + } + util.toFastProperties(obj); + return obj; +} + +function promisify(callback, receiver, multiArgs) { + return makeNodePromisified(callback, receiver, undefined, + callback, null, multiArgs); +} + +Promise.promisify = function (fn, options) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + if (isPromisified(fn)) { + return fn; + } + options = Object(options); + var receiver = options.context === undefined ? THIS : options.context; + var multiArgs = !!options.multiArgs; + var ret = promisify(fn, receiver, multiArgs); + util.copyDescriptors(fn, ret, propsFilter); + return ret; +}; + +Promise.promisifyAll = function (target, options) { + if (typeof target !== "function" && typeof target !== "object") { + throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + options = Object(options); + var multiArgs = !!options.multiArgs; + var suffix = options.suffix; + if (typeof suffix !== "string") suffix = defaultSuffix; + var filter = options.filter; + if (typeof filter !== "function") filter = defaultFilter; + var promisifier = options.promisifier; + if (typeof promisifier !== "function") promisifier = makeNodePromisified; + + if (!util.isIdentifier(suffix)) { + throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + + var keys = util.inheritedDataKeys(target); + for (var i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + if (keys[i] !== "constructor" && + util.isClass(value)) { + promisifyAll(value.prototype, suffix, filter, promisifier, + multiArgs); + promisifyAll(value, suffix, filter, promisifier, multiArgs); + } + } + + return promisifyAll(target, suffix, filter, promisifier, multiArgs); +}; +}; + diff --git a/node_modules/bluebird/js/release/props.js b/node_modules/bluebird/js/release/props.js new file mode 100644 index 00000000..6a34aaf5 --- /dev/null +++ b/node_modules/bluebird/js/release/props.js @@ -0,0 +1,118 @@ +"use strict"; +module.exports = function( + Promise, PromiseArray, tryConvertToPromise, apiRejection) { +var util = require("./util"); +var isObject = util.isObject; +var es5 = require("./es5"); +var Es6Map; +if (typeof Map === "function") Es6Map = Map; + +var mapToEntries = (function() { + var index = 0; + var size = 0; + + function extractEntry(value, key) { + this[index] = value; + this[index + size] = key; + index++; + } + + return function mapToEntries(map) { + size = map.size; + index = 0; + var ret = new Array(map.size * 2); + map.forEach(extractEntry, ret); + return ret; + }; +})(); + +var entriesToMap = function(entries) { + var ret = new Es6Map(); + var length = entries.length / 2 | 0; + for (var i = 0; i < length; ++i) { + var key = entries[length + i]; + var value = entries[i]; + ret.set(key, value); + } + return ret; +}; + +function PropertiesPromiseArray(obj) { + var isMap = false; + var entries; + if (Es6Map !== undefined && obj instanceof Es6Map) { + entries = mapToEntries(obj); + isMap = true; + } else { + var keys = es5.keys(obj); + var len = keys.length; + entries = new Array(len * 2); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key]; + entries[i + len] = key; + } + } + this.constructor$(entries); + this._isMap = isMap; + this._init$(undefined, isMap ? -6 : -3); +} +util.inherits(PropertiesPromiseArray, PromiseArray); + +PropertiesPromiseArray.prototype._init = function () {}; + +PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + var val; + if (this._isMap) { + val = entriesToMap(this._values); + } else { + val = {}; + var keyOffset = this.length(); + for (var i = 0, len = this.length(); i < len; ++i) { + val[this._values[i + keyOffset]] = this._values[i]; + } + } + this._resolve(val); + return true; + } + return false; +}; + +PropertiesPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +PropertiesPromiseArray.prototype.getActualLength = function (len) { + return len >> 1; +}; + +function props(promises) { + var ret; + var castValue = tryConvertToPromise(promises); + + if (!isObject(castValue)) { + return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } else if (castValue instanceof Promise) { + ret = castValue._then( + Promise.props, undefined, undefined, undefined, undefined); + } else { + ret = new PropertiesPromiseArray(castValue).promise(); + } + + if (castValue instanceof Promise) { + ret._propagateFrom(castValue, 2); + } + return ret; +} + +Promise.prototype.props = function () { + return props(this); +}; + +Promise.props = function (promises) { + return props(promises); +}; +}; diff --git a/node_modules/bluebird/js/release/queue.js b/node_modules/bluebird/js/release/queue.js new file mode 100644 index 00000000..ffd36fda --- /dev/null +++ b/node_modules/bluebird/js/release/queue.js @@ -0,0 +1,73 @@ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; diff --git a/node_modules/bluebird/js/release/race.js b/node_modules/bluebird/js/release/race.js new file mode 100644 index 00000000..b862f46d --- /dev/null +++ b/node_modules/bluebird/js/release/race.js @@ -0,0 +1,49 @@ +"use strict"; +module.exports = function( + Promise, INTERNAL, tryConvertToPromise, apiRejection) { +var util = require("./util"); + +var raceLater = function (promise) { + return promise.then(function(array) { + return race(array, promise); + }); +}; + +function race(promises, parent) { + var maybePromise = tryConvertToPromise(promises); + + if (maybePromise instanceof Promise) { + return raceLater(maybePromise); + } else { + promises = util.asArray(promises); + if (promises === null) + return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + } + + var ret = new Promise(INTERNAL); + if (parent !== undefined) { + ret._propagateFrom(parent, 3); + } + var fulfill = ret._fulfill; + var reject = ret._reject; + for (var i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; + + if (val === undefined && !(i in promises)) { + continue; + } + + Promise.cast(val)._then(fulfill, reject, undefined, ret, null); + } + return ret; +} + +Promise.race = function (promises) { + return race(promises, undefined); +}; + +Promise.prototype.race = function () { + return race(this, undefined); +}; + +}; diff --git a/node_modules/bluebird/js/release/reduce.js b/node_modules/bluebird/js/release/reduce.js new file mode 100644 index 00000000..26e2b1a9 --- /dev/null +++ b/node_modules/bluebird/js/release/reduce.js @@ -0,0 +1,172 @@ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = require("./util"); +var tryCatch = util.tryCatch; + +function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var domain = getDomain(); + this._fn = domain === null ? fn : util.domainBind(domain, fn); + if (initialValue !== undefined) { + initialValue = Promise.resolve(initialValue); + initialValue._attachCancellationCallback(this); + } + this._initialValue = initialValue; + this._currentCancellable = null; + if(_each === INTERNAL) { + this._eachValues = Array(this._length); + } else if (_each === 0) { + this._eachValues = null; + } else { + this._eachValues = undefined; + } + this._promise._captureStackTrace(); + this._init$(undefined, -5); +} +util.inherits(ReductionPromiseArray, PromiseArray); + +ReductionPromiseArray.prototype._gotAccum = function(accum) { + if (this._eachValues !== undefined && + this._eachValues !== null && + accum !== INTERNAL) { + this._eachValues.push(accum); + } +}; + +ReductionPromiseArray.prototype._eachComplete = function(value) { + if (this._eachValues !== null) { + this._eachValues.push(value); + } + return this._eachValues; +}; + +ReductionPromiseArray.prototype._init = function() {}; + +ReductionPromiseArray.prototype._resolveEmptyArray = function() { + this._resolve(this._eachValues !== undefined ? this._eachValues + : this._initialValue); +}; + +ReductionPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +ReductionPromiseArray.prototype._resolve = function(value) { + this._promise._resolveCallback(value); + this._values = null; +}; + +ReductionPromiseArray.prototype._resultCancelled = function(sender) { + if (sender === this._initialValue) return this._cancel(); + if (this._isResolved()) return; + this._resultCancelled$(); + if (this._currentCancellable instanceof Promise) { + this._currentCancellable.cancel(); + } + if (this._initialValue instanceof Promise) { + this._initialValue.cancel(); + } +}; + +ReductionPromiseArray.prototype._iterate = function (values) { + this._values = values; + var value; + var i; + var length = values.length; + if (this._initialValue !== undefined) { + value = this._initialValue; + i = 0; + } else { + value = Promise.resolve(values[0]); + i = 1; + } + + this._currentCancellable = value; + + if (!value.isRejected()) { + for (; i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + value = value._then(gotAccum, undefined, undefined, ctx, undefined); + } + } + + if (this._eachValues !== undefined) { + value = value + ._then(this._eachComplete, undefined, undefined, this, undefined); + } + value._then(completed, completed, undefined, value, this); +}; + +Promise.prototype.reduce = function (fn, initialValue) { + return reduce(this, fn, initialValue, null); +}; + +Promise.reduce = function (promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); +}; + +function completed(valueOrReason, array) { + if (this.isFulfilled()) { + array._resolve(valueOrReason); + } else { + array._reject(valueOrReason); + } +} + +function reduce(promises, fn, initialValue, _each) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var array = new ReductionPromiseArray(promises, fn, initialValue, _each); + return array.promise(); +} + +function gotAccum(accum) { + this.accum = accum; + this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + if (value instanceof Promise) { + this.array._currentCancellable = value; + return value._then(gotValue, undefined, undefined, this, undefined); + } else { + return gotValue.call(this, value); + } +} + +function gotValue(value) { + var array = this.array; + var promise = array._promise; + var fn = tryCatch(array._fn); + promise._pushContext(); + var ret; + if (array._eachValues !== undefined) { + ret = fn.call(promise._boundValue(), value, this.index, this.length); + } else { + ret = fn.call(promise._boundValue(), + this.accum, value, this.index, this.length); + } + if (ret instanceof Promise) { + array._currentCancellable = ret; + } + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", + promise + ); + return ret; +} +}; diff --git a/node_modules/bluebird/js/release/schedule.js b/node_modules/bluebird/js/release/schedule.js new file mode 100644 index 00000000..f70df9fc --- /dev/null +++ b/node_modules/bluebird/js/release/schedule.js @@ -0,0 +1,61 @@ +"use strict"; +var util = require("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova))) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; diff --git a/node_modules/bluebird/js/release/settle.js b/node_modules/bluebird/js/release/settle.js new file mode 100644 index 00000000..fade3a17 --- /dev/null +++ b/node_modules/bluebird/js/release/settle.js @@ -0,0 +1,43 @@ +"use strict"; +module.exports = + function(Promise, PromiseArray, debug) { +var PromiseInspection = Promise.PromiseInspection; +var util = require("./util"); + +function SettledPromiseArray(values) { + this.constructor$(values); +} +util.inherits(SettledPromiseArray, PromiseArray); + +SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { + this._values[index] = inspection; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { + var ret = new PromiseInspection(); + ret._bitField = 33554432; + ret._settledValueField = value; + return this._promiseResolved(index, ret); +}; +SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection(); + ret._bitField = 16777216; + ret._settledValueField = reason; + return this._promiseResolved(index, ret); +}; + +Promise.settle = function (promises) { + debug.deprecated(".settle()", ".reflect()"); + return new SettledPromiseArray(promises).promise(); +}; + +Promise.prototype.settle = function () { + return Promise.settle(this); +}; +}; diff --git a/node_modules/bluebird/js/release/some.js b/node_modules/bluebird/js/release/some.js new file mode 100644 index 00000000..400d8520 --- /dev/null +++ b/node_modules/bluebird/js/release/some.js @@ -0,0 +1,148 @@ +"use strict"; +module.exports = +function(Promise, PromiseArray, apiRejection) { +var util = require("./util"); +var RangeError = require("./errors").RangeError; +var AggregateError = require("./errors").AggregateError; +var isArray = util.isArray; +var CANCELLATION = {}; + + +function SomePromiseArray(values) { + this.constructor$(values); + this._howMany = 0; + this._unwrap = false; + this._initialized = false; +} +util.inherits(SomePromiseArray, PromiseArray); + +SomePromiseArray.prototype._init = function () { + if (!this._initialized) { + return; + } + if (this._howMany === 0) { + this._resolve([]); + return; + } + this._init$(undefined, -5); + var isArrayResolved = isArray(this._values); + if (!this._isResolved() && + isArrayResolved && + this._howMany > this._canPossiblyFulfill()) { + this._reject(this._getRangeError(this.length())); + } +}; + +SomePromiseArray.prototype.init = function () { + this._initialized = true; + this._init(); +}; + +SomePromiseArray.prototype.setUnwrap = function () { + this._unwrap = true; +}; + +SomePromiseArray.prototype.howMany = function () { + return this._howMany; +}; + +SomePromiseArray.prototype.setHowMany = function (count) { + this._howMany = count; +}; + +SomePromiseArray.prototype._promiseFulfilled = function (value) { + this._addFulfilled(value); + if (this._fulfilled() === this.howMany()) { + this._values.length = this.howMany(); + if (this.howMany() === 1 && this._unwrap) { + this._resolve(this._values[0]); + } else { + this._resolve(this._values); + } + return true; + } + return false; + +}; +SomePromiseArray.prototype._promiseRejected = function (reason) { + this._addRejected(reason); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._promiseCancelled = function () { + if (this._values instanceof Promise || this._values == null) { + return this._cancel(); + } + this._addRejected(CANCELLATION); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._checkOutcome = function() { + if (this.howMany() > this._canPossiblyFulfill()) { + var e = new AggregateError(); + for (var i = this.length(); i < this._values.length; ++i) { + if (this._values[i] !== CANCELLATION) { + e.push(this._values[i]); + } + } + if (e.length > 0) { + this._reject(e); + } else { + this._cancel(); + } + return true; + } + return false; +}; + +SomePromiseArray.prototype._fulfilled = function () { + return this._totalResolved; +}; + +SomePromiseArray.prototype._rejected = function () { + return this._values.length - this.length(); +}; + +SomePromiseArray.prototype._addRejected = function (reason) { + this._values.push(reason); +}; + +SomePromiseArray.prototype._addFulfilled = function (value) { + this._values[this._totalResolved++] = value; +}; + +SomePromiseArray.prototype._canPossiblyFulfill = function () { + return this.length() - this._rejected(); +}; + +SomePromiseArray.prototype._getRangeError = function (count) { + var message = "Input array must contain at least " + + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); +}; + +SomePromiseArray.prototype._resolveEmptyArray = function () { + this._reject(this._getRangeError(0)); +}; + +function some(promises, howMany) { + if ((howMany | 0) !== howMany || howMany < 0) { + return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(howMany); + ret.init(); + return promise; +} + +Promise.some = function (promises, howMany) { + return some(promises, howMany); +}; + +Promise.prototype.some = function (howMany) { + return some(this, howMany); +}; + +Promise._SomePromiseArray = SomePromiseArray; +}; diff --git a/node_modules/bluebird/js/release/synchronous_inspection.js b/node_modules/bluebird/js/release/synchronous_inspection.js new file mode 100644 index 00000000..9c49d2e6 --- /dev/null +++ b/node_modules/bluebird/js/release/synchronous_inspection.js @@ -0,0 +1,103 @@ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; diff --git a/node_modules/bluebird/js/release/thenables.js b/node_modules/bluebird/js/release/thenables.js new file mode 100644 index 00000000..d6ab9aa2 --- /dev/null +++ b/node_modules/bluebird/js/release/thenables.js @@ -0,0 +1,86 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = require("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; diff --git a/node_modules/bluebird/js/release/timers.js b/node_modules/bluebird/js/release/timers.js new file mode 100644 index 00000000..cb8f1f42 --- /dev/null +++ b/node_modules/bluebird/js/release/timers.js @@ -0,0 +1,93 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, debug) { +var util = require("./util"); +var TimeoutError = Promise.TimeoutError; + +function HandleWrapper(handle) { + this.handle = handle; +} + +HandleWrapper.prototype._resultCancelled = function() { + clearTimeout(this.handle); +}; + +var afterValue = function(value) { return delay(+this).thenReturn(value); }; +var delay = Promise.delay = function (ms, value) { + var ret; + var handle; + if (value !== undefined) { + ret = Promise.resolve(value) + ._then(afterValue, null, null, ms, undefined); + if (debug.cancellation() && value instanceof Promise) { + ret._setOnCancel(value); + } + } else { + ret = new Promise(INTERNAL); + handle = setTimeout(function() { ret._fulfill(); }, +ms); + if (debug.cancellation()) { + ret._setOnCancel(new HandleWrapper(handle)); + } + ret._captureStackTrace(); + } + ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.prototype.delay = function (ms) { + return delay(ms, this); +}; + +var afterTimeout = function (promise, message, parent) { + var err; + if (typeof message !== "string") { + if (message instanceof Error) { + err = message; + } else { + err = new TimeoutError("operation timed out"); + } + } else { + err = new TimeoutError(message); + } + util.markAsOriginatingFromRejection(err); + promise._attachExtraTrace(err); + promise._reject(err); + + if (parent != null) { + parent.cancel(); + } +}; + +function successClear(value) { + clearTimeout(this.handle); + return value; +} + +function failureClear(reason) { + clearTimeout(this.handle); + throw reason; +} + +Promise.prototype.timeout = function (ms, message) { + ms = +ms; + var ret, parent; + + var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { + if (ret.isPending()) { + afterTimeout(ret, message, parent); + } + }, ms)); + + if (debug.cancellation()) { + parent = this.then(); + ret = parent._then(successClear, failureClear, + undefined, handleWrapper, undefined); + ret._setOnCancel(handleWrapper); + } else { + ret = this._then(successClear, failureClear, + undefined, handleWrapper, undefined); + } + + return ret; +}; + +}; diff --git a/node_modules/bluebird/js/release/using.js b/node_modules/bluebird/js/release/using.js new file mode 100644 index 00000000..65de531c --- /dev/null +++ b/node_modules/bluebird/js/release/using.js @@ -0,0 +1,226 @@ +"use strict"; +module.exports = function (Promise, apiRejection, tryConvertToPromise, + createContext, INTERNAL, debug) { + var util = require("./util"); + var TypeError = require("./errors").TypeError; + var inherits = require("./util").inherits; + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + var NULL = {}; + + function thrower(e) { + setTimeout(function(){throw e;}, 0); + } + + function castPreservingDisposable(thenable) { + var maybePromise = tryConvertToPromise(thenable); + if (maybePromise !== thenable && + typeof thenable._isDisposable === "function" && + typeof thenable._getDisposer === "function" && + thenable._isDisposable()) { + maybePromise._setDisposable(thenable._getDisposer()); + } + return maybePromise; + } + function dispose(resources, inspection) { + var i = 0; + var len = resources.length; + var ret = new Promise(INTERNAL); + function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = castPreservingDisposable(resources[i++]); + if (maybePromise instanceof Promise && + maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise( + maybePromise._getDisposer().tryDispose(inspection), + resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) { + return maybePromise._then(iterator, thrower, + null, null, null); + } + } + iterator(); + } + iterator(); + return ret; + } + + function Disposer(data, promise, context) { + this._data = data; + this._promise = promise; + this._context = context; + } + + Disposer.prototype.data = function () { + return this._data; + }; + + Disposer.prototype.promise = function () { + return this._promise; + }; + + Disposer.prototype.resource = function () { + if (this.promise().isFulfilled()) { + return this.promise().value(); + } + return NULL; + }; + + Disposer.prototype.tryDispose = function(inspection) { + var resource = this.resource(); + var context = this._context; + if (context !== undefined) context._pushContext(); + var ret = resource !== NULL + ? this.doDispose(resource, inspection) : null; + if (context !== undefined) context._popContext(); + this._promise._unsetDisposable(); + this._data = null; + return ret; + }; + + Disposer.isDisposer = function (d) { + return (d != null && + typeof d.resource === "function" && + typeof d.tryDispose === "function"); + }; + + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + inherits(FunctionDisposer, Disposer); + + FunctionDisposer.prototype.doDispose = function (resource, inspection) { + var fn = this.data(); + return fn.call(resource, resource, inspection); + }; + + function maybeUnwrapDisposer(value) { + if (Disposer.isDisposer(value)) { + this.resources[this.index]._setDisposable(value); + return value.promise(); + } + return value; + } + + function ResourceList(length) { + this.length = length; + this.promise = null; + this[length-1] = null; + } + + ResourceList.prototype._resultCancelled = function() { + var len = this.length; + for (var i = 0; i < len; ++i) { + var item = this[i]; + if (item instanceof Promise) { + item.cancel(); + } + } + }; + + Promise.using = function () { + var len = arguments.length; + if (len < 2) return apiRejection( + "you must pass at least 2 arguments to Promise.using"); + var fn = arguments[len - 1]; + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var input; + var spreadArgs = true; + if (len === 2 && Array.isArray(arguments[0])) { + input = arguments[0]; + len = input.length; + spreadArgs = false; + } else { + input = arguments; + len--; + } + var resources = new ResourceList(len); + for (var i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + resource = resource.promise(); + resource._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + if (maybePromise instanceof Promise) { + resource = + maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, undefined); + } + } + resources[i] = resource; + } + + var reflectedResources = new Array(resources.length); + for (var i = 0; i < reflectedResources.length; ++i) { + reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + } + + var resultPromise = Promise.all(reflectedResources) + .then(function(inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) { + errorObj.e = inspection.error(); + return errorObj; + } else if (!inspection.isFulfilled()) { + resultPromise.cancel(); + return; + } + inspections[i] = inspection.value(); + } + promise._pushContext(); + + fn = tryCatch(fn); + var ret = spreadArgs + ? fn.apply(undefined, inspections) : fn(inspections); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, promiseCreated, "Promise.using", promise); + return ret; + }); + + var promise = resultPromise.lastly(function() { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + }); + resources.promise = promise; + promise._setOnCancel(resources); + return promise; + }; + + Promise.prototype._setDisposable = function (disposer) { + this._bitField = this._bitField | 131072; + this._disposer = disposer; + }; + + Promise.prototype._isDisposable = function () { + return (this._bitField & 131072) > 0; + }; + + Promise.prototype._getDisposer = function () { + return this._disposer; + }; + + Promise.prototype._unsetDisposable = function () { + this._bitField = this._bitField & (~131072); + this._disposer = undefined; + }; + + Promise.prototype.disposer = function (fn) { + if (typeof fn === "function") { + return new FunctionDisposer(fn, this, createContext()); + } + throw new TypeError(); + }; + +}; diff --git a/node_modules/bluebird/js/release/util.js b/node_modules/bluebird/js/release/util.js new file mode 100644 index 00000000..7ac0e2fa --- /dev/null +++ b/node_modules/bluebird/js/release/util.js @@ -0,0 +1,380 @@ +"use strict"; +var es5 = require("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var l = 8; + while (l--) new FakeConstructor(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if ({}.toString.call(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +function domainBind(self, cb) { + return self.bind(cb); +} + +var ret = { + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + hasDevTools: typeof chrome !== "undefined" && chrome && + typeof chrome.loadTimes === "function", + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + domainBind: domainBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version = process.versions.node.split(".").map(Number); + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; diff --git a/node_modules/bluebird/package.json b/node_modules/bluebird/package.json new file mode 100644 index 00000000..836e6990 --- /dev/null +++ b/node_modules/bluebird/package.json @@ -0,0 +1,101 @@ +{ + "_from": "bluebird@3.5.1", + "_id": "bluebird@3.5.1", + "_inBundle": false, + "_integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "_location": "/bluebird", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bluebird@3.5.1", + "name": "bluebird", + "escapedName": "bluebird", + "rawSpec": "3.5.1", + "saveSpec": null, + "fetchSpec": "3.5.1" + }, + "_requiredBy": [ + "/mquery" + ], + "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "_shasum": "d9551f9de98f1fcda1e683d17ee91a0602ee2eb9", + "_spec": "bluebird@3.5.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\mquery", + "author": { + "name": "Petka Antonov", + "email": "petka_antonov@hotmail.com", + "url": "http://github.com/petkaantonov/" + }, + "browser": "./js/browser/bluebird.js", + "bugs": { + "url": "http://github.com/petkaantonov/bluebird/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Full featured Promises/A+ implementation with exceptionally good performance", + "devDependencies": { + "acorn": "~0.6.0", + "baconjs": "^0.7.43", + "bluebird": "^2.9.2", + "body-parser": "^1.10.2", + "browserify": "^8.1.1", + "cli-table": "~0.3.1", + "co": "^4.2.0", + "cross-spawn": "^0.2.3", + "glob": "^4.3.2", + "grunt-saucelabs": "~8.4.1", + "highland": "^2.3.0", + "istanbul": "^0.3.5", + "jshint": "^2.6.0", + "jshint-stylish": "~0.2.0", + "kefir": "^2.4.1", + "mkdirp": "~0.5.0", + "mocha": "~2.1", + "open": "~0.0.5", + "optimist": "~0.6.1", + "rimraf": "~2.2.6", + "rx": "^2.3.25", + "serve-static": "^1.7.1", + "sinon": "~1.7.3", + "uglify-js": "~2.4.16" + }, + "files": [ + "js/browser", + "js/release", + "LICENSE" + ], + "homepage": "https://github.com/petkaantonov/bluebird", + "keywords": [ + "promise", + "performance", + "promises", + "promises-a", + "promises-aplus", + "async", + "await", + "deferred", + "deferreds", + "future", + "flow control", + "dsl", + "fluent interface" + ], + "license": "MIT", + "main": "./js/release/bluebird.js", + "name": "bluebird", + "repository": { + "type": "git", + "url": "git://github.com/petkaantonov/bluebird.git" + }, + "scripts": { + "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js", + "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify", + "istanbul": "istanbul", + "lint": "node scripts/jshint.js", + "prepublish": "npm run generate-browser-core && npm run generate-browser-full", + "test": "node tools/test.js" + }, + "version": "3.5.1", + "webpack": "./js/release/bluebird.js" +} diff --git a/node_modules/blueimp-md5/LICENSE.txt b/node_modules/blueimp-md5/LICENSE.txt new file mode 100644 index 00000000..d6a9d747 --- /dev/null +++ b/node_modules/blueimp-md5/LICENSE.txt @@ -0,0 +1,20 @@ +MIT License + +Copyright © 2011 Sebastian Tschan, https://blueimp.net + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/blueimp-md5/README.md b/node_modules/blueimp-md5/README.md new file mode 100644 index 00000000..d62931b0 --- /dev/null +++ b/node_modules/blueimp-md5/README.md @@ -0,0 +1,134 @@ +# JavaScript MD5 + +## Contents + +- [Demo](https://blueimp.github.io/JavaScript-MD5/) +- [Description](#description) +- [Usage](#usage) + - [Client-side](#client-side) + - [Server-side](#server-side) +- [Requirements](#requirements) +- [API](#api) +- [Tests](#tests) +- [License](#license) + +## Description + +JavaScript [MD5](https://en.wikipedia.org/wiki/MD5) implementation. +Compatible with server-side environments like [Node.js](https://nodejs.org/), +module loaders like [RequireJS](https://requirejs.org/) or +[webpack](https://webpack.js.org/) and all web browsers. + +## Usage + +### Client-side + +Install the **blueimp-md5** package with [NPM](https://www.npmjs.org/): + +```sh +npm install blueimp-md5 +``` + +Include the (minified) JavaScript [MD5](https://en.wikipedia.org/wiki/MD5) +script in your HTML markup: + +```html + +``` + +In your application code, calculate the +([hex](https://en.wikipedia.org/wiki/Hexadecimal)-encoded) +[MD5](https://en.wikipedia.org/wiki/MD5) hash of a string by calling the **md5** +method with the string as argument: + +```js +var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804" +``` + +### Server-side + +The following is an example how to use the JavaScript MD5 module on the +server-side with [Node.js](https://nodejs.org/). + +Install the **blueimp-md5** package with [NPM](https://www.npmjs.org/): + +```sh +npm install blueimp-md5 +``` + +Add a file **server.js** with the following content: + +```js +require('http') + .createServer(function (req, res) { + // The md5 module exports the md5() function: + var md5 = require('./md5'), + // Use the following version if you installed the package with npm: + // var md5 = require("blueimp-md5"), + url = require('url'), + query = url.parse(req.url).query + res.writeHead(200, { 'Content-Type': 'text/plain' }) + // Calculate and print the MD5 hash of the url query: + res.end(md5(query)) + }) + .listen(8080, 'localhost') +console.log('Server running at http://localhost:8080/') +``` + +Run the application with the following command: + +```sh +node server.js +``` + +## Requirements + +The JavaScript MD5 script has zero dependencies. + +## API + +Calculate the ([hex](https://en.wikipedia.org/wiki/Hexadecimal)-encoded) +[MD5](https://en.wikipedia.org/wiki/MD5) hash of a given string value: + +```js +var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804" +``` + +Calculate the ([hex](https://en.wikipedia.org/wiki/Hexadecimal)-encoded) +[HMAC](https://en.wikipedia.org/wiki/HMAC)-MD5 hash of a given string value and +key: + +```js +var hash = md5('value', 'key') // "01433efd5f16327ea4b31144572c67f6" +``` + +Calculate the raw [MD5](https://en.wikipedia.org/wiki/MD5) hash of a given +string value: + +```js +var hash = md5('value', null, true) +``` + +Calculate the raw [HMAC](https://en.wikipedia.org/wiki/HMAC)-MD5 hash of a given +string value and key: + +```js +var hash = md5('value', 'key', true) +``` + +## Tests + +The JavaScript MD5 project comes with +[Unit Tests](https://en.wikipedia.org/wiki/Unit_testing). +There are two different ways to run the tests: + +- Open test/index.html in your browser or +- run `npm test` in the Terminal in the root path of the repository package. + +The first one tests the browser integration, the second one the +[Node.js](https://nodejs.org/) integration. + +## License + +The JavaScript MD5 script is released under the +[MIT license](https://opensource.org/licenses/MIT). diff --git a/node_modules/blueimp-md5/js/md5.js b/node_modules/blueimp-md5/js/md5.js new file mode 100644 index 00000000..67cebfcd --- /dev/null +++ b/node_modules/blueimp-md5/js/md5.js @@ -0,0 +1,402 @@ +/* + * 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. + */ + +/* global define */ + +/* eslint-disable strict */ + +;(function ($) { + 'use strict' + + /** + * Add integers, wrapping at 2^32. + * This uses 16-bit operations internally to work around bugs in interpreters. + * + * @param {number} x First integer + * @param {number} y Second integer + * @returns {number} Sum + */ + 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. + * + * @param {number} num 32-bit number + * @param {number} cnt Rotation count + * @returns {number} Rotated number + */ + function bitRotateLeft(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)) + } + + /** + * Basic operation the algorithm uses. + * + * @param {number} q q + * @param {number} a a + * @param {number} b b + * @param {number} x x + * @param {number} s s + * @param {number} t t + * @returns {number} Result + */ + function md5cmn(q, a, b, x, s, t) { + return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b) + } + /** + * Basic operation the algorithm uses. + * + * @param {number} a a + * @param {number} b b + * @param {number} c c + * @param {number} d d + * @param {number} x x + * @param {number} s s + * @param {number} t t + * @returns {number} Result + */ + function md5ff(a, b, c, d, x, s, t) { + return md5cmn((b & c) | (~b & d), a, b, x, s, t) + } + /** + * Basic operation the algorithm uses. + * + * @param {number} a a + * @param {number} b b + * @param {number} c c + * @param {number} d d + * @param {number} x x + * @param {number} s s + * @param {number} t t + * @returns {number} Result + */ + function md5gg(a, b, c, d, x, s, t) { + return md5cmn((b & d) | (c & ~d), a, b, x, s, t) + } + /** + * Basic operation the algorithm uses. + * + * @param {number} a a + * @param {number} b b + * @param {number} c c + * @param {number} d d + * @param {number} x x + * @param {number} s s + * @param {number} t t + * @returns {number} Result + */ + function md5hh(a, b, c, d, x, s, t) { + return md5cmn(b ^ c ^ d, a, b, x, s, t) + } + /** + * Basic operation the algorithm uses. + * + * @param {number} a a + * @param {number} b b + * @param {number} c c + * @param {number} d d + * @param {number} x x + * @param {number} s s + * @param {number} t t + * @returns {number} Result + */ + function md5ii(a, b, c, d, x, s, t) { + return md5cmn(c ^ (b | ~d), a, b, x, s, t) + } + + /** + * Calculate the MD5 of an array of little-endian words, and a bit length. + * + * @param {Array} x Array of little-endian words + * @param {number} len Bit length + * @returns {Array} MD5 Array + */ + function binlMD5(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 of little-endian words to a string + * + * @param {Array} input MD5 Array + * @returns {string} MD5 string + */ + function binl2rstr(input) { + var i + var output = '' + var length32 = input.length * 32 + for (i = 0; i < length32; i += 8) { + output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff) + } + return output + } + + /** + * Convert a raw string to an array of little-endian words + * Characters >255 have their high-byte silently ignored. + * + * @param {string} input Raw input string + * @returns {Array} Array of little-endian words + */ + function rstr2binl(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.charCodeAt(i / 8) & 0xff) << i % 32 + } + return output + } + + /** + * Calculate the MD5 of a raw string + * + * @param {string} s Input string + * @returns {string} Raw MD5 string + */ + function rstrMD5(s) { + return binl2rstr(binlMD5(rstr2binl(s), s.length * 8)) + } + + /** + * Calculates the HMAC-MD5 of a key and some data (raw strings) + * + * @param {string} key HMAC key + * @param {string} data Raw input string + * @returns {string} Raw MD5 string + */ + function rstrHMACMD5(key, data) { + var i + var bkey = rstr2binl(key) + var ipad = [] + var opad = [] + var hash + ipad[15] = opad[15] = undefined + if (bkey.length > 16) { + bkey = binlMD5(bkey, key.length * 8) + } + for (i = 0; i < 16; i += 1) { + ipad[i] = bkey[i] ^ 0x36363636 + opad[i] = bkey[i] ^ 0x5c5c5c5c + } + hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8) + return binl2rstr(binlMD5(opad.concat(hash), 512 + 128)) + } + + /** + * Convert a raw string to a hex string + * + * @param {string} input Raw input string + * @returns {string} Hex encoded string + */ + function rstr2hex(input) { + var hexTab = '0123456789abcdef' + var output = '' + var x + var i + for (i = 0; i < input.length; i += 1) { + x = input.charCodeAt(i) + output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f) + } + return output + } + + /** + * Encode a string as UTF-8 + * + * @param {string} input Input string + * @returns {string} UTF8 string + */ + function str2rstrUTF8(input) { + return unescape(encodeURIComponent(input)) + } + + /** + * Encodes input string as raw MD5 string + * + * @param {string} s Input string + * @returns {string} Raw MD5 string + */ + function rawMD5(s) { + return rstrMD5(str2rstrUTF8(s)) + } + /** + * Encodes input string as Hex encoded string + * + * @param {string} s Input string + * @returns {string} Hex encoded string + */ + function hexMD5(s) { + return rstr2hex(rawMD5(s)) + } + /** + * Calculates the raw HMAC-MD5 for the given key and data + * + * @param {string} k HMAC key + * @param {string} d Input string + * @returns {string} Raw MD5 string + */ + function rawHMACMD5(k, d) { + return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d)) + } + /** + * Calculates the Hex encoded HMAC-MD5 for the given key and data + * + * @param {string} k HMAC key + * @param {string} d Input string + * @returns {string} Raw MD5 string + */ + function hexHMACMD5(k, d) { + return rstr2hex(rawHMACMD5(k, d)) + } + + /** + * Calculates MD5 value for a given string. + * If a key is provided, calculates the HMAC-MD5 value. + * Returns a Hex encoded string unless the raw argument is given. + * + * @param {string} string Input string + * @param {string} [key] HMAC key + * @param {boolean} [raw] Raw output switch + * @returns {string} MD5 output + */ + function md5(string, key, raw) { + if (!key) { + if (!raw) { + return hexMD5(string) + } + return rawMD5(string) + } + if (!raw) { + return hexHMACMD5(key, string) + } + return rawHMACMD5(key, string) + } + + if (typeof define === 'function' && define.amd) { + define(function () { + return md5 + }) + } else if (typeof module === 'object' && module.exports) { + module.exports = md5 + } else { + $.md5 = md5 + } +})(this) diff --git a/node_modules/blueimp-md5/js/md5.min.js b/node_modules/blueimp-md5/js/md5.min.js new file mode 100644 index 00000000..1456fcce --- /dev/null +++ b/node_modules/blueimp-md5/js/md5.min.js @@ -0,0 +1,2 @@ +!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d((c=d(d(t,n),d(e,u)))<<(f=o)|c>>>32-f,r);var c,f}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function i(n,t){var r,e,o,u;n[t>>5]|=128<>>9<<4)]=t;for(var c=1732584193,f=-271733879,i=-1732584194,a=271733878,h=0;h>5]>>>e%32&255);return t}function h(n){var t=[];for(t[(n.length>>2)-1]=void 0,e=0;e>5]|=(255&n.charCodeAt(e/8))<>>4&15)+r.charAt(15&t);return e}function r(n){return unescape(encodeURIComponent(n))}function o(n){return a(i(h(t=r(n)),8*t.length));var t}function u(n,t){return function(n,t){var r,e,o=h(n),u=[],c=[];for(u[15]=c[15]=void 0,16= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git a/node_modules/body-parser/LICENSE b/node_modules/body-parser/LICENSE new file mode 100644 index 00000000..386b7b69 --- /dev/null +++ b/node_modules/body-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/body-parser/README.md b/node_modules/body-parser/README.md new file mode 100644 index 00000000..aba6297a --- /dev/null +++ b/node_modules/body-parser/README.md @@ -0,0 +1,443 @@ +# body-parser + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + + + +```js +var bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option, or an empty +object (`{}`) if there was no body to parse, the `Content-Type` was not matched, +or an error occurred. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip` and +`deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The `extended` option allows to choose between parsing the URL-encoded data +with the `querystring` library (when `false`) or the `qs` library (when +`true`). The "extended" syntax allows for rich objects and arrays to be +encoded into the URL-encoded format, allowing for a JSON-like experience +with URL-encoded. For more information, please +[see the qs library](https://www.npmjs.org/package/qs#readme). + +Defaults to `true`, but using the default has been deprecated. Please +research into the difference between `qs` and `querystring` and choose the +appropriate setting. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +## Errors + +The middlewares provided by this module create errors depending on the error +condition during parsing. The errors will typically have a `status`/`statusCode` +property that contains the suggested HTTP response code, an `expose` property +to determine if the `message` property should be displayed to the client, a +`type` property to determine the type of error without matching against the +`message`, and a `body` property containing the read body, if available. + +The following are the common errors emitted, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(JSON.stringify(req.body, null, 2)) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// create application/json parser +var jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +var urlencodedParser = bodyParser.urlencoded({ extended: false }) + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/body-parser.svg +[npm-url]: https://npmjs.org/package/body-parser +[travis-image]: https://img.shields.io/travis/expressjs/body-parser/master.svg +[travis-url]: https://travis-ci.org/expressjs/body-parser +[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg +[downloads-url]: https://npmjs.org/package/body-parser diff --git a/node_modules/body-parser/index.js b/node_modules/body-parser/index.js new file mode 100644 index 00000000..93c3a1ff --- /dev/null +++ b/node_modules/body-parser/index.js @@ -0,0 +1,157 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('body-parser') + +/** + * Cache of loaded parsers. + * @private + */ + +var parsers = Object.create(null) + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = deprecate.function(bodyParser, + 'bodyParser: use individual json/urlencoded middlewares') + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: createParserGetter('json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: createParserGetter('raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: createParserGetter('text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: createParserGetter('urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser (options) { + var opts = {} + + // exclude type option + if (options) { + for (var prop in options) { + if (prop !== 'type') { + opts[prop] = options[prop] + } + } + } + + var _urlencoded = exports.urlencoded(opts) + var _json = exports.json(opts) + + return function bodyParser (req, res, next) { + _json(req, res, function (err) { + if (err) return next(err) + _urlencoded(req, res, next) + }) + } +} + +/** + * Create a getter for loading a parser. + * @private + */ + +function createParserGetter (name) { + return function get () { + return loadParser(name) + } +} + +/** + * Load a parser module. + * @private + */ + +function loadParser (parserName) { + var parser = parsers[parserName] + + if (parser !== undefined) { + return parser + } + + // this uses a switch for static require analysis + switch (parserName) { + case 'json': + parser = require('./lib/types/json') + break + case 'raw': + parser = require('./lib/types/raw') + break + case 'text': + parser = require('./lib/types/text') + break + case 'urlencoded': + parser = require('./lib/types/urlencoded') + break + } + + // store to prevent invoking require() + return (parsers[parserName] = parser) +} diff --git a/node_modules/body-parser/lib/read.js b/node_modules/body-parser/lib/read.js new file mode 100644 index 00000000..c1026095 --- /dev/null +++ b/node_modules/body-parser/lib/read.js @@ -0,0 +1,181 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var zlib = require('zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // flag as parsed + req._body = true + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // read off entire request + stream.resume() + onFinished(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + var stream + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + switch (encoding) { + case 'deflate': + stream = zlib.createInflate() + debug('inflate body') + req.pipe(stream) + break + case 'gzip': + stream = zlib.createGunzip() + debug('gunzip body') + req.pipe(stream) + break + case 'identity': + stream = req + stream.length = length + break + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + return stream +} diff --git a/node_modules/body-parser/lib/types/json.js b/node_modules/body-parser/lib/types/json.js new file mode 100644 index 00000000..2971dc14 --- /dev/null +++ b/node_modules/body-parser/lib/types/json.js @@ -0,0 +1,230 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var opts = options || {} + + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var inflate = opts.inflate !== false + var reviver = opts.reviver + var strict = opts.strict !== false + var type = opts.type || 'application/json' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.substr(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = str.substring(0, index) + '#' + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace('#', char), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + return FIRST_CHAR_REGEXP.exec(str)[1] +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/raw.js b/node_modules/body-parser/lib/types/raw.js new file mode 100644 index 00000000..f5d1b674 --- /dev/null +++ b/node_modules/body-parser/lib/types/raw.js @@ -0,0 +1,101 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var debug = require('debug')('body-parser:raw') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var opts = options || {} + + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/octet-stream' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/text.js b/node_modules/body-parser/lib/types/text.js new file mode 100644 index 00000000..083a0090 --- /dev/null +++ b/node_modules/body-parser/lib/types/text.js @@ -0,0 +1,121 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var debug = require('debug')('body-parser:text') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var opts = options || {} + + var defaultCharset = opts.defaultCharset || 'utf-8' + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'text/plain' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/urlencoded.js b/node_modules/body-parser/lib/types/urlencoded.js new file mode 100644 index 00000000..b2ca8f16 --- /dev/null +++ b/node_modules/body-parser/lib/types/urlencoded.js @@ -0,0 +1,284 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var deprecate = require('depd')('body-parser') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Cache of parser modules. + */ + +var parsers = Object.create(null) + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var opts = options || {} + + // notice because option default will flip in next major + if (opts.extended === undefined) { + deprecate('undefined extended: provide extended option') + } + + var extended = opts.extended !== false + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/x-www-form-urlencoded' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate query parser + var queryparse = extended + ? extendedparser(opts) + : simpleparser(opts) + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + return body.length + ? queryparse(body) + : {} + } + + return function urlencodedParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || 'utf-8' + if (charset !== 'utf-8') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + debug: debug, + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function extendedparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('qs') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = Math.max(100, paramCount) + + debug('parse extended urlencoding') + return parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: Infinity, + parameterLimit: parameterLimit + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var count = 0 + var index = 0 + + while ((index = body.indexOf('&', index)) !== -1) { + count++ + index++ + + if (count === limit) { + return undefined + } + } + + return count +} + +/** + * Get parser for module name dynamically. + * + * @param {string} name + * @return {function} + * @api private + */ + +function parser (name) { + var mod = parsers[name] + + if (mod !== undefined) { + return mod.parse + } + + // this uses a switch for static require analysis + switch (name) { + case 'qs': + mod = require('qs') + break + case 'querystring': + mod = require('querystring') + break + } + + // store to prevent invoking require() + parsers[name] = mod + + return mod.parse +} + +/** + * Get the simple query parser. + * + * @param {object} options + */ + +function simpleparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('querystring') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + debug('parse urlencoding') + return parse(body, undefined, undefined, { maxKeys: parameterLimit }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json new file mode 100644 index 00000000..969d7427 --- /dev/null +++ b/node_modules/body-parser/package.json @@ -0,0 +1,91 @@ +{ + "_from": "body-parser@1.19.0", + "_id": "body-parser@1.19.0", + "_inBundle": false, + "_integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "_location": "/body-parser", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "body-parser@1.19.0", + "name": "body-parser", + "escapedName": "body-parser", + "rawSpec": "1.19.0", + "saveSpec": null, + "fetchSpec": "1.19.0" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "_shasum": "96b2709e57c9c4e09a6fd66a8fd979844f69f08a", + "_spec": "body-parser@1.19.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "bugs": { + "url": "https://github.com/expressjs/body-parser/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "deprecated": false, + "description": "Node.js body parsing middleware", + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "methods": "1.1.2", + "mocha": "6.1.4", + "safe-buffer": "5.1.2", + "supertest": "4.0.2" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/expressjs/body-parser#readme", + "license": "MIT", + "name": "body-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/body-parser.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/" + }, + "version": "1.19.0" +} diff --git a/node_modules/boxen/index.d.ts b/node_modules/boxen/index.d.ts new file mode 100644 index 00000000..60c13100 --- /dev/null +++ b/node_modules/boxen/index.d.ts @@ -0,0 +1,175 @@ +import {LiteralUnion} from 'type-fest'; +import cliBoxes, {BoxStyle} from 'cli-boxes'; + +declare namespace boxen { + /** + Characters used for custom border. + + @example + ``` + // affffb + // e e + // dffffc + + const border: CustomBorderStyle = { + topLeft: 'a', + topRight: 'b', + bottomRight: 'c', + bottomLeft: 'd', + vertical: 'e', + horizontal: 'f' + }; + ``` + */ + interface CustomBorderStyle extends BoxStyle {} + + /** + Spacing used for `padding` and `margin`. + */ + interface Spacing { + readonly top: number; + readonly right: number; + readonly bottom: number; + readonly left: number; + } + + interface Options { + /** + Color of the box border. + */ + readonly borderColor?: LiteralUnion< + | 'black' + | 'red' + | 'green' + | 'yellow' + | 'blue' + | 'magenta' + | 'cyan' + | 'white' + | 'gray' + | 'grey' + | 'blackBright' + | 'redBright' + | 'greenBright' + | 'yellowBright' + | 'blueBright' + | 'magentaBright' + | 'cyanBright' + | 'whiteBright', + string + >; + + /** + Style of the box border. + + @default BorderStyle.Single + */ + readonly borderStyle?: BorderStyle | CustomBorderStyle; + + /** + Reduce opacity of the border. + + @default false + */ + readonly dimBorder?: boolean; + + /** + Space between the text and box border. + + @default 0 + */ + readonly padding?: number | Spacing; + + /** + Space around the box. + + @default 0 + */ + readonly margin?: number | Spacing; + + /** + Float the box on the available terminal screen space. + + @default 'left' + */ + readonly float?: 'left' | 'right' | 'center'; + + /** + Color of the background. + */ + readonly backgroundColor?: LiteralUnion< + | 'black' + | 'red' + | 'green' + | 'yellow' + | 'blue' + | 'magenta' + | 'cyan' + | 'white' + | 'blackBright' + | 'redBright' + | 'greenBright' + | 'yellowBright' + | 'blueBright' + | 'magentaBright' + | 'cyanBright' + | 'whiteBright', + string + >; + + /** + Align the text in the box based on the widest line. + + @default 'left' + */ + readonly align?: 'left' | 'right' | 'center'; + } +} + +declare const enum BorderStyle { + Single = 'single', + Double = 'double', + Round = 'round', + Bold = 'bold', + SingleDouble = 'singleDouble', + DoubleSingle = 'doubleSingle', + Classic = 'classic' +} + +declare const boxen: { + /** + Creates a box in the terminal. + + @param text - The text inside the box. + @returns The box. + + @example + ``` + import boxen = require('boxen'); + + console.log(boxen('unicorn', {padding: 1})); + // ┌─────────────┐ + // │ │ + // │ unicorn │ + // │ │ + // └─────────────┘ + + console.log(boxen('unicorn', {padding: 1, margin: 1, borderStyle: 'double'})); + // + // ╔═════════════╗ + // ║ ║ + // ║ unicorn ║ + // ║ ║ + // ╚═════════════╝ + // + ``` + */ + (text: string, options?: boxen.Options): string; + + /** + Border styles from [`cli-boxes`](https://github.com/sindresorhus/cli-boxes). + */ + BorderStyle: typeof BorderStyle; +}; + +export = boxen; diff --git a/node_modules/boxen/index.js b/node_modules/boxen/index.js new file mode 100644 index 00000000..a54524cf --- /dev/null +++ b/node_modules/boxen/index.js @@ -0,0 +1,139 @@ +'use strict'; +const stringWidth = require('string-width'); +const chalk = require('chalk'); +const widestLine = require('widest-line'); +const cliBoxes = require('cli-boxes'); +const camelCase = require('camelcase'); +const ansiAlign = require('ansi-align'); +const termSize = require('term-size'); + +const getObject = detail => { + let object; + + if (typeof detail === 'number') { + object = { + top: detail, + right: detail * 3, + bottom: detail, + left: detail * 3 + }; + } else { + object = { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...detail + }; + } + + return object; +}; + +const getBorderChars = borderStyle => { + const sides = [ + 'topLeft', + 'topRight', + 'bottomRight', + 'bottomLeft', + 'vertical', + 'horizontal' + ]; + + let chararacters; + + if (typeof borderStyle === 'string') { + chararacters = cliBoxes[borderStyle]; + + if (!chararacters) { + throw new TypeError(`Invalid border style: ${borderStyle}`); + } + } else { + for (const side of sides) { + if (!borderStyle[side] || typeof borderStyle[side] !== 'string') { + throw new TypeError(`Invalid border style: ${side}`); + } + } + + chararacters = borderStyle; + } + + return chararacters; +}; + +const isHex = color => color.match(/^#[0-f]{3}(?:[0-f]{3})?$/i); +const isColorValid = color => typeof color === 'string' && ((chalk[color]) || isHex(color)); +const getColorFn = color => isHex(color) ? chalk.hex(color) : chalk[color]; +const getBGColorFn = color => isHex(color) ? chalk.bgHex(color) : chalk[camelCase(['bg', color])]; + +module.exports = (text, options) => { + options = { + padding: 0, + borderStyle: 'single', + dimBorder: false, + align: 'left', + float: 'left', + ...options + }; + + if (options.borderColor && !isColorValid(options.borderColor)) { + throw new Error(`${options.borderColor} is not a valid borderColor`); + } + + if (options.backgroundColor && !isColorValid(options.backgroundColor)) { + throw new Error(`${options.backgroundColor} is not a valid backgroundColor`); + } + + const chars = getBorderChars(options.borderStyle); + const padding = getObject(options.padding); + const margin = getObject(options.margin); + + const colorizeBorder = border => { + const newBorder = options.borderColor ? getColorFn(options.borderColor)(border) : border; + return options.dimBorder ? chalk.dim(newBorder) : newBorder; + }; + + const colorizeContent = content => options.backgroundColor ? getBGColorFn(options.backgroundColor)(content) : content; + + text = ansiAlign(text, {align: options.align}); + + const NL = '\n'; + const PAD = ' '; + + let lines = text.split(NL); + + if (padding.top > 0) { + lines = new Array(padding.top).fill('').concat(lines); + } + + if (padding.bottom > 0) { + lines = lines.concat(new Array(padding.bottom).fill('')); + } + + const contentWidth = widestLine(text) + padding.left + padding.right; + const paddingLeft = PAD.repeat(padding.left); + const {columns} = termSize(); + let marginLeft = PAD.repeat(margin.left); + + if (options.float === 'center') { + const padWidth = Math.max((columns - contentWidth) / 2, 0); + marginLeft = PAD.repeat(padWidth); + } else if (options.float === 'right') { + const padWidth = Math.max(columns - contentWidth - margin.right - 2, 0); + marginLeft = PAD.repeat(padWidth); + } + + const horizontal = chars.horizontal.repeat(contentWidth); + const top = colorizeBorder(NL.repeat(margin.top) + marginLeft + chars.topLeft + horizontal + chars.topRight); + const bottom = colorizeBorder(marginLeft + chars.bottomLeft + horizontal + chars.bottomRight + NL.repeat(margin.bottom)); + const side = colorizeBorder(chars.vertical); + + const middle = lines.map(line => { + const paddingRight = PAD.repeat(contentWidth - stringWidth(line) - padding.left); + return marginLeft + side + colorizeContent(paddingLeft + line + paddingRight) + side; + }).join(NL); + + return top + NL + middle + NL + bottom; +}; + +module.exports._borderStyles = cliBoxes; diff --git a/node_modules/boxen/license b/node_modules/boxen/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/boxen/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/boxen/node_modules/chalk/index.d.ts b/node_modules/boxen/node_modules/chalk/index.d.ts new file mode 100644 index 00000000..7e22c45e --- /dev/null +++ b/node_modules/boxen/node_modules/chalk/index.d.ts @@ -0,0 +1,411 @@ +declare const enum LevelEnum { + /** + All colors disabled. + */ + None = 0, + + /** + Basic 16 colors support. + */ + Basic = 1, + + /** + ANSI 256 colors support. + */ + Ansi256 = 2, + + /** + Truecolor 16 million colors support. + */ + TrueColor = 3 +} + +/** +Basic foreground colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type ForegroundColor = + | 'black' + | 'red' + | 'green' + | 'yellow' + | 'blue' + | 'magenta' + | 'cyan' + | 'white' + | 'gray' + | 'grey' + | 'blackBright' + | 'redBright' + | 'greenBright' + | 'yellowBright' + | 'blueBright' + | 'magentaBright' + | 'cyanBright' + | 'whiteBright'; + +/** +Basic background colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type BackgroundColor = + | 'bgBlack' + | 'bgRed' + | 'bgGreen' + | 'bgYellow' + | 'bgBlue' + | 'bgMagenta' + | 'bgCyan' + | 'bgWhite' + | 'bgGray' + | 'bgGrey' + | 'bgBlackBright' + | 'bgRedBright' + | 'bgGreenBright' + | 'bgYellowBright' + | 'bgBlueBright' + | 'bgMagentaBright' + | 'bgCyanBright' + | 'bgWhiteBright'; + +/** +Basic colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type Color = ForegroundColor | BackgroundColor; + +declare type Modifiers = + | 'reset' + | 'bold' + | 'dim' + | 'italic' + | 'underline' + | 'inverse' + | 'hidden' + | 'strikethrough' + | 'visible'; + +declare namespace chalk { + type Level = LevelEnum; + + interface Options { + /** + Specify the color support for Chalk. + By default, color support is automatically detected based on the environment. + */ + level?: Level; + } + + interface Instance { + /** + Return a new Chalk instance. + */ + new (options?: Options): Chalk; + } + + /** + Detect whether the terminal supports color. + */ + interface ColorSupport { + /** + The color level used by Chalk. + */ + level: Level; + + /** + Return whether Chalk supports basic 16 colors. + */ + hasBasic: boolean; + + /** + Return whether Chalk supports ANSI 256 colors. + */ + has256: boolean; + + /** + Return whether Chalk supports Truecolor 16 million colors. + */ + has16m: boolean; + } + + interface ChalkFunction { + /** + Use a template string. + + @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) + + @example + ``` + import chalk = require('chalk'); + + log(chalk` + CPU: {red ${cpu.totalPercent}%} + RAM: {green ${ram.used / ram.total * 100}%} + DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} + `); + ``` + */ + (text: TemplateStringsArray, ...placeholders: unknown[]): string; + + (...text: unknown[]): string; + } + + interface Chalk extends ChalkFunction { + /** + Return a new Chalk instance. + */ + Instance: Instance; + + /** + The color support for Chalk. + By default, color support is automatically detected based on the environment. + */ + level: Level; + + /** + Use HEX value to set text color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.hex('#DEADED'); + ``` + */ + hex(color: string): Chalk; + + /** + Use keyword color value to set text color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.keyword('orange'); + ``` + */ + keyword(color: string): Chalk; + + /** + Use RGB values to set text color. + */ + rgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set text color. + */ + hsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set text color. + */ + hsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set text color. + */ + hwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + */ + ansi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(index: number): Chalk; + + /** + Use HEX value to set background color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgHex('#DEADED'); + ``` + */ + bgHex(color: string): Chalk; + + /** + Use keyword color value to set background color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgKeyword('orange'); + ``` + */ + bgKeyword(color: string): Chalk; + + /** + Use RGB values to set background color. + */ + bgRgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set background color. + */ + bgHsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set background color. + */ + bgHsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set background color. + */ + bgHwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + Use the foreground code, not the background code (for example, not 41, nor 101). + */ + bgAnsi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. + */ + bgAnsi256(index: number): Chalk; + + /** + Modifier: Resets the current color chain. + */ + readonly reset: Chalk; + + /** + Modifier: Make text bold. + */ + readonly bold: Chalk; + + /** + Modifier: Emitting only a small amount of light. + */ + readonly dim: Chalk; + + /** + Modifier: Make text italic. (Not widely supported) + */ + readonly italic: Chalk; + + /** + Modifier: Make text underline. (Not widely supported) + */ + readonly underline: Chalk; + + /** + Modifier: Inverse background and foreground colors. + */ + readonly inverse: Chalk; + + /** + Modifier: Prints the text, but makes it invisible. + */ + readonly hidden: Chalk; + + /** + Modifier: Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: Chalk; + + /** + Modifier: Prints the text only when Chalk has a color support level > 0. + Can be useful for things that are purely cosmetic. + */ + readonly visible: Chalk; + + readonly black: Chalk; + readonly red: Chalk; + readonly green: Chalk; + readonly yellow: Chalk; + readonly blue: Chalk; + readonly magenta: Chalk; + readonly cyan: Chalk; + readonly white: Chalk; + + /* + Alias for `blackBright`. + */ + readonly gray: Chalk; + + /* + Alias for `blackBright`. + */ + readonly grey: Chalk; + + readonly blackBright: Chalk; + readonly redBright: Chalk; + readonly greenBright: Chalk; + readonly yellowBright: Chalk; + readonly blueBright: Chalk; + readonly magentaBright: Chalk; + readonly cyanBright: Chalk; + readonly whiteBright: Chalk; + + readonly bgBlack: Chalk; + readonly bgRed: Chalk; + readonly bgGreen: Chalk; + readonly bgYellow: Chalk; + readonly bgBlue: Chalk; + readonly bgMagenta: Chalk; + readonly bgCyan: Chalk; + readonly bgWhite: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGray: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGrey: Chalk; + + readonly bgBlackBright: Chalk; + readonly bgRedBright: Chalk; + readonly bgGreenBright: Chalk; + readonly bgYellowBright: Chalk; + readonly bgBlueBright: Chalk; + readonly bgMagentaBright: Chalk; + readonly bgCyanBright: Chalk; + readonly bgWhiteBright: Chalk; + } +} + +/** +Main Chalk object that allows to chain styles together. +Call the last one as a method with a string argument. +Order doesn't matter, and later styles take precedent in case of a conflict. +This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. +*/ +declare const chalk: chalk.Chalk & chalk.ChalkFunction & { + supportsColor: chalk.ColorSupport | false; + Level: typeof LevelEnum; + Color: Color; + ForegroundColor: ForegroundColor; + BackgroundColor: BackgroundColor; + Modifiers: Modifiers; + stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; +}; + +export = chalk; diff --git a/node_modules/boxen/node_modules/chalk/license b/node_modules/boxen/node_modules/chalk/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/boxen/node_modules/chalk/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/boxen/node_modules/chalk/package.json b/node_modules/boxen/node_modules/chalk/package.json new file mode 100644 index 00000000..e7741987 --- /dev/null +++ b/node_modules/boxen/node_modules/chalk/package.json @@ -0,0 +1,95 @@ +{ + "_from": "chalk@^3.0.0", + "_id": "chalk@3.0.0", + "_inBundle": false, + "_integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "_location": "/boxen/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "chalk@^3.0.0", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/boxen" + ], + "_resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "_shasum": "3f73c2bf526591f574cc492c51e2456349f844e4", + "_spec": "chalk@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\boxen", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "bundleDependencies": false, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "deprecated": false, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "^2.4.0", + "coveralls": "^3.0.7", + "execa": "^3.2.0", + "import-fresh": "^3.1.0", + "matcha": "^0.7.0", + "nyc": "^14.1.1", + "resolve-from": "^5.0.0", + "tsd": "^0.7.4", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "source", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "main": "source", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "test": "xo && nyc ava && tsd" + }, + "version": "3.0.0", + "xo": { + "rules": { + "unicorn/prefer-string-slice": "off", + "unicorn/prefer-includes": "off" + } + } +} diff --git a/node_modules/boxen/node_modules/chalk/readme.md b/node_modules/boxen/node_modules/chalk/readme.md new file mode 100644 index 00000000..877cb93b --- /dev/null +++ b/node_modules/boxen/node_modules/chalk/readme.md @@ -0,0 +1,304 @@ +

+
+
+ Chalk +
+
+
+

+ +> Terminal string styling done right + +[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) + + + + +## Highlights + +- Expressive API +- Highly performant +- Ability to nest styles +- [256/Truecolor color support](#256-and-truecolor-color-support) +- Auto-detects color support +- Doesn't extend `String.prototype` +- Clean and focused +- Actively maintained +- [Used by ~46,000 packages](https://www.npmjs.com/browse/depended/chalk) as of October 1, 2019 + + +## Install + +```console +$ npm install chalk +``` + + +## Usage + +```js +const chalk = require('chalk'); + +console.log(chalk.blue('Hello world!')); +``` + +Chalk comes with an easy to use composable API where you just chain and nest the styles you want. + +```js +const chalk = require('chalk'); +const log = console.log; + +// Combine styled and normal strings +log(chalk.blue('Hello') + ' World' + chalk.red('!')); + +// Compose multiple styles using the chainable API +log(chalk.blue.bgRed.bold('Hello world!')); + +// Pass in multiple arguments +log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); + +// Nest styles +log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); + +// Nest styles of the same type even (color, underline, background) +log(chalk.green( + 'I am a green line ' + + chalk.blue.underline.bold('with a blue substring') + + ' that becomes green again!' +)); + +// ES2015 template literal +log(` +CPU: ${chalk.red('90%')} +RAM: ${chalk.green('40%')} +DISK: ${chalk.yellow('70%')} +`); + +// ES2015 tagged template literal +log(chalk` +CPU: {red ${cpu.totalPercent}%} +RAM: {green ${ram.used / ram.total * 100}%} +DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} +`); + +// Use RGB colors in terminal emulators that support it. +log(chalk.keyword('orange')('Yay for orange colored text!')); +log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); +log(chalk.hex('#DEADED').bold('Bold gray!')); +``` + +Easily define your own themes: + +```js +const chalk = require('chalk'); + +const error = chalk.bold.red; +const warning = chalk.keyword('orange'); + +console.log(error('Error!')); +console.log(warning('Warning!')); +``` + +Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): + +```js +const name = 'Sindre'; +console.log(chalk.green('Hello %s'), name); +//=> 'Hello Sindre' +``` + + +## API + +### chalk.` +Browserstack-logo-white + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/node_modules/psl/data/rules.json b/node_modules/psl/data/rules.json new file mode 100644 index 00000000..e19abdc8 --- /dev/null +++ b/node_modules/psl/data/rules.json @@ -0,0 +1,8834 @@ +[ +"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/node_modules/psl/dist/psl.js b/node_modules/psl/dist/psl.js new file mode 100644 index 00000000..f4b9b892 --- /dev/null +++ b/node_modules/psl/dist/psl.js @@ -0,0 +1,9645 @@ +(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= 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 + * @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 state to , + // 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 + * @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/node_modules/psl/dist/psl.min.js b/node_modules/psl/dist/psl.min.js new file mode 100644 index 00000000..d5c787e4 --- /dev/null +++ b/node_modules/psl/dist/psl.min.js @@ -0,0 +1 @@ +!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= 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>>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>>1x((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;mx((d-i)/(l=e+1))&&A("overflow"),i+=(t-o)*l,o=t,m=0;md&&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/node_modules/psl/index.js b/node_modules/psl/index.js new file mode 100644 index 00000000..da7bc121 --- /dev/null +++ b/node_modules/psl/index.js @@ -0,0 +1,269 @@ +/*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/node_modules/psl/package.json b/node_modules/psl/package.json new file mode 100644 index 00000000..e6d9bf45 --- /dev/null +++ b/node_modules/psl/package.json @@ -0,0 +1,77 @@ +{ + "_from": "psl@^1.1.28", + "_id": "psl@1.8.0", + "_inBundle": false, + "_integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "_location": "/psl", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "psl@^1.1.28", + "name": "psl", + "escapedName": "psl", + "rawSpec": "^1.1.28", + "saveSpec": null, + "fetchSpec": "^1.1.28" + }, + "_requiredBy": [ + "/tough-cookie" + ], + "_resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "_shasum": "9326f8bcfb013adcc005fdff056acce020e51c24", + "_spec": "psl@^1.1.28", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\tough-cookie", + "author": { + "name": "Lupo Montero", + "email": "lupomontero@gmail.com", + "url": "https://lupomontero.com/" + }, + "bugs": { + "url": "https://github.com/lupomontero/psl/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Domain name parser based on the Public Suffix List", + "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" + }, + "homepage": "https://github.com/lupomontero/psl#readme", + "keywords": [ + "publicsuffix", + "publicsuffixlist" + ], + "license": "MIT", + "main": "index.js", + "name": "psl", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/lupomontero/psl.git" + }, + "scripts": { + "build": "browserify ./index.js --standalone=psl > ./dist/psl.js", + "changelog": "git log $(git describe --tags --abbrev=0)..HEAD --oneline --format=\"%h %s (%an <%ae>)\"", + "commit-and-pr": "commit-and-pr", + "postbuild": "cat ./dist/psl.js | uglifyjs -c -m > ./dist/psl.min.js", + "prebuild": "./scripts/update-rules.js", + "pretest": "eslint .", + "test": "mocha test && karma start ./karma.conf.js --single-run", + "watch": "mocha test --watch" + }, + "version": "1.8.0" +} diff --git a/node_modules/pstree.remy/.travis.yml b/node_modules/pstree.remy/.travis.yml new file mode 100644 index 00000000..5bf093ee --- /dev/null +++ b/node_modules/pstree.remy/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +cache: + directories: + - ~/.npm +notifications: + email: false +node_js: + - '8' diff --git a/node_modules/pstree.remy/LICENSE b/node_modules/pstree.remy/LICENSE new file mode 100644 index 00000000..e83bea65 --- /dev/null +++ b/node_modules/pstree.remy/LICENSE @@ -0,0 +1,7 @@ +The MIT License (MIT) +Copyright © 2019 Remy Sharp, https://remysharp.com +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/pstree.remy/README.md b/node_modules/pstree.remy/README.md new file mode 100644 index 00000000..5f44c629 --- /dev/null +++ b/node_modules/pstree.remy/README.md @@ -0,0 +1,26 @@ +# pstree.remy + +> Cross platform ps-tree (including unix flavours without ps) + +## Installation + +```shel +npm install pstree.remy +``` + +## Usage + +```js +const psTree = psTree require('pstree.remy'); + +psTree(PID, (err, pids) => { + if (err) { + console.error(err); + } + console.log(pids) +}); + +console.log(psTree.hasPS + ? "This platform has the ps shell command" + : "This platform does not have the ps shell command"); +``` diff --git a/node_modules/pstree.remy/lib/index.js b/node_modules/pstree.remy/lib/index.js new file mode 100644 index 00000000..743e9979 --- /dev/null +++ b/node_modules/pstree.remy/lib/index.js @@ -0,0 +1,37 @@ +const exec = require('child_process').exec; +const tree = require('./tree'); +const utils = require('./utils'); +var hasPS = true; + +// discover if the OS has `ps`, and therefore can use psTree +exec('ps', (error) => { + module.exports.hasPS = hasPS = !error; +}); + +module.exports = function main(pid, callback) { + if (typeof pid === 'number') { + pid = pid.toString(); + } + + if (hasPS && !process.env.NO_PS) { + return tree(pid, callback); + } + + utils + .getStat() + .then(utils.tree) + .then((tree) => utils.pidsForTree(tree, pid)) + .then((res) => + callback( + null, + res.map((p) => p.PID) + ) + ) + .catch((error) => callback(error)); +}; + +if (!module.parent) { + module.exports(process.argv[2], (e, pids) => console.log(pids)); +} + +module.exports.hasPS = hasPS; diff --git a/node_modules/pstree.remy/lib/tree.js b/node_modules/pstree.remy/lib/tree.js new file mode 100644 index 00000000..bac7cce6 --- /dev/null +++ b/node_modules/pstree.remy/lib/tree.js @@ -0,0 +1,37 @@ +const spawn = require('child_process').spawn; + +module.exports = function (rootPid, callback) { + const pidsOfInterest = new Set([parseInt(rootPid, 10)]); + var output = ''; + + // *nix + const ps = spawn('ps', ['-A', '-o', 'ppid,pid']); + ps.stdout.on('data', (data) => { + output += data.toString('ascii'); + }); + + ps.on('close', () => { + try { + const res = output + .split('\n') + .slice(1) + .map((_) => _.trim()) + .reduce((acc, line) => { + const pids = line.split(/\s+/); + const ppid = parseInt(pids[0], 10); + + if (pidsOfInterest.has(ppid)) { + const pid = parseInt(pids[1], 10); + acc.push(pid); + pidsOfInterest.add(pid); + } + + return acc; + }, []); + + callback(null, res); + } catch (e) { + callback(e, null); + } + }); +}; diff --git a/node_modules/pstree.remy/lib/utils.js b/node_modules/pstree.remy/lib/utils.js new file mode 100644 index 00000000..8fa5719e --- /dev/null +++ b/node_modules/pstree.remy/lib/utils.js @@ -0,0 +1,53 @@ +const spawn = require('child_process').spawn; + +module.exports = { tree, pidsForTree, getStat }; + +function getStat() { + return new Promise((resolve) => { + const command = `ls /proc | grep -E '^[0-9]+$' | xargs -I{} cat /proc/{}/stat`; + const spawned = spawn('sh', ['-c', command], { + stdio: ['pipe', 'pipe', 'pipe'], + }); + + var res = ''; + spawned.stdout.on('data', (data) => (res += data)); + spawned.on('close', () => resolve(res)); + }); +} + +function template(s) { + var stat = null; + // 'pid', 'comm', 'state', 'ppid', 'pgrp' + // %d (%s) %c %d %d + s.replace( + /(\d+) \((.*?)\)\s(.+?)\s(\d+)\s/g, + (all, PID, COMMAND, STAT, PPID) => { + stat = { PID, COMMAND, PPID, STAT }; + } + ); + + return stat; +} + +function tree(stats) { + const processes = stats.split('\n').map(template).filter(Boolean); + + return processes; +} + +function pidsForTree(tree, pid) { + if (typeof pid === 'number') { + pid = pid.toString(); + } + const parents = [pid]; + const pids = []; + + tree.forEach((proc) => { + if (parents.indexOf(proc.PPID) !== -1) { + parents.push(proc.PID); + pids.push(proc); + } + }); + + return pids; +} diff --git a/node_modules/pstree.remy/package.json b/node_modules/pstree.remy/package.json new file mode 100644 index 00000000..1854e054 --- /dev/null +++ b/node_modules/pstree.remy/package.json @@ -0,0 +1,64 @@ +{ + "_from": "pstree.remy@^1.1.7", + "_id": "pstree.remy@1.1.8", + "_inBundle": false, + "_integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "_location": "/pstree.remy", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "pstree.remy@^1.1.7", + "name": "pstree.remy", + "escapedName": "pstree.remy", + "rawSpec": "^1.1.7", + "saveSpec": null, + "fetchSpec": "^1.1.7" + }, + "_requiredBy": [ + "/nodemon" + ], + "_resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "_shasum": "c242224f4a67c21f686839bbdb4ac282b8373d3a", + "_spec": "pstree.remy@^1.1.7", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\nodemon", + "author": { + "name": "Remy Sharp" + }, + "bugs": { + "url": "https://github.com/remy/pstree/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Collects the full tree of processes from /proc", + "devDependencies": { + "tap": "^11.0.0" + }, + "directories": { + "test": "tests" + }, + "homepage": "https://github.com/remy/pstree#readme", + "keywords": [ + "ps", + "pstree", + "ps tree" + ], + "license": "MIT", + "main": "lib/index.js", + "name": "pstree.remy", + "prettier": { + "trailingComma": "es5", + "semi": true, + "singleQuote": true + }, + "repository": { + "type": "git", + "url": "git+https://github.com/remy/pstree.git" + }, + "scripts": { + "_prepublish": "npm test", + "test": "tap tests/*.test.js" + }, + "version": "1.1.8" +} diff --git a/node_modules/pstree.remy/tests/fixtures/index.js b/node_modules/pstree.remy/tests/fixtures/index.js new file mode 100644 index 00000000..4cdbcb1b --- /dev/null +++ b/node_modules/pstree.remy/tests/fixtures/index.js @@ -0,0 +1,13 @@ +const spawn = require('child_process').spawn; +function run() { + spawn( + 'sh', + ['-c', 'node -e "setInterval(() => console.log(`running`), 200)"'], + { + stdio: 'pipe', + } + ); +} + +var runCallCount = process.argv[2] || 1; +for (var i = 0; i < runCallCount; i++) run(); diff --git a/node_modules/pstree.remy/tests/fixtures/out1 b/node_modules/pstree.remy/tests/fixtures/out1 new file mode 100644 index 00000000..abfe5810 --- /dev/null +++ b/node_modules/pstree.remy/tests/fixtures/out1 @@ -0,0 +1,10 @@ +1 (npm) S 0 1 1 34816 1 4210944 11112 0 0 0 45 8 0 0 20 0 10 0 330296 1089871872 11809 18446744073709551615 4194304 29343848 140726436642896 0 0 0 0 4096 2072112895 0 0 0 17 0 0 0 0 0 0 31441000 31537208 37314560 140726436650815 140726436650847 140726436650847 140726436650986 0 +15 (sh) S 1 1 1 34816 1 4210688 115 0 0 0 0 0 0 0 20 0 1 0 330372 4399104 187 18446744073709551615 94374393548800 94374393655428 140722913272992 0 0 0 0 0 65538 0 0 0 17 0 0 0 0 0 0 94374395756424 94374395761184 94374404673536 140722913278928 140722913278959 140722913278959 140722913284080 0 +16 (node) S 15 1 1 34816 1 4210688 6930 103 0 0 32 2 0 0 20 0 10 0 330373 1068478464 8412 18446744073709551615 4194304 29343848 140727228046064 0 0 0 0 4096 134300162 0 0 0 17 1 0 0 1 0 0 31441000 31537208 52584448 140727228050313 140727228050383 140727228050383 140727228055530 0 +27 (sh) S 16 1 1 34816 1 4210688 111 0 0 0 0 0 0 0 20 0 1 0 330410 4399104 193 18446744073709551615 94848235986944 94848236093572 140727019991184 0 0 0 0 0 65538 0 0 0 17 1 0 0 0 0 0 94848238194568 94848238199328 94848261660672 140727019998122 140727019998165 140727019998165 140727020003312 0 +28 (node) S 27 1 1 34816 1 4210688 3576 268 0 0 12 2 0 0 20 0 10 0 330411 930213888 6760 18446744073709551615 4194304 29343848 140726559664992 0 0 0 0 4096 134300162 0 0 0 17 1 0 0 0 0 0 31441000 31537208 32591872 140726559669117 140726559669199 140726559669199 140726559674346 0 +39 (node) S 28 1 1 34816 1 4210688 47517 0 0 0 151 9 0 0 20 0 6 0 330427 985739264 31859 18446744073709551615 4194304 29343848 140737324503920 0 0 0 0 4096 134234626 0 0 0 17 0 0 0 0 0 0 31441000 31537208 51585024 140737324510060 140737324510159 140737324510159 140737324515306 0 +45 (bash) S 0 45 45 34817 50 4210944 752 256 0 0 2 0 0 0 20 0 1 0 331039 18628608 789 18446744073709551615 4194304 5242124 140724425887696 0 0 0 65536 3670020 1266777851 0 0 0 17 1 0 0 0 0 0 7341384 7388228 30310400 140724425891678 140724425891683 140724425891683 140724425891822 0 +cat: /proc/50/stat: No such file or directory +cat: /proc/51/stat: No such file or directory +52 (xargs) S 45 50 45 34817 50 4210688 179 661 0 0 0 0 0 0 20 0 1 0 331544 4608000 346 18446744073709551615 94587588550656 94587588614028 140735223856048 0 0 0 0 0 2560 0 0 0 17 1 0 0 0 0 0 94587590711464 94587590713504 94587603169280 140735223861006 140735223861035 140735223861035 140735223861225 0 diff --git a/node_modules/pstree.remy/tests/fixtures/out2 b/node_modules/pstree.remy/tests/fixtures/out2 new file mode 100644 index 00000000..3b31137d --- /dev/null +++ b/node_modules/pstree.remy/tests/fixtures/out2 @@ -0,0 +1,29 @@ +cat: /proc/4087/stat: No such file or directory +cat: /proc/4088/stat: No such file or directory +1 (init) S 0 1 1 0 -1 4210944 9227 55994 29 319 7 5 68 16 20 0 1 0 1286281 33660928 855 18446744073709551615 1 1 0 0 0 0 0 4096 536962595 0 0 0 17 4 0 0 3 0 0 0 0 0 0 0 0 0 0 +1032 (ntpd) S 1 1032 1032 0 -1 4211008 178 0 1 0 0 0 0 0 20 0 1 0 1287033 25743360 1058 18446744073709551615 1 1 0 0 0 0 0 4096 27207 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +126 (irqbalance) S 1 126 126 0 -1 1077952832 1217 0 0 0 1 6 0 0 20 0 1 0 1286749 20189184 647 18446744073709551615 1 1 0 0 0 0 0 0 3 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +181 (mysqld) S 1 181 181 0 -1 4210944 6399 0 46 0 8 6 0 0 20 0 22 0 1286761 748453888 14476 18446744073709551615 1 1 0 0 0 0 552967 4096 26345 0 0 0 17 4 0 0 10 0 0 0 0 0 0 0 0 0 0 +194 (memcached) S 1 187 187 0 -1 4210944 252 0 4 0 0 0 0 0 20 0 6 0 1286766 333221888 648 18446744073709551615 1 1 0 0 0 0 0 4096 2 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +243 (dbus-daemon) S 1 243 243 0 -1 4211008 67 0 0 0 0 0 0 0 20 0 1 0 1286779 40087552 598 18446744073709551615 1 1 0 0 0 0 0 0 16385 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +254 (rsyslogd) S 1 254 254 0 -1 4211008 107 0 0 0 2 2 0 0 20 0 3 0 1286782 186601472 696 18446744073709551615 1 1 0 0 0 0 0 16781830 1133601 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +265 (systemd-logind) S 1 265 265 0 -1 4210944 276 0 2 0 0 0 0 0 20 0 1 0 1286786 35880960 720 18446744073709551615 1 1 0 0 0 0 0 0 0 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +333 (postgres) S 1 303 303 0 -1 4210688 3169 3466 15 18 0 1 1 1 20 0 1 0 1286817 156073984 5002 18446744073709551615 1 1 0 0 0 0 0 19935232 84487 0 0 0 17 5 0 0 1 0 0 0 0 0 0 0 0 0 0 +359 (postgres) S 333 359 359 0 -1 4210752 90 0 0 0 0 0 0 0 20 0 1 0 1286822 156073984 827 18446744073709551615 1 1 0 0 0 0 0 16805888 2567 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +360 (postgres) S 333 360 360 0 -1 4210752 119 0 0 0 0 0 0 0 20 0 1 0 1286822 156073984 827 18446744073709551615 1 1 0 0 0 0 0 16791554 16901 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +361 (postgres) S 333 361 361 0 -1 4210752 87 0 0 0 0 0 0 0 20 0 1 0 1286822 156073984 827 18446744073709551615 1 1 0 0 0 0 0 16791552 16903 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +362 (postgres) S 333 362 362 0 -1 4210752 292 0 3 0 0 0 0 0 20 0 1 0 1286822 156930048 1373 18446744073709551615 1 1 0 0 0 0 0 19927040 27271 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +363 (postgres) S 333 363 363 0 -1 4210752 82 0 0 0 0 0 0 0 20 0 1 0 1286822 115924992 887 18446744073709551615 1 1 0 0 0 0 0 16808450 5 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +4050 (npm) S 50 50 50 34817 50 4210688 5109 0 0 0 36 3 0 0 20 0 10 0 1292968 738025472 10051 18446744073709551615 4194304 33165900 140723623956256 0 0 0 0 4096 134300162 0 0 0 17 4 0 0 0 0 0 35263056 35370992 48369664 140723623964237 140723623964294 140723623964294 140723623968712 0 +4060 (sh) S 4050 50 50 34817 50 4210688 121 0 0 0 0 0 0 0 20 0 1 0 1293007 4579328 174 18446744073709551615 94347643936768 94347644049516 140735136055088 0 0 0 0 0 65538 1 0 0 17 5 0 0 0 0 0 94347646148008 94347646153216 94347660038144 140735136063095 140735136063129 140735136063129 140735136071664 0 +4061 (node) S 4060 50 50 34817 50 4210688 6501 0 0 0 42 2 0 0 20 0 6 0 1293008 705769472 10211 18446744073709551615 4194304 33165900 140730532686288 0 0 0 0 4096 2072111671 0 0 0 17 5 0 0 0 0 0 35263056 35370992 45867008 140730532695579 140730532695657 140730532695657 140730532704200 0 +4067 (node) S 4061 50 50 34817 50 4210688 6746 221 0 0 38 3 0 0 20 0 10 0 1293051 738910208 10527 18446744073709551615 4194304 33165900 140724824971632 0 0 0 0 4096 2072111671 0 0 0 17 4 0 0 0 0 0 35263056 35370992 68595712 140724824980995 140724824981063 140724824981063 140724824989640 0 +4079 (sh) S 4067 50 50 34817 50 4210688 118 0 0 0 0 0 0 0 20 0 1 0 1293092 4579328 194 18446744073709551615 94573702131712 94573702244460 140724712357120 0 0 0 0 0 65538 1 0 0 17 4 0 0 0 0 0 94573704342952 94573704348160 94573718511616 140724712361487 140724712361583 140724712361583 140724712370160 0 +4080 (node) S 4079 50 50 34817 50 4210688 2428 0 0 0 8 1 0 0 20 0 6 0 1293093 693059584 7251 18446744073709551615 4194304 33165900 140726023392816 0 0 0 0 4096 134234626 0 0 0 17 5 0 0 0 0 0 35263056 35370992 55226368 140726023396847 140726023396935 140726023396935 140726023405512 0 +4086 (sh) S 4067 50 50 34817 50 4210688 131 244 0 0 0 0 0 0 20 0 1 0 1293143 4579328 200 18446744073709551615 94347550273536 94347550386284 140737219399136 0 0 0 0 0 65538 1 0 0 17 5 0 0 0 0 0 94347552484776 94347552489984 94347554299904 140737219403308 140737219403375 140737219403375 140737219411952 0 +4089 (xargs) S 4086 50 50 34817 50 4210688 333 1924 0 0 0 0 0 0 20 0 1 0 1293143 17600512 477 18446744073709551615 4194304 4232732 140721633759248 0 0 0 0 0 0 1 0 0 17 5 0 0 0 0 0 6331920 6332980 32182272 140721633762891 140721633762920 140721633762920 140721633771497 0 +50 (bash) S 0 50 50 34817 50 4210944 43914 1032463 9 705 44 21 4213 818 20 0 1 0 1286336 42266624 3599 18446744073709551615 4194304 5173404 140732749083280 0 0 0 65536 4 1132560123 1 0 0 17 4 0 0 410 0 0 7273968 7310504 21196800 140732749086490 140732749086517 140732749086517 140732749086702 0 +79 (acpid) S 1 79 79 0 -1 4210752 46 0 0 0 0 0 0 0 20 0 1 0 1286717 4493312 407 18446744073709551615 1 1 0 0 0 0 0 4096 16391 0 0 0 17 5 0 0 0 0 0 0 0 0 0 0 0 0 0 +83 (sshd) S 1 83 83 0 -1 4210944 354 0 27 0 0 0 0 0 20 0 1 0 1286718 62873600 1290 18446744073709551615 1 1 0 0 0 0 0 4096 81925 0 0 0 17 4 0 0 30 0 0 0 0 0 0 0 0 0 0 +94 (cron) S 1 94 94 0 -1 1077952576 103 449 0 1 0 0 0 0 20 0 1 0 1286743 24240128 559 18446744073709551615 1 1 0 0 0 0 0 0 65537 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 +95 (atd) S 1 95 95 0 -1 1077952576 28 0 0 0 0 0 0 0 20 0 1 0 1286743 19615744 41 18446744073709551615 1 1 0 0 0 0 0 0 81923 0 0 0 17 4 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/node_modules/pstree.remy/tests/index.test.js b/node_modules/pstree.remy/tests/index.test.js new file mode 100644 index 00000000..50096b95 --- /dev/null +++ b/node_modules/pstree.remy/tests/index.test.js @@ -0,0 +1,51 @@ +const tap = require('tap'); +const test = tap.test; +const readFile = require('fs').readFileSync; +const spawn = require('child_process').spawn; +const pstree = require('../'); +const { tree, pidsForTree, getStat } = require('../lib/utils'); + +if (process.platform !== 'darwin') { + test('reads from /proc', async (t) => { + const ps = await getStat(); + t.ok(ps.split('\n').length > 1); + }); +} + +test('tree for live env', async (t) => { + const pid = 4079; + const fixture = readFile(__dirname + '/fixtures/out2', 'utf8'); + const ps = await tree(fixture); + t.deepEqual( + pidsForTree(ps, pid).map((_) => _.PID), + ['4080'] + ); +}); + +function testTree(t, runCallCount) { + const sub = spawn('node', [`${__dirname}/fixtures/index.js`, runCallCount], { + stdio: 'pipe', + }); + setTimeout(() => { + const pid = sub.pid; + + pstree(pid, (error, pids) => { + pids.concat([pid]).forEach((p) => { + spawn('kill', ['-s', 'SIGTERM', p]); + }); + + // the fixture launches `sh` which launches node which is why we + // are looking for two processes. + // Important: IDKW but MacOS seems to skip the `sh` process. no idea. + t.equal(pids.length, runCallCount * 2); + t.end(); + }); + }, 1000); +} + +test('can read full process tree', (t) => { + testTree(t, 1); +}); +test('can read full process tree with multiple processes', (t) => { + testTree(t, 2); +}); diff --git a/node_modules/pump/.travis.yml b/node_modules/pump/.travis.yml new file mode 100644 index 00000000..17f94330 --- /dev/null +++ b/node_modules/pump/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "0.10" + +script: "npm test" diff --git a/node_modules/pump/LICENSE b/node_modules/pump/LICENSE new file mode 100644 index 00000000..757562ec --- /dev/null +++ b/node_modules/pump/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Mathias Buus + +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/node_modules/pump/README.md b/node_modules/pump/README.md new file mode 100644 index 00000000..4c81471a --- /dev/null +++ b/node_modules/pump/README.md @@ -0,0 +1,65 @@ +# pump + +pump is a small node module that pipes streams together and destroys all of them if one of them closes. + +``` +npm install pump +``` + +[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump) + +## What problem does it solve? + +When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error. +You are also not able to provide a callback to tell when then pipe has finished. + +pump does these two things for you + +## Usage + +Simply pass the streams you want to pipe together to pump and add an optional callback + +``` js +var pump = require('pump') +var fs = require('fs') + +var source = fs.createReadStream('/dev/random') +var dest = fs.createWriteStream('/dev/null') + +pump(source, dest, function(err) { + console.log('pipe finished', err) +}) + +setTimeout(function() { + dest.destroy() // when dest is closed pump will destroy source +}, 1000) +``` + +You can use pump to pipe more than two streams together as well + +``` js +var transform = someTransformStream() + +pump(source, transform, anotherTransform, dest, function(err) { + console.log('pipe finished', err) +}) +``` + +If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed. + +Similarly to `stream.pipe()`, `pump()` returns the last stream passed in, so you can do: + +``` +return pump(s1, s2) // returns s2 +``` + +If you want to return a stream that combines *both* s1 and s2 to a single stream use +[pumpify](https://github.com/mafintosh/pumpify) instead. + +## License + +MIT + +## Related + +`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. diff --git a/node_modules/pump/index.js b/node_modules/pump/index.js new file mode 100644 index 00000000..c15059f1 --- /dev/null +++ b/node_modules/pump/index.js @@ -0,0 +1,82 @@ +var once = require('once') +var eos = require('end-of-stream') +var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes + +var noop = function () {} +var ancient = /^v?\.0/.test(process.version) + +var isFn = function (fn) { + return typeof fn === 'function' +} + +var isFS = function (stream) { + if (!ancient) return false // newer node version do not need to care about fs is a special way + if (!fs) return false // browser + return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) +} + +var isRequest = function (stream) { + return stream.setHeader && isFn(stream.abort) +} + +var destroyer = function (stream, reading, writing, callback) { + callback = once(callback) + + var closed = false + stream.on('close', function () { + closed = true + }) + + eos(stream, {readable: reading, writable: writing}, function (err) { + if (err) return callback(err) + closed = true + callback() + }) + + var destroyed = false + return function (err) { + if (closed) return + if (destroyed) return + destroyed = true + + if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks + if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want + + if (isFn(stream.destroy)) return stream.destroy() + + callback(err || new Error('stream was destroyed')) + } +} + +var call = function (fn) { + fn() +} + +var pipe = function (from, to) { + return from.pipe(to) +} + +var pump = function () { + var streams = Array.prototype.slice.call(arguments) + var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop + + if (Array.isArray(streams[0])) streams = streams[0] + if (streams.length < 2) throw new Error('pump requires two streams per minimum') + + var error + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1 + var writing = i > 0 + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err + if (err) destroys.forEach(call) + if (reading) return + destroys.forEach(call) + callback(error) + }) + }) + + return streams.reduce(pipe) +} + +module.exports = pump diff --git a/node_modules/pump/package.json b/node_modules/pump/package.json new file mode 100644 index 00000000..0e50ccd1 --- /dev/null +++ b/node_modules/pump/package.json @@ -0,0 +1,60 @@ +{ + "_from": "pump@^3.0.0", + "_id": "pump@3.0.0", + "_inBundle": false, + "_integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "_location": "/pump", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "pump@^3.0.0", + "name": "pump", + "escapedName": "pump", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/cacheable-request/get-stream", + "/get-stream" + ], + "_resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "_shasum": "b4a2116815bde2f4e1ea602354e8c75565107a64", + "_spec": "pump@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\cacheable-request\\node_modules\\get-stream", + "author": { + "name": "Mathias Buus Madsen", + "email": "mathiasbuus@gmail.com" + }, + "browser": { + "fs": false + }, + "bugs": { + "url": "https://github.com/mafintosh/pump/issues" + }, + "bundleDependencies": false, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + }, + "deprecated": false, + "description": "pipe streams together and close all of them if one of them closes", + "homepage": "https://github.com/mafintosh/pump#readme", + "keywords": [ + "streams", + "pipe", + "destroy", + "callback" + ], + "license": "MIT", + "name": "pump", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/pump.git" + }, + "scripts": { + "test": "node test-browser.js && node test-node.js" + }, + "version": "3.0.0" +} diff --git a/node_modules/pump/test-browser.js b/node_modules/pump/test-browser.js new file mode 100644 index 00000000..9a06c8a4 --- /dev/null +++ b/node_modules/pump/test-browser.js @@ -0,0 +1,66 @@ +var stream = require('stream') +var pump = require('./index') + +var rs = new stream.Readable() +var ws = new stream.Writable() + +rs._read = function (size) { + this.push(Buffer(size).fill('abc')) +} + +ws._write = function (chunk, encoding, cb) { + setTimeout(function () { + cb() + }, 100) +} + +var toHex = function () { + var reverse = new (require('stream').Transform)() + + reverse._transform = function (chunk, enc, callback) { + reverse.push(chunk.toString('hex')) + callback() + } + + return reverse +} + +var wsClosed = false +var rsClosed = false +var callbackCalled = false + +var check = function () { + if (wsClosed && rsClosed && callbackCalled) { + console.log('test-browser.js passes') + clearTimeout(timeout) + } +} + +ws.on('finish', function () { + wsClosed = true + check() +}) + +rs.on('end', function () { + rsClosed = true + check() +}) + +var res = pump(rs, toHex(), toHex(), toHex(), ws, function () { + callbackCalled = true + check() +}) + +if (res !== ws) { + throw new Error('should return last stream') +} + +setTimeout(function () { + rs.push(null) + rs.emit('close') +}, 1000) + +var timeout = setTimeout(function () { + check() + throw new Error('timeout') +}, 5000) diff --git a/node_modules/pump/test-node.js b/node_modules/pump/test-node.js new file mode 100644 index 00000000..561251a0 --- /dev/null +++ b/node_modules/pump/test-node.js @@ -0,0 +1,53 @@ +var pump = require('./index') + +var rs = require('fs').createReadStream('/dev/random') +var ws = require('fs').createWriteStream('/dev/null') + +var toHex = function () { + var reverse = new (require('stream').Transform)() + + reverse._transform = function (chunk, enc, callback) { + reverse.push(chunk.toString('hex')) + callback() + } + + return reverse +} + +var wsClosed = false +var rsClosed = false +var callbackCalled = false + +var check = function () { + if (wsClosed && rsClosed && callbackCalled) { + console.log('test-node.js passes') + clearTimeout(timeout) + } +} + +ws.on('close', function () { + wsClosed = true + check() +}) + +rs.on('close', function () { + rsClosed = true + check() +}) + +var res = pump(rs, toHex(), toHex(), toHex(), ws, function () { + callbackCalled = true + check() +}) + +if (res !== ws) { + throw new Error('should return last stream') +} + +setTimeout(function () { + rs.destroy() +}, 1000) + +var timeout = setTimeout(function () { + throw new Error('timeout') +}, 5000) diff --git a/node_modules/punycode/LICENSE-MIT.txt b/node_modules/punycode/LICENSE-MIT.txt new file mode 100644 index 00000000..a41e0a7e --- /dev/null +++ b/node_modules/punycode/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/punycode/README.md b/node_modules/punycode/README.md new file mode 100644 index 00000000..ee2f9d63 --- /dev/null +++ b/node_modules/punycode/README.md @@ -0,0 +1,122 @@ +# Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/codecov/c/github/bestiejs/punycode.js.svg)](https://codecov.io/gh/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js) + +Punycode.js is a robust Punycode converter that fully complies to [RFC 3492](https://tools.ietf.org/html/rfc3492) and [RFC 5891](https://tools.ietf.org/html/rfc5891). + +This JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm: + +* [The C example code from RFC 3492](https://tools.ietf.org/html/rfc3492#appendix-C) +* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c) +* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c) +* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287) +* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072)) + +This project was [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with Node.js from [v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc) until [v7](https://github.com/nodejs/node/pull/7941) (soft-deprecated). + +The current version supports recent versions of Node.js only. It provides a CommonJS module and an ES6 module. For the old version that offers the same functionality with broader support, including Rhino, Ringo, Narwhal, and web browsers, see [v1.4.1](https://github.com/bestiejs/punycode.js/releases/tag/v1.4.1). + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install punycode --save +``` + +In [Node.js](https://nodejs.org/): + +```js +const punycode = require('punycode'); +``` + +## API + +### `punycode.decode(string)` + +Converts a Punycode string of ASCII symbols to a string of Unicode symbols. + +```js +// decode domain name parts +punycode.decode('maana-pta'); // 'mañana' +punycode.decode('--dqo34k'); // '☃-⌘' +``` + +### `punycode.encode(string)` + +Converts a string of Unicode symbols to a Punycode string of ASCII symbols. + +```js +// encode domain name parts +punycode.encode('mañana'); // 'maana-pta' +punycode.encode('☃-⌘'); // '--dqo34k' +``` + +### `punycode.toUnicode(input)` + +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. + +```js +// decode domain names +punycode.toUnicode('xn--maana-pta.com'); +// → 'mañana.com' +punycode.toUnicode('xn----dqo34k.com'); +// → '☃-⌘.com' + +// decode email addresses +punycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'); +// → 'джумла@джpумлатест.bрфa' +``` + +### `punycode.toASCII(input)` + +Converts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII. + +```js +// encode domain names +punycode.toASCII('mañana.com'); +// → 'xn--maana-pta.com' +punycode.toASCII('☃-⌘.com'); +// → 'xn----dqo34k.com' + +// encode email addresses +punycode.toASCII('джумла@джpумлатест.bрфa'); +// → 'джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq' +``` + +### `punycode.ucs2` + +#### `punycode.ucs2.decode(string)` + +Creates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](https://mathiasbynens.be/notes/javascript-encoding), 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. + +```js +punycode.ucs2.decode('abc'); +// → [0x61, 0x62, 0x63] +// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE: +punycode.ucs2.decode('\uD834\uDF06'); +// → [0x1D306] +``` + +#### `punycode.ucs2.encode(codePoints)` + +Creates a string based on an array of numeric code point values. + +```js +punycode.ucs2.encode([0x61, 0x62, 0x63]); +// → 'abc' +punycode.ucs2.encode([0x1D306]); +// → '\uD834\uDF06' +``` + +### `punycode.version` + +A string representing the current Punycode.js version number. + +## Author + +| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](https://mathiasbynens.be/) | + +## License + +Punycode.js is available under the [MIT](https://mths.be/mit) license. diff --git a/node_modules/punycode/package.json b/node_modules/punycode/package.json new file mode 100644 index 00000000..677ed3e3 --- /dev/null +++ b/node_modules/punycode/package.json @@ -0,0 +1,86 @@ +{ + "_from": "punycode@^2.1.0", + "_id": "punycode@2.1.1", + "_inBundle": false, + "_integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "_location": "/punycode", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "punycode@^2.1.0", + "name": "punycode", + "escapedName": "punycode", + "rawSpec": "^2.1.0", + "saveSpec": null, + "fetchSpec": "^2.1.0" + }, + "_requiredBy": [ + "/tough-cookie", + "/uri-js" + ], + "_resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "_shasum": "b58b010ac40c22c5657616c8d2c2c02c7bf479ec", + "_spec": "punycode@^2.1.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\uri-js", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "bugs": { + "url": "https://github.com/bestiejs/punycode.js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + } + ], + "deprecated": false, + "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", + "devDependencies": { + "codecov": "^1.0.1", + "istanbul": "^0.4.1", + "mocha": "^2.5.3" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "LICENSE-MIT.txt", + "punycode.js", + "punycode.es6.js" + ], + "homepage": "https://mths.be/punycode", + "jsnext:main": "punycode.es6.js", + "jspm": { + "map": { + "./punycode.js": { + "node": "@node/punycode" + } + } + }, + "keywords": [ + "punycode", + "unicode", + "idn", + "idna", + "dns", + "url", + "domain" + ], + "license": "MIT", + "main": "punycode.js", + "module": "punycode.es6.js", + "name": "punycode", + "repository": { + "type": "git", + "url": "git+https://github.com/bestiejs/punycode.js.git" + }, + "scripts": { + "prepublish": "node scripts/prepublish.js", + "test": "mocha tests" + }, + "version": "2.1.1" +} diff --git a/node_modules/punycode/punycode.es6.js b/node_modules/punycode/punycode.es6.js new file mode 100644 index 00000000..4610bc9e --- /dev/null +++ b/node_modules/punycode/punycode.es6.js @@ -0,0 +1,441 @@ +'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 + * @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 state to , + // 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 + * @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/node_modules/punycode/punycode.js b/node_modules/punycode/punycode.js new file mode 100644 index 00000000..ea61fd0d --- /dev/null +++ b/node_modules/punycode/punycode.js @@ -0,0 +1,440 @@ +'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 + * @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 state to , + // 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 + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode +}; + +module.exports = punycode; diff --git a/node_modules/pupa/index.d.ts b/node_modules/pupa/index.d.ts new file mode 100644 index 00000000..762aae0c --- /dev/null +++ b/node_modules/pupa/index.d.ts @@ -0,0 +1,32 @@ +/** +Simple micro templating. + +@param template - Text with placeholders for `data` properties. +@param data - Data to interpolate into `template`. + +@example +``` +import pupa = require('pupa'); + +pupa('The mobile number of {name} is {phone.mobile}', { + name: 'Sindre', + phone: { + mobile: '609 24 363' + } +}); +//=> 'The mobile number of Sindre is 609 24 363' + +pupa('I like {0} and {1}', ['🦄', '🐮']); +//=> 'I like 🦄 and 🐮' + +// Double braces encodes the HTML entities to avoid code injection +pupa('I like {{0}} and {{1}}', ['
🦄
', '🐮']); +//=> 'I like <br>🦄</br> and <i>🐮</i>' +``` +*/ +declare function pupa( + template: string, + data: unknown[] | {[key: string]: any} +): string; + +export = pupa; diff --git a/node_modules/pupa/index.js b/node_modules/pupa/index.js new file mode 100644 index 00000000..c8dc040e --- /dev/null +++ b/node_modules/pupa/index.js @@ -0,0 +1,38 @@ +'use strict'; +const {htmlEscape} = require('escape-goat'); + +module.exports = (template, data) => { + if (typeof template !== 'string') { + throw new TypeError(`Expected a \`string\` in the first argument, got \`${typeof template}\``); + } + + if (typeof data !== 'object') { + throw new TypeError(`Expected an \`object\` or \`Array\` in the second argument, got \`${typeof data}\``); + } + + const doubleBraceRegex = /{{(.*?)}}/g; + + if (doubleBraceRegex.test(template)) { + template = template.replace(doubleBraceRegex, (_, key) => { + let result = data; + + for (const property of key.split('.')) { + result = result ? result[property] : ''; + } + + return htmlEscape(String(result)); + }); + } + + const braceRegex = /{(.*?)}/g; + + return template.replace(braceRegex, (_, key) => { + let result = data; + + for (const property of key.split('.')) { + result = result ? result[property] : ''; + } + + return String(result); + }); +}; diff --git a/node_modules/pupa/license b/node_modules/pupa/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/pupa/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/pupa/package.json b/node_modules/pupa/package.json new file mode 100644 index 00000000..fb454722 --- /dev/null +++ b/node_modules/pupa/package.json @@ -0,0 +1,79 @@ +{ + "_from": "pupa@^2.0.1", + "_id": "pupa@2.0.1", + "_inBundle": false, + "_integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "_location": "/pupa", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "pupa@^2.0.1", + "name": "pupa", + "escapedName": "pupa", + "rawSpec": "^2.0.1", + "saveSpec": null, + "fetchSpec": "^2.0.1" + }, + "_requiredBy": [ + "/update-notifier" + ], + "_resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "_shasum": "dbdc9ff48ffbea4a26a069b6f9f7abb051008726", + "_spec": "pupa@^2.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\update-notifier", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/pupa/issues" + }, + "bundleDependencies": false, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "deprecated": false, + "description": "Simple micro templating", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/pupa#readme", + "keywords": [ + "string", + "formatting", + "template", + "object", + "format", + "interpolate", + "interpolation", + "templating", + "expand", + "simple", + "replace", + "placeholders", + "values", + "transform", + "micro" + ], + "license": "MIT", + "name": "pupa", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/pupa.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.0.1" +} diff --git a/node_modules/pupa/readme.md b/node_modules/pupa/readme.md new file mode 100644 index 00000000..bb9ab180 --- /dev/null +++ b/node_modules/pupa/readme.md @@ -0,0 +1,63 @@ +# pupa [![Build Status](https://travis-ci.org/sindresorhus/pupa.svg?branch=master)](https://travis-ci.org/sindresorhus/pupa) + +> Simple micro templating + +Useful when all you need is to fill in some placeholders. + + +## Install + +``` +$ npm install pupa +``` + + +## Usage + +```js +const pupa = require('pupa'); + +pupa('The mobile number of {name} is {phone.mobile}', { + name: 'Sindre', + phone: { + mobile: '609 24 363' + } +}); +//=> 'The mobile number of Sindre is 609 24 363' + +pupa('I like {0} and {1}', ['🦄', '🐮']); +//=> 'I like 🦄 and 🐮' + +// Double braces encodes the HTML entities to avoid code injection +pupa('I like {{0}} and {{1}}', ['
🦄
', '🐮']); +//=> 'I like <br>🦄</br> and <i>🐮</i>' +``` + + +## API + +### pupa(template, data) + +#### template + +Type: `string` + +Text with placeholders for `data` properties. + +#### data + +Type: `object | unknown[]` + +Data to interpolate into `template`. + + +## FAQ + +### What about template literals? + +Template literals expand on creation. This module expands the template on execution, which can be useful if either or both template and data are lazily created or user-supplied. + + +## Related + +- [pupa-cli](https://github.com/sindresorhus/pupa-cli) - CLI for this module diff --git a/node_modules/qs/.editorconfig b/node_modules/qs/.editorconfig new file mode 100644 index 00000000..a4893ddf --- /dev/null +++ b/node_modules/qs/.editorconfig @@ -0,0 +1,30 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 160 + +[test/*] +max_line_length = off + +[*.md] +max_line_length = off + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[LICENSE] +indent_size = 2 +max_line_length = off diff --git a/node_modules/qs/.eslintignore b/node_modules/qs/.eslintignore new file mode 100644 index 00000000..1521c8b7 --- /dev/null +++ b/node_modules/qs/.eslintignore @@ -0,0 +1 @@ +dist diff --git a/node_modules/qs/.eslintrc b/node_modules/qs/.eslintrc new file mode 100644 index 00000000..e3bde898 --- /dev/null +++ b/node_modules/qs/.eslintrc @@ -0,0 +1,21 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "complexity": 0, + "consistent-return": 1, + "func-name-matching": 0, + "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], + "indent": [2, 4], + "max-lines-per-function": [2, { "max": 150 }], + "max-params": [2, 14], + "max-statements": [2, 52], + "multiline-comment-style": 0, + "no-continue": 1, + "no-magic-numbers": 0, + "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], + "operator-linebreak": [2, "before"], + } +} diff --git a/node_modules/qs/CHANGELOG.md b/node_modules/qs/CHANGELOG.md new file mode 100644 index 00000000..50505c46 --- /dev/null +++ b/node_modules/qs/CHANGELOG.md @@ -0,0 +1,256 @@ +## **6.7.0** +- [New] `stringify`/`parse`: add `comma` as an `arrayFormat` option (#276, #219) +- [Fix] correctly parse nested arrays (#212) +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source, also with an array source +- [Robustness] `stringify`: cache `Object.prototype.hasOwnProperty` +- [Refactor] `utils`: `isBuffer`: small tweak; add tests +- [Refactor] use cached `Array.isArray` +- [Refactor] `parse`/`stringify`: make a function to normalize the options +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] `stringify`/`utils`: cache `Array.isArray` +- [Tests] always use `String(x)` over `x.toString()` +- [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10 +- [Tests] temporarily allow coverage to fail + +## **6.6.0** +- [New] Add support for iso-8859-1, utf8 "sentinel" and numeric entities (#268) +- [New] move two-value combine to a `utils` function (#189) +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` (#260) +- [Fix] `stringify`: do not crash in an obscure combo of `interpretNumericEntities`, a bad custom `decoder`, & `iso-8859-1` +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Refactor] `parse`: only need to reassign the var once +- [Refactor] `parse`/`stringify`: clean up `charset` options checking; fix defaults +- [Refactor] add missing defaults +- [Refactor] `parse`: one less `concat` call +- [Refactor] `utils`: `compactQueue`: make it explicitly side-effecting +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`, `iconv-lite`, `safe-publish-latest`, `tape` +- [Tests] up to `node` `v10.10`, `v9.11`, `v8.12`, `v6.14`, `v4.9`; pin included builds to LTS + +## **6.5.2** +- [Fix] use `safer-buffer` instead of `Buffer` constructor +- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230) +- [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify` + +## **6.5.1** +- [Fix] Fix parsing & compacting very deep objects (#224) +- [Refactor] name utils functions +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` +- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesn’t break older node +- [Tests] Use precise dist for Node.js 0.6 runtime (#225) +- [Tests] make 0.6 required, now that it’s passing +- [Tests] on `node` `v8.2`; fix npm on node 0.6 + +## **6.5.0** +- [New] add `utils.assign` +- [New] pass default encoder/decoder to custom encoder/decoder functions (#206) +- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213) +- [Fix] Handle stringifying empty objects with addQueryPrefix (#217) +- [Fix] do not mutate `options` argument (#207) +- [Refactor] `parse`: cache index to reuse in else statement (#182) +- [Docs] add various badges to readme (#208) +- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape` +- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4 +- [Tests] add `editorconfig-tools` + +## **6.4.0** +- [New] `qs.stringify`: add `encodeValuesOnly` option +- [Fix] follow `allowPrototypes` option during merge (#201, #201) +- [Fix] support keys starting with brackets (#202, #200) +- [Fix] chmod a-x +- [Dev Deps] update `eslint` +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds +- [eslint] reduce warnings + +## **6.3.2** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Dev Deps] update `eslint` +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.3.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape` +- [Tests] on all node minors; improve test matrix +- [Docs] document stringify option `allowDots` (#195) +- [Docs] add empty object and array values example (#195) +- [Docs] Fix minor inconsistency/typo (#192) +- [Docs] document stringify option `sort` (#191) +- [Refactor] `stringify`: throw faster with an invalid encoder +- [Refactor] remove unnecessary escapes (#184) +- Remove contributing.md, since `qs` is no longer part of `hapi` (#183) + +## **6.3.0** +- [New] Add support for RFC 1738 (#174, #173) +- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159) +- [Fix] ensure `utils.merge` handles merging two arrays +- [Refactor] only constructors should be capitalized +- [Refactor] capitalized var names are for constructors only +- [Refactor] avoid using a sparse array +- [Robustness] `formats`: cache `String#replace` +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest` +- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix +- [Tests] flesh out arrayLimit/arrayFormat tests (#107) +- [Tests] skip Object.create tests when null objects are not available +- [Tests] Turn on eslint for test files (#175) + +## **6.2.3** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.2.2** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## **6.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values +- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call` +- [Tests] remove `parallelshell` since it does not reliably report failures +- [Tests] up to `node` `v6.3`, `v5.12` +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv` + +## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) +- [New] pass Buffers to the encoder/decoder directly (#161) +- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) +- [Fix] fix compacting of nested sparse arrays (#150) + +## **6.1.2 +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.1.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) +- [New] allowDots option for `stringify` (#151) +- [Fix] "sort" option should work at a depth of 3 or more (#151) +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## **6.0.4** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.0.3** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) +- Revert ES6 requirement and restore support for node down to v0.8. + +## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) +- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json + +## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) +- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 + +## **5.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values + +## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) +- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string + +## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) +- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional +- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify + +## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) +- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false +- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm + +## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) +- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional + +## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) +- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" + +## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) +- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties +- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost +- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing +- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object +- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option +- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. +- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 +- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 +- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign +- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute + +## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) +- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function + +## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) +- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option + +## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) +- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 +- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader + +## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) +- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object + +## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) +- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". + +## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) +- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 + +## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) +- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? +- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 +- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 + +## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) +- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number + +## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) +- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array +- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x + +## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) +- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value +- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty +- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? + +## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) +- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 +- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects + +## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) +- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present +- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays +- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge +- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? + +## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) +- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter + +## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) +- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? +- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit +- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 + +## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) +- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values + +## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) +- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters +- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block + +## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) +- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument +- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed + +## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) +- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted +- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null +- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README + +## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) +- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/node_modules/qs/LICENSE b/node_modules/qs/LICENSE new file mode 100644 index 00000000..d4569487 --- /dev/null +++ b/node_modules/qs/LICENSE @@ -0,0 +1,28 @@ +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/node_modules/qs/README.md b/node_modules/qs/README.md new file mode 100644 index 00000000..8590cfd3 --- /dev/null +++ b/node_modules/qs/README.md @@ -0,0 +1,570 @@ +# qs [![Version Badge][2]][1] + +[![Build Status][3]][4] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +A querystring parsing and stringifying library with some added security. + +Lead Maintainer: [Jordan Harband](https://github.com/ljharb) + +The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). + +## Usage + +```javascript +var qs = require('qs'); +var assert = require('assert'); + +var obj = qs.parse('a=c'); +assert.deepEqual(obj, { a: 'c' }); + +var str = qs.stringify(obj); +assert.equal(str, 'a=c'); +``` + +### Parsing Objects + +[](#preventEval) +```javascript +qs.parse(string, [options]); +``` + +**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. +For example, the string `'foo[bar]=baz'` converts to: + +```javascript +assert.deepEqual(qs.parse('foo[bar]=baz'), { + foo: { + bar: 'baz' + } +}); +``` + +When using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: + +```javascript +var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); +assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } }); +``` + +By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. + +```javascript +var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); +assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); +``` + +URI encoded strings work too: + +```javascript +assert.deepEqual(qs.parse('a%5Bb%5D=c'), { + a: { b: 'c' } +}); +``` + +You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: + +```javascript +assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { + foo: { + bar: { + baz: 'foobarbaz' + } + } +}); +``` + +By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like +`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: + +```javascript +var expected = { + a: { + b: { + c: { + d: { + e: { + f: { + '[g][h][i]': 'j' + } + } + } + } + } + } +}; +var string = 'a[b][c][d][e][f][g][h][i]=j'; +assert.deepEqual(qs.parse(string), expected); +``` + +This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: + +```javascript +var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); +assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); +``` + +The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. + +For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: + +```javascript +var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); +assert.deepEqual(limited, { a: 'b' }); +``` + +To bypass the leading question mark, use `ignoreQueryPrefix`: + +```javascript +var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true }); +assert.deepEqual(prefixed, { a: 'b', c: 'd' }); +``` + +An optional delimiter can also be passed: + +```javascript +var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); +assert.deepEqual(delimited, { a: 'b', c: 'd' }); +``` + +Delimiters can be a regular expression too: + +```javascript +var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); +assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); +``` + +Option `allowDots` can be used to enable dot notation: + +```javascript +var withDots = qs.parse('a.b=c', { allowDots: true }); +assert.deepEqual(withDots, { a: { b: 'c' } }); +``` + +If you have to deal with legacy browsers or services, there's +also support for decoding percent-encoded octets as iso-8859-1: + +```javascript +var oldCharset = qs.parse('a=%A7', { charset: 'iso-8859-1' }); +assert.deepEqual(oldCharset, { a: '§' }); +``` + +Some services add an initial `utf8=✓` value to forms so that old +Internet Explorer versions are more likely to submit the form as +utf-8. Additionally, the server can check the value against wrong +encodings of the checkmark character and detect that a query string +or `application/x-www-form-urlencoded` body was *not* sent as +utf-8, eg. if the form had an `accept-charset` parameter or the +containing page had a different character set. + +**qs** supports this mechanism via the `charsetSentinel` option. +If specified, the `utf8` parameter will be omitted from the +returned object. It will be used to switch to `iso-8859-1`/`utf-8` +mode depending on how the checkmark is encoded. + +**Important**: When you specify both the `charset` option and the +`charsetSentinel` option, the `charset` will be overridden when +the request contains a `utf8` parameter from which the actual +charset can be deduced. In that sense the `charset` will behave +as the default charset rather than the authoritative charset. + +```javascript +var detectedAsUtf8 = qs.parse('utf8=%E2%9C%93&a=%C3%B8', { + charset: 'iso-8859-1', + charsetSentinel: true +}); +assert.deepEqual(detectedAsUtf8, { a: 'ø' }); + +// Browsers encode the checkmark as ✓ when submitting as iso-8859-1: +var detectedAsIso8859_1 = qs.parse('utf8=%26%2310003%3B&a=%F8', { + charset: 'utf-8', + charsetSentinel: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: 'ø' }); +``` + +If you want to decode the `&#...;` syntax to the actual character, +you can specify the `interpretNumericEntities` option as well: + +```javascript +var detectedAsIso8859_1 = qs.parse('a=%26%239786%3B', { + charset: 'iso-8859-1', + interpretNumericEntities: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: '☺' }); +``` + +It also works when the charset has been detected in `charsetSentinel` +mode. + +### Parsing Arrays + +**qs** can also parse arrays using a similar `[]` notation: + +```javascript +var withArray = qs.parse('a[]=b&a[]=c'); +assert.deepEqual(withArray, { a: ['b', 'c'] }); +``` + +You may specify an index as well: + +```javascript +var withIndexes = qs.parse('a[1]=c&a[0]=b'); +assert.deepEqual(withIndexes, { a: ['b', 'c'] }); +``` + +Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number +to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving +their order: + +```javascript +var noSparse = qs.parse('a[1]=b&a[15]=c'); +assert.deepEqual(noSparse, { a: ['b', 'c'] }); +``` + +Note that an empty string is also a value, and will be preserved: + +```javascript +var withEmptyString = qs.parse('a[]=&a[]=b'); +assert.deepEqual(withEmptyString, { a: ['', 'b'] }); + +var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); +assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); +``` + +**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will +instead be converted to an object with the index as the key. This is needed to handle cases when someone sent, for example, `a[999999999]` and it will take significant time to iterate over this huge array. + +```javascript +var withMaxIndex = qs.parse('a[100]=b'); +assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); +``` + +This limit can be overridden by passing an `arrayLimit` option: + +```javascript +var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); +assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); +``` + +To disable array parsing entirely, set `parseArrays` to `false`. + +```javascript +var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); +assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); +``` + +If you mix notations, **qs** will merge the two items into an object: + +```javascript +var mixedNotation = qs.parse('a[0]=b&a[b]=c'); +assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); +``` + +You can also create arrays of objects: + +```javascript +var arraysOfObjects = qs.parse('a[][b]=c'); +assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); +``` + +Some people use comma to join array, **qs** can parse it: +```javascript +var arraysOfObjects = qs.parse('a=b,c', { comma: true }) +assert.deepEqual(arraysOfObjects, { a: ['b', 'c'] }) +``` +(_this cannot convert nested objects, such as `a={b:1},{c:d}`_) + +### Stringifying + +[](#preventEval) +```javascript +qs.stringify(object, [options]); +``` + +When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: + +```javascript +assert.equal(qs.stringify({ a: 'b' }), 'a=b'); +assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); +``` + +This encoding can be disabled by setting the `encode` option to `false`: + +```javascript +var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); +assert.equal(unencoded, 'a[b]=c'); +``` + +Encoding can be disabled for keys by setting the `encodeValuesOnly` option to `true`: +```javascript +var encodedValues = qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true } +); +assert.equal(encodedValues,'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'); +``` + +This encoding can also be replaced by a custom encoding method set as `encoder` option: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) { + // Passed in values `a`, `b`, `c` + return // Return encoded string +}}) +``` + +_(Note: the `encoder` option does not apply if `encode` is `false`)_ + +Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str) { + // Passed in values `x`, `z` + return // Return decoded string +}}) +``` + +Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. + +When arrays are stringified, by default they are given explicit indices: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }); +// 'a[0]=b&a[1]=c&a[2]=d' +``` + +You may override this by setting the `indices` option to `false`: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); +// 'a=b&a=c&a=d' +``` + +You may use the `arrayFormat` option to specify the format of the output array: + +```javascript +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) +// 'a[0]=b&a[1]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) +// 'a[]=b&a[]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) +// 'a=b&a=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' }) +// 'a=b,c' +``` + +When objects are stringified, by default they use bracket notation: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }); +// 'a[b][c]=d&a[b][e]=f' +``` + +You may override this to use dot notation by setting the `allowDots` option to `true`: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true }); +// 'a.b.c=d&a.b.e=f' +``` + +Empty strings and null values will omit the value, but the equals sign (=) remains in place: + +```javascript +assert.equal(qs.stringify({ a: '' }), 'a='); +``` + +Key with no values (such as an empty object or array) will return nothing: + +```javascript +assert.equal(qs.stringify({ a: [] }), ''); +assert.equal(qs.stringify({ a: {} }), ''); +assert.equal(qs.stringify({ a: [{}] }), ''); +assert.equal(qs.stringify({ a: { b: []} }), ''); +assert.equal(qs.stringify({ a: { b: {}} }), ''); +``` + +Properties that are set to `undefined` will be omitted entirely: + +```javascript +assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); +``` + +The query string may optionally be prepended with a question mark: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d'); +``` + +The delimiter may be overridden with stringify as well: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); +``` + +If you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option: + +```javascript +var date = new Date(7); +assert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A')); +assert.equal( + qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }), + 'a=7' +); +``` + +You may use the `sort` option to affect the order of parameter keys: + +```javascript +function alphabeticalSort(a, b) { + return a.localeCompare(b); +} +assert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort }), 'a=c&b=f&z=y'); +``` + +Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. +If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you +pass an array, it will be used to select properties and array indices for stringification: + +```javascript +function filterFunc(prefix, value) { + if (prefix == 'b') { + // Return an `undefined` value to omit a property. + return; + } + if (prefix == 'e[f]') { + return value.getTime(); + } + if (prefix == 'e[g][0]') { + return value * 2; + } + return value; +} +qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); +// 'a=b&c=d&e[f]=123&e[g][0]=4' +qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); +// 'a=b&e=f' +qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); +// 'a[0]=b&a[2]=d' +``` + +### Handling of `null` values + +By default, `null` values are treated like empty strings: + +```javascript +var withNull = qs.stringify({ a: null, b: '' }); +assert.equal(withNull, 'a=&b='); +``` + +Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. + +```javascript +var equalsInsensitive = qs.parse('a&b='); +assert.deepEqual(equalsInsensitive, { a: '', b: '' }); +``` + +To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` +values have no `=` sign: + +```javascript +var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); +assert.equal(strictNull, 'a&b='); +``` + +To parse values without `=` back to `null` use the `strictNullHandling` flag: + +```javascript +var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); +assert.deepEqual(parsedStrictNull, { a: null, b: '' }); +``` + +To completely skip rendering keys with `null` values, use the `skipNulls` flag: + +```javascript +var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); +assert.equal(nullsSkipped, 'a=b'); +``` + +If you're communicating with legacy systems, you can switch to `iso-8859-1` +using the `charset` option: + +```javascript +var iso = qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }); +assert.equal(iso, '%E6=%E6'); +``` + +Characters that don't exist in `iso-8859-1` will be converted to numeric +entities, similar to what browsers do: + +```javascript +var numeric = qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }); +assert.equal(numeric, 'a=%26%239786%3B'); +``` + +You can use the `charsetSentinel` option to announce the character by +including an `utf8=✓` parameter with the proper encoding if the checkmark, +similar to what Ruby on Rails and others do when submitting forms. + +```javascript +var sentinel = qs.stringify({ a: '☺' }, { charsetSentinel: true }); +assert.equal(sentinel, 'utf8=%E2%9C%93&a=%E2%98%BA'); + +var isoSentinel = qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }); +assert.equal(isoSentinel, 'utf8=%26%2310003%3B&a=%E6'); +``` + +### Dealing with special character sets + +By default the encoding and decoding of characters is done in `utf-8`, +and `iso-8859-1` support is also built in via the `charset` parameter. + +If you wish to encode querystrings to a different character set (i.e. +[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the +[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: + +```javascript +var encoder = require('qs-iconv/encoder')('shift_jis'); +var shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder }); +assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I'); +``` + +This also works for decoding of query strings: + +```javascript +var decoder = require('qs-iconv/decoder')('shift_jis'); +var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder }); +assert.deepEqual(obj, { a: 'こんにちは!' }); +``` + +### RFC 3986 and RFC 1738 space encoding + +RFC3986 used as default option and encodes ' ' to *%20* which is backward compatible. +In the same time, output can be stringified as per RFC1738 with ' ' equal to '+'. + +``` +assert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c'); +``` + +[1]: https://npmjs.org/package/qs +[2]: http://versionbadg.es/ljharb/qs.svg +[3]: https://api.travis-ci.org/ljharb/qs.svg +[4]: https://travis-ci.org/ljharb/qs +[5]: https://david-dm.org/ljharb/qs.svg +[6]: https://david-dm.org/ljharb/qs +[7]: https://david-dm.org/ljharb/qs/dev-status.svg +[8]: https://david-dm.org/ljharb/qs?type=dev +[9]: https://ci.testling.com/ljharb/qs.png +[10]: https://ci.testling.com/ljharb/qs +[11]: https://nodei.co/npm/qs.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/qs.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/qs.svg +[downloads-url]: http://npm-stat.com/charts.html?package=qs diff --git a/node_modules/qs/dist/qs.js b/node_modules/qs/dist/qs.js new file mode 100644 index 00000000..17f4e600 --- /dev/null +++ b/node_modules/qs/dist/qs.js @@ -0,0 +1,782 @@ +(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 -1) { + val = val.split(','); + } + + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], 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 === '[]' && options.parseArrays) { + 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 (!options.parseArrays && cleanRoot === '') { + obj = { 0: leaf }; + } else 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); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new Error('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + return { + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + depth: typeof opts.depth === 'number' ? opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + 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 has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { // eslint-disable-line func-name-matching + return prefix + '[]'; + }, + comma: 'comma', + 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 isArray = Array.isArray; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + formatter: formats.formatters[formats['default']], + // deprecated + indices: 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, + charset +) { + var obj = object; + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = obj.join(','); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset) : 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, charset); + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (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 (isArray(obj)) { + pushToArray(values, stringify( + obj[key], + typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter, + encodeValuesOnly, + charset + )); + } else { + pushToArray(values, stringify( + obj[key], + prefix + (allowDots ? '.' + key : '[' + key + ']'), + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter, + encodeValuesOnly, + charset + )); + } + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && 'indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = 'indices'; + } + + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + options.strictNullHandling, + options.skipNulls, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.formatter, + options.encodeValuesOnly, + options.charset + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('✓') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; + +},{"./formats":1,"./utils":5}],5:[function(require,module,exports){ +'use strict'; + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +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) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (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; + } + } +}; + +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 (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, 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, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var encode = function encode(str, defaultEncoder, charset) { + // 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); + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + 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); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + merge: merge +}; + +},{}]},{},[2])(2) +}); diff --git a/node_modules/qs/lib/formats.js b/node_modules/qs/lib/formats.js new file mode 100644 index 00000000..df459975 --- /dev/null +++ b/node_modules/qs/lib/formats.js @@ -0,0 +1,18 @@ +'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/node_modules/qs/lib/index.js b/node_modules/qs/lib/index.js new file mode 100644 index 00000000..0d6a97dc --- /dev/null +++ b/node_modules/qs/lib/index.js @@ -0,0 +1,11 @@ +'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/node_modules/qs/lib/parse.js b/node_modules/qs/lib/parse.js new file mode 100644 index 00000000..d81628b5 --- /dev/null +++ b/node_modules/qs/lib/parse.js @@ -0,0 +1,242 @@ +'use strict'; + +var utils = require('./utils'); + +var has = Object.prototype.hasOwnProperty; + +var defaults = { + allowDots: false, + allowPrototypes: false, + arrayLimit: 20, + charset: 'utf-8', + charsetSentinel: false, + comma: false, + decoder: utils.decode, + delimiter: '&', + depth: 5, + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1000, + parseArrays: true, + plainObjects: false, + strictNullHandling: false +}; + +var interpretNumericEntities = function (str) { + return str.replace(/&#(\d+);/g, function ($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); +}; + +// This is what browsers will submit when the ✓ character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the ✓ character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓') + +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); + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + 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, charset); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset); + val = options.decoder(part.slice(pos + 1), defaults.decoder, charset); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(val); + } + + if (val && options.comma && val.indexOf(',') > -1) { + val = val.split(','); + } + + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], 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 === '[]' && options.parseArrays) { + 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 (!options.parseArrays && cleanRoot === '') { + obj = { 0: leaf }; + } else 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); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new Error('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + return { + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + depth: typeof opts.depth === 'number' ? opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + 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/node_modules/qs/lib/stringify.js b/node_modules/qs/lib/stringify.js new file mode 100644 index 00000000..7455049c --- /dev/null +++ b/node_modules/qs/lib/stringify.js @@ -0,0 +1,269 @@ +'use strict'; + +var utils = require('./utils'); +var formats = require('./formats'); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { // eslint-disable-line func-name-matching + return prefix + '[]'; + }, + comma: 'comma', + 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 isArray = Array.isArray; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + formatter: formats.formatters[formats['default']], + // deprecated + indices: 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, + charset +) { + var obj = object; + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = obj.join(','); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset) : 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, charset); + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (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 (isArray(obj)) { + pushToArray(values, stringify( + obj[key], + typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter, + encodeValuesOnly, + charset + )); + } else { + pushToArray(values, stringify( + obj[key], + prefix + (allowDots ? '.' + key : '[' + key + ']'), + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + formatter, + encodeValuesOnly, + charset + )); + } + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && 'indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = 'indices'; + } + + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + options.strictNullHandling, + options.skipNulls, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.formatter, + options.encodeValuesOnly, + options.charset + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('✓') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; diff --git a/node_modules/qs/lib/utils.js b/node_modules/qs/lib/utils.js new file mode 100644 index 00000000..1b219cdd --- /dev/null +++ b/node_modules/qs/lib/utils.js @@ -0,0 +1,230 @@ +'use strict'; + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +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) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (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; + } + } +}; + +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 (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, 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, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var encode = function encode(str, defaultEncoder, charset) { + // 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); + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + 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); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + merge: merge +}; diff --git a/node_modules/qs/package.json b/node_modules/qs/package.json new file mode 100644 index 00000000..bf832478 --- /dev/null +++ b/node_modules/qs/package.json @@ -0,0 +1,87 @@ +{ + "_from": "qs@6.7.0", + "_id": "qs@6.7.0", + "_inBundle": false, + "_integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "_location": "/qs", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "qs@6.7.0", + "name": "qs", + "escapedName": "qs", + "rawSpec": "6.7.0", + "saveSpec": null, + "fetchSpec": "6.7.0" + }, + "_requiredBy": [ + "/body-parser", + "/express" + ], + "_resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "_shasum": "41dc1a015e3d581f1621776be31afb2876a9b1bc", + "_spec": "qs@6.7.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "bugs": { + "url": "https://github.com/ljharb/qs/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "devDependencies": { + "@ljharb/eslint-config": "^13.1.1", + "browserify": "^16.2.3", + "covert": "^1.1.1", + "editorconfig-tools": "^0.1.1", + "eslint": "^5.15.3", + "evalmd": "^0.0.17", + "for-each": "^0.3.3", + "iconv-lite": "^0.4.24", + "mkdirp": "^0.5.1", + "object-inspect": "^1.6.0", + "qs-iconv": "^1.0.4", + "safe-publish-latest": "^1.1.2", + "safer-buffer": "^2.1.2", + "tape": "^4.10.1" + }, + "engines": { + "node": ">=0.6" + }, + "homepage": "https://github.com/ljharb/qs", + "keywords": [ + "querystring", + "qs", + "query", + "url", + "parse", + "stringify" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "qs", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/qs.git" + }, + "scripts": { + "coverage": "covert test", + "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", + "lint": "eslint lib/*.js test/*.js", + "postlint": "editorconfig-tools check * lib/* test/*", + "prepublish": "safe-publish-latest && npm run dist", + "pretest": "npm run --silent readme && npm run --silent lint", + "readme": "evalmd README.md", + "test": "npm run --silent coverage", + "tests-only": "node test" + }, + "version": "6.7.0" +} diff --git a/node_modules/qs/test/.eslintrc b/node_modules/qs/test/.eslintrc new file mode 100644 index 00000000..9ebbb921 --- /dev/null +++ b/node_modules/qs/test/.eslintrc @@ -0,0 +1,17 @@ +{ + "rules": { + "array-bracket-newline": 0, + "array-element-newline": 0, + "consistent-return": 2, + "function-paren-newline": 0, + "max-lines": 0, + "max-lines-per-function": 0, + "max-nested-callbacks": [2, 3], + "max-statements": 0, + "no-buffer-constructor": 0, + "no-extend-native": 0, + "no-magic-numbers": 0, + "object-curly-newline": 0, + "sort-keys": 0 + } +} diff --git a/node_modules/qs/test/index.js b/node_modules/qs/test/index.js new file mode 100644 index 00000000..5e6bc8fb --- /dev/null +++ b/node_modules/qs/test/index.js @@ -0,0 +1,7 @@ +'use strict'; + +require('./parse'); + +require('./stringify'); + +require('./utils'); diff --git a/node_modules/qs/test/parse.js b/node_modules/qs/test/parse.js new file mode 100644 index 00000000..89677899 --- /dev/null +++ b/node_modules/qs/test/parse.js @@ -0,0 +1,676 @@ +'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('parses jquery-param strings', function (st) { + // readable = 'filter[0][]=int1&filter[0][]==&filter[0][]=77&filter[]=and&filter[2][]=int2&filter[2][]==&filter[2][]=8' + var encoded = 'filter%5B0%5D%5B%5D=int1&filter%5B0%5D%5B%5D=%3D&filter%5B0%5D%5B%5D=77&filter%5B%5D=and&filter%5B2%5D%5B%5D=int2&filter%5B2%5D%5B%5D=%3D&filter%5B2%5D%5B%5D=8'; + var expected = { filter: [['int1', '=', '77'], 'and', ['int2', '=', '8']] }; + st.deepEqual(qs.parse(encoded), expected); + 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', 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) { + var indices = qs.parse('a[0]=b&a[1]=c', { parseArrays: false }); + st.deepEqual(indices, { a: { 0: 'b', 1: 'c' } }); + st.equal(Array.isArray(indices.a), false, 'parseArrays:false, indices case is not an array'); + + var emptyBrackets = qs.parse('a[]=b', { parseArrays: false }); + st.deepEqual(emptyBrackets, { a: { 0: 'b' } }); + st.equal(Array.isArray(emptyBrackets.a), false, 'parseArrays:false, empty brackets case is not an array'); + + 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 string with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo=bar,tee', { comma: true }), { foo: ['bar', 'tee'] }); + st.deepEqual(qs.parse('foo[bar]=coffee,tee', { comma: true }), { foo: { bar: ['coffee', 'tee'] } }); + st.deepEqual(qs.parse('foo=', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true, strictNullHandling: true }), { foo: null }); + 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 String(iconv.decode(SaferBuffer.from(result), 'shift_jis')); + } + }), { 県: '大阪府' }); + 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.test('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.parse('a=b', { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('parses an iso-8859-1 string if asked to', function (st) { + st.deepEqual(qs.parse('%A2=%BD', { charset: 'iso-8859-1' }), { '¢': '½' }); + st.end(); + }); + + var urlEncodedCheckmarkInUtf8 = '%E2%9C%93'; + var urlEncodedOSlashInUtf8 = '%C3%B8'; + var urlEncodedNumCheckmark = '%26%2310003%3B'; + var urlEncodedNumSmiley = '%26%239786%3B'; + + t.test('prefers an utf-8 charset specified by the utf8 sentinel to a default charset of iso-8859-1', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'iso-8859-1' }), { ø: 'ø' }); + st.end(); + }); + + t.test('prefers an iso-8859-1 charset specified by the utf8 sentinel to a default charset of utf-8', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { 'ø': 'ø' }); + st.end(); + }); + + t.test('does not require the utf8 sentinel to be defined before the parameters whose decoding it affects', function (st) { + st.deepEqual(qs.parse('a=' + urlEncodedOSlashInUtf8 + '&utf8=' + urlEncodedNumCheckmark, { charsetSentinel: true, charset: 'utf-8' }), { a: 'ø' }); + st.end(); + }); + + t.test('should ignore an utf8 sentinel with an unknown value', function (st) { + st.deepEqual(qs.parse('utf8=foo&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { ø: 'ø' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to utf-8 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { ø: 'ø' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to iso-8859-1 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { 'ø': 'ø' }); + st.end(); + }); + + t.test('interprets numeric entities in iso-8859-1 when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1', interpretNumericEntities: true }), { foo: '☺' }); + st.end(); + }); + + t.test('handles a custom decoder returning `null`, in the `iso-8859-1` charset, when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=&bar=' + urlEncodedNumSmiley, { + charset: 'iso-8859-1', + decoder: function (str, defaultDecoder, charset) { + return str ? defaultDecoder(str, defaultDecoder, charset) : null; + }, + interpretNumericEntities: true + }), { foo: null, bar: '☺' }); + st.end(); + }); + + t.test('does not interpret numeric entities in iso-8859-1 when `interpretNumericEntities` is absent', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1' }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret numeric entities when the charset is utf-8, even when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'utf-8', interpretNumericEntities: true }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret %uXXXX syntax in iso-8859-1 mode', function (st) { + st.deepEqual(qs.parse('%u263A=%u263A', { charset: 'iso-8859-1' }), { '%u263A': '%u263A' }); + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/qs/test/stringify.js b/node_modules/qs/test/stringify.js new file mode 100644 index 00000000..53041c2e --- /dev/null +++ b/node_modules/qs/test/stringify.js @@ -0,0 +1,679 @@ +'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('stringifies falsy values', function (st) { + st.equal(qs.stringify(undefined), ''); + st.equal(qs.stringify(null), ''); + st.equal(qs.stringify(null, { strictNullHandling: true }), ''); + st.equal(qs.stringify(false), ''); + st.equal(qs.stringify(0), ''); + 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 nested falsy values', function (st) { + st.equal(qs.stringify({ a: { b: { c: null } } }), 'a%5Bb%5D%5Bc%5D='); + st.equal(qs.stringify({ a: { b: { c: null } } }, { strictNullHandling: true }), 'a%5Bb%5D%5Bc%5D'); + st.equal(qs.stringify({ a: { b: { c: false } } }), 'a%5Bb%5D%5Bc%5D=false'); + 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'] }, { arrayFormat: 'comma' }), + 'a=b%2Cc%2Cd', + 'comma => comma' + ); + 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'] } }, { arrayFormat: 'comma' }), 'a%5Bb%5D=c%2Cd'); // a[b]=c,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, arrayFormat: 'comma' } + ), + 'a.b=c,d', + 'comma: stringifies with dots + comma' + ); + 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', // a[0][b]=c + 'indices => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }), + 'a%5B%5D%5Bb%5D=c', // a[][b]=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('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.stringify({ a: 'b' }, { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('respects a charset of iso-8859-1', function (st) { + st.equal(qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }), '%E6=%E6'); + st.end(); + }); + + t.test('encodes unrepresentable chars as numeric entities in iso-8859-1 mode', function (st) { + st.equal(qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }), 'a=%26%239786%3B'); + st.end(); + }); + + t.test('respects an explicit charset of utf-8 (the default)', function (st) { + st.equal(qs.stringify({ a: 'æ' }, { charset: 'utf-8' }), 'a=%C3%A6'); + st.end(); + }); + + t.test('adds the right sentinel when instructed to and the charset is utf-8', function (st) { + st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'utf-8' }), 'utf8=%E2%9C%93&a=%C3%A6'); + st.end(); + }); + + t.test('adds the right sentinel when instructed to and the charset is iso-8859-1', function (st) { + st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }), 'utf8=%26%2310003%3B&a=%E6'); + st.end(); + }); + + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.stringify({}, options); + st.deepEqual(options, {}); + st.end(); + }); + + t.test('strictNullHandling works with custom filter', function (st) { + var filter = function (prefix, value) { + return value; + }; + + var options = { strictNullHandling: true, filter: filter }; + st.equal(qs.stringify({ key: null }, options), 'key'); + st.end(); + }); + + t.test('strictNullHandling works with null serializeDate', function (st) { + var serializeDate = function () { + return null; + }; + var options = { strictNullHandling: true, serializeDate: serializeDate }; + var date = new Date(); + st.equal(qs.stringify({ key: date }, options), 'key'); + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/qs/test/utils.js b/node_modules/qs/test/utils.js new file mode 100644 index 00000000..da31ce53 --- /dev/null +++ b/node_modules/qs/test/utils.js @@ -0,0 +1,136 @@ +'use strict'; + +var test = require('tape'); +var inspect = require('object-inspect'); +var SaferBuffer = require('safer-buffer').Buffer; +var forEach = require('for-each'); +var utils = require('../lib/utils'); + +test('merge()', function (t) { + t.deepEqual(utils.merge(null, true), [null, true], 'merges true into null'); + + t.deepEqual(utils.merge(null, [42]), [null, 42], 'merges null into an array'); + + 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'] }); + + var noOptionsNonObjectSource = utils.merge({ foo: 'baz' }, 'bar'); + t.deepEqual(noOptionsNonObjectSource, { foo: 'baz', bar: true }); + + t.test( + 'avoids invoking array setters unnecessarily', + { skip: typeof Object.defineProperty !== 'function' }, + function (st) { + var setCount = 0; + var getCount = 0; + var observed = []; + Object.defineProperty(observed, 0, { + get: function () { + getCount += 1; + return { bar: 'baz' }; + }, + set: function () { setCount += 1; } + }); + utils.merge(observed, [null]); + st.equal(setCount, 0); + st.equal(getCount, 1); + observed[0] = observed[0]; // eslint-disable-line no-self-assign + st.equal(setCount, 1); + st.equal(getCount, 2); + st.end(); + } + ); + + 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(); +}); + +test('combine()', function (t) { + t.test('both arrays', function (st) { + var a = [1]; + var b = [2]; + var combined = utils.combine(a, b); + + st.deepEqual(a, [1], 'a is not mutated'); + st.deepEqual(b, [2], 'b is not mutated'); + st.notEqual(a, combined, 'a !== combined'); + st.notEqual(b, combined, 'b !== combined'); + st.deepEqual(combined, [1, 2], 'combined is a + b'); + + st.end(); + }); + + t.test('one array, one non-array', function (st) { + var aN = 1; + var a = [aN]; + var bN = 2; + var b = [bN]; + + var combinedAnB = utils.combine(aN, b); + st.deepEqual(b, [bN], 'b is not mutated'); + st.notEqual(aN, combinedAnB, 'aN + b !== aN'); + st.notEqual(a, combinedAnB, 'aN + b !== a'); + st.notEqual(bN, combinedAnB, 'aN + b !== bN'); + st.notEqual(b, combinedAnB, 'aN + b !== b'); + st.deepEqual([1, 2], combinedAnB, 'first argument is array-wrapped when not an array'); + + var combinedABn = utils.combine(a, bN); + st.deepEqual(a, [aN], 'a is not mutated'); + st.notEqual(aN, combinedABn, 'a + bN !== aN'); + st.notEqual(a, combinedABn, 'a + bN !== a'); + st.notEqual(bN, combinedABn, 'a + bN !== bN'); + st.notEqual(b, combinedABn, 'a + bN !== b'); + st.deepEqual([1, 2], combinedABn, 'second argument is array-wrapped when not an array'); + + st.end(); + }); + + t.test('neither is an array', function (st) { + var combined = utils.combine(1, 2); + st.notEqual(1, combined, '1 + 2 !== 1'); + st.notEqual(2, combined, '1 + 2 !== 2'); + st.deepEqual([1, 2], combined, 'both arguments are array-wrapped when not an array'); + + st.end(); + }); + + t.end(); +}); + +test('isBuffer()', function (t) { + forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], function () {}, /a/g], function (x) { + t.equal(utils.isBuffer(x), false, inspect(x) + ' is not a buffer'); + }); + + var fakeBuffer = { constructor: Buffer }; + t.equal(utils.isBuffer(fakeBuffer), false, 'fake buffer is not a buffer'); + + var saferBuffer = SaferBuffer.from('abc'); + t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer'); + + var buffer = Buffer.from ? Buffer.from('abc') : new Buffer('abc'); + t.equal(utils.isBuffer(buffer), true, 'real Buffer instance is a buffer'); + t.end(); +}); diff --git a/node_modules/querystring/.History.md.un~ b/node_modules/querystring/.History.md.un~ new file mode 100644 index 0000000000000000000000000000000000000000..c96a7dd8c8c86e2e4b6af0478b1bc122b929528d GIT binary patch literal 7960 zcmeI1O>0v@6ozk__}SL4mLj+rD1;VG%uP&mDblr2L05iY+Y|yOx0H0*MfHaW;zHes zKR`F`T=@gs`hk0K;X==IGN(>L?aJBB3n!DAdy@?3;XU`)S!)7yiU;&V2&^z8MM z_O~xGQz3{XCeC6fM$1j%OzWXru>3x=E^Ac0e$!mpo5+#Xq5{S_vTkUMz zuW+=IJ^08`5g#ydh*13&{hirr8vkDgRy%8%;>fZe=l$2h@R$S`78YHj-l(_SW!G%v zd987!mUrA@dr#qUMp?pSNJ_l70&gjVNBWOSOu%a%Tp;ai+aKUqn`0q4k1WKLz+3(o zyv!FzkZ`p#0hgesNr*^7R0*PsAtG=bmpCcGHEe#=fQ9Dmz#6q#%RwOxR6L$U>@xmX=tfkh&gPir=9Y8Y%7Y^LoR2jl5aQTOJ*#w5#Al zqW${GB%vb7^QPhnO@ ZFiAa69(m~N+kCx4vvqx5-`@NB>JPML-n9S# literal 0 HcmV?d00001 diff --git a/node_modules/querystring/.Readme.md.un~ b/node_modules/querystring/.Readme.md.un~ new file mode 100644 index 0000000000000000000000000000000000000000..71613b59ba1b551647a6ba1b47180a44ac70212b GIT binary patch literal 3225 zcmeHJyGjE=6dhxHHnxHY5fx2g(wK;m2tL4CM2U#VlB~&Ul8rO75g(v-*8YIKrG>3O zV4?PwVrgY5de3Y|*AUQ%YqbYXhTNHb%sprCofWHezFeNSA6e+|G>1{HPna%a9q zp?4>dB~Fx_m_f}bEc`<0w6uAF!lBtZI=41*ERw;dU*sfHzCq6QQM z(+C8rAq#$jR2#4V2qA}7&H7al*JZhx3SRRAv~Tn57%zhgoI^2MwfumpG2qeK*kR#H{5#i5Mo3~;7 L>#09+@^tYI$G;b9 literal 0 HcmV?d00001 diff --git a/node_modules/querystring/.package.json.un~ b/node_modules/querystring/.package.json.un~ new file mode 100644 index 0000000000000000000000000000000000000000..d86fe314c5aaeffce89d94a968668c5dc133ba5b GIT binary patch literal 5710 zcmeHLOKTKC5T3-u_&`k*#kb>v5n;0rb>mwIL_}{n=tV>}yR&9w=i$t5j7Sb%Jt!(3 z#j~D7Px=RZ9K@@FM-@en9!0;erhB)O4H6P_n}%advIf~Yu2>IpEI{p6-nwZjxRQ_iVj17;! z7CJ2J*JjwJ>o);g0aDRz+b#V7{%--S(oLa`NW0+oTY(hIAm$NE$+IKoH;x2dTe_-tEeJ1%Z=M1ZOox*jx?OI z;BL#4u&_;g6>?JdLDdHdv+jf{mN*-jUEZjtZacu}T8rR|E0G&EBxgdCoe_|JP<3oZ zXPoEn(AB0BU5^`)>tD`Yi8Hi<9^r$q^VYWWHHj*1MG`eAH4Fdhb|Wvc+)NN4N9X%K3+ zEKs&QiS=YhP9l&-zN|bI3e_tiYvT!kL8pQ(EANE5Xp-L@KxffBJhNzqo*gxPshdMm zK?etI-&BrA!L`_lYweI$<0LH0a(RkNUQlh;oj4y(l>J8FxwY&0ao5jRyeew2 zos-I(uLPbK_$!kb(xC? zt2)(Y$kTvqZ^(7(P+!ME0h4Y(wM`b+Ts#Sv$$c2M2V_`zKp#dnPzh76GZof@h|h5W zrq(2C3>?Ad7${aGii>=7F@&MYL=<>>1t?2eW`Ch`$$B+bb0en~OsT8j8I-=rHMHF} zQ!I6w(N~VkwQ}StEA1tvTv3d)?|!(`M!&jb5IRx0!$fg^vZ61UbrHAJ%kDHfW@cd~ z(O;#|l`L}{QeLLg%tDteqM4b6{W(rzm1mM!mM6vG7$z~Zi~!6m;A}dp-<-?}fHC2X k7WsA2O1YvJ7SZOxmG@1!>PxuN-yAeobAJIY-TeCGFNStew*UYD literal 0 HcmV?d00001 diff --git a/node_modules/querystring/.travis.yml b/node_modules/querystring/.travis.yml new file mode 100644 index 00000000..895dbd36 --- /dev/null +++ b/node_modules/querystring/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.6 + - 0.8 diff --git a/node_modules/querystring/History.md b/node_modules/querystring/History.md new file mode 100644 index 00000000..4fddbaf7 --- /dev/null +++ b/node_modules/querystring/History.md @@ -0,0 +1,20 @@ +# 0.2.0 / 2013-02-21 + + - Refactor into function per-module idiomatic style. + - Improved test coverage. + +# 0.1.0 / 2011-12-13 + + - Minor project reorganization + +# 0.0.3 / 2011-04-16 + - Support for AMD module loaders + +# 0.0.2 / 2011-04-16 + + - Ported unit tests + - Removed functionality that depended on Buffers + +# 0.0.1 / 2011-04-15 + + - Initial release diff --git a/node_modules/querystring/License.md b/node_modules/querystring/License.md new file mode 100644 index 00000000..fc80e85f --- /dev/null +++ b/node_modules/querystring/License.md @@ -0,0 +1,19 @@ + +Copyright 2012 Irakli Gozalishvili. 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/node_modules/querystring/Readme.md b/node_modules/querystring/Readme.md new file mode 100644 index 00000000..a4fe2520 --- /dev/null +++ b/node_modules/querystring/Readme.md @@ -0,0 +1,15 @@ +# querystring + +[![Build Status](https://secure.travis-ci.org/Gozala/querystring.png)](http://travis-ci.org/Gozala/querystring) + + +[![Browser support](http://ci.testling.com/Gozala/querystring.png)](http://ci.testling.com/Gozala/querystring) + + + +Node's querystring module for all engines. + +## Install ## + + npm install querystring + diff --git a/node_modules/querystring/decode.js b/node_modules/querystring/decode.js new file mode 100644 index 00000000..a6518b8f --- /dev/null +++ b/node_modules/querystring/decode.js @@ -0,0 +1,80 @@ +// 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. + +'use strict'; + +// If obj.hasOwnProperty has been overridden, then calling +// obj.hasOwnProperty(prop) will break. +// See: https://github.com/joyent/node/issues/1707 +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +module.exports = function(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + // maxKeys <= 0 means that we should not limit keys count + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty(obj, k)) { + obj[k] = v; + } else if (Array.isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +}; diff --git a/node_modules/querystring/encode.js b/node_modules/querystring/encode.js new file mode 100644 index 00000000..4f2b561b --- /dev/null +++ b/node_modules/querystring/encode.js @@ -0,0 +1,64 @@ +// 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. + +'use strict'; + +var stringifyPrimitive = function(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +}; + +module.exports = function(obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return Object.keys(obj).map(function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (Array.isArray(obj[k])) { + return obj[k].map(function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +}; diff --git a/node_modules/querystring/index.js b/node_modules/querystring/index.js new file mode 100644 index 00000000..99826ea8 --- /dev/null +++ b/node_modules/querystring/index.js @@ -0,0 +1,4 @@ +'use strict'; + +exports.decode = exports.parse = require('./decode'); +exports.encode = exports.stringify = require('./encode'); diff --git a/node_modules/querystring/package.json b/node_modules/querystring/package.json new file mode 100644 index 00000000..e8345d25 --- /dev/null +++ b/node_modules/querystring/package.json @@ -0,0 +1,100 @@ +{ + "_from": "querystring@0.2.0", + "_id": "querystring@0.2.0", + "_inBundle": false, + "_integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "_location": "/querystring", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "querystring@0.2.0", + "name": "querystring", + "escapedName": "querystring", + "rawSpec": "0.2.0", + "saveSpec": null, + "fetchSpec": "0.2.0" + }, + "_requiredBy": [ + "/gravatar" + ], + "_resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "_shasum": "b209849203bb25df820da756e747005878521620", + "_spec": "querystring@0.2.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\gravatar", + "author": { + "name": "Irakli Gozalishvili", + "email": "rfobic@gmail.com" + }, + "bugs": { + "url": "http://github.com/Gozala/querystring/issues/" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Node's querystring module for all engines.", + "devDependencies": { + "phantomify": "~0.x.0", + "retape": "~0.x.0", + "tape": "~0.1.5", + "test": "~0.x.0" + }, + "engines": { + "node": ">=0.4.x" + }, + "homepage": "https://github.com/Gozala/querystring#readme", + "id": "querystring", + "keywords": [ + "commonjs", + "query", + "querystring" + ], + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/Gozala/enchain/License.md" + } + ], + "name": "querystring", + "repository": { + "type": "git", + "url": "git://github.com/Gozala/querystring.git", + "web": "https://github.com/Gozala/querystring" + }, + "scripts": { + "test": "npm run test-node && npm run test-browser && npm run test-tap", + "test-browser": "node ./node_modules/phantomify/bin/cmd.js ./test/common-index.js", + "test-node": "node ./test/common-index.js", + "test-tap": "node ./test/tap-index.js" + }, + "testling": { + "files": "test/tap-index.js", + "browsers": { + "iexplore": [ + 9, + 10 + ], + "chrome": [ + 16, + 20, + 25, + "canary" + ], + "firefox": [ + 10, + 15, + 16, + 17, + 18, + "nightly" + ], + "safari": [ + 5, + 6 + ], + "opera": [ + 12 + ] + } + }, + "version": "0.2.0" +} diff --git a/node_modules/querystring/test/.index.js.un~ b/node_modules/querystring/test/.index.js.un~ new file mode 100644 index 0000000000000000000000000000000000000000..898eceddc9e485e85275e41f9b8b98294bb3fe08 GIT binary patch literal 975 zcmWH`%$*;a=aT=Ffr(>^0h6blXhl42hkT^^Cju)3aORMz^9E7#J=A zF*0BTa+sh3AR2}l0?m@ovVde68R9P>DS$G8!VCjM7vN0bq2T0Y?V| z!&eEQ*`RoY1wSY%7)%?%(FA6L_)q|fPnbG}(P)AN3$18)G%;e2CfTCY!qUv5R1Kw) b)Z!8)O}(PhJdM ; :'); + }); +}; + +exports['test the weird objects, that they get parsed properly'] = function(assert) { + qsWeirdObjects.forEach(function(testCase) { + assert.deepEqual(testCase[2], qs.parse(testCase[1]), + 'parse ' + testCase[1]); + }); +}; + +exports['test non munge test cases'] = function(assert) { + qsNoMungeTestCases.forEach(function(testCase) { + assert.deepEqual(testCase[0], qs.stringify(testCase[1], '&', '=', false), + 'stringify ' + JSON.stringify(testCase[1]) + ' -> & ='); + }); +}; + +exports['test the nested qs-in-qs case'] = function(assert) { + var f = qs.parse('a=b&q=x%3Dy%26y%3Dz'); + f.q = qs.parse(f.q); + assert.deepEqual(f, { a: 'b', q: { x: 'y', y: 'z' } }, + 'parse a=b&q=x%3Dy%26y%3Dz'); +}; + +exports['test nested in colon'] = function(assert) { + var f = qs.parse('a:b;q:x%3Ay%3By%3Az', ';', ':'); + f.q = qs.parse(f.q, ';', ':'); + assert.deepEqual(f, { a: 'b', q: { x: 'y', y: 'z' } }, + 'parse a:b;q:x%3Ay%3By%3Az -> ; :'); +}; + +exports['test stringifying'] = function(assert) { + qsTestCases.forEach(function(testCase) { + assert.equal(testCase[1], qs.stringify(testCase[2]), + 'stringify ' + JSON.stringify(testCase[2])); + }); + + qsColonTestCases.forEach(function(testCase) { + assert.equal(testCase[1], qs.stringify(testCase[2], ';', ':'), + 'stringify ' + JSON.stringify(testCase[2]) + ' -> ; :'); + }); + + qsWeirdObjects.forEach(function(testCase) { + assert.equal(testCase[1], qs.stringify(testCase[0]), + 'stringify ' + JSON.stringify(testCase[0])); + }); +}; + +exports['test stringifying nested'] = function(assert) { + var f = qs.stringify({ + a: 'b', + q: qs.stringify({ + x: 'y', + y: 'z' + }) + }); + assert.equal(f, 'a=b&q=x%3Dy%26y%3Dz', + JSON.stringify({ + a: 'b', + 'qs.stringify -> q': { + x: 'y', + y: 'z' + } + })); + + var threw = false; + try { qs.parse(undefined); } catch(error) { threw = true; } + assert.ok(!threw, "does not throws on undefined"); +}; + +exports['test nested in colon'] = function(assert) { + var f = qs.stringify({ + a: 'b', + q: qs.stringify({ + x: 'y', + y: 'z' + }, ';', ':') + }, ';', ':'); + assert.equal(f, 'a:b;q:x%3Ay%3By%3Az', + 'stringify ' + JSON.stringify({ + a: 'b', + 'qs.stringify -> q': { + x: 'y', + y: 'z' + } + }) + ' -> ; : '); + + + assert.deepEqual({}, qs.parse(), 'parse undefined'); +}; diff --git a/node_modules/querystring/test/tap-index.js b/node_modules/querystring/test/tap-index.js new file mode 100644 index 00000000..70679b3f --- /dev/null +++ b/node_modules/querystring/test/tap-index.js @@ -0,0 +1,3 @@ +"use strict"; + +require("retape")(require("./index")) \ No newline at end of file diff --git a/node_modules/range-parser/HISTORY.md b/node_modules/range-parser/HISTORY.md new file mode 100644 index 00000000..70a973d8 --- /dev/null +++ b/node_modules/range-parser/HISTORY.md @@ -0,0 +1,56 @@ +1.2.1 / 2019-05-10 +================== + + * Improve error when `str` is not a string + +1.2.0 / 2016-06-01 +================== + + * Add `combine` option to combine overlapping ranges + +1.1.0 / 2016-05-13 +================== + + * Fix incorrectly returning -1 when there is at least one valid range + * perf: remove internal function + +1.0.3 / 2015-10-29 +================== + + * perf: enable strict mode + +1.0.2 / 2014-09-08 +================== + + * Support Node.js 0.6 + +1.0.1 / 2014-09-07 +================== + + * Move repository to jshttp + +1.0.0 / 2013-12-11 +================== + + * Add repository to package.json + * Add MIT license + +0.0.4 / 2012-06-17 +================== + + * Change ret -1 for unsatisfiable and -2 when invalid + +0.0.3 / 2012-06-17 +================== + + * Fix last-byte-pos default to len - 1 + +0.0.2 / 2012-06-14 +================== + + * Add `.type` + +0.0.1 / 2012-06-11 +================== + + * Initial release diff --git a/node_modules/range-parser/LICENSE b/node_modules/range-parser/LICENSE new file mode 100644 index 00000000..35999543 --- /dev/null +++ b/node_modules/range-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +```js +var parseRange = require('range-parser') +``` + +### parseRange(size, header, options) + +Parse the given `header` string where `size` is the maximum size of the resource. +An array of ranges will be returned or negative numbers indicating an error parsing. + + * `-2` signals a malformed header string + * `-1` signals an unsatisfiable range + + + +```js +// parse header from request +var range = parseRange(size, req.headers.range) + +// the type of the range +if (range.type === 'bytes') { + // the ranges + range.forEach(function (r) { + // do something with r.start and r.end + }) +} +``` + +#### Options + +These properties are accepted in the options object. + +##### combine + +Specifies if overlapping & adjacent ranges should be combined, defaults to `false`. +When `true`, ranges will be combined and returned as if they were specified that +way in the header. + + + +```js +parseRange(100, 'bytes=50-55,0-10,5-10,56-60', { combine: true }) +// => [ +// { start: 0, end: 10 }, +// { start: 50, end: 60 } +// ] +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/range-parser/master +[coveralls-url]: https://coveralls.io/r/jshttp/range-parser?branch=master +[node-image]: https://badgen.net/npm/node/range-parser +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/range-parser +[npm-url]: https://npmjs.org/package/range-parser +[npm-version-image]: https://badgen.net/npm/v/range-parser +[travis-image]: https://badgen.net/travis/jshttp/range-parser/master +[travis-url]: https://travis-ci.org/jshttp/range-parser diff --git a/node_modules/range-parser/index.js b/node_modules/range-parser/index.js new file mode 100644 index 00000000..b7dc5c0f --- /dev/null +++ b/node_modules/range-parser/index.js @@ -0,0 +1,162 @@ +/*! + * range-parser + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = rangeParser + +/** + * Parse "Range" header `str` relative to the given file `size`. + * + * @param {Number} size + * @param {String} str + * @param {Object} [options] + * @return {Array} + * @public + */ + +function rangeParser (size, str, options) { + if (typeof str !== 'string') { + throw new TypeError('argument str must be a string') + } + + var index = str.indexOf('=') + + if (index === -1) { + return -2 + } + + // split the range string + var arr = str.slice(index + 1).split(',') + var ranges = [] + + // add ranges type + ranges.type = str.slice(0, index) + + // parse all ranges + for (var i = 0; i < arr.length; i++) { + var range = arr[i].split('-') + var start = parseInt(range[0], 10) + var end = parseInt(range[1], 10) + + // -nnn + if (isNaN(start)) { + start = size - end + end = size - 1 + // nnn- + } else if (isNaN(end)) { + end = size - 1 + } + + // limit last-byte-pos to current length + if (end > size - 1) { + end = size - 1 + } + + // invalid or unsatisifiable + if (isNaN(start) || isNaN(end) || start > end || start < 0) { + continue + } + + // add range + ranges.push({ + start: start, + end: end + }) + } + + if (ranges.length < 1) { + // unsatisifiable + return -1 + } + + return options && options.combine + ? combineRanges(ranges) + : ranges +} + +/** + * Combine overlapping & adjacent ranges. + * @private + */ + +function combineRanges (ranges) { + var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart) + + for (var j = 0, i = 1; i < ordered.length; i++) { + var range = ordered[i] + var current = ordered[j] + + if (range.start > current.end + 1) { + // next range + ordered[++j] = range + } else if (range.end > current.end) { + // extend range + current.end = range.end + current.index = Math.min(current.index, range.index) + } + } + + // trim ordered array + ordered.length = j + 1 + + // generate combined range + var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex) + + // copy ranges type + combined.type = ranges.type + + return combined +} + +/** + * Map function to add index value to ranges. + * @private + */ + +function mapWithIndex (range, index) { + return { + start: range.start, + end: range.end, + index: index + } +} + +/** + * Map function to remove index value from ranges. + * @private + */ + +function mapWithoutIndex (range) { + return { + start: range.start, + end: range.end + } +} + +/** + * Sort function to sort ranges by index. + * @private + */ + +function sortByRangeIndex (a, b) { + return a.index - b.index +} + +/** + * Sort function to sort ranges by start position. + * @private + */ + +function sortByRangeStart (a, b) { + return a.start - b.start +} diff --git a/node_modules/range-parser/package.json b/node_modules/range-parser/package.json new file mode 100644 index 00000000..e3bdb881 --- /dev/null +++ b/node_modules/range-parser/package.json @@ -0,0 +1,91 @@ +{ + "_from": "range-parser@~1.2.1", + "_id": "range-parser@1.2.1", + "_inBundle": false, + "_integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "_location": "/range-parser", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "range-parser@~1.2.1", + "name": "range-parser", + "escapedName": "range-parser", + "rawSpec": "~1.2.1", + "saveSpec": null, + "fetchSpec": "~1.2.1" + }, + "_requiredBy": [ + "/express", + "/send" + ], + "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "_shasum": "3cf37023d199e1c24d1a55b84800c2f3e6468031", + "_spec": "range-parser@~1.2.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca", + "url": "http://tjholowaychuk.com" + }, + "bugs": { + "url": "https://github.com/jshttp/range-parser/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "wyatt.cready@lanetix.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "Range header field string parser", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.1.1" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "homepage": "https://github.com/jshttp/range-parser#readme", + "keywords": [ + "range", + "parser", + "http" + ], + "license": "MIT", + "name": "range-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/range-parser.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "version": "1.2.1" +} diff --git a/node_modules/raw-body/HISTORY.md b/node_modules/raw-body/HISTORY.md new file mode 100644 index 00000000..88c79fce --- /dev/null +++ b/node_modules/raw-body/HISTORY.md @@ -0,0 +1,270 @@ +2.4.0 / 2019-04-17 +================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + +2.3.3 / 2018-05-08 +================== + + * deps: http-errors@1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + +2.3.2 / 2017-09-09 +================== + + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + +2.3.1 / 2017-09-07 +================== + + * deps: bytes@3.0.0 + * deps: http-errors@1.6.2 + - deps: depd@1.1.1 + * perf: skip buffer decoding on overage chunk + +2.3.0 / 2017-08-04 +================== + + * Add TypeScript definitions + * Use `http-errors` for standard emitted errors + * deps: bytes@2.5.0 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + +2.2.0 / 2017-01-02 +================== + + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + +2.1.7 / 2016-06-19 +================== + + * deps: bytes@2.4.0 + * perf: remove double-cleanup on happy path + +2.1.6 / 2016-03-07 +================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + +2.1.5 / 2015-11-30 +================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + +2.1.4 / 2015-09-27 +================== + + * Fix masking critical errors from `iconv-lite` + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + +2.1.3 / 2015-09-12 +================== + + * Fix sync callback when attaching data listener causes sync read + - Node.js 0.10 compatibility issue + +2.1.2 / 2015-07-05 +================== + + * Fix error stack traces to skip `makeError` + * deps: iconv-lite@0.4.11 + - Add encoding CESU-8 + +2.1.1 / 2015-06-14 +================== + + * Use `unpipe` module for unpiping requests + +2.1.0 / 2015-05-28 +================== + + * deps: iconv-lite@0.4.10 + - Improved UTF-16 endianness detection + - Leading BOM is now removed when decoding + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + +2.0.2 / 2015-05-21 +================== + + * deps: bytes@2.1.0 + - Slight optimizations + +2.0.1 / 2015-05-10 +================== + + * Fix a false-positive when unpiping in Node.js 0.8 + +2.0.0 / 2015-05-08 +================== + + * Return a promise without callback instead of thunk + * deps: bytes@2.0.1 + - units no longer case sensitive when parsing + +1.3.4 / 2015-04-15 +================== + + * Fix hanging callback if request aborts during read + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + +1.3.3 / 2015-02-08 +================== + + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + +1.3.2 / 2015-01-20 +================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + +1.3.1 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + +1.3.0 / 2014-07-20 +================== + + * Fully unpipe the stream on error + - Fixes `Cannot switch to old mode now` error on Node.js 0.10+ + +1.2.3 / 2014-07-20 +================== + + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + +1.2.2 / 2014-06-19 +================== + + * Send invalid encoding error to callback + +1.2.1 / 2014-06-15 +================== + + * deps: iconv-lite@0.4.3 + - Added encodings UTF-16BE and UTF-16 with BOM + +1.2.0 / 2014-06-13 +================== + + * Passing string as `options` interpreted as encoding + * Support all encodings from `iconv-lite` + +1.1.7 / 2014-06-12 +================== + + * use `string_decoder` module from npm + +1.1.6 / 2014-05-27 +================== + + * check encoding for old streams1 + * support node.js < 0.10.6 + +1.1.5 / 2014-05-14 +================== + + * bump bytes + +1.1.4 / 2014-04-19 +================== + + * allow true as an option + * bump bytes + +1.1.3 / 2014-03-02 +================== + + * fix case when length=null + +1.1.2 / 2013-12-01 +================== + + * be less strict on state.encoding check + +1.1.1 / 2013-11-27 +================== + + * add engines + +1.1.0 / 2013-11-27 +================== + + * add err.statusCode and err.type + * allow for encoding option to be true + * pause the stream instead of dumping on error + * throw if the stream's encoding is set + +1.0.1 / 2013-11-19 +================== + + * dont support streams1, throw if dev set encoding + +1.0.0 / 2013-11-17 +================== + + * rename `expected` option to `length` + +0.2.0 / 2013-11-15 +================== + + * republish + +0.1.1 / 2013-11-15 +================== + + * use bytes + +0.1.0 / 2013-11-11 +================== + + * generator support + +0.0.3 / 2013-10-10 +================== + + * update repo + +0.0.2 / 2013-09-14 +================== + + * dump stream on bad headers + * listen to events after defining received and buffers + +0.0.1 / 2013-09-14 +================== + + * Initial release diff --git a/node_modules/raw-body/LICENSE b/node_modules/raw-body/LICENSE new file mode 100644 index 00000000..d695c8fd --- /dev/null +++ b/node_modules/raw-body/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2013-2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/raw-body/README.md b/node_modules/raw-body/README.md new file mode 100644 index 00000000..2ce79d27 --- /dev/null +++ b/node_modules/raw-body/README.md @@ -0,0 +1,219 @@ +# raw-body + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] + +Gets the entire buffer of a stream either as a `Buffer` or a string. +Validates the stream's length against an expected length and maximum limit. +Ideal for parsing request bodies. + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install raw-body +``` + +### TypeScript + +This module includes a [TypeScript](https://www.typescriptlang.org/) +declaration file to enable auto complete in compatible editors and type +information for TypeScript projects. This module depends on the Node.js +types, so install `@types/node`: + +```sh +$ npm install @types/node +``` + +## API + + + +```js +var getRawBody = require('raw-body') +``` + +### getRawBody(stream, [options], [callback]) + +**Returns a promise if no callback specified and global `Promise` exists.** + +Options: + +- `length` - The length of the stream. + If the contents of the stream do not add up to this length, + an `400` error code is returned. +- `limit` - The byte limit of the body. + This is the number of bytes or any string format supported by + [bytes](https://www.npmjs.com/package/bytes), + for example `1000`, `'500kb'` or `'3mb'`. + If the body ends up being larger than this limit, + a `413` error code is returned. +- `encoding` - The encoding to use to decode the body into a string. + By default, a `Buffer` instance will be returned when no encoding is specified. + Most likely, you want `utf-8`, so setting `encoding` to `true` will decode as `utf-8`. + You can use any type of encoding supported by [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme). + +You can also pass a string in place of options to just specify the encoding. + +If an error occurs, the stream will be paused, everything unpiped, +and you are responsible for correctly disposing the stream. +For HTTP requests, no handling is required if you send a response. +For streams that use file descriptors, you should `stream.destroy()` or `stream.close()` to prevent leaks. + +## Errors + +This module creates errors depending on the error condition during reading. +The error may be an error from the underlying Node.js implementation, but is +otherwise an error created by this module, which has the following attributes: + + * `limit` - the limit in bytes + * `length` and `expected` - the expected length of the stream + * `received` - the received bytes + * `encoding` - the invalid encoding + * `status` and `statusCode` - the corresponding status code for the error + * `type` - the error type + +### Types + +The errors from this module have a `type` property which allows for the progamatic +determination of the type of error returned. + +#### encoding.unsupported + +This error will occur when the `encoding` option is specified, but the value does +not map to an encoding supported by the [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme) +module. + +#### entity.too.large + +This error will occur when the `limit` option is specified, but the stream has +an entity that is larger. + +#### request.aborted + +This error will occur when the request stream is aborted by the client before +reading the body has finished. + +#### request.size.invalid + +This error will occur when the `length` option is specified, but the stream has +emitted more bytes. + +#### stream.encoding.set + +This error will occur when the given stream has an encoding set on it, making it +a decoded stream. The stream should not have an encoding set and is expected to +emit `Buffer` objects. + +## Examples + +### Simple Express example + +```js +var contentType = require('content-type') +var express = require('express') +var getRawBody = require('raw-body') + +var app = express() + +app.use(function (req, res, next) { + getRawBody(req, { + length: req.headers['content-length'], + limit: '1mb', + encoding: contentType.parse(req).parameters.charset + }, function (err, string) { + if (err) return next(err) + req.text = string + next() + }) +}) + +// now access req.text +``` + +### Simple Koa example + +```js +var contentType = require('content-type') +var getRawBody = require('raw-body') +var koa = require('koa') + +var app = koa() + +app.use(function * (next) { + this.text = yield getRawBody(this.req, { + length: this.req.headers['content-length'], + limit: '1mb', + encoding: contentType.parse(this.req).parameters.charset + }) + yield next +}) + +// now access this.text +``` + +### Using as a promise + +To use this library as a promise, simply omit the `callback` and a promise is +returned, provided that a global `Promise` is defined. + +```js +var getRawBody = require('raw-body') +var http = require('http') + +var server = http.createServer(function (req, res) { + getRawBody(req) + .then(function (buf) { + res.statusCode = 200 + res.end(buf.length + ' bytes submitted') + }) + .catch(function (err) { + res.statusCode = 500 + res.end(err.message) + }) +}) + +server.listen(3000) +``` + +### Using with TypeScript + +```ts +import * as getRawBody from 'raw-body'; +import * as http from 'http'; + +const server = http.createServer((req, res) => { + getRawBody(req) + .then((buf) => { + res.statusCode = 200; + res.end(buf.length + ' bytes submitted'); + }) + .catch((err) => { + res.statusCode = err.statusCode; + res.end(err.message); + }); +}); + +server.listen(3000); +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/raw-body.svg +[npm-url]: https://npmjs.org/package/raw-body +[node-version-image]: https://img.shields.io/node/v/raw-body.svg +[node-version-url]: https://nodejs.org/en/download/ +[travis-image]: https://img.shields.io/travis/stream-utils/raw-body/master.svg +[travis-url]: https://travis-ci.org/stream-utils/raw-body +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/raw-body/master.svg +[coveralls-url]: https://coveralls.io/r/stream-utils/raw-body?branch=master +[downloads-image]: https://img.shields.io/npm/dm/raw-body.svg +[downloads-url]: https://npmjs.org/package/raw-body diff --git a/node_modules/raw-body/index.d.ts b/node_modules/raw-body/index.d.ts new file mode 100644 index 00000000..dcbbebd4 --- /dev/null +++ b/node_modules/raw-body/index.d.ts @@ -0,0 +1,87 @@ +import { Readable } from 'stream'; + +declare namespace getRawBody { + export type Encoding = string | true; + + export interface Options { + /** + * The expected length of the stream. + */ + length?: number | string | null; + /** + * The byte limit of the body. This is the number of bytes or any string + * format supported by `bytes`, for example `1000`, `'500kb'` or `'3mb'`. + */ + limit?: number | string | null; + /** + * The encoding to use to decode the body into a string. By default, a + * `Buffer` instance will be returned when no encoding is specified. Most + * likely, you want `utf-8`, so setting encoding to `true` will decode as + * `utf-8`. You can use any type of encoding supported by `iconv-lite`. + */ + encoding?: Encoding | null; + } + + export interface RawBodyError extends Error { + /** + * The limit in bytes. + */ + limit?: number; + /** + * The expected length of the stream. + */ + length?: number; + expected?: number; + /** + * The received bytes. + */ + received?: number; + /** + * The encoding. + */ + encoding?: string; + /** + * The corresponding status code for the error. + */ + status: number; + statusCode: number; + /** + * The error type. + */ + type: string; + } +} + +/** + * Gets the entire buffer of a stream either as a `Buffer` or a string. + * Validates the stream's length against an expected length and maximum + * limit. Ideal for parsing request bodies. + */ +declare function getRawBody( + stream: Readable, + callback: (err: getRawBody.RawBodyError, body: Buffer) => void +): void; + +declare function getRawBody( + stream: Readable, + options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding, + callback: (err: getRawBody.RawBodyError, body: string) => void +): void; + +declare function getRawBody( + stream: Readable, + options: getRawBody.Options, + callback: (err: getRawBody.RawBodyError, body: Buffer) => void +): void; + +declare function getRawBody( + stream: Readable, + options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding +): Promise; + +declare function getRawBody( + stream: Readable, + options?: getRawBody.Options +): Promise; + +export = getRawBody; diff --git a/node_modules/raw-body/index.js b/node_modules/raw-body/index.js new file mode 100644 index 00000000..7fe81860 --- /dev/null +++ b/node_modules/raw-body/index.js @@ -0,0 +1,286 @@ +/*! + * raw-body + * Copyright(c) 2013-2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var createError = require('http-errors') +var iconv = require('iconv-lite') +var unpipe = require('unpipe') + +/** + * Module exports. + * @public + */ + +module.exports = getRawBody + +/** + * Module variables. + * @private + */ + +var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: / + +/** + * Get the decoder for a given encoding. + * + * @param {string} encoding + * @private + */ + +function getDecoder (encoding) { + if (!encoding) return null + + try { + return iconv.getDecoder(encoding) + } catch (e) { + // error getting decoder + if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e + + // the encoding was not found + throw createError(415, 'specified encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } +} + +/** + * Get the raw body of a stream (typically HTTP). + * + * @param {object} stream + * @param {object|string|function} [options] + * @param {function} [callback] + * @public + */ + +function getRawBody (stream, options, callback) { + var done = callback + var opts = options || {} + + if (options === true || typeof options === 'string') { + // short cut for encoding + opts = { + encoding: options + } + } + + if (typeof options === 'function') { + done = options + opts = {} + } + + // validate callback is a function, if provided + if (done !== undefined && typeof done !== 'function') { + throw new TypeError('argument callback must be a function') + } + + // require the callback without promises + if (!done && !global.Promise) { + throw new TypeError('argument callback is required') + } + + // get encoding + var encoding = opts.encoding !== true + ? opts.encoding + : 'utf-8' + + // convert the limit to an integer + var limit = bytes.parse(opts.limit) + + // convert the expected length to an integer + var length = opts.length != null && !isNaN(opts.length) + ? parseInt(opts.length, 10) + : null + + if (done) { + // classic callback style + return readStream(stream, encoding, length, limit, done) + } + + return new Promise(function executor (resolve, reject) { + readStream(stream, encoding, length, limit, function onRead (err, buf) { + if (err) return reject(err) + resolve(buf) + }) + }) +} + +/** + * Halt a stream. + * + * @param {Object} stream + * @private + */ + +function halt (stream) { + // unpipe everything from the stream + unpipe(stream) + + // pause stream + if (typeof stream.pause === 'function') { + stream.pause() + } +} + +/** + * Read the data from the stream. + * + * @param {object} stream + * @param {string} encoding + * @param {number} length + * @param {number} limit + * @param {function} callback + * @public + */ + +function readStream (stream, encoding, length, limit, callback) { + var complete = false + var sync = true + + // check the length and limit options. + // note: we intentionally leave the stream paused, + // so users should handle the stream themselves. + if (limit !== null && length !== null && length > limit) { + return done(createError(413, 'request entity too large', { + expected: length, + length: length, + limit: limit, + type: 'entity.too.large' + })) + } + + // streams1: assert request encoding is buffer. + // streams2+: assert the stream encoding is buffer. + // stream._decoder: streams1 + // state.encoding: streams2 + // state.decoder: streams2, specifically < 0.10.6 + var state = stream._readableState + if (stream._decoder || (state && (state.encoding || state.decoder))) { + // developer error + return done(createError(500, 'stream encoding should not be set', { + type: 'stream.encoding.set' + })) + } + + var received = 0 + var decoder + + try { + decoder = getDecoder(encoding) + } catch (err) { + return done(err) + } + + var buffer = decoder + ? '' + : [] + + // attach listeners + stream.on('aborted', onAborted) + stream.on('close', cleanup) + stream.on('data', onData) + stream.on('end', onEnd) + stream.on('error', onEnd) + + // mark sync section complete + sync = false + + function done () { + var args = new Array(arguments.length) + + // copy arguments + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + + // mark complete + complete = true + + if (sync) { + process.nextTick(invokeCallback) + } else { + invokeCallback() + } + + function invokeCallback () { + cleanup() + + if (args[0]) { + // halt the stream on error + halt(stream) + } + + callback.apply(null, args) + } + } + + function onAborted () { + if (complete) return + + done(createError(400, 'request aborted', { + code: 'ECONNABORTED', + expected: length, + length: length, + received: received, + type: 'request.aborted' + })) + } + + function onData (chunk) { + if (complete) return + + received += chunk.length + + if (limit !== null && received > limit) { + done(createError(413, 'request entity too large', { + limit: limit, + received: received, + type: 'entity.too.large' + })) + } else if (decoder) { + buffer += decoder.write(chunk) + } else { + buffer.push(chunk) + } + } + + function onEnd (err) { + if (complete) return + if (err) return done(err) + + if (length !== null && received !== length) { + done(createError(400, 'request size did not match content length', { + expected: length, + length: length, + received: received, + type: 'request.size.invalid' + })) + } else { + var string = decoder + ? buffer + (decoder.end() || '') + : Buffer.concat(buffer) + done(null, string) + } + } + + function cleanup () { + buffer = null + + stream.removeListener('aborted', onAborted) + stream.removeListener('data', onData) + stream.removeListener('end', onEnd) + stream.removeListener('error', onEnd) + stream.removeListener('close', cleanup) + } +} diff --git a/node_modules/raw-body/package.json b/node_modules/raw-body/package.json new file mode 100644 index 00000000..c7af0e9a --- /dev/null +++ b/node_modules/raw-body/package.json @@ -0,0 +1,90 @@ +{ + "_from": "raw-body@2.4.0", + "_id": "raw-body@2.4.0", + "_inBundle": false, + "_integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "_location": "/raw-body", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "raw-body@2.4.0", + "name": "raw-body", + "escapedName": "raw-body", + "rawSpec": "2.4.0", + "saveSpec": null, + "fetchSpec": "2.4.0" + }, + "_requiredBy": [ + "/body-parser" + ], + "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "_shasum": "a1ce6fb9c9bc356ca52e89256ab59059e13d0332", + "_spec": "raw-body@2.4.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\body-parser", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/raw-body/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Raynos", + "email": "raynos2@gmail.com" + } + ], + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "deprecated": false, + "description": "Get and validate the raw body of a readable stream.", + "devDependencies": { + "bluebird": "3.5.4", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.16.0", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "6.1.3", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.d.ts", + "index.js" + ], + "homepage": "https://github.com/stream-utils/raw-body#readme", + "license": "MIT", + "name": "raw-body", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/raw-body.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/" + }, + "version": "2.4.0" +} diff --git a/node_modules/rc/LICENSE.APACHE2 b/node_modules/rc/LICENSE.APACHE2 new file mode 100644 index 00000000..6366c047 --- /dev/null +++ b/node_modules/rc/LICENSE.APACHE2 @@ -0,0 +1,15 @@ +Apache License, Version 2.0 + +Copyright (c) 2011 Dominic Tarr + +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. diff --git a/node_modules/rc/LICENSE.BSD b/node_modules/rc/LICENSE.BSD new file mode 100644 index 00000000..96bb796a --- /dev/null +++ b/node_modules/rc/LICENSE.BSD @@ -0,0 +1,26 @@ +Copyright (c) 2013, Dominic Tarr +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 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 OWNER 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 the FreeBSD Project. diff --git a/node_modules/rc/LICENSE.MIT b/node_modules/rc/LICENSE.MIT new file mode 100644 index 00000000..6eafbd73 --- /dev/null +++ b/node_modules/rc/LICENSE.MIT @@ -0,0 +1,24 @@ +The MIT License + +Copyright (c) 2011 Dominic Tarr + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/rc/README.md b/node_modules/rc/README.md new file mode 100644 index 00000000..e6522e26 --- /dev/null +++ b/node_modules/rc/README.md @@ -0,0 +1,227 @@ +# rc + +The non-configurable configuration loader for lazy people. + +## Usage + +The only option is to pass rc the name of your app, and your default configuration. + +```javascript +var conf = require('rc')(appname, { + //defaults go here. + port: 2468, + + //defaults which are objects will be merged, not replaced + views: { + engine: 'jade' + } +}); +``` + +`rc` will return your configuration options merged with the defaults you specify. +If you pass in a predefined defaults object, it will be mutated: + +```javascript +var conf = {}; +require('rc')(appname, conf); +``` + +If `rc` finds any config files for your app, the returned config object will have +a `configs` array containing their paths: + +```javascript +var appCfg = require('rc')(appname, conf); +appCfg.configs[0] // /etc/appnamerc +appCfg.configs[1] // /home/dominictarr/.config/appname +appCfg.config // same as appCfg.configs[appCfg.configs.length - 1] +``` + +## Standards + +Given your application name (`appname`), rc will look in all the obvious places for configuration. + + * command line arguments, parsed by minimist _(e.g. `--foo baz`, also nested: `--foo.bar=baz`)_ + * environment variables prefixed with `${appname}_` + * or use "\_\_" to indicate nested properties
_(e.g. `appname_foo__bar__baz` => `foo.bar.baz`)_ + * if you passed an option `--config file` then from that file + * a local `.${appname}rc` or the first found looking in `./ ../ ../../ ../../../` etc. + * `$HOME/.${appname}rc` + * `$HOME/.${appname}/config` + * `$HOME/.config/${appname}` + * `$HOME/.config/${appname}/config` + * `/etc/${appname}rc` + * `/etc/${appname}/config` + * the defaults object you passed in. + +All configuration sources that were found will be flattened into one object, +so that sources **earlier** in this list override later ones. + + +## Configuration File Formats + +Configuration files (e.g. `.appnamerc`) may be in either [json](http://json.org/example) or [ini](http://en.wikipedia.org/wiki/INI_file) format. **No** file extension (`.json` or `.ini`) should be used. The example configurations below are equivalent: + + +#### Formatted as `ini` + +``` +; You can include comments in `ini` format if you want. + +dependsOn=0.10.0 + + +; `rc` has built-in support for ini sections, see? + +[commands] + www = ./commands/www + console = ./commands/repl + + +; You can even do nested sections + +[generators.options] + engine = ejs + +[generators.modules] + new = generate-new + engine = generate-backend + +``` + +#### Formatted as `json` + +```javascript +{ + // You can even comment your JSON, if you want + "dependsOn": "0.10.0", + "commands": { + "www": "./commands/www", + "console": "./commands/repl" + }, + "generators": { + "options": { + "engine": "ejs" + }, + "modules": { + "new": "generate-new", + "backend": "generate-backend" + } + } +} +``` + +Comments are stripped from JSON config via [strip-json-comments](https://github.com/sindresorhus/strip-json-comments). + +> Since ini, and env variables do not have a standard for types, your application needs be prepared for strings. + +To ensure that string representations of booleans and numbers are always converted into their proper types (especially useful if you intend to do strict `===` comparisons), consider using a module such as [parse-strings-in-object](https://github.com/anselanza/parse-strings-in-object) to wrap the config object returned from rc. + + +## Simple example demonstrating precedence +Assume you have an application like this (notice the hard-coded defaults passed to rc): +``` +const conf = require('rc')('myapp', { + port: 12345, + mode: 'test' +}); + +console.log(JSON.stringify(conf, null, 2)); +``` +You also have a file `config.json`, with these contents: +``` +{ + "port": 9000, + "foo": "from config json", + "something": "else" +} +``` +And a file `.myapprc` in the same folder, with these contents: +``` +{ + "port": "3001", + "foo": "bar" +} +``` +Here is the expected output from various commands: + +`node .` +``` +{ + "port": "3001", + "mode": "test", + "foo": "bar", + "_": [], + "configs": [ + "/Users/stephen/repos/conftest/.myapprc" + ], + "config": "/Users/stephen/repos/conftest/.myapprc" +} +``` +*Default `mode` from hard-coded object is retained, but port is overridden by `.myapprc` file (automatically found based on appname match), and `foo` is added.* + + +`node . --foo baz` +``` +{ + "port": "3001", + "mode": "test", + "foo": "baz", + "_": [], + "configs": [ + "/Users/stephen/repos/conftest/.myapprc" + ], + "config": "/Users/stephen/repos/conftest/.myapprc" +} +``` +*Same result as above but `foo` is overridden because command-line arguments take precedence over `.myapprc` file.* + +`node . --foo barbar --config config.json` +``` +{ + "port": 9000, + "mode": "test", + "foo": "barbar", + "something": "else", + "_": [], + "config": "config.json", + "configs": [ + "/Users/stephen/repos/conftest/.myapprc", + "config.json" + ] +} +``` +*Now the `port` comes from the `config.json` file specified (overriding the value from `.myapprc`), and `foo` value is overriden by command-line despite also being specified in the `config.json` file.* + + + +## Advanced Usage + +#### Pass in your own `argv` + +You may pass in your own `argv` as the third argument to `rc`. This is in case you want to [use your own command-line opts parser](https://github.com/dominictarr/rc/pull/12). + +```javascript +require('rc')(appname, defaults, customArgvParser); +``` + +## Pass in your own parser + +If you have a special need to use a non-standard parser, +you can do so by passing in the parser as the 4th argument. +(leave the 3rd as null to get the default args parser) + +```javascript +require('rc')(appname, defaults, null, parser); +``` + +This may also be used to force a more strict format, +such as strict, valid JSON only. + +## Note on Performance + +`rc` is running `fs.statSync`-- so make sure you don't use it in a hot code path (e.g. a request handler) + + +## License + +Multi-licensed under the two-clause BSD License, MIT License, or Apache License, version 2.0 diff --git a/node_modules/rc/browser.js b/node_modules/rc/browser.js new file mode 100644 index 00000000..8c230c5c --- /dev/null +++ b/node_modules/rc/browser.js @@ -0,0 +1,7 @@ + +// when this is loaded into the browser, +// just use the defaults... + +module.exports = function (name, defaults) { + return defaults +} diff --git a/node_modules/rc/cli.js b/node_modules/rc/cli.js new file mode 100644 index 00000000..ab05b607 --- /dev/null +++ b/node_modules/rc/cli.js @@ -0,0 +1,4 @@ +#! /usr/bin/env node +var rc = require('./index') + +console.log(JSON.stringify(rc(process.argv[2]), false, 2)) diff --git a/node_modules/rc/index.js b/node_modules/rc/index.js new file mode 100644 index 00000000..65eb47af --- /dev/null +++ b/node_modules/rc/index.js @@ -0,0 +1,53 @@ +var cc = require('./lib/utils') +var join = require('path').join +var deepExtend = require('deep-extend') +var etc = '/etc' +var win = process.platform === "win32" +var home = win + ? process.env.USERPROFILE + : process.env.HOME + +module.exports = function (name, defaults, argv, parse) { + if('string' !== typeof name) + throw new Error('rc(name): name *must* be string') + if(!argv) + argv = require('minimist')(process.argv.slice(2)) + defaults = ( + 'string' === typeof defaults + ? cc.json(defaults) : defaults + ) || {} + + parse = parse || cc.parse + + var env = cc.env(name + '_') + + var configs = [defaults] + var configFiles = [] + function addConfigFile (file) { + if (configFiles.indexOf(file) >= 0) return + var fileConfig = cc.file(file) + if (fileConfig) { + configs.push(parse(fileConfig)) + configFiles.push(file) + } + } + + // which files do we look at? + if (!win) + [join(etc, name, 'config'), + join(etc, name + 'rc')].forEach(addConfigFile) + if (home) + [join(home, '.config', name, 'config'), + join(home, '.config', name), + join(home, '.' + name, 'config'), + join(home, '.' + name + 'rc')].forEach(addConfigFile) + addConfigFile(cc.find('.'+name+'rc')) + if (env.config) addConfigFile(env.config) + if (argv.config) addConfigFile(argv.config) + + return deepExtend.apply(null, configs.concat([ + env, + argv, + configFiles.length ? {configs: configFiles, config: configFiles[configFiles.length - 1]} : undefined, + ])) +} diff --git a/node_modules/rc/lib/utils.js b/node_modules/rc/lib/utils.js new file mode 100644 index 00000000..8b3beffa --- /dev/null +++ b/node_modules/rc/lib/utils.js @@ -0,0 +1,104 @@ +'use strict'; +var fs = require('fs') +var ini = require('ini') +var path = require('path') +var stripJsonComments = require('strip-json-comments') + +var parse = exports.parse = function (content) { + + //if it ends in .json or starts with { then it must be json. + //must be done this way, because ini accepts everything. + //can't just try and parse it and let it throw if it's not ini. + //everything is ini. even json with a syntax error. + + if(/^\s*{/.test(content)) + return JSON.parse(stripJsonComments(content)) + return ini.parse(content) + +} + +var file = exports.file = function () { + var args = [].slice.call(arguments).filter(function (arg) { return arg != null }) + + //path.join breaks if it's a not a string, so just skip this. + for(var i in args) + if('string' !== typeof args[i]) + return + + var file = path.join.apply(null, args) + var content + try { + return fs.readFileSync(file,'utf-8') + } catch (err) { + return + } +} + +var json = exports.json = function () { + var content = file.apply(null, arguments) + return content ? parse(content) : null +} + +var env = exports.env = function (prefix, env) { + env = env || process.env + var obj = {} + var l = prefix.length + for(var k in env) { + if(k.toLowerCase().indexOf(prefix.toLowerCase()) === 0) { + + var keypath = k.substring(l).split('__') + + // Trim empty strings from keypath array + var _emptyStringIndex + while ((_emptyStringIndex=keypath.indexOf('')) > -1) { + keypath.splice(_emptyStringIndex, 1) + } + + var cursor = obj + keypath.forEach(function _buildSubObj(_subkey,i){ + + // (check for _subkey first so we ignore empty strings) + // (check for cursor to avoid assignment to primitive objects) + if (!_subkey || typeof cursor !== 'object') + return + + // If this is the last key, just stuff the value in there + // Assigns actual value from env variable to final key + // (unless it's just an empty string- in that case use the last valid key) + if (i === keypath.length-1) + cursor[_subkey] = env[k] + + + // Build sub-object if nothing already exists at the keypath + if (cursor[_subkey] === undefined) + cursor[_subkey] = {} + + // Increment cursor used to track the object at the current depth + cursor = cursor[_subkey] + + }) + + } + + } + + return obj +} + +var find = exports.find = function () { + var rel = path.join.apply(null, [].slice.call(arguments)) + + function find(start, rel) { + var file = path.join(start, rel) + try { + fs.statSync(file) + return file + } catch (err) { + if(path.dirname(start) !== start) // root + return find(path.dirname(start), rel) + } + } + return find(process.cwd(), rel) +} + + diff --git a/node_modules/rc/package.json b/node_modules/rc/package.json new file mode 100644 index 00000000..d4401540 --- /dev/null +++ b/node_modules/rc/package.json @@ -0,0 +1,65 @@ +{ + "_from": "rc@^1.2.8", + "_id": "rc@1.2.8", + "_inBundle": false, + "_integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "_location": "/rc", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "rc@^1.2.8", + "name": "rc", + "escapedName": "rc", + "rawSpec": "^1.2.8", + "saveSpec": null, + "fetchSpec": "^1.2.8" + }, + "_requiredBy": [ + "/registry-auth-token", + "/registry-url" + ], + "_resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "_shasum": "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed", + "_spec": "rc@^1.2.8", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\registry-auth-token", + "author": { + "name": "Dominic Tarr", + "email": "dominic.tarr@gmail.com", + "url": "dominictarr.com" + }, + "bin": { + "rc": "cli.js" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/dominictarr/rc/issues" + }, + "bundleDependencies": false, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "deprecated": false, + "description": "hardwired configuration loader", + "homepage": "https://github.com/dominictarr/rc#readme", + "keywords": [ + "config", + "rc", + "unix", + "defaults" + ], + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "main": "index.js", + "name": "rc", + "repository": { + "type": "git", + "url": "git+https://github.com/dominictarr/rc.git" + }, + "scripts": { + "test": "set -e; node test/test.js; node test/ini.js; node test/nested-env-vars.js" + }, + "version": "1.2.8" +} diff --git a/node_modules/rc/test/ini.js b/node_modules/rc/test/ini.js new file mode 100644 index 00000000..e6857f8b --- /dev/null +++ b/node_modules/rc/test/ini.js @@ -0,0 +1,16 @@ +var cc =require('../lib/utils') +var INI = require('ini') +var assert = require('assert') + +function test(obj) { + + var _json, _ini + var json = cc.parse (_json = JSON.stringify(obj)) + var ini = cc.parse (_ini = INI.stringify(obj)) + console.log(_ini, _json) + assert.deepEqual(json, ini) +} + + +test({hello: true}) + diff --git a/node_modules/rc/test/nested-env-vars.js b/node_modules/rc/test/nested-env-vars.js new file mode 100644 index 00000000..0ecd1763 --- /dev/null +++ b/node_modules/rc/test/nested-env-vars.js @@ -0,0 +1,50 @@ + +var seed = Math.random(); +var n = 'rc'+ seed; +var N = 'RC'+ seed; +var assert = require('assert') + + +// Basic usage +process.env[n+'_someOpt__a'] = 42 +process.env[n+'_someOpt__x__'] = 99 +process.env[n+'_someOpt__a__b'] = 186 +process.env[n+'_someOpt__a__b__c'] = 243 +process.env[n+'_someOpt__x__y'] = 1862 +process.env[n+'_someOpt__z'] = 186577 + +// Should ignore empty strings from orphaned '__' +process.env[n+'_someOpt__z__x__'] = 18629 +process.env[n+'_someOpt__w__w__'] = 18629 + +// Leading '__' should ignore everything up to 'z' +process.env[n+'___z__i__'] = 9999 + +// should ignore case for config name section. +process.env[N+'_test_upperCase'] = 187 + +function testPrefix(prefix) { + var config = require('../')(prefix, { + option: true + }) + + console.log('\n\n------ nested-env-vars ------\n',{prefix: prefix}, '\n', config); + + assert.equal(config.option, true) + assert.equal(config.someOpt.a, 42) + assert.equal(config.someOpt.x, 99) + // Should not override `a` once it's been set + assert.equal(config.someOpt.a/*.b*/, 42) + // Should not override `x` once it's been set + assert.equal(config.someOpt.x/*.y*/, 99) + assert.equal(config.someOpt.z, 186577) + // Should not override `z` once it's been set + assert.equal(config.someOpt.z/*.x*/, 186577) + assert.equal(config.someOpt.w.w, 18629) + assert.equal(config.z.i, 9999) + + assert.equal(config.test_upperCase, 187) +} + +testPrefix(n); +testPrefix(N); diff --git a/node_modules/rc/test/test.js b/node_modules/rc/test/test.js new file mode 100644 index 00000000..4f633518 --- /dev/null +++ b/node_modules/rc/test/test.js @@ -0,0 +1,59 @@ + +var n = 'rc'+Math.random() +var assert = require('assert') + +process.env[n+'_envOption'] = 42 + +var config = require('../')(n, { + option: true +}) + +console.log(config) + +assert.equal(config.option, true) +assert.equal(config.envOption, 42) + +var customArgv = require('../')(n, { + option: true +}, { // nopt-like argv + option: false, + envOption: 24, + argv: { + remain: [], + cooked: ['--no-option', '--envOption', '24'], + original: ['--no-option', '--envOption=24'] + } +}) + +console.log(customArgv) + +assert.equal(customArgv.option, false) +assert.equal(customArgv.envOption, 24) + +var fs = require('fs') +var path = require('path') +var jsonrc = path.resolve('.' + n + 'rc'); + +fs.writeFileSync(jsonrc, [ + '{', + '// json overrides default', + '"option": false,', + '/* env overrides json */', + '"envOption": 24', + '}' +].join('\n')); + +var commentedJSON = require('../')(n, { + option: true +}) + +fs.unlinkSync(jsonrc); + +console.log(commentedJSON) + +assert.equal(commentedJSON.option, false) +assert.equal(commentedJSON.envOption, 42) + +assert.equal(commentedJSON.config, jsonrc) +assert.equal(commentedJSON.configs.length, 1) +assert.equal(commentedJSON.configs[0], jsonrc) diff --git a/node_modules/read-pkg/index.js b/node_modules/read-pkg/index.js new file mode 100644 index 00000000..1c202b0a --- /dev/null +++ b/node_modules/read-pkg/index.js @@ -0,0 +1,42 @@ +'use strict'; +const fs = require('fs'); +const path = require('path'); +const parseJson = require('parse-json'); +const pify = require('pify'); + +const readFileAsync = pify(fs.readFile); + +module.exports = options => { + options = Object.assign({ + cwd: process.cwd(), + normalize: true + }, options); + + const filePath = path.resolve(options.cwd, 'package.json'); + + return readFileAsync(filePath, 'utf8').then(file => { + const json = parseJson(file); + + if (options.normalize) { + require('normalize-package-data')(json); + } + + return json; + }); +}; + +module.exports.sync = options => { + options = Object.assign({ + cwd: process.cwd(), + normalize: true + }, options); + + const filePath = path.resolve(options.cwd, 'package.json'); + const json = parseJson(fs.readFileSync(filePath, 'utf8')); + + if (options.normalize) { + require('normalize-package-data')(json); + } + + return json; +}; diff --git a/node_modules/read-pkg/license b/node_modules/read-pkg/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/read-pkg/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/read-pkg/package.json b/node_modules/read-pkg/package.json new file mode 100644 index 00000000..f547ff76 --- /dev/null +++ b/node_modules/read-pkg/package.json @@ -0,0 +1,74 @@ +{ + "_from": "read-pkg@^4.0.1", + "_id": "read-pkg@4.0.1", + "_inBundle": false, + "_integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "_location": "/read-pkg", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "read-pkg@^4.0.1", + "name": "read-pkg", + "escapedName": "read-pkg", + "rawSpec": "^4.0.1", + "saveSpec": null, + "fetchSpec": "^4.0.1" + }, + "_requiredBy": [ + "/concurrently" + ], + "_resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "_shasum": "963625378f3e1c4d48c85872b5a6ec7d5d093237", + "_spec": "read-pkg@^4.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\concurrently", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/read-pkg/issues" + }, + "bundleDependencies": false, + "dependencies": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + }, + "deprecated": false, + "description": "Read a package.json file", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/read-pkg#readme", + "keywords": [ + "json", + "read", + "parse", + "file", + "fs", + "graceful", + "load", + "pkg", + "package", + "normalize" + ], + "license": "MIT", + "name": "read-pkg", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/read-pkg.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.1" +} diff --git a/node_modules/read-pkg/readme.md b/node_modules/read-pkg/readme.md new file mode 100644 index 00000000..91593b09 --- /dev/null +++ b/node_modules/read-pkg/readme.md @@ -0,0 +1,73 @@ +# read-pkg [![Build Status](https://travis-ci.org/sindresorhus/read-pkg.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg) + +> Read a package.json file + + +## Why + +- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs) +- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json) +- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) + + +## Install + +``` +$ npm install read-pkg +``` + + +## Usage + +```js +const readPkg = require('read-pkg'); + +(async () => { + console.log(await readPkg()); + //=> {name: 'read-pkg', ...} + + console.log(await readPkg({cwd: 'some-other-directory'}); + //=> {name: 'unicorn', ...} +})(); +``` + + +## API + +### readPkg([options]) + +Returns a `Promise` for the parsed JSON. + +### readPkg.sync([options]) + +Returns the parsed JSON. + +#### options + +Type: `Object` + +##### cwd + +Type: `string`
+Default: `process.cwd()` + +Current working directory. + +##### normalize + +Type: `boolean`
+Default: `true` + +[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data. + + +## Related + +- [read-pkg-up](https://github.com/sindresorhus/read-pkg-up) - Read the closest package.json file +- [write-pkg](https://github.com/sindresorhus/write-pkg) - Write a `package.json` file +- [load-json-file](https://github.com/sindresorhus/load-json-file) - Read and parse a JSON file + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/readable-stream/.travis.yml b/node_modules/readable-stream/.travis.yml new file mode 100644 index 00000000..f62cdac0 --- /dev/null +++ b/node_modules/readable-stream/.travis.yml @@ -0,0 +1,34 @@ +sudo: false +language: node_js +before_install: + - (test $NPM_LEGACY && npm install -g npm@2 && npm install -g npm@3) || true +notifications: + email: false +matrix: + fast_finish: true + include: + - node_js: '0.8' + env: NPM_LEGACY=true + - node_js: '0.10' + env: NPM_LEGACY=true + - node_js: '0.11' + env: NPM_LEGACY=true + - node_js: '0.12' + env: NPM_LEGACY=true + - node_js: 1 + env: NPM_LEGACY=true + - node_js: 2 + env: NPM_LEGACY=true + - node_js: 3 + env: NPM_LEGACY=true + - node_js: 4 + - node_js: 5 + - node_js: 6 + - node_js: 7 + - node_js: 8 + - node_js: 9 +script: "npm run test" +env: + global: + - secure: rE2Vvo7vnjabYNULNyLFxOyt98BoJexDqsiOnfiD6kLYYsiQGfr/sbZkPMOFm9qfQG7pjqx+zZWZjGSswhTt+626C0t/njXqug7Yps4c3dFblzGfreQHp7wNX5TFsvrxd6dAowVasMp61sJcRnB2w8cUzoe3RAYUDHyiHktwqMc= + - secure: g9YINaKAdMatsJ28G9jCGbSaguXCyxSTy+pBO6Ch0Cf57ZLOTka3HqDj8p3nV28LUIHZ3ut5WO43CeYKwt4AUtLpBS3a0dndHdY6D83uY6b2qh5hXlrcbeQTq2cvw2y95F7hm4D1kwrgZ7ViqaKggRcEupAL69YbJnxeUDKWEdI= diff --git a/node_modules/readable-stream/CONTRIBUTING.md b/node_modules/readable-stream/CONTRIBUTING.md new file mode 100644 index 00000000..f478d58d --- /dev/null +++ b/node_modules/readable-stream/CONTRIBUTING.md @@ -0,0 +1,38 @@ +# Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +* (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +* (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +* (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +* (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +## Moderation Policy + +The [Node.js Moderation Policy] applies to this WG. + +## Code of Conduct + +The [Node.js Code of Conduct][] applies to this WG. + +[Node.js Code of Conduct]: +https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md +[Node.js Moderation Policy]: +https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md diff --git a/node_modules/readable-stream/GOVERNANCE.md b/node_modules/readable-stream/GOVERNANCE.md new file mode 100644 index 00000000..16ffb93f --- /dev/null +++ b/node_modules/readable-stream/GOVERNANCE.md @@ -0,0 +1,136 @@ +### Streams Working Group + +The Node.js Streams is jointly governed by a Working Group +(WG) +that is responsible for high-level guidance of the project. + +The WG has final authority over this project including: + +* Technical direction +* Project governance and process (including this policy) +* Contribution policy +* GitHub repository hosting +* Conduct guidelines +* Maintaining the list of additional Collaborators + +For the current list of WG members, see the project +[README.md](./README.md#current-project-team-members). + +### Collaborators + +The readable-stream GitHub repository is +maintained by the WG and additional Collaborators who are added by the +WG on an ongoing basis. + +Individuals making significant and valuable contributions are made +Collaborators and given commit-access to the project. These +individuals are identified by the WG and their addition as +Collaborators is discussed during the WG meeting. + +_Note:_ If you make a significant contribution and are not considered +for commit-access log an issue or contact a WG member directly and it +will be brought up in the next WG meeting. + +Modifications of the contents of the readable-stream repository are +made on +a collaborative basis. Anybody with a GitHub account may propose a +modification via pull request and it will be considered by the project +Collaborators. All pull requests must be reviewed and accepted by a +Collaborator with sufficient expertise who is able to take full +responsibility for the change. In the case of pull requests proposed +by an existing Collaborator, an additional Collaborator is required +for sign-off. Consensus should be sought if additional Collaborators +participate and there is disagreement around a particular +modification. See _Consensus Seeking Process_ below for further detail +on the consensus model used for governance. + +Collaborators may opt to elevate significant or controversial +modifications, or modifications that have not found consensus to the +WG for discussion by assigning the ***WG-agenda*** tag to a pull +request or issue. The WG should serve as the final arbiter where +required. + +For the current list of Collaborators, see the project +[README.md](./README.md#members). + +### WG Membership + +WG seats are not time-limited. There is no fixed size of the WG. +However, the expected target is between 6 and 12, to ensure adequate +coverage of important areas of expertise, balanced with the ability to +make decisions efficiently. + +There is no specific set of requirements or qualifications for WG +membership beyond these rules. + +The WG may add additional members to the WG by unanimous consensus. + +A WG member may be removed from the WG by voluntary resignation, or by +unanimous consensus of all other WG members. + +Changes to WG membership should be posted in the agenda, and may be +suggested as any other agenda item (see "WG Meetings" below). + +If an addition or removal is proposed during a meeting, and the full +WG is not in attendance to participate, then the addition or removal +is added to the agenda for the subsequent meeting. This is to ensure +that all members are given the opportunity to participate in all +membership decisions. If a WG member is unable to attend a meeting +where a planned membership decision is being made, then their consent +is assumed. + +No more than 1/3 of the WG members may be affiliated with the same +employer. If removal or resignation of a WG member, or a change of +employment by a WG member, creates a situation where more than 1/3 of +the WG membership shares an employer, then the situation must be +immediately remedied by the resignation or removal of one or more WG +members affiliated with the over-represented employer(s). + +### WG Meetings + +The WG meets occasionally on a Google Hangout On Air. A designated moderator +approved by the WG runs the meeting. Each meeting should be +published to YouTube. + +Items are added to the WG agenda that are considered contentious or +are modifications of governance, contribution policy, WG membership, +or release process. + +The intention of the agenda is not to approve or review all patches; +that should happen continuously on GitHub and be handled by the larger +group of Collaborators. + +Any community member or contributor can ask that something be added to +the next meeting's agenda by logging a GitHub Issue. Any Collaborator, +WG member or the moderator can add the item to the agenda by adding +the ***WG-agenda*** tag to the issue. + +Prior to each WG meeting the moderator will share the Agenda with +members of the WG. WG members can add any items they like to the +agenda at the beginning of each meeting. The moderator and the WG +cannot veto or remove items. + +The WG may invite persons or representatives from certain projects to +participate in a non-voting capacity. + +The moderator is responsible for summarizing the discussion of each +agenda item and sends it as a pull request after the meeting. + +### Consensus Seeking Process + +The WG follows a +[Consensus +Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making) +decision-making model. + +When an agenda item has appeared to reach a consensus the moderator +will ask "Does anyone object?" as a final call for dissent from the +consensus. + +If an agenda item cannot reach a consensus a WG member can call for +either a closing vote or a vote to table the issue to the next +meeting. The call for a vote must be seconded by a majority of the WG +or else the discussion will continue. Simple majority wins. + +Note that changes to WG membership require a majority consensus. See +"WG Membership" above. diff --git a/node_modules/readable-stream/LICENSE b/node_modules/readable-stream/LICENSE new file mode 100644 index 00000000..2873b3b2 --- /dev/null +++ b/node_modules/readable-stream/LICENSE @@ -0,0 +1,47 @@ +Node.js is licensed for use as follows: + +""" +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node 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/node_modules/readable-stream/README.md b/node_modules/readable-stream/README.md new file mode 100644 index 00000000..23fe3f3e --- /dev/null +++ b/node_modules/readable-stream/README.md @@ -0,0 +1,58 @@ +# readable-stream + +***Node-core v8.11.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) + + +[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) +[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/) + + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/readable-stream.svg)](https://saucelabs.com/u/readable-stream) + +```bash +npm install --save readable-stream +``` + +***Node-core streams for userland*** + +This package is a mirror of the Streams2 and Streams3 implementations in +Node-core. + +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.11.1/docs/api/stream.html). + +If you want to guarantee a stable streams base, regardless of what version of +Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). + +As of version 2.0.0 **readable-stream** uses semantic versioning. + +# Streams Working Group + +`readable-stream` is maintained by the Streams Working Group, which +oversees the development and maintenance of the Streams API within +Node.js. The responsibilities of the Streams Working Group include: + +* Addressing stream issues on the Node.js issue tracker. +* Authoring and editing stream documentation within the Node.js project. +* Reviewing changes to stream subclasses within the Node.js project. +* Redirecting changes to streams from the Node.js project to this + project. +* Assisting in the implementation of stream providers within Node.js. +* Recommending versions of `readable-stream` to be included in Node.js. +* Messaging about the future of streams to give the community advance + notice of changes. + + +## Team Members + +* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com> + - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B +* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com> + - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242 +* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org> + - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D +* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com> +* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com> +* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me> +* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) <matteo.collina@gmail.com> + - Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E +* **Irina Shestak** ([@lrlna](https://github.com/lrlna)) <shestak.irina@gmail.com> diff --git a/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md new file mode 100644 index 00000000..83275f19 --- /dev/null +++ b/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md @@ -0,0 +1,60 @@ +# streams WG Meeting 2015-01-30 + +## Links + +* **Google Hangouts Video**: http://www.youtube.com/watch?v=I9nDOSGfwZg +* **GitHub Issue**: https://github.com/iojs/readable-stream/issues/106 +* **Original Minutes Google Doc**: https://docs.google.com/document/d/17aTgLnjMXIrfjgNaTUnHQO7m3xgzHR2VXBTmi03Qii4/ + +## Agenda + +Extracted from https://github.com/iojs/readable-stream/labels/wg-agenda prior to meeting. + +* adopt a charter [#105](https://github.com/iojs/readable-stream/issues/105) +* release and versioning strategy [#101](https://github.com/iojs/readable-stream/issues/101) +* simpler stream creation [#102](https://github.com/iojs/readable-stream/issues/102) +* proposal: deprecate implicit flowing of streams [#99](https://github.com/iojs/readable-stream/issues/99) + +## Minutes + +### adopt a charter + +* group: +1's all around + +### What versioning scheme should be adopted? +* group: +1’s 3.0.0 +* domenic+group: pulling in patches from other sources where appropriate +* mikeal: version independently, suggesting versions for io.js +* mikeal+domenic: work with TC to notify in advance of changes +simpler stream creation + +### streamline creation of streams +* sam: streamline creation of streams +* domenic: nice simple solution posted + but, we lose the opportunity to change the model + may not be backwards incompatible (double check keys) + + **action item:** domenic will check + +### remove implicit flowing of streams on(‘data’) +* add isFlowing / isPaused +* mikeal: worrying that we’re documenting polyfill methods – confuses users +* domenic: more reflective API is probably good, with warning labels for users +* new section for mad scientists (reflective stream access) +* calvin: name the “third state” +* mikeal: maybe borrow the name from whatwg? +* domenic: we’re missing the “third state” +* consensus: kind of difficult to name the third state +* mikeal: figure out differences in states / compat +* mathias: always flow on data – eliminates third state + * explore what it breaks + +**action items:** +* ask isaac for ability to list packages by what public io.js APIs they use (esp. Stream) +* ask rod/build for infrastructure +* **chris**: explore the “flow on data” approach +* add isPaused/isFlowing +* add new docs section +* move isPaused to that section + + diff --git a/node_modules/readable-stream/duplex-browser.js b/node_modules/readable-stream/duplex-browser.js new file mode 100644 index 00000000..f8b2db83 --- /dev/null +++ b/node_modules/readable-stream/duplex-browser.js @@ -0,0 +1 @@ +module.exports = require('./lib/_stream_duplex.js'); diff --git a/node_modules/readable-stream/duplex.js b/node_modules/readable-stream/duplex.js new file mode 100644 index 00000000..46924cbf --- /dev/null +++ b/node_modules/readable-stream/duplex.js @@ -0,0 +1 @@ +module.exports = require('./readable').Duplex diff --git a/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/readable-stream/lib/_stream_duplex.js new file mode 100644 index 00000000..57003c32 --- /dev/null +++ b/node_modules/readable-stream/lib/_stream_duplex.js @@ -0,0 +1,131 @@ +// 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. + +// a duplex stream is just a stream that is both readable and writable. +// Since JS doesn't have multiple prototypal inheritance, this class +// prototypally inherits from Readable, and then parasitically from +// Writable. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +/**/ +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + keys.push(key); + }return keys; +}; +/**/ + +module.exports = Duplex; + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +var Readable = require('./_stream_readable'); +var Writable = require('./_stream_writable'); + +util.inherits(Duplex, Readable); + +{ + // avoid scope creep, the keys array can then be collected + var keys = objectKeys(Writable.prototype); + for (var v = 0; v < keys.length; v++) { + var method = keys[v]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} + +function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + + Readable.call(this, options); + Writable.call(this, options); + + if (options && options.readable === false) this.readable = false; + + if (options && options.writable === false) this.writable = false; + + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; + + this.once('end', onend); +} + +Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._writableState.highWaterMark; + } +}); + +// the no-half-open enforcer +function onend() { + // if we allow half-open state, or if the writable side ended, + // then we're ok. + if (this.allowHalfOpen || this._writableState.ended) return; + + // no more data can be written. + // But allow more writes to happen in this tick. + pna.nextTick(onEndNT, this); +} + +function onEndNT(self) { + self.end(); +} + +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + pna.nextTick(cb, err); +}; \ No newline at end of file diff --git a/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/readable-stream/lib/_stream_passthrough.js new file mode 100644 index 00000000..612edb4d --- /dev/null +++ b/node_modules/readable-stream/lib/_stream_passthrough.js @@ -0,0 +1,47 @@ +// 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. + +// a passthrough stream. +// basically just the most minimal sort of Transform stream. +// Every written chunk gets output as-is. + +'use strict'; + +module.exports = PassThrough; + +var Transform = require('./_stream_transform'); + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +util.inherits(PassThrough, Transform); + +function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + + Transform.call(this, options); +} + +PassThrough.prototype._transform = function (chunk, encoding, cb) { + cb(null, chunk); +}; \ No newline at end of file diff --git a/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/readable-stream/lib/_stream_readable.js new file mode 100644 index 00000000..0f807646 --- /dev/null +++ b/node_modules/readable-stream/lib/_stream_readable.js @@ -0,0 +1,1019 @@ +// 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. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +module.exports = Readable; + +/**/ +var isArray = require('isarray'); +/**/ + +/**/ +var Duplex; +/**/ + +Readable.ReadableState = ReadableState; + +/**/ +var EE = require('events').EventEmitter; + +var EElistenerCount = function (emitter, type) { + return emitter.listeners(type).length; +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ + +var Buffer = require('safe-buffer').Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +/**/ +var debugUtil = require('util'); +var debug = void 0; +if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog('stream'); +} else { + debug = function () {}; +} +/**/ + +var BufferList = require('./internal/streams/BufferList'); +var destroyImpl = require('./internal/streams/destroy'); +var StringDecoder; + +util.inherits(Readable, Stream); + +var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; + +function prependListener(emitter, event, fn) { + // Sadly this is not cacheable as some libraries bundle their own + // event emitter implementation with them. + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any + // userland ones. NEVER DO THIS. This is here only because this code needs + // to continue to work with older versions of Node.js that do not include + // the prependListener() method. The goal is to eventually remove this hack. + if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; +} + +function ReadableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + var hwm = options.highWaterMark; + var readableHwm = options.readableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift() + this.buffer = new BufferList(); + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + + // if true, a maybeReadMore has been scheduled + this.readingMore = false; + + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +function Readable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + if (!(this instanceof Readable)) return new Readable(options); + + this._readableState = new ReadableState(options, this); + + // legacy + this.readable = true; + + if (options) { + if (typeof options.read === 'function') this._read = options.read; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } + + Stream.call(this); +} + +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); + +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); +}; + +// Unshift should *always* be something directly out of read() +Readable.prototype.unshift = function (chunk) { + return readableAddChunk(this, chunk, null, true, false); +}; + +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + } + } + + return needMoreData(state); +} + +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + +// if it's past the high water mark, we can push in some more. +// Also, if we have no data yet, we can stand some +// more bytes. This is to work around cases where hwm=0, +// such as the repl. Also, if the push() triggered a +// readable event, and the user called read(largeNumber) such that +// needReadable was set, then we ought to push more, so that another +// 'readable' event will be triggered. +function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); +} + +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + +// backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; +}; + +// Don't raise the hwm > 8MB +var MAX_HWM = 0x800000; +function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) return 0; + if (state.objectMode) return 1; + if (n !== n) { + // Only flow one buffer at a time + if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; + } + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) return n; + // Don't have enough + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; +} + +// you can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + debug('read', n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug('read: emitReadable', state.length, state.ended); + if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); + return null; + } + + n = howMuchToRead(n, state); + + // if we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + var doRead = state.needReadable; + debug('need readable', doRead); + + // if we currently have less than the highWaterMark, then also read some + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug('length less than watermark', doRead); + } + + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. + if (state.ended || state.reading) { + doRead = false; + debug('reading or ended', doRead); + } else if (doRead) { + debug('do read'); + state.reading = true; + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method + this._read(state.highWaterMark); + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + + var ret; + if (n > 0) ret = fromList(n, state);else ret = null; + + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } + + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true; + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this); + } + + if (ret !== null) this.emit('data', ret); + + return ret; +}; + +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + + // emit 'readable' now to make sure it gets picked up. + emitReadable(stream); +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug('emitReadable', state.flowing); + state.emittedReadable = true; + if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); + } +} + +function emitReadable_(stream) { + debug('emit readable'); + stream.emit('readable'); + flow(stream); +} + +// at this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + pna.nextTick(maybeReadMore_, stream, state); + } +} + +function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug('maybeReadMore read 0'); + stream.read(0); + if (len === state.length) + // didn't get any data, stop spinning. + break;else len = state.length; + } + state.readingMore = false; +} + +// abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (n) { + this.emit('error', new Error('_read() is not implemented')); +}; + +Readable.prototype.pipe = function (dest, pipeOpts) { + var src = this; + var state = this._readableState; + + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); + + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); + + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + debug('onunpipe'); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + + function onend() { + debug('onend'); + dest.end(); + } + + // when the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + var ondrain = pipeOnDrain(src); + dest.on('drain', ondrain); + + var cleanedUp = false; + function cleanup() { + debug('cleanup'); + // cleanup event handlers once the pipe is broken + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + dest.removeListener('drain', ondrain); + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + + cleanedUp = true; + + // if the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + + // If the user pushes more data while we're writing to dest then we'll end up + // in ondata again. However, we only want to increase awaitDrain once because + // dest will only emit one 'drain' event for the multiple writes. + // => Introduce a guard on increasing awaitDrain. + var increasedAwaitDrain = false; + src.on('data', ondata); + function ondata(chunk) { + debug('ondata'); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (false === ret && !increasedAwaitDrain) { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug('false write response, pause', src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } + + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. + function onerror(er) { + debug('onerror', er); + unpipe(); + dest.removeListener('error', onerror); + if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); + } + + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + debug('onfinish'); + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + + function unpipe() { + debug('unpipe'); + src.unpipe(dest); + } + + // tell the dest that it's being piped to + dest.emit('pipe', src); + + // start the flow if it hasn't been started already. + if (!state.flowing) { + debug('pipe resume'); + src.resume(); + } + + return dest; +}; + +function pipeOnDrain(src) { + return function () { + var state = src._readableState; + debug('pipeOnDrain', state.awaitDrain); + if (state.awaitDrain) state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { + state.flowing = true; + flow(src); + } + }; +} + +Readable.prototype.unpipe = function (dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; + + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + + // just one destination. most common case. + if (state.pipesCount === 1) { + // passed in one, but it's not the right one. + if (dest && dest !== state.pipes) return this; + + if (!dest) dest = state.pipes; + + // got a match. + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) dest.emit('unpipe', this, unpipeInfo); + return this; + } + + // slow case. multiple pipe destinations. + + if (!dest) { + // remove all. + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + + for (var i = 0; i < len; i++) { + dests[i].emit('unpipe', this, unpipeInfo); + }return this; + } + + // try to find the right one. + var index = indexOf(state.pipes, dest); + if (index === -1) return this; + + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) state.pipes = state.pipes[0]; + + dest.emit('unpipe', this, unpipeInfo); + + return this; +}; + +// set up data events if they are asked for +// Ensure readable listeners eventually get something +Readable.prototype.on = function (ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + + if (ev === 'data') { + // Start flowing on next tick if stream isn't explicitly paused + if (this._readableState.flowing !== false) this.resume(); + } else if (ev === 'readable') { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + pna.nextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } + + return res; +}; +Readable.prototype.addListener = Readable.prototype.on; + +function nReadingNextTick(self) { + debug('readable nexttick read 0'); + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + var state = this._readableState; + if (!state.flowing) { + debug('resume'); + state.flowing = true; + resume(this, state); + } + return this; +}; + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + pna.nextTick(resume_, stream, state); + } +} + +function resume_(stream, state) { + if (!state.reading) { + debug('resume read 0'); + stream.read(0); + } + + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} + +Readable.prototype.pause = function () { + debug('call pause flowing=%j', this._readableState.flowing); + if (false !== this._readableState.flowing) { + debug('pause'); + this._readableState.flowing = false; + this.emit('pause'); + } + return this; +}; + +function flow(stream) { + var state = stream._readableState; + debug('flow', state.flowing); + while (state.flowing && stream.read() !== null) {} +} + +// wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + var _this = this; + + var state = this._readableState; + var paused = false; + + stream.on('end', function () { + debug('wrapped end'); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) _this.push(chunk); + } + + _this.push(null); + }); + + stream.on('data', function (chunk) { + debug('wrapped data'); + if (state.decoder) chunk = state.decoder.write(chunk); + + // don't skip over falsy values in objectMode + if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; + + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + + // proxy all the other methods. + // important when wrapping filters and duplexes. + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = function (method) { + return function () { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + + // proxy certain important events. + for (var n = 0; n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + + // when we try to consume some more bytes, simply unpause the + // underlying stream. + this._read = function (n) { + debug('wrapped _read', n); + if (paused) { + paused = false; + stream.resume(); + } + }; + + return this; +}; + +Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._readableState.highWaterMark; + } +}); + +// exposed for testing purposes only. +Readable._fromList = fromList; + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered + if (state.length === 0) return null; + + var ret; + if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { + // read it all, truncate the list + if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + // read part of list + ret = fromListPartial(n, state.buffer, state.decoder); + } + + return ret; +} + +// Extracts only enough buffered data to satisfy the amount requested. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + // slice is the same for buffers and strings + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + // first chunk is a perfect match + ret = list.shift(); + } else { + // result spans more than one buffer + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; +} + +// Copies a specified amount of characters from the list of buffered data +// chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) ret += str;else ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +// Copies a specified amount of bytes from the list of buffered data chunks. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function copyFromBuffer(n, list) { + var ret = Buffer.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) list.head = p.next;else list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; +} + +function endReadable(stream) { + var state = stream._readableState; + + // If we get here before consuming all the bytes, then that is a + // bug in node. Should never happen. + if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); + + if (!state.endEmitted) { + state.ended = true; + pna.nextTick(endReadableNT, state, stream); + } +} + +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit('end'); + } +} + +function indexOf(xs, x) { + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) return i; + } + return -1; +} \ No newline at end of file diff --git a/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/readable-stream/lib/_stream_transform.js new file mode 100644 index 00000000..fcfc105a --- /dev/null +++ b/node_modules/readable-stream/lib/_stream_transform.js @@ -0,0 +1,214 @@ +// 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. + +// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + +'use strict'; + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +util.inherits(Transform, Duplex); + +function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + if (!cb) { + return this.emit('error', new Error('write callback called multiple times')); + } + + ts.writechunk = null; + ts.writecb = null; + + if (data != null) // single equals check for both `null` and `undefined` + this.push(data); + + cb(er); + + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } +} + +function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + Duplex.call(this, options); + + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + this.on('prefinish', prefinish); +} + +function prefinish() { + var _this = this; + + if (typeof this._flush === 'function') { + this._flush(function (er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = function (chunk, encoding, cb) { + throw new Error('_transform() is not implemented'); +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +Transform.prototype._destroy = function (err, cb) { + var _this2 = this; + + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this2.emit('close'); + }); +}; + +function done(stream, er, data) { + if (er) return stream.emit('error', er); + + if (data != null) // single equals check for both `null` and `undefined` + stream.push(data); + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); + + if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); + + return stream.push(null); +} \ No newline at end of file diff --git a/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/readable-stream/lib/_stream_writable.js new file mode 100644 index 00000000..b0b02200 --- /dev/null +++ b/node_modules/readable-stream/lib/_stream_writable.js @@ -0,0 +1,687 @@ +// 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. + +// A bit simpler than readable streams. +// Implement an async ._write(chunk, encoding, cb), and it'll handle all +// the drain event emission and buffering. + +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + +/**/ +var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; +/**/ + +/**/ +var Duplex; +/**/ + +Writable.WritableState = WritableState; + +/**/ +var util = Object.create(require('core-util-is')); +util.inherits = require('inherits'); +/**/ + +/**/ +var internalUtil = { + deprecate: require('util-deprecate') +}; +/**/ + +/**/ +var Stream = require('./internal/streams/stream'); +/**/ + +/**/ + +var Buffer = require('safe-buffer').Buffer; +var OurUint8Array = global.Uint8Array || function () {}; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; +} + +/**/ + +var destroyImpl = require('./internal/streams/destroy'); + +util.inherits(Writable, Stream); + +function nop() {} + +function WritableState(options, stream) { + Duplex = Duplex || require('./_stream_duplex'); + + options = options || {}; + + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + var isDuplex = stream instanceof Duplex; + + // object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!options.objectMode; + + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write() + var hwm = options.highWaterMark; + var writableHwm = options.writableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + + if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; + + // cast to ints. + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; + + // has it been destroyed + this.destroyed = false; + + // should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; + + // not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // a flag to see when we're in the middle of a write. + this.writing = false; + + // when true all writes will be buffered until .uncork() call + this.corked = 0; + + // a flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // a flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // the callback that's passed to _write(chunk,cb) + this.onwrite = function (er) { + onwrite(stream, er); + }; + + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + + // the amount that is being written when _write is called. + this.writelen = 0; + + this.bufferedRequest = null; + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; + + // emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; + + // count buffered requests + this.bufferedRequestCount = 0; + + // allocate the first CorkedRequest, there is always + // one allocated and free to use, and we maintain at most two + this.corkedRequestsFree = new CorkedRequest(this); +} + +WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; +}; + +(function () { + try { + Object.defineProperty(WritableState.prototype, 'buffer', { + get: internalUtil.deprecate(function () { + return this.getBuffer(); + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') + }); + } catch (_) {} +})(); + +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. +var realHasInstance; +if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function (object) { + if (realHasInstance.call(this, object)) return true; + if (this !== Writable) return false; + + return object && object._writableState instanceof WritableState; + } + }); +} else { + realHasInstance = function (object) { + return object instanceof this; + }; +} + +function Writable(options) { + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } + + this._writableState = new WritableState(options, this); + + // legacy. + this.writable = true; + + if (options) { + if (typeof options.write === 'function') this._write = options.write; + + if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; + } + + Stream.call(this); +} + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function () { + this.emit('error', new Error('Cannot pipe, not readable')); +}; + +function writeAfterEnd(stream, cb) { + var er = new Error('write after end'); + // TODO: defer error events consistently everywhere, not just the cb + stream.emit('error', er); + pna.nextTick(cb, er); +} + +// Checks that a user-supplied chunk is valid, especially for the particular +// mode the stream is in. Currently this means that `null` is never accepted +// and undefined/non-string values are only allowed in object mode. +function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; + + if (chunk === null) { + er = new TypeError('May not write null values to stream'); + } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + if (er) { + stream.emit('error', er); + pna.nextTick(cb, er); + valid = false; + } + return valid; +} + +Writable.prototype.write = function (chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + + if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; + + if (typeof cb !== 'function') cb = nop; + + if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + + return ret; +}; + +Writable.prototype.cork = function () { + var state = this._writableState; + + state.corked++; +}; + +Writable.prototype.uncork = function () { + var state = this._writableState; + + if (state.corked) { + state.corked--; + + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + } +}; + +Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + // node::ParseEncoding() requires lower case. + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); + this._writableState.defaultEncoding = encoding; + return this; +}; + +function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + } + return chunk; +} + +Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { + // making it explicit this property is not enumerable + // because otherwise some prototype manipulation in + // userland will fail + enumerable: false, + get: function () { + return this._writableState.highWaterMark; + } +}); + +// if we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + + state.length += len; + + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + + return ret; +} + +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + pna.nextTick(cb, er); + // this can emit finish, and it will always happen + // after error + pna.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } +} + +function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; +} + +function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + + onwriteStateUpdate(state); + + if (er) onwriteError(stream, state, sync, er, cb);else { + // Check if we're actually ready to finish, but don't emit yet + var finished = needFinish(state); + + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + + if (sync) { + /**/ + asyncWrite(afterWrite, stream, state, finished, cb); + /**/ + } else { + afterWrite(stream, state, finished, cb); + } + } +} + +function afterWrite(stream, state, finished, cb) { + if (!finished) onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); +} + +// Must force callback to be called on nextTick, so that we don't +// emit 'drain' before the write() consumer gets the 'false' return +// value, and has a chance to attach a 'drain' listener. +function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit('drain'); + } +} + +// if there's something in the buffer waiting, then process it +function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + + if (stream._writev && entry && entry.next) { + // Fast case, write everything using _writev() + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + // Slow case, write chunks one-by-one + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then + // it means that we need to wait until it does. + // also, that means that the chunk and cb are currently + // being processed, so move the buffer counter past them. + if (state.writing) { + break; + } + } + + if (entry === null) state.lastBufferedRequest = null; + } + + state.bufferedRequest = entry; + state.bufferProcessing = false; +} + +Writable.prototype._write = function (chunk, encoding, cb) { + cb(new Error('_write() is not implemented')); +}; + +Writable.prototype._writev = null; + +Writable.prototype.end = function (chunk, encoding, cb) { + var state = this._writableState; + + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); + + // .end() fully uncorks + if (state.corked) { + state.corked = 1; + this.uncork(); + } + + // ignore unnecessary end() calls. + if (!state.ending && !state.finished) endWritable(this, state, cb); +}; + +function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; +} +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } + state.prefinished = true; + stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + pna.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} + +function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit('finish'); + } + } + return need; +} + +function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); + } + state.ended = true; + stream.writable = false; +} + +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } +} + +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; \ No newline at end of file diff --git a/node_modules/readable-stream/lib/internal/streams/BufferList.js b/node_modules/readable-stream/lib/internal/streams/BufferList.js new file mode 100644 index 00000000..aefc68bd --- /dev/null +++ b/node_modules/readable-stream/lib/internal/streams/BufferList.js @@ -0,0 +1,79 @@ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var Buffer = require('safe-buffer').Buffer; +var util = require('util'); + +function copyBuffer(src, target, offset) { + src.copy(target, offset); +} + +module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); + + this.head = null; + this.tail = null; + this.length = 0; + } + + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; + + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; + + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; + + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; + + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + + return BufferList; +}(); + +if (util && util.inspect && util.inspect.custom) { + module.exports.prototype[util.inspect.custom] = function () { + var obj = util.inspect({ length: this.length }); + return this.constructor.name + ' ' + obj; + }; +} \ No newline at end of file diff --git a/node_modules/readable-stream/lib/internal/streams/destroy.js b/node_modules/readable-stream/lib/internal/streams/destroy.js new file mode 100644 index 00000000..5a0a0d88 --- /dev/null +++ b/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -0,0 +1,74 @@ +'use strict'; + +/**/ + +var pna = require('process-nextick-args'); +/**/ + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + pna.nextTick(emitErrorNT, this, err); + } + return this; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + + this._destroy(err || null, function (err) { + if (!cb && err) { + pna.nextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); + + return this; +} + +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} + +function emitErrorNT(self, err) { + self.emit('error', err); +} + +module.exports = { + destroy: destroy, + undestroy: undestroy +}; \ No newline at end of file diff --git a/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/node_modules/readable-stream/lib/internal/streams/stream-browser.js new file mode 100644 index 00000000..9332a3fd --- /dev/null +++ b/node_modules/readable-stream/lib/internal/streams/stream-browser.js @@ -0,0 +1 @@ +module.exports = require('events').EventEmitter; diff --git a/node_modules/readable-stream/lib/internal/streams/stream.js b/node_modules/readable-stream/lib/internal/streams/stream.js new file mode 100644 index 00000000..ce2ad5b6 --- /dev/null +++ b/node_modules/readable-stream/lib/internal/streams/stream.js @@ -0,0 +1 @@ +module.exports = require('stream'); diff --git a/node_modules/readable-stream/package.json b/node_modules/readable-stream/package.json new file mode 100644 index 00000000..a4c7c365 --- /dev/null +++ b/node_modules/readable-stream/package.json @@ -0,0 +1,81 @@ +{ + "_from": "readable-stream@^2.3.5", + "_id": "readable-stream@2.3.7", + "_inBundle": false, + "_integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "_location": "/readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "readable-stream@^2.3.5", + "name": "readable-stream", + "escapedName": "readable-stream", + "rawSpec": "^2.3.5", + "saveSpec": null, + "fetchSpec": "^2.3.5" + }, + "_requiredBy": [ + "/bl" + ], + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "_shasum": "1eca1cf711aef814c04f62252a36a62f6cb23b57", + "_spec": "readable-stream@^2.3.5", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\bl", + "browser": { + "util": false, + "./readable.js": "./readable-browser.js", + "./writable.js": "./writable-browser.js", + "./duplex.js": "./duplex-browser.js", + "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js" + }, + "bugs": { + "url": "https://github.com/nodejs/readable-stream/issues" + }, + "bundleDependencies": false, + "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" + }, + "deprecated": false, + "description": "Streams3, a user-land copy of the stream library from Node.js", + "devDependencies": { + "assert": "^1.4.0", + "babel-polyfill": "^6.9.1", + "buffer": "^4.9.0", + "lolex": "^2.3.2", + "nyc": "^6.4.0", + "tap": "^0.7.0", + "tape": "^4.8.0" + }, + "homepage": "https://github.com/nodejs/readable-stream#readme", + "keywords": [ + "readable", + "stream", + "pipe" + ], + "license": "MIT", + "main": "readable.js", + "name": "readable-stream", + "nyc": { + "include": [ + "lib/**.js" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/nodejs/readable-stream.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "cover": "nyc npm test", + "report": "nyc report --reporter=lcov", + "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js" + }, + "version": "2.3.7" +} diff --git a/node_modules/readable-stream/passthrough.js b/node_modules/readable-stream/passthrough.js new file mode 100644 index 00000000..ffd791d7 --- /dev/null +++ b/node_modules/readable-stream/passthrough.js @@ -0,0 +1 @@ +module.exports = require('./readable').PassThrough diff --git a/node_modules/readable-stream/readable-browser.js b/node_modules/readable-stream/readable-browser.js new file mode 100644 index 00000000..e5037259 --- /dev/null +++ b/node_modules/readable-stream/readable-browser.js @@ -0,0 +1,7 @@ +exports = module.exports = require('./lib/_stream_readable.js'); +exports.Stream = exports; +exports.Readable = exports; +exports.Writable = require('./lib/_stream_writable.js'); +exports.Duplex = require('./lib/_stream_duplex.js'); +exports.Transform = require('./lib/_stream_transform.js'); +exports.PassThrough = require('./lib/_stream_passthrough.js'); diff --git a/node_modules/readable-stream/readable.js b/node_modules/readable-stream/readable.js new file mode 100644 index 00000000..ec89ec53 --- /dev/null +++ b/node_modules/readable-stream/readable.js @@ -0,0 +1,19 @@ +var Stream = require('stream'); +if (process.env.READABLE_STREAM === 'disable' && Stream) { + module.exports = Stream; + exports = module.exports = Stream.Readable; + exports.Readable = Stream.Readable; + exports.Writable = Stream.Writable; + exports.Duplex = Stream.Duplex; + exports.Transform = Stream.Transform; + exports.PassThrough = Stream.PassThrough; + exports.Stream = Stream; +} else { + exports = module.exports = require('./lib/_stream_readable.js'); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = require('./lib/_stream_writable.js'); + exports.Duplex = require('./lib/_stream_duplex.js'); + exports.Transform = require('./lib/_stream_transform.js'); + exports.PassThrough = require('./lib/_stream_passthrough.js'); +} diff --git a/node_modules/readable-stream/transform.js b/node_modules/readable-stream/transform.js new file mode 100644 index 00000000..b1baba26 --- /dev/null +++ b/node_modules/readable-stream/transform.js @@ -0,0 +1 @@ +module.exports = require('./readable').Transform diff --git a/node_modules/readable-stream/writable-browser.js b/node_modules/readable-stream/writable-browser.js new file mode 100644 index 00000000..ebdde6a8 --- /dev/null +++ b/node_modules/readable-stream/writable-browser.js @@ -0,0 +1 @@ +module.exports = require('./lib/_stream_writable.js'); diff --git a/node_modules/readable-stream/writable.js b/node_modules/readable-stream/writable.js new file mode 100644 index 00000000..3211a6f8 --- /dev/null +++ b/node_modules/readable-stream/writable.js @@ -0,0 +1,8 @@ +var Stream = require("stream") +var Writable = require("./lib/_stream_writable.js") + +if (process.env.READABLE_STREAM === 'disable') { + module.exports = Stream && Stream.Writable || Writable +} else { + module.exports = Writable +} diff --git a/node_modules/readdirp/LICENSE b/node_modules/readdirp/LICENSE new file mode 100644 index 00000000..037cbb4e --- /dev/null +++ b/node_modules/readdirp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/readdirp/README.md b/node_modules/readdirp/README.md new file mode 100644 index 00000000..b3b3127b --- /dev/null +++ b/node_modules/readdirp/README.md @@ -0,0 +1,120 @@ +# readdirp [![Weekly downloads](https://img.shields.io/npm/dw/readdirp.svg)](https://github.com/paulmillr/readdirp) + +> Recursive version of [fs.readdir](https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback). Exposes a **stream API** and a **promise API**. + +[![NPM](https://nodei.co/npm/readdirp.png)](https://www.npmjs.com/package/readdirp) + +```sh +npm install readdirp +``` + +```javascript +const readdirp = require('readdirp'); + +// Use streams to achieve small RAM & CPU footprint. +// 1) Streams example with for-await. +for await (const entry of readdirp('.')) { + const {path} = entry; + console.log(`${JSON.stringify({path})}`); +} + +// 2) Streams example, non for-await. +// Print out all JS files along with their size within the current folder & subfolders. +readdirp('.', {fileFilter: '*.js', alwaysStat: true}) + .on('data', (entry) => { + const {path, stats: {size}} = entry; + console.log(`${JSON.stringify({path, size})}`); + }) + // Optionally call stream.destroy() in `warn()` in order to abort and cause 'close' to be emitted + .on('warn', error => console.error('non-fatal error', error)) + .on('error', error => console.error('fatal error', error)) + .on('end', () => console.log('done')); + +// 3) Promise example. More RAM and CPU than streams / for-await. +const files = await readdirp.promise('.'); +console.log(files.map(file => file.path)); + +// Other options. +readdirp('test', { + fileFilter: '*.js', + directoryFilter: ['!.git', '!*modules'] + // directoryFilter: (di) => di.basename.length === 9 + type: 'files_directories', + depth: 1 +}); +``` + +For more examples, check out `examples` directory. + +## API + +`const stream = readdirp(root[, options])` — **Stream API** + +- Reads given root recursively and returns a `stream` of [entry infos](#entryinfo) +- Optionally can be used like `for await (const entry of stream)` with node.js 10+ (`asyncIterator`). +- `on('data', (entry) => {})` [entry info](#entryinfo) for every file / dir. +- `on('warn', (error) => {})` non-fatal `Error` that prevents a file / dir from being processed. Example: inaccessible to the user. +- `on('error', (error) => {})` fatal `Error` which also ends the stream. Example: illegal options where passed. +- `on('end')` — we are done. Called when all entries were found and no more will be emitted. +- `on('close')` — stream is destroyed via `stream.destroy()`. + Could be useful if you want to manually abort even on a non fatal error. + At that point the stream is no longer `readable` and no more entries, warning or errors are emitted +- To learn more about streams, consult the very detailed [nodejs streams documentation](https://nodejs.org/api/stream.html) + or the [stream-handbook](https://github.com/substack/stream-handbook) + +`const entries = await readdirp.promise(root[, options])` — **Promise API**. Returns a list of [entry infos](#entryinfo). + +First argument is awalys `root`, path in which to start reading and recursing into subdirectories. + +### options + +- `fileFilter: ["*.js"]`: filter to include or exclude files. A `Function`, Glob string or Array of glob strings. + - **Function**: a function that takes an entry info as a parameter and returns true to include or false to exclude the entry + - **Glob string**: a string (e.g., `*.js`) which is matched using [picomatch](https://github.com/micromatch/picomatch), so go there for more + information. Globstars (`**`) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense. Negated globs (as explained in the minimatch documentation) are allowed, e.g., `!*.txt` matches everything but text files. + - **Array of glob strings**: either need to be all inclusive or all exclusive (negated) patterns otherwise an error is thrown. + `['*.json', '*.js']` includes all JavaScript and Json files. + `['!.git', '!node_modules']` includes all directories except the '.git' and 'node_modules'. + - Directories that do not pass a filter will not be recursed into. +- `directoryFilter: ['!.git']`: filter to include/exclude directories found and to recurse into. Directories that do not pass a filter will not be recursed into. +- `depth: 5`: depth at which to stop recursing even if more subdirectories are found +- `type: 'files'`: determines if data events on the stream should be emitted for `'files'` (default), `'directories'`, `'files_directories'`, or `'all'`. Setting to `'all'` will also include entries for other types of file descriptors like character devices, unix sockets and named pipes. +- `alwaysStat: false`: always return `stats` property for every file. Setting it to `true` can double readdir execution time - use it only when you need file `size`, `mtime` etc. Cannot be enabled on node <10.10.0. +- `lstat: false`: include symlink entries in the stream along with files. When `true`, `fs.lstat` would be used instead of `fs.stat` + +### `EntryInfo` + +Has the following properties: + +- `path: 'assets/javascripts/react.js'`: path to the file/directory (relative to given root) +- `fullPath: '/Users/dev/projects/app/assets/javascripts/react.js'`: full path to the file/directory found +- `basename: 'react.js'`: name of the file/directory +- `dirent: fs.Dirent`: built-in [dir entry object](https://nodejs.org/api/fs.html#fs_class_fs_dirent) - only with `alwaysStat: false` +- `stats: fs.Stats`: built in [stat object](https://nodejs.org/api/fs.html#fs_class_fs_stats) - only with `alwaysStat: true` + +## Changelog + +- 3.3 (Dec 6, 2019) stabilizes RAM consumption and enables perf management with `highWaterMark` option. Fixes race conditions related to `for-await` looping. +- 3.2 (Oct 14, 2019) improves performance by 250% and makes streams implementation more idiomatic. +- 3.1 (Jul 7, 2019) brings `bigint` support to `stat` output on Windows. This is backwards-incompatible for some cases. Be careful. It you use it incorrectly, you'll see "TypeError: Cannot mix BigInt and other types, use explicit conversions". +- 3.0 brings huge performance improvements and stream backpressure support. +- Upgrading 2.x to 3.x: + - Signature changed from `readdirp(options)` to `readdirp(root, options)` + - Replaced callback API with promise API. + - Renamed `entryType` option to `type` + - Renamed `entryType: 'both'` to `'files_directories'` + - `EntryInfo` + - Renamed `stat` to `stats` + - Emitted only when `alwaysStat: true` + - `dirent` is emitted instead of `stats` by default with `alwaysStat: false` + - Renamed `name` to `basename` + - Removed `parentDir` and `fullParentDir` properties +- Supported node.js versions: + - 3.x: node 8+ + - 2.x: node 0.6+ + +## License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller () + +MIT License, see [LICENSE](LICENSE) file. diff --git a/node_modules/readdirp/index.d.ts b/node_modules/readdirp/index.d.ts new file mode 100644 index 00000000..cbbd76ca --- /dev/null +++ b/node_modules/readdirp/index.d.ts @@ -0,0 +1,43 @@ +// TypeScript Version: 3.2 + +/// + +import * as fs from 'fs'; +import { Readable } from 'stream'; + +declare namespace readdir { + interface EntryInfo { + path: string; + fullPath: string; + basename: string; + stats?: fs.Stats; + dirent?: fs.Dirent; + } + + interface ReaddirpOptions { + root?: string; + fileFilter?: string | string[] | ((entry: EntryInfo) => boolean); + directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean); + type?: 'files' | 'directories' | 'files_directories' | 'all'; + lstat?: boolean; + depth?: number; + alwaysStat?: boolean; + } + + interface ReaddirpStream extends Readable, AsyncIterable { + read(): EntryInfo; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + function promise( + root: string, + options?: ReaddirpOptions + ): Promise; +} + +declare function readdir( + root: string, + options?: readdir.ReaddirpOptions +): readdir.ReaddirpStream; + +export = readdir; diff --git a/node_modules/readdirp/index.js b/node_modules/readdirp/index.js new file mode 100644 index 00000000..09ba3826 --- /dev/null +++ b/node_modules/readdirp/index.js @@ -0,0 +1,275 @@ +'use strict'; + +const fs = require('fs'); +const { Readable } = require('stream'); +const sysPath = require('path'); +const { promisify } = require('util'); +const picomatch = require('picomatch'); + +const readdir = promisify(fs.readdir); +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const realpath = promisify(fs.realpath); + +/** + * @typedef {Object} EntryInfo + * @property {String} path + * @property {String} fullPath + * @property {fs.Stats=} stats + * @property {fs.Dirent=} dirent + * @property {String} basename + */ + +const BANG = '!'; +const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP']); +const FILE_TYPE = 'files'; +const DIR_TYPE = 'directories'; +const FILE_DIR_TYPE = 'files_directories'; +const EVERYTHING_TYPE = 'all'; +const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; + +const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); + +const normalizeFilter = filter => { + if (filter === undefined) return; + if (typeof filter === 'function') return filter; + + if (typeof filter === 'string') { + const glob = picomatch(filter.trim()); + return entry => glob(entry.basename); + } + + if (Array.isArray(filter)) { + const positive = []; + const negative = []; + for (const item of filter) { + const trimmed = item.trim(); + if (trimmed.charAt(0) === BANG) { + negative.push(picomatch(trimmed.slice(1))); + } else { + positive.push(picomatch(trimmed)); + } + } + + if (negative.length > 0) { + if (positive.length > 0) { + return entry => + positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename)); + } + return entry => !negative.some(f => f(entry.basename)); + } + return entry => positive.some(f => f(entry.basename)); + } +}; + +class ReaddirpStream extends Readable { + static get defaultOptions() { + return { + root: '.', + /* eslint-disable no-unused-vars */ + fileFilter: (path) => true, + directoryFilter: (path) => true, + /* eslint-enable no-unused-vars */ + type: FILE_TYPE, + lstat: false, + depth: 2147483648, + alwaysStat: false + }; + } + + constructor(options = {}) { + super({ + objectMode: true, + autoDestroy: true, + highWaterMark: options.highWaterMark || 4096 + }); + const opts = { ...ReaddirpStream.defaultOptions, ...options }; + const { root, type } = opts; + + this._fileFilter = normalizeFilter(opts.fileFilter); + this._directoryFilter = normalizeFilter(opts.directoryFilter); + + const statMethod = opts.lstat ? lstat : stat; + // Use bigint stats if it's windows and stat() supports options (node 10+). + if (process.platform === 'win32' && stat.length === 3) { + this._stat = path => statMethod(path, { bigint: true }); + } else { + this._stat = statMethod; + } + + this._maxDepth = opts.depth; + this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsEverything = type === EVERYTHING_TYPE; + this._root = sysPath.resolve(root); + this._isDirent = ('Dirent' in fs) && !opts.alwaysStat; + this._statsProp = this._isDirent ? 'dirent' : 'stats'; + this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; + + // Launch stream with one parent, the root dir. + this.parents = [this._exploreDir(root, 1)]; + this.reading = false; + this.parent = undefined; + } + + async _read(batch) { + if (this.reading) return; + this.reading = true; + + try { + while (!this.destroyed && batch > 0) { + const { path, depth, files = [] } = this.parent || {}; + + if (files.length > 0) { + const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path)); + for (const entry of await Promise.all(slice)) { + if (this.destroyed) return; + + const entryType = await this._getEntryType(entry); + if (entryType === 'directory' && this._directoryFilter(entry)) { + if (depth <= this._maxDepth) { + this.parents.push(this._exploreDir(entry.fullPath, depth + 1)); + } + + if (this._wantsDir) { + this.push(entry); + batch--; + } + } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) { + if (this._wantsFile) { + this.push(entry); + batch--; + } + } + } + } else { + const parent = this.parents.pop(); + if (!parent) { + this.push(null); + break; + } + this.parent = await parent; + if (this.destroyed) return; + } + } + } catch (error) { + this.destroy(error); + } finally { + this.reading = false; + } + } + + async _exploreDir(path, depth) { + let files; + try { + files = await readdir(path, this._rdOptions); + } catch (error) { + this._onError(error); + } + return {files, depth, path}; + } + + async _formatEntry(dirent, path) { + let entry; + try { + const basename = this._isDirent ? dirent.name : dirent; + const fullPath = sysPath.resolve(sysPath.join(path, basename)); + entry = {path: sysPath.relative(this._root, fullPath), fullPath, basename}; + entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); + } catch (err) { + this._onError(err); + } + return entry; + } + + _onError(err) { + if (isNormalFlowError(err) && !this.destroyed) { + this.emit('warn', err); + } else { + this.destroy(err); + } + } + + async _getEntryType(entry) { + // entry may be undefined, because a warning or an error were emitted + // and the statsProp is undefined + const stats = entry && entry[this._statsProp]; + if (!stats) { + return; + } + if (stats.isFile()) { + return 'file'; + } + if (stats.isDirectory()) { + return 'directory'; + } + if (stats && stats.isSymbolicLink()) { + try { + const entryRealPath = await realpath(entry.fullPath); + const entryRealPathStats = await lstat(entryRealPath); + if (entryRealPathStats.isFile()) { + return 'file'; + } + if (entryRealPathStats.isDirectory()) { + return 'directory'; + } + } catch (error) { + this._onError(error); + } + } + } + + _includeAsFile(entry) { + const stats = entry && entry[this._statsProp]; + + return stats && this._wantsEverything && !stats.isDirectory(); + } +} + +/** + * @typedef {Object} ReaddirpArguments + * @property {Function=} fileFilter + * @property {Function=} directoryFilter + * @property {String=} type + * @property {Number=} depth + * @property {String=} root + * @property {Boolean=} lstat + * @property {Boolean=} bigint + */ + +/** + * Main function which ends up calling readdirRec and reads all files and directories in given root recursively. + * @param {String} root Root directory + * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth + */ +const readdirp = (root, options = {}) => { + let type = options.entryType || options.type; + if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility + if (type) options.type = type; + if (!root) { + throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)'); + } else if (typeof root !== 'string') { + throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)'); + } else if (type && !ALL_TYPES.includes(type)) { + throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`); + } + + options.root = root; + return new ReaddirpStream(options); +}; + +const readdirpPromise = (root, options = {}) => { + return new Promise((resolve, reject) => { + const files = []; + readdirp(root, options) + .on('data', entry => files.push(entry)) + .on('end', () => resolve(files)) + .on('error', error => reject(error)); + }); +}; + +readdirp.promise = readdirpPromise; +readdirp.ReaddirpStream = ReaddirpStream; +readdirp.default = readdirp; + +module.exports = readdirp; diff --git a/node_modules/readdirp/package.json b/node_modules/readdirp/package.json new file mode 100644 index 00000000..b7bf7971 --- /dev/null +++ b/node_modules/readdirp/package.json @@ -0,0 +1,157 @@ +{ + "_from": "readdirp@~3.4.0", + "_id": "readdirp@3.4.0", + "_inBundle": false, + "_integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "_location": "/readdirp", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "readdirp@~3.4.0", + "name": "readdirp", + "escapedName": "readdirp", + "rawSpec": "~3.4.0", + "saveSpec": null, + "fetchSpec": "~3.4.0" + }, + "_requiredBy": [ + "/chokidar" + ], + "_resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "_shasum": "9fdccdf9e9155805449221ac645e8303ab5b9ada", + "_spec": "readdirp@~3.4.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\chokidar", + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "thlorenz.com" + }, + "bugs": { + "url": "https://github.com/paulmillr/readdirp/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "thlorenz.com" + }, + { + "name": "Paul Miller", + "url": "https://paulmillr.com" + } + ], + "dependencies": { + "picomatch": "^2.2.1" + }, + "deprecated": false, + "description": "Recursive version of fs.readdir with streaming API.", + "devDependencies": { + "@types/node": "^13", + "chai": "^4.2", + "chai-subset": "^1.6", + "dtslint": "^3.3.0", + "eslint": "^6.6.0", + "mocha": "^7.1.1", + "nyc": "^15.0.0", + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "eslintConfig": { + "root": true, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 9, + "sourceType": "script" + }, + "env": { + "node": true, + "es6": true + }, + "rules": { + "array-callback-return": "error", + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ], + "no-else-return": [ + "error", + { + "allowElseIf": false + } + ], + "no-lonely-if": "error", + "no-var": "error", + "object-shorthand": "error", + "prefer-arrow-callback": [ + "error", + { + "allowNamedFunctions": true + } + ], + "prefer-const": [ + "error", + { + "ignoreReadBeforeAssign": true + } + ], + "prefer-destructuring": [ + "error", + { + "object": true, + "array": false + } + ], + "prefer-spread": "error", + "prefer-template": "error", + "radix": "error", + "semi": "error", + "strict": "error", + "quotes": [ + "error", + "single" + ] + } + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/paulmillr/readdirp", + "keywords": [ + "recursive", + "fs", + "stream", + "streams", + "readdir", + "filesystem", + "find", + "filter" + ], + "license": "MIT", + "main": "index.js", + "name": "readdirp", + "nyc": { + "reporter": [ + "html", + "text" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/readdirp.git" + }, + "scripts": { + "dtslint": "dtslint", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --exit", + "nyc": "nyc", + "test": "npm run lint && nyc npm run mocha" + }, + "version": "3.4.0" +} diff --git a/node_modules/regexp-clone/.travis.yml b/node_modules/regexp-clone/.travis.yml new file mode 100644 index 00000000..220a17bd --- /dev/null +++ b/node_modules/regexp-clone/.travis.yml @@ -0,0 +1,14 @@ +sudo: false +language: node_js +node_js: + - 8 + - 10 + - 12 +matrix: + include: + - node_js: "13" + env: "NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly" + allow_failures: + # Allow the nightly installs to fail + - env: "NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly" +script: "npm test" diff --git a/node_modules/regexp-clone/History.md b/node_modules/regexp-clone/History.md new file mode 100644 index 00000000..0beedfc3 --- /dev/null +++ b/node_modules/regexp-clone/History.md @@ -0,0 +1,5 @@ + +0.0.1 / 2013-04-17 +================== + + * initial commit diff --git a/node_modules/regexp-clone/LICENSE b/node_modules/regexp-clone/LICENSE new file mode 100644 index 00000000..98c7c898 --- /dev/null +++ b/node_modules/regexp-clone/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2013 [Aaron Heckmann](aaron.heckmann+github@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/node_modules/regexp-clone/Makefile b/node_modules/regexp-clone/Makefile new file mode 100644 index 00000000..6c8fb751 --- /dev/null +++ b/node_modules/regexp-clone/Makefile @@ -0,0 +1,5 @@ + +test: + @./node_modules/.bin/mocha $(T) --async-only $(TESTS) + +.PHONY: test diff --git a/node_modules/regexp-clone/README.md b/node_modules/regexp-clone/README.md new file mode 100644 index 00000000..4a16bad3 --- /dev/null +++ b/node_modules/regexp-clone/README.md @@ -0,0 +1,42 @@ +#regexp-clone +============== + +Clones RegExps with flag and `lastIndex` preservation. + +```js +const regexpClone = require('regexp-clone'); + +const a = /somethin/misguy; +console.log(a.global); // true +console.log(a.ignoreCase); // true +console.log(a.multiline); // true +console.log(a.dotAll); // true +console.log(a.unicode); // true +console.log(a.sticky); // true + +const b = regexpClone(a); +console.log(b.global); // true +console.log(b.ignoreCase); // true +console.log(b.multiline); // true +console.log(b.dotAll); // true +console.log(b.unicode); // true +console.log(b.sticky); // true + +const c = /hi/g; +c.test('this string hi there'); +assert.strictEqual(c.lastIndex, 3); + +const d = regexpClone(c); +assert.strictEqual(d.lastIndex, 3); +d.test('this string hi there'); +assert.strictEqual(d.lastIndex, 14); +assert.strictEqual(c.lastIndex, 3); +``` + +``` +npm install regexp-clone +``` + +## License + +[MIT](https://github.com/aheckmann/regexp-clone/blob/master/LICENSE) diff --git a/node_modules/regexp-clone/index.js b/node_modules/regexp-clone/index.js new file mode 100644 index 00000000..19512b39 --- /dev/null +++ b/node_modules/regexp-clone/index.js @@ -0,0 +1,27 @@ + +const toString = Object.prototype.toString; + +function isRegExp (o) { + return 'object' == typeof o + && '[object RegExp]' == toString.call(o); +} + +module.exports = exports = function (regexp) { + if (!isRegExp(regexp)) { + throw new TypeError('Not a RegExp'); + } + + const flags = []; + if (regexp.global) flags.push('g'); + if (regexp.multiline) flags.push('m'); + if (regexp.ignoreCase) flags.push('i'); + if (regexp.dotAll) flags.push('s'); + if (regexp.unicode) flags.push('u'); + if (regexp.sticky) flags.push('y'); + const result = new RegExp(regexp.source, flags.join('')); + if (typeof regexp.lastIndex === 'number') { + result.lastIndex = regexp.lastIndex; + } + return result; +} + diff --git a/node_modules/regexp-clone/package.json b/node_modules/regexp-clone/package.json new file mode 100644 index 00000000..0063ff92 --- /dev/null +++ b/node_modules/regexp-clone/package.json @@ -0,0 +1,55 @@ +{ + "_from": "regexp-clone@1.0.0", + "_id": "regexp-clone@1.0.0", + "_inBundle": false, + "_integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==", + "_location": "/regexp-clone", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "regexp-clone@1.0.0", + "name": "regexp-clone", + "escapedName": "regexp-clone", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/mongoose", + "/mquery" + ], + "_resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "_shasum": "222db967623277056260b992626354a04ce9bf63", + "_spec": "regexp-clone@1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\mongoose", + "author": { + "name": "Aaron Heckmann", + "email": "aaron.heckmann+github@gmail.com" + }, + "bugs": { + "url": "https://github.com/aheckmann/regexp-clone/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Clone RegExps with options", + "devDependencies": { + "mocha": "^6.1.4" + }, + "homepage": "https://github.com/aheckmann/regexp-clone#readme", + "keywords": [ + "RegExp", + "clone" + ], + "license": "MIT", + "main": "index.js", + "name": "regexp-clone", + "repository": { + "type": "git", + "url": "git://github.com/aheckmann/regexp-clone.git" + }, + "scripts": { + "test": "make test" + }, + "version": "1.0.0" +} diff --git a/node_modules/regexp-clone/test/index.js b/node_modules/regexp-clone/test/index.js new file mode 100644 index 00000000..ceaea287 --- /dev/null +++ b/node_modules/regexp-clone/test/index.js @@ -0,0 +1,171 @@ + +const assert = require('assert') +const clone = require('../'); + +describe('regexp-clone', function(){ + function hasEqualSource (a, b) { + assert.ok(a !== b); + assert.equal(a.source, b.source); + } + + function isIgnoreCase (a) { + assert.ok(a.ignoreCase); + } + + function isGlobal (a) { + assert.ok(a.global); + } + + function isMultiline (a) { + assert.ok(a.multiline); + } + + function isDotAll (a) { + assert.ok(a.dotAll); + } + + function isUnicode (a) { + assert.ok(a.unicode); + } + + function isSticky(a) { + assert.ok(a.sticky); + } + + function testFlag (a, method) { + const b = clone(a); + hasEqualSource(a, b); + method(a); + method(b); + } + + function lastIndex(a) { + a.test('this string hi there'); + assert.strictEqual(a.lastIndex, 3); + const b = clone(a); + assert.strictEqual(b.lastIndex, 3); + assert.strictEqual(a.lastIndex, 3); + b.test('this string hi there'); + assert.strictEqual(b.lastIndex, 14); + assert.strictEqual(a.lastIndex, 3); + } + + function allFlags(a) { + const b = clone(a); + hasEqualSource(a, b); + testFlag(b, isIgnoreCase); + testFlag(b, isGlobal); + testFlag(b, isMultiline); + testFlag(b, isDotAll); + testFlag(b, isUnicode); + testFlag(b, isSticky); + } + + function noFlags(a) { + const b = clone(a); + hasEqualSource(a, b); + assert.ok(!b.ignoreCase); + assert.ok(!b.global); + assert.ok(!b.multiline); + assert.ok(!b.dotAll); + assert.ok(!b.unicode); + assert.ok(!b.sticky); + } + + describe('literals', function(){ + it('ignoreCase flag', function(done){ + const a = /hello/i; + testFlag(a, isIgnoreCase); + done(); + }) + it('global flag', function(done){ + const a = /hello/g; + testFlag(a, isGlobal); + done(); + }) + it('multiline flag', function(done){ + const a = /hello/m; + testFlag(a, isMultiline); + done(); + }) + it('dotAll flag', function(done){ + const a = /hello/s; + testFlag(a, isDotAll); + done(); + }) + it('unicode flag', function(done){ + const a = /hello/u; + testFlag(a, isUnicode); + done(); + }) + it('sticky flag', function(done){ + const a = /hello/y; + testFlag(a, isSticky); + done(); + }) + it('no flags', function(done){ + const a = /hello/; + noFlags(a); + done(); + }) + it('all flags', function(done){ + const a = /hello/gimsuy; + allFlags(a); + done(); + }) + it('lastIndex', function(done) { + const a = /hi/g; + lastIndex(a); + done(); + }) + }) + + describe('instances', function(){ + it('ignoreCase flag', function(done){ + const a = new RegExp('hello', 'i'); + testFlag(a, isIgnoreCase); + done(); + }) + it('global flag', function(done){ + const a = new RegExp('hello', 'g'); + testFlag(a, isGlobal); + done(); + }) + it('multiline flag', function(done){ + const a = new RegExp('hello', 'm'); + testFlag(a, isMultiline); + done(); + }) + it('dotAll flag', function(done){ + const a = new RegExp('hello', 's'); + testFlag(a, isDotAll); + done(); + }) + it('unicode flag', function(done){ + const a = new RegExp('hello', 'u'); + testFlag(a, isUnicode); + done(); + }) + it('sticky flag', function(done){ + const a = new RegExp('hello', 'y'); + testFlag(a, isSticky); + done(); + }) + it('no flags', function(done){ + const a = new RegExp('hmm'); + noFlags(a); + done(); + }) + it('all flags', function(done){ + const a = new RegExp('hello', 'misguy'); + allFlags(a); + done(); + }) + it('lastIndex', function(done) { + const a = new RegExp('hi', 'g'); + lastIndex(a); + done(); + }) + }) +}) + diff --git a/node_modules/registry-auth-token/CHANGELOG.md b/node_modules/registry-auth-token/CHANGELOG.md new file mode 100644 index 00000000..e96f146e --- /dev/null +++ b/node_modules/registry-auth-token/CHANGELOG.md @@ -0,0 +1,134 @@ +# Change Log + +All notable changes will be documented in this file. + +## [4.2.0] - 2020-07-13 + +### Changes + +- Add support for `NPM_CONFIG_USERCONFIG` environment variable (Ben Sorohan) + +## [4.1.0] - 2020-01-17 + +### Changes + +- Add support for legacy auth token on the registry url (Gustav Blomér) + +## [4.0.0] - 2019-06-17 + +### BREAKING + +- Minimum node.js version requirement is now v6 + +### Changes + +- Upgraded dependencies (Espen Hovlandsdal) + +## [3.4.0] - 2019-03-20 + +### Changes + +- Enabled legacy auth token to be read from environment variable (Martin Flodin) + +## [3.3.2] - 2018-01-26 + +### Changes + +- Support password with ENV variable tokens (Nowell Strite) + +## [3.3.1] - 2017-05-02 + +### Fixes + +- Auth legacy token is basic auth (Hutson Betts) + +## [3.3.0] - 2017-04-24 + +### Changes + +- Support legacy auth token config key (Zoltan Kochan) +- Use safe-buffer module for backwards-compatible base64 encoding/decoding (Espen Hovlandsdal) +- Change to standard.js coding style (Espen Hovlandsdal) + +## [3.2.0] - 2017-04-20 + +### Changes + +- Allow passing parsed npmrc from outside (Zoltan Kochan) + +## [3.1.2] - 2017-04-07 + +### Changes + +- Avoid infinite loop on invalid URL (Zoltan Kochan) + +## [3.1.1] - 2017-04-06 + +### Changes + +- Nerf-dart URLs even if recursive is set to false (Espen Hovlandsdal) + +## [3.1.0] - 2016-10-19 + +### Changes + +- Return the password and username for Basic authorization (Zoltan Kochan) + +## [3.0.1] - 2016-08-07 + +### Changes + +- Fix recursion bug (Lukas Eipert) +- Implement alternative base64 encoding/decoding implementation for Node 6 (Lukas Eipert) + +## [3.0.0] - 2016-08-04 + +### Added + +- Support for Basic Authentication (username/password) (Lukas Eipert) + +### Changes + +- The result format of the output changed from a simple string to an object which contains the token type + +```js + // before: returns 'tokenString' + // after: returns {token: 'tokenString', type: 'Bearer'} + getAuthToken() +``` + +## [2.1.1] - 2016-07-10 + +### Changes + +- Fix infinite loop when recursively resolving registry URLs on Windows (Espen Hovlandsdal) + +## [2.1.0] - 2016-07-07 + +### Added + +- Add feature to find configured registry URL for a scope (Espen Hovlandsdal) + +## [2.0.0] - 2016-06-17 + +### Changes + +- Fix tokens defined by reference to environment variables (Dan MacTough) + +## [1.1.1] - 2016-04-26 + +### Changes + +- Fix for registries with port number in URL (Ryan Day) + +[1.1.1]: https://github.com/rexxars/registry-auth-token/compare/a5b4fe2f5ff982110eb8a813ba1b3b3c5d851af1...v1.1.1 +[2.0.0]: https://github.com/rexxars/registry-auth-token/compare/v1.1.1...v2.0.0 +[2.1.0]: https://github.com/rexxars/registry-auth-token/compare/v2.0.0...v2.1.0 +[2.1.1]: https://github.com/rexxars/registry-auth-token/compare/v2.1.0...v2.1.1 +[3.0.0]: https://github.com/rexxars/registry-auth-token/compare/v2.1.1...v3.0.0 +[3.0.1]: https://github.com/rexxars/registry-auth-token/compare/v3.0.0...v3.0.1 +[3.1.0]: https://github.com/rexxars/registry-auth-token/compare/v3.0.1...v3.1.0 +[3.1.1]: https://github.com/rexxars/registry-auth-token/compare/v3.1.0...v3.1.1 +[3.1.2]: https://github.com/rexxars/registry-auth-token/compare/v3.1.1...v3.1.2 +[3.2.0]: https://github.com/rexxars/registry-auth-token/compare/v3.1.2...v3.2.0 +[3.3.0]: https://github.com/rexxars/registry-auth-token/compare/v3.2.0...v3.3.0 diff --git a/node_modules/registry-auth-token/LICENSE b/node_modules/registry-auth-token/LICENSE new file mode 100644 index 00000000..0de12e33 --- /dev/null +++ b/node_modules/registry-auth-token/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Espen Hovlandsdal + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/registry-auth-token/README.md b/node_modules/registry-auth-token/README.md new file mode 100644 index 00000000..5ac9c1ab --- /dev/null +++ b/node_modules/registry-auth-token/README.md @@ -0,0 +1,65 @@ +# registry-auth-token + +[![npm version](http://img.shields.io/npm/v/registry-auth-token.svg?style=flat-square)](http://browsenpm.org/package/registry-auth-token)[![Build Status](http://img.shields.io/travis/rexxars/registry-auth-token/master.svg?style=flat-square)](https://travis-ci.org/rexxars/registry-auth-token) + +Get the auth token set for an npm registry from `.npmrc`. Also allows fetching the configured registry URL for a given npm scope. + +## Installing + +``` +npm install --save registry-auth-token +``` + +## Usage + +Returns an object containing `token` and `type`, or `undefined` if no token can be found. `type` can be either `Bearer` or `Basic`. + +```js +var getAuthToken = require('registry-auth-token') +var getRegistryUrl = require('registry-auth-token/registry-url') + +// Get auth token and type for default `registry` set in `.npmrc` +console.log(getAuthToken()) // {token: 'someToken', type: 'Bearer'} + +// Get auth token for a specific registry URL +console.log(getAuthToken('//registry.foo.bar')) + +// Find the registry auth token for a given URL (with deep path): +// If registry is at `//some.host/registry` +// URL passed is `//some.host/registry/deep/path` +// Will find token the closest matching path; `//some.host/registry` +console.log(getAuthToken('//some.host/registry/deep/path', {recursive: true})) + +// Find the configured registry url for scope `@foobar`. +// Falls back to the global registry if not defined. +console.log(getRegistryUrl('@foobar')) + +// Use the npm config that is passed in +console.log(getRegistryUrl('http://registry.foobar.eu/', { + npmrc: { + 'registry': 'http://registry.foobar.eu/', + '//registry.foobar.eu/:_authToken': 'qar' + } +})) +``` + +## Return value + +```js +// If auth info can be found: +{token: 'someToken', type: 'Bearer'} + +// Or: +{token: 'someOtherToken', type: 'Basic'} + +// Or, if nothing is found: +undefined +``` + +## Security + +Please be careful when using this. Leaking your auth token is dangerous. + +## License + +MIT-licensed. See LICENSE. diff --git a/node_modules/registry-auth-token/base64.js b/node_modules/registry-auth-token/base64.js new file mode 100644 index 00000000..ff0f6cb9 --- /dev/null +++ b/node_modules/registry-auth-token/base64.js @@ -0,0 +1,12 @@ +function decodeBase64 (base64) { + return Buffer.from(base64, 'base64').toString('utf8') +} + +function encodeBase64 (string) { + return Buffer.from(string, 'utf8').toString('base64') +} + +module.exports = { + decodeBase64: decodeBase64, + encodeBase64: encodeBase64 +} diff --git a/node_modules/registry-auth-token/index.js b/node_modules/registry-auth-token/index.js new file mode 100644 index 00000000..28eedfd7 --- /dev/null +++ b/node_modules/registry-auth-token/index.js @@ -0,0 +1,142 @@ +var url = require('url') +var base64 = require('./base64') + +var decodeBase64 = base64.decodeBase64 +var encodeBase64 = base64.encodeBase64 + +var tokenKey = ':_authToken' +var legacyTokenKey = ':_auth' +var userKey = ':username' +var passwordKey = ':_password' + +module.exports = function () { + var checkUrl + var options + if (arguments.length >= 2) { + checkUrl = arguments[0] + options = arguments[1] + } else if (typeof arguments[0] === 'string') { + checkUrl = arguments[0] + } else { + options = arguments[0] + } + options = options || {} + options.npmrc = options.npmrc || require('rc')('npm', { registry: 'https://registry.npmjs.org/' }, { + config: process.env.npm_config_userconfig || process.env.NPM_CONFIG_USERCONFIG + }) + checkUrl = checkUrl || options.npmrc.registry + return getRegistryAuthInfo(checkUrl, options) || getLegacyAuthInfo(options.npmrc) +} + +function getRegistryAuthInfo (checkUrl, options) { + var parsed = url.parse(checkUrl, false, true) + var pathname + + while (pathname !== '/' && parsed.pathname !== pathname) { + pathname = parsed.pathname || '/' + + var regUrl = '//' + parsed.host + pathname.replace(/\/$/, '') + var authInfo = getAuthInfoForUrl(regUrl, options.npmrc) + if (authInfo) { + return authInfo + } + + // break if not recursive + if (!options.recursive) { + return /\/$/.test(checkUrl) + ? undefined + : getRegistryAuthInfo(url.resolve(checkUrl, '.'), options) + } + + parsed.pathname = url.resolve(normalizePath(pathname), '..') || '/' + } + + return undefined +} + +function getLegacyAuthInfo (npmrc) { + if (!npmrc._auth) { + return undefined + } + + var token = replaceEnvironmentVariable(npmrc._auth) + + return { token: token, type: 'Basic' } +} + +function normalizePath (path) { + return path[path.length - 1] === '/' ? path : path + '/' +} + +function getAuthInfoForUrl (regUrl, npmrc) { + // try to get bearer token + var bearerAuth = getBearerToken(npmrc[regUrl + tokenKey] || npmrc[regUrl + '/' + tokenKey]) + if (bearerAuth) { + return bearerAuth + } + + // try to get basic token + var username = npmrc[regUrl + userKey] || npmrc[regUrl + '/' + userKey] + var password = npmrc[regUrl + passwordKey] || npmrc[regUrl + '/' + passwordKey] + var basicAuth = getTokenForUsernameAndPassword(username, password) + if (basicAuth) { + return basicAuth + } + + var basicAuthWithToken = getLegacyAuthToken(npmrc[regUrl + legacyTokenKey] || npmrc[regUrl + '/' + legacyTokenKey]) + if (basicAuthWithToken) { + return basicAuthWithToken + } + + return undefined +} + +function replaceEnvironmentVariable (token) { + return token.replace(/^\$\{?([^}]*)\}?$/, function (fullMatch, envVar) { + return process.env[envVar] + }) +} + +function getBearerToken (tok) { + if (!tok) { + return undefined + } + + // check if bearer token is set as environment variable + var token = replaceEnvironmentVariable(tok) + + return { token: token, type: 'Bearer' } +} + +function getTokenForUsernameAndPassword (username, password) { + if (!username || !password) { + return undefined + } + + // passwords are base64 encoded, so we need to decode it + // See https://github.com/npm/npm/blob/v3.10.6/lib/config/set-credentials-by-uri.js#L26 + var pass = decodeBase64(replaceEnvironmentVariable(password)) + + // a basic auth token is base64 encoded 'username:password' + // See https://github.com/npm/npm/blob/v3.10.6/lib/config/get-credentials-by-uri.js#L70 + var token = encodeBase64(username + ':' + pass) + + // we found a basicToken token so let's exit the loop + return { + token: token, + type: 'Basic', + password: pass, + username: username + } +} + +function getLegacyAuthToken (tok) { + if (!tok) { + return undefined + } + + // check if legacy auth token is set as environment variable + var token = replaceEnvironmentVariable(tok) + + return { token: token, type: 'Basic' } +} diff --git a/node_modules/registry-auth-token/package.json b/node_modules/registry-auth-token/package.json new file mode 100644 index 00000000..90364545 --- /dev/null +++ b/node_modules/registry-auth-token/package.json @@ -0,0 +1,76 @@ +{ + "_from": "registry-auth-token@^4.0.0", + "_id": "registry-auth-token@4.2.0", + "_inBundle": false, + "_integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", + "_location": "/registry-auth-token", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "registry-auth-token@^4.0.0", + "name": "registry-auth-token", + "escapedName": "registry-auth-token", + "rawSpec": "^4.0.0", + "saveSpec": null, + "fetchSpec": "^4.0.0" + }, + "_requiredBy": [ + "/package-json" + ], + "_resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", + "_shasum": "1d37dffda72bbecd0f581e4715540213a65eb7da", + "_spec": "registry-auth-token@^4.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\package-json", + "author": { + "name": "Espen Hovlandsdal", + "email": "espen@hovlandsdal.com" + }, + "bugs": { + "url": "https://github.com/rexxars/registry-auth-token/issues" + }, + "bundleDependencies": false, + "dependencies": { + "rc": "^1.2.8" + }, + "deprecated": false, + "description": "Get the auth token set for an npm registry (if any)", + "devDependencies": { + "istanbul": "^0.4.2", + "mocha": "^6.1.4", + "require-uncached": "^1.0.2", + "standard": "^12.0.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "homepage": "https://github.com/rexxars/registry-auth-token#readme", + "keywords": [ + "npm", + "conf", + "config", + "npmconf", + "registry", + "auth", + "token", + "authtoken" + ], + "license": "MIT", + "main": "index.js", + "name": "registry-auth-token", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/rexxars/registry-auth-token.git" + }, + "scripts": { + "coverage": "istanbul cover _mocha", + "posttest": "standard", + "test": "mocha" + }, + "standard": { + "ignore": [ + "coverage/**" + ] + }, + "version": "4.2.0" +} diff --git a/node_modules/registry-auth-token/registry-url.js b/node_modules/registry-auth-token/registry-url.js new file mode 100644 index 00000000..b4532d63 --- /dev/null +++ b/node_modules/registry-auth-token/registry-url.js @@ -0,0 +1,5 @@ +module.exports = function (scope, npmrc) { + var rc = npmrc || require('rc')('npm', { registry: 'https://registry.npmjs.org/' }) + var url = rc[scope + ':registry'] || rc.registry + return url.slice(-1) === '/' ? url : url + '/' +} diff --git a/node_modules/registry-auth-token/test/auth-token.test.js b/node_modules/registry-auth-token/test/auth-token.test.js new file mode 100644 index 00000000..0d6268a5 --- /dev/null +++ b/node_modules/registry-auth-token/test/auth-token.test.js @@ -0,0 +1,507 @@ +var fs = require('fs') +var path = require('path') +var mocha = require('mocha') +var assert = require('assert') +var requireUncached = require('require-uncached') + +var npmRcPath = path.join(__dirname, '..', '.npmrc') +var beforeEach = mocha.beforeEach +var afterEach = mocha.afterEach +var describe = mocha.describe +var it = mocha.it + +var base64 = require('../base64') +var decodeBase64 = base64.decodeBase64 +var encodeBase64 = base64.encodeBase64 + +/* eslint max-nested-callbacks: ["error", 4] */ + +describe('auth-token', function () { + afterEach(function (done) { + fs.unlink(npmRcPath, function () { + done() + }) + }) + + it('should read global if no local is found', function () { + var getAuthToken = requireUncached('../index') + getAuthToken() + }) + + it('should return undefined if no auth token is given for registry', function (done) { + fs.writeFile(npmRcPath, 'registry=http://registry.npmjs.eu/', function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert(!getAuthToken()) + done() + }) + }) + + describe('legacy auth token', function () { + it('should return auth token if it is defined in the legacy way via the `_auth` key', function (done) { + var content = [ + '_auth=foobar', + 'registry=http://registry.foobar.eu/' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'foobar', type: 'Basic' }) + done() + }) + }) + + it('should return legacy auth token defined by reference to an environment variable (with curly braces)', function (done) { + var environmentVariable = '__REGISTRY_AUTH_TOKEN_NPM_TOKEN__' + var content = [ + '_auth=${' + environmentVariable + '}', + 'registry=http://registry.foobar.eu/' + ].join('\n') + + process.env[environmentVariable] = 'foobar' + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'foobar', type: 'Basic' }) + delete process.env[environmentVariable] + done() + }) + }) + + it('should return legacy auth token defined by reference to an environment variable (without curly braces)', function (done) { + var environmentVariable = '__REGISTRY_AUTH_TOKEN_NPM_TOKEN__' + var content = [ + '_auth=$' + environmentVariable, + 'registry=http://registry.foobar.eu/' + ].join('\n') + + process.env[environmentVariable] = 'foobar' + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'foobar', type: 'Basic' }) + delete process.env[environmentVariable] + done() + }) + }) + }) + + describe('bearer token', function () { + it('should return auth token if registry is defined', function (done) { + var content = [ + 'registry=http://registry.foobar.eu/', + '//registry.foobar.eu/:_authToken=foobar', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'foobar', type: 'Bearer' }) + done() + }) + }) + + it('should use npmrc passed in', function (done) { + var content = [ + 'registry=http://registry.foobar.eu/', + '//registry.foobar.eu/:_authToken=foobar', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + const npmrc = { + 'registry': 'http://registry.foobar.eu/', + '//registry.foobar.eu/:_authToken': 'qar' + } + assert.deepStrictEqual(getAuthToken({ npmrc: npmrc }), { token: 'qar', type: 'Bearer' }) + done() + }) + }) + + it('should return auth token if registry url has port specified', function (done) { + var content = [ + 'registry=http://localhost:8770/', + // before the patch this token was selected. + '//localhost/:_authToken=ohno', + '//localhost:8770/:_authToken=beepboop', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'beepboop', type: 'Bearer' }) + done() + }) + }) + + it('should return auth token defined by reference to an environment variable (with curly braces)', function (done) { + var environmentVariable = '__REGISTRY_AUTH_TOKEN_NPM_TOKEN__' + var content = [ + 'registry=http://registry.foobar.cc/', + '//registry.foobar.cc/:_authToken=${' + environmentVariable + '}', '' + ].join('\n') + process.env[environmentVariable] = 'foobar' + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'foobar', type: 'Bearer' }) + delete process.env[environmentVariable] + done() + }) + }) + + it('should return auth token defined by reference to an environment variable (without curly braces)', function (done) { + var environmentVariable = '__REGISTRY_AUTH_TOKEN_NPM_TOKEN__' + var content = [ + 'registry=http://registry.foobar.cc/', + '//registry.foobar.cc/:_authToken=$' + environmentVariable, '' + ].join('\n') + process.env[environmentVariable] = 'foobar' + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'foobar', type: 'Bearer' }) + delete process.env[environmentVariable] + done() + }) + }) + + it('should try with and without a slash at the end of registry url', function (done) { + var content = [ + 'registry=http://registry.foobar.eu', + '//registry.foobar.eu:_authToken=barbaz', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'barbaz', type: 'Bearer' }) + done() + }) + }) + + it('should fetch for the registry given (if defined)', function (done) { + var content = [ + '//registry.foobar.eu:_authToken=barbaz', + '//registry.blah.foo:_authToken=whatev', + '//registry.last.thing:_authToken=yep', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken('//registry.blah.foo'), { token: 'whatev', type: 'Bearer' }) + done() + }) + }) + + it('recursively finds registries for deep url if option is set', function (done, undef) { + var opts = { recursive: true } + var content = [ + '//registry.blah.com/foo:_authToken=whatev', + '//registry.blah.org/foo/bar:_authToken=recurseExactlyOneLevel', + '//registry.blah.edu/foo/bar/baz:_authToken=recurseNoLevel', + '//registry.blah.eu:_authToken=yep', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken('https://registry.blah.edu/foo/bar/baz', opts), { token: 'recurseNoLevel', type: 'Bearer' }) + assert.deepStrictEqual(getAuthToken('https://registry.blah.org/foo/bar/baz', opts), { token: 'recurseExactlyOneLevel', type: 'Bearer' }) + assert.deepStrictEqual(getAuthToken('https://registry.blah.com/foo/bar/baz', opts), { token: 'whatev', type: 'Bearer' }) + assert.deepStrictEqual(getAuthToken('http://registry.blah.eu/what/ever', opts), { token: 'yep', type: 'Bearer' }) + assert.deepStrictEqual(getAuthToken('http://registry.blah.eu//what/ever', opts), undefined, 'does not hang') + assert.strictEqual(getAuthToken('//some.registry', opts), undef) + done() + }) + }) + + it('should try both with and without trailing slash', function (done) { + fs.writeFile(npmRcPath, '//registry.blah.com:_authToken=whatev', function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken('https://registry.blah.com'), { token: 'whatev', type: 'Bearer' }) + done() + }) + }) + + it('should prefer bearer token over basic token', function (done) { + var content = [ + 'registry=http://registry.foobar.eu/', + 'registry=http://registry.foobar.eu/', + '//registry.foobar.eu/:_authToken=bearerToken', + '//registry.foobar.eu/:_password=' + encodeBase64('foobar'), + '//registry.foobar.eu/:username=foobar', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken('//registry.foobar.eu'), { token: 'bearerToken', type: 'Bearer' }) + done() + }) + }) + + it('"nerf darts" registry urls', function (done, undef) { + fs.writeFile(npmRcPath, '//contoso.pkgs.visualstudio.com/_packaging/MyFeed/npm/:_authToken=heider', function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual( + getAuthToken('https://contoso.pkgs.visualstudio.com/_packaging/MyFeed/npm/registry'), + { token: 'heider', type: 'Bearer' } + ) + done() + }) + }) + }) + + describe('basic token', function () { + it('should return undefined if password or username are missing', function (done, undef) { + var content = [ + 'registry=http://registry.foobar.eu/', + '//registry.foobar.eu/:_password=' + encodeBase64('foobar'), + '//registry.foobar.com/:username=foobar', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.strictEqual(getAuthToken('//registry.foobar.eu'), undef) + assert.strictEqual(getAuthToken('//registry.foobar.com'), undef) + done() + }) + }) + + it('should return basic token if username and password are defined', function (done) { + var content = [ + 'registry=http://registry.foobar.eu/', + '//registry.foobar.eu/:_password=' + encodeBase64('foobar'), + '//registry.foobar.eu/:username=foobar', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken() + assert.deepStrictEqual(token, { + token: 'Zm9vYmFyOmZvb2Jhcg==', + type: 'Basic', + username: 'foobar', + password: 'foobar' + }) + assert.strictEqual(decodeBase64(token.token), 'foobar:foobar') + done() + }) + }) + + it('should return basic token if _auth is base64 encoded', function (done) { + var content = [ + 'registry=http://registry.foobar.eu/', + '//registry.foobar.eu/:_auth=' + encodeBase64('foobar:foobar') + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken() + assert.deepStrictEqual(token, { + token: 'Zm9vYmFyOmZvb2Jhcg==', + type: 'Basic' + }) + assert.strictEqual(decodeBase64(token.token), 'foobar:foobar') + done() + }) + }) + + it('should return basic token if registry url has port specified', function (done) { + var content = [ + 'registry=http://localhost:8770/', + // before the patch this token was selected. + '//localhost/:_authToken=ohno', + '//localhost:8770/:_password=' + encodeBase64('foobar'), + '//localhost:8770/:username=foobar', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken() + assert.deepStrictEqual(token, { + token: 'Zm9vYmFyOmZvb2Jhcg==', + type: 'Basic', + username: 'foobar', + password: 'foobar' + }) + assert.strictEqual(decodeBase64(token.token), 'foobar:foobar') + done() + }) + }) + + it('should return password defined by reference to an environment variable (with curly braces)', function (done) { + var environmentVariable = '__REGISTRY_PASSWORD__' + var content = [ + 'registry=http://registry.foobar.cc/', + '//registry.foobar.cc/:username=username', + '//registry.foobar.cc/:_password=${' + environmentVariable + '}', '' + ].join('\n') + process.env[environmentVariable] = encodeBase64('password') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken() + assert.deepStrictEqual(token, { + type: 'Basic', + username: 'username', + password: 'password', + token: 'dXNlcm5hbWU6cGFzc3dvcmQ=' + }) + assert.strictEqual(decodeBase64(token.token), 'username:password') + delete process.env[environmentVariable] + done() + }) + }) + + it('should return password defined by reference to an environment variable (without curly braces)', function (done) { + var environmentVariable = '__REGISTRY_PASSWORD__' + var content = [ + 'registry=http://registry.foobar.cc/', + '//registry.foobar.cc/:username=username', + '//registry.foobar.cc/:_password=$' + environmentVariable, '' + ].join('\n') + process.env[environmentVariable] = encodeBase64('password') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken() + assert.deepStrictEqual(token, { + type: 'Basic', + username: 'username', + password: 'password', + token: 'dXNlcm5hbWU6cGFzc3dvcmQ=' + }) + assert.strictEqual(decodeBase64(token.token), 'username:password') + delete process.env[environmentVariable] + done() + }) + }) + + it('should try with and without a slash at the end of registry url', function (done) { + var content = [ + 'registry=http://registry.foobar.eu', + '//registry.foobar.eu:_password=' + encodeBase64('barbay'), + '//registry.foobar.eu:username=barbaz', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken() + assert.deepStrictEqual(token, { + token: 'YmFyYmF6OmJhcmJheQ==', + type: 'Basic', + password: 'barbay', + username: 'barbaz' + }) + assert.strictEqual(decodeBase64(token.token), 'barbaz:barbay') + done() + }) + }) + + it('should fetch for the registry given (if defined)', function (done) { + var content = [ + '//registry.foobar.eu:_authToken=barbaz', + '//registry.blah.foo:_password=' + encodeBase64('barbay'), + '//registry.blah.foo:username=barbaz', + '//registry.last.thing:_authToken=yep', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken('//registry.blah.foo') + assert.deepStrictEqual(token, { + token: 'YmFyYmF6OmJhcmJheQ==', + type: 'Basic', + password: 'barbay', + username: 'barbaz' + }) + assert.strictEqual(decodeBase64(token.token), 'barbaz:barbay') + done() + }) + }) + + it('recursively finds registries for deep url if option is set', function (done, undef) { + var opts = { recursive: true } + var content = [ + '//registry.blah.com/foo:_password=' + encodeBase64('barbay'), + '//registry.blah.com/foo:username=barbaz', + '//registry.blah.eu:username=barbaz', + '//registry.blah.eu:_password=' + encodeBase64('foobaz'), '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + var token = getAuthToken('https://registry.blah.com/foo/bar/baz', opts) + assert.deepStrictEqual(token, { + token: 'YmFyYmF6OmJhcmJheQ==', + type: 'Basic', + password: 'barbay', + username: 'barbaz' + }) + assert.strictEqual(decodeBase64(token.token), 'barbaz:barbay') + token = getAuthToken('https://registry.blah.eu/foo/bar/baz', opts) + assert.deepStrictEqual(token, { + token: 'YmFyYmF6OmZvb2Jheg==', + type: 'Basic', + password: 'foobaz', + username: 'barbaz' + }) + assert.strictEqual(decodeBase64(token.token), 'barbaz:foobaz') + assert.strictEqual(getAuthToken('//some.registry', opts), undef) + done() + }) + }) + }) + + describe('npmrc file resolution', function () { + let npmRcPath + beforeEach(function () { + process.env.npm_config_userconfig = '' + process.env.NPM_CONFIG_USERCONFIG = '' + }) + + afterEach(function (done) { + process.env.npm_config_userconfig = '' + process.env.NPM_CONFIG_USERCONFIG = '' + fs.unlink(npmRcPath, function () { + done() + }) + }) + + it('should use npmrc from environment npm_config_userconfig', function (done) { + var content = [ + 'registry=http://registry.foobar.eu/', + '//registry.foobar.eu/:_authToken=foobar', '' + ].join('\n') + + npmRcPath = path.join(__dirname, '..', '.npmrc.env') + process.env.NPM_CONFIG_USERCONFIG = npmRcPath + fs.writeFile(npmRcPath, content, function (err) { + var getAuthToken = requireUncached('../index') + assert(!err, err) + assert.deepStrictEqual(getAuthToken(), { token: 'foobar', type: 'Bearer' }) + done() + }) + }) + }) +}) diff --git a/node_modules/registry-auth-token/test/registry-url.test.js b/node_modules/registry-auth-token/test/registry-url.test.js new file mode 100644 index 00000000..78e6ca00 --- /dev/null +++ b/node_modules/registry-auth-token/test/registry-url.test.js @@ -0,0 +1,64 @@ +var fs = require('fs') +var path = require('path') +var mocha = require('mocha') +var assert = require('assert') +var requireUncached = require('require-uncached') + +var npmRcPath = path.join(__dirname, '..', '.npmrc') +var afterEach = mocha.afterEach +var describe = mocha.describe +var it = mocha.it + +describe('registry-url', function () { + afterEach(function (done) { + fs.unlink(npmRcPath, function () { + done() + }) + }) + + it('should read global if no local is found', function () { + var getRegistryUrl = requireUncached('../registry-url') + getRegistryUrl() + }) + + it('should return default registry if no url is given for scope', function (done) { + fs.writeFile(npmRcPath, 'registry=https://registry.npmjs.org/', function (err) { + var getRegistryUrl = requireUncached('../registry-url') + assert(!err, err) + assert.strictEqual(getRegistryUrl('@somescope'), 'https://registry.npmjs.org/') + done() + }) + }) + + it('should return registry url if url is given for scope ', function (done) { + fs.writeFile(npmRcPath, '@somescope:registry=https://some.registry/', function (err) { + var getRegistryUrl = requireUncached('../registry-url') + assert(!err, err) + assert.strictEqual(getRegistryUrl('@somescope'), 'https://some.registry/') + done() + }) + }) + + it('should append trailing slash if not present', function (done) { + fs.writeFile(npmRcPath, '@somescope:registry=https://some.registry', function (err) { + var getRegistryUrl = requireUncached('../registry-url') + assert(!err, err) + assert.strictEqual(getRegistryUrl('@somescope'), 'https://some.registry/') + done() + }) + }) + + it('should return configured global registry if given', function (done) { + var content = [ + 'registry=http://registry.foobar.eu/', + '@somescope:registry=https://some.url/', '' + ].join('\n') + + fs.writeFile(npmRcPath, content, function (err) { + var getRegistryUrl = requireUncached('../registry-url') + assert(!err, err) + assert.strictEqual(getRegistryUrl(), 'http://registry.foobar.eu/') + done() + }) + }) +}) diff --git a/node_modules/registry-url/index.d.ts b/node_modules/registry-url/index.d.ts new file mode 100644 index 00000000..5f2c5861 --- /dev/null +++ b/node_modules/registry-url/index.d.ts @@ -0,0 +1,33 @@ +declare const registryUrl: { + /** + Get the set npm registry URL. + + @param scope - Retrieve the registry URL associated with an [npm scope](https://docs.npmjs.com/misc/scope). If the provided scope is not in the user's `.npmrc` file, then `registry-url` will check for the existence of `registry`, or if that's not set, fallback to the default npm registry. + + @example + ``` + import registryUrl = require('registry-url'); + + // # .npmrc + // registry = 'https://custom-registry.com/' + + console.log(registryUrl()); + //=> 'https://custom-registry.com/' + + + // # .npmrc + // @myco:registry = 'https://custom-registry.com/' + + console.log(registryUrl('@myco')); + //=> 'https://custom-registry.com/' + ``` + */ + (scope?: string): string; + + // TODO: Remove this for the next major release, refactor the whole definition to: + // declare function registryUrl(scope?: string): string; + // export = registryUrl; + default: typeof registryUrl; +}; + +export = registryUrl; diff --git a/node_modules/registry-url/index.js b/node_modules/registry-url/index.js new file mode 100644 index 00000000..23ea1f87 --- /dev/null +++ b/node_modules/registry-url/index.js @@ -0,0 +1,12 @@ +'use strict'; +const rc = require('rc'); + +const registryUrl = scope => { + const result = rc('npm', {registry: 'https://registry.npmjs.org/'}); + const url = result[`${scope}:registry`] || result.config_registry || result.registry; + return url.slice(-1) === '/' ? url : `${url}/`; +}; + +module.exports = registryUrl; +// TODO: Remove this for the next major release +module.exports.default = registryUrl; diff --git a/node_modules/registry-url/license b/node_modules/registry-url/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/registry-url/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/registry-url/package.json b/node_modules/registry-url/package.json new file mode 100644 index 00000000..032e5782 --- /dev/null +++ b/node_modules/registry-url/package.json @@ -0,0 +1,76 @@ +{ + "_from": "registry-url@^5.0.0", + "_id": "registry-url@5.1.0", + "_inBundle": false, + "_integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "_location": "/registry-url", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "registry-url@^5.0.0", + "name": "registry-url", + "escapedName": "registry-url", + "rawSpec": "^5.0.0", + "saveSpec": null, + "fetchSpec": "^5.0.0" + }, + "_requiredBy": [ + "/package-json" + ], + "_resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "_shasum": "e98334b50d5434b81136b44ec638d9c2009c5009", + "_spec": "registry-url@^5.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\package-json", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "ava": { + "serial": true + }, + "bugs": { + "url": "https://github.com/sindresorhus/registry-url/issues" + }, + "bundleDependencies": false, + "dependencies": { + "rc": "^1.2.8" + }, + "deprecated": false, + "description": "Get the set npm registry URL", + "devDependencies": { + "ava": "^1.4.1", + "import-fresh": "^3.0.0", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/registry-url#readme", + "keywords": [ + "npm", + "conf", + "config", + "npmconf", + "registry", + "url", + "uri", + "scope" + ], + "license": "MIT", + "name": "registry-url", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/registry-url.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "5.1.0" +} diff --git a/node_modules/registry-url/readme.md b/node_modules/registry-url/readme.md new file mode 100644 index 00000000..dfcb99ae --- /dev/null +++ b/node_modules/registry-url/readme.md @@ -0,0 +1,50 @@ +# registry-url [![Build Status](https://travis-ci.org/sindresorhus/registry-url.svg?branch=master)](https://travis-ci.org/sindresorhus/registry-url) + +> Get the set npm registry URL + +It's usually `https://registry.npmjs.org/`, but it's [configurable](https://docs.npmjs.com/misc/registry). + +Use this if you do anything with the npm registry as users will expect it to use their configured registry. + + +## Install + +``` +$ npm install registry-url +``` + + +## Usage + +```ini +# .npmrc +registry = 'https://custom-registry.com/' +``` + +```js +const registryUrl = require('registry-url'); + +console.log(registryUrl()); +//=> 'https://custom-registry.com/' +``` + +It can also retrieve the registry URL associated with an [npm scope](https://docs.npmjs.com/misc/scope). + +```ini +# .npmrc +@myco:registry = 'https://custom-registry.com/' +``` + +```js +const registryUrl = require('registry-url'); + +console.log(registryUrl('@myco')); +//=> 'https://custom-registry.com/' +``` + +If the provided scope is not in the user's `.npmrc` file, then `registry-url` will check for the existence of `registry`, or if that's not set, fallback to the default npm registry. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/request/CHANGELOG.md b/node_modules/request/CHANGELOG.md new file mode 100644 index 00000000..d3ffcd00 --- /dev/null +++ b/node_modules/request/CHANGELOG.md @@ -0,0 +1,717 @@ +## Change Log + +### v2.88.0 (2018/08/10) +- [#2996](https://github.com/request/request/pull/2996) fix(uuid): import versioned uuid (@kwonoj) +- [#2994](https://github.com/request/request/pull/2994) Update to oauth-sign 0.9.0 (@dlecocq) +- [#2993](https://github.com/request/request/pull/2993) Fix header tests (@simov) +- [#2904](https://github.com/request/request/pull/2904) #515, #2894 Strip port suffix from Host header if the protocol is known. (#2904) (@paambaati) +- [#2791](https://github.com/request/request/pull/2791) Improve AWS SigV4 support. (#2791) (@vikhyat) +- [#2977](https://github.com/request/request/pull/2977) Update test certificates (@simov) + +### v2.87.0 (2018/05/21) +- [#2943](https://github.com/request/request/pull/2943) Replace hawk dependency with a local implemenation (#2943) (@hueniverse) + +### v2.86.0 (2018/05/15) +- [#2885](https://github.com/request/request/pull/2885) Remove redundant code (for Node.js 0.9.4 and below) and dependency (@ChALkeR) +- [#2942](https://github.com/request/request/pull/2942) Make Test GREEN Again! (@simov) +- [#2923](https://github.com/request/request/pull/2923) Alterations for failing CI tests (@gareth-robinson) + +### v2.85.0 (2018/03/12) +- [#2880](https://github.com/request/request/pull/2880) Revert "Update hawk to 7.0.7 (#2880)" (@simov) + +### v2.84.0 (2018/03/12) +- [#2793](https://github.com/request/request/pull/2793) Fixed calculation of oauth_body_hash, issue #2792 (@dvishniakov) +- [#2880](https://github.com/request/request/pull/2880) Update hawk to 7.0.7 (#2880) (@kornel-kedzierski) + +### v2.83.0 (2017/09/27) +- [#2776](https://github.com/request/request/pull/2776) Updating tough-cookie due to security fix. (#2776) (@karlnorling) + +### v2.82.0 (2017/09/19) +- [#2703](https://github.com/request/request/pull/2703) Add Node.js v8 to Travis CI (@ryysud) +- [#2751](https://github.com/request/request/pull/2751) Update of hawk and qs to latest version (#2751) (@Olivier-Moreau) +- [#2658](https://github.com/request/request/pull/2658) Fixed some text in README.md (#2658) (@Marketionist) +- [#2635](https://github.com/request/request/pull/2635) chore(package): update aws-sign2 to version 0.7.0 (#2635) (@greenkeeperio-bot) +- [#2641](https://github.com/request/request/pull/2641) Update README to simplify & update convenience methods (#2641) (@FredKSchott) +- [#2541](https://github.com/request/request/pull/2541) Add convenience method for HTTP OPTIONS (#2541) (@jamesseanwright) +- [#2605](https://github.com/request/request/pull/2605) Add promise support section to README (#2605) (@FredKSchott) +- [#2579](https://github.com/request/request/pull/2579) refactor(lint): replace eslint with standard (#2579) (@ahmadnassri) +- [#2598](https://github.com/request/request/pull/2598) Update codecov to version 2.0.2 🚀 (@greenkeeperio-bot) +- [#2590](https://github.com/request/request/pull/2590) Adds test-timing keepAlive test (@nicjansma) +- [#2589](https://github.com/request/request/pull/2589) fix tabulation on request example README.MD (@odykyi) +- [#2594](https://github.com/request/request/pull/2594) chore(dependencies): har-validator to 5.x [removes babel dep] (@ahmadnassri) + +### v2.81.0 (2017/03/09) +- [#2584](https://github.com/request/request/pull/2584) Security issue: Upgrade qs to version 6.4.0 (@sergejmueller) +- [#2578](https://github.com/request/request/pull/2578) safe-buffer doesn't zero-fill by default, its just a polyfill. (#2578) (@mikeal) +- [#2566](https://github.com/request/request/pull/2566) Timings: Tracks 'lookup', adds 'wait' time, fixes connection re-use (#2566) (@nicjansma) +- [#2574](https://github.com/request/request/pull/2574) Migrating to safe-buffer for improved security. (@mikeal) +- [#2573](https://github.com/request/request/pull/2573) fixes #2572 (@ahmadnassri) + +### v2.80.0 (2017/03/04) +- [#2571](https://github.com/request/request/pull/2571) Correctly format the Host header for IPv6 addresses (@JamesMGreene) +- [#2558](https://github.com/request/request/pull/2558) Update README.md example snippet (@FredKSchott) +- [#2221](https://github.com/request/request/pull/2221) Adding a simple Response object reference in argument specification (@calamarico) +- [#2452](https://github.com/request/request/pull/2452) Adds .timings array with DNC, TCP, request and response times (@nicjansma) +- [#2553](https://github.com/request/request/pull/2553) add ISSUE_TEMPLATE, move PR template (@FredKSchott) +- [#2539](https://github.com/request/request/pull/2539) Create PULL_REQUEST_TEMPLATE.md (@FredKSchott) +- [#2524](https://github.com/request/request/pull/2524) Update caseless to version 0.12.0 🚀 (@greenkeeperio-bot) +- [#2460](https://github.com/request/request/pull/2460) Fix wrong MIME type in example (@OwnageIsMagic) +- [#2514](https://github.com/request/request/pull/2514) Change tags to keywords in package.json (@humphd) +- [#2492](https://github.com/request/request/pull/2492) More lenient gzip decompression (@addaleax) + +### v2.79.0 (2016/11/18) +- [#2368](https://github.com/request/request/pull/2368) Fix typeof check in test-pool.js (@forivall) +- [#2394](https://github.com/request/request/pull/2394) Use `files` in package.json (@SimenB) +- [#2463](https://github.com/request/request/pull/2463) AWS support for session tokens for temporary credentials (@simov) +- [#2467](https://github.com/request/request/pull/2467) Migrate to uuid (@simov, @antialias) +- [#2459](https://github.com/request/request/pull/2459) Update taper to version 0.5.0 🚀 (@greenkeeperio-bot) +- [#2448](https://github.com/request/request/pull/2448) Make other connect timeout test more reliable too (@mscdex) + +### v2.78.0 (2016/11/03) +- [#2447](https://github.com/request/request/pull/2447) Always set request timeout on keep-alive connections (@mscdex) + +### v2.77.0 (2016/11/03) +- [#2439](https://github.com/request/request/pull/2439) Fix socket 'connect' listener handling (@mscdex) +- [#2442](https://github.com/request/request/pull/2442) 👻😱 Node.js 0.10 is unmaintained 😱👻 (@greenkeeperio-bot) +- [#2435](https://github.com/request/request/pull/2435) Add followOriginalHttpMethod to redirect to original HTTP method (@kirrg001) +- [#2414](https://github.com/request/request/pull/2414) Improve test-timeout reliability (@mscdex) + +### v2.76.0 (2016/10/25) +- [#2424](https://github.com/request/request/pull/2424) Handle buffers directly instead of using "bl" (@zertosh) +- [#2415](https://github.com/request/request/pull/2415) Re-enable timeout tests on Travis + other fixes (@mscdex) +- [#2431](https://github.com/request/request/pull/2431) Improve timeouts accuracy and node v6.8.0+ compatibility (@mscdex, @greenkeeperio-bot) +- [#2428](https://github.com/request/request/pull/2428) Update qs to version 6.3.0 🚀 (@greenkeeperio-bot) +- [#2420](https://github.com/request/request/pull/2420) change .on to .once, remove possible memory leaks (@duereg) +- [#2426](https://github.com/request/request/pull/2426) Remove "isFunction" helper in favor of "typeof" check (@zertosh) +- [#2425](https://github.com/request/request/pull/2425) Simplify "defer" helper creation (@zertosh) +- [#2402](https://github.com/request/request/pull/2402) form-data@2.1.1 breaks build 🚨 (@greenkeeperio-bot) +- [#2393](https://github.com/request/request/pull/2393) Update form-data to version 2.1.0 🚀 (@greenkeeperio-bot) + +### v2.75.0 (2016/09/17) +- [#2381](https://github.com/request/request/pull/2381) Drop support for Node 0.10 (@simov) +- [#2377](https://github.com/request/request/pull/2377) Update form-data to version 2.0.0 🚀 (@greenkeeperio-bot) +- [#2353](https://github.com/request/request/pull/2353) Add greenkeeper ignored packages (@simov) +- [#2351](https://github.com/request/request/pull/2351) Update karma-tap to version 3.0.1 🚀 (@greenkeeperio-bot) +- [#2348](https://github.com/request/request/pull/2348) form-data@1.0.1 breaks build 🚨 (@greenkeeperio-bot) +- [#2349](https://github.com/request/request/pull/2349) Check error type instead of string (@scotttrinh) + +### v2.74.0 (2016/07/22) +- [#2295](https://github.com/request/request/pull/2295) Update tough-cookie to 2.3.0 (@stash-sfdc) +- [#2280](https://github.com/request/request/pull/2280) Update karma-tap to version 2.0.1 🚀 (@greenkeeperio-bot) + +### v2.73.0 (2016/07/09) +- [#2240](https://github.com/request/request/pull/2240) Remove connectionErrorHandler to fix #1903 (@zarenner) +- [#2251](https://github.com/request/request/pull/2251) tape@4.6.0 breaks build 🚨 (@greenkeeperio-bot) +- [#2225](https://github.com/request/request/pull/2225) Update docs (@ArtskydJ) +- [#2203](https://github.com/request/request/pull/2203) Update browserify to version 13.0.1 🚀 (@greenkeeperio-bot) +- [#2275](https://github.com/request/request/pull/2275) Update karma to version 1.1.1 🚀 (@greenkeeperio-bot) +- [#2204](https://github.com/request/request/pull/2204) Add codecov.yml and disable PR comments (@simov) +- [#2212](https://github.com/request/request/pull/2212) Fix link to http.IncomingMessage documentation (@nazieb) +- [#2208](https://github.com/request/request/pull/2208) Update to form-data RC4 and pass null values to it (@simov) +- [#2207](https://github.com/request/request/pull/2207) Move aws4 require statement to the top (@simov) +- [#2199](https://github.com/request/request/pull/2199) Update karma-coverage to version 1.0.0 🚀 (@greenkeeperio-bot) +- [#2206](https://github.com/request/request/pull/2206) Update qs to version 6.2.0 🚀 (@greenkeeperio-bot) +- [#2205](https://github.com/request/request/pull/2205) Use server-destory to close hanging sockets in tests (@simov) +- [#2200](https://github.com/request/request/pull/2200) Update karma-cli to version 1.0.0 🚀 (@greenkeeperio-bot) + +### v2.72.0 (2016/04/17) +- [#2176](https://github.com/request/request/pull/2176) Do not try to pipe Gzip responses with no body (@simov) +- [#2175](https://github.com/request/request/pull/2175) Add 'delete' alias for the 'del' API method (@simov, @MuhanZou) +- [#2172](https://github.com/request/request/pull/2172) Add support for deflate content encoding (@czardoz) +- [#2169](https://github.com/request/request/pull/2169) Add callback option (@simov) +- [#2165](https://github.com/request/request/pull/2165) Check for self.req existence inside the write method (@simov) +- [#2167](https://github.com/request/request/pull/2167) Fix TravisCI badge reference master branch (@a0viedo) + +### v2.71.0 (2016/04/12) +- [#2164](https://github.com/request/request/pull/2164) Catch errors from the underlying http module (@simov) + +### v2.70.0 (2016/04/05) +- [#2147](https://github.com/request/request/pull/2147) Update eslint to version 2.5.3 🚀 (@simov, @greenkeeperio-bot) +- [#2009](https://github.com/request/request/pull/2009) Support JSON stringify replacer argument. (@elyobo) +- [#2142](https://github.com/request/request/pull/2142) Update eslint to version 2.5.1 🚀 (@greenkeeperio-bot) +- [#2128](https://github.com/request/request/pull/2128) Update browserify-istanbul to version 2.0.0 🚀 (@greenkeeperio-bot) +- [#2115](https://github.com/request/request/pull/2115) Update eslint to version 2.3.0 🚀 (@simov, @greenkeeperio-bot) +- [#2089](https://github.com/request/request/pull/2089) Fix badges (@simov) +- [#2092](https://github.com/request/request/pull/2092) Update browserify-istanbul to version 1.0.0 🚀 (@greenkeeperio-bot) +- [#2079](https://github.com/request/request/pull/2079) Accept read stream as body option (@simov) +- [#2070](https://github.com/request/request/pull/2070) Update bl to version 1.1.2 🚀 (@greenkeeperio-bot) +- [#2063](https://github.com/request/request/pull/2063) Up bluebird and oauth-sign (@simov) +- [#2058](https://github.com/request/request/pull/2058) Karma fixes for latest versions (@eiriksm) +- [#2057](https://github.com/request/request/pull/2057) Update contributing guidelines (@simov) +- [#2054](https://github.com/request/request/pull/2054) Update qs to version 6.1.0 🚀 (@greenkeeperio-bot) + +### v2.69.0 (2016/01/27) +- [#2041](https://github.com/request/request/pull/2041) restore aws4 as regular dependency (@rmg) + +### v2.68.0 (2016/01/27) +- [#2036](https://github.com/request/request/pull/2036) Add AWS Signature Version 4 (@simov, @mirkods) +- [#2022](https://github.com/request/request/pull/2022) Convert numeric multipart bodies to string (@simov, @feross) +- [#2024](https://github.com/request/request/pull/2024) Update har-validator dependency for nsp advisory #76 (@TylerDixon) +- [#2016](https://github.com/request/request/pull/2016) Update qs to version 6.0.2 🚀 (@greenkeeperio-bot) +- [#2007](https://github.com/request/request/pull/2007) Use the `extend` module instead of util._extend (@simov) +- [#2003](https://github.com/request/request/pull/2003) Update browserify to version 13.0.0 🚀 (@greenkeeperio-bot) +- [#1989](https://github.com/request/request/pull/1989) Update buffer-equal to version 1.0.0 🚀 (@greenkeeperio-bot) +- [#1956](https://github.com/request/request/pull/1956) Check form-data content-length value before setting up the header (@jongyoonlee) +- [#1958](https://github.com/request/request/pull/1958) Use IncomingMessage.destroy method (@simov) +- [#1952](https://github.com/request/request/pull/1952) Adds example for Tor proxy (@prometheansacrifice) +- [#1943](https://github.com/request/request/pull/1943) Update eslint to version 1.10.3 🚀 (@simov, @greenkeeperio-bot) +- [#1924](https://github.com/request/request/pull/1924) Update eslint to version 1.10.1 🚀 (@greenkeeperio-bot) +- [#1915](https://github.com/request/request/pull/1915) Remove content-length and transfer-encoding headers from defaultProxyHeaderWhiteList (@yaxia) + +### v2.67.0 (2015/11/19) +- [#1913](https://github.com/request/request/pull/1913) Update http-signature to version 1.1.0 🚀 (@greenkeeperio-bot) + +### v2.66.0 (2015/11/18) +- [#1906](https://github.com/request/request/pull/1906) Update README URLs based on HTTP redirects (@ReadmeCritic) +- [#1905](https://github.com/request/request/pull/1905) Convert typed arrays into regular buffers (@simov) +- [#1902](https://github.com/request/request/pull/1902) node-uuid@1.4.7 breaks build 🚨 (@greenkeeperio-bot) +- [#1894](https://github.com/request/request/pull/1894) Fix tunneling after redirection from https (Original: #1881) (@simov, @falms) +- [#1893](https://github.com/request/request/pull/1893) Update eslint to version 1.9.0 🚀 (@greenkeeperio-bot) +- [#1852](https://github.com/request/request/pull/1852) Update eslint to version 1.7.3 🚀 (@simov, @greenkeeperio-bot, @paulomcnally, @michelsalib, @arbaaz, @nsklkn, @LoicMahieu, @JoshWillik, @jzaefferer, @ryanwholey, @djchie, @thisconnect, @mgenereu, @acroca, @Sebmaster, @KoltesDigital) +- [#1876](https://github.com/request/request/pull/1876) Implement loose matching for har mime types (@simov) +- [#1875](https://github.com/request/request/pull/1875) Update bluebird to version 3.0.2 🚀 (@simov, @greenkeeperio-bot) +- [#1871](https://github.com/request/request/pull/1871) Update browserify to version 12.0.1 🚀 (@greenkeeperio-bot) +- [#1866](https://github.com/request/request/pull/1866) Add missing quotes on x-token property in README (@miguelmota) +- [#1874](https://github.com/request/request/pull/1874) Fix typo in README.md (@gswalden) +- [#1860](https://github.com/request/request/pull/1860) Improve referer header tests and docs (@simov) +- [#1861](https://github.com/request/request/pull/1861) Remove redundant call to Stream constructor (@watson) +- [#1857](https://github.com/request/request/pull/1857) Fix Referer header to point to the original host name (@simov) +- [#1850](https://github.com/request/request/pull/1850) Update karma-coverage to version 0.5.3 🚀 (@greenkeeperio-bot) +- [#1847](https://github.com/request/request/pull/1847) Use node's latest version when building (@simov) +- [#1836](https://github.com/request/request/pull/1836) Tunnel: fix wrong property name (@KoltesDigital) +- [#1820](https://github.com/request/request/pull/1820) Set href as request.js uses it (@mgenereu) +- [#1840](https://github.com/request/request/pull/1840) Update http-signature to version 1.0.2 🚀 (@greenkeeperio-bot) +- [#1845](https://github.com/request/request/pull/1845) Update istanbul to version 0.4.0 🚀 (@greenkeeperio-bot) + +### v2.65.0 (2015/10/11) +- [#1833](https://github.com/request/request/pull/1833) Update aws-sign2 to version 0.6.0 🚀 (@greenkeeperio-bot) +- [#1811](https://github.com/request/request/pull/1811) Enable loose cookie parsing in tough-cookie (@Sebmaster) +- [#1830](https://github.com/request/request/pull/1830) Bring back tilde ranges for all dependencies (@simov) +- [#1821](https://github.com/request/request/pull/1821) Implement support for RFC 2617 MD5-sess algorithm. (@BigDSK) +- [#1828](https://github.com/request/request/pull/1828) Updated qs dependency to 5.2.0 (@acroca) +- [#1818](https://github.com/request/request/pull/1818) Extract `readResponseBody` method out of `onRequestResponse` (@pvoisin) +- [#1819](https://github.com/request/request/pull/1819) Run stringify once (@mgenereu) +- [#1814](https://github.com/request/request/pull/1814) Updated har-validator to version 2.0.2 (@greenkeeperio-bot) +- [#1807](https://github.com/request/request/pull/1807) Updated tough-cookie to version 2.1.0 (@greenkeeperio-bot) +- [#1800](https://github.com/request/request/pull/1800) Add caret ranges for devDependencies, except eslint (@simov) +- [#1799](https://github.com/request/request/pull/1799) Updated karma-browserify to version 4.4.0 (@greenkeeperio-bot) +- [#1797](https://github.com/request/request/pull/1797) Updated tape to version 4.2.0 (@greenkeeperio-bot) +- [#1788](https://github.com/request/request/pull/1788) Pinned all dependencies (@greenkeeperio-bot) + +### v2.64.0 (2015/09/25) +- [#1787](https://github.com/request/request/pull/1787) npm ignore examples, release.sh and disabled.appveyor.yml (@thisconnect) +- [#1775](https://github.com/request/request/pull/1775) Fix typo in README.md (@djchie) +- [#1776](https://github.com/request/request/pull/1776) Changed word 'conjuction' to read 'conjunction' in README.md (@ryanwholey) +- [#1785](https://github.com/request/request/pull/1785) Revert: Set default application/json content-type when using json option #1772 (@simov) + +### v2.63.0 (2015/09/21) +- [#1772](https://github.com/request/request/pull/1772) Set default application/json content-type when using json option (@jzaefferer) + +### v2.62.0 (2015/09/15) +- [#1768](https://github.com/request/request/pull/1768) Add node 4.0 to the list of build targets (@simov) +- [#1767](https://github.com/request/request/pull/1767) Query strings now cooperate with unix sockets (@JoshWillik) +- [#1750](https://github.com/request/request/pull/1750) Revert doc about installation of tough-cookie added in #884 (@LoicMahieu) +- [#1746](https://github.com/request/request/pull/1746) Missed comma in Readme (@nsklkn) +- [#1743](https://github.com/request/request/pull/1743) Fix options not being initialized in defaults method (@simov) + +### v2.61.0 (2015/08/19) +- [#1721](https://github.com/request/request/pull/1721) Minor fix in README.md (@arbaaz) +- [#1733](https://github.com/request/request/pull/1733) Avoid useless Buffer transformation (@michelsalib) +- [#1726](https://github.com/request/request/pull/1726) Update README.md (@paulomcnally) +- [#1715](https://github.com/request/request/pull/1715) Fix forever option in node > 0.10 #1709 (@calibr) +- [#1716](https://github.com/request/request/pull/1716) Do not create Buffer from Object in setContentLength(iojs v3.0 issue) (@calibr) +- [#1711](https://github.com/request/request/pull/1711) Add ability to detect connect timeouts (@kevinburke) +- [#1712](https://github.com/request/request/pull/1712) Set certificate expiration to August 2, 2018 (@kevinburke) +- [#1700](https://github.com/request/request/pull/1700) debug() when JSON.parse() on a response body fails (@phillipj) + +### v2.60.0 (2015/07/21) +- [#1687](https://github.com/request/request/pull/1687) Fix caseless bug - content-type not being set for multipart/form-data (@simov, @garymathews) + +### v2.59.0 (2015/07/20) +- [#1671](https://github.com/request/request/pull/1671) Add tests and docs for using the agent, agentClass, agentOptions and forever options. + Forever option defaults to using http(s).Agent in node 0.12+ (@simov) +- [#1679](https://github.com/request/request/pull/1679) Fix - do not remove OAuth param when using OAuth realm (@simov, @jhalickman) +- [#1668](https://github.com/request/request/pull/1668) updated dependencies (@deamme) +- [#1656](https://github.com/request/request/pull/1656) Fix form method (@simov) +- [#1651](https://github.com/request/request/pull/1651) Preserve HEAD method when using followAllRedirects (@simov) +- [#1652](https://github.com/request/request/pull/1652) Update `encoding` option documentation in README.md (@daniel347x) +- [#1650](https://github.com/request/request/pull/1650) Allow content-type overriding when using the `form` option (@simov) +- [#1646](https://github.com/request/request/pull/1646) Clarify the nature of setting `ca` in `agentOptions` (@jeffcharles) + +### v2.58.0 (2015/06/16) +- [#1638](https://github.com/request/request/pull/1638) Use the `extend` module to deep extend in the defaults method (@simov) +- [#1631](https://github.com/request/request/pull/1631) Move tunnel logic into separate module (@simov) +- [#1634](https://github.com/request/request/pull/1634) Fix OAuth query transport_method (@simov) +- [#1603](https://github.com/request/request/pull/1603) Add codecov (@simov) + +### v2.57.0 (2015/05/31) +- [#1615](https://github.com/request/request/pull/1615) Replace '.client' with '.socket' as the former was deprecated in 2.2.0. (@ChALkeR) + +### v2.56.0 (2015/05/28) +- [#1610](https://github.com/request/request/pull/1610) Bump module dependencies (@simov) +- [#1600](https://github.com/request/request/pull/1600) Extract the querystring logic into separate module (@simov) +- [#1607](https://github.com/request/request/pull/1607) Re-generate certificates (@simov) +- [#1599](https://github.com/request/request/pull/1599) Move getProxyFromURI logic below the check for Invaild URI (#1595) (@simov) +- [#1598](https://github.com/request/request/pull/1598) Fix the way http verbs are defined in order to please intellisense IDEs (@simov, @flannelJesus) +- [#1591](https://github.com/request/request/pull/1591) A few minor fixes: (@simov) +- [#1584](https://github.com/request/request/pull/1584) Refactor test-default tests (according to comments in #1430) (@simov) +- [#1585](https://github.com/request/request/pull/1585) Fixing documentation regarding TLS options (#1583) (@mainakae) +- [#1574](https://github.com/request/request/pull/1574) Refresh the oauth_nonce on redirect (#1573) (@simov) +- [#1570](https://github.com/request/request/pull/1570) Discovered tests that weren't properly running (@seanstrom) +- [#1569](https://github.com/request/request/pull/1569) Fix pause before response arrives (@kevinoid) +- [#1558](https://github.com/request/request/pull/1558) Emit error instead of throw (@simov) +- [#1568](https://github.com/request/request/pull/1568) Fix stall when piping gzipped response (@kevinoid) +- [#1560](https://github.com/request/request/pull/1560) Update combined-stream (@apechimp) +- [#1543](https://github.com/request/request/pull/1543) Initial support for oauth_body_hash on json payloads (@simov, @aesopwolf) +- [#1541](https://github.com/request/request/pull/1541) Fix coveralls (@simov) +- [#1540](https://github.com/request/request/pull/1540) Fix recursive defaults for convenience methods (@simov) +- [#1536](https://github.com/request/request/pull/1536) More eslint style rules (@froatsnook) +- [#1533](https://github.com/request/request/pull/1533) Adding dependency status bar to README.md (@YasharF) +- [#1539](https://github.com/request/request/pull/1539) ensure the latest version of har-validator is included (@ahmadnassri) +- [#1516](https://github.com/request/request/pull/1516) forever+pool test (@devTristan) + +### v2.55.0 (2015/04/05) +- [#1520](https://github.com/request/request/pull/1520) Refactor defaults (@simov) +- [#1525](https://github.com/request/request/pull/1525) Delete request headers with undefined value. (@froatsnook) +- [#1521](https://github.com/request/request/pull/1521) Add promise tests (@simov) +- [#1518](https://github.com/request/request/pull/1518) Fix defaults (@simov) +- [#1515](https://github.com/request/request/pull/1515) Allow static invoking of convenience methods (@simov) +- [#1505](https://github.com/request/request/pull/1505) Fix multipart boundary extraction regexp (@simov) +- [#1510](https://github.com/request/request/pull/1510) Fix basic auth form data (@simov) + +### v2.54.0 (2015/03/24) +- [#1501](https://github.com/request/request/pull/1501) HTTP Archive 1.2 support (@ahmadnassri) +- [#1486](https://github.com/request/request/pull/1486) Add a test for the forever agent (@akshayp) +- [#1500](https://github.com/request/request/pull/1500) Adding handling for no auth method and null bearer (@philberg) +- [#1498](https://github.com/request/request/pull/1498) Add table of contents in readme (@simov) +- [#1477](https://github.com/request/request/pull/1477) Add support for qs options via qsOptions key (@simov) +- [#1496](https://github.com/request/request/pull/1496) Parameters encoded to base 64 should be decoded as UTF-8, not ASCII. (@albanm) +- [#1494](https://github.com/request/request/pull/1494) Update eslint (@froatsnook) +- [#1474](https://github.com/request/request/pull/1474) Require Colon in Basic Auth (@erykwalder) +- [#1481](https://github.com/request/request/pull/1481) Fix baseUrl and redirections. (@burningtree) +- [#1469](https://github.com/request/request/pull/1469) Feature/base url (@froatsnook) +- [#1459](https://github.com/request/request/pull/1459) Add option to time request/response cycle (including rollup of redirects) (@aaron-em) +- [#1468](https://github.com/request/request/pull/1468) Re-enable io.js/node 0.12 build (@simov, @mikeal, @BBB) +- [#1442](https://github.com/request/request/pull/1442) Fixed the issue with strictSSL tests on 0.12 & io.js by explicitly setting a cipher that matches the cert. (@BBB, @nickmccurdy, @demohi, @simov, @0x4139) +- [#1460](https://github.com/request/request/pull/1460) localAddress or proxy config is lost when redirecting (@simov, @0x4139) +- [#1453](https://github.com/request/request/pull/1453) Test on Node.js 0.12 and io.js with allowed failures (@nickmccurdy, @demohi) +- [#1426](https://github.com/request/request/pull/1426) Fixing tests to pass on io.js and node 0.12 (only test-https.js stiff failing) (@mikeal) +- [#1446](https://github.com/request/request/pull/1446) Missing HTTP referer header with redirects Fixes #1038 (@simov, @guimon) +- [#1428](https://github.com/request/request/pull/1428) Deprecate Node v0.8.x (@nylen) +- [#1436](https://github.com/request/request/pull/1436) Add ability to set a requester without setting default options (@tikotzky) +- [#1435](https://github.com/request/request/pull/1435) dry up verb methods (@sethpollack) +- [#1423](https://github.com/request/request/pull/1423) Allow fully qualified multipart content-type header (@simov) +- [#1430](https://github.com/request/request/pull/1430) Fix recursive requester (@tikotzky) +- [#1429](https://github.com/request/request/pull/1429) Throw error when making HEAD request with a body (@tikotzky) +- [#1419](https://github.com/request/request/pull/1419) Add note that the project is broken in 0.12.x (@nylen) +- [#1413](https://github.com/request/request/pull/1413) Fix basic auth (@simov) +- [#1397](https://github.com/request/request/pull/1397) Improve pipe-from-file tests (@nylen) + +### v2.53.0 (2015/02/02) +- [#1396](https://github.com/request/request/pull/1396) Do not rfc3986 escape JSON bodies (@nylen, @simov) +- [#1392](https://github.com/request/request/pull/1392) Improve `timeout` option description (@watson) + +### v2.52.0 (2015/02/02) +- [#1383](https://github.com/request/request/pull/1383) Add missing HTTPS options that were not being passed to tunnel (@brichard19) (@nylen) +- [#1388](https://github.com/request/request/pull/1388) Upgrade mime-types package version (@roderickhsiao) +- [#1389](https://github.com/request/request/pull/1389) Revise Setup Tunnel Function (@seanstrom) +- [#1374](https://github.com/request/request/pull/1374) Allow explicitly disabling tunneling for proxied https destinations (@nylen) +- [#1376](https://github.com/request/request/pull/1376) Use karma-browserify for tests. Add browser test coverage reporter. (@eiriksm) +- [#1366](https://github.com/request/request/pull/1366) Refactor OAuth into separate module (@simov) +- [#1373](https://github.com/request/request/pull/1373) Rewrite tunnel test to be pure Node.js (@nylen) +- [#1371](https://github.com/request/request/pull/1371) Upgrade test reporter (@nylen) +- [#1360](https://github.com/request/request/pull/1360) Refactor basic, bearer, digest auth logic into separate class (@simov) +- [#1354](https://github.com/request/request/pull/1354) Remove circular dependency from debugging code (@nylen) +- [#1351](https://github.com/request/request/pull/1351) Move digest auth into private prototype method (@simov) +- [#1352](https://github.com/request/request/pull/1352) Update hawk dependency to ~2.3.0 (@mridgway) +- [#1353](https://github.com/request/request/pull/1353) Correct travis-ci badge (@dogancelik) +- [#1349](https://github.com/request/request/pull/1349) Make sure we return on errored browser requests. (@eiriksm) +- [#1346](https://github.com/request/request/pull/1346) getProxyFromURI Extraction Refactor (@seanstrom) +- [#1337](https://github.com/request/request/pull/1337) Standardize test ports on 6767 (@nylen) +- [#1341](https://github.com/request/request/pull/1341) Emit FormData error events as Request error events (@nylen, @rwky) +- [#1343](https://github.com/request/request/pull/1343) Clean up readme badges, and add Travis and Coveralls badges (@nylen) +- [#1345](https://github.com/request/request/pull/1345) Update README.md (@Aaron-Hartwig) +- [#1338](https://github.com/request/request/pull/1338) Always wait for server.close() callback in tests (@nylen) +- [#1342](https://github.com/request/request/pull/1342) Add mock https server and redo start of browser tests for this purpose. (@eiriksm) +- [#1339](https://github.com/request/request/pull/1339) Improve auth docs (@nylen) +- [#1335](https://github.com/request/request/pull/1335) Add support for OAuth plaintext signature method (@simov) +- [#1332](https://github.com/request/request/pull/1332) Add clean script to remove test-browser.js after the tests run (@seanstrom) +- [#1327](https://github.com/request/request/pull/1327) Fix errors generating coverage reports. (@nylen) +- [#1330](https://github.com/request/request/pull/1330) Return empty buffer upon empty response body and encoding is set to null (@seanstrom) +- [#1326](https://github.com/request/request/pull/1326) Use faster container-based infrastructure on Travis (@nylen) +- [#1315](https://github.com/request/request/pull/1315) Implement rfc3986 option (@simov, @nylen, @apoco, @DullReferenceException, @mmalecki, @oliamb, @cliffcrosland, @LewisJEllis, @eiriksm, @poislagarde) +- [#1314](https://github.com/request/request/pull/1314) Detect urlencoded form data header via regex (@simov) +- [#1317](https://github.com/request/request/pull/1317) Improve OAuth1.0 server side flow example (@simov) + +### v2.51.0 (2014/12/10) +- [#1310](https://github.com/request/request/pull/1310) Revert changes introduced in https://github.com/request/request/pull/1282 (@simov) + +### v2.50.0 (2014/12/09) +- [#1308](https://github.com/request/request/pull/1308) Add browser test to keep track of browserify compability. (@eiriksm) +- [#1299](https://github.com/request/request/pull/1299) Add optional support for jsonReviver (@poislagarde) +- [#1277](https://github.com/request/request/pull/1277) Add Coveralls configuration (@simov) +- [#1307](https://github.com/request/request/pull/1307) Upgrade form-data, add back browserify compability. Fixes #455. (@eiriksm) +- [#1305](https://github.com/request/request/pull/1305) Fix typo in README.md (@LewisJEllis) +- [#1288](https://github.com/request/request/pull/1288) Update README.md to explain custom file use case (@cliffcrosland) + +### v2.49.0 (2014/11/28) +- [#1295](https://github.com/request/request/pull/1295) fix(proxy): no-proxy false positive (@oliamb) +- [#1292](https://github.com/request/request/pull/1292) Upgrade `caseless` to 0.8.1 (@mmalecki) +- [#1276](https://github.com/request/request/pull/1276) Set transfer encoding for multipart/related to chunked by default (@simov) +- [#1275](https://github.com/request/request/pull/1275) Fix multipart content-type headers detection (@simov) +- [#1269](https://github.com/request/request/pull/1269) adds streams example for review (@tbuchok) +- [#1238](https://github.com/request/request/pull/1238) Add examples README.md (@simov) + +### v2.48.0 (2014/11/12) +- [#1263](https://github.com/request/request/pull/1263) Fixed a syntax error / typo in README.md (@xna2) +- [#1253](https://github.com/request/request/pull/1253) Add multipart chunked flag (@simov, @nylen) +- [#1251](https://github.com/request/request/pull/1251) Clarify that defaults() does not modify global defaults (@nylen) +- [#1250](https://github.com/request/request/pull/1250) Improve documentation for pool and maxSockets options (@nylen) +- [#1237](https://github.com/request/request/pull/1237) Documenting error handling when using streams (@vmattos) +- [#1244](https://github.com/request/request/pull/1244) Finalize changelog command (@nylen) +- [#1241](https://github.com/request/request/pull/1241) Fix typo (@alexanderGugel) +- [#1223](https://github.com/request/request/pull/1223) Show latest version number instead of "upcoming" in changelog (@nylen) +- [#1236](https://github.com/request/request/pull/1236) Document how to use custom CA in README (#1229) (@hypesystem) +- [#1228](https://github.com/request/request/pull/1228) Support for oauth with RSA-SHA1 signing (@nylen) +- [#1216](https://github.com/request/request/pull/1216) Made json and multipart options coexist (@nylen, @simov) +- [#1225](https://github.com/request/request/pull/1225) Allow header white/exclusive lists in any case. (@RReverser) + +### v2.47.0 (2014/10/26) +- [#1222](https://github.com/request/request/pull/1222) Move from mikeal/request to request/request (@nylen) +- [#1220](https://github.com/request/request/pull/1220) update qs dependency to 2.3.1 (@FredKSchott) +- [#1212](https://github.com/request/request/pull/1212) Improve tests/test-timeout.js (@nylen) +- [#1219](https://github.com/request/request/pull/1219) remove old globalAgent workaround for node 0.4 (@request) +- [#1214](https://github.com/request/request/pull/1214) Remove cruft left over from optional dependencies (@nylen) +- [#1215](https://github.com/request/request/pull/1215) Add proxyHeaderExclusiveList option for proxy-only headers. (@RReverser) +- [#1211](https://github.com/request/request/pull/1211) Allow 'Host' header instead of 'host' and remember case across redirects (@nylen) +- [#1208](https://github.com/request/request/pull/1208) Improve release script (@nylen) +- [#1213](https://github.com/request/request/pull/1213) Support for custom cookie store (@nylen, @mitsuru) +- [#1197](https://github.com/request/request/pull/1197) Clean up some code around setting the agent (@FredKSchott) +- [#1209](https://github.com/request/request/pull/1209) Improve multipart form append test (@simov) +- [#1207](https://github.com/request/request/pull/1207) Update changelog (@nylen) +- [#1185](https://github.com/request/request/pull/1185) Stream multipart/related bodies (@simov) + +### v2.46.0 (2014/10/23) +- [#1198](https://github.com/request/request/pull/1198) doc for TLS/SSL protocol options (@shawnzhu) +- [#1200](https://github.com/request/request/pull/1200) Add a Gitter chat badge to README.md (@gitter-badger) +- [#1196](https://github.com/request/request/pull/1196) Upgrade taper test reporter to v0.3.0 (@nylen) +- [#1199](https://github.com/request/request/pull/1199) Fix lint error: undeclared var i (@nylen) +- [#1191](https://github.com/request/request/pull/1191) Move self.proxy decision logic out of init and into a helper (@FredKSchott) +- [#1190](https://github.com/request/request/pull/1190) Move _buildRequest() logic back into init (@FredKSchott) +- [#1186](https://github.com/request/request/pull/1186) Support Smarter Unix URL Scheme (@FredKSchott) +- [#1178](https://github.com/request/request/pull/1178) update form documentation for new usage (@FredKSchott) +- [#1180](https://github.com/request/request/pull/1180) Enable no-mixed-requires linting rule (@nylen) +- [#1184](https://github.com/request/request/pull/1184) Don't forward authorization header across redirects to different hosts (@nylen) +- [#1183](https://github.com/request/request/pull/1183) Correct README about pre and postamble CRLF using multipart and not mult... (@netpoetica) +- [#1179](https://github.com/request/request/pull/1179) Lint tests directory (@nylen) +- [#1169](https://github.com/request/request/pull/1169) add metadata for form-data file field (@dotcypress) +- [#1173](https://github.com/request/request/pull/1173) remove optional dependencies (@seanstrom) +- [#1165](https://github.com/request/request/pull/1165) Cleanup event listeners and remove function creation from init (@FredKSchott) +- [#1174](https://github.com/request/request/pull/1174) update the request.cookie docs to have a valid cookie example (@seanstrom) +- [#1168](https://github.com/request/request/pull/1168) create a detach helper and use detach helper in replace of nextTick (@seanstrom) +- [#1171](https://github.com/request/request/pull/1171) in post can send form data and use callback (@MiroRadenovic) +- [#1159](https://github.com/request/request/pull/1159) accept charset for x-www-form-urlencoded content-type (@seanstrom) +- [#1157](https://github.com/request/request/pull/1157) Update README.md: body with json=true (@Rob--W) +- [#1164](https://github.com/request/request/pull/1164) Disable tests/test-timeout.js on Travis (@nylen) +- [#1153](https://github.com/request/request/pull/1153) Document how to run a single test (@nylen) +- [#1144](https://github.com/request/request/pull/1144) adds documentation for the "response" event within the streaming section (@tbuchok) +- [#1162](https://github.com/request/request/pull/1162) Update eslintrc file to no longer allow past errors (@FredKSchott) +- [#1155](https://github.com/request/request/pull/1155) Support/use self everywhere (@seanstrom) +- [#1161](https://github.com/request/request/pull/1161) fix no-use-before-define lint warnings (@emkay) +- [#1156](https://github.com/request/request/pull/1156) adding curly brackets to get rid of lint errors (@emkay) +- [#1151](https://github.com/request/request/pull/1151) Fix localAddress test on OS X (@nylen) +- [#1145](https://github.com/request/request/pull/1145) documentation: fix outdated reference to setCookieSync old name in README (@FredKSchott) +- [#1131](https://github.com/request/request/pull/1131) Update pool documentation (@FredKSchott) +- [#1143](https://github.com/request/request/pull/1143) Rewrite all tests to use tape (@nylen) +- [#1137](https://github.com/request/request/pull/1137) Add ability to specifiy querystring lib in options. (@jgrund) +- [#1138](https://github.com/request/request/pull/1138) allow hostname and port in place of host on uri (@cappslock) +- [#1134](https://github.com/request/request/pull/1134) Fix multiple redirects and `self.followRedirect` (@blakeembrey) +- [#1130](https://github.com/request/request/pull/1130) documentation fix: add note about npm test for contributing (@FredKSchott) +- [#1120](https://github.com/request/request/pull/1120) Support/refactor request setup tunnel (@seanstrom) +- [#1129](https://github.com/request/request/pull/1129) linting fix: convert double quote strings to use single quotes (@FredKSchott) +- [#1124](https://github.com/request/request/pull/1124) linting fix: remove unneccesary semi-colons (@FredKSchott) + +### v2.45.0 (2014/10/06) +- [#1128](https://github.com/request/request/pull/1128) Add test for setCookie regression (@nylen) +- [#1127](https://github.com/request/request/pull/1127) added tests around using objects as values in a query string (@bcoe) +- [#1103](https://github.com/request/request/pull/1103) Support/refactor request constructor (@nylen, @seanstrom) +- [#1119](https://github.com/request/request/pull/1119) add basic linting to request library (@FredKSchott) +- [#1121](https://github.com/request/request/pull/1121) Revert "Explicitly use sync versions of cookie functions" (@nylen) +- [#1118](https://github.com/request/request/pull/1118) linting fix: Restructure bad empty if statement (@FredKSchott) +- [#1117](https://github.com/request/request/pull/1117) Fix a bad check for valid URIs (@FredKSchott) +- [#1113](https://github.com/request/request/pull/1113) linting fix: space out operators (@FredKSchott) +- [#1116](https://github.com/request/request/pull/1116) Fix typo in `noProxyHost` definition (@FredKSchott) +- [#1114](https://github.com/request/request/pull/1114) linting fix: Added a `new` operator that was missing when creating and throwing a new error (@FredKSchott) +- [#1096](https://github.com/request/request/pull/1096) No_proxy support (@samcday) +- [#1107](https://github.com/request/request/pull/1107) linting-fix: remove unused variables (@FredKSchott) +- [#1112](https://github.com/request/request/pull/1112) linting fix: Make return values consistent and more straitforward (@FredKSchott) +- [#1111](https://github.com/request/request/pull/1111) linting fix: authPieces was getting redeclared (@FredKSchott) +- [#1105](https://github.com/request/request/pull/1105) Use strict mode in request (@FredKSchott) +- [#1110](https://github.com/request/request/pull/1110) linting fix: replace lazy '==' with more strict '===' (@FredKSchott) +- [#1109](https://github.com/request/request/pull/1109) linting fix: remove function call from if-else conditional statement (@FredKSchott) +- [#1102](https://github.com/request/request/pull/1102) Fix to allow setting a `requester` on recursive calls to `request.defaults` (@tikotzky) +- [#1095](https://github.com/request/request/pull/1095) Tweaking engines in package.json (@pdehaan) +- [#1082](https://github.com/request/request/pull/1082) Forward the socket event from the httpModule request (@seanstrom) +- [#972](https://github.com/request/request/pull/972) Clarify gzip handling in the README (@kevinoid) +- [#1089](https://github.com/request/request/pull/1089) Mention that encoding defaults to utf8, not Buffer (@stuartpb) +- [#1088](https://github.com/request/request/pull/1088) Fix cookie example in README.md and make it more clear (@pipi32167) +- [#1027](https://github.com/request/request/pull/1027) Add support for multipart form data in request options. (@crocket) +- [#1076](https://github.com/request/request/pull/1076) use Request.abort() to abort the request when the request has timed-out (@seanstrom) +- [#1068](https://github.com/request/request/pull/1068) add optional postamble required by .NET multipart requests (@netpoetica) + +### v2.43.0 (2014/09/18) +- [#1057](https://github.com/request/request/pull/1057) Defaults should not overwrite defined options (@davidwood) +- [#1046](https://github.com/request/request/pull/1046) Propagate datastream errors, useful in case gzip fails. (@ZJONSSON, @Janpot) +- [#1063](https://github.com/request/request/pull/1063) copy the input headers object #1060 (@finnp) +- [#1031](https://github.com/request/request/pull/1031) Explicitly use sync versions of cookie functions (@ZJONSSON) +- [#1056](https://github.com/request/request/pull/1056) Fix redirects when passing url.parse(x) as URL to convenience method (@nylen) + +### v2.42.0 (2014/09/04) +- [#1053](https://github.com/request/request/pull/1053) Fix #1051 Parse auth properly when using non-tunneling proxy (@isaacs) + +### v2.41.0 (2014/09/04) +- [#1050](https://github.com/request/request/pull/1050) Pass whitelisted headers to tunneling proxy. Organize all tunneling logic. (@isaacs, @Feldhacker) +- [#1035](https://github.com/request/request/pull/1035) souped up nodei.co badge (@rvagg) +- [#1048](https://github.com/request/request/pull/1048) Aws is now possible over a proxy (@steven-aerts) +- [#1039](https://github.com/request/request/pull/1039) extract out helper functions to a helper file (@seanstrom) +- [#1021](https://github.com/request/request/pull/1021) Support/refactor indexjs (@seanstrom) +- [#1033](https://github.com/request/request/pull/1033) Improve and document debug options (@nylen) +- [#1034](https://github.com/request/request/pull/1034) Fix readme headings (@nylen) +- [#1030](https://github.com/request/request/pull/1030) Allow recursive request.defaults (@tikotzky) +- [#1029](https://github.com/request/request/pull/1029) Fix a couple of typos (@nylen) +- [#675](https://github.com/request/request/pull/675) Checking for SSL fault on connection before reading SSL properties (@VRMink) +- [#989](https://github.com/request/request/pull/989) Added allowRedirect function. Should return true if redirect is allowed or false otherwise (@doronin) +- [#1025](https://github.com/request/request/pull/1025) [fixes #1023] Set self._ended to true once response has ended (@mridgway) +- [#1020](https://github.com/request/request/pull/1020) Add back removed debug metadata (@FredKSchott) +- [#1008](https://github.com/request/request/pull/1008) Moving to module instead of cutomer buffer concatenation. (@mikeal) +- [#770](https://github.com/request/request/pull/770) Added dependency badge for README file; (@timgluz, @mafintosh, @lalitkapoor, @stash, @bobyrizov) +- [#1016](https://github.com/request/request/pull/1016) toJSON no longer results in an infinite loop, returns simple objects (@FredKSchott) +- [#1018](https://github.com/request/request/pull/1018) Remove pre-0.4.4 HTTPS fix (@mmalecki) +- [#1006](https://github.com/request/request/pull/1006) Migrate to caseless, fixes #1001 (@mikeal) +- [#995](https://github.com/request/request/pull/995) Fix parsing array of objects (@sjonnet19) +- [#999](https://github.com/request/request/pull/999) Fix fallback for browserify for optional modules. (@eiriksm) +- [#996](https://github.com/request/request/pull/996) Wrong oauth signature when multiple same param keys exist [updated] (@bengl) + +### v2.40.0 (2014/08/06) +- [#992](https://github.com/request/request/pull/992) Fix security vulnerability. Update qs (@poeticninja) +- [#988](https://github.com/request/request/pull/988) “--” -> “—” (@upisfree) +- [#987](https://github.com/request/request/pull/987) Show optional modules as being loaded by the module that reqeusted them (@iarna) + +### v2.39.0 (2014/07/24) +- [#976](https://github.com/request/request/pull/976) Update README.md (@pvoznenko) + +### v2.38.0 (2014/07/22) +- [#952](https://github.com/request/request/pull/952) Adding support to client certificate with proxy use case (@ofirshaked) +- [#884](https://github.com/request/request/pull/884) Documented tough-cookie installation. (@wbyoung) +- [#935](https://github.com/request/request/pull/935) Correct repository url (@fritx) +- [#963](https://github.com/request/request/pull/963) Update changelog (@nylen) +- [#960](https://github.com/request/request/pull/960) Support gzip with encoding on node pre-v0.9.4 (@kevinoid) +- [#953](https://github.com/request/request/pull/953) Add async Content-Length computation when using form-data (@LoicMahieu) +- [#844](https://github.com/request/request/pull/844) Add support for HTTP[S]_PROXY environment variables. Fixes #595. (@jvmccarthy) +- [#946](https://github.com/request/request/pull/946) defaults: merge headers (@aj0strow) + +### v2.37.0 (2014/07/07) +- [#957](https://github.com/request/request/pull/957) Silence EventEmitter memory leak warning #311 (@watson) +- [#955](https://github.com/request/request/pull/955) check for content-length header before setting it in nextTick (@camilleanne) +- [#951](https://github.com/request/request/pull/951) Add support for gzip content decoding (@kevinoid) +- [#949](https://github.com/request/request/pull/949) Manually enter querystring in form option (@charlespwd) +- [#944](https://github.com/request/request/pull/944) Make request work with browserify (@eiriksm) +- [#943](https://github.com/request/request/pull/943) New mime module (@eiriksm) +- [#927](https://github.com/request/request/pull/927) Bump version of hawk dep. (@samccone) +- [#907](https://github.com/request/request/pull/907) append secureOptions to poolKey (@medovob) + +### v2.35.0 (2014/05/17) +- [#901](https://github.com/request/request/pull/901) Fixes #555 (@pigulla) +- [#897](https://github.com/request/request/pull/897) merge with default options (@vohof) +- [#891](https://github.com/request/request/pull/891) fixes 857 - options object is mutated by calling request (@lalitkapoor) +- [#869](https://github.com/request/request/pull/869) Pipefilter test (@tgohn) +- [#866](https://github.com/request/request/pull/866) Fix typo (@dandv) +- [#861](https://github.com/request/request/pull/861) Add support for RFC 6750 Bearer Tokens (@phedny) +- [#809](https://github.com/request/request/pull/809) upgrade tunnel-proxy to 0.4.0 (@ksato9700) +- [#850](https://github.com/request/request/pull/850) Fix word consistency in readme (@0xNobody) +- [#810](https://github.com/request/request/pull/810) add some exposition to mpu example in README.md (@mikermcneil) +- [#840](https://github.com/request/request/pull/840) improve error reporting for invalid protocols (@FND) +- [#821](https://github.com/request/request/pull/821) added secureOptions back (@nw) +- [#815](https://github.com/request/request/pull/815) Create changelog based on pull requests (@lalitkapoor) + +### v2.34.0 (2014/02/18) +- [#516](https://github.com/request/request/pull/516) UNIX Socket URL Support (@lyuzashi) +- [#801](https://github.com/request/request/pull/801) 794 ignore cookie parsing and domain errors (@lalitkapoor) +- [#802](https://github.com/request/request/pull/802) Added the Apache license to the package.json. (@keskival) +- [#793](https://github.com/request/request/pull/793) Adds content-length calculation when submitting forms using form-data li... (@Juul) +- [#785](https://github.com/request/request/pull/785) Provide ability to override content-type when `json` option used (@vvo) +- [#781](https://github.com/request/request/pull/781) simpler isReadStream function (@joaojeronimo) + +### v2.32.0 (2014/01/16) +- [#767](https://github.com/request/request/pull/767) Use tough-cookie CookieJar sync API (@stash) +- [#764](https://github.com/request/request/pull/764) Case-insensitive authentication scheme (@bobyrizov) +- [#763](https://github.com/request/request/pull/763) Upgrade tough-cookie to 0.10.0 (@stash) +- [#744](https://github.com/request/request/pull/744) Use Cookie.parse (@lalitkapoor) +- [#757](https://github.com/request/request/pull/757) require aws-sign2 (@mafintosh) + +### v2.31.0 (2014/01/08) +- [#645](https://github.com/request/request/pull/645) update twitter api url to v1.1 (@mick) +- [#746](https://github.com/request/request/pull/746) README: Markdown code highlight (@weakish) +- [#745](https://github.com/request/request/pull/745) updating setCookie example to make it clear that the callback is required (@emkay) +- [#742](https://github.com/request/request/pull/742) Add note about JSON output body type (@iansltx) +- [#741](https://github.com/request/request/pull/741) README example is using old cookie jar api (@emkay) +- [#736](https://github.com/request/request/pull/736) Fix callback arguments documentation (@mmalecki) +- [#732](https://github.com/request/request/pull/732) JSHINT: Creating global 'for' variable. Should be 'for (var ...'. (@Fritz-Lium) +- [#730](https://github.com/request/request/pull/730) better HTTP DIGEST support (@dai-shi) +- [#728](https://github.com/request/request/pull/728) Fix TypeError when calling request.cookie (@scarletmeow) +- [#727](https://github.com/request/request/pull/727) fix requester bug (@jchris) +- [#724](https://github.com/request/request/pull/724) README.md: add custom HTTP Headers example. (@tcort) +- [#719](https://github.com/request/request/pull/719) Made a comment gender neutral. (@unsetbit) +- [#715](https://github.com/request/request/pull/715) Request.multipart no longer crashes when header 'Content-type' present (@pastaclub) +- [#710](https://github.com/request/request/pull/710) Fixing listing in callback part of docs. (@lukasz-zak) +- [#696](https://github.com/request/request/pull/696) Edited README.md for formatting and clarity of phrasing (@Zearin) +- [#694](https://github.com/request/request/pull/694) Typo in README (@VRMink) +- [#690](https://github.com/request/request/pull/690) Handle blank password in basic auth. (@diversario) +- [#682](https://github.com/request/request/pull/682) Optional dependencies (@Turbo87) +- [#683](https://github.com/request/request/pull/683) Travis CI support (@Turbo87) +- [#674](https://github.com/request/request/pull/674) change cookie module,to tough-cookie.please check it . (@sxyizhiren) +- [#666](https://github.com/request/request/pull/666) make `ciphers` and `secureProtocol` to work in https request (@richarddong) +- [#656](https://github.com/request/request/pull/656) Test case for #304. (@diversario) +- [#662](https://github.com/request/request/pull/662) option.tunnel to explicitly disable tunneling (@seanmonstar) +- [#659](https://github.com/request/request/pull/659) fix failure when running with NODE_DEBUG=request, and a test for that (@jrgm) +- [#630](https://github.com/request/request/pull/630) Send random cnonce for HTTP Digest requests (@wprl) +- [#619](https://github.com/request/request/pull/619) decouple things a bit (@joaojeronimo) +- [#613](https://github.com/request/request/pull/613) Fixes #583, moved initialization of self.uri.pathname (@lexander) +- [#605](https://github.com/request/request/pull/605) Only include ":" + pass in Basic Auth if it's defined (fixes #602) (@bendrucker) +- [#596](https://github.com/request/request/pull/596) Global agent is being used when pool is specified (@Cauldrath) +- [#594](https://github.com/request/request/pull/594) Emit complete event when there is no callback (@RomainLK) +- [#601](https://github.com/request/request/pull/601) Fixed a small typo (@michalstanko) +- [#589](https://github.com/request/request/pull/589) Prevent setting headers after they are sent (@geek) +- [#587](https://github.com/request/request/pull/587) Global cookie jar disabled by default (@threepointone) +- [#544](https://github.com/request/request/pull/544) Update http-signature version. (@davidlehn) +- [#581](https://github.com/request/request/pull/581) Fix spelling of "ignoring." (@bigeasy) +- [#568](https://github.com/request/request/pull/568) use agentOptions to create agent when specified in request (@SamPlacette) +- [#564](https://github.com/request/request/pull/564) Fix redirections (@criloz) +- [#541](https://github.com/request/request/pull/541) The exported request function doesn't have an auth method (@tschaub) +- [#542](https://github.com/request/request/pull/542) Expose Request class (@regality) +- [#536](https://github.com/request/request/pull/536) Allow explicitly empty user field for basic authentication. (@mikeando) +- [#532](https://github.com/request/request/pull/532) fix typo (@fredericosilva) +- [#497](https://github.com/request/request/pull/497) Added redirect event (@Cauldrath) +- [#503](https://github.com/request/request/pull/503) Fix basic auth for passwords that contain colons (@tonistiigi) +- [#521](https://github.com/request/request/pull/521) Improving test-localAddress.js (@noway) +- [#529](https://github.com/request/request/pull/529) dependencies versions bump (@jodaka) +- [#523](https://github.com/request/request/pull/523) Updating dependencies (@noway) +- [#520](https://github.com/request/request/pull/520) Fixing test-tunnel.js (@noway) +- [#519](https://github.com/request/request/pull/519) Update internal path state on post-creation QS changes (@jblebrun) +- [#510](https://github.com/request/request/pull/510) Add HTTP Signature support. (@davidlehn) +- [#502](https://github.com/request/request/pull/502) Fix POST (and probably other) requests that are retried after 401 Unauthorized (@nylen) +- [#508](https://github.com/request/request/pull/508) Honor the .strictSSL option when using proxies (tunnel-agent) (@jhs) +- [#512](https://github.com/request/request/pull/512) Make password optional to support the format: http://username@hostname/ (@pajato1) +- [#513](https://github.com/request/request/pull/513) add 'localAddress' support (@yyfrankyy) +- [#498](https://github.com/request/request/pull/498) Moving response emit above setHeaders on destination streams (@kenperkins) +- [#490](https://github.com/request/request/pull/490) Empty response body (3-rd argument) must be passed to callback as an empty string (@Olegas) +- [#479](https://github.com/request/request/pull/479) Changing so if Accept header is explicitly set, sending json does not ov... (@RoryH) +- [#475](https://github.com/request/request/pull/475) Use `unescape` from `querystring` (@shimaore) +- [#473](https://github.com/request/request/pull/473) V0.10 compat (@isaacs) +- [#471](https://github.com/request/request/pull/471) Using querystring library from visionmedia (@kbackowski) +- [#461](https://github.com/request/request/pull/461) Strip the UTF8 BOM from a UTF encoded response (@kppullin) +- [#460](https://github.com/request/request/pull/460) hawk 0.10.0 (@hueniverse) +- [#462](https://github.com/request/request/pull/462) if query params are empty, then request path shouldn't end with a '?' (merges cleanly now) (@jaipandya) +- [#456](https://github.com/request/request/pull/456) hawk 0.9.0 (@hueniverse) +- [#429](https://github.com/request/request/pull/429) Copy options before adding callback. (@nrn, @nfriedly, @youurayy, @jplock, @kapetan, @landeiro, @othiym23, @mmalecki) +- [#454](https://github.com/request/request/pull/454) Destroy the response if present when destroying the request (clean merge) (@mafintosh) +- [#310](https://github.com/request/request/pull/310) Twitter Oauth Stuff Out of Date; Now Updated (@joemccann, @isaacs, @mscdex) +- [#413](https://github.com/request/request/pull/413) rename googledoodle.png to .jpg (@nfriedly, @youurayy, @jplock, @kapetan, @landeiro, @othiym23, @mmalecki) +- [#448](https://github.com/request/request/pull/448) Convenience method for PATCH (@mloar) +- [#444](https://github.com/request/request/pull/444) protect against double callbacks on error path (@spollack) +- [#433](https://github.com/request/request/pull/433) Added support for HTTPS cert & key (@mmalecki) +- [#430](https://github.com/request/request/pull/430) Respect specified {Host,host} headers, not just {host} (@andrewschaaf) +- [#415](https://github.com/request/request/pull/415) Fixed a typo. (@jerem) +- [#338](https://github.com/request/request/pull/338) Add more auth options, including digest support (@nylen) +- [#403](https://github.com/request/request/pull/403) Optimize environment lookup to happen once only (@mmalecki) +- [#398](https://github.com/request/request/pull/398) Add more reporting to tests (@mmalecki) +- [#388](https://github.com/request/request/pull/388) Ensure "safe" toJSON doesn't break EventEmitters (@othiym23) +- [#381](https://github.com/request/request/pull/381) Resolving "Invalid signature. Expected signature base string: " (@landeiro) +- [#380](https://github.com/request/request/pull/380) Fixes missing host header on retried request when using forever agent (@mac-) +- [#376](https://github.com/request/request/pull/376) Headers lost on redirect (@kapetan) +- [#375](https://github.com/request/request/pull/375) Fix for missing oauth_timestamp parameter (@jplock) +- [#374](https://github.com/request/request/pull/374) Correct Host header for proxy tunnel CONNECT (@youurayy) +- [#370](https://github.com/request/request/pull/370) Twitter reverse auth uses x_auth_mode not x_auth_type (@drudge) +- [#369](https://github.com/request/request/pull/369) Don't remove x_auth_mode for Twitter reverse auth (@drudge) +- [#344](https://github.com/request/request/pull/344) Make AWS auth signing find headers correctly (@nlf) +- [#363](https://github.com/request/request/pull/363) rfc3986 on base_uri, now passes tests (@jeffmarshall) +- [#362](https://github.com/request/request/pull/362) Running `rfc3986` on `base_uri` in `oauth.hmacsign` instead of just `encodeURIComponent` (@jeffmarshall) +- [#361](https://github.com/request/request/pull/361) Don't create a Content-Length header if we already have it set (@danjenkins) +- [#360](https://github.com/request/request/pull/360) Delete self._form along with everything else on redirect (@jgautier) +- [#355](https://github.com/request/request/pull/355) stop sending erroneous headers on redirected requests (@azylman) +- [#332](https://github.com/request/request/pull/332) Fix #296 - Only set Content-Type if body exists (@Marsup) +- [#343](https://github.com/request/request/pull/343) Allow AWS to work in more situations, added a note in the README on its usage (@nlf) +- [#320](https://github.com/request/request/pull/320) request.defaults() doesn't need to wrap jar() (@StuartHarris) +- [#322](https://github.com/request/request/pull/322) Fix + test for piped into request bumped into redirect. #321 (@alexindigo) +- [#326](https://github.com/request/request/pull/326) Do not try to remove listener from an undefined connection (@CartoDB) +- [#318](https://github.com/request/request/pull/318) Pass servername to tunneling secure socket creation (@isaacs) +- [#317](https://github.com/request/request/pull/317) Workaround for #313 (@isaacs) +- [#293](https://github.com/request/request/pull/293) Allow parser errors to bubble up to request (@mscdex) +- [#290](https://github.com/request/request/pull/290) A test for #289 (@isaacs) +- [#280](https://github.com/request/request/pull/280) Like in node.js print options if NODE_DEBUG contains the word request (@Filirom1) +- [#207](https://github.com/request/request/pull/207) Fix #206 Change HTTP/HTTPS agent when redirecting between protocols (@isaacs) +- [#214](https://github.com/request/request/pull/214) documenting additional behavior of json option (@jphaas, @vpulim) +- [#272](https://github.com/request/request/pull/272) Boundary begins with CRLF? (@elspoono, @timshadel, @naholyr, @nanodocumet, @TehShrike) +- [#284](https://github.com/request/request/pull/284) Remove stray `console.log()` call in multipart generator. (@bcherry) +- [#241](https://github.com/request/request/pull/241) Composability updates suggested by issue #239 (@polotek) +- [#282](https://github.com/request/request/pull/282) OAuth Authorization header contains non-"oauth_" parameters (@jplock) +- [#279](https://github.com/request/request/pull/279) fix tests with boundary by injecting boundry from header (@benatkin) +- [#273](https://github.com/request/request/pull/273) Pipe back pressure issue (@mafintosh) +- [#268](https://github.com/request/request/pull/268) I'm not OCD seriously (@TehShrike) +- [#263](https://github.com/request/request/pull/263) Bug in OAuth key generation for sha1 (@nanodocumet) +- [#265](https://github.com/request/request/pull/265) uncaughtException when redirected to invalid URI (@naholyr) +- [#262](https://github.com/request/request/pull/262) JSON test should check for equality (@timshadel) +- [#261](https://github.com/request/request/pull/261) Setting 'pool' to 'false' does NOT disable Agent pooling (@timshadel) +- [#249](https://github.com/request/request/pull/249) Fix for the fix of your (closed) issue #89 where self.headers[content-length] is set to 0 for all methods (@sethbridges, @polotek, @zephrax, @jeromegn) +- [#255](https://github.com/request/request/pull/255) multipart allow body === '' ( the empty string ) (@Filirom1) +- [#260](https://github.com/request/request/pull/260) fixed just another leak of 'i' (@sreuter) +- [#246](https://github.com/request/request/pull/246) Fixing the set-cookie header (@jeromegn) +- [#243](https://github.com/request/request/pull/243) Dynamic boundary (@zephrax) +- [#240](https://github.com/request/request/pull/240) don't error when null is passed for options (@polotek) +- [#211](https://github.com/request/request/pull/211) Replace all occurrences of special chars in RFC3986 (@chriso, @vpulim) +- [#224](https://github.com/request/request/pull/224) Multipart content-type change (@janjongboom) +- [#217](https://github.com/request/request/pull/217) need to use Authorization (titlecase) header with Tumblr OAuth (@visnup) +- [#203](https://github.com/request/request/pull/203) Fix cookie and redirect bugs and add auth support for HTTPS tunnel (@vpulim) +- [#199](https://github.com/request/request/pull/199) Tunnel (@isaacs) +- [#198](https://github.com/request/request/pull/198) Bugfix on forever usage of util.inherits (@isaacs) +- [#197](https://github.com/request/request/pull/197) Make ForeverAgent work with HTTPS (@isaacs) +- [#193](https://github.com/request/request/pull/193) Fixes GH-119 (@goatslacker) +- [#188](https://github.com/request/request/pull/188) Add abort support to the returned request (@itay) +- [#176](https://github.com/request/request/pull/176) Querystring option (@csainty) +- [#182](https://github.com/request/request/pull/182) Fix request.defaults to support (uri, options, callback) api (@twilson63) +- [#180](https://github.com/request/request/pull/180) Modified the post, put, head and del shortcuts to support uri optional param (@twilson63) +- [#179](https://github.com/request/request/pull/179) fix to add opts in .pipe(stream, opts) (@substack) +- [#177](https://github.com/request/request/pull/177) Issue #173 Support uri as first and optional config as second argument (@twilson63) +- [#170](https://github.com/request/request/pull/170) can't create a cookie in a wrapped request (defaults) (@fabianonunes) +- [#168](https://github.com/request/request/pull/168) Picking off an EasyFix by adding some missing mimetypes. (@serby) +- [#161](https://github.com/request/request/pull/161) Fix cookie jar/headers.cookie collision (#125) (@papandreou) +- [#162](https://github.com/request/request/pull/162) Fix issue #159 (@dpetukhov) +- [#90](https://github.com/request/request/pull/90) add option followAllRedirects to follow post/put redirects (@jroes) +- [#148](https://github.com/request/request/pull/148) Retry Agent (@thejh) +- [#146](https://github.com/request/request/pull/146) Multipart should respect content-type if previously set (@apeace) +- [#144](https://github.com/request/request/pull/144) added "form" option to readme (@petejkim) +- [#133](https://github.com/request/request/pull/133) Fixed cookies parsing (@afanasy) +- [#135](https://github.com/request/request/pull/135) host vs hostname (@iangreenleaf) +- [#132](https://github.com/request/request/pull/132) return the body as a Buffer when encoding is set to null (@jahewson) +- [#112](https://github.com/request/request/pull/112) Support using a custom http-like module (@jhs) +- [#104](https://github.com/request/request/pull/104) Cookie handling contains bugs (@janjongboom) +- [#121](https://github.com/request/request/pull/121) Another patch for cookie handling regression (@jhurliman) +- [#117](https://github.com/request/request/pull/117) Remove the global `i` (@3rd-Eden) +- [#110](https://github.com/request/request/pull/110) Update to Iris Couch URL (@jhs) +- [#86](https://github.com/request/request/pull/86) Can't post binary to multipart requests (@kkaefer) +- [#105](https://github.com/request/request/pull/105) added test for proxy option. (@dominictarr) +- [#102](https://github.com/request/request/pull/102) Implemented cookies - closes issue 82: https://github.com/mikeal/request/issues/82 (@alessioalex) +- [#97](https://github.com/request/request/pull/97) Typo in previous pull causes TypeError in non-0.5.11 versions (@isaacs) +- [#96](https://github.com/request/request/pull/96) Authless parsed url host support (@isaacs) +- [#81](https://github.com/request/request/pull/81) Enhance redirect handling (@danmactough) +- [#78](https://github.com/request/request/pull/78) Don't try to do strictSSL for non-ssl connections (@isaacs) +- [#76](https://github.com/request/request/pull/76) Bug when a request fails and a timeout is set (@Marsup) +- [#70](https://github.com/request/request/pull/70) add test script to package.json (@isaacs, @aheckmann) +- [#73](https://github.com/request/request/pull/73) Fix #71 Respect the strictSSL flag (@isaacs) +- [#69](https://github.com/request/request/pull/69) Flatten chunked requests properly (@isaacs) +- [#67](https://github.com/request/request/pull/67) fixed global variable leaks (@aheckmann) +- [#66](https://github.com/request/request/pull/66) Do not overwrite established content-type headers for read stream deliver (@voodootikigod) +- [#53](https://github.com/request/request/pull/53) Parse json: Issue #51 (@benatkin) +- [#45](https://github.com/request/request/pull/45) Added timeout option (@mbrevoort) +- [#35](https://github.com/request/request/pull/35) The "end" event isn't emitted for some responses (@voxpelli) +- [#31](https://github.com/request/request/pull/31) Error on piping a request to a destination (@tobowers) \ No newline at end of file diff --git a/node_modules/request/LICENSE b/node_modules/request/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/request/LICENSE @@ -0,0 +1,55 @@ +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/node_modules/request/README.md b/node_modules/request/README.md new file mode 100644 index 00000000..9da0eb7d --- /dev/null +++ b/node_modules/request/README.md @@ -0,0 +1,1133 @@ +# Deprecated! + +As of Feb 11th 2020, request is fully deprecated. No new changes are expected land. In fact, none have landed for some time. + +For more information about why request is deprecated and possible alternatives refer to +[this issue](https://github.com/request/request/issues/3142). + +# Request - Simplified HTTP client + +[![npm package](https://nodei.co/npm/request.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/request/) + +[![Build status](https://img.shields.io/travis/request/request/master.svg?style=flat-square)](https://travis-ci.org/request/request) +[![Coverage](https://img.shields.io/codecov/c/github/request/request.svg?style=flat-square)](https://codecov.io/github/request/request?branch=master) +[![Coverage](https://img.shields.io/coveralls/request/request.svg?style=flat-square)](https://coveralls.io/r/request/request) +[![Dependency Status](https://img.shields.io/david/request/request.svg?style=flat-square)](https://david-dm.org/request/request) +[![Known Vulnerabilities](https://snyk.io/test/npm/request/badge.svg?style=flat-square)](https://snyk.io/test/npm/request) +[![Gitter](https://img.shields.io/badge/gitter-join_chat-blue.svg?style=flat-square)](https://gitter.im/request/request?utm_source=badge) + + +## Super simple to use + +Request is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default. + +```js +const request = require('request'); +request('http://www.google.com', function (error, response, body) { + console.error('error:', error); // Print the error if one occurred + console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received + console.log('body:', body); // Print the HTML for the Google homepage. +}); +``` + + +## Table of contents + +- [Streaming](#streaming) +- [Promises & Async/Await](#promises--asyncawait) +- [Forms](#forms) +- [HTTP Authentication](#http-authentication) +- [Custom HTTP Headers](#custom-http-headers) +- [OAuth Signing](#oauth-signing) +- [Proxies](#proxies) +- [Unix Domain Sockets](#unix-domain-sockets) +- [TLS/SSL Protocol](#tlsssl-protocol) +- [Support for HAR 1.2](#support-for-har-12) +- [**All Available Options**](#requestoptions-callback) + +Request also offers [convenience methods](#convenience-methods) like +`request.defaults` and `request.post`, and there are +lots of [usage examples](#examples) and several +[debugging techniques](#debugging). + + +--- + + +## Streaming + +You can stream any response to a file stream. + +```js +request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')) +``` + +You can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one). + +```js +fs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json')) +``` + +Request can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers. + +```js +request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png')) +``` + +Request emits a "response" event when a response is received. The `response` argument will be an instance of [http.IncomingMessage](https://nodejs.org/api/http.html#http_class_http_incomingmessage). + +```js +request + .get('http://google.com/img.png') + .on('response', function(response) { + console.log(response.statusCode) // 200 + console.log(response.headers['content-type']) // 'image/png' + }) + .pipe(request.put('http://mysite.com/img.png')) +``` + +To easily handle errors when streaming requests, listen to the `error` event before piping: + +```js +request + .get('http://mysite.com/doodle.png') + .on('error', function(err) { + console.error(err) + }) + .pipe(fs.createWriteStream('doodle.png')) +``` + +Now let’s get fancy. + +```js +http.createServer(function (req, resp) { + if (req.url === '/doodle.png') { + if (req.method === 'PUT') { + req.pipe(request.put('http://mysite.com/doodle.png')) + } else if (req.method === 'GET' || req.method === 'HEAD') { + request.get('http://mysite.com/doodle.png').pipe(resp) + } + } +}) +``` + +You can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don't really care about security, you can do: + +```js +http.createServer(function (req, resp) { + if (req.url === '/doodle.png') { + const x = request('http://mysite.com/doodle.png') + req.pipe(x) + x.pipe(resp) + } +}) +``` + +And since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :) + +```js +req.pipe(request('http://mysite.com/doodle.png')).pipe(resp) +``` + +Also, none of this new functionality conflicts with requests previous features, it just expands them. + +```js +const r = request.defaults({'proxy':'http://localproxy.com'}) + +http.createServer(function (req, resp) { + if (req.url === '/doodle.png') { + r.get('http://google.com/doodle.png').pipe(resp) + } +}) +``` + +You can still use intermediate proxies, the requests will still follow HTTP forwards, etc. + +[back to top](#table-of-contents) + + +--- + + +## Promises & Async/Await + +`request` supports both streaming and callback interfaces natively. If you'd like `request` to return a Promise instead, you can use an alternative interface wrapper for `request`. These wrappers can be useful if you prefer to work with Promises, or if you'd like to use `async`/`await` in ES2017. + +Several alternative interfaces are provided by the request team, including: +- [`request-promise`](https://github.com/request/request-promise) (uses [Bluebird](https://github.com/petkaantonov/bluebird) Promises) +- [`request-promise-native`](https://github.com/request/request-promise-native) (uses native Promises) +- [`request-promise-any`](https://github.com/request/request-promise-any) (uses [any-promise](https://www.npmjs.com/package/any-promise) Promises) + +Also, [`util.promisify`](https://nodejs.org/api/util.html#util_util_promisify_original), which is available from Node.js v8.0 can be used to convert a regular function that takes a callback to return a promise instead. + + +[back to top](#table-of-contents) + + +--- + + +## Forms + +`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API. + + +#### application/x-www-form-urlencoded (URL-Encoded Forms) + +URL-encoded forms are simple. + +```js +request.post('http://service.com/upload', {form:{key:'value'}}) +// or +request.post('http://service.com/upload').form({key:'value'}) +// or +request.post({url:'http://service.com/upload', form: {key:'value'}}, function(err,httpResponse,body){ /* ... */ }) +``` + + +#### multipart/form-data (Multipart Form Uploads) + +For `multipart/form-data` we use the [form-data](https://github.com/form-data/form-data) library by [@felixge](https://github.com/felixge). For the most cases, you can pass your upload form data via the `formData` option. + + +```js +const formData = { + // Pass a simple key-value pair + my_field: 'my_value', + // Pass data via Buffers + my_buffer: Buffer.from([1, 2, 3]), + // Pass data via Streams + my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), + // Pass multiple values /w an Array + attachments: [ + fs.createReadStream(__dirname + '/attachment1.jpg'), + fs.createReadStream(__dirname + '/attachment2.jpg') + ], + // Pass optional meta-data with an 'options' object with style: {value: DATA, options: OPTIONS} + // Use case: for some types of streams, you'll need to provide "file"-related information manually. + // See the `form-data` README for more information about options: https://github.com/form-data/form-data + custom_file: { + value: fs.createReadStream('/dev/urandom'), + options: { + filename: 'topsecret.jpg', + contentType: 'image/jpeg' + } + } +}; +request.post({url:'http://service.com/upload', formData: formData}, function optionalCallback(err, httpResponse, body) { + if (err) { + return console.error('upload failed:', err); + } + console.log('Upload successful! Server responded with:', body); +}); +``` + +For advanced cases, you can access the form-data object itself via `r.form()`. This can be modified until the request is fired on the next cycle of the event-loop. (Note that this calling `form()` will clear the currently set form data for that request.) + +```js +// NOTE: Advanced use-case, for normal use see 'formData' usage above +const r = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {...}) +const form = r.form(); +form.append('my_field', 'my_value'); +form.append('my_buffer', Buffer.from([1, 2, 3])); +form.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), {filename: 'unicycle.jpg'}); +``` +See the [form-data README](https://github.com/form-data/form-data) for more information & examples. + + +#### multipart/related + +Some variations in different HTTP implementations require a newline/CRLF before, after, or both before and after the boundary of a `multipart/related` request (using the multipart option). This has been observed in the .NET WebAPI version 4.0. You can turn on a boundary preambleCRLF or postamble by passing them as `true` to your request options. + +```js + request({ + method: 'PUT', + preambleCRLF: true, + postambleCRLF: true, + uri: 'http://service.com/upload', + multipart: [ + { + 'content-type': 'application/json', + body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) + }, + { body: 'I am an attachment' }, + { body: fs.createReadStream('image.png') } + ], + // alternatively pass an object containing additional options + multipart: { + chunked: false, + data: [ + { + 'content-type': 'application/json', + body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) + }, + { body: 'I am an attachment' } + ] + } + }, + function (error, response, body) { + if (error) { + return console.error('upload failed:', error); + } + console.log('Upload successful! Server responded with:', body); + }) +``` + +[back to top](#table-of-contents) + + +--- + + +## HTTP Authentication + +```js +request.get('http://some.server.com/').auth('username', 'password', false); +// or +request.get('http://some.server.com/', { + 'auth': { + 'user': 'username', + 'pass': 'password', + 'sendImmediately': false + } +}); +// or +request.get('http://some.server.com/').auth(null, null, true, 'bearerToken'); +// or +request.get('http://some.server.com/', { + 'auth': { + 'bearer': 'bearerToken' + } +}); +``` + +If passed as an option, `auth` should be a hash containing values: + +- `user` || `username` +- `pass` || `password` +- `sendImmediately` (optional) +- `bearer` (optional) + +The method form takes parameters +`auth(username, password, sendImmediately, bearer)`. + +`sendImmediately` defaults to `true`, which causes a basic or bearer +authentication header to be sent. If `sendImmediately` is `false`, then +`request` will retry with a proper authentication header after receiving a +`401` response from the server (which must contain a `WWW-Authenticate` header +indicating the required authentication method). + +Note that you can also specify basic authentication using the URL itself, as +detailed in [RFC 1738](http://www.ietf.org/rfc/rfc1738.txt). Simply pass the +`user:password` before the host with an `@` sign: + +```js +const username = 'username', + password = 'password', + url = 'http://' + username + ':' + password + '@some.server.com'; + +request({url}, function (error, response, body) { + // Do more stuff with 'body' here +}); +``` + +Digest authentication is supported, but it only works with `sendImmediately` +set to `false`; otherwise `request` will send basic authentication on the +initial request, which will probably cause the request to fail. + +Bearer authentication is supported, and is activated when the `bearer` value is +available. The value may be either a `String` or a `Function` returning a +`String`. Using a function to supply the bearer token is particularly useful if +used in conjunction with `defaults` to allow a single function to supply the +last known token at the time of sending a request, or to compute one on the fly. + +[back to top](#table-of-contents) + + +--- + + +## Custom HTTP Headers + +HTTP Headers, such as `User-Agent`, can be set in the `options` object. +In the example below, we call the github API to find out the number +of stars and forks for the request repository. This requires a +custom `User-Agent` header as well as https. + +```js +const request = require('request'); + +const options = { + url: 'https://api.github.com/repos/request/request', + headers: { + 'User-Agent': 'request' + } +}; + +function callback(error, response, body) { + if (!error && response.statusCode == 200) { + const info = JSON.parse(body); + console.log(info.stargazers_count + " Stars"); + console.log(info.forks_count + " Forks"); + } +} + +request(options, callback); +``` + +[back to top](#table-of-contents) + + +--- + + +## OAuth Signing + +[OAuth version 1.0](https://tools.ietf.org/html/rfc5849) is supported. The +default signing algorithm is +[HMAC-SHA1](https://tools.ietf.org/html/rfc5849#section-3.4.2): + +```js +// OAuth1.0 - 3-legged server side flow (Twitter example) +// step 1 +const qs = require('querystring') + , oauth = + { callback: 'http://mysite.com/callback/' + , consumer_key: CONSUMER_KEY + , consumer_secret: CONSUMER_SECRET + } + , url = 'https://api.twitter.com/oauth/request_token' + ; +request.post({url:url, oauth:oauth}, function (e, r, body) { + // Ideally, you would take the body in the response + // and construct a URL that a user clicks on (like a sign in button). + // The verifier is only available in the response after a user has + // verified with twitter that they are authorizing your app. + + // step 2 + const req_data = qs.parse(body) + const uri = 'https://api.twitter.com/oauth/authenticate' + + '?' + qs.stringify({oauth_token: req_data.oauth_token}) + // redirect the user to the authorize uri + + // step 3 + // after the user is redirected back to your server + const auth_data = qs.parse(body) + , oauth = + { consumer_key: CONSUMER_KEY + , consumer_secret: CONSUMER_SECRET + , token: auth_data.oauth_token + , token_secret: req_data.oauth_token_secret + , verifier: auth_data.oauth_verifier + } + , url = 'https://api.twitter.com/oauth/access_token' + ; + request.post({url:url, oauth:oauth}, function (e, r, body) { + // ready to make signed requests on behalf of the user + const perm_data = qs.parse(body) + , oauth = + { consumer_key: CONSUMER_KEY + , consumer_secret: CONSUMER_SECRET + , token: perm_data.oauth_token + , token_secret: perm_data.oauth_token_secret + } + , url = 'https://api.twitter.com/1.1/users/show.json' + , qs = + { screen_name: perm_data.screen_name + , user_id: perm_data.user_id + } + ; + request.get({url:url, oauth:oauth, qs:qs, json:true}, function (e, r, user) { + console.log(user) + }) + }) +}) +``` + +For [RSA-SHA1 signing](https://tools.ietf.org/html/rfc5849#section-3.4.3), make +the following changes to the OAuth options object: +* Pass `signature_method : 'RSA-SHA1'` +* Instead of `consumer_secret`, specify a `private_key` string in + [PEM format](http://how2ssl.com/articles/working_with_pem_files/) + +For [PLAINTEXT signing](http://oauth.net/core/1.0/#anchor22), make +the following changes to the OAuth options object: +* Pass `signature_method : 'PLAINTEXT'` + +To send OAuth parameters via query params or in a post body as described in The +[Consumer Request Parameters](http://oauth.net/core/1.0/#consumer_req_param) +section of the oauth1 spec: +* Pass `transport_method : 'query'` or `transport_method : 'body'` in the OAuth + options object. +* `transport_method` defaults to `'header'` + +To use [Request Body Hash](https://oauth.googlecode.com/svn/spec/ext/body_hash/1.0/oauth-bodyhash.html) you can either +* Manually generate the body hash and pass it as a string `body_hash: '...'` +* Automatically generate the body hash by passing `body_hash: true` + +[back to top](#table-of-contents) + + +--- + + +## Proxies + +If you specify a `proxy` option, then the request (and any subsequent +redirects) will be sent via a connection to the proxy server. + +If your endpoint is an `https` url, and you are using a proxy, then +request will send a `CONNECT` request to the proxy server *first*, and +then use the supplied connection to connect to the endpoint. + +That is, first it will make a request like: + +``` +HTTP/1.1 CONNECT endpoint-server.com:80 +Host: proxy-server.com +User-Agent: whatever user agent you specify +``` + +and then the proxy server make a TCP connection to `endpoint-server` +on port `80`, and return a response that looks like: + +``` +HTTP/1.1 200 OK +``` + +At this point, the connection is left open, and the client is +communicating directly with the `endpoint-server.com` machine. + +See [the wikipedia page on HTTP Tunneling](https://en.wikipedia.org/wiki/HTTP_tunnel) +for more information. + +By default, when proxying `http` traffic, request will simply make a +standard proxied `http` request. This is done by making the `url` +section of the initial line of the request a fully qualified url to +the endpoint. + +For example, it will make a single request that looks like: + +``` +HTTP/1.1 GET http://endpoint-server.com/some-url +Host: proxy-server.com +Other-Headers: all go here + +request body or whatever +``` + +Because a pure "http over http" tunnel offers no additional security +or other features, it is generally simpler to go with a +straightforward HTTP proxy in this case. However, if you would like +to force a tunneling proxy, you may set the `tunnel` option to `true`. + +You can also make a standard proxied `http` request by explicitly setting +`tunnel : false`, but **note that this will allow the proxy to see the traffic +to/from the destination server**. + +If you are using a tunneling proxy, you may set the +`proxyHeaderWhiteList` to share certain headers with the proxy. + +You can also set the `proxyHeaderExclusiveList` to share certain +headers only with the proxy and not with destination host. + +By default, this set is: + +``` +accept +accept-charset +accept-encoding +accept-language +accept-ranges +cache-control +content-encoding +content-language +content-length +content-location +content-md5 +content-range +content-type +connection +date +expect +max-forwards +pragma +proxy-authorization +referer +te +transfer-encoding +user-agent +via +``` + +Note that, when using a tunneling proxy, the `proxy-authorization` +header and any headers from custom `proxyHeaderExclusiveList` are +*never* sent to the endpoint server, but only to the proxy server. + + +### Controlling proxy behaviour using environment variables + +The following environment variables are respected by `request`: + + * `HTTP_PROXY` / `http_proxy` + * `HTTPS_PROXY` / `https_proxy` + * `NO_PROXY` / `no_proxy` + +When `HTTP_PROXY` / `http_proxy` are set, they will be used to proxy non-SSL requests that do not have an explicit `proxy` configuration option present. Similarly, `HTTPS_PROXY` / `https_proxy` will be respected for SSL requests that do not have an explicit `proxy` configuration option. It is valid to define a proxy in one of the environment variables, but then override it for a specific request, using the `proxy` configuration option. Furthermore, the `proxy` configuration option can be explicitly set to false / null to opt out of proxying altogether for that request. + +`request` is also aware of the `NO_PROXY`/`no_proxy` environment variables. These variables provide a granular way to opt out of proxying, on a per-host basis. It should contain a comma separated list of hosts to opt out of proxying. It is also possible to opt of proxying when a particular destination port is used. Finally, the variable may be set to `*` to opt out of the implicit proxy configuration of the other environment variables. + +Here's some examples of valid `no_proxy` values: + + * `google.com` - don't proxy HTTP/HTTPS requests to Google. + * `google.com:443` - don't proxy HTTPS requests to Google, but *do* proxy HTTP requests to Google. + * `google.com:443, yahoo.com:80` - don't proxy HTTPS requests to Google, and don't proxy HTTP requests to Yahoo! + * `*` - ignore `https_proxy`/`http_proxy` environment variables altogether. + +[back to top](#table-of-contents) + + +--- + + +## UNIX Domain Sockets + +`request` supports making requests to [UNIX Domain Sockets](https://en.wikipedia.org/wiki/Unix_domain_socket). To make one, use the following URL scheme: + +```js +/* Pattern */ 'http://unix:SOCKET:PATH' +/* Example */ request.get('http://unix:/absolute/path/to/unix.socket:/request/path') +``` + +Note: The `SOCKET` path is assumed to be absolute to the root of the host file system. + +[back to top](#table-of-contents) + + +--- + + +## TLS/SSL Protocol + +TLS/SSL Protocol options, such as `cert`, `key` and `passphrase`, can be +set directly in `options` object, in the `agentOptions` property of the `options` object, or even in `https.globalAgent.options`. Keep in mind that, although `agentOptions` allows for a slightly wider range of configurations, the recommended way is via `options` object directly, as using `agentOptions` or `https.globalAgent.options` would not be applied in the same way in proxied environments (as data travels through a TLS connection instead of an http/https agent). + +```js +const fs = require('fs') + , path = require('path') + , certFile = path.resolve(__dirname, 'ssl/client.crt') + , keyFile = path.resolve(__dirname, 'ssl/client.key') + , caFile = path.resolve(__dirname, 'ssl/ca.cert.pem') + , request = require('request'); + +const options = { + url: 'https://api.some-server.com/', + cert: fs.readFileSync(certFile), + key: fs.readFileSync(keyFile), + passphrase: 'password', + ca: fs.readFileSync(caFile) +}; + +request.get(options); +``` + +### Using `options.agentOptions` + +In the example below, we call an API that requires client side SSL certificate +(in PEM format) with passphrase protected private key (in PEM format) and disable the SSLv3 protocol: + +```js +const fs = require('fs') + , path = require('path') + , certFile = path.resolve(__dirname, 'ssl/client.crt') + , keyFile = path.resolve(__dirname, 'ssl/client.key') + , request = require('request'); + +const options = { + url: 'https://api.some-server.com/', + agentOptions: { + cert: fs.readFileSync(certFile), + key: fs.readFileSync(keyFile), + // Or use `pfx` property replacing `cert` and `key` when using private key, certificate and CA certs in PFX or PKCS12 format: + // pfx: fs.readFileSync(pfxFilePath), + passphrase: 'password', + securityOptions: 'SSL_OP_NO_SSLv3' + } +}; + +request.get(options); +``` + +It is able to force using SSLv3 only by specifying `secureProtocol`: + +```js +request.get({ + url: 'https://api.some-server.com/', + agentOptions: { + secureProtocol: 'SSLv3_method' + } +}); +``` + +It is possible to accept other certificates than those signed by generally allowed Certificate Authorities (CAs). +This can be useful, for example, when using self-signed certificates. +To require a different root certificate, you can specify the signing CA by adding the contents of the CA's certificate file to the `agentOptions`. +The certificate the domain presents must be signed by the root certificate specified: + +```js +request.get({ + url: 'https://api.some-server.com/', + agentOptions: { + ca: fs.readFileSync('ca.cert.pem') + } +}); +``` + +The `ca` value can be an array of certificates, in the event you have a private or internal corporate public-key infrastructure hierarchy. For example, if you want to connect to https://api.some-server.com which presents a key chain consisting of: +1. its own public key, which is signed by: +2. an intermediate "Corp Issuing Server", that is in turn signed by: +3. a root CA "Corp Root CA"; + +you can configure your request as follows: + +```js +request.get({ + url: 'https://api.some-server.com/', + agentOptions: { + ca: [ + fs.readFileSync('Corp Issuing Server.pem'), + fs.readFileSync('Corp Root CA.pem') + ] + } +}); +``` + +[back to top](#table-of-contents) + + +--- + +## Support for HAR 1.2 + +The `options.har` property will override the values: `url`, `method`, `qs`, `headers`, `form`, `formData`, `body`, `json`, as well as construct multipart data and read files from disk when `request.postData.params[].fileName` is present without a matching `value`. + +A validation step will check if the HAR Request format matches the latest spec (v1.2) and will skip parsing if not matching. + +```js + const request = require('request') + request({ + // will be ignored + method: 'GET', + uri: 'http://www.google.com', + + // HTTP Archive Request Object + har: { + url: 'http://www.mockbin.com/har', + method: 'POST', + headers: [ + { + name: 'content-type', + value: 'application/x-www-form-urlencoded' + } + ], + postData: { + mimeType: 'application/x-www-form-urlencoded', + params: [ + { + name: 'foo', + value: 'bar' + }, + { + name: 'hello', + value: 'world' + } + ] + } + } + }) + + // a POST request will be sent to http://www.mockbin.com + // with body an application/x-www-form-urlencoded body: + // foo=bar&hello=world +``` + +[back to top](#table-of-contents) + + +--- + +## request(options, callback) + +The first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional. + +- `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()` +- `baseUrl` - fully qualified uri string used as the base url. Most useful with `request.defaults`, for example when you want to do many requests to the same domain. If `baseUrl` is `https://example.com/api/`, then requesting `/end/point?test=true` will fetch `https://example.com/api/end/point?test=true`. When `baseUrl` is given, `uri` must also be a string. +- `method` - http method (default: `"GET"`) +- `headers` - http headers (default: `{}`) + +--- + +- `qs` - object containing querystring values to be appended to the `uri` +- `qsParseOptions` - object containing options to pass to the [qs.parse](https://github.com/hapijs/qs#parsing-objects) method. Alternatively pass options to the [querystring.parse](https://nodejs.org/docs/v0.12.0/api/querystring.html#querystring_querystring_parse_str_sep_eq_options) method using this format `{sep:';', eq:':', options:{}}` +- `qsStringifyOptions` - object containing options to pass to the [qs.stringify](https://github.com/hapijs/qs#stringifying) method. Alternatively pass options to the [querystring.stringify](https://nodejs.org/docs/v0.12.0/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options) method using this format `{sep:';', eq:':', options:{}}`. For example, to change the way arrays are converted to query strings using the `qs` module pass the `arrayFormat` option with one of `indices|brackets|repeat` +- `useQuerystring` - if true, use `querystring` to stringify and parse + querystrings, otherwise use `qs` (default: `false`). Set this option to + `true` if you need arrays to be serialized as `foo=bar&foo=baz` instead of the + default `foo[0]=bar&foo[1]=baz`. + +--- + +- `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer`, `String` or `ReadStream`. If `json` is `true`, then `body` must be a JSON-serializable object. +- `form` - when passed an object or a querystring, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded` header. When passed no options, a `FormData` instance is returned (and is piped to request). See "Forms" section above. +- `formData` - data to pass for a `multipart/form-data` request. See + [Forms](#forms) section above. +- `multipart` - array of objects which contain their own headers and `body` + attributes. Sends a `multipart/related` request. See [Forms](#forms) section + above. + - Alternatively you can pass in an object `{chunked: false, data: []}` where + `chunked` is used to specify whether the request is sent in + [chunked transfer encoding](https://en.wikipedia.org/wiki/Chunked_transfer_encoding) + In non-chunked requests, data items with body streams are not allowed. +- `preambleCRLF` - append a newline/CRLF before the boundary of your `multipart/form-data` request. +- `postambleCRLF` - append a newline/CRLF at the end of the boundary of your `multipart/form-data` request. +- `json` - sets `body` to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON. +- `jsonReviver` - a [reviver function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) that will be passed to `JSON.parse()` when parsing a JSON response body. +- `jsonReplacer` - a [replacer function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that will be passed to `JSON.stringify()` when stringifying a JSON request body. + +--- + +- `auth` - a hash containing values `user` || `username`, `pass` || `password`, and `sendImmediately` (optional). See documentation above. +- `oauth` - options for OAuth HMAC-SHA1 signing. See documentation above. +- `hawk` - options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example). +- `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`, and optionally `session` (note that this only works for services that require session as part of the canonical string). Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services). If you want to use AWS sign version 4 use the parameter `sign_version` with value `4` otherwise the default is version 2. If you are using SigV4, you can also include a `service` property that specifies the service name. **Note:** you need to `npm install aws4` first. +- `httpSignature` - options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent's library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options. + +--- + +- `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`). This property can also be implemented as function which gets `response` object as a single argument and should return `true` if redirects should continue or `false` otherwise. +- `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`) +- `followOriginalHttpMethod` - by default we redirect to HTTP method GET. you can enable this property to redirect to the original HTTP method (default: `false`) +- `maxRedirects` - the maximum number of redirects to follow (default: `10`) +- `removeRefererHeader` - removes the referer header when a redirect happens (default: `false`). **Note:** if true, referer header set in the initial request is preserved during redirect chain. + +--- + +- `encoding` - encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`. Anything else **(including the default value of `undefined`)** will be passed as the [encoding](http://nodejs.org/api/buffer.html#buffer_buffer) parameter to `toString()` (meaning this is effectively `utf8` by default). (**Note:** if you expect binary data, you should set `encoding: null`.) +- `gzip` - if `true`, add an `Accept-Encoding` header to request compressed content encodings from the server (if not already present) and decode supported content encodings in the response. **Note:** Automatic decoding of the response content is performed on the body data returned through `request` (both through the `request` stream and passed to the callback function) but is not performed on the `response` stream (available from the `response` event) which is the unmodified `http.IncomingMessage` object which may contain compressed data. See example below. +- `jar` - if `true`, remember cookies for future use (or define your custom cookie jar; see examples section) + +--- + +- `agent` - `http(s).Agent` instance to use +- `agentClass` - alternatively specify your agent's class name +- `agentOptions` - and pass its options. **Note:** for HTTPS see [tls API doc for TLS/SSL options](http://nodejs.org/api/tls.html#tls_tls_connect_options_callback) and the [documentation above](#using-optionsagentoptions). +- `forever` - set to `true` to use the [forever-agent](https://github.com/request/forever-agent) **Note:** Defaults to `http(s).Agent({keepAlive:true})` in node 0.12+ +- `pool` - an object describing which agents to use for the request. If this option is omitted the request will use the global agent (as long as your options allow for it). Otherwise, request will search the pool for your custom agent. If no custom agent is found, a new agent will be created and added to the pool. **Note:** `pool` is used only when the `agent` option is not specified. + - A `maxSockets` property can also be provided on the `pool` object to set the max number of sockets for all agents created (ex: `pool: {maxSockets: Infinity}`). + - Note that if you are sending multiple requests in a loop and creating + multiple new `pool` objects, `maxSockets` will not work as intended. To + work around this, either use [`request.defaults`](#requestdefaultsoptions) + with your pool options or create the pool object with the `maxSockets` + property outside of the loop. +- `timeout` - integer containing number of milliseconds, controls two timeouts. + - **Read timeout**: Time to wait for a server to send response headers (and start the response body) before aborting the request. + - **Connection timeout**: Sets the socket to timeout after `timeout` milliseconds of inactivity. Note that increasing the timeout beyond the OS-wide TCP connection timeout will not have any effect ([the default in Linux can be anywhere from 20-120 seconds][linux-timeout]) + +[linux-timeout]: http://www.sekuda.com/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout + +--- + +- `localAddress` - local interface to bind for network connections. +- `proxy` - an HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`) +- `strictSSL` - if `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option. +- `tunnel` - controls the behavior of + [HTTP `CONNECT` tunneling](https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_tunneling) + as follows: + - `undefined` (default) - `true` if the destination is `https`, `false` otherwise + - `true` - always tunnel to the destination by making a `CONNECT` request to + the proxy + - `false` - request the destination as a `GET` request. +- `proxyHeaderWhiteList` - a whitelist of headers to send to a + tunneling proxy. +- `proxyHeaderExclusiveList` - a whitelist of headers to send + exclusively to a tunneling proxy and not to destination. + +--- + +- `time` - if `true`, the request-response cycle (including all redirects) is timed at millisecond resolution. When set, the following properties are added to the response object: + - `elapsedTime` Duration of the entire request/response in milliseconds (*deprecated*). + - `responseStartTime` Timestamp when the response began (in Unix Epoch milliseconds) (*deprecated*). + - `timingStart` Timestamp of the start of the request (in Unix Epoch milliseconds). + - `timings` Contains event timestamps in millisecond resolution relative to `timingStart`. If there were redirects, the properties reflect the timings of the final request in the redirect chain: + - `socket` Relative timestamp when the [`http`](https://nodejs.org/api/http.html#http_event_socket) module's `socket` event fires. This happens when the socket is assigned to the request. + - `lookup` Relative timestamp when the [`net`](https://nodejs.org/api/net.html#net_event_lookup) module's `lookup` event fires. This happens when the DNS has been resolved. + - `connect`: Relative timestamp when the [`net`](https://nodejs.org/api/net.html#net_event_connect) module's `connect` event fires. This happens when the server acknowledges the TCP connection. + - `response`: Relative timestamp when the [`http`](https://nodejs.org/api/http.html#http_event_response) module's `response` event fires. This happens when the first bytes are received from the server. + - `end`: Relative timestamp when the last bytes of the response are received. + - `timingPhases` Contains the durations of each request phase. If there were redirects, the properties reflect the timings of the final request in the redirect chain: + - `wait`: Duration of socket initialization (`timings.socket`) + - `dns`: Duration of DNS lookup (`timings.lookup` - `timings.socket`) + - `tcp`: Duration of TCP connection (`timings.connect` - `timings.socket`) + - `firstByte`: Duration of HTTP server response (`timings.response` - `timings.connect`) + - `download`: Duration of HTTP download (`timings.end` - `timings.response`) + - `total`: Duration entire HTTP round-trip (`timings.end`) + +- `har` - a [HAR 1.2 Request Object](http://www.softwareishard.com/blog/har-12-spec/#request), will be processed from HAR format into options overwriting matching values *(see the [HAR 1.2 section](#support-for-har-12) for details)* +- `callback` - alternatively pass the request's callback in the options object + +The callback argument gets 3 arguments: + +1. An `error` when applicable (usually from [`http.ClientRequest`](http://nodejs.org/api/http.html#http_class_http_clientrequest) object) +2. An [`http.IncomingMessage`](https://nodejs.org/api/http.html#http_class_http_incomingmessage) object (Response object) +3. The third is the `response` body (`String` or `Buffer`, or JSON object if the `json` option is supplied) + +[back to top](#table-of-contents) + + +--- + +## Convenience methods + +There are also shorthand methods for different HTTP METHODs and some other conveniences. + + +### request.defaults(options) + +This method **returns a wrapper** around the normal request API that defaults +to whatever options you pass to it. + +**Note:** `request.defaults()` **does not** modify the global request API; +instead, it **returns a wrapper** that has your default settings applied to it. + +**Note:** You can call `.defaults()` on the wrapper that is returned from +`request.defaults` to add/override defaults that were previously defaulted. + +For example: +```js +//requests using baseRequest() will set the 'x-token' header +const baseRequest = request.defaults({ + headers: {'x-token': 'my-token'} +}) + +//requests using specialRequest() will include the 'x-token' header set in +//baseRequest and will also include the 'special' header +const specialRequest = baseRequest.defaults({ + headers: {special: 'special value'} +}) +``` + +### request.METHOD() + +These HTTP method convenience functions act just like `request()` but with a default method already set for you: + +- *request.get()*: Defaults to `method: "GET"`. +- *request.post()*: Defaults to `method: "POST"`. +- *request.put()*: Defaults to `method: "PUT"`. +- *request.patch()*: Defaults to `method: "PATCH"`. +- *request.del() / request.delete()*: Defaults to `method: "DELETE"`. +- *request.head()*: Defaults to `method: "HEAD"`. +- *request.options()*: Defaults to `method: "OPTIONS"`. + +### request.cookie() + +Function that creates a new cookie. + +```js +request.cookie('key1=value1') +``` +### request.jar() + +Function that creates a new cookie jar. + +```js +request.jar() +``` + +### response.caseless.get('header-name') + +Function that returns the specified response header field using a [case-insensitive match](https://tools.ietf.org/html/rfc7230#section-3.2) + +```js +request('http://www.google.com', function (error, response, body) { + // print the Content-Type header even if the server returned it as 'content-type' (lowercase) + console.log('Content-Type is:', response.caseless.get('Content-Type')); +}); +``` + +[back to top](#table-of-contents) + + +--- + + +## Debugging + +There are at least three ways to debug the operation of `request`: + +1. Launch the node process like `NODE_DEBUG=request node script.js` + (`lib,request,otherlib` works too). + +2. Set `require('request').debug = true` at any time (this does the same thing + as #1). + +3. Use the [request-debug module](https://github.com/request/request-debug) to + view request and response headers and bodies. + +[back to top](#table-of-contents) + + +--- + +## Timeouts + +Most requests to external servers should have a timeout attached, in case the +server is not responding in a timely manner. Without a timeout, your code may +have a socket open/consume resources for minutes or more. + +There are two main types of timeouts: **connection timeouts** and **read +timeouts**. A connect timeout occurs if the timeout is hit while your client is +attempting to establish a connection to a remote machine (corresponding to the +[connect() call][connect] on the socket). A read timeout occurs any time the +server is too slow to send back a part of the response. + +These two situations have widely different implications for what went wrong +with the request, so it's useful to be able to distinguish them. You can detect +timeout errors by checking `err.code` for an 'ETIMEDOUT' value. Further, you +can detect whether the timeout was a connection timeout by checking if the +`err.connect` property is set to `true`. + +```js +request.get('http://10.255.255.1', {timeout: 1500}, function(err) { + console.log(err.code === 'ETIMEDOUT'); + // Set to `true` if the timeout was a connection timeout, `false` or + // `undefined` otherwise. + console.log(err.connect === true); + process.exit(0); +}); +``` + +[connect]: http://linux.die.net/man/2/connect + +## Examples: + +```js + const request = require('request') + , rand = Math.floor(Math.random()*100000000).toString() + ; + request( + { method: 'PUT' + , uri: 'http://mikeal.iriscouch.com/testjs/' + rand + , multipart: + [ { 'content-type': 'application/json' + , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) + } + , { body: 'I am an attachment' } + ] + } + , function (error, response, body) { + if(response.statusCode == 201){ + console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand) + } else { + console.log('error: '+ response.statusCode) + console.log(body) + } + } + ) +``` + +For backwards-compatibility, response compression is not supported by default. +To accept gzip-compressed responses, set the `gzip` option to `true`. Note +that the body data passed through `request` is automatically decompressed +while the response object is unmodified and will contain compressed data if +the server sent a compressed response. + +```js + const request = require('request') + request( + { method: 'GET' + , uri: 'http://www.google.com' + , gzip: true + } + , function (error, response, body) { + // body is the decompressed response body + console.log('server encoded the data as: ' + (response.headers['content-encoding'] || 'identity')) + console.log('the decoded data is: ' + body) + } + ) + .on('data', function(data) { + // decompressed data as it is received + console.log('decoded chunk: ' + data) + }) + .on('response', function(response) { + // unmodified http.IncomingMessage object + response.on('data', function(data) { + // compressed data as it is received + console.log('received ' + data.length + ' bytes of compressed data') + }) + }) +``` + +Cookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`). + +```js +const request = request.defaults({jar: true}) +request('http://www.google.com', function () { + request('http://images.google.com') +}) +``` + +To use a custom cookie jar (instead of `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`) + +```js +const j = request.jar() +const request = request.defaults({jar:j}) +request('http://www.google.com', function () { + request('http://images.google.com') +}) +``` + +OR + +```js +const j = request.jar(); +const cookie = request.cookie('key1=value1'); +const url = 'http://www.google.com'; +j.setCookie(cookie, url); +request({url: url, jar: j}, function () { + request('http://images.google.com') +}) +``` + +To use a custom cookie store (such as a +[`FileCookieStore`](https://github.com/mitsuru/tough-cookie-filestore) +which supports saving to and restoring from JSON files), pass it as a parameter +to `request.jar()`: + +```js +const FileCookieStore = require('tough-cookie-filestore'); +// NOTE - currently the 'cookies.json' file must already exist! +const j = request.jar(new FileCookieStore('cookies.json')); +request = request.defaults({ jar : j }) +request('http://www.google.com', function() { + request('http://images.google.com') +}) +``` + +The cookie store must be a +[`tough-cookie`](https://github.com/SalesforceEng/tough-cookie) +store and it must support synchronous operations; see the +[`CookieStore` API docs](https://github.com/SalesforceEng/tough-cookie#api) +for details. + +To inspect your cookie jar after a request: + +```js +const j = request.jar() +request({url: 'http://www.google.com', jar: j}, function () { + const cookie_string = j.getCookieString(url); // "key1=value1; key2=value2; ..." + const cookies = j.getCookies(url); + // [{key: 'key1', value: 'value1', domain: "www.google.com", ...}, ...] +}) +``` + +[back to top](#table-of-contents) diff --git a/node_modules/request/index.js b/node_modules/request/index.js new file mode 100644 index 00000000..d50f9917 --- /dev/null +++ b/node_modules/request/index.js @@ -0,0 +1,155 @@ +// 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/node_modules/request/lib/auth.js b/node_modules/request/lib/auth.js new file mode 100644 index 00000000..02f20386 --- /dev/null +++ b/node_modules/request/lib/auth.js @@ -0,0 +1,167 @@ +'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/node_modules/request/lib/cookies.js b/node_modules/request/lib/cookies.js new file mode 100644 index 00000000..bd5d46be --- /dev/null +++ b/node_modules/request/lib/cookies.js @@ -0,0 +1,38 @@ +'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/node_modules/request/lib/getProxyFromURI.js b/node_modules/request/lib/getProxyFromURI.js new file mode 100644 index 00000000..0b9b18e5 --- /dev/null +++ b/node_modules/request/lib/getProxyFromURI.js @@ -0,0 +1,79 @@ +'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/node_modules/request/lib/har.js b/node_modules/request/lib/har.js new file mode 100644 index 00000000..0dedee44 --- /dev/null +++ b/node_modules/request/lib/har.js @@ -0,0 +1,205 @@ +'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/node_modules/request/lib/hawk.js b/node_modules/request/lib/hawk.js new file mode 100644 index 00000000..de48a985 --- /dev/null +++ b/node_modules/request/lib/hawk.js @@ -0,0 +1,89 @@ +'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/node_modules/request/lib/helpers.js b/node_modules/request/lib/helpers.js new file mode 100644 index 00000000..8b2a7e6e --- /dev/null +++ b/node_modules/request/lib/helpers.js @@ -0,0 +1,66 @@ +'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/node_modules/request/lib/multipart.js b/node_modules/request/lib/multipart.js new file mode 100644 index 00000000..6a009bc1 --- /dev/null +++ b/node_modules/request/lib/multipart.js @@ -0,0 +1,112 @@ +'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/node_modules/request/lib/oauth.js b/node_modules/request/lib/oauth.js new file mode 100644 index 00000000..96de72b8 --- /dev/null +++ b/node_modules/request/lib/oauth.js @@ -0,0 +1,148 @@ +'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/node_modules/request/lib/querystring.js b/node_modules/request/lib/querystring.js new file mode 100644 index 00000000..4a32cd14 --- /dev/null +++ b/node_modules/request/lib/querystring.js @@ -0,0 +1,50 @@ +'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/node_modules/request/lib/redirect.js b/node_modules/request/lib/redirect.js new file mode 100644 index 00000000..b9150e77 --- /dev/null +++ b/node_modules/request/lib/redirect.js @@ -0,0 +1,154 @@ +'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/node_modules/request/lib/tunnel.js b/node_modules/request/lib/tunnel.js new file mode 100644 index 00000000..4479003f --- /dev/null +++ b/node_modules/request/lib/tunnel.js @@ -0,0 +1,175 @@ +'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/node_modules/request/node_modules/qs/.editorconfig b/node_modules/request/node_modules/qs/.editorconfig new file mode 100644 index 00000000..b2654e7a --- /dev/null +++ b/node_modules/request/node_modules/qs/.editorconfig @@ -0,0 +1,30 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 140 + +[test/*] +max_line_length = off + +[*.md] +max_line_length = off + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[LICENSE] +indent_size = 2 +max_line_length = off diff --git a/node_modules/request/node_modules/qs/.eslintignore b/node_modules/request/node_modules/qs/.eslintignore new file mode 100644 index 00000000..1521c8b7 --- /dev/null +++ b/node_modules/request/node_modules/qs/.eslintignore @@ -0,0 +1 @@ +dist diff --git a/node_modules/request/node_modules/qs/.eslintrc b/node_modules/request/node_modules/qs/.eslintrc new file mode 100644 index 00000000..b7a87b93 --- /dev/null +++ b/node_modules/request/node_modules/qs/.eslintrc @@ -0,0 +1,19 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "complexity": 0, + "consistent-return": 1, + "func-name-matching": 0, + "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], + "indent": [2, 4], + "max-params": [2, 12], + "max-statements": [2, 45], + "no-continue": 1, + "no-magic-numbers": 0, + "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], + "operator-linebreak": [2, "before"], + } +} diff --git a/node_modules/request/node_modules/qs/CHANGELOG.md b/node_modules/request/node_modules/qs/CHANGELOG.md new file mode 100644 index 00000000..fe523209 --- /dev/null +++ b/node_modules/request/node_modules/qs/CHANGELOG.md @@ -0,0 +1,226 @@ +## **6.5.2** +- [Fix] use `safer-buffer` instead of `Buffer` constructor +- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230) +- [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify` + +## **6.5.1** +- [Fix] Fix parsing & compacting very deep objects (#224) +- [Refactor] name utils functions +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` +- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesn’t break older node +- [Tests] Use precise dist for Node.js 0.6 runtime (#225) +- [Tests] make 0.6 required, now that it’s passing +- [Tests] on `node` `v8.2`; fix npm on node 0.6 + +## **6.5.0** +- [New] add `utils.assign` +- [New] pass default encoder/decoder to custom encoder/decoder functions (#206) +- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213) +- [Fix] Handle stringifying empty objects with addQueryPrefix (#217) +- [Fix] do not mutate `options` argument (#207) +- [Refactor] `parse`: cache index to reuse in else statement (#182) +- [Docs] add various badges to readme (#208) +- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape` +- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4 +- [Tests] add `editorconfig-tools` + +## **6.4.0** +- [New] `qs.stringify`: add `encodeValuesOnly` option +- [Fix] follow `allowPrototypes` option during merge (#201, #201) +- [Fix] support keys starting with brackets (#202, #200) +- [Fix] chmod a-x +- [Dev Deps] update `eslint` +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds +- [eslint] reduce warnings + +## **6.3.2** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Dev Deps] update `eslint` +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.3.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape` +- [Tests] on all node minors; improve test matrix +- [Docs] document stringify option `allowDots` (#195) +- [Docs] add empty object and array values example (#195) +- [Docs] Fix minor inconsistency/typo (#192) +- [Docs] document stringify option `sort` (#191) +- [Refactor] `stringify`: throw faster with an invalid encoder +- [Refactor] remove unnecessary escapes (#184) +- Remove contributing.md, since `qs` is no longer part of `hapi` (#183) + +## **6.3.0** +- [New] Add support for RFC 1738 (#174, #173) +- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159) +- [Fix] ensure `utils.merge` handles merging two arrays +- [Refactor] only constructors should be capitalized +- [Refactor] capitalized var names are for constructors only +- [Refactor] avoid using a sparse array +- [Robustness] `formats`: cache `String#replace` +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest` +- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix +- [Tests] flesh out arrayLimit/arrayFormat tests (#107) +- [Tests] skip Object.create tests when null objects are not available +- [Tests] Turn on eslint for test files (#175) + +## **6.2.3** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.2.2** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## **6.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values +- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call` +- [Tests] remove `parallelshell` since it does not reliably report failures +- [Tests] up to `node` `v6.3`, `v5.12` +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv` + +## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) +- [New] pass Buffers to the encoder/decoder directly (#161) +- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) +- [Fix] fix compacting of nested sparse arrays (#150) + +## **6.1.2 +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.1.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) +- [New] allowDots option for `stringify` (#151) +- [Fix] "sort" option should work at a depth of 3 or more (#151) +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## **6.0.4** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.0.3** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) +- Revert ES6 requirement and restore support for node down to v0.8. + +## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) +- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json + +## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) +- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 + +## **5.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values + +## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) +- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string + +## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) +- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional +- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify + +## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) +- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false +- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm + +## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) +- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional + +## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) +- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" + +## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) +- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties +- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost +- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing +- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object +- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option +- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. +- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 +- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 +- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign +- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute + +## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) +- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function + +## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) +- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option + +## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) +- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 +- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader + +## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) +- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object + +## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) +- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". + +## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) +- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 + +## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) +- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? +- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 +- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 + +## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) +- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number + +## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) +- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array +- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x + +## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) +- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value +- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty +- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? + +## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) +- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 +- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects + +## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) +- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present +- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays +- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge +- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? + +## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) +- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter + +## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) +- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? +- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit +- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 + +## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) +- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values + +## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) +- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters +- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block + +## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) +- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument +- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed + +## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) +- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted +- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null +- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README + +## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) +- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/node_modules/request/node_modules/qs/LICENSE b/node_modules/request/node_modules/qs/LICENSE new file mode 100644 index 00000000..d4569487 --- /dev/null +++ b/node_modules/request/node_modules/qs/LICENSE @@ -0,0 +1,28 @@ +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/node_modules/request/node_modules/qs/README.md b/node_modules/request/node_modules/qs/README.md new file mode 100644 index 00000000..d8119666 --- /dev/null +++ b/node_modules/request/node_modules/qs/README.md @@ -0,0 +1,475 @@ +# qs [![Version Badge][2]][1] + +[![Build Status][3]][4] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +A querystring parsing and stringifying library with some added security. + +Lead Maintainer: [Jordan Harband](https://github.com/ljharb) + +The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). + +## Usage + +```javascript +var qs = require('qs'); +var assert = require('assert'); + +var obj = qs.parse('a=c'); +assert.deepEqual(obj, { a: 'c' }); + +var str = qs.stringify(obj); +assert.equal(str, 'a=c'); +``` + +### Parsing Objects + +[](#preventEval) +```javascript +qs.parse(string, [options]); +``` + +**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. +For example, the string `'foo[bar]=baz'` converts to: + +```javascript +assert.deepEqual(qs.parse('foo[bar]=baz'), { + foo: { + bar: 'baz' + } +}); +``` + +When using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: + +```javascript +var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); +assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } }); +``` + +By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. + +```javascript +var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); +assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); +``` + +URI encoded strings work too: + +```javascript +assert.deepEqual(qs.parse('a%5Bb%5D=c'), { + a: { b: 'c' } +}); +``` + +You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: + +```javascript +assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { + foo: { + bar: { + baz: 'foobarbaz' + } + } +}); +``` + +By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like +`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: + +```javascript +var expected = { + a: { + b: { + c: { + d: { + e: { + f: { + '[g][h][i]': 'j' + } + } + } + } + } + } +}; +var string = 'a[b][c][d][e][f][g][h][i]=j'; +assert.deepEqual(qs.parse(string), expected); +``` + +This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: + +```javascript +var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); +assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); +``` + +The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. + +For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: + +```javascript +var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); +assert.deepEqual(limited, { a: 'b' }); +``` + +To bypass the leading question mark, use `ignoreQueryPrefix`: + +```javascript +var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true }); +assert.deepEqual(prefixed, { a: 'b', c: 'd' }); +``` + +An optional delimiter can also be passed: + +```javascript +var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); +assert.deepEqual(delimited, { a: 'b', c: 'd' }); +``` + +Delimiters can be a regular expression too: + +```javascript +var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); +assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); +``` + +Option `allowDots` can be used to enable dot notation: + +```javascript +var withDots = qs.parse('a.b=c', { allowDots: true }); +assert.deepEqual(withDots, { a: { b: 'c' } }); +``` + +### Parsing Arrays + +**qs** can also parse arrays using a similar `[]` notation: + +```javascript +var withArray = qs.parse('a[]=b&a[]=c'); +assert.deepEqual(withArray, { a: ['b', 'c'] }); +``` + +You may specify an index as well: + +```javascript +var withIndexes = qs.parse('a[1]=c&a[0]=b'); +assert.deepEqual(withIndexes, { a: ['b', 'c'] }); +``` + +Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number +to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving +their order: + +```javascript +var noSparse = qs.parse('a[1]=b&a[15]=c'); +assert.deepEqual(noSparse, { a: ['b', 'c'] }); +``` + +Note that an empty string is also a value, and will be preserved: + +```javascript +var withEmptyString = qs.parse('a[]=&a[]=b'); +assert.deepEqual(withEmptyString, { a: ['', 'b'] }); + +var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); +assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); +``` + +**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will +instead be converted to an object with the index as the key: + +```javascript +var withMaxIndex = qs.parse('a[100]=b'); +assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); +``` + +This limit can be overridden by passing an `arrayLimit` option: + +```javascript +var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); +assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); +``` + +To disable array parsing entirely, set `parseArrays` to `false`. + +```javascript +var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); +assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); +``` + +If you mix notations, **qs** will merge the two items into an object: + +```javascript +var mixedNotation = qs.parse('a[0]=b&a[b]=c'); +assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); +``` + +You can also create arrays of objects: + +```javascript +var arraysOfObjects = qs.parse('a[][b]=c'); +assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); +``` + +### Stringifying + +[](#preventEval) +```javascript +qs.stringify(object, [options]); +``` + +When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: + +```javascript +assert.equal(qs.stringify({ a: 'b' }), 'a=b'); +assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); +``` + +This encoding can be disabled by setting the `encode` option to `false`: + +```javascript +var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); +assert.equal(unencoded, 'a[b]=c'); +``` + +Encoding can be disabled for keys by setting the `encodeValuesOnly` option to `true`: +```javascript +var encodedValues = qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true } +); +assert.equal(encodedValues,'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'); +``` + +This encoding can also be replaced by a custom encoding method set as `encoder` option: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) { + // Passed in values `a`, `b`, `c` + return // Return encoded string +}}) +``` + +_(Note: the `encoder` option does not apply if `encode` is `false`)_ + +Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str) { + // Passed in values `x`, `z` + return // Return decoded string +}}) +``` + +Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. + +When arrays are stringified, by default they are given explicit indices: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }); +// 'a[0]=b&a[1]=c&a[2]=d' +``` + +You may override this by setting the `indices` option to `false`: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); +// 'a=b&a=c&a=d' +``` + +You may use the `arrayFormat` option to specify the format of the output array: + +```javascript +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) +// 'a[0]=b&a[1]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) +// 'a[]=b&a[]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) +// 'a=b&a=c' +``` + +When objects are stringified, by default they use bracket notation: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }); +// 'a[b][c]=d&a[b][e]=f' +``` + +You may override this to use dot notation by setting the `allowDots` option to `true`: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true }); +// 'a.b.c=d&a.b.e=f' +``` + +Empty strings and null values will omit the value, but the equals sign (=) remains in place: + +```javascript +assert.equal(qs.stringify({ a: '' }), 'a='); +``` + +Key with no values (such as an empty object or array) will return nothing: + +```javascript +assert.equal(qs.stringify({ a: [] }), ''); +assert.equal(qs.stringify({ a: {} }), ''); +assert.equal(qs.stringify({ a: [{}] }), ''); +assert.equal(qs.stringify({ a: { b: []} }), ''); +assert.equal(qs.stringify({ a: { b: {}} }), ''); +``` + +Properties that are set to `undefined` will be omitted entirely: + +```javascript +assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); +``` + +The query string may optionally be prepended with a question mark: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d'); +``` + +The delimiter may be overridden with stringify as well: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); +``` + +If you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option: + +```javascript +var date = new Date(7); +assert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A')); +assert.equal( + qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }), + 'a=7' +); +``` + +You may use the `sort` option to affect the order of parameter keys: + +```javascript +function alphabeticalSort(a, b) { + return a.localeCompare(b); +} +assert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort }), 'a=c&b=f&z=y'); +``` + +Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. +If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you +pass an array, it will be used to select properties and array indices for stringification: + +```javascript +function filterFunc(prefix, value) { + if (prefix == 'b') { + // Return an `undefined` value to omit a property. + return; + } + if (prefix == 'e[f]') { + return value.getTime(); + } + if (prefix == 'e[g][0]') { + return value * 2; + } + return value; +} +qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); +// 'a=b&c=d&e[f]=123&e[g][0]=4' +qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); +// 'a=b&e=f' +qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); +// 'a[0]=b&a[2]=d' +``` + +### Handling of `null` values + +By default, `null` values are treated like empty strings: + +```javascript +var withNull = qs.stringify({ a: null, b: '' }); +assert.equal(withNull, 'a=&b='); +``` + +Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. + +```javascript +var equalsInsensitive = qs.parse('a&b='); +assert.deepEqual(equalsInsensitive, { a: '', b: '' }); +``` + +To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` +values have no `=` sign: + +```javascript +var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); +assert.equal(strictNull, 'a&b='); +``` + +To parse values without `=` back to `null` use the `strictNullHandling` flag: + +```javascript +var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); +assert.deepEqual(parsedStrictNull, { a: null, b: '' }); +``` + +To completely skip rendering keys with `null` values, use the `skipNulls` flag: + +```javascript +var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); +assert.equal(nullsSkipped, 'a=b'); +``` + +### Dealing with special character sets + +By default the encoding and decoding of characters is done in `utf-8`. If you +wish to encode querystrings to a different character set (i.e. +[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the +[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: + +```javascript +var encoder = require('qs-iconv/encoder')('shift_jis'); +var shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder }); +assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I'); +``` + +This also works for decoding of query strings: + +```javascript +var decoder = require('qs-iconv/decoder')('shift_jis'); +var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder }); +assert.deepEqual(obj, { a: 'こんにちは!' }); +``` + +### RFC 3986 and RFC 1738 space encoding + +RFC3986 used as default option and encodes ' ' to *%20* which is backward compatible. +In the same time, output can be stringified as per RFC1738 with ' ' equal to '+'. + +``` +assert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c'); +``` + +[1]: https://npmjs.org/package/qs +[2]: http://versionbadg.es/ljharb/qs.svg +[3]: https://api.travis-ci.org/ljharb/qs.svg +[4]: https://travis-ci.org/ljharb/qs +[5]: https://david-dm.org/ljharb/qs.svg +[6]: https://david-dm.org/ljharb/qs +[7]: https://david-dm.org/ljharb/qs/dev-status.svg +[8]: https://david-dm.org/ljharb/qs?type=dev +[9]: https://ci.testling.com/ljharb/qs.png +[10]: https://ci.testling.com/ljharb/qs +[11]: https://nodei.co/npm/qs.png?downloads=true&stars=true +[license-image]: http://img.shields.io/npm/l/qs.svg +[license-url]: LICENSE +[downloads-image]: http://img.shields.io/npm/dm/qs.svg +[downloads-url]: http://npm-stat.com/charts.html?package=qs diff --git a/node_modules/request/node_modules/qs/dist/qs.js b/node_modules/request/node_modules/qs/dist/qs.js new file mode 100644 index 00000000..ecf7ba44 --- /dev/null +++ b/node_modules/request/node_modules/qs/dist/qs.js @@ -0,0 +1,638 @@ +(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= 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/node_modules/request/node_modules/qs/lib/formats.js b/node_modules/request/node_modules/qs/lib/formats.js new file mode 100644 index 00000000..df459975 --- /dev/null +++ b/node_modules/request/node_modules/qs/lib/formats.js @@ -0,0 +1,18 @@ +'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/node_modules/request/node_modules/qs/lib/index.js b/node_modules/request/node_modules/qs/lib/index.js new file mode 100644 index 00000000..0d6a97dc --- /dev/null +++ b/node_modules/request/node_modules/qs/lib/index.js @@ -0,0 +1,11 @@ +'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/node_modules/request/node_modules/qs/lib/parse.js b/node_modules/request/node_modules/qs/lib/parse.js new file mode 100644 index 00000000..8c9872ec --- /dev/null +++ b/node_modules/request/node_modules/qs/lib/parse.js @@ -0,0 +1,174 @@ +'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/node_modules/request/node_modules/qs/lib/stringify.js b/node_modules/request/node_modules/qs/lib/stringify.js new file mode 100644 index 00000000..ab915ac4 --- /dev/null +++ b/node_modules/request/node_modules/qs/lib/stringify.js @@ -0,0 +1,210 @@ +'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/node_modules/request/node_modules/qs/lib/utils.js b/node_modules/request/node_modules/qs/lib/utils.js new file mode 100644 index 00000000..8775a327 --- /dev/null +++ b/node_modules/request/node_modules/qs/lib/utils.js @@ -0,0 +1,213 @@ +'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/node_modules/request/node_modules/qs/package.json b/node_modules/request/node_modules/qs/package.json new file mode 100644 index 00000000..4e5e6c28 --- /dev/null +++ b/node_modules/request/node_modules/qs/package.json @@ -0,0 +1,80 @@ +{ + "_from": "qs@~6.5.2", + "_id": "qs@6.5.2", + "_inBundle": false, + "_integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "_location": "/request/qs", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "qs@~6.5.2", + "name": "qs", + "escapedName": "qs", + "rawSpec": "~6.5.2", + "saveSpec": null, + "fetchSpec": "~6.5.2" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "_shasum": "cb3ae806e8740444584ef154ce8ee98d403f3e36", + "_spec": "qs@~6.5.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\request", + "bugs": { + "url": "https://github.com/ljharb/qs/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "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" + }, + "engines": { + "node": ">=0.6" + }, + "homepage": "https://github.com/ljharb/qs", + "keywords": [ + "querystring", + "qs" + ], + "license": "BSD-3-Clause", + "main": "lib/index.js", + "name": "qs", + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/qs.git" + }, + "scripts": { + "coverage": "covert test", + "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", + "lint": "eslint lib/*.js test/*.js", + "prelint": "editorconfig-tools check * lib/* test/*", + "prepublish": "safe-publish-latest && npm run dist", + "pretest": "npm run --silent readme && npm run --silent lint", + "readme": "evalmd README.md", + "test": "npm run --silent coverage", + "tests-only": "node test" + }, + "version": "6.5.2" +} diff --git a/node_modules/request/node_modules/qs/test/.eslintrc b/node_modules/request/node_modules/qs/test/.eslintrc new file mode 100644 index 00000000..20175d64 --- /dev/null +++ b/node_modules/request/node_modules/qs/test/.eslintrc @@ -0,0 +1,15 @@ +{ + "rules": { + "array-bracket-newline": 0, + "array-element-newline": 0, + "consistent-return": 2, + "max-lines": 0, + "max-nested-callbacks": [2, 3], + "max-statements": 0, + "no-buffer-constructor": 0, + "no-extend-native": 0, + "no-magic-numbers": 0, + "object-curly-newline": 0, + "sort-keys": 0 + } +} diff --git a/node_modules/request/node_modules/qs/test/index.js b/node_modules/request/node_modules/qs/test/index.js new file mode 100644 index 00000000..5e6bc8fb --- /dev/null +++ b/node_modules/request/node_modules/qs/test/index.js @@ -0,0 +1,7 @@ +'use strict'; + +require('./parse'); + +require('./stringify'); + +require('./utils'); diff --git a/node_modules/request/node_modules/qs/test/parse.js b/node_modules/request/node_modules/qs/test/parse.js new file mode 100644 index 00000000..0f8fe457 --- /dev/null +++ b/node_modules/request/node_modules/qs/test/parse.js @@ -0,0 +1,574 @@ +'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/node_modules/request/node_modules/qs/test/stringify.js b/node_modules/request/node_modules/qs/test/stringify.js new file mode 100644 index 00000000..165ac621 --- /dev/null +++ b/node_modules/request/node_modules/qs/test/stringify.js @@ -0,0 +1,597 @@ +'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/node_modules/request/node_modules/qs/test/utils.js b/node_modules/request/node_modules/qs/test/utils.js new file mode 100644 index 00000000..eff4011a --- /dev/null +++ b/node_modules/request/node_modules/qs/test/utils.js @@ -0,0 +1,34 @@ +'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/node_modules/request/package.json b/node_modules/request/package.json new file mode 100644 index 00000000..40e81a40 --- /dev/null +++ b/node_modules/request/package.json @@ -0,0 +1,116 @@ +{ + "_from": "request", + "_id": "request@2.88.2", + "_inBundle": false, + "_integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "_location": "/request", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "request", + "name": "request", + "escapedName": "request", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "_shasum": "d73c918731cb5a87da047e207234146f664d12b3", + "_spec": "request", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com" + }, + "bugs": { + "url": "http://github.com/request/request/issues" + }, + "bundleDependencies": false, + "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" + }, + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "description": "Simplified HTTP request client.", + "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" + }, + "engines": { + "node": ">= 6" + }, + "files": [ + "lib/", + "index.js", + "request.js" + ], + "greenkeeper": { + "ignore": [ + "hawk", + "har-validator" + ] + }, + "homepage": "https://github.com/request/request#readme", + "keywords": [ + "http", + "simple", + "util", + "utility" + ], + "license": "Apache-2.0", + "main": "index.js", + "name": "request", + "repository": { + "type": "git", + "url": "git+https://github.com/request/request.git" + }, + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run test-ci && npm run test-browser", + "test-browser": "node tests/browser/start.js", + "test-ci": "taper tests/test-*.js", + "test-cov": "nyc --reporter=lcov tape tests/test-*.js" + }, + "version": "2.88.2" +} diff --git a/node_modules/request/request.js b/node_modules/request/request.js new file mode 100644 index 00000000..198b7609 --- /dev/null +++ b/node_modules/request/request.js @@ -0,0 +1,1553 @@ +'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/node_modules/require-directory/.jshintrc b/node_modules/require-directory/.jshintrc new file mode 100644 index 00000000..e14e4dcb --- /dev/null +++ b/node_modules/require-directory/.jshintrc @@ -0,0 +1,67 @@ +{ + "maxerr" : 50, + "bitwise" : true, + "camelcase" : true, + "curly" : true, + "eqeqeq" : true, + "forin" : true, + "immed" : true, + "indent" : 2, + "latedef" : true, + "newcap" : true, + "noarg" : true, + "noempty" : true, + "nonew" : true, + "plusplus" : true, + "quotmark" : true, + "undef" : true, + "unused" : true, + "strict" : true, + "trailing" : true, + "maxparams" : false, + "maxdepth" : false, + "maxstatements" : false, + "maxcomplexity" : false, + "maxlen" : false, + "asi" : false, + "boss" : false, + "debug" : false, + "eqnull" : true, + "es5" : false, + "esnext" : false, + "moz" : false, + "evil" : false, + "expr" : true, + "funcscope" : true, + "globalstrict" : true, + "iterator" : true, + "lastsemic" : false, + "laxbreak" : false, + "laxcomma" : false, + "loopfunc" : false, + "multistr" : false, + "proto" : false, + "scripturl" : false, + "smarttabs" : false, + "shadow" : false, + "sub" : false, + "supernew" : false, + "validthis" : false, + "browser" : true, + "couch" : false, + "devel" : true, + "dojo" : false, + "jquery" : false, + "mootools" : false, + "node" : true, + "nonstandard" : false, + "prototypejs" : false, + "rhino" : false, + "worker" : false, + "wsh" : false, + "yui" : false, + "nomen" : true, + "onevar" : true, + "passfail" : false, + "white" : true +} diff --git a/node_modules/require-directory/.npmignore b/node_modules/require-directory/.npmignore new file mode 100644 index 00000000..47cf365a --- /dev/null +++ b/node_modules/require-directory/.npmignore @@ -0,0 +1 @@ +test/** diff --git a/node_modules/require-directory/.travis.yml b/node_modules/require-directory/.travis.yml new file mode 100644 index 00000000..20fd86b6 --- /dev/null +++ b/node_modules/require-directory/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - 0.10 diff --git a/node_modules/require-directory/LICENSE b/node_modules/require-directory/LICENSE new file mode 100644 index 00000000..a70f253a --- /dev/null +++ b/node_modules/require-directory/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2011 Troy Goode + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/require-directory/README.markdown b/node_modules/require-directory/README.markdown new file mode 100644 index 00000000..926a063e --- /dev/null +++ b/node_modules/require-directory/README.markdown @@ -0,0 +1,184 @@ +# require-directory + +Recursively iterates over specified directory, `require()`'ing each file, and returning a nested hash structure containing those modules. + +**[Follow me (@troygoode) on Twitter!](https://twitter.com/intent/user?screen_name=troygoode)** + +[![NPM](https://nodei.co/npm/require-directory.png?downloads=true&stars=true)](https://nodei.co/npm/require-directory/) + +[![build status](https://secure.travis-ci.org/troygoode/node-require-directory.png)](http://travis-ci.org/troygoode/node-require-directory) + +## How To Use + +### Installation (via [npm](https://npmjs.org/package/require-directory)) + +```bash +$ npm install require-directory +``` + +### Usage + +A common pattern in node.js is to include an index file which creates a hash of the files in its current directory. Given a directory structure like so: + +* app.js +* routes/ + * index.js + * home.js + * auth/ + * login.js + * logout.js + * register.js + +`routes/index.js` uses `require-directory` to build the hash (rather than doing so manually) like so: + +```javascript +var requireDirectory = require('require-directory'); +module.exports = requireDirectory(module); +``` + +`app.js` references `routes/index.js` like any other module, but it now has a hash/tree of the exports from the `./routes/` directory: + +```javascript +var routes = require('./routes'); + +// snip + +app.get('/', routes.home); +app.get('/register', routes.auth.register); +app.get('/login', routes.auth.login); +app.get('/logout', routes.auth.logout); +``` + +The `routes` variable above is the equivalent of this: + +```javascript +var routes = { + home: require('routes/home.js'), + auth: { + login: require('routes/auth/login.js'), + logout: require('routes/auth/logout.js'), + register: require('routes/auth/register.js') + } +}; +``` + +*Note that `routes.index` will be `undefined` as you would hope.* + +### Specifying Another Directory + +You can specify which directory you want to build a tree of (if it isn't the current directory for whatever reason) by passing it as the second parameter. Not specifying the path (`requireDirectory(module)`) is the equivelant of `requireDirectory(module, __dirname)`: + +```javascript +var requireDirectory = require('require-directory'); +module.exports = requireDirectory(module, './some/subdirectory'); +``` + +For example, in the [example in the Usage section](#usage) we could have avoided creating `routes/index.js` and instead changed the first lines of `app.js` to: + +```javascript +var requireDirectory = require('require-directory'); +var routes = requireDirectory(module, './routes'); +``` + +## Options + +You can pass an options hash to `require-directory` as the 2nd parameter (or 3rd if you're passing the path to another directory as the 2nd parameter already). Here are the available options: + +### Whitelisting + +Whitelisting (either via RegExp or function) allows you to specify that only certain files be loaded. + +```javascript +var requireDirectory = require('require-directory'), + whitelist = /onlyinclude.js$/, + hash = requireDirectory(module, {include: whitelist}); +``` + +```javascript +var requireDirectory = require('require-directory'), + check = function(path){ + if(/onlyinclude.js$/.test(path)){ + return true; // don't include + }else{ + return false; // go ahead and include + } + }, + hash = requireDirectory(module, {include: check}); +``` + +### Blacklisting + +Blacklisting (either via RegExp or function) allows you to specify that all but certain files should be loaded. + +```javascript +var requireDirectory = require('require-directory'), + blacklist = /dontinclude\.js$/, + hash = requireDirectory(module, {exclude: blacklist}); +``` + +```javascript +var requireDirectory = require('require-directory'), + check = function(path){ + if(/dontinclude\.js$/.test(path)){ + return false; // don't include + }else{ + return true; // go ahead and include + } + }, + hash = requireDirectory(module, {exclude: check}); +``` + +### Visiting Objects As They're Loaded + +`require-directory` takes a function as the `visit` option that will be called for each module that is added to module.exports. + +```javascript +var requireDirectory = require('require-directory'), + visitor = function(obj) { + console.log(obj); // will be called for every module that is loaded + }, + hash = requireDirectory(module, {visit: visitor}); +``` + +The visitor can also transform the objects by returning a value: + +```javascript +var requireDirectory = require('require-directory'), + visitor = function(obj) { + return obj(new Date()); + }, + hash = requireDirectory(module, {visit: visitor}); +``` + +### Renaming Keys + +```javascript +var requireDirectory = require('require-directory'), + renamer = function(name) { + return name.toUpperCase(); + }, + hash = requireDirectory(module, {rename: renamer}); +``` + +### No Recursion + +```javascript +var requireDirectory = require('require-directory'), + hash = requireDirectory(module, {recurse: false}); +``` + +## Run Unit Tests + +```bash +$ npm run lint +$ npm test +``` + +## License + +[MIT License](http://www.opensource.org/licenses/mit-license.php) + +## Author + +[Troy Goode](https://github.com/TroyGoode) ([troygoode@gmail.com](mailto:troygoode@gmail.com)) + diff --git a/node_modules/require-directory/index.js b/node_modules/require-directory/index.js new file mode 100644 index 00000000..cd37da7e --- /dev/null +++ b/node_modules/require-directory/index.js @@ -0,0 +1,86 @@ +'use strict'; + +var fs = require('fs'), + join = require('path').join, + resolve = require('path').resolve, + dirname = require('path').dirname, + defaultOptions = { + extensions: ['js', 'json', 'coffee'], + recurse: true, + rename: function (name) { + return name; + }, + visit: function (obj) { + return obj; + } + }; + +function checkFileInclusion(path, filename, options) { + return ( + // verify file has valid extension + (new RegExp('\\.(' + options.extensions.join('|') + ')$', 'i').test(filename)) && + + // if options.include is a RegExp, evaluate it and make sure the path passes + !(options.include && options.include instanceof RegExp && !options.include.test(path)) && + + // if options.include is a function, evaluate it and make sure the path passes + !(options.include && typeof options.include === 'function' && !options.include(path, filename)) && + + // if options.exclude is a RegExp, evaluate it and make sure the path doesn't pass + !(options.exclude && options.exclude instanceof RegExp && options.exclude.test(path)) && + + // if options.exclude is a function, evaluate it and make sure the path doesn't pass + !(options.exclude && typeof options.exclude === 'function' && options.exclude(path, filename)) + ); +} + +function requireDirectory(m, path, options) { + var retval = {}; + + // path is optional + if (path && !options && typeof path !== 'string') { + options = path; + path = null; + } + + // default options + options = options || {}; + for (var prop in defaultOptions) { + if (typeof options[prop] === 'undefined') { + options[prop] = defaultOptions[prop]; + } + } + + // if no path was passed in, assume the equivelant of __dirname from caller + // otherwise, resolve path relative to the equivalent of __dirname + path = !path ? dirname(m.filename) : resolve(dirname(m.filename), path); + + // get the path of each file in specified directory, append to current tree node, recurse + fs.readdirSync(path).forEach(function (filename) { + var joined = join(path, filename), + files, + key, + obj; + + if (fs.statSync(joined).isDirectory() && options.recurse) { + // this node is a directory; recurse + files = requireDirectory(m, joined, options); + // exclude empty directories + if (Object.keys(files).length) { + retval[options.rename(filename, joined, filename)] = files; + } + } else { + if (joined !== m.filename && checkFileInclusion(joined, filename, options)) { + // hash node key shouldn't include file extension + key = filename.substring(0, filename.lastIndexOf('.')); + obj = m.require(joined); + retval[options.rename(key, joined, filename)] = options.visit(obj, joined, filename) || obj; + } + } + }); + + return retval; +} + +module.exports = requireDirectory; +module.exports.defaults = defaultOptions; diff --git a/node_modules/require-directory/package.json b/node_modules/require-directory/package.json new file mode 100644 index 00000000..c65fff41 --- /dev/null +++ b/node_modules/require-directory/package.json @@ -0,0 +1,69 @@ +{ + "_from": "require-directory@^2.1.1", + "_id": "require-directory@2.1.1", + "_inBundle": false, + "_integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "_location": "/require-directory", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "require-directory@^2.1.1", + "name": "require-directory", + "escapedName": "require-directory", + "rawSpec": "^2.1.1", + "saveSpec": null, + "fetchSpec": "^2.1.1" + }, + "_requiredBy": [ + "/yargs" + ], + "_resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "_shasum": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42", + "_spec": "require-directory@^2.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\yargs", + "author": { + "name": "Troy Goode", + "email": "troygoode@gmail.com", + "url": "http://github.com/troygoode/" + }, + "bugs": { + "url": "http://github.com/troygoode/node-require-directory/issues/" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Troy Goode", + "email": "troygoode@gmail.com", + "url": "http://github.com/troygoode/" + } + ], + "deprecated": false, + "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.", + "devDependencies": { + "jshint": "^2.6.0", + "mocha": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/troygoode/node-require-directory/", + "keywords": [ + "require", + "directory", + "library", + "recursive" + ], + "license": "MIT", + "main": "index.js", + "name": "require-directory", + "repository": { + "type": "git", + "url": "git://github.com/troygoode/node-require-directory.git" + }, + "scripts": { + "lint": "jshint index.js test/test.js", + "test": "mocha" + }, + "version": "2.1.1" +} diff --git a/node_modules/require-main-filename/CHANGELOG.md b/node_modules/require-main-filename/CHANGELOG.md new file mode 100644 index 00000000..717d59e3 --- /dev/null +++ b/node_modules/require-main-filename/CHANGELOG.md @@ -0,0 +1,26 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + + +# [2.0.0](https://github.com/yargs/require-main-filename/compare/v1.0.2...v2.0.0) (2019-01-28) + + +### Chores + +* drop support for Node 0.10 ([#11](https://github.com/yargs/require-main-filename/issues/11)) ([87f4e13](https://github.com/yargs/require-main-filename/commit/87f4e13)) + + +### BREAKING CHANGES + +* drop support for Node 0.10/0.12 + + + + +## [1.0.2](https://github.com/yargs/require-main-filename/compare/v1.0.1...v1.0.2) (2017-06-16) + + +### Bug Fixes + +* add files to package.json ([#4](https://github.com/yargs/require-main-filename/issues/4)) ([fa29988](https://github.com/yargs/require-main-filename/commit/fa29988)) diff --git a/node_modules/require-main-filename/LICENSE.txt b/node_modules/require-main-filename/LICENSE.txt new file mode 100644 index 00000000..836440be --- /dev/null +++ b/node_modules/require-main-filename/LICENSE.txt @@ -0,0 +1,14 @@ +Copyright (c) 2016, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +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/node_modules/require-main-filename/README.md b/node_modules/require-main-filename/README.md new file mode 100644 index 00000000..820d9f58 --- /dev/null +++ b/node_modules/require-main-filename/README.md @@ -0,0 +1,26 @@ +# require-main-filename + +[![Build Status](https://travis-ci.org/yargs/require-main-filename.png)](https://travis-ci.org/yargs/require-main-filename) +[![Coverage Status](https://coveralls.io/repos/yargs/require-main-filename/badge.svg?branch=master)](https://coveralls.io/r/yargs/require-main-filename?branch=master) +[![NPM version](https://img.shields.io/npm/v/require-main-filename.svg)](https://www.npmjs.com/package/require-main-filename) + +`require.main.filename` is great for figuring out the entry +point for the current application. This can be combined with a module like +[pkg-conf](https://www.npmjs.com/package/pkg-conf) to, _as if by magic_, load +top-level configuration. + +Unfortunately, `require.main.filename` sometimes fails when an application is +executed with an alternative process manager, e.g., [iisnode](https://github.com/tjanczuk/iisnode). + +`require-main-filename` is a shim that addresses this problem. + +## Usage + +```js +var main = require('require-main-filename')() +// use main as an alternative to require.main.filename. +``` + +## License + +ISC diff --git a/node_modules/require-main-filename/index.js b/node_modules/require-main-filename/index.js new file mode 100644 index 00000000..dca7f0cc --- /dev/null +++ b/node_modules/require-main-filename/index.js @@ -0,0 +1,18 @@ +module.exports = function (_require) { + _require = _require || require + var main = _require.main + if (main && isIISNode(main)) return handleIISNode(main) + else return main ? main.filename : process.cwd() +} + +function isIISNode (main) { + return /\\iisnode\\/.test(main.filename) +} + +function handleIISNode (main) { + if (!main.children.length) { + return main.filename + } else { + return main.children[0].filename + } +} diff --git a/node_modules/require-main-filename/package.json b/node_modules/require-main-filename/package.json new file mode 100644 index 00000000..118e9557 --- /dev/null +++ b/node_modules/require-main-filename/package.json @@ -0,0 +1,63 @@ +{ + "_from": "require-main-filename@^2.0.0", + "_id": "require-main-filename@2.0.0", + "_inBundle": false, + "_integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "_location": "/require-main-filename", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "require-main-filename@^2.0.0", + "name": "require-main-filename", + "escapedName": "require-main-filename", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/yargs" + ], + "_resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "_shasum": "d0b329ecc7cc0f61649f62215be69af54aa8989b", + "_spec": "require-main-filename@^2.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\yargs", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/require-main-filename/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "shim for require.main.filename() that works in as many environments as possible", + "devDependencies": { + "chai": "^4.0.0", + "standard": "^10.0.3", + "standard-version": "^4.0.0", + "tap": "^11.0.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/yargs/require-main-filename#readme", + "keywords": [ + "require", + "shim", + "iisnode" + ], + "license": "ISC", + "main": "index.js", + "name": "require-main-filename", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/yargs/require-main-filename.git" + }, + "scripts": { + "pretest": "standard", + "release": "standard-version", + "test": "tap --coverage test.js" + }, + "version": "2.0.0" +} diff --git a/node_modules/require_optional/.npmignore b/node_modules/require_optional/.npmignore new file mode 100644 index 00000000..e920c167 --- /dev/null +++ b/node_modules/require_optional/.npmignore @@ -0,0 +1,33 @@ +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +node_modules + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history diff --git a/node_modules/require_optional/.travis.yml b/node_modules/require_optional/.travis.yml new file mode 100644 index 00000000..72903c34 --- /dev/null +++ b/node_modules/require_optional/.travis.yml @@ -0,0 +1,9 @@ +language: node_js +node_js: + - "0.10" + - "0.12" + - "4" + - "6" + - "7" + - "8" +sudo: false diff --git a/node_modules/require_optional/HISTORY.md b/node_modules/require_optional/HISTORY.md new file mode 100644 index 00000000..7bee02fc --- /dev/null +++ b/node_modules/require_optional/HISTORY.md @@ -0,0 +1,7 @@ +1.0.1 03-02-2016 +================ +* Fix dependency resolution issue when a component in peerOptionalDependencies is installed at the level of the module declaring in peerOptionalDependencies. + +1.0.0 03-02-2016 +================ +* Initial release allowing us to optionally resolve dependencies in the package.json file under the peerOptionalDependencies tag. \ No newline at end of file diff --git a/node_modules/require_optional/LICENSE b/node_modules/require_optional/LICENSE new file mode 100644 index 00000000..8dada3ed --- /dev/null +++ b/node_modules/require_optional/LICENSE @@ -0,0 +1,201 @@ + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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. diff --git a/node_modules/require_optional/README.md b/node_modules/require_optional/README.md new file mode 100644 index 00000000..c0323f06 --- /dev/null +++ b/node_modules/require_optional/README.md @@ -0,0 +1,2 @@ +# require_optional +Work around the problem that we do not have a optionalPeerDependencies concept in node.js making it a hassle to optionally include native modules diff --git a/node_modules/require_optional/index.js b/node_modules/require_optional/index.js new file mode 100644 index 00000000..3710319f --- /dev/null +++ b/node_modules/require_optional/index.js @@ -0,0 +1,128 @@ +var path = require('path'), + fs = require('fs'), + f = require('util').format, + resolveFrom = require('resolve-from'), + semver = require('semver'); + +var exists = fs.existsSync || path.existsSync; + +// Find the location of a package.json file near or above the given location +var find_package_json = function(location) { + var found = false; + + while(!found) { + if (exists(location + '/package.json')) { + found = location; + } else if (location !== '/') { + location = path.dirname(location); + } else { + return false; + } + } + + return location; +} + +// Find the package.json object of the module closest up the module call tree that contains name in that module's peerOptionalDependencies +var find_package_json_with_name = function(name) { + // Walk up the module call tree until we find a module containing name in its peerOptionalDependencies + var currentModule = module; + var found = false; + while (currentModule) { + // Check currentModule has a package.json + location = currentModule.filename; + var location = find_package_json(location) + if (!location) { + currentModule = currentModule.parent; + continue; + } + + // Read the package.json file + var object = JSON.parse(fs.readFileSync(f('%s/package.json', location))); + // Is the name defined by interal file references + var parts = name.split(/\//); + + // Check whether this package.json contains peerOptionalDependencies containing the name we're searching for + if (!object.peerOptionalDependencies || (object.peerOptionalDependencies && !object.peerOptionalDependencies[parts[0]])) { + currentModule = currentModule.parent; + continue; + } + found = true; + break; + } + + // Check whether name has been found in currentModule's peerOptionalDependencies + if (!found) { + throw new Error(f('no optional dependency [%s] defined in peerOptionalDependencies in any package.json', parts[0])); + } + + return { + object: object, + parts: parts + } +} + +var require_optional = function(name, options) { + options = options || {}; + options.strict = typeof options.strict == 'boolean' ? options.strict : true; + + var res = find_package_json_with_name(name) + var object = res.object; + var parts = res.parts; + + // Unpack the expected version + var expectedVersions = object.peerOptionalDependencies[parts[0]]; + // The resolved package + var moduleEntry = undefined; + // Module file + var moduleEntryFile = name; + + try { + // Validate if it's possible to read the module + moduleEntry = require(moduleEntryFile); + } catch(err) { + // Attempt to resolve in top level package + try { + // Get the module entry file + moduleEntryFile = resolveFrom(process.cwd(), name); + if(moduleEntryFile == null) return undefined; + // Attempt to resolve the module + moduleEntry = require(moduleEntryFile); + } catch(err) { + if(err.code === 'MODULE_NOT_FOUND') return undefined; + } + } + + // Resolve the location of the module's package.json file + var location = find_package_json(require.resolve(moduleEntryFile)); + if(!location) { + throw new Error('package.json can not be located'); + } + + // Read the module file + var dependentOnModule = JSON.parse(fs.readFileSync(f('%s/package.json', location))); + // Get the version + var version = dependentOnModule.version; + // Validate if the found module satisfies the version id + if(semver.satisfies(version, expectedVersions) == false + && options.strict) { + var error = new Error(f('optional dependency [%s] found but version [%s] did not satisfy constraint [%s]', parts[0], version, expectedVersions)); + error.code = 'OPTIONAL_MODULE_NOT_FOUND'; + throw error; + } + + // Satifies the module requirement + return moduleEntry; +} + +require_optional.exists = function(name) { + try { + var m = require_optional(name); + if(m === undefined) return false; + return true; + } catch(err) { + return false; + } +} + +module.exports = require_optional; diff --git a/node_modules/require_optional/package.json b/node_modules/require_optional/package.json new file mode 100644 index 00000000..c5833cf4 --- /dev/null +++ b/node_modules/require_optional/package.json @@ -0,0 +1,67 @@ +{ + "_from": "require_optional@^1.0.1", + "_id": "require_optional@1.0.1", + "_inBundle": false, + "_integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "_location": "/require_optional", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "require_optional@^1.0.1", + "name": "require_optional", + "escapedName": "require_optional", + "rawSpec": "^1.0.1", + "saveSpec": null, + "fetchSpec": "^1.0.1" + }, + "_requiredBy": [ + "/mongodb" + ], + "_resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "_shasum": "4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e", + "_spec": "require_optional@^1.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\mongodb", + "author": { + "name": "Christian Kvalheim Amor" + }, + "bugs": { + "url": "https://github.com/christkv/require_optional/issues" + }, + "bundleDependencies": false, + "dependencies": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + }, + "deprecated": false, + "description": "Allows you declare optionalPeerDependencies that can be satisfied by the top level module but ignored if they are not.", + "devDependencies": { + "bson": "0.4.21", + "co": "4.6.0", + "es6-promise": "^3.0.2", + "mocha": "^2.4.5" + }, + "homepage": "https://github.com/christkv/require_optional", + "keywords": [ + "optional", + "require", + "optionalPeerDependencies" + ], + "license": "Apache-2.0", + "main": "index.js", + "name": "require_optional", + "peerOptionalDependencies": { + "co": ">=5.6.0", + "es6-promise": "^3.0.2", + "es6-promise2": "^4.0.2", + "bson": "0.4.21" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/christkv/require_optional.git" + }, + "scripts": { + "test": "mocha" + }, + "version": "1.0.1" +} diff --git a/node_modules/require_optional/test/nestedTest/index.js b/node_modules/require_optional/test/nestedTest/index.js new file mode 100644 index 00000000..76de2ab4 --- /dev/null +++ b/node_modules/require_optional/test/nestedTest/index.js @@ -0,0 +1,8 @@ +var require_optional = require('../../') + +function findPackage(packageName) { + var pkg = require_optional(packageName); + return pkg; +} + +module.exports.findPackage = findPackage diff --git a/node_modules/require_optional/test/nestedTest/package.json b/node_modules/require_optional/test/nestedTest/package.json new file mode 100644 index 00000000..4c456a6b --- /dev/null +++ b/node_modules/require_optional/test/nestedTest/package.json @@ -0,0 +1,11 @@ +{ + "name": "nestedtest", + "version": "1.0.0", + "description": "A dummy package that facilitates testing that require_optional correctly walks up the module call stack", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Sebastian Hallum Clarke", + "license": "ISC" +} diff --git a/node_modules/require_optional/test/require_optional_tests.js b/node_modules/require_optional/test/require_optional_tests.js new file mode 100644 index 00000000..c9cc2a36 --- /dev/null +++ b/node_modules/require_optional/test/require_optional_tests.js @@ -0,0 +1,59 @@ +var assert = require('assert'), + require_optional = require('../'), + nestedTest = require('./nestedTest'); + +describe('Require Optional', function() { + describe('top level require', function() { + it('should correctly require co library', function() { + var promise = require_optional('es6-promise'); + assert.ok(promise); + }); + + it('should fail to require es6-promise library', function() { + try { + require_optional('co'); + } catch(e) { + assert.equal('OPTIONAL_MODULE_NOT_FOUND', e.code); + return; + } + + assert.ok(false); + }); + + it('should ignore optional library not defined', function() { + assert.equal(undefined, require_optional('es6-promise2')); + }); + }); + + describe('internal module file require', function() { + it('should correctly require co library', function() { + var Long = require_optional('bson/lib/bson/long.js'); + assert.ok(Long); + }); + }); + + describe('top level resolve', function() { + it('should correctly use exists method', function() { + assert.equal(false, require_optional.exists('co')); + assert.equal(true, require_optional.exists('es6-promise')); + assert.equal(true, require_optional.exists('bson/lib/bson/long.js')); + assert.equal(false, require_optional.exists('es6-promise2')); + }); + }); + + describe('require_optional inside dependencies', function() { + it('should correctly walk up module call stack searching for peerOptionalDependencies', function() { + assert.ok(nestedTest.findPackage('bson')) + }); + it('should return null when a package is defined in top-level package.json but not installed', function() { + assert.equal(null, nestedTest.findPackage('es6-promise2')) + }); + it('should error when searching for an optional dependency that is not defined in any ancestor package.json', function() { + try { + nestedTest.findPackage('bison') + } catch (err) { + assert.equal(err.message, 'no optional dependency [bison] defined in peerOptionalDependencies in any package.json') + } + }) + }); +}); diff --git a/node_modules/resolve-from/index.js b/node_modules/resolve-from/index.js new file mode 100644 index 00000000..434159f1 --- /dev/null +++ b/node_modules/resolve-from/index.js @@ -0,0 +1,23 @@ +'use strict'; +var path = require('path'); +var Module = require('module'); + +module.exports = function (fromDir, moduleId) { + if (typeof fromDir !== 'string' || typeof moduleId !== 'string') { + throw new TypeError('Expected `fromDir` and `moduleId` to be a string'); + } + + fromDir = path.resolve(fromDir); + + var fromFile = path.join(fromDir, 'noop.js'); + + try { + return Module._resolveFilename(moduleId, { + id: fromFile, + filename: fromFile, + paths: Module._nodeModulePaths(fromDir) + }); + } catch (err) { + return null; + } +}; diff --git a/node_modules/resolve-from/license b/node_modules/resolve-from/license new file mode 100644 index 00000000..654d0bfe --- /dev/null +++ b/node_modules/resolve-from/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/resolve-from/package.json b/node_modules/resolve-from/package.json new file mode 100644 index 00000000..8d6df704 --- /dev/null +++ b/node_modules/resolve-from/package.json @@ -0,0 +1,66 @@ +{ + "_from": "resolve-from@^2.0.0", + "_id": "resolve-from@2.0.0", + "_inBundle": false, + "_integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "_location": "/resolve-from", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "resolve-from@^2.0.0", + "name": "resolve-from", + "escapedName": "resolve-from", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/require_optional" + ], + "_resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "_shasum": "9480ab20e94ffa1d9e80a804c7ea147611966b57", + "_spec": "resolve-from@^2.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\require_optional", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/resolve-from/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Resolve the path of a module like require.resolve() but from a given path", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/resolve-from#readme", + "keywords": [ + "require", + "resolve", + "path", + "module", + "from", + "like", + "path" + ], + "license": "MIT", + "name": "resolve-from", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/resolve-from.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.0" +} diff --git a/node_modules/resolve-from/readme.md b/node_modules/resolve-from/readme.md new file mode 100644 index 00000000..bb4ca91e --- /dev/null +++ b/node_modules/resolve-from/readme.md @@ -0,0 +1,58 @@ +# resolve-from [![Build Status](https://travis-ci.org/sindresorhus/resolve-from.svg?branch=master)](https://travis-ci.org/sindresorhus/resolve-from) + +> Resolve the path of a module like [`require.resolve()`](http://nodejs.org/api/globals.html#globals_require_resolve) but from a given path + +Unlike `require.resolve()` it returns `null` instead of throwing when the module can't be found. + + +## Install + +``` +$ npm install --save resolve-from +``` + + +## Usage + +```js +const resolveFrom = require('resolve-from'); + +// there's a file at `./foo/bar.js` + +resolveFrom('foo', './bar'); +//=> '/Users/sindresorhus/dev/test/foo/bar.js' +``` + + +## API + +### resolveFrom(fromDir, moduleId) + +#### fromDir + +Type: `string` + +Directory to resolve from. + +#### moduleId + +Type: `string` + +What you would use in `require()`. + + +## Tip + +Create a partial using a bound function if you want to require from the same `fromDir` multiple times: + +```js +const resolveFromFoo = resolveFrom.bind(null, 'foo'); + +resolveFromFoo('./bar'); +resolveFromFoo('./baz'); +``` + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/resolve/.editorconfig b/node_modules/resolve/.editorconfig new file mode 100644 index 00000000..bc228f82 --- /dev/null +++ b/node_modules/resolve/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 150 + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off diff --git a/node_modules/resolve/.eslintignore b/node_modules/resolve/.eslintignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/resolve/.eslintignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/resolve/.eslintrc b/node_modules/resolve/.eslintrc new file mode 100644 index 00000000..a22863c8 --- /dev/null +++ b/node_modules/resolve/.eslintrc @@ -0,0 +1,39 @@ +{ + "extends": "@ljharb", + "root": true, + "rules": { + "array-bracket-newline": 0, + "array-element-newline": 0, + "indent": [2, 4], + "strict": 0, + "complexity": 0, + "consistent-return": 0, + "curly": 0, + "dot-notation": [2, { "allowKeywords": true }], + "func-name-matching": 0, + "func-style": 0, + "global-require": 0, + "id-length": [2, { "min": 1, "max": 30 }], + "max-lines-per-function": 0, + "max-nested-callbacks": 0, + "max-params": 0, + "max-statements-per-line": [2, { "max": 2 }], + "max-statements": 0, + "no-magic-numbers": 0, + "no-console": 0, + "no-shadow": 0, + "no-unused-vars": [2, { "vars": "all", "args": "none" }], + "no-use-before-define": 0, + "object-curly-newline": 0, + "operator-linebreak": [2, "before"], + "sort-keys": 0, + }, + "overrides": [ + { + "files": "test/resolver/nested_symlinks/mylib/*.js", + "rules": { + "no-throw-literal": 0, + }, + }, + ], +} diff --git a/node_modules/resolve/.travis.yml b/node_modules/resolve/.travis.yml new file mode 100644 index 00000000..5ed0fa52 --- /dev/null +++ b/node_modules/resolve/.travis.yml @@ -0,0 +1,8 @@ +version: ~> 1.0 +language: node_js +os: + - linux +import: + - ljharb/travis-ci:node/all.yml + - ljharb/travis-ci:node/pretest.yml + - ljharb/travis-ci:node/posttest.yml diff --git a/node_modules/resolve/LICENSE b/node_modules/resolve/LICENSE new file mode 100644 index 00000000..ff4fce28 --- /dev/null +++ b/node_modules/resolve/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012 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/node_modules/resolve/appveyor.yml b/node_modules/resolve/appveyor.yml new file mode 100644 index 00000000..9458fb82 --- /dev/null +++ b/node_modules/resolve/appveyor.yml @@ -0,0 +1,54 @@ +version: 1.0.{build} +skip_branch_with_pr: true +build: off + +environment: + matrix: + - nodejs_version: "12" + - nodejs_version: "11" + - nodejs_version: "10" + - nodejs_version: "9" + - nodejs_version: "8" + - nodejs_version: "7" + - nodejs_version: "6" + - nodejs_version: "5" + - nodejs_version: "4" + - nodejs_version: "3" + - nodejs_version: "2" + - nodejs_version: "1" + - nodejs_version: "0.12" + - nodejs_version: "0.10" + - nodejs_version: "0.8" + - nodejs_version: "0.6" +matrix: + # fast_finish: true + allow_failures: + - nodejs_version: "5" # due to windows npm bug, registry-side + - nodejs_version: "0.8" + - nodejs_version: "0.6" + +platform: + - x86 + - x64 + +# Install scripts. (runs after repo cloning) +install: + # Fix symlinks in working copy (see https://github.com/appveyor/ci/issues/650#issuecomment-186592582) / https://github.com/charleskorn/batect/commit/d08986802ec43086902958c4ee7e57ff3e71dbef + - git config core.symlinks true + - git reset --hard + # Get the latest stable version of Node.js or io.js + - ps: Install-Product node $env:nodejs_version $env:platform + - IF %nodejs_version% EQU 0.6 npm config set strict-ssl false && npm -g install npm@1.3 + - IF %nodejs_version% EQU 0.8 npm config set strict-ssl false && npm -g install npm@1.4.28 && npm install -g npm@4.5 + - set PATH=%APPDATA%\npm;%PATH% + #- IF %nodejs_version% NEQ 0.6 AND %nodejs_version% NEQ 0.8 npm -g install npm + # install modules + - npm install + +# Post-install test scripts. +test_script: + # Output useful info for debugging. + - node --version + - npm --version + # run tests + - npm run tests-only diff --git a/node_modules/resolve/example/async.js b/node_modules/resolve/example/async.js new file mode 100644 index 00000000..20e65dc2 --- /dev/null +++ b/node_modules/resolve/example/async.js @@ -0,0 +1,5 @@ +var resolve = require('../'); +resolve('tap', { basedir: __dirname }, function (err, res) { + if (err) console.error(err); + else console.log(res); +}); diff --git a/node_modules/resolve/example/sync.js b/node_modules/resolve/example/sync.js new file mode 100644 index 00000000..54b2cc10 --- /dev/null +++ b/node_modules/resolve/example/sync.js @@ -0,0 +1,3 @@ +var resolve = require('../'); +var res = resolve.sync('tap', { basedir: __dirname }); +console.log(res); diff --git a/node_modules/resolve/index.js b/node_modules/resolve/index.js new file mode 100644 index 00000000..125d8146 --- /dev/null +++ b/node_modules/resolve/index.js @@ -0,0 +1,6 @@ +var async = require('./lib/async'); +async.core = require('./lib/core'); +async.isCore = require('./lib/is-core'); +async.sync = require('./lib/sync'); + +module.exports = async; diff --git a/node_modules/resolve/lib/async.js b/node_modules/resolve/lib/async.js new file mode 100644 index 00000000..06aa4588 --- /dev/null +++ b/node_modules/resolve/lib/async.js @@ -0,0 +1,298 @@ +var fs = require('fs'); +var path = require('path'); +var caller = require('./caller.js'); +var nodeModulesPaths = require('./node-modules-paths.js'); +var normalizeOptions = require('./normalize-options.js'); +var isCore = require('./is-core'); + +var realpathFS = fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath; + +var defaultIsFile = function isFile(file, cb) { + fs.stat(file, function (err, stat) { + if (!err) { + return cb(null, stat.isFile() || stat.isFIFO()); + } + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); + return cb(err); + }); +}; + +var defaultIsDir = function isDirectory(dir, cb) { + fs.stat(dir, function (err, stat) { + if (!err) { + return cb(null, stat.isDirectory()); + } + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); + return cb(err); + }); +}; + +var defaultRealpath = function realpath(x, cb) { + realpathFS(x, function (realpathErr, realPath) { + if (realpathErr && realpathErr.code !== 'ENOENT') cb(realpathErr); + else cb(null, realpathErr ? x : realPath); + }); +}; + +var maybeRealpath = function maybeRealpath(realpath, x, opts, cb) { + if (opts && opts.preserveSymlinks === false) { + realpath(x, cb); + } else { + cb(null, x); + } +}; + +var getPackageCandidates = function getPackageCandidates(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path.join(dirs[i], x); + } + return dirs; +}; + +module.exports = function resolve(x, options, callback) { + var cb = callback; + var opts = options; + if (typeof options === 'function') { + cb = opts; + opts = {}; + } + if (typeof x !== 'string') { + var err = new TypeError('Path must be a string.'); + return process.nextTick(function () { + cb(err); + }); + } + + opts = normalizeOptions(x, opts); + + var isFile = opts.isFile || defaultIsFile; + var isDirectory = opts.isDirectory || defaultIsDir; + var readFile = opts.readFile || fs.readFile; + var realpath = opts.realpath || defaultRealpath; + var packageIterator = opts.packageIterator; + + var extensions = opts.extensions || ['.js']; + var basedir = opts.basedir || path.dirname(caller()); + var parent = opts.filename || basedir; + + opts.paths = opts.paths || []; + + // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory + var absoluteStart = path.resolve(basedir); + + maybeRealpath( + realpath, + absoluteStart, + opts, + function (err, realStart) { + if (err) cb(err); + else init(realStart); + } + ); + + var res; + function init(basedir) { + if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { + res = path.resolve(basedir, x); + if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; + if ((/\/$/).test(x) && res === basedir) { + loadAsDirectory(res, opts.package, onfile); + } else loadAsFile(res, opts.package, onfile); + } else if (isCore(x)) { + return cb(null, x); + } else loadNodeModules(x, basedir, function (err, n, pkg) { + if (err) cb(err); + else if (n) { + return maybeRealpath(realpath, n, opts, function (err, realN) { + if (err) { + cb(err); + } else { + cb(null, realN, pkg); + } + }); + } else { + var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + moduleError.code = 'MODULE_NOT_FOUND'; + cb(moduleError); + } + }); + } + + function onfile(err, m, pkg) { + if (err) cb(err); + else if (m) cb(null, m, pkg); + else loadAsDirectory(res, function (err, d, pkg) { + if (err) cb(err); + else if (d) { + maybeRealpath(realpath, d, opts, function (err, realD) { + if (err) { + cb(err); + } else { + cb(null, realD, pkg); + } + }); + } else { + var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + moduleError.code = 'MODULE_NOT_FOUND'; + cb(moduleError); + } + }); + } + + function loadAsFile(x, thePackage, callback) { + var loadAsFilePackage = thePackage; + var cb = callback; + if (typeof loadAsFilePackage === 'function') { + cb = loadAsFilePackage; + loadAsFilePackage = undefined; + } + + var exts = [''].concat(extensions); + load(exts, x, loadAsFilePackage); + + function load(exts, x, loadPackage) { + if (exts.length === 0) return cb(null, undefined, loadPackage); + var file = x + exts[0]; + + var pkg = loadPackage; + if (pkg) onpkg(null, pkg); + else loadpkg(path.dirname(file), onpkg); + + function onpkg(err, pkg_, dir) { + pkg = pkg_; + if (err) return cb(err); + if (dir && pkg && opts.pathFilter) { + var rfile = path.relative(dir, file); + var rel = rfile.slice(0, rfile.length - exts[0].length); + var r = opts.pathFilter(pkg, x, rel); + if (r) return load( + [''].concat(extensions.slice()), + path.resolve(dir, r), + pkg + ); + } + isFile(file, onex); + } + function onex(err, ex) { + if (err) return cb(err); + if (ex) return cb(null, file, pkg); + load(exts.slice(1), x, pkg); + } + } + } + + function loadpkg(dir, cb) { + if (dir === '' || dir === '/') return cb(null); + if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) { + return cb(null); + } + if ((/[/\\]node_modules[/\\]*$/).test(dir)) return cb(null); + + maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) { + if (unwrapErr) return loadpkg(path.dirname(dir), cb); + var pkgfile = path.join(pkgdir, 'package.json'); + isFile(pkgfile, function (err, ex) { + // on err, ex is false + if (!ex) return loadpkg(path.dirname(dir), cb); + + readFile(pkgfile, function (err, body) { + if (err) cb(err); + try { var pkg = JSON.parse(body); } catch (jsonErr) {} + + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); + } + cb(null, pkg, dir); + }); + }); + }); + } + + function loadAsDirectory(x, loadAsDirectoryPackage, callback) { + var cb = callback; + var fpkg = loadAsDirectoryPackage; + if (typeof fpkg === 'function') { + cb = fpkg; + fpkg = opts.package; + } + + maybeRealpath(realpath, x, opts, function (unwrapErr, pkgdir) { + if (unwrapErr) return cb(unwrapErr); + var pkgfile = path.join(pkgdir, 'package.json'); + isFile(pkgfile, function (err, ex) { + if (err) return cb(err); + if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb); + + readFile(pkgfile, function (err, body) { + if (err) return cb(err); + try { + var pkg = JSON.parse(body); + } catch (jsonErr) {} + + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); + } + + if (pkg && pkg.main) { + if (typeof pkg.main !== 'string') { + var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); + mainError.code = 'INVALID_PACKAGE_MAIN'; + return cb(mainError); + } + if (pkg.main === '.' || pkg.main === './') { + pkg.main = 'index'; + } + loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) { + if (err) return cb(err); + if (m) return cb(null, m, pkg); + if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb); + + var dir = path.resolve(x, pkg.main); + loadAsDirectory(dir, pkg, function (err, n, pkg) { + if (err) return cb(err); + if (n) return cb(null, n, pkg); + loadAsFile(path.join(x, 'index'), pkg, cb); + }); + }); + return; + } + + loadAsFile(path.join(x, '/index'), pkg, cb); + }); + }); + }); + } + + function processDirs(cb, dirs) { + if (dirs.length === 0) return cb(null, undefined); + var dir = dirs[0]; + + isDirectory(path.dirname(dir), isdir); + + function isdir(err, isdir) { + if (err) return cb(err); + if (!isdir) return processDirs(cb, dirs.slice(1)); + loadAsFile(dir, opts.package, onfile); + } + + function onfile(err, m, pkg) { + if (err) return cb(err); + if (m) return cb(null, m, pkg); + loadAsDirectory(dir, opts.package, ondir); + } + + function ondir(err, n, pkg) { + if (err) return cb(err); + if (n) return cb(null, n, pkg); + processDirs(cb, dirs.slice(1)); + } + } + function loadNodeModules(x, start, cb) { + var thunk = function () { return getPackageCandidates(x, start, opts); }; + processDirs( + cb, + packageIterator ? packageIterator(x, start, thunk, opts) : thunk() + ); + } +}; diff --git a/node_modules/resolve/lib/caller.js b/node_modules/resolve/lib/caller.js new file mode 100644 index 00000000..b14a2804 --- /dev/null +++ b/node_modules/resolve/lib/caller.js @@ -0,0 +1,8 @@ +module.exports = function () { + // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi + var origPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = function (_, stack) { return stack; }; + var stack = (new Error()).stack; + Error.prepareStackTrace = origPrepareStackTrace; + return stack[2].getFileName(); +}; diff --git a/node_modules/resolve/lib/core.js b/node_modules/resolve/lib/core.js new file mode 100644 index 00000000..0877650c --- /dev/null +++ b/node_modules/resolve/lib/core.js @@ -0,0 +1,53 @@ +var current = (process.versions && process.versions.node && process.versions.node.split('.')) || []; + +function specifierIncluded(specifier) { + var parts = specifier.split(' '); + var op = parts.length > 1 ? parts[0] : '='; + var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); + + for (var i = 0; i < 3; ++i) { + var cur = Number(current[i] || 0); + var ver = Number(versionParts[i] || 0); + if (cur === ver) { + continue; // eslint-disable-line no-restricted-syntax, no-continue + } + if (op === '<') { + return cur < ver; + } else if (op === '>=') { + return cur >= ver; + } else { + return false; + } + } + return op === '>='; +} + +function matchesRange(range) { + var specifiers = range.split(/ ?&& ?/); + if (specifiers.length === 0) { return false; } + for (var i = 0; i < specifiers.length; ++i) { + if (!specifierIncluded(specifiers[i])) { return false; } + } + return true; +} + +function versionIncluded(specifierValue) { + if (typeof specifierValue === 'boolean') { return specifierValue; } + if (specifierValue && typeof specifierValue === 'object') { + for (var i = 0; i < specifierValue.length; ++i) { + if (matchesRange(specifierValue[i])) { return true; } + } + return false; + } + return matchesRange(specifierValue); +} + +var data = require('./core.json'); + +var core = {}; +for (var mod in data) { // eslint-disable-line no-restricted-syntax + if (Object.prototype.hasOwnProperty.call(data, mod)) { + core[mod] = versionIncluded(data[mod]); + } +} +module.exports = core; diff --git a/node_modules/resolve/lib/core.json b/node_modules/resolve/lib/core.json new file mode 100644 index 00000000..d51b70b1 --- /dev/null +++ b/node_modules/resolve/lib/core.json @@ -0,0 +1,75 @@ +{ + "assert": true, + "async_hooks": ">= 8", + "buffer_ieee754": "< 0.9.7", + "buffer": true, + "child_process": true, + "cluster": true, + "console": true, + "constants": true, + "crypto": true, + "_debug_agent": ">= 1 && < 8", + "_debugger": "< 8", + "dgram": true, + "dns": true, + "domain": true, + "events": true, + "freelist": "< 6", + "fs": true, + "fs/promises": [">= 10 && < 10.1", ">= 14"], + "_http_agent": ">= 0.11.1", + "_http_client": ">= 0.11.1", + "_http_common": ">= 0.11.1", + "_http_incoming": ">= 0.11.1", + "_http_outgoing": ">= 0.11.1", + "_http_server": ">= 0.11.1", + "http": true, + "http2": ">= 8.8", + "https": true, + "inspector": ">= 8.0.0", + "_linklist": "< 8", + "module": true, + "net": true, + "node-inspect/lib/_inspect": ">= 7.6.0 && < 12", + "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12", + "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12", + "os": true, + "path": true, + "perf_hooks": ">= 8.5", + "process": ">= 1", + "punycode": true, + "querystring": true, + "readline": true, + "repl": true, + "smalloc": ">= 0.11.5 && < 3", + "_stream_duplex": ">= 0.9.4", + "_stream_transform": ">= 0.9.4", + "_stream_wrap": ">= 1.4.1", + "_stream_passthrough": ">= 0.9.4", + "_stream_readable": ">= 0.9.4", + "_stream_writable": ">= 0.9.4", + "stream": true, + "string_decoder": true, + "sys": true, + "timers": true, + "_tls_common": ">= 0.11.13", + "_tls_legacy": ">= 0.11.3 && < 10", + "_tls_wrap": ">= 0.11.3", + "tls": true, + "trace_events": ">= 10", + "tty": true, + "url": true, + "util": true, + "v8/tools/arguments": ">= 10 && < 12", + "v8/tools/codemap": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], + "v8/tools/consarray": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], + "v8/tools/csvparser": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], + "v8/tools/logreader": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], + "v8/tools/profile_view": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], + "v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], + "v8": ">= 1", + "vm": true, + "wasi": ">= 13.4 && < 13.5", + "worker_threads": ">= 11.7", + "zlib": true +} diff --git a/node_modules/resolve/lib/is-core.js b/node_modules/resolve/lib/is-core.js new file mode 100644 index 00000000..48bc96c4 --- /dev/null +++ b/node_modules/resolve/lib/is-core.js @@ -0,0 +1,5 @@ +var core = require('./core'); + +module.exports = function isCore(x) { + return Object.prototype.hasOwnProperty.call(core, x); +}; diff --git a/node_modules/resolve/lib/node-modules-paths.js b/node_modules/resolve/lib/node-modules-paths.js new file mode 100644 index 00000000..2b43813a --- /dev/null +++ b/node_modules/resolve/lib/node-modules-paths.js @@ -0,0 +1,42 @@ +var path = require('path'); +var parse = path.parse || require('path-parse'); + +var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { + var prefix = '/'; + if ((/^([A-Za-z]:)/).test(absoluteStart)) { + prefix = ''; + } else if ((/^\\\\/).test(absoluteStart)) { + prefix = '\\\\'; + } + + var paths = [absoluteStart]; + var parsed = parse(absoluteStart); + while (parsed.dir !== paths[paths.length - 1]) { + paths.push(parsed.dir); + parsed = parse(parsed.dir); + } + + return paths.reduce(function (dirs, aPath) { + return dirs.concat(modules.map(function (moduleDir) { + return path.resolve(prefix, aPath, moduleDir); + })); + }, []); +}; + +module.exports = function nodeModulesPaths(start, opts, request) { + var modules = opts && opts.moduleDirectory + ? [].concat(opts.moduleDirectory) + : ['node_modules']; + + if (opts && typeof opts.paths === 'function') { + return opts.paths( + request, + start, + function () { return getNodeModulesDirs(start, modules); }, + opts + ); + } + + var dirs = getNodeModulesDirs(start, modules); + return opts && opts.paths ? dirs.concat(opts.paths) : dirs; +}; diff --git a/node_modules/resolve/lib/normalize-options.js b/node_modules/resolve/lib/normalize-options.js new file mode 100644 index 00000000..4b56904e --- /dev/null +++ b/node_modules/resolve/lib/normalize-options.js @@ -0,0 +1,10 @@ +module.exports = function (x, opts) { + /** + * This file is purposefully a passthrough. It's expected that third-party + * environments will override it at runtime in order to inject special logic + * into `resolve` (by manipulating the options). One such example is the PnP + * code path in Yarn. + */ + + return opts || {}; +}; diff --git a/node_modules/resolve/lib/sync.js b/node_modules/resolve/lib/sync.js new file mode 100644 index 00000000..da74e19d --- /dev/null +++ b/node_modules/resolve/lib/sync.js @@ -0,0 +1,191 @@ +var isCore = require('./is-core'); +var fs = require('fs'); +var path = require('path'); +var caller = require('./caller.js'); +var nodeModulesPaths = require('./node-modules-paths.js'); +var normalizeOptions = require('./normalize-options.js'); + +var realpathFS = fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync; + +var defaultIsFile = function isFile(file) { + try { + var stat = fs.statSync(file); + } catch (e) { + if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; + throw e; + } + return stat.isFile() || stat.isFIFO(); +}; + +var defaultIsDir = function isDirectory(dir) { + try { + var stat = fs.statSync(dir); + } catch (e) { + if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; + throw e; + } + return stat.isDirectory(); +}; + +var defaultRealpathSync = function realpathSync(x) { + try { + return realpathFS(x); + } catch (realpathErr) { + if (realpathErr.code !== 'ENOENT') { + throw realpathErr; + } + } + return x; +}; + +var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) { + if (opts && opts.preserveSymlinks === false) { + return realpathSync(x); + } + return x; +}; + +var getPackageCandidates = function getPackageCandidates(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path.join(dirs[i], x); + } + return dirs; +}; + +module.exports = function resolveSync(x, options) { + if (typeof x !== 'string') { + throw new TypeError('Path must be a string.'); + } + var opts = normalizeOptions(x, options); + + var isFile = opts.isFile || defaultIsFile; + var readFileSync = opts.readFileSync || fs.readFileSync; + var isDirectory = opts.isDirectory || defaultIsDir; + var realpathSync = opts.realpathSync || defaultRealpathSync; + var packageIterator = opts.packageIterator; + + var extensions = opts.extensions || ['.js']; + var basedir = opts.basedir || path.dirname(caller()); + var parent = opts.filename || basedir; + + opts.paths = opts.paths || []; + + // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory + var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts); + + if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { + var res = path.resolve(absoluteStart, x); + if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; + var m = loadAsFileSync(res) || loadAsDirectorySync(res); + if (m) return maybeRealpathSync(realpathSync, m, opts); + } else if (isCore(x)) { + return x; + } else { + var n = loadNodeModulesSync(x, absoluteStart); + if (n) return maybeRealpathSync(realpathSync, n, opts); + } + + var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + err.code = 'MODULE_NOT_FOUND'; + throw err; + + function loadAsFileSync(x) { + var pkg = loadpkg(path.dirname(x)); + + if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { + var rfile = path.relative(pkg.dir, x); + var r = opts.pathFilter(pkg.pkg, x, rfile); + if (r) { + x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign + } + } + + if (isFile(x)) { + return x; + } + + for (var i = 0; i < extensions.length; i++) { + var file = x + extensions[i]; + if (isFile(file)) { + return file; + } + } + } + + function loadpkg(dir) { + if (dir === '' || dir === '/') return; + if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) { + return; + } + if ((/[/\\]node_modules[/\\]*$/).test(dir)) return; + + var pkgfile = path.join(maybeRealpathSync(realpathSync, dir, opts), 'package.json'); + + if (!isFile(pkgfile)) { + return loadpkg(path.dirname(dir)); + } + + var body = readFileSync(pkgfile); + + try { + var pkg = JSON.parse(body); + } catch (jsonErr) {} + + if (pkg && opts.packageFilter) { + // v2 will pass pkgfile + pkg = opts.packageFilter(pkg, /*pkgfile,*/ dir); // eslint-disable-line spaced-comment + } + + return { pkg: pkg, dir: dir }; + } + + function loadAsDirectorySync(x) { + var pkgfile = path.join(maybeRealpathSync(realpathSync, x, opts), '/package.json'); + if (isFile(pkgfile)) { + try { + var body = readFileSync(pkgfile, 'UTF8'); + var pkg = JSON.parse(body); + } catch (e) {} + + if (pkg && opts.packageFilter) { + // v2 will pass pkgfile + pkg = opts.packageFilter(pkg, /*pkgfile,*/ x); // eslint-disable-line spaced-comment + } + + if (pkg && pkg.main) { + if (typeof pkg.main !== 'string') { + var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); + mainError.code = 'INVALID_PACKAGE_MAIN'; + throw mainError; + } + if (pkg.main === '.' || pkg.main === './') { + pkg.main = 'index'; + } + try { + var m = loadAsFileSync(path.resolve(x, pkg.main)); + if (m) return m; + var n = loadAsDirectorySync(path.resolve(x, pkg.main)); + if (n) return n; + } catch (e) {} + } + } + + return loadAsFileSync(path.join(x, '/index')); + } + + function loadNodeModulesSync(x, start) { + var thunk = function () { return getPackageCandidates(x, start, opts); }; + var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk(); + + for (var i = 0; i < dirs.length; i++) { + var dir = dirs[i]; + if (isDirectory(path.dirname(dir))) { + var m = loadAsFileSync(dir); + if (m) return m; + var n = loadAsDirectorySync(dir); + if (n) return n; + } + } + } +}; diff --git a/node_modules/resolve/package.json b/node_modules/resolve/package.json new file mode 100644 index 00000000..726a44d6 --- /dev/null +++ b/node_modules/resolve/package.json @@ -0,0 +1,76 @@ +{ + "_from": "resolve@^1.10.0", + "_id": "resolve@1.17.0", + "_inBundle": false, + "_integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "_location": "/resolve", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "resolve@^1.10.0", + "name": "resolve", + "escapedName": "resolve", + "rawSpec": "^1.10.0", + "saveSpec": null, + "fetchSpec": "^1.10.0" + }, + "_requiredBy": [ + "/normalize-package-data" + ], + "_resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "_shasum": "b25941b54968231cc2d1bb76a79cb7f2c0bf8444", + "_spec": "resolve@^1.10.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\normalize-package-data", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "bugs": { + "url": "https://github.com/browserify/resolve/issues" + }, + "bundleDependencies": false, + "dependencies": { + "path-parse": "^1.0.6" + }, + "deprecated": false, + "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", + "devDependencies": { + "@ljharb/eslint-config": "^16.0.0", + "array.prototype.map": "^1.0.2", + "eslint": "^6.8.0", + "object-keys": "^1.1.1", + "safe-publish-latest": "^1.1.4", + "tap": "0.4.13", + "tape": "^5.0.0-next.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "homepage": "https://github.com/browserify/resolve#readme", + "keywords": [ + "resolve", + "require", + "node", + "module" + ], + "license": "MIT", + "main": "index.js", + "name": "resolve", + "repository": { + "type": "git", + "url": "git://github.com/browserify/resolve.git" + }, + "scripts": { + "lint": "eslint .", + "posttest": "npm run test:multirepo", + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "pretests-only": "cd ./test/resolver/nested_symlinks && node mylib/sync && node mylib/async", + "test": "npm run --silent tests-only", + "test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test", + "tests-only": "tape test/*.js" + }, + "version": "1.17.0" +} diff --git a/node_modules/resolve/readme.markdown b/node_modules/resolve/readme.markdown new file mode 100644 index 00000000..5e1aea33 --- /dev/null +++ b/node_modules/resolve/readme.markdown @@ -0,0 +1,242 @@ +# resolve + +implements the [node `require.resolve()` +algorithm](https://nodejs.org/api/modules.html#modules_all_together) +such that you can `require.resolve()` on behalf of a file asynchronously and +synchronously + +[![build status](https://secure.travis-ci.org/browserify/resolve.png)](http://travis-ci.org/browserify/resolve) + +# example + +asynchronously resolve: + +```js +var resolve = require('resolve'); +resolve('tap', { basedir: __dirname }, function (err, res) { + if (err) console.error(err); + else console.log(res); +}); +``` + +``` +$ node example/async.js +/home/substack/projects/node-resolve/node_modules/tap/lib/main.js +``` + +synchronously resolve: + +```js +var resolve = require('resolve'); +var res = resolve.sync('tap', { basedir: __dirname }); +console.log(res); +``` + +``` +$ node example/sync.js +/home/substack/projects/node-resolve/node_modules/tap/lib/main.js +``` + +# methods + +```js +var resolve = require('resolve'); +``` + +## resolve(id, opts={}, cb) + +Asynchronously resolve the module path string `id` into `cb(err, res [, pkg])`, where `pkg` (if defined) is the data from `package.json`. + +options are: + +* opts.basedir - directory to begin resolving from + +* opts.package - `package.json` data applicable to the module being loaded + +* opts.extensions - array of file extensions to search in order + +* opts.readFile - how to read files asynchronously + +* opts.isFile - function to asynchronously test whether a file exists + +* opts.isDirectory - function to asynchronously test whether a directory exists + +* opts.realpath - function to asynchronously resolve a potential symlink to its real path + +* `opts.packageFilter(pkg, pkgfile, dir)` - transform the parsed package.json contents before looking at the "main" field + * pkg - package data + * pkgfile - path to package.json + * dir - directory for package.json + +* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package + * pkg - package data + * path - the path being resolved + * relativePath - the path relative from the package.json location + * returns - a relative path that will be joined from the package.json location + +* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this) + + For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function + * request - the import specifier being resolved + * start - lookup path + * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution + * opts - the resolution options + +* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this) + * request - the import specifier being resolved + * start - lookup path + * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution + * opts - the resolution options + +* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` + +* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. +This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag. +**Note:** this property is currently `true` by default but it will be changed to +`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*. + +default `opts` values: + +```js +{ + paths: [], + basedir: __dirname, + extensions: ['.js'], + readFile: fs.readFile, + isFile: function isFile(file, cb) { + fs.stat(file, function (err, stat) { + if (!err) { + return cb(null, stat.isFile() || stat.isFIFO()); + } + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); + return cb(err); + }); + }, + isDirectory: function isDirectory(dir, cb) { + fs.stat(dir, function (err, stat) { + if (!err) { + return cb(null, stat.isDirectory()); + } + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); + return cb(err); + }); + }, + realpath: function realpath(file, cb) { + var realpath = typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath; + realpath(file, function (realPathErr, realPath) { + if (realPathErr && realPathErr.code !== 'ENOENT') cb(realPathErr); + else cb(null, realPathErr ? file : realPath); + }); + }, + moduleDirectory: 'node_modules', + preserveSymlinks: true +} +``` + +## resolve.sync(id, opts) + +Synchronously resolve the module path string `id`, returning the result and +throwing an error when `id` can't be resolved. + +options are: + +* opts.basedir - directory to begin resolving from + +* opts.extensions - array of file extensions to search in order + +* opts.readFile - how to read files synchronously + +* opts.isFile - function to synchronously test whether a file exists + +* opts.isDirectory - function to synchronously test whether a directory exists + +* opts.realpathSync - function to synchronously resolve a potential symlink to its real path + +* `opts.packageFilter(pkg, dir)` - transform the parsed package.json contents before looking at the "main" field + * pkg - package data + * dir - directory for package.json (Note: the second argument will change to "pkgfile" in v2) + +* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package + * pkg - package data + * path - the path being resolved + * relativePath - the path relative from the package.json location + * returns - a relative path that will be joined from the package.json location + +* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this) + + For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function + * request - the import specifier being resolved + * start - lookup path + * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution + * opts - the resolution options + +* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this) + * request - the import specifier being resolved + * start - lookup path + * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution + * opts - the resolution options + +* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` + +* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. +This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag. +**Note:** this property is currently `true` by default but it will be changed to +`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*. + +default `opts` values: + +```js +{ + paths: [], + basedir: __dirname, + extensions: ['.js'], + readFileSync: fs.readFileSync, + isFile: function isFile(file) { + try { + var stat = fs.statSync(file); + } catch (e) { + if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; + throw e; + } + return stat.isFile() || stat.isFIFO(); + }, + isDirectory: function isDirectory(dir) { + try { + var stat = fs.statSync(dir); + } catch (e) { + if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; + throw e; + } + return stat.isDirectory(); + }, + realpathSync: function realpathSync(file) { + try { + var realpath = typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync; + return realpath(file); + } catch (realPathErr) { + if (realPathErr.code !== 'ENOENT') { + throw realPathErr; + } + } + return file; + }, + moduleDirectory: 'node_modules', + preserveSymlinks: true +} +``` + +## resolve.isCore(pkg) + +Return whether a package is in core. + +# install + +With [npm](https://npmjs.org) do: + +```sh +npm install resolve +``` + +# license + +MIT diff --git a/node_modules/resolve/test/.eslintrc b/node_modules/resolve/test/.eslintrc new file mode 100644 index 00000000..ddd262df --- /dev/null +++ b/node_modules/resolve/test/.eslintrc @@ -0,0 +1,5 @@ +{ + "rules": { + "max-lines": 0 + } +} diff --git a/node_modules/resolve/test/core.js b/node_modules/resolve/test/core.js new file mode 100644 index 00000000..4c111e1d --- /dev/null +++ b/node_modules/resolve/test/core.js @@ -0,0 +1,85 @@ +var test = require('tape'); +var keys = require('object-keys'); +var resolve = require('../'); + +test('core modules', function (t) { + t.test('isCore()', function (st) { + st.ok(resolve.isCore('fs')); + st.ok(resolve.isCore('net')); + st.ok(resolve.isCore('http')); + + st.ok(!resolve.isCore('seq')); + st.ok(!resolve.isCore('../')); + + st.ok(!resolve.isCore('toString')); + + st.end(); + }); + + t.test('core list', function (st) { + var cores = keys(resolve.core); + st.plan(cores.length); + + for (var i = 0; i < cores.length; ++i) { + var mod = cores[i]; + if (resolve.core[mod]) { + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + mod + ' supported; requiring does not throw' + ); + } else { + st.throws( + function () { require(mod); }, // eslint-disable-line no-loop-func + mod + ' not supported; requiring throws' + ); + } + } + + st.end(); + }); + + t.test('core via repl module', { skip: !resolve.core.repl }, function (st) { + var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle + if (!libs) { + st.skip('module.builtinModules does not exist'); + return st.end(); + } + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + st.ok(resolve.core[mod], mod + ' is a core module'); + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' + ); + } + st.end(); + }); + + t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) { + var libs = require('module').builtinModules; + if (!libs) { + st.skip('module.builtinModules does not exist'); + return st.end(); + } + var blacklist = [ + '_debug_agent', + 'v8/tools/tickprocessor-driver', + 'v8/tools/SourceMap', + 'v8/tools/tickprocessor', + 'v8/tools/profile' + ]; + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + if (blacklist.indexOf(mod) === -1) { + st.ok(resolve.core[mod], mod + ' is a core module'); + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' + ); + } + } + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/resolve/test/dotdot.js b/node_modules/resolve/test/dotdot.js new file mode 100644 index 00000000..30806659 --- /dev/null +++ b/node_modules/resolve/test/dotdot.js @@ -0,0 +1,29 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('dotdot', function (t) { + t.plan(4); + var dir = path.join(__dirname, '/dotdot/abc'); + + resolve('..', { basedir: dir }, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(__dirname, 'dotdot/index.js')); + }); + + resolve('.', { basedir: dir }, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(dir, 'index.js')); + }); +}); + +test('dotdot sync', function (t) { + t.plan(2); + var dir = path.join(__dirname, '/dotdot/abc'); + + var a = resolve.sync('..', { basedir: dir }); + t.equal(a, path.join(__dirname, 'dotdot/index.js')); + + var b = resolve.sync('.', { basedir: dir }); + t.equal(b, path.join(dir, 'index.js')); +}); diff --git a/node_modules/resolve/test/dotdot/abc/index.js b/node_modules/resolve/test/dotdot/abc/index.js new file mode 100644 index 00000000..67f2534e --- /dev/null +++ b/node_modules/resolve/test/dotdot/abc/index.js @@ -0,0 +1,2 @@ +var x = require('..'); +console.log(x); diff --git a/node_modules/resolve/test/dotdot/index.js b/node_modules/resolve/test/dotdot/index.js new file mode 100644 index 00000000..643f9fcc --- /dev/null +++ b/node_modules/resolve/test/dotdot/index.js @@ -0,0 +1 @@ +module.exports = 'whatever'; diff --git a/node_modules/resolve/test/faulty_basedir.js b/node_modules/resolve/test/faulty_basedir.js new file mode 100644 index 00000000..5f2141a6 --- /dev/null +++ b/node_modules/resolve/test/faulty_basedir.js @@ -0,0 +1,29 @@ +var test = require('tape'); +var path = require('path'); +var resolve = require('../'); + +test('faulty basedir must produce error in windows', { skip: process.platform !== 'win32' }, function (t) { + t.plan(1); + + var resolverDir = 'C:\\a\\b\\c\\d'; + + resolve('tape/lib/test.js', { basedir: resolverDir }, function (err, res, pkg) { + t.equal(!!err, true); + }); +}); + +test('non-existent basedir should not throw when preserveSymlinks is false', function (t) { + t.plan(2); + + var opts = { + basedir: path.join(path.sep, 'unreal', 'path', 'that', 'does', 'not', 'exist'), + preserveSymlinks: false + }; + + var module = './dotdot/abc'; + + resolve(module, opts, function (err, res) { + t.equal(err.code, 'MODULE_NOT_FOUND'); + t.equal(res, undefined); + }); +}); diff --git a/node_modules/resolve/test/filter.js b/node_modules/resolve/test/filter.js new file mode 100644 index 00000000..8f8cccdb --- /dev/null +++ b/node_modules/resolve/test/filter.js @@ -0,0 +1,34 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('filter', function (t) { + t.plan(4); + var dir = path.join(__dirname, 'resolver'); + var packageFilterArgs; + resolve('./baz', { + basedir: dir, + packageFilter: function (pkg, pkgfile) { + pkg.main = 'doom'; // eslint-disable-line no-param-reassign + packageFilterArgs = [pkg, pkgfile]; + return pkg; + } + }, function (err, res, pkg) { + if (err) t.fail(err); + + t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works'); + + var packageData = packageFilterArgs[0]; + t.equal(pkg, packageData, 'first packageFilter argument is "pkg"'); + t.equal(packageData.main, 'doom', 'package "main" was altered'); + + var packageFile = packageFilterArgs[1]; + t.equal( + packageFile, + path.join(dir, 'baz/package.json'), + 'second packageFilter argument is "pkgfile"' + ); + + t.end(); + }); +}); diff --git a/node_modules/resolve/test/filter_sync.js b/node_modules/resolve/test/filter_sync.js new file mode 100644 index 00000000..8a43b981 --- /dev/null +++ b/node_modules/resolve/test/filter_sync.js @@ -0,0 +1,33 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('filter', function (t) { + var dir = path.join(__dirname, 'resolver'); + var packageFilterArgs; + var res = resolve.sync('./baz', { + basedir: dir, + // NOTE: in v2.x, this will be `pkg, pkgfile, dir`, but must remain "broken" here in v1.x for compatibility + packageFilter: function (pkg, /*pkgfile,*/ dir) { // eslint-disable-line spaced-comment + pkg.main = 'doom'; // eslint-disable-line no-param-reassign + packageFilterArgs = 'is 1.x' ? [pkg, dir] : [pkg, pkgfile, dir]; // eslint-disable-line no-constant-condition, no-undef + return pkg; + } + }); + + t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works'); + + var packageData = packageFilterArgs[0]; + t.equal(packageData.main, 'doom', 'package "main" was altered'); + + if (!'is 1.x') { // eslint-disable-line no-constant-condition + var packageFile = packageFilterArgs[1]; + t.equal(packageFile, path.join(dir, 'baz', 'package.json'), 'package.json path is correct'); + } + + var packageDir = packageFilterArgs['is 1.x' ? 1 : 2]; // eslint-disable-line no-constant-condition + // eslint-disable-next-line no-constant-condition + t.equal(packageDir, path.join(dir, 'baz'), ('is 1.x' ? 'second' : 'third') + ' packageFilter argument is "dir"'); + + t.end(); +}); diff --git a/node_modules/resolve/test/mock.js b/node_modules/resolve/test/mock.js new file mode 100644 index 00000000..b9f17fe2 --- /dev/null +++ b/node_modules/resolve/test/mock.js @@ -0,0 +1,239 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('mock', function (t) { + t.plan(8); + + var files = {}; + files[path.resolve('/foo/bar/baz.js')] = 'beep'; + + var dirs = {}; + dirs[path.resolve('/foo/bar')] = true; + + function opts(basedir) { + return { + basedir: path.resolve(basedir), + isFile: function (file, cb) { + cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); + }, + isDirectory: function (dir, cb) { + cb(null, !!dirs[path.resolve(dir)]); + }, + readFile: function (file, cb) { + cb(null, files[path.resolve(file)]); + }, + realpath: function (file, cb) { + cb(null, file); + } + }; + } + + resolve('./baz', opts('/foo/bar'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/bar/baz.js')); + t.equal(pkg, undefined); + }); + + resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/bar/baz.js')); + t.equal(pkg, undefined); + }); + + resolve('baz', opts('/foo/bar'), function (err, res) { + t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); + + resolve('../baz', opts('/foo/bar'), function (err, res) { + t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); +}); + +test('mock from package', function (t) { + t.plan(8); + + var files = {}; + files[path.resolve('/foo/bar/baz.js')] = 'beep'; + + var dirs = {}; + dirs[path.resolve('/foo/bar')] = true; + + function opts(basedir) { + return { + basedir: path.resolve(basedir), + isFile: function (file, cb) { + cb(null, Object.prototype.hasOwnProperty.call(files, file)); + }, + isDirectory: function (dir, cb) { + cb(null, !!dirs[path.resolve(dir)]); + }, + 'package': { main: 'bar' }, + readFile: function (file, cb) { + cb(null, files[file]); + }, + realpath: function (file, cb) { + cb(null, file); + } + }; + } + + resolve('./baz', opts('/foo/bar'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/bar/baz.js')); + t.equal(pkg && pkg.main, 'bar'); + }); + + resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/bar/baz.js')); + t.equal(pkg && pkg.main, 'bar'); + }); + + resolve('baz', opts('/foo/bar'), function (err, res) { + t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); + + resolve('../baz', opts('/foo/bar'), function (err, res) { + t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); +}); + +test('mock package', function (t) { + t.plan(2); + + var files = {}; + files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep'; + files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({ + main: './baz.js' + }); + + var dirs = {}; + dirs[path.resolve('/foo')] = true; + dirs[path.resolve('/foo/node_modules')] = true; + + function opts(basedir) { + return { + basedir: path.resolve(basedir), + isFile: function (file, cb) { + cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); + }, + isDirectory: function (dir, cb) { + cb(null, !!dirs[path.resolve(dir)]); + }, + readFile: function (file, cb) { + cb(null, files[path.resolve(file)]); + }, + realpath: function (file, cb) { + cb(null, file); + } + }; + } + + resolve('bar', opts('/foo'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/node_modules/bar/baz.js')); + t.equal(pkg && pkg.main, './baz.js'); + }); +}); + +test('mock package from package', function (t) { + t.plan(2); + + var files = {}; + files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep'; + files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({ + main: './baz.js' + }); + + var dirs = {}; + dirs[path.resolve('/foo')] = true; + dirs[path.resolve('/foo/node_modules')] = true; + + function opts(basedir) { + return { + basedir: path.resolve(basedir), + isFile: function (file, cb) { + cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); + }, + isDirectory: function (dir, cb) { + cb(null, !!dirs[path.resolve(dir)]); + }, + 'package': { main: 'bar' }, + readFile: function (file, cb) { + cb(null, files[path.resolve(file)]); + }, + realpath: function (file, cb) { + cb(null, file); + } + }; + } + + resolve('bar', opts('/foo'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/node_modules/bar/baz.js')); + t.equal(pkg && pkg.main, './baz.js'); + }); +}); + +test('symlinked', function (t) { + t.plan(4); + + var files = {}; + files[path.resolve('/foo/bar/baz.js')] = 'beep'; + files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep'; + + var dirs = {}; + dirs[path.resolve('/foo/bar')] = true; + dirs[path.resolve('/foo/bar/symlinked')] = true; + + function opts(basedir) { + return { + preserveSymlinks: false, + basedir: path.resolve(basedir), + isFile: function (file, cb) { + cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); + }, + isDirectory: function (dir, cb) { + cb(null, !!dirs[path.resolve(dir)]); + }, + readFile: function (file, cb) { + cb(null, files[path.resolve(file)]); + }, + realpath: function (file, cb) { + var resolved = path.resolve(file); + + if (resolved.indexOf('symlinked') >= 0) { + cb(null, resolved); + return; + } + + var ext = path.extname(resolved); + + if (ext) { + var dir = path.dirname(resolved); + var base = path.basename(resolved); + cb(null, path.join(dir, 'symlinked', base)); + } else { + cb(null, path.join(resolved, 'symlinked')); + } + } + }; + } + + resolve('./baz', opts('/foo/bar'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/bar/symlinked/baz.js')); + t.equal(pkg, undefined); + }); + + resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) { + if (err) return t.fail(err); + t.equal(res, path.resolve('/foo/bar/symlinked/baz.js')); + t.equal(pkg, undefined); + }); +}); diff --git a/node_modules/resolve/test/mock_sync.js b/node_modules/resolve/test/mock_sync.js new file mode 100644 index 00000000..fcf81144 --- /dev/null +++ b/node_modules/resolve/test/mock_sync.js @@ -0,0 +1,141 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('mock', function (t) { + t.plan(4); + + var files = {}; + files[path.resolve('/foo/bar/baz.js')] = 'beep'; + + var dirs = {}; + dirs[path.resolve('/foo/bar')] = true; + + function opts(basedir) { + return { + basedir: path.resolve(basedir), + isFile: function (file) { + return Object.prototype.hasOwnProperty.call(files, path.resolve(file)); + }, + isDirectory: function (dir) { + return !!dirs[path.resolve(dir)]; + }, + readFileSync: function (file) { + return files[path.resolve(file)]; + }, + realpathSync: function (file) { + return file; + } + }; + } + + t.equal( + resolve.sync('./baz', opts('/foo/bar')), + path.resolve('/foo/bar/baz.js') + ); + + t.equal( + resolve.sync('./baz.js', opts('/foo/bar')), + path.resolve('/foo/bar/baz.js') + ); + + t.throws(function () { + resolve.sync('baz', opts('/foo/bar')); + }); + + t.throws(function () { + resolve.sync('../baz', opts('/foo/bar')); + }); +}); + +test('mock package', function (t) { + t.plan(1); + + var files = {}; + files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep'; + files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({ + main: './baz.js' + }); + + var dirs = {}; + dirs[path.resolve('/foo')] = true; + dirs[path.resolve('/foo/node_modules')] = true; + + function opts(basedir) { + return { + basedir: path.resolve(basedir), + isFile: function (file) { + return Object.prototype.hasOwnProperty.call(files, path.resolve(file)); + }, + isDirectory: function (dir) { + return !!dirs[path.resolve(dir)]; + }, + readFileSync: function (file) { + return files[path.resolve(file)]; + }, + realpathSync: function (file) { + return file; + } + }; + } + + t.equal( + resolve.sync('bar', opts('/foo')), + path.resolve('/foo/node_modules/bar/baz.js') + ); +}); + +test('symlinked', function (t) { + t.plan(2); + + var files = {}; + files[path.resolve('/foo/bar/baz.js')] = 'beep'; + files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep'; + + var dirs = {}; + dirs[path.resolve('/foo/bar')] = true; + dirs[path.resolve('/foo/bar/symlinked')] = true; + + function opts(basedir) { + return { + preserveSymlinks: false, + basedir: path.resolve(basedir), + isFile: function (file) { + return Object.prototype.hasOwnProperty.call(files, path.resolve(file)); + }, + isDirectory: function (dir) { + return !!dirs[path.resolve(dir)]; + }, + readFileSync: function (file) { + return files[path.resolve(file)]; + }, + realpathSync: function (file) { + var resolved = path.resolve(file); + + if (resolved.indexOf('symlinked') >= 0) { + return resolved; + } + + var ext = path.extname(resolved); + + if (ext) { + var dir = path.dirname(resolved); + var base = path.basename(resolved); + return path.join(dir, 'symlinked', base); + } else { + return path.join(resolved, 'symlinked'); + } + } + }; + } + + t.equal( + resolve.sync('./baz', opts('/foo/bar')), + path.resolve('/foo/bar/symlinked/baz.js') + ); + + t.equal( + resolve.sync('./baz.js', opts('/foo/bar')), + path.resolve('/foo/bar/symlinked/baz.js') + ); +}); diff --git a/node_modules/resolve/test/module_dir.js b/node_modules/resolve/test/module_dir.js new file mode 100644 index 00000000..b50e5bb1 --- /dev/null +++ b/node_modules/resolve/test/module_dir.js @@ -0,0 +1,56 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('moduleDirectory strings', function (t) { + t.plan(4); + var dir = path.join(__dirname, 'module_dir'); + var xopts = { + basedir: dir, + moduleDirectory: 'xmodules' + }; + resolve('aaa', xopts, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(dir, '/xmodules/aaa/index.js')); + }); + + var yopts = { + basedir: dir, + moduleDirectory: 'ymodules' + }; + resolve('aaa', yopts, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(dir, '/ymodules/aaa/index.js')); + }); +}); + +test('moduleDirectory array', function (t) { + t.plan(6); + var dir = path.join(__dirname, 'module_dir'); + var aopts = { + basedir: dir, + moduleDirectory: ['xmodules', 'ymodules', 'zmodules'] + }; + resolve('aaa', aopts, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(dir, '/xmodules/aaa/index.js')); + }); + + var bopts = { + basedir: dir, + moduleDirectory: ['zmodules', 'ymodules', 'xmodules'] + }; + resolve('aaa', bopts, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(dir, '/ymodules/aaa/index.js')); + }); + + var copts = { + basedir: dir, + moduleDirectory: ['xmodules', 'ymodules', 'zmodules'] + }; + resolve('bbb', copts, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(dir, '/zmodules/bbb/main.js')); + }); +}); diff --git a/node_modules/resolve/test/module_dir/xmodules/aaa/index.js b/node_modules/resolve/test/module_dir/xmodules/aaa/index.js new file mode 100644 index 00000000..dd7cf7b2 --- /dev/null +++ b/node_modules/resolve/test/module_dir/xmodules/aaa/index.js @@ -0,0 +1 @@ +module.exports = function (x) { return x * 100; }; diff --git a/node_modules/resolve/test/module_dir/ymodules/aaa/index.js b/node_modules/resolve/test/module_dir/ymodules/aaa/index.js new file mode 100644 index 00000000..ef2d4d4b --- /dev/null +++ b/node_modules/resolve/test/module_dir/ymodules/aaa/index.js @@ -0,0 +1 @@ +module.exports = function (x) { return x + 100; }; diff --git a/node_modules/resolve/test/module_dir/zmodules/bbb/main.js b/node_modules/resolve/test/module_dir/zmodules/bbb/main.js new file mode 100644 index 00000000..e8ba6299 --- /dev/null +++ b/node_modules/resolve/test/module_dir/zmodules/bbb/main.js @@ -0,0 +1 @@ +module.exports = function (n) { return n * 111; }; diff --git a/node_modules/resolve/test/module_dir/zmodules/bbb/package.json b/node_modules/resolve/test/module_dir/zmodules/bbb/package.json new file mode 100644 index 00000000..c13b8cf6 --- /dev/null +++ b/node_modules/resolve/test/module_dir/zmodules/bbb/package.json @@ -0,0 +1,3 @@ +{ + "main": "main.js" +} diff --git a/node_modules/resolve/test/node-modules-paths.js b/node_modules/resolve/test/node-modules-paths.js new file mode 100644 index 00000000..675441db --- /dev/null +++ b/node_modules/resolve/test/node-modules-paths.js @@ -0,0 +1,143 @@ +var test = require('tape'); +var path = require('path'); +var parse = path.parse || require('path-parse'); +var keys = require('object-keys'); + +var nodeModulesPaths = require('../lib/node-modules-paths'); + +var verifyDirs = function verifyDirs(t, start, dirs, moduleDirectories, paths) { + var moduleDirs = [].concat(moduleDirectories || 'node_modules'); + if (paths) { + for (var k = 0; k < paths.length; ++k) { + moduleDirs.push(path.basename(paths[k])); + } + } + + var foundModuleDirs = {}; + var uniqueDirs = {}; + var parsedDirs = {}; + for (var i = 0; i < dirs.length; ++i) { + var parsed = parse(dirs[i]); + if (!foundModuleDirs[parsed.base]) { foundModuleDirs[parsed.base] = 0; } + foundModuleDirs[parsed.base] += 1; + parsedDirs[parsed.dir] = true; + uniqueDirs[dirs[i]] = true; + } + t.equal(keys(parsedDirs).length >= start.split(path.sep).length, true, 'there are >= dirs than "start" has'); + var foundModuleDirNames = keys(foundModuleDirs); + t.deepEqual(foundModuleDirNames, moduleDirs, 'all desired module dirs were found'); + t.equal(keys(uniqueDirs).length, dirs.length, 'all dirs provided were unique'); + + var counts = {}; + for (var j = 0; j < foundModuleDirNames.length; ++j) { + counts[foundModuleDirs[j]] = true; + } + t.equal(keys(counts).length, 1, 'all found module directories had the same count'); +}; + +test('node-modules-paths', function (t) { + t.test('no options', function (t) { + var start = path.join(__dirname, 'resolver'); + var dirs = nodeModulesPaths(start); + + verifyDirs(t, start, dirs); + + t.end(); + }); + + t.test('empty options', function (t) { + var start = path.join(__dirname, 'resolver'); + var dirs = nodeModulesPaths(start, {}); + + verifyDirs(t, start, dirs); + + t.end(); + }); + + t.test('with paths=array option', function (t) { + var start = path.join(__dirname, 'resolver'); + var paths = ['a', 'b']; + var dirs = nodeModulesPaths(start, { paths: paths }); + + verifyDirs(t, start, dirs, null, paths); + + t.end(); + }); + + t.test('with paths=function option', function (t) { + var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) { + return getNodeModulesDirs().concat(path.join(absoluteStart, 'not node modules', request)); + }; + + var start = path.join(__dirname, 'resolver'); + var dirs = nodeModulesPaths(start, { paths: paths }, 'pkg'); + + verifyDirs(t, start, dirs, null, [path.join(start, 'not node modules', 'pkg')]); + + t.end(); + }); + + t.test('with paths=function skipping node modules resolution', function (t) { + var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) { + return []; + }; + var start = path.join(__dirname, 'resolver'); + var dirs = nodeModulesPaths(start, { paths: paths }); + t.deepEqual(dirs, [], 'no node_modules was computed'); + t.end(); + }); + + t.test('with moduleDirectory option', function (t) { + var start = path.join(__dirname, 'resolver'); + var moduleDirectory = 'not node modules'; + var dirs = nodeModulesPaths(start, { moduleDirectory: moduleDirectory }); + + verifyDirs(t, start, dirs, moduleDirectory); + + t.end(); + }); + + t.test('with 1 moduleDirectory and paths options', function (t) { + var start = path.join(__dirname, 'resolver'); + var paths = ['a', 'b']; + var moduleDirectory = 'not node modules'; + var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectory }); + + verifyDirs(t, start, dirs, moduleDirectory, paths); + + t.end(); + }); + + t.test('with 1+ moduleDirectory and paths options', function (t) { + var start = path.join(__dirname, 'resolver'); + var paths = ['a', 'b']; + var moduleDirectories = ['not node modules', 'other modules']; + var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories }); + + verifyDirs(t, start, dirs, moduleDirectories, paths); + + t.end(); + }); + + t.test('combine paths correctly on Windows', function (t) { + var start = 'C:\\Users\\username\\myProject\\src'; + var paths = []; + var moduleDirectories = ['node_modules', start]; + var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories }); + + t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir'); + + t.end(); + }); + + t.test('combine paths correctly on non-Windows', { skip: process.platform === 'win32' }, function (t) { + var start = '/Users/username/git/myProject/src'; + var paths = []; + var moduleDirectories = ['node_modules', '/Users/username/git/myProject/src']; + var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories }); + + t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir'); + + t.end(); + }); +}); diff --git a/node_modules/resolve/test/node_path.js b/node_modules/resolve/test/node_path.js new file mode 100644 index 00000000..d06aa4ea --- /dev/null +++ b/node_modules/resolve/test/node_path.js @@ -0,0 +1,70 @@ +var fs = require('fs'); +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('$NODE_PATH', function (t) { + t.plan(8); + + var isDir = function (dir, cb) { + if (dir === '/node_path' || dir === 'node_path/x') { + return cb(null, true); + } + fs.stat(dir, function (err, stat) { + if (!err) { + return cb(null, stat.isDirectory()); + } + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); + return cb(err); + }); + }; + + resolve('aaa', { + paths: [ + path.join(__dirname, '/node_path/x'), + path.join(__dirname, '/node_path/y') + ], + basedir: __dirname, + isDirectory: isDir + }, function (err, res) { + t.error(err); + t.equal(res, path.join(__dirname, '/node_path/x/aaa/index.js'), 'aaa resolves'); + }); + + resolve('bbb', { + paths: [ + path.join(__dirname, '/node_path/x'), + path.join(__dirname, '/node_path/y') + ], + basedir: __dirname, + isDirectory: isDir + }, function (err, res) { + t.error(err); + t.equal(res, path.join(__dirname, '/node_path/y/bbb/index.js'), 'bbb resolves'); + }); + + resolve('ccc', { + paths: [ + path.join(__dirname, '/node_path/x'), + path.join(__dirname, '/node_path/y') + ], + basedir: __dirname, + isDirectory: isDir + }, function (err, res) { + t.error(err); + t.equal(res, path.join(__dirname, '/node_path/x/ccc/index.js'), 'ccc resolves'); + }); + + // ensure that relative paths still resolve against the regular `node_modules` correctly + resolve('tap', { + paths: [ + 'node_path' + ], + basedir: path.join(__dirname, 'node_path/x'), + isDirectory: isDir + }, function (err, res) { + var root = require('tap/package.json').main; + t.error(err); + t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root), 'tap resolves'); + }); +}); diff --git a/node_modules/resolve/test/node_path/x/aaa/index.js b/node_modules/resolve/test/node_path/x/aaa/index.js new file mode 100644 index 00000000..ad70d0bb --- /dev/null +++ b/node_modules/resolve/test/node_path/x/aaa/index.js @@ -0,0 +1 @@ +module.exports = 'A'; diff --git a/node_modules/resolve/test/node_path/x/ccc/index.js b/node_modules/resolve/test/node_path/x/ccc/index.js new file mode 100644 index 00000000..a64132e4 --- /dev/null +++ b/node_modules/resolve/test/node_path/x/ccc/index.js @@ -0,0 +1 @@ +module.exports = 'C'; diff --git a/node_modules/resolve/test/node_path/y/bbb/index.js b/node_modules/resolve/test/node_path/y/bbb/index.js new file mode 100644 index 00000000..4d0f32e2 --- /dev/null +++ b/node_modules/resolve/test/node_path/y/bbb/index.js @@ -0,0 +1 @@ +module.exports = 'B'; diff --git a/node_modules/resolve/test/node_path/y/ccc/index.js b/node_modules/resolve/test/node_path/y/ccc/index.js new file mode 100644 index 00000000..793315e8 --- /dev/null +++ b/node_modules/resolve/test/node_path/y/ccc/index.js @@ -0,0 +1 @@ +module.exports = 'CY'; diff --git a/node_modules/resolve/test/nonstring.js b/node_modules/resolve/test/nonstring.js new file mode 100644 index 00000000..ef63c40f --- /dev/null +++ b/node_modules/resolve/test/nonstring.js @@ -0,0 +1,9 @@ +var test = require('tape'); +var resolve = require('../'); + +test('nonstring', function (t) { + t.plan(1); + resolve(555, function (err, res, pkg) { + t.ok(err); + }); +}); diff --git a/node_modules/resolve/test/pathfilter.js b/node_modules/resolve/test/pathfilter.js new file mode 100644 index 00000000..16519aea --- /dev/null +++ b/node_modules/resolve/test/pathfilter.js @@ -0,0 +1,75 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +var resolverDir = path.join(__dirname, '/pathfilter/deep_ref'); + +var pathFilterFactory = function (t) { + return function (pkg, x, remainder) { + t.equal(pkg.version, '1.2.3'); + t.equal(x, path.join(resolverDir, 'node_modules/deep/ref')); + t.equal(remainder, 'ref'); + return 'alt'; + }; +}; + +test('#62: deep module references and the pathFilter', function (t) { + t.test('deep/ref.js', function (st) { + st.plan(3); + + resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) { + if (err) st.fail(err); + + st.equal(pkg.version, '1.2.3'); + st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); + }); + + var res = resolve.sync('deep/ref', { basedir: resolverDir }); + st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); + }); + + t.test('deep/deeper/ref', function (st) { + st.plan(4); + + resolve( + 'deep/deeper/ref', + { basedir: resolverDir }, + function (err, res, pkg) { + if (err) t.fail(err); + st.notEqual(pkg, undefined); + st.equal(pkg.version, '1.2.3'); + st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); + } + ); + + var res = resolve.sync( + 'deep/deeper/ref', + { basedir: resolverDir } + ); + st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); + }); + + t.test('deep/ref alt', function (st) { + st.plan(8); + + var pathFilter = pathFilterFactory(st); + + var res = resolve.sync( + 'deep/ref', + { basedir: resolverDir, pathFilter: pathFilter } + ); + st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); + + resolve( + 'deep/ref', + { basedir: resolverDir, pathFilter: pathFilter }, + function (err, res, pkg) { + if (err) st.fail(err); + st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); + st.end(); + } + ); + }); + + t.end(); +}); diff --git a/node_modules/resolve/test/pathfilter/deep_ref/main.js b/node_modules/resolve/test/pathfilter/deep_ref/main.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/precedence.js b/node_modules/resolve/test/precedence.js new file mode 100644 index 00000000..2febb598 --- /dev/null +++ b/node_modules/resolve/test/precedence.js @@ -0,0 +1,23 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('precedence', function (t) { + t.plan(3); + var dir = path.join(__dirname, 'precedence/aaa'); + + resolve('./', { basedir: dir }, function (err, res, pkg) { + t.ifError(err); + t.equal(res, path.join(dir, 'index.js')); + t.equal(pkg.name, 'resolve'); + }); +}); + +test('./ should not load ${dir}.js', function (t) { // eslint-disable-line no-template-curly-in-string + t.plan(1); + var dir = path.join(__dirname, 'precedence/bbb'); + + resolve('./', { basedir: dir }, function (err, res, pkg) { + t.ok(err); + }); +}); diff --git a/node_modules/resolve/test/precedence/aaa.js b/node_modules/resolve/test/precedence/aaa.js new file mode 100644 index 00000000..b83a3e7a --- /dev/null +++ b/node_modules/resolve/test/precedence/aaa.js @@ -0,0 +1 @@ +module.exports = 'wtf'; diff --git a/node_modules/resolve/test/precedence/aaa/index.js b/node_modules/resolve/test/precedence/aaa/index.js new file mode 100644 index 00000000..e0f8f6ab --- /dev/null +++ b/node_modules/resolve/test/precedence/aaa/index.js @@ -0,0 +1 @@ +module.exports = 'okok'; diff --git a/node_modules/resolve/test/precedence/aaa/main.js b/node_modules/resolve/test/precedence/aaa/main.js new file mode 100644 index 00000000..93542a96 --- /dev/null +++ b/node_modules/resolve/test/precedence/aaa/main.js @@ -0,0 +1 @@ +console.log(require('./')); diff --git a/node_modules/resolve/test/precedence/bbb.js b/node_modules/resolve/test/precedence/bbb.js new file mode 100644 index 00000000..2298f47f --- /dev/null +++ b/node_modules/resolve/test/precedence/bbb.js @@ -0,0 +1 @@ +module.exports = '>_<'; diff --git a/node_modules/resolve/test/precedence/bbb/main.js b/node_modules/resolve/test/precedence/bbb/main.js new file mode 100644 index 00000000..716b81d4 --- /dev/null +++ b/node_modules/resolve/test/precedence/bbb/main.js @@ -0,0 +1 @@ +console.log(require('./')); // should throw diff --git a/node_modules/resolve/test/resolver.js b/node_modules/resolve/test/resolver.js new file mode 100644 index 00000000..aa36ee11 --- /dev/null +++ b/node_modules/resolve/test/resolver.js @@ -0,0 +1,450 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('async foo', function (t) { + t.plan(12); + var dir = path.join(__dirname, 'resolver'); + + resolve('./foo', { basedir: dir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'foo.js')); + t.equal(pkg && pkg.name, 'resolve'); + }); + + resolve('./foo.js', { basedir: dir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'foo.js')); + t.equal(pkg && pkg.name, 'resolve'); + }); + + resolve('./foo', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'foo.js')); + t.equal(pkg && pkg.main, 'resolver'); + }); + + resolve('./foo.js', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'foo.js')); + t.equal(pkg.main, 'resolver'); + }); + + resolve('./foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'foo.js')); + }); + + resolve('foo', { basedir: dir }, function (err) { + t.equal(err.message, "Cannot find module 'foo' from '" + path.resolve(dir) + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); + + // Test that filename is reported as the "from" value when passed. + resolve('foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err) { + t.equal(err.message, "Cannot find module 'foo' from '" + path.join(dir, 'baz.js') + "'"); + }); +}); + +test('bar', function (t) { + t.plan(6); + var dir = path.join(__dirname, 'resolver'); + + resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js')); + t.equal(pkg, undefined); + }); + + resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js')); + t.equal(pkg, undefined); + }); + + resolve('foo', { basedir: dir + '/bar', 'package': { main: 'bar' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js')); + t.equal(pkg.main, 'bar'); + }); +}); + +test('baz', function (t) { + t.plan(4); + var dir = path.join(__dirname, 'resolver'); + + resolve('./baz', { basedir: dir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'baz/quux.js')); + t.equal(pkg.main, 'quux.js'); + }); + + resolve('./baz', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'baz/quux.js')); + t.equal(pkg.main, 'quux.js'); + }); +}); + +test('biz', function (t) { + t.plan(24); + var dir = path.join(__dirname, 'resolver/biz/node_modules'); + + resolve('./grux', { basedir: dir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'grux/index.js')); + t.equal(pkg, undefined); + }); + + resolve('./grux', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'grux/index.js')); + t.equal(pkg.main, 'biz'); + }); + + resolve('./garply', { basedir: dir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'garply/lib/index.js')); + t.equal(pkg.main, './lib'); + }); + + resolve('./garply', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'garply/lib/index.js')); + t.equal(pkg.main, './lib'); + }); + + resolve('tiv', { basedir: dir + '/grux' }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'tiv/index.js')); + t.equal(pkg, undefined); + }); + + resolve('tiv', { basedir: dir + '/grux', 'package': { main: 'grux' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'tiv/index.js')); + t.equal(pkg.main, 'grux'); + }); + + resolve('tiv', { basedir: dir + '/garply' }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'tiv/index.js')); + t.equal(pkg, undefined); + }); + + resolve('tiv', { basedir: dir + '/garply', 'package': { main: './lib' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'tiv/index.js')); + t.equal(pkg.main, './lib'); + }); + + resolve('grux', { basedir: dir + '/tiv' }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'grux/index.js')); + t.equal(pkg, undefined); + }); + + resolve('grux', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'grux/index.js')); + t.equal(pkg.main, 'tiv'); + }); + + resolve('garply', { basedir: dir + '/tiv' }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'garply/lib/index.js')); + t.equal(pkg.main, './lib'); + }); + + resolve('garply', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'garply/lib/index.js')); + t.equal(pkg.main, './lib'); + }); +}); + +test('quux', function (t) { + t.plan(2); + var dir = path.join(__dirname, 'resolver/quux'); + + resolve('./foo', { basedir: dir, 'package': { main: 'quux' } }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'foo/index.js')); + t.equal(pkg.main, 'quux'); + }); +}); + +test('normalize', function (t) { + t.plan(2); + var dir = path.join(__dirname, 'resolver/biz/node_modules/grux'); + + resolve('../grux', { basedir: dir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'index.js')); + t.equal(pkg, undefined); + }); +}); + +test('cup', function (t) { + t.plan(5); + var dir = path.join(__dirname, 'resolver'); + + resolve('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'cup.coffee')); + }); + + resolve('./cup.coffee', { basedir: dir }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'cup.coffee')); + }); + + resolve('./cup', { basedir: dir, extensions: ['.js'] }, function (err, res) { + t.equal(err.message, "Cannot find module './cup' from '" + path.resolve(dir) + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); + + // Test that filename is reported as the "from" value when passed. + resolve('./cup', { basedir: dir, extensions: ['.js'], filename: path.join(dir, 'cupboard.js') }, function (err, res) { + t.equal(err.message, "Cannot find module './cup' from '" + path.join(dir, 'cupboard.js') + "'"); + }); +}); + +test('mug', function (t) { + t.plan(3); + var dir = path.join(__dirname, 'resolver'); + + resolve('./mug', { basedir: dir }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'mug.js')); + }); + + resolve('./mug', { basedir: dir, extensions: ['.coffee', '.js'] }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(dir, '/mug.coffee')); + }); + + resolve('./mug', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) { + t.equal(res, path.join(dir, '/mug.js')); + }); +}); + +test('other path', function (t) { + t.plan(6); + var resolverDir = path.join(__dirname, 'resolver'); + var dir = path.join(resolverDir, 'bar'); + var otherDir = path.join(resolverDir, 'other_path'); + + resolve('root', { basedir: dir, paths: [otherDir] }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(resolverDir, 'other_path/root.js')); + }); + + resolve('lib/other-lib', { basedir: dir, paths: [otherDir] }, function (err, res) { + if (err) t.fail(err); + t.equal(res, path.join(resolverDir, 'other_path/lib/other-lib.js')); + }); + + resolve('root', { basedir: dir }, function (err, res) { + t.equal(err.message, "Cannot find module 'root' from '" + path.resolve(dir) + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); + + resolve('zzz', { basedir: dir, paths: [otherDir] }, function (err, res) { + t.equal(err.message, "Cannot find module 'zzz' from '" + path.resolve(dir) + "'"); + t.equal(err.code, 'MODULE_NOT_FOUND'); + }); +}); + +test('path iterator', function (t) { + t.plan(2); + + var resolverDir = path.join(__dirname, 'resolver'); + + var exactIterator = function (x, start, getPackageCandidates, opts) { + return [path.join(resolverDir, x)]; + }; + + resolve('baz', { packageIterator: exactIterator }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(resolverDir, 'baz/quux.js')); + t.equal(pkg && pkg.name, 'baz'); + }); +}); + +test('incorrect main', function (t) { + t.plan(1); + + var resolverDir = path.join(__dirname, 'resolver'); + var dir = path.join(resolverDir, 'incorrect_main'); + + resolve('./incorrect_main', { basedir: resolverDir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'index.js')); + }); +}); + +test('without basedir', function (t) { + t.plan(1); + + var dir = path.join(__dirname, 'resolver/without_basedir'); + var tester = require(path.join(dir, 'main.js')); + + tester(t, function (err, res, pkg) { + if (err) { + t.fail(err); + } else { + t.equal(res, path.join(dir, 'node_modules/mymodule.js')); + } + }); +}); + +test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) { + t.plan(2); + + var dir = path.join(__dirname, 'resolver'); + + resolve('./foo', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'same_names/foo.js')); + }); + + resolve('./foo/', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'same_names/foo/index.js')); + }); +}); + +test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) { + t.plan(2); + + var dir = path.join(__dirname, 'resolver'); + + resolve('./', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'same_names/foo/index.js')); + }); + + resolve('.', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'same_names/foo/index.js')); + }); +}); + +test('async: #121 - treating an existing file as a dir when no basedir', function (t) { + var testFile = path.basename(__filename); + + t.test('sanity check', function (st) { + st.plan(1); + resolve('./' + testFile, function (err, res, pkg) { + if (err) t.fail(err); + st.equal(res, __filename, 'sanity check'); + }); + }); + + t.test('with a fake directory', function (st) { + st.plan(4); + + resolve('./' + testFile + '/blah', function (err, res, pkg) { + st.ok(err, 'there is an error'); + st.notOk(res, 'no result'); + + st.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); + st.equal( + err && err.message, + 'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'', + 'can not find nonexistent module' + ); + st.end(); + }); + }); + + t.end(); +}); + +test('async dot main', function (t) { + var start = new Date(); + t.plan(3); + resolve('./resolver/dot_main', function (err, ret) { + t.notOk(err); + t.equal(ret, path.join(__dirname, 'resolver/dot_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); + }); +}); + +test('async dot slash main', function (t) { + var start = new Date(); + t.plan(3); + resolve('./resolver/dot_slash_main', function (err, ret) { + t.notOk(err); + t.equal(ret, path.join(__dirname, 'resolver/dot_slash_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); + }); +}); + +test('not a directory', function (t) { + t.plan(6); + var path = './foo'; + resolve(path, { basedir: __filename }, function (err, res, pkg) { + t.ok(err, 'a non-directory errors'); + t.equal(arguments.length, 1); + t.equal(res, undefined); + t.equal(pkg, undefined); + + t.equal(err && err.message, 'Cannot find module \'' + path + '\' from \'' + __filename + '\''); + t.equal(err && err.code, 'MODULE_NOT_FOUND'); + }); +}); + +test('non-string "main" field in package.json', function (t) { + t.plan(5); + + var dir = path.join(__dirname, 'resolver'); + resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) { + t.ok(err, 'errors on non-string main'); + t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.code, 'INVALID_PACKAGE_MAIN'); + t.equal(res, undefined, 'res is undefined'); + t.equal(pkg, undefined, 'pkg is undefined'); + }); +}); + +test('non-string "main" field in package.json', function (t) { + t.plan(5); + + var dir = path.join(__dirname, 'resolver'); + resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) { + t.ok(err, 'errors on non-string main'); + t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.code, 'INVALID_PACKAGE_MAIN'); + t.equal(res, undefined, 'res is undefined'); + t.equal(pkg, undefined, 'pkg is undefined'); + }); +}); + +test('browser field in package.json', function (t) { + t.plan(3); + + var dir = path.join(__dirname, 'resolver'); + resolve( + './browser_field', + { + basedir: dir, + packageFilter: function packageFilter(pkg) { + if (pkg.browser) { + pkg.main = pkg.browser; // eslint-disable-line no-param-reassign + delete pkg.browser; // eslint-disable-line no-param-reassign + } + return pkg; + } + }, + function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'browser_field', 'b.js')); + t.equal(pkg && pkg.main, 'b'); + t.equal(pkg && pkg.browser, undefined); + } + ); +}); diff --git a/node_modules/resolve/test/resolver/baz/doom.js b/node_modules/resolve/test/resolver/baz/doom.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/baz/package.json b/node_modules/resolve/test/resolver/baz/package.json new file mode 100644 index 00000000..2f77720b --- /dev/null +++ b/node_modules/resolve/test/resolver/baz/package.json @@ -0,0 +1,4 @@ +{ + "name": "baz", + "main": "quux.js" +} diff --git a/node_modules/resolve/test/resolver/baz/quux.js b/node_modules/resolve/test/resolver/baz/quux.js new file mode 100644 index 00000000..bd816eab --- /dev/null +++ b/node_modules/resolve/test/resolver/baz/quux.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/browser_field/a.js b/node_modules/resolve/test/resolver/browser_field/a.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/browser_field/b.js b/node_modules/resolve/test/resolver/browser_field/b.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/browser_field/package.json b/node_modules/resolve/test/resolver/browser_field/package.json new file mode 100644 index 00000000..bf406f08 --- /dev/null +++ b/node_modules/resolve/test/resolver/browser_field/package.json @@ -0,0 +1,5 @@ +{ + "name": "browser_field", + "main": "a", + "browser": "b" +} diff --git a/node_modules/resolve/test/resolver/cup.coffee b/node_modules/resolve/test/resolver/cup.coffee new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/node_modules/resolve/test/resolver/cup.coffee @@ -0,0 +1 @@ + diff --git a/node_modules/resolve/test/resolver/dot_main/index.js b/node_modules/resolve/test/resolver/dot_main/index.js new file mode 100644 index 00000000..bd816eab --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_main/index.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/dot_main/package.json b/node_modules/resolve/test/resolver/dot_main/package.json new file mode 100644 index 00000000..d7f4fc80 --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_main/package.json @@ -0,0 +1,3 @@ +{ + "main": "." +} diff --git a/node_modules/resolve/test/resolver/dot_slash_main/index.js b/node_modules/resolve/test/resolver/dot_slash_main/index.js new file mode 100644 index 00000000..bd816eab --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_slash_main/index.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/dot_slash_main/package.json b/node_modules/resolve/test/resolver/dot_slash_main/package.json new file mode 100644 index 00000000..f51287b9 --- /dev/null +++ b/node_modules/resolve/test/resolver/dot_slash_main/package.json @@ -0,0 +1,3 @@ +{ + "main": "./" +} diff --git a/node_modules/resolve/test/resolver/foo.js b/node_modules/resolve/test/resolver/foo.js new file mode 100644 index 00000000..bd816eab --- /dev/null +++ b/node_modules/resolve/test/resolver/foo.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/incorrect_main/index.js b/node_modules/resolve/test/resolver/incorrect_main/index.js new file mode 100644 index 00000000..bc1fb0a6 --- /dev/null +++ b/node_modules/resolve/test/resolver/incorrect_main/index.js @@ -0,0 +1,2 @@ +// this is the actual main file 'index.js', not 'wrong.js' like the package.json would indicate +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/incorrect_main/package.json b/node_modules/resolve/test/resolver/incorrect_main/package.json new file mode 100644 index 00000000..b7188041 --- /dev/null +++ b/node_modules/resolve/test/resolver/incorrect_main/package.json @@ -0,0 +1,3 @@ +{ + "main": "wrong.js" +} diff --git a/node_modules/resolve/test/resolver/invalid_main/package.json b/node_modules/resolve/test/resolver/invalid_main/package.json new file mode 100644 index 00000000..0cf82799 --- /dev/null +++ b/node_modules/resolve/test/resolver/invalid_main/package.json @@ -0,0 +1,7 @@ +{ + "name": "invalid main", + "main": [ + "why is this a thing", + "srsly omg wtf" + ] +} diff --git a/node_modules/resolve/test/resolver/mug.coffee b/node_modules/resolve/test/resolver/mug.coffee new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/mug.js b/node_modules/resolve/test/resolver/mug.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/multirepo/lerna.json b/node_modules/resolve/test/resolver/multirepo/lerna.json new file mode 100644 index 00000000..d6707ca0 --- /dev/null +++ b/node_modules/resolve/test/resolver/multirepo/lerna.json @@ -0,0 +1,6 @@ +{ + "packages": [ + "packages/*" + ], + "version": "0.0.0" +} diff --git a/node_modules/resolve/test/resolver/multirepo/package.json b/node_modules/resolve/test/resolver/multirepo/package.json new file mode 100644 index 00000000..8508f9d2 --- /dev/null +++ b/node_modules/resolve/test/resolver/multirepo/package.json @@ -0,0 +1,20 @@ +{ + "name": "monorepo-symlink-test", + "private": true, + "version": "0.0.0", + "description": "", + "main": "index.js", + "scripts": { + "postinstall": "lerna bootstrap", + "test": "node packages/package-a" + }, + "author": "", + "license": "MIT", + "dependencies": { + "jquery": "^3.3.1", + "resolve": "../../../" + }, + "devDependencies": { + "lerna": "^3.4.3" + } +} diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js b/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js new file mode 100644 index 00000000..8875a32d --- /dev/null +++ b/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js @@ -0,0 +1,35 @@ +'use strict'; + +var assert = require('assert'); +var path = require('path'); +var resolve = require('resolve'); + +var basedir = __dirname + '/node_modules/@my-scope/package-b'; + +var expected = path.join(__dirname, '../../node_modules/jquery/dist/jquery.js'); + +/* + * preserveSymlinks === false + * will search NPM package from + * - packages/package-b/node_modules + * - packages/node_modules + * - node_modules + */ +assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: false }), expected); +assert.equal(resolve.sync('../../node_modules/jquery', { basedir: basedir, preserveSymlinks: false }), expected); + +/* + * preserveSymlinks === true + * will search NPM package from + * - packages/package-a/node_modules/@my-scope/packages/package-b/node_modules + * - packages/package-a/node_modules/@my-scope/packages/node_modules + * - packages/package-a/node_modules/@my-scope/node_modules + * - packages/package-a/node_modules/node_modules + * - packages/package-a/node_modules + * - packages/node_modules + * - node_modules + */ +assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: true }), expected); +assert.equal(resolve.sync('../../../../../node_modules/jquery', { basedir: basedir, preserveSymlinks: true }), expected); + +console.log(' * all monorepo paths successfully resolved through symlinks'); diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json b/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json new file mode 100644 index 00000000..204de51e --- /dev/null +++ b/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json @@ -0,0 +1,14 @@ +{ + "name": "@my-scope/package-a", + "version": "0.0.0", + "private": true, + "description": "", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "dependencies": { + "@my-scope/package-b": "^0.0.0" + } +} diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js b/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json b/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json new file mode 100644 index 00000000..f57c3b5f --- /dev/null +++ b/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json @@ -0,0 +1,14 @@ +{ + "name": "@my-scope/package-b", + "private": true, + "version": "0.0.0", + "description": "", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "echo \"Error: run tests from root\" && exit 1" + }, + "dependencies": { + "@my-scope/package-a": "^0.0.0" + } +} diff --git a/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js b/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js new file mode 100644 index 00000000..9b4846a8 --- /dev/null +++ b/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js @@ -0,0 +1,26 @@ +var a = require.resolve('buffer/').replace(process.cwd(), '$CWD'); +var b; +var c; + +var test = function test() { + console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false')); + console.log(b, ': preserveSymlinks true'); + console.log(c, ': preserveSymlinks false'); + + if (a !== b && a !== c) { + throw 'async: no match'; + } + console.log('async: success! a matched either b or c\n'); +}; + +require('resolve')('buffer/', { preserveSymlinks: true }, function (err, result) { + if (err) { throw err; } + b = result.replace(process.cwd(), '$CWD'); + if (b && c) { test(); } +}); +require('resolve')('buffer/', { preserveSymlinks: false }, function (err, result) { + if (err) { throw err; } + c = result.replace(process.cwd(), '$CWD'); + if (b && c) { test(); } +}); + diff --git a/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json b/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json new file mode 100644 index 00000000..acfe9e95 --- /dev/null +++ b/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json @@ -0,0 +1,15 @@ +{ + "name": "mylib", + "version": "0.0.0", + "description": "", + "private": true, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "buffer": "*" + } +} diff --git a/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js b/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js new file mode 100644 index 00000000..3283efc2 --- /dev/null +++ b/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js @@ -0,0 +1,12 @@ +var a = require.resolve('buffer/').replace(process.cwd(), '$CWD'); +var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD'); +var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD'); + +console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false')); +console.log(b, ': preserveSymlinks true'); +console.log(c, ': preserveSymlinks false'); + +if (a !== b && a !== c) { + throw 'sync: no match'; +} +console.log('sync: success! a matched either b or c\n'); diff --git a/node_modules/resolve/test/resolver/other_path/lib/other-lib.js b/node_modules/resolve/test/resolver/other_path/lib/other-lib.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/other_path/root.js b/node_modules/resolve/test/resolver/other_path/root.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/quux/foo/index.js b/node_modules/resolve/test/resolver/quux/foo/index.js new file mode 100644 index 00000000..bd816eab --- /dev/null +++ b/node_modules/resolve/test/resolver/quux/foo/index.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/same_names/foo.js b/node_modules/resolve/test/resolver/same_names/foo.js new file mode 100644 index 00000000..888cae37 --- /dev/null +++ b/node_modules/resolve/test/resolver/same_names/foo.js @@ -0,0 +1 @@ +module.exports = 42; diff --git a/node_modules/resolve/test/resolver/same_names/foo/index.js b/node_modules/resolve/test/resolver/same_names/foo/index.js new file mode 100644 index 00000000..bd816eab --- /dev/null +++ b/node_modules/resolve/test/resolver/same_names/foo/index.js @@ -0,0 +1 @@ +module.exports = 1; diff --git a/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js b/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep b/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/resolver/symlinked/package/bar.js b/node_modules/resolve/test/resolver/symlinked/package/bar.js new file mode 100644 index 00000000..cb1c2c01 --- /dev/null +++ b/node_modules/resolve/test/resolver/symlinked/package/bar.js @@ -0,0 +1 @@ +module.exports = 'bar'; diff --git a/node_modules/resolve/test/resolver/symlinked/package/package.json b/node_modules/resolve/test/resolver/symlinked/package/package.json new file mode 100644 index 00000000..8e1b5859 --- /dev/null +++ b/node_modules/resolve/test/resolver/symlinked/package/package.json @@ -0,0 +1,3 @@ +{ + "main": "bar.js" +} \ No newline at end of file diff --git a/node_modules/resolve/test/resolver/without_basedir/main.js b/node_modules/resolve/test/resolver/without_basedir/main.js new file mode 100644 index 00000000..5b31975b --- /dev/null +++ b/node_modules/resolve/test/resolver/without_basedir/main.js @@ -0,0 +1,5 @@ +var resolve = require('../../../'); + +module.exports = function (t, cb) { + resolve('mymodule', null, cb); +}; diff --git a/node_modules/resolve/test/resolver_sync.js b/node_modules/resolve/test/resolver_sync.js new file mode 100644 index 00000000..3082c96e --- /dev/null +++ b/node_modules/resolve/test/resolver_sync.js @@ -0,0 +1,358 @@ +var path = require('path'); +var test = require('tape'); +var resolve = require('../'); + +test('foo', function (t) { + var dir = path.join(__dirname, 'resolver'); + + t.equal( + resolve.sync('./foo', { basedir: dir }), + path.join(dir, 'foo.js') + ); + + t.equal( + resolve.sync('./foo.js', { basedir: dir }), + path.join(dir, 'foo.js') + ); + + t.equal( + resolve.sync('./foo.js', { basedir: dir, filename: path.join(dir, 'bar.js') }), + path.join(dir, 'foo.js') + ); + + t.throws(function () { + resolve.sync('foo', { basedir: dir }); + }); + + // Test that filename is reported as the "from" value when passed. + t.throws( + function () { + resolve.sync('foo', { basedir: dir, filename: path.join(dir, 'bar.js') }); + }, + { + name: 'Error', + message: "Cannot find module 'foo' from '" + path.join(dir, 'bar.js') + "'" + } + ); + + t.end(); +}); + +test('bar', function (t) { + var dir = path.join(__dirname, 'resolver'); + + t.equal( + resolve.sync('foo', { basedir: path.join(dir, 'bar') }), + path.join(dir, 'bar/node_modules/foo/index.js') + ); + t.end(); +}); + +test('baz', function (t) { + var dir = path.join(__dirname, 'resolver'); + + t.equal( + resolve.sync('./baz', { basedir: dir }), + path.join(dir, 'baz/quux.js') + ); + t.end(); +}); + +test('biz', function (t) { + var dir = path.join(__dirname, 'resolver/biz/node_modules'); + t.equal( + resolve.sync('./grux', { basedir: dir }), + path.join(dir, 'grux/index.js') + ); + + t.equal( + resolve.sync('tiv', { basedir: path.join(dir, 'grux') }), + path.join(dir, 'tiv/index.js') + ); + + t.equal( + resolve.sync('grux', { basedir: path.join(dir, 'tiv') }), + path.join(dir, 'grux/index.js') + ); + t.end(); +}); + +test('normalize', function (t) { + var dir = path.join(__dirname, 'resolver/biz/node_modules/grux'); + t.equal( + resolve.sync('../grux', { basedir: dir }), + path.join(dir, 'index.js') + ); + t.end(); +}); + +test('cup', function (t) { + var dir = path.join(__dirname, 'resolver'); + t.equal( + resolve.sync('./cup', { + basedir: dir, + extensions: ['.js', '.coffee'] + }), + path.join(dir, 'cup.coffee') + ); + + t.equal( + resolve.sync('./cup.coffee', { basedir: dir }), + path.join(dir, 'cup.coffee') + ); + + t.throws(function () { + resolve.sync('./cup', { + basedir: dir, + extensions: ['.js'] + }); + }); + + t.end(); +}); + +test('mug', function (t) { + var dir = path.join(__dirname, 'resolver'); + t.equal( + resolve.sync('./mug', { basedir: dir }), + path.join(dir, 'mug.js') + ); + + t.equal( + resolve.sync('./mug', { + basedir: dir, + extensions: ['.coffee', '.js'] + }), + path.join(dir, 'mug.coffee') + ); + + t.equal( + resolve.sync('./mug', { + basedir: dir, + extensions: ['.js', '.coffee'] + }), + path.join(dir, 'mug.js') + ); + + t.end(); +}); + +test('other path', function (t) { + var resolverDir = path.join(__dirname, 'resolver'); + var dir = path.join(resolverDir, 'bar'); + var otherDir = path.join(resolverDir, 'other_path'); + + t.equal( + resolve.sync('root', { + basedir: dir, + paths: [otherDir] + }), + path.join(resolverDir, 'other_path/root.js') + ); + + t.equal( + resolve.sync('lib/other-lib', { + basedir: dir, + paths: [otherDir] + }), + path.join(resolverDir, 'other_path/lib/other-lib.js') + ); + + t.throws(function () { + resolve.sync('root', { basedir: dir }); + }); + + t.throws(function () { + resolve.sync('zzz', { + basedir: dir, + paths: [otherDir] + }); + }); + + t.end(); +}); + +test('path iterator', function (t) { + var resolverDir = path.join(__dirname, 'resolver'); + + var exactIterator = function (x, start, getPackageCandidates, opts) { + return [path.join(resolverDir, x)]; + }; + + t.equal( + resolve.sync('baz', { packageIterator: exactIterator }), + path.join(resolverDir, 'baz/quux.js') + ); + + t.end(); +}); + +test('incorrect main', function (t) { + var resolverDir = path.join(__dirname, 'resolver'); + var dir = path.join(resolverDir, 'incorrect_main'); + + t.equal( + resolve.sync('./incorrect_main', { basedir: resolverDir }), + path.join(dir, 'index.js') + ); + + t.end(); +}); + +var stubStatSync = function stubStatSync(fn) { + var fs = require('fs'); + var statSync = fs.statSync; + try { + fs.statSync = function () { + throw new EvalError('Unknown Error'); + }; + return fn(); + } finally { + fs.statSync = statSync; + } +}; + +test('#79 - re-throw non ENOENT errors from stat', function (t) { + var dir = path.join(__dirname, 'resolver'); + + stubStatSync(function () { + t.throws(function () { + resolve.sync('foo', { basedir: dir }); + }, /Unknown Error/); + }); + + t.end(); +}); + +test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) { + var dir = path.join(__dirname, 'resolver'); + + t.equal( + resolve.sync('./foo', { basedir: path.join(dir, 'same_names') }), + path.join(dir, 'same_names/foo.js') + ); + t.equal( + resolve.sync('./foo/', { basedir: path.join(dir, 'same_names') }), + path.join(dir, 'same_names/foo/index.js') + ); + t.end(); +}); + +test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) { + var dir = path.join(__dirname, 'resolver'); + + t.equal( + resolve.sync('./', { basedir: path.join(dir, 'same_names/foo') }), + path.join(dir, 'same_names/foo/index.js') + ); + t.equal( + resolve.sync('.', { basedir: path.join(dir, 'same_names/foo') }), + path.join(dir, 'same_names/foo/index.js') + ); + t.end(); +}); + +test('sync: #121 - treating an existing file as a dir when no basedir', function (t) { + var testFile = path.basename(__filename); + + t.test('sanity check', function (st) { + st.equal( + resolve.sync('./' + testFile), + __filename, + 'sanity check' + ); + st.end(); + }); + + t.test('with a fake directory', function (st) { + function run() { return resolve.sync('./' + testFile + '/blah'); } + + st.throws(run, 'throws an error'); + + try { + run(); + } catch (e) { + st.equal(e.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); + st.equal( + e.message, + 'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'', + 'can not find nonexistent module' + ); + } + + st.end(); + }); + + t.end(); +}); + +test('sync dot main', function (t) { + var start = new Date(); + t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); +}); + +test('sync dot slash main', function (t) { + var start = new Date(); + t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js')); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); +}); + +test('not a directory', function (t) { + var path = './foo'; + try { + resolve.sync(path, { basedir: __filename }); + t.fail(); + } catch (err) { + t.ok(err, 'a non-directory errors'); + t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'"); + t.equal(err && err.code, 'MODULE_NOT_FOUND'); + } + t.end(); +}); + +test('non-string "main" field in package.json', function (t) { + var dir = path.join(__dirname, 'resolver'); + try { + var result = resolve.sync('./invalid_main', { basedir: dir }); + t.equal(result, undefined, 'result should not exist'); + t.fail('should not get here'); + } catch (err) { + t.ok(err, 'errors on non-string main'); + t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.code, 'INVALID_PACKAGE_MAIN'); + } + t.end(); +}); + +test('non-string "main" field in package.json', function (t) { + var dir = path.join(__dirname, 'resolver'); + try { + var result = resolve.sync('./invalid_main', { basedir: dir }); + t.equal(result, undefined, 'result should not exist'); + t.fail('should not get here'); + } catch (err) { + t.ok(err, 'errors on non-string main'); + t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.code, 'INVALID_PACKAGE_MAIN'); + } + t.end(); +}); + +test('browser field in package.json', function (t) { + var dir = path.join(__dirname, 'resolver'); + var res = resolve.sync('./browser_field', { + basedir: dir, + packageFilter: function packageFilter(pkg) { + if (pkg.browser) { + pkg.main = pkg.browser; // eslint-disable-line no-param-reassign + delete pkg.browser; // eslint-disable-line no-param-reassign + } + return pkg; + } + }); + t.equal(res, path.join(dir, 'browser_field', 'b.js')); + t.end(); +}); diff --git a/node_modules/resolve/test/shadowed_core.js b/node_modules/resolve/test/shadowed_core.js new file mode 100644 index 00000000..98c52a76 --- /dev/null +++ b/node_modules/resolve/test/shadowed_core.js @@ -0,0 +1,38 @@ +var test = require('tape'); +var resolve = require('../'); +var path = require('path'); + +test('shadowed core modules still return core module', function (t) { + t.plan(2); + + resolve('util', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) { + t.ifError(err); + t.equal(res, 'util'); + }); +}); + +test('shadowed core modules still return core module [sync]', function (t) { + t.plan(1); + + var res = resolve.sync('util', { basedir: path.join(__dirname, 'shadowed_core') }); + + t.equal(res, 'util'); +}); + +test('shadowed core modules return shadow when appending `/`', function (t) { + t.plan(2); + + resolve('util/', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) { + t.ifError(err); + t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js')); + }); +}); + +test('shadowed core modules return shadow when appending `/` [sync]', function (t) { + t.plan(1); + + var res = resolve.sync('util/', { basedir: path.join(__dirname, 'shadowed_core') }); + + t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js')); +}); + diff --git a/node_modules/resolve/test/shadowed_core/node_modules/util/index.js b/node_modules/resolve/test/shadowed_core/node_modules/util/index.js new file mode 100644 index 00000000..e69de29b diff --git a/node_modules/resolve/test/subdirs.js b/node_modules/resolve/test/subdirs.js new file mode 100644 index 00000000..b7b8450a --- /dev/null +++ b/node_modules/resolve/test/subdirs.js @@ -0,0 +1,13 @@ +var test = require('tape'); +var resolve = require('../'); +var path = require('path'); + +test('subdirs', function (t) { + t.plan(2); + + var dir = path.join(__dirname, '/subdirs'); + resolve('a/b/c/x.json', { basedir: dir }, function (err, res) { + t.ifError(err); + t.equal(res, path.join(dir, 'node_modules/a/b/c/x.json')); + }); +}); diff --git a/node_modules/resolve/test/symlinks.js b/node_modules/resolve/test/symlinks.js new file mode 100644 index 00000000..152d14ef --- /dev/null +++ b/node_modules/resolve/test/symlinks.js @@ -0,0 +1,173 @@ +var path = require('path'); +var fs = require('fs'); +var test = require('tape'); +var map = require('array.prototype.map'); +var resolve = require('../'); + +var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink'); +var packageDir = path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'package'); +var modADir = path.join(__dirname, 'symlinks', 'source', 'node_modules', 'mod-a'); +var symlinkModADir = path.join(__dirname, 'symlinks', 'dest', 'node_modules', 'mod-a'); +try { + fs.unlinkSync(symlinkDir); +} catch (err) {} +try { + fs.unlinkSync(packageDir); +} catch (err) {} +try { + fs.unlinkSync(modADir); +} catch (err) {} +try { + fs.unlinkSync(symlinkModADir); +} catch (err) {} + +try { + fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir'); +} catch (err) { + // if fails then it is probably on Windows and lets try to create a junction + fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction'); +} +try { + fs.symlinkSync('../../package', packageDir, 'dir'); +} catch (err) { + // if fails then it is probably on Windows and lets try to create a junction + fs.symlinkSync(path.join(__dirname, '..', '..', 'package') + '\\', packageDir, 'junction'); +} +try { + fs.symlinkSync('../../source/node_modules/mod-a', symlinkModADir, 'dir'); +} catch (err) { + // if fails then it is probably on Windows and lets try to create a junction + fs.symlinkSync(path.join(__dirname, '..', '..', 'source', 'node_modules', 'mod-a') + '\\', symlinkModADir, 'junction'); +} + +test('symlink', function (t) { + t.plan(2); + + resolve('foo', { basedir: symlinkDir, preserveSymlinks: false }, function (err, res, pkg) { + t.error(err); + t.equal(res, path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); + }); +}); + +test('sync symlink when preserveSymlinks = true', function (t) { + t.plan(4); + + resolve('foo', { basedir: symlinkDir }, function (err, res, pkg) { + t.ok(err, 'there is an error'); + t.notOk(res, 'no result'); + + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); + t.equal( + err && err.message, + 'Cannot find module \'foo\' from \'' + symlinkDir + '\'', + 'can not find nonexistent module' + ); + }); +}); + +test('sync symlink', function (t) { + var start = new Date(); + t.doesNotThrow(function () { + t.equal(resolve.sync('foo', { basedir: symlinkDir, preserveSymlinks: false }), path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); + }); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); +}); + +test('sync symlink when preserveSymlinks = true', function (t) { + t.throws(function () { + resolve.sync('foo', { basedir: symlinkDir }); + }, /Cannot find module 'foo'/); + t.end(); +}); + +test('sync symlink from node_modules to other dir when preserveSymlinks = false', function (t) { + var basedir = path.join(__dirname, 'resolver', 'symlinked', '_'); + var fn = resolve.sync('package', { basedir: basedir, preserveSymlinks: false }); + + t.equal(fn, path.resolve(__dirname, 'resolver/symlinked/package/bar.js')); + t.end(); +}); + +test('async symlink from node_modules to other dir when preserveSymlinks = false', function (t) { + t.plan(2); + var basedir = path.join(__dirname, 'resolver', 'symlinked', '_'); + resolve('package', { basedir: basedir, preserveSymlinks: false }, function (err, result) { + t.notOk(err, 'no error'); + t.equal(result, path.resolve(__dirname, 'resolver/symlinked/package/bar.js')); + }); +}); + +test('packageFilter', function (t) { + function relative(x) { + return path.relative(__dirname, x); + } + + function testPackageFilter(preserveSymlinks) { + return function (st) { + st.plan('is 1.x' ? 3 : 5); // eslint-disable-line no-constant-condition + + var destMain = 'symlinks/dest/node_modules/mod-a/index.js'; + var destPkg = 'symlinks/dest/node_modules/mod-a/package.json'; + var sourceMain = 'symlinks/source/node_modules/mod-a/index.js'; + var sourcePkg = 'symlinks/source/node_modules/mod-a/package.json'; + var destDir = path.join(__dirname, 'symlinks', 'dest'); + + /* eslint multiline-comment-style: 0 */ + /* v2.x will restore these tests + var packageFilterPath = []; + var actualPath = resolve.sync('mod-a', { + basedir: destDir, + preserveSymlinks: preserveSymlinks, + packageFilter: function (pkg, pkgfile, dir) { + packageFilterPath.push(pkgfile); + } + }); + st.equal( + relative(actualPath), + path.normalize(preserveSymlinks ? destMain : sourceMain), + 'sync: actual path is correct' + ); + st.deepEqual( + map(packageFilterPath, relative), + map(preserveSymlinks ? [destPkg, destPkg] : [sourcePkg, sourcePkg], path.normalize), + 'sync: packageFilter pkgfile arg is correct' + ); + */ + + var asyncPackageFilterPath = []; + resolve( + 'mod-a', + { + basedir: destDir, + preserveSymlinks: preserveSymlinks, + packageFilter: function (pkg, pkgfile) { + asyncPackageFilterPath.push(pkgfile); + } + }, + function (err, actualPath) { + st.error(err, 'no error'); + st.equal( + relative(actualPath), + path.normalize(preserveSymlinks ? destMain : sourceMain), + 'async: actual path is correct' + ); + st.deepEqual( + map(asyncPackageFilterPath, relative), + map( + preserveSymlinks ? [destPkg, destPkg, destPkg] : [sourcePkg, sourcePkg, sourcePkg], + path.normalize + ), + 'async: packageFilter pkgfile arg is correct' + ); + } + ); + }; + } + + t.test('preserveSymlinks: false', testPackageFilter(false)); + + t.test('preserveSymlinks: true', testPackageFilter(true)); + + t.end(); +}); diff --git a/node_modules/responselike/LICENSE b/node_modules/responselike/LICENSE new file mode 100644 index 00000000..8829a001 --- /dev/null +++ b/node_modules/responselike/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2017 Luke Childs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/responselike/README.md b/node_modules/responselike/README.md new file mode 100644 index 00000000..6361931c --- /dev/null +++ b/node_modules/responselike/README.md @@ -0,0 +1,77 @@ +# responselike + +> A response-like object for mocking a Node.js HTTP response stream + +[![Build Status](https://travis-ci.org/lukechilds/responselike.svg?branch=master)](https://travis-ci.org/lukechilds/responselike) +[![Coverage Status](https://coveralls.io/repos/github/lukechilds/responselike/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/responselike?branch=master) +[![npm](https://img.shields.io/npm/dm/responselike.svg)](https://www.npmjs.com/package/responselike) +[![npm](https://img.shields.io/npm/v/responselike.svg)](https://www.npmjs.com/package/responselike) + +Returns a streamable response object similar to a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage). Useful for formatting cached responses so they can be consumed by code expecting a real response. + +## Install + +```shell +npm install --save responselike +``` + +Or if you're just using for testing you'll want: + +```shell +npm install --save-dev responselike +``` + +## Usage + +```js +const Response = require('responselike'); + +const response = new Response(200, { foo: 'bar' }, Buffer.from('Hi!'), 'https://example.com'); + +response.statusCode; +// 200 +response.headers; +// { foo: 'bar' } +response.body; +// +response.url; +// 'https://example.com' + +response.pipe(process.stdout); +// Hi! +``` + + +## API + +### new Response(statusCode, headers, body, url) + +Returns a streamable response object similar to a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage). + +#### statusCode + +Type: `number` + +HTTP response status code. + +#### headers + +Type: `object` + +HTTP headers object. Keys will be automatically lowercased. + +#### body + +Type: `buffer` + +A Buffer containing the response body. The Buffer contents will be streamable but is also exposed directly as `response.body`. + +#### url + +Type: `string` + +Request URL string. + +## License + +MIT © Luke Childs diff --git a/node_modules/responselike/package.json b/node_modules/responselike/package.json new file mode 100644 index 00000000..7b9b3935 --- /dev/null +++ b/node_modules/responselike/package.json @@ -0,0 +1,69 @@ +{ + "_from": "responselike@^1.0.2", + "_id": "responselike@1.0.2", + "_inBundle": false, + "_integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "_location": "/responselike", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "responselike@^1.0.2", + "name": "responselike", + "escapedName": "responselike", + "rawSpec": "^1.0.2", + "saveSpec": null, + "fetchSpec": "^1.0.2" + }, + "_requiredBy": [ + "/cacheable-request" + ], + "_resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "_shasum": "918720ef3b631c5642be068f15ade5a46f4ba1e7", + "_spec": "responselike@^1.0.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\cacheable-request", + "author": { + "name": "lukechilds" + }, + "bugs": { + "url": "https://github.com/lukechilds/responselike/issues" + }, + "bundleDependencies": false, + "dependencies": { + "lowercase-keys": "^1.0.0" + }, + "deprecated": false, + "description": "A response-like object for mocking a Node.js HTTP response stream", + "devDependencies": { + "ava": "^0.22.0", + "coveralls": "^2.13.1", + "eslint-config-xo-lukechilds": "^1.0.0", + "get-stream": "^3.0.0", + "nyc": "^11.1.0", + "xo": "^0.19.0" + }, + "homepage": "https://github.com/lukechilds/responselike#readme", + "keywords": [ + "http", + "https", + "response", + "mock", + "request", + "responselike" + ], + "license": "MIT", + "main": "src/index.js", + "name": "responselike", + "repository": { + "type": "git", + "url": "git+https://github.com/lukechilds/responselike.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "test": "xo && nyc ava" + }, + "version": "1.0.2", + "xo": { + "extends": "xo-lukechilds" + } +} diff --git a/node_modules/responselike/src/index.js b/node_modules/responselike/src/index.js new file mode 100644 index 00000000..b17b4813 --- /dev/null +++ b/node_modules/responselike/src/index.js @@ -0,0 +1,34 @@ +'use strict'; + +const Readable = require('stream').Readable; +const lowercaseKeys = require('lowercase-keys'); + +class Response extends Readable { + constructor(statusCode, headers, body, url) { + if (typeof statusCode !== 'number') { + throw new TypeError('Argument `statusCode` should be a number'); + } + if (typeof headers !== 'object') { + throw new TypeError('Argument `headers` should be an object'); + } + if (!(body instanceof Buffer)) { + throw new TypeError('Argument `body` should be a buffer'); + } + if (typeof url !== 'string') { + throw new TypeError('Argument `url` should be a string'); + } + + super(); + this.statusCode = statusCode; + this.headers = lowercaseKeys(headers); + this.body = body; + this.url = url; + } + + _read() { + this.push(this.body); + this.push(null); + } +} + +module.exports = Response; diff --git a/node_modules/rxjs/AsyncSubject.d.ts b/node_modules/rxjs/AsyncSubject.d.ts new file mode 100644 index 00000000..2c4d977f --- /dev/null +++ b/node_modules/rxjs/AsyncSubject.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/AsyncSubject'; diff --git a/node_modules/rxjs/AsyncSubject.js b/node_modules/rxjs/AsyncSubject.js new file mode 100644 index 00000000..d32cac1a --- /dev/null +++ b/node_modules/rxjs/AsyncSubject.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/AsyncSubject")); +//# sourceMappingURL=AsyncSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/AsyncSubject.js.map b/node_modules/rxjs/AsyncSubject.js.map new file mode 100644 index 00000000..704e9531 --- /dev/null +++ b/node_modules/rxjs/AsyncSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncSubject.js","sources":["src/AsyncSubject.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/BehaviorSubject.d.ts b/node_modules/rxjs/BehaviorSubject.d.ts new file mode 100644 index 00000000..f8b4f44d --- /dev/null +++ b/node_modules/rxjs/BehaviorSubject.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/BehaviorSubject'; diff --git a/node_modules/rxjs/BehaviorSubject.js b/node_modules/rxjs/BehaviorSubject.js new file mode 100644 index 00000000..f31d4bfc --- /dev/null +++ b/node_modules/rxjs/BehaviorSubject.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/BehaviorSubject")); +//# sourceMappingURL=BehaviorSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/BehaviorSubject.js.map b/node_modules/rxjs/BehaviorSubject.js.map new file mode 100644 index 00000000..825e04b7 --- /dev/null +++ b/node_modules/rxjs/BehaviorSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BehaviorSubject.js","sources":["src/BehaviorSubject.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/InnerSubscriber.d.ts b/node_modules/rxjs/InnerSubscriber.d.ts new file mode 100644 index 00000000..79e3b4a2 --- /dev/null +++ b/node_modules/rxjs/InnerSubscriber.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/InnerSubscriber'; diff --git a/node_modules/rxjs/InnerSubscriber.js b/node_modules/rxjs/InnerSubscriber.js new file mode 100644 index 00000000..5c4153a4 --- /dev/null +++ b/node_modules/rxjs/InnerSubscriber.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/InnerSubscriber")); +//# sourceMappingURL=InnerSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/InnerSubscriber.js.map b/node_modules/rxjs/InnerSubscriber.js.map new file mode 100644 index 00000000..a4825ae8 --- /dev/null +++ b/node_modules/rxjs/InnerSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InnerSubscriber.js","sources":["src/InnerSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/LICENSE.txt b/node_modules/rxjs/LICENSE.txt new file mode 100644 index 00000000..031ce381 --- /dev/null +++ b/node_modules/rxjs/LICENSE.txt @@ -0,0 +1,202 @@ + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + 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. + diff --git a/node_modules/rxjs/Notification.d.ts b/node_modules/rxjs/Notification.d.ts new file mode 100644 index 00000000..5d9956d1 --- /dev/null +++ b/node_modules/rxjs/Notification.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Notification'; diff --git a/node_modules/rxjs/Notification.js b/node_modules/rxjs/Notification.js new file mode 100644 index 00000000..8a53935e --- /dev/null +++ b/node_modules/rxjs/Notification.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/Notification")); +//# sourceMappingURL=Notification.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Notification.js.map b/node_modules/rxjs/Notification.js.map new file mode 100644 index 00000000..890b8604 --- /dev/null +++ b/node_modules/rxjs/Notification.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Notification.js","sources":["src/Notification.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/Observable.d.ts b/node_modules/rxjs/Observable.d.ts new file mode 100644 index 00000000..cc1e68df --- /dev/null +++ b/node_modules/rxjs/Observable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Observable'; diff --git a/node_modules/rxjs/Observable.js b/node_modules/rxjs/Observable.js new file mode 100644 index 00000000..231f7df2 --- /dev/null +++ b/node_modules/rxjs/Observable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/Observable")); +//# sourceMappingURL=Observable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Observable.js.map b/node_modules/rxjs/Observable.js.map new file mode 100644 index 00000000..5fecdc68 --- /dev/null +++ b/node_modules/rxjs/Observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observable.js","sources":["src/Observable.ts"],"names":[],"mappings":";;;;;AAAA,4CAAuC"} diff --git a/node_modules/rxjs/Observer.d.ts b/node_modules/rxjs/Observer.d.ts new file mode 100644 index 00000000..867ce2f9 --- /dev/null +++ b/node_modules/rxjs/Observer.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Observer'; diff --git a/node_modules/rxjs/Observer.js b/node_modules/rxjs/Observer.js new file mode 100644 index 00000000..c4d54888 --- /dev/null +++ b/node_modules/rxjs/Observer.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Observer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Observer.js.map b/node_modules/rxjs/Observer.js.map new file mode 100644 index 00000000..0272f21d --- /dev/null +++ b/node_modules/rxjs/Observer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observer.js","sources":["src/Observer.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/Operator.d.ts b/node_modules/rxjs/Operator.d.ts new file mode 100644 index 00000000..fb9a9f99 --- /dev/null +++ b/node_modules/rxjs/Operator.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Operator'; diff --git a/node_modules/rxjs/Operator.js b/node_modules/rxjs/Operator.js new file mode 100644 index 00000000..3c447130 --- /dev/null +++ b/node_modules/rxjs/Operator.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Operator.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Operator.js.map b/node_modules/rxjs/Operator.js.map new file mode 100644 index 00000000..3ca1e3b1 --- /dev/null +++ b/node_modules/rxjs/Operator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Operator.js","sources":["src/Operator.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/OuterSubscriber.d.ts b/node_modules/rxjs/OuterSubscriber.d.ts new file mode 100644 index 00000000..9060ae77 --- /dev/null +++ b/node_modules/rxjs/OuterSubscriber.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/OuterSubscriber'; diff --git a/node_modules/rxjs/OuterSubscriber.js b/node_modules/rxjs/OuterSubscriber.js new file mode 100644 index 00000000..47154816 --- /dev/null +++ b/node_modules/rxjs/OuterSubscriber.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/OuterSubscriber")); +//# sourceMappingURL=OuterSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/OuterSubscriber.js.map b/node_modules/rxjs/OuterSubscriber.js.map new file mode 100644 index 00000000..8476f041 --- /dev/null +++ b/node_modules/rxjs/OuterSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OuterSubscriber.js","sources":["src/OuterSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/README.md b/node_modules/rxjs/README.md new file mode 100644 index 00000000..f92dafde --- /dev/null +++ b/node_modules/rxjs/README.md @@ -0,0 +1,147 @@ +# RxJS Logo RxJS: Reactive Extensions For JavaScript + +[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x) +[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs) +[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +# RxJS 6 Stable + +### MIGRATION AND RELEASE INFORMATION: + +Find out how to update to v6, **automatically update your TypeScript code**, and more! + +- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md) + +### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x) + +Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. + +[Apache 2.0 License](LICENSE.txt) + +- [Code of Conduct](CODE_OF_CONDUCT.md) +- [Contribution Guidelines](CONTRIBUTING.md) +- [Maintainer Guidelines](doc_app/content/maintainer-guidelines.md) +- [API Documentation](https://rxjs.dev/) + +## Versions In This Repository + +- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now +- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs` + +## Important + +By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity. + +## Installation and Usage + +### ES6 via npm + +```sh +npm install rxjs +``` + +It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`. + +```ts +import { range } from "rxjs"; +import { map, filter } from "rxjs/operators"; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information. + +### CommonJS via npm + +To install this library for CommonJS (CJS) usage, use the following command: + +```sh +npm install rxjs +``` + +(Note: destructuring available in Node 8+) + +```js +const { range } = require('rxjs'); +const { map, filter } = require('rxjs/operators'); + +range(1, 200).pipe( + filter(x => x % 2 === 1), + map(x => x + x) +).subscribe(x => console.log(x)); +``` + +### CDN + +For CDN, you can use [unpkg](https://unpkg.com/): + +https://unpkg.com/rxjs/bundles/rxjs.umd.min.js + +The global namespace for rxjs is `rxjs`: + +```js +const { range } = rxjs; +const { map, filter } = rxjs.operators; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +## Goals + +- Smaller overall bundles sizes +- Provide better performance than preceding versions of RxJS +- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable +- Provide more modular file structure in a variety of formats +- Provide more debuggable call stacks than preceding versions of RxJS + +## Building/Testing + +- `npm run build_all` - builds everything +- `npm test` - runs tests +- `npm run test_no_cache` - run test with `ts-node` set to false + +## Performance Tests + +Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`. + +Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator. + +## Adding documentation + +We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app). + +## Generating PNG marble diagrams + +The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`. + +For Mac OS X with [Homebrew](http://brew.sh/): + +- `brew install imagemagick` +- `brew install graphicsmagick` +- `brew install ghostscript` +- You may need to install the Ghostscript fonts manually: + - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts) + - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript` + +For Debian Linux: + +- `sudo add-apt-repository ppa:dhor/myway` +- `apt-get install imagemagick` +- `apt-get install graphicsmagick` +- `apt-get install ghostscript` + +For Windows and other Operating Systems, check the download instructions here: + +- http://imagemagick.org +- http://www.graphicsmagick.org +- http://www.ghostscript.com/ diff --git a/node_modules/rxjs/ReplaySubject.d.ts b/node_modules/rxjs/ReplaySubject.d.ts new file mode 100644 index 00000000..b66aea96 --- /dev/null +++ b/node_modules/rxjs/ReplaySubject.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/ReplaySubject'; diff --git a/node_modules/rxjs/ReplaySubject.js b/node_modules/rxjs/ReplaySubject.js new file mode 100644 index 00000000..4c2bcf5b --- /dev/null +++ b/node_modules/rxjs/ReplaySubject.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/ReplaySubject")); +//# sourceMappingURL=ReplaySubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/ReplaySubject.js.map b/node_modules/rxjs/ReplaySubject.js.map new file mode 100644 index 00000000..f6e866ea --- /dev/null +++ b/node_modules/rxjs/ReplaySubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ReplaySubject.js","sources":["src/ReplaySubject.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/Rx.d.ts b/node_modules/rxjs/Rx.d.ts new file mode 100644 index 00000000..5796fc6b --- /dev/null +++ b/node_modules/rxjs/Rx.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat'; diff --git a/node_modules/rxjs/Rx.js b/node_modules/rxjs/Rx.js new file mode 100644 index 00000000..112c071e --- /dev/null +++ b/node_modules/rxjs/Rx.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat")); +//# sourceMappingURL=Rx.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Rx.js.map b/node_modules/rxjs/Rx.js.map new file mode 100644 index 00000000..917f45e7 --- /dev/null +++ b/node_modules/rxjs/Rx.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Rx.js","sources":["src/Rx.ts"],"names":[],"mappings":";;;;;AACA,iCAA4B"} diff --git a/node_modules/rxjs/Scheduler.d.ts b/node_modules/rxjs/Scheduler.d.ts new file mode 100644 index 00000000..c21eb1fe --- /dev/null +++ b/node_modules/rxjs/Scheduler.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Scheduler'; diff --git a/node_modules/rxjs/Scheduler.js b/node_modules/rxjs/Scheduler.js new file mode 100644 index 00000000..c12359ed --- /dev/null +++ b/node_modules/rxjs/Scheduler.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/Scheduler")); +//# sourceMappingURL=Scheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Scheduler.js.map b/node_modules/rxjs/Scheduler.js.map new file mode 100644 index 00000000..172522c1 --- /dev/null +++ b/node_modules/rxjs/Scheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scheduler.js","sources":["src/Scheduler.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"} diff --git a/node_modules/rxjs/Subject.d.ts b/node_modules/rxjs/Subject.d.ts new file mode 100644 index 00000000..7448233e --- /dev/null +++ b/node_modules/rxjs/Subject.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Subject'; diff --git a/node_modules/rxjs/Subject.js b/node_modules/rxjs/Subject.js new file mode 100644 index 00000000..c57058fe --- /dev/null +++ b/node_modules/rxjs/Subject.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/Subject")); +//# sourceMappingURL=Subject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Subject.js.map b/node_modules/rxjs/Subject.js.map new file mode 100644 index 00000000..f587544a --- /dev/null +++ b/node_modules/rxjs/Subject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subject.js","sources":["src/Subject.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC"} diff --git a/node_modules/rxjs/SubjectSubscription.d.ts b/node_modules/rxjs/SubjectSubscription.d.ts new file mode 100644 index 00000000..4f481ced --- /dev/null +++ b/node_modules/rxjs/SubjectSubscription.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/SubjectSubscription'; diff --git a/node_modules/rxjs/SubjectSubscription.js b/node_modules/rxjs/SubjectSubscription.js new file mode 100644 index 00000000..e82afb1b --- /dev/null +++ b/node_modules/rxjs/SubjectSubscription.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/SubjectSubscription")); +//# sourceMappingURL=SubjectSubscription.js.map \ No newline at end of file diff --git a/node_modules/rxjs/SubjectSubscription.js.map b/node_modules/rxjs/SubjectSubscription.js.map new file mode 100644 index 00000000..15fa5b4f --- /dev/null +++ b/node_modules/rxjs/SubjectSubscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubjectSubscription.js","sources":["src/SubjectSubscription.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/Subscriber.d.ts b/node_modules/rxjs/Subscriber.d.ts new file mode 100644 index 00000000..15356d52 --- /dev/null +++ b/node_modules/rxjs/Subscriber.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Subscriber'; diff --git a/node_modules/rxjs/Subscriber.js b/node_modules/rxjs/Subscriber.js new file mode 100644 index 00000000..79cfe917 --- /dev/null +++ b/node_modules/rxjs/Subscriber.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/Subscriber")); +//# sourceMappingURL=Subscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Subscriber.js.map b/node_modules/rxjs/Subscriber.js.map new file mode 100644 index 00000000..c566f0d8 --- /dev/null +++ b/node_modules/rxjs/Subscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscriber.js","sources":["src/Subscriber.ts"],"names":[],"mappings":";;;;;AAAA,4CAAuC"} diff --git a/node_modules/rxjs/Subscription.d.ts b/node_modules/rxjs/Subscription.d.ts new file mode 100644 index 00000000..028cf4c7 --- /dev/null +++ b/node_modules/rxjs/Subscription.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Subscription'; diff --git a/node_modules/rxjs/Subscription.js b/node_modules/rxjs/Subscription.js new file mode 100644 index 00000000..04318722 --- /dev/null +++ b/node_modules/rxjs/Subscription.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/Subscription")); +//# sourceMappingURL=Subscription.js.map \ No newline at end of file diff --git a/node_modules/rxjs/Subscription.js.map b/node_modules/rxjs/Subscription.js.map new file mode 100644 index 00000000..948a0d90 --- /dev/null +++ b/node_modules/rxjs/Subscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscription.js","sources":["src/Subscription.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/_esm2015/LICENSE.txt b/node_modules/rxjs/_esm2015/LICENSE.txt new file mode 100644 index 00000000..031ce381 --- /dev/null +++ b/node_modules/rxjs/_esm2015/LICENSE.txt @@ -0,0 +1,202 @@ + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + 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. + diff --git a/node_modules/rxjs/_esm2015/README.md b/node_modules/rxjs/_esm2015/README.md new file mode 100644 index 00000000..f92dafde --- /dev/null +++ b/node_modules/rxjs/_esm2015/README.md @@ -0,0 +1,147 @@ +# RxJS Logo RxJS: Reactive Extensions For JavaScript + +[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x) +[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs) +[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +# RxJS 6 Stable + +### MIGRATION AND RELEASE INFORMATION: + +Find out how to update to v6, **automatically update your TypeScript code**, and more! + +- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md) + +### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x) + +Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. + +[Apache 2.0 License](LICENSE.txt) + +- [Code of Conduct](CODE_OF_CONDUCT.md) +- [Contribution Guidelines](CONTRIBUTING.md) +- [Maintainer Guidelines](doc_app/content/maintainer-guidelines.md) +- [API Documentation](https://rxjs.dev/) + +## Versions In This Repository + +- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now +- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs` + +## Important + +By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity. + +## Installation and Usage + +### ES6 via npm + +```sh +npm install rxjs +``` + +It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`. + +```ts +import { range } from "rxjs"; +import { map, filter } from "rxjs/operators"; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information. + +### CommonJS via npm + +To install this library for CommonJS (CJS) usage, use the following command: + +```sh +npm install rxjs +``` + +(Note: destructuring available in Node 8+) + +```js +const { range } = require('rxjs'); +const { map, filter } = require('rxjs/operators'); + +range(1, 200).pipe( + filter(x => x % 2 === 1), + map(x => x + x) +).subscribe(x => console.log(x)); +``` + +### CDN + +For CDN, you can use [unpkg](https://unpkg.com/): + +https://unpkg.com/rxjs/bundles/rxjs.umd.min.js + +The global namespace for rxjs is `rxjs`: + +```js +const { range } = rxjs; +const { map, filter } = rxjs.operators; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +## Goals + +- Smaller overall bundles sizes +- Provide better performance than preceding versions of RxJS +- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable +- Provide more modular file structure in a variety of formats +- Provide more debuggable call stacks than preceding versions of RxJS + +## Building/Testing + +- `npm run build_all` - builds everything +- `npm test` - runs tests +- `npm run test_no_cache` - run test with `ts-node` set to false + +## Performance Tests + +Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`. + +Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator. + +## Adding documentation + +We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app). + +## Generating PNG marble diagrams + +The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`. + +For Mac OS X with [Homebrew](http://brew.sh/): + +- `brew install imagemagick` +- `brew install graphicsmagick` +- `brew install ghostscript` +- You may need to install the Ghostscript fonts manually: + - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts) + - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript` + +For Debian Linux: + +- `sudo add-apt-repository ppa:dhor/myway` +- `apt-get install imagemagick` +- `apt-get install graphicsmagick` +- `apt-get install ghostscript` + +For Windows and other Operating Systems, check the download instructions here: + +- http://imagemagick.org +- http://www.graphicsmagick.org +- http://www.ghostscript.com/ diff --git a/node_modules/rxjs/_esm2015/ajax/index.js b/node_modules/rxjs/_esm2015/ajax/index.js new file mode 100644 index 00000000..6d174393 --- /dev/null +++ b/node_modules/rxjs/_esm2015/ajax/index.js @@ -0,0 +1,3 @@ +export { ajax } from '../internal/observable/dom/ajax'; +export { AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/ajax/index.js.map b/node_modules/rxjs/_esm2015/ajax/index.js.map new file mode 100644 index 00000000..038e2b17 --- /dev/null +++ b/node_modules/rxjs/_esm2015/ajax/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/ajax/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAe,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC"} diff --git a/node_modules/rxjs/_esm2015/fetch/index.js b/node_modules/rxjs/_esm2015/fetch/index.js new file mode 100644 index 00000000..e851987c --- /dev/null +++ b/node_modules/rxjs/_esm2015/fetch/index.js @@ -0,0 +1,2 @@ +export { fromFetch } from '../internal/observable/dom/fetch'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/fetch/index.js.map b/node_modules/rxjs/_esm2015/fetch/index.js.map new file mode 100644 index 00000000..8bf783b3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/fetch/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/index.js b/node_modules/rxjs/_esm2015/index.js new file mode 100644 index 00000000..0cc9f2c4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/index.js @@ -0,0 +1,56 @@ +export { Observable } from './internal/Observable'; +export { ConnectableObservable } from './internal/observable/ConnectableObservable'; +export { GroupedObservable } from './internal/operators/groupBy'; +export { observable } from './internal/symbol/observable'; +export { Subject } from './internal/Subject'; +export { BehaviorSubject } from './internal/BehaviorSubject'; +export { ReplaySubject } from './internal/ReplaySubject'; +export { AsyncSubject } from './internal/AsyncSubject'; +export { asap, asapScheduler } from './internal/scheduler/asap'; +export { async, asyncScheduler } from './internal/scheduler/async'; +export { queue, queueScheduler } from './internal/scheduler/queue'; +export { animationFrame, animationFrameScheduler } from './internal/scheduler/animationFrame'; +export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler'; +export { Scheduler } from './internal/Scheduler'; +export { Subscription } from './internal/Subscription'; +export { Subscriber } from './internal/Subscriber'; +export { Notification, NotificationKind } from './internal/Notification'; +export { pipe } from './internal/util/pipe'; +export { noop } from './internal/util/noop'; +export { identity } from './internal/util/identity'; +export { isObservable } from './internal/util/isObservable'; +export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from './internal/util/EmptyError'; +export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError'; +export { UnsubscriptionError } from './internal/util/UnsubscriptionError'; +export { TimeoutError } from './internal/util/TimeoutError'; +export { bindCallback } from './internal/observable/bindCallback'; +export { bindNodeCallback } from './internal/observable/bindNodeCallback'; +export { combineLatest } from './internal/observable/combineLatest'; +export { concat } from './internal/observable/concat'; +export { defer } from './internal/observable/defer'; +export { empty } from './internal/observable/empty'; +export { forkJoin } from './internal/observable/forkJoin'; +export { from } from './internal/observable/from'; +export { fromEvent } from './internal/observable/fromEvent'; +export { fromEventPattern } from './internal/observable/fromEventPattern'; +export { generate } from './internal/observable/generate'; +export { iif } from './internal/observable/iif'; +export { interval } from './internal/observable/interval'; +export { merge } from './internal/observable/merge'; +export { never } from './internal/observable/never'; +export { of } from './internal/observable/of'; +export { onErrorResumeNext } from './internal/observable/onErrorResumeNext'; +export { pairs } from './internal/observable/pairs'; +export { partition } from './internal/observable/partition'; +export { race } from './internal/observable/race'; +export { range } from './internal/observable/range'; +export { throwError } from './internal/observable/throwError'; +export { timer } from './internal/observable/timer'; +export { using } from './internal/observable/using'; +export { zip } from './internal/observable/zip'; +export { scheduled } from './internal/scheduled/scheduled'; +export { EMPTY } from './internal/observable/empty'; +export { NEVER } from './internal/observable/never'; +export { config } from './internal/config'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/index.js.map b/node_modules/rxjs/_esm2015/index.js.map new file mode 100644 index 00000000..12977895 --- /dev/null +++ b/node_modules/rxjs/_esm2015/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal-compatibility/index.js b/node_modules/rxjs/_esm2015/internal-compatibility/index.js new file mode 100644 index 00000000..0461e19e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal-compatibility/index.js @@ -0,0 +1,56 @@ +export { config } from '../internal/config'; +export { InnerSubscriber } from '../internal/InnerSubscriber'; +export { OuterSubscriber } from '../internal/OuterSubscriber'; +export { Scheduler } from '../internal/Scheduler'; +export { AnonymousSubject } from '../internal/Subject'; +export { SubjectSubscription } from '../internal/SubjectSubscription'; +export { Subscriber } from '../internal/Subscriber'; +export { fromPromise } from '../internal/observable/fromPromise'; +export { fromIterable } from '../internal/observable/fromIterable'; +export { ajax } from '../internal/observable/dom/ajax'; +export { webSocket } from '../internal/observable/dom/webSocket'; +export { ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; +export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject'; +export { CombineLatestOperator } from '../internal/observable/combineLatest'; +export { dispatch } from '../internal/observable/range'; +export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable'; +export { Timestamp } from '../internal/operators/timestamp'; +export { TimeInterval } from '../internal/operators/timeInterval'; +export { GroupedObservable } from '../internal/operators/groupBy'; +export { defaultThrottleConfig } from '../internal/operators/throttle'; +export { rxSubscriber } from '../internal/symbol/rxSubscriber'; +export { iterator } from '../internal/symbol/iterator'; +export { observable } from '../internal/symbol/observable'; +export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from '../internal/util/EmptyError'; +export { Immediate } from '../internal/util/Immediate'; +export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError'; +export { TimeoutError } from '../internal/util/TimeoutError'; +export { UnsubscriptionError } from '../internal/util/UnsubscriptionError'; +export { applyMixins } from '../internal/util/applyMixins'; +export { errorObject } from '../internal/util/errorObject'; +export { hostReportError } from '../internal/util/hostReportError'; +export { identity } from '../internal/util/identity'; +export { isArray } from '../internal/util/isArray'; +export { isArrayLike } from '../internal/util/isArrayLike'; +export { isDate } from '../internal/util/isDate'; +export { isFunction } from '../internal/util/isFunction'; +export { isIterable } from '../internal/util/isIterable'; +export { isNumeric } from '../internal/util/isNumeric'; +export { isObject } from '../internal/util/isObject'; +export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable'; +export { isPromise } from '../internal/util/isPromise'; +export { isScheduler } from '../internal/util/isScheduler'; +export { noop } from '../internal/util/noop'; +export { not } from '../internal/util/not'; +export { pipe } from '../internal/util/pipe'; +export { root } from '../internal/util/root'; +export { subscribeTo } from '../internal/util/subscribeTo'; +export { subscribeToArray } from '../internal/util/subscribeToArray'; +export { subscribeToIterable } from '../internal/util/subscribeToIterable'; +export { subscribeToObservable } from '../internal/util/subscribeToObservable'; +export { subscribeToPromise } from '../internal/util/subscribeToPromise'; +export { subscribeToResult } from '../internal/util/subscribeToResult'; +export { toSubscriber } from '../internal/util/toSubscriber'; +export { tryCatch } from '../internal/util/tryCatch'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map b/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map new file mode 100644 index 00000000..9de2eb94 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal-compatibility/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/internal-compatibility/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/AsyncSubject.js b/node_modules/rxjs/_esm2015/internal/AsyncSubject.js new file mode 100644 index 00000000..5365f5ae --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/AsyncSubject.js @@ -0,0 +1,41 @@ +import { Subject } from './Subject'; +import { Subscription } from './Subscription'; +export class AsyncSubject extends Subject { + constructor() { + super(...arguments); + this.value = null; + this.hasNext = false; + this.hasCompleted = false; + } + _subscribe(subscriber) { + if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } + else if (this.hasCompleted && this.hasNext) { + subscriber.next(this.value); + subscriber.complete(); + return Subscription.EMPTY; + } + return super._subscribe(subscriber); + } + next(value) { + if (!this.hasCompleted) { + this.value = value; + this.hasNext = true; + } + } + error(error) { + if (!this.hasCompleted) { + super.error(error); + } + } + complete() { + this.hasCompleted = true; + if (this.hasNext) { + super.next(this.value); + } + super.complete(); + } +} +//# sourceMappingURL=AsyncSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map b/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map new file mode 100644 index 00000000..a99b9814 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/AsyncSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,MAAM,OAAO,YAAgB,SAAQ,OAAU;IAA/C;;QACU,UAAK,GAAM,IAAI,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,iBAAY,GAAY,KAAK,CAAC;IAmCxC,CAAC;IAhCC,UAAU,CAAC,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,KAAK,CAAC,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js b/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js new file mode 100644 index 00000000..c7d77aa4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js @@ -0,0 +1,33 @@ +import { Subject } from './Subject'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +export class BehaviorSubject extends Subject { + constructor(_value) { + super(); + this._value = _value; + } + get value() { + return this.getValue(); + } + _subscribe(subscriber) { + const subscription = super._subscribe(subscriber); + if (subscription && !subscription.closed) { + subscriber.next(this._value); + } + return subscription; + } + getValue() { + if (this.hasError) { + throw this.thrownError; + } + else if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else { + return this._value; + } + } + next(value) { + super.next(this._value = value); + } +} +//# sourceMappingURL=BehaviorSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map b/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map new file mode 100644 index 00000000..d8d3d5ea --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/BehaviorSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAQzE,MAAM,OAAO,eAAmB,SAAQ,OAAU;IAEhD,YAAoB,MAAS;QAC3B,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAG;IAE7B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAGD,UAAU,CAAC,UAAyB;QAClC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,IAAI,CAAC,KAAQ;QACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js b/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js new file mode 100644 index 00000000..1c7b4c73 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js @@ -0,0 +1,22 @@ +import { Subscriber } from './Subscriber'; +export class InnerSubscriber extends Subscriber { + constructor(parent, outerValue, outerIndex) { + super(); + this.parent = parent; + this.outerValue = outerValue; + this.outerIndex = outerIndex; + this.index = 0; + } + _next(value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); + } + _error(error) { + this.parent.notifyError(error, this); + this.unsubscribe(); + } + _complete() { + this.parent.notifyComplete(this); + this.unsubscribe(); + } +} +//# sourceMappingURL=InnerSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map new file mode 100644 index 00000000..2c4a906e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/InnerSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InnerSubscriber.js","sources":["../../src/internal/InnerSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,OAAO,eAAsB,SAAQ,UAAa;IAGtD,YAAoB,MAA6B,EAAS,UAAa,EAAS,UAAkB;QAChG,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAuB;QAAS,eAAU,GAAV,UAAU,CAAG;QAAS,eAAU,GAAV,UAAU,CAAQ;QAF1F,UAAK,GAAG,CAAC,CAAC;IAIlB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAES,MAAM,CAAC,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/Notification.js b/node_modules/rxjs/_esm2015/internal/Notification.js new file mode 100644 index 00000000..29713d05 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Notification.js @@ -0,0 +1,73 @@ +import { empty } from './observable/empty'; +import { of } from './observable/of'; +import { throwError } from './observable/throwError'; +export var NotificationKind; +(function (NotificationKind) { + NotificationKind["NEXT"] = "N"; + NotificationKind["ERROR"] = "E"; + NotificationKind["COMPLETE"] = "C"; +})(NotificationKind || (NotificationKind = {})); +export class Notification { + constructor(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + observe(observer) { + switch (this.kind) { + case 'N': + return observer.next && observer.next(this.value); + case 'E': + return observer.error && observer.error(this.error); + case 'C': + return observer.complete && observer.complete(); + } + } + do(next, error, complete) { + const kind = this.kind; + switch (kind) { + case 'N': + return next && next(this.value); + case 'E': + return error && error(this.error); + case 'C': + return complete && complete(); + } + } + accept(nextOrObserver, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + } + toObservable() { + const kind = this.kind; + switch (kind) { + case 'N': + return of(this.value); + case 'E': + return throwError(this.error); + case 'C': + return empty(); + } + throw new Error('unexpected notification kind value'); + } + static createNext(value) { + if (typeof value !== 'undefined') { + return new Notification('N', value); + } + return Notification.undefinedValueNotification; + } + static createError(err) { + return new Notification('E', undefined, err); + } + static createComplete() { + return Notification.completeNotification; + } +} +Notification.completeNotification = new Notification('C'); +Notification.undefinedValueNotification = new Notification('N', undefined); +//# sourceMappingURL=Notification.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Notification.js.map b/node_modules/rxjs/_esm2015/internal/Notification.js.map new file mode 100644 index 00000000..eb38dbf9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Notification.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Notification.js","sources":["../../src/internal/Notification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAOrD,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,8BAAU,CAAA;IACV,+BAAW,CAAA;IACX,kCAAc,CAAA;AAChB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAgBD,MAAM,OAAO,YAAY;IAGvB,YAAmB,IAAqB,EAAS,KAAS,EAAS,KAAW;QAA3D,SAAI,GAAJ,IAAI,CAAiB;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,UAAK,GAAL,KAAK,CAAM;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC;IAC/B,CAAC;IAOD,OAAO,CAAC,QAA4B;QAClC,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,GAAG;gBACN,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,GAAG;gBACN,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,KAAK,GAAG;gBACN,OAAO,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;SACnD;IACH,CAAC;IAUD,EAAE,CAAC,IAAwB,EAAE,KAA0B,EAAE,QAAqB;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,GAAG;gBACN,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,GAAG;gBACN,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,GAAG;gBACN,OAAO,QAAQ,IAAI,QAAQ,EAAE,CAAC;SACjC;IACH,CAAC;IAWD,MAAM,CAAC,cAAyD,EAAE,KAA0B,EAAE,QAAqB;QACjH,IAAI,cAAc,IAAI,OAA4B,cAAe,CAAC,IAAI,KAAK,UAAU,EAAE;YACrF,OAAO,IAAI,CAAC,OAAO,CAAqB,cAAc,CAAC,CAAC;SACzD;aAAM;YACL,OAAO,IAAI,CAAC,EAAE,CAAqB,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACrE;IACH,CAAC;IAOD,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,GAAG;gBACN,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,KAAK,GAAG;gBACN,OAAO,KAAK,EAAE,CAAC;SAClB;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAaD,MAAM,CAAC,UAAU,CAAI,KAAQ;QAC3B,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,OAAO,YAAY,CAAC,0BAA0B,CAAC;IACjD,CAAC;IAUD,MAAM,CAAC,WAAW,CAAI,GAAS;QAC7B,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAOD,MAAM,CAAC,cAAc;QACnB,OAAO,YAAY,CAAC,oBAAoB,CAAC;IAC3C,CAAC;;AArCc,iCAAoB,GAAsB,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;AAChE,uCAA0B,GAAsB,IAAI,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/Observable.js b/node_modules/rxjs/_esm2015/internal/Observable.js new file mode 100644 index 00000000..4904b3f5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Observable.js @@ -0,0 +1,107 @@ +import { canReportError } from './util/canReportError'; +import { toSubscriber } from './util/toSubscriber'; +import { observable as Symbol_observable } from './symbol/observable'; +import { pipeFromArray } from './util/pipe'; +import { config } from './config'; +export class Observable { + constructor(subscribe) { + this._isScalar = false; + if (subscribe) { + this._subscribe = subscribe; + } + } + lift(operator) { + const observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + } + subscribe(observerOrNext, error, complete) { + const { operator } = this; + const sink = toSubscriber(observerOrNext, error, complete); + if (operator) { + sink.add(operator.call(sink, this.source)); + } + else { + sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink)); + } + if (config.useDeprecatedSynchronousErrorHandling) { + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } + } + } + return sink; + } + _trySubscribe(sink) { + try { + return this._subscribe(sink); + } + catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + } + if (canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } + } + } + forEach(next, promiseCtor) { + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor((resolve, reject) => { + let subscription; + subscription = this.subscribe((value) => { + try { + next(value); + } + catch (err) { + reject(err); + if (subscription) { + subscription.unsubscribe(); + } + } + }, reject, resolve); + }); + } + _subscribe(subscriber) { + const { source } = this; + return source && source.subscribe(subscriber); + } + [Symbol_observable]() { + return this; + } + pipe(...operations) { + if (operations.length === 0) { + return this; + } + return pipeFromArray(operations)(this); + } + toPromise(promiseCtor) { + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor((resolve, reject) => { + let value; + this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value)); + }); + } +} +Observable.create = (subscribe) => { + return new Observable(subscribe); +}; +function getPromiseCtor(promiseCtor) { + if (!promiseCtor) { + promiseCtor = config.Promise || Promise; + } + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + return promiseCtor; +} +//# sourceMappingURL=Observable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Observable.js.map b/node_modules/rxjs/_esm2015/internal/Observable.js.map new file mode 100644 index 00000000..32197d0c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/Observer.js b/node_modules/rxjs/_esm2015/internal/Observer.js new file mode 100644 index 00000000..22a6acac --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Observer.js @@ -0,0 +1,16 @@ +import { config } from './config'; +import { hostReportError } from './util/hostReportError'; +export const empty = { + closed: true, + next(value) { }, + error(err) { + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError(err); + } + }, + complete() { } +}; +//# sourceMappingURL=Observer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Observer.js.map b/node_modules/rxjs/_esm2015/internal/Observer.js.map new file mode 100644 index 00000000..cf2a2d33 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Observer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observer.js","sources":["../../src/internal/Observer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,KAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,CAAC,KAAU,IAAoB,CAAC;IACpC,KAAK,CAAC,GAAQ;QACZ,IAAI,MAAM,CAAC,qCAAqC,EAAE;YAChD,MAAM,GAAG,CAAC;SACX;aAAM;YACL,eAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IACD,QAAQ,KAAoB,CAAC;CAC9B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/Operator.js b/node_modules/rxjs/_esm2015/internal/Operator.js new file mode 100644 index 00000000..463a42e4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Operator.js @@ -0,0 +1 @@ +//# sourceMappingURL=Operator.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Operator.js.map b/node_modules/rxjs/_esm2015/internal/Operator.js.map new file mode 100644 index 00000000..f45f5ad9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Operator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Operator.js","sources":["../../src/internal/Operator.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js b/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js new file mode 100644 index 00000000..fa93e845 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js @@ -0,0 +1,13 @@ +import { Subscriber } from './Subscriber'; +export class OuterSubscriber extends Subscriber { + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + } + notifyError(error, innerSub) { + this.destination.error(error); + } + notifyComplete(innerSub) { + this.destination.complete(); + } +} +//# sourceMappingURL=OuterSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map new file mode 100644 index 00000000..41b6683b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/OuterSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OuterSubscriber.js","sources":["../../src/internal/OuterSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,OAAO,eAAsB,SAAQ,UAAa;IACtD,UAAU,CAAC,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,QAA+B;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/ReplaySubject.js b/node_modules/rxjs/_esm2015/internal/ReplaySubject.js new file mode 100644 index 00000000..5bc6c760 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/ReplaySubject.js @@ -0,0 +1,108 @@ +import { Subject } from './Subject'; +import { queue } from './scheduler/queue'; +import { Subscription } from './Subscription'; +import { ObserveOnSubscriber } from './operators/observeOn'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +import { SubjectSubscription } from './SubjectSubscription'; +export class ReplaySubject extends Subject { + constructor(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) { + super(); + this.scheduler = scheduler; + this._events = []; + this._infiniteTimeWindow = false; + this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + this._windowTime = windowTime < 1 ? 1 : windowTime; + if (windowTime === Number.POSITIVE_INFINITY) { + this._infiniteTimeWindow = true; + this.next = this.nextInfiniteTimeWindow; + } + else { + this.next = this.nextTimeWindow; + } + } + nextInfiniteTimeWindow(value) { + if (!this.isStopped) { + const _events = this._events; + _events.push(value); + if (_events.length > this._bufferSize) { + _events.shift(); + } + } + super.next(value); + } + nextTimeWindow(value) { + if (!this.isStopped) { + this._events.push(new ReplayEvent(this._getNow(), value)); + this._trimBufferThenGetEvents(); + } + super.next(value); + } + _subscribe(subscriber) { + const _infiniteTimeWindow = this._infiniteTimeWindow; + const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); + const scheduler = this.scheduler; + const len = _events.length; + let subscription; + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else if (this.isStopped || this.hasError) { + subscription = Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + subscription = new SubjectSubscription(this, subscriber); + } + if (scheduler) { + subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler)); + } + if (_infiniteTimeWindow) { + for (let i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i]); + } + } + else { + for (let i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i].value); + } + } + if (this.hasError) { + subscriber.error(this.thrownError); + } + else if (this.isStopped) { + subscriber.complete(); + } + return subscription; + } + _getNow() { + return (this.scheduler || queue).now(); + } + _trimBufferThenGetEvents() { + const now = this._getNow(); + const _bufferSize = this._bufferSize; + const _windowTime = this._windowTime; + const _events = this._events; + const eventsCount = _events.length; + let spliceCount = 0; + while (spliceCount < eventsCount) { + if ((now - _events[spliceCount].time) < _windowTime) { + break; + } + spliceCount++; + } + if (eventsCount > _bufferSize) { + spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); + } + if (spliceCount > 0) { + _events.splice(0, spliceCount); + } + return _events; + } +} +class ReplayEvent { + constructor(time, value) { + this.time = time; + this.value = value; + } +} +//# sourceMappingURL=ReplaySubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map b/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map new file mode 100644 index 00000000..5a5a15da --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/ReplaySubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/Rx.js b/node_modules/rxjs/_esm2015/internal/Rx.js new file mode 100644 index 00000000..1bbe29c9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Rx.js @@ -0,0 +1,172 @@ +export { Subject, AnonymousSubject } from './Subject'; +export { Observable } from './Observable'; +export { config } from './config'; +import 'rxjs-compat/add/observable/bindCallback'; +import 'rxjs-compat/add/observable/bindNodeCallback'; +import 'rxjs-compat/add/observable/combineLatest'; +import 'rxjs-compat/add/observable/concat'; +import 'rxjs-compat/add/observable/defer'; +import 'rxjs-compat/add/observable/empty'; +import 'rxjs-compat/add/observable/forkJoin'; +import 'rxjs-compat/add/observable/from'; +import 'rxjs-compat/add/observable/fromEvent'; +import 'rxjs-compat/add/observable/fromEventPattern'; +import 'rxjs-compat/add/observable/fromPromise'; +import 'rxjs-compat/add/observable/generate'; +import 'rxjs-compat/add/observable/if'; +import 'rxjs-compat/add/observable/interval'; +import 'rxjs-compat/add/observable/merge'; +import 'rxjs-compat/add/observable/race'; +import 'rxjs-compat/add/observable/never'; +import 'rxjs-compat/add/observable/of'; +import 'rxjs-compat/add/observable/onErrorResumeNext'; +import 'rxjs-compat/add/observable/pairs'; +import 'rxjs-compat/add/observable/range'; +import 'rxjs-compat/add/observable/using'; +import 'rxjs-compat/add/observable/throw'; +import 'rxjs-compat/add/observable/timer'; +import 'rxjs-compat/add/observable/zip'; +import 'rxjs-compat/add/observable/dom/ajax'; +import 'rxjs-compat/add/observable/dom/webSocket'; +import 'rxjs-compat/add/operator/buffer'; +import 'rxjs-compat/add/operator/bufferCount'; +import 'rxjs-compat/add/operator/bufferTime'; +import 'rxjs-compat/add/operator/bufferToggle'; +import 'rxjs-compat/add/operator/bufferWhen'; +import 'rxjs-compat/add/operator/catch'; +import 'rxjs-compat/add/operator/combineAll'; +import 'rxjs-compat/add/operator/combineLatest'; +import 'rxjs-compat/add/operator/concat'; +import 'rxjs-compat/add/operator/concatAll'; +import 'rxjs-compat/add/operator/concatMap'; +import 'rxjs-compat/add/operator/concatMapTo'; +import 'rxjs-compat/add/operator/count'; +import 'rxjs-compat/add/operator/dematerialize'; +import 'rxjs-compat/add/operator/debounce'; +import 'rxjs-compat/add/operator/debounceTime'; +import 'rxjs-compat/add/operator/defaultIfEmpty'; +import 'rxjs-compat/add/operator/delay'; +import 'rxjs-compat/add/operator/delayWhen'; +import 'rxjs-compat/add/operator/distinct'; +import 'rxjs-compat/add/operator/distinctUntilChanged'; +import 'rxjs-compat/add/operator/distinctUntilKeyChanged'; +import 'rxjs-compat/add/operator/do'; +import 'rxjs-compat/add/operator/exhaust'; +import 'rxjs-compat/add/operator/exhaustMap'; +import 'rxjs-compat/add/operator/expand'; +import 'rxjs-compat/add/operator/elementAt'; +import 'rxjs-compat/add/operator/filter'; +import 'rxjs-compat/add/operator/finally'; +import 'rxjs-compat/add/operator/find'; +import 'rxjs-compat/add/operator/findIndex'; +import 'rxjs-compat/add/operator/first'; +import 'rxjs-compat/add/operator/groupBy'; +import 'rxjs-compat/add/operator/ignoreElements'; +import 'rxjs-compat/add/operator/isEmpty'; +import 'rxjs-compat/add/operator/audit'; +import 'rxjs-compat/add/operator/auditTime'; +import 'rxjs-compat/add/operator/last'; +import 'rxjs-compat/add/operator/let'; +import 'rxjs-compat/add/operator/every'; +import 'rxjs-compat/add/operator/map'; +import 'rxjs-compat/add/operator/mapTo'; +import 'rxjs-compat/add/operator/materialize'; +import 'rxjs-compat/add/operator/max'; +import 'rxjs-compat/add/operator/merge'; +import 'rxjs-compat/add/operator/mergeAll'; +import 'rxjs-compat/add/operator/mergeMap'; +import 'rxjs-compat/add/operator/mergeMapTo'; +import 'rxjs-compat/add/operator/mergeScan'; +import 'rxjs-compat/add/operator/min'; +import 'rxjs-compat/add/operator/multicast'; +import 'rxjs-compat/add/operator/observeOn'; +import 'rxjs-compat/add/operator/onErrorResumeNext'; +import 'rxjs-compat/add/operator/pairwise'; +import 'rxjs-compat/add/operator/partition'; +import 'rxjs-compat/add/operator/pluck'; +import 'rxjs-compat/add/operator/publish'; +import 'rxjs-compat/add/operator/publishBehavior'; +import 'rxjs-compat/add/operator/publishReplay'; +import 'rxjs-compat/add/operator/publishLast'; +import 'rxjs-compat/add/operator/race'; +import 'rxjs-compat/add/operator/reduce'; +import 'rxjs-compat/add/operator/repeat'; +import 'rxjs-compat/add/operator/repeatWhen'; +import 'rxjs-compat/add/operator/retry'; +import 'rxjs-compat/add/operator/retryWhen'; +import 'rxjs-compat/add/operator/sample'; +import 'rxjs-compat/add/operator/sampleTime'; +import 'rxjs-compat/add/operator/scan'; +import 'rxjs-compat/add/operator/sequenceEqual'; +import 'rxjs-compat/add/operator/share'; +import 'rxjs-compat/add/operator/shareReplay'; +import 'rxjs-compat/add/operator/single'; +import 'rxjs-compat/add/operator/skip'; +import 'rxjs-compat/add/operator/skipLast'; +import 'rxjs-compat/add/operator/skipUntil'; +import 'rxjs-compat/add/operator/skipWhile'; +import 'rxjs-compat/add/operator/startWith'; +import 'rxjs-compat/add/operator/subscribeOn'; +import 'rxjs-compat/add/operator/switch'; +import 'rxjs-compat/add/operator/switchMap'; +import 'rxjs-compat/add/operator/switchMapTo'; +import 'rxjs-compat/add/operator/take'; +import 'rxjs-compat/add/operator/takeLast'; +import 'rxjs-compat/add/operator/takeUntil'; +import 'rxjs-compat/add/operator/takeWhile'; +import 'rxjs-compat/add/operator/throttle'; +import 'rxjs-compat/add/operator/throttleTime'; +import 'rxjs-compat/add/operator/timeInterval'; +import 'rxjs-compat/add/operator/timeout'; +import 'rxjs-compat/add/operator/timeoutWith'; +import 'rxjs-compat/add/operator/timestamp'; +import 'rxjs-compat/add/operator/toArray'; +import 'rxjs-compat/add/operator/toPromise'; +import 'rxjs-compat/add/operator/window'; +import 'rxjs-compat/add/operator/windowCount'; +import 'rxjs-compat/add/operator/windowTime'; +import 'rxjs-compat/add/operator/windowToggle'; +import 'rxjs-compat/add/operator/windowWhen'; +import 'rxjs-compat/add/operator/withLatestFrom'; +import 'rxjs-compat/add/operator/zip'; +import 'rxjs-compat/add/operator/zipAll'; +export { Subscription } from './Subscription'; +export { Subscriber } from './Subscriber'; +export { AsyncSubject } from './AsyncSubject'; +export { ReplaySubject } from './ReplaySubject'; +export { BehaviorSubject } from './BehaviorSubject'; +export { ConnectableObservable } from './observable/ConnectableObservable'; +export { Notification, NotificationKind } from './Notification'; +export { EmptyError } from './util/EmptyError'; +export { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError'; +export { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +export { TimeoutError } from './util/TimeoutError'; +export { UnsubscriptionError } from './util/UnsubscriptionError'; +export { TimeInterval } from './operators/timeInterval'; +export { Timestamp } from './operators/timestamp'; +export { TestScheduler } from './testing/TestScheduler'; +export { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler'; +export { AjaxResponse, AjaxError, AjaxTimeoutError } from './observable/dom/AjaxObservable'; +export { pipe } from './util/pipe'; +import { asap } from './scheduler/asap'; +import { async } from './scheduler/async'; +import { queue } from './scheduler/queue'; +import { animationFrame } from './scheduler/animationFrame'; +import { rxSubscriber } from './symbol/rxSubscriber'; +import { iterator } from './symbol/iterator'; +import { observable } from './symbol/observable'; +import * as _operators from './operators/index'; +export const operators = _operators; +let Scheduler = { + asap, + queue, + animationFrame, + async +}; +let Symbol = { + rxSubscriber, + observable, + iterator +}; +export { Scheduler, Symbol }; +//# sourceMappingURL=Rx.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Rx.js.map b/node_modules/rxjs/_esm2015/internal/Rx.js.map new file mode 100644 index 00000000..059580f8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Rx.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Rx.js","sources":["../../src/internal/Rx.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/Scheduler.js b/node_modules/rxjs/_esm2015/internal/Scheduler.js new file mode 100644 index 00000000..9c0ab999 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Scheduler.js @@ -0,0 +1,11 @@ +export class Scheduler { + constructor(SchedulerAction, now = Scheduler.now) { + this.SchedulerAction = SchedulerAction; + this.now = now; + } + schedule(work, delay = 0, state) { + return new this.SchedulerAction(this, work).schedule(state, delay); + } +} +Scheduler.now = () => Date.now(); +//# sourceMappingURL=Scheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Scheduler.js.map b/node_modules/rxjs/_esm2015/internal/Scheduler.js.map new file mode 100644 index 00000000..4bc5f391 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Scheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scheduler.js","sources":["../../src/internal/Scheduler.ts"],"names":[],"mappings":"AAuBA,MAAM,OAAO,SAAS;IASpB,YAAoB,eAA8B,EACtC,MAAoB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IA6BM,QAAQ,CAAI,IAAmD,EAAE,QAAgB,CAAC,EAAE,KAAS;QAClG,OAAO,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;;AApCa,aAAG,GAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/Subject.js b/node_modules/rxjs/_esm2015/internal/Subject.js new file mode 100644 index 00000000..7bdf8153 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Subject.js @@ -0,0 +1,144 @@ +import { Observable } from './Observable'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +import { SubjectSubscription } from './SubjectSubscription'; +import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber'; +export class SubjectSubscriber extends Subscriber { + constructor(destination) { + super(destination); + this.destination = destination; + } +} +export class Subject extends Observable { + constructor() { + super(); + this.observers = []; + this.closed = false; + this.isStopped = false; + this.hasError = false; + this.thrownError = null; + } + [rxSubscriberSymbol]() { + return new SubjectSubscriber(this); + } + lift(operator) { + const subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + } + next(value) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + if (!this.isStopped) { + const { observers } = this; + const len = observers.length; + const copy = observers.slice(); + for (let i = 0; i < len; i++) { + copy[i].next(value); + } + } + } + error(err) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.hasError = true; + this.thrownError = err; + this.isStopped = true; + const { observers } = this; + const len = observers.length; + const copy = observers.slice(); + for (let i = 0; i < len; i++) { + copy[i].error(err); + } + this.observers.length = 0; + } + complete() { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.isStopped = true; + const { observers } = this; + const len = observers.length; + const copy = observers.slice(); + for (let i = 0; i < len; i++) { + copy[i].complete(); + } + this.observers.length = 0; + } + unsubscribe() { + this.isStopped = true; + this.closed = true; + this.observers = null; + } + _trySubscribe(subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else { + return super._trySubscribe(subscriber); + } + } + _subscribe(subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } + else if (this.isStopped) { + subscriber.complete(); + return Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + return new SubjectSubscription(this, subscriber); + } + } + asObservable() { + const observable = new Observable(); + observable.source = this; + return observable; + } +} +Subject.create = (destination, source) => { + return new AnonymousSubject(destination, source); +}; +export class AnonymousSubject extends Subject { + constructor(destination, source) { + super(); + this.destination = destination; + this.source = source; + } + next(value) { + const { destination } = this; + if (destination && destination.next) { + destination.next(value); + } + } + error(err) { + const { destination } = this; + if (destination && destination.error) { + this.destination.error(err); + } + } + complete() { + const { destination } = this; + if (destination && destination.complete) { + this.destination.complete(); + } + } + _subscribe(subscriber) { + const { source } = this; + if (source) { + return this.source.subscribe(subscriber); + } + else { + return Subscription.EMPTY; + } + } +} +//# sourceMappingURL=Subject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Subject.js.map b/node_modules/rxjs/_esm2015/internal/Subject.js.map new file mode 100644 index 00000000..a826b0ff --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Subject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js b/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js new file mode 100644 index 00000000..0f1c5df6 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js @@ -0,0 +1,26 @@ +import { Subscription } from './Subscription'; +export class SubjectSubscription extends Subscription { + constructor(subject, subscriber) { + super(); + this.subject = subject; + this.subscriber = subscriber; + this.closed = false; + } + unsubscribe() { + if (this.closed) { + return; + } + this.closed = true; + const subject = this.subject; + const observers = subject.observers; + this.subject = null; + if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { + return; + } + const subscriberIndex = observers.indexOf(this.subscriber); + if (subscriberIndex !== -1) { + observers.splice(subscriberIndex, 1); + } + } +} +//# sourceMappingURL=SubjectSubscription.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map b/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map new file mode 100644 index 00000000..ef477fbd --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/SubjectSubscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubjectSubscription.js","sources":["../../src/internal/SubjectSubscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,MAAM,OAAO,mBAAuB,SAAQ,YAAY;IAGtD,YAAmB,OAAmB,EAAS,UAAuB;QACpE,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;QAAS,eAAU,GAAV,UAAU,CAAa;QAFtE,WAAM,GAAY,KAAK,CAAC;IAIxB,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;YAC/E,OAAO;SACR;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/Subscriber.js b/node_modules/rxjs/_esm2015/internal/Subscriber.js new file mode 100644 index 00000000..7dfed3c8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Subscriber.js @@ -0,0 +1,222 @@ +import { isFunction } from './util/isFunction'; +import { empty as emptyObserver } from './Observer'; +import { Subscription } from './Subscription'; +import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber'; +import { config } from './config'; +import { hostReportError } from './util/hostReportError'; +export class Subscriber extends Subscription { + constructor(destinationOrNext, error, complete) { + super(); + this.syncErrorValue = null; + this.syncErrorThrown = false; + this.syncErrorThrowable = false; + this.isStopped = false; + switch (arguments.length) { + case 0: + this.destination = emptyObserver; + break; + case 1: + if (!destinationOrNext) { + this.destination = emptyObserver; + break; + } + if (typeof destinationOrNext === 'object') { + if (destinationOrNext instanceof Subscriber) { + this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + this.destination = destinationOrNext; + destinationOrNext.add(this); + } + else { + this.syncErrorThrowable = true; + this.destination = new SafeSubscriber(this, destinationOrNext); + } + break; + } + default: + this.syncErrorThrowable = true; + this.destination = new SafeSubscriber(this, destinationOrNext, error, complete); + break; + } + } + [rxSubscriberSymbol]() { return this; } + static create(next, error, complete) { + const subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + } + next(value) { + if (!this.isStopped) { + this._next(value); + } + } + error(err) { + if (!this.isStopped) { + this.isStopped = true; + this._error(err); + } + } + complete() { + if (!this.isStopped) { + this.isStopped = true; + this._complete(); + } + } + unsubscribe() { + if (this.closed) { + return; + } + this.isStopped = true; + super.unsubscribe(); + } + _next(value) { + this.destination.next(value); + } + _error(err) { + this.destination.error(err); + this.unsubscribe(); + } + _complete() { + this.destination.complete(); + this.unsubscribe(); + } + _unsubscribeAndRecycle() { + const { _parentOrParents } = this; + this._parentOrParents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parentOrParents = _parentOrParents; + return this; + } +} +export class SafeSubscriber extends Subscriber { + constructor(_parentSubscriber, observerOrNext, error, complete) { + super(); + this._parentSubscriber = _parentSubscriber; + let next; + let context = this; + if (isFunction(observerOrNext)) { + next = observerOrNext; + } + else if (observerOrNext) { + next = observerOrNext.next; + error = observerOrNext.error; + complete = observerOrNext.complete; + if (observerOrNext !== emptyObserver) { + context = Object.create(observerOrNext); + if (isFunction(context.unsubscribe)) { + this.add(context.unsubscribe.bind(context)); + } + context.unsubscribe = this.unsubscribe.bind(this); + } + } + this._context = context; + this._next = next; + this._error = error; + this._complete = complete; + } + next(value) { + if (!this.isStopped && this._next) { + const { _parentSubscriber } = this; + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._next, value); + } + else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { + this.unsubscribe(); + } + } + } + error(err) { + if (!this.isStopped) { + const { _parentSubscriber } = this; + const { useDeprecatedSynchronousErrorHandling } = config; + if (this._error) { + if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } + else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + if (useDeprecatedSynchronousErrorHandling) { + throw err; + } + hostReportError(err); + } + else { + if (useDeprecatedSynchronousErrorHandling) { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + } + else { + hostReportError(err); + } + this.unsubscribe(); + } + } + } + complete() { + if (!this.isStopped) { + const { _parentSubscriber } = this; + if (this._complete) { + const wrappedComplete = () => this._complete.call(this._context); + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(wrappedComplete); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, wrappedComplete); + this.unsubscribe(); + } + } + else { + this.unsubscribe(); + } + } + } + __tryOrUnsub(fn, value) { + try { + fn.call(this._context, value); + } + catch (err) { + this.unsubscribe(); + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError(err); + } + } + } + __tryOrSetError(parent, fn, value) { + if (!config.useDeprecatedSynchronousErrorHandling) { + throw new Error('bad call'); + } + try { + fn.call(this._context, value); + } + catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + else { + hostReportError(err); + return true; + } + } + return false; + } + _unsubscribe() { + const { _parentSubscriber } = this; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + } +} +//# sourceMappingURL=Subscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Subscriber.js.map b/node_modules/rxjs/_esm2015/internal/Subscriber.js.map new file mode 100644 index 00000000..174aa152 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Subscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/Subscription.js b/node_modules/rxjs/_esm2015/internal/Subscription.js new file mode 100644 index 00000000..82ac7b7c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Subscription.js @@ -0,0 +1,137 @@ +import { isArray } from './util/isArray'; +import { isObject } from './util/isObject'; +import { isFunction } from './util/isFunction'; +import { UnsubscriptionError } from './util/UnsubscriptionError'; +export class Subscription { + constructor(unsubscribe) { + this.closed = false; + this._parentOrParents = null; + this._subscriptions = null; + if (unsubscribe) { + this._ctorUnsubscribe = true; + this._unsubscribe = unsubscribe; + } + } + unsubscribe() { + let errors; + if (this.closed) { + return; + } + let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = this; + this.closed = true; + this._parentOrParents = null; + this._subscriptions = null; + if (_parentOrParents instanceof Subscription) { + _parentOrParents.remove(this); + } + else if (_parentOrParents !== null) { + for (let index = 0; index < _parentOrParents.length; ++index) { + const parent = _parentOrParents[index]; + parent.remove(this); + } + } + if (isFunction(_unsubscribe)) { + if (_ctorUnsubscribe) { + this._unsubscribe = undefined; + } + try { + _unsubscribe.call(this); + } + catch (e) { + errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; + } + } + if (isArray(_subscriptions)) { + let index = -1; + let len = _subscriptions.length; + while (++index < len) { + const sub = _subscriptions[index]; + if (isObject(sub)) { + try { + sub.unsubscribe(); + } + catch (e) { + errors = errors || []; + if (e instanceof UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); + } + else { + errors.push(e); + } + } + } + } + } + if (errors) { + throw new UnsubscriptionError(errors); + } + } + add(teardown) { + let subscription = teardown; + if (!teardown) { + return Subscription.EMPTY; + } + switch (typeof teardown) { + case 'function': + subscription = new Subscription(teardown); + case 'object': + if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { + return subscription; + } + else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } + else if (!(subscription instanceof Subscription)) { + const tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: { + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + } + let { _parentOrParents } = subscription; + if (_parentOrParents === null) { + subscription._parentOrParents = this; + } + else if (_parentOrParents instanceof Subscription) { + if (_parentOrParents === this) { + return subscription; + } + subscription._parentOrParents = [_parentOrParents, this]; + } + else if (_parentOrParents.indexOf(this) === -1) { + _parentOrParents.push(this); + } + else { + return subscription; + } + const subscriptions = this._subscriptions; + if (subscriptions === null) { + this._subscriptions = [subscription]; + } + else { + subscriptions.push(subscription); + } + return subscription; + } + remove(subscription) { + const subscriptions = this._subscriptions; + if (subscriptions) { + const subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + } +} +Subscription.EMPTY = (function (empty) { + empty.closed = true; + return empty; +}(new Subscription())); +function flattenUnsubscriptionErrors(errors) { + return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []); +} +//# sourceMappingURL=Subscription.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/Subscription.js.map b/node_modules/rxjs/_esm2015/internal/Subscription.js.map new file mode 100644 index 00000000..9cfdb28c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/Subscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/config.js b/node_modules/rxjs/_esm2015/internal/config.js new file mode 100644 index 00000000..d237f155 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/config.js @@ -0,0 +1,18 @@ +let _enable_super_gross_mode_that_will_cause_bad_things = false; +export const config = { + Promise: undefined, + set useDeprecatedSynchronousErrorHandling(value) { + if (value) { + const error = new Error(); + console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); + } + else if (_enable_super_gross_mode_that_will_cause_bad_things) { + console.log('RxJS: Back to a better error behavior. Thank you. <3'); + } + _enable_super_gross_mode_that_will_cause_bad_things = value; + }, + get useDeprecatedSynchronousErrorHandling() { + return _enable_super_gross_mode_that_will_cause_bad_things; + }, +}; +//# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/config.js.map b/node_modules/rxjs/_esm2015/internal/config.js.map new file mode 100644 index 00000000..1b8c5be0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"config.js","sources":["../../src/internal/config.ts"],"names":[],"mappings":"AAAA,IAAI,mDAAmD,GAAG,KAAK,CAAC;AAMhE,MAAM,CAAC,MAAM,MAAM,GAAG;IAKpB,OAAO,EAAE,SAAmC;IAU5C,IAAI,qCAAqC,CAAC,KAAc;QACtD,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,+FAA+F,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7H;aAAM,IAAI,mDAAmD,EAAE;YAC9D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;SACrE;QACD,mDAAmD,GAAG,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,qCAAqC;QACvC,OAAO,mDAAmD,CAAC;IAC7D,CAAC;CACF,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/innerSubscribe.js b/node_modules/rxjs/_esm2015/internal/innerSubscribe.js new file mode 100644 index 00000000..e360ecb5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/innerSubscribe.js @@ -0,0 +1,71 @@ +import { Subscriber } from './Subscriber'; +import { Observable } from './Observable'; +import { subscribeTo } from './util/subscribeTo'; +export class SimpleInnerSubscriber extends Subscriber { + constructor(parent) { + super(); + this.parent = parent; + } + _next(value) { + this.parent.notifyNext(value); + } + _error(error) { + this.parent.notifyError(error); + this.unsubscribe(); + } + _complete() { + this.parent.notifyComplete(); + this.unsubscribe(); + } +} +export class ComplexInnerSubscriber extends Subscriber { + constructor(parent, outerValue, outerIndex) { + super(); + this.parent = parent; + this.outerValue = outerValue; + this.outerIndex = outerIndex; + } + _next(value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this); + } + _error(error) { + this.parent.notifyError(error); + this.unsubscribe(); + } + _complete() { + this.parent.notifyComplete(this); + this.unsubscribe(); + } +} +export class SimpleOuterSubscriber extends Subscriber { + notifyNext(innerValue) { + this.destination.next(innerValue); + } + notifyError(err) { + this.destination.error(err); + } + notifyComplete() { + this.destination.complete(); + } +} +export class ComplexOuterSubscriber extends Subscriber { + notifyNext(_outerValue, innerValue, _outerIndex, _innerSub) { + this.destination.next(innerValue); + } + notifyError(error) { + this.destination.error(error); + } + notifyComplete(_innerSub) { + this.destination.complete(); + } +} +export function innerSubscribe(result, innerSubscriber) { + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber); +} +//# sourceMappingURL=innerSubscribe.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/innerSubscribe.js.map b/node_modules/rxjs/_esm2015/internal/innerSubscribe.js.map new file mode 100644 index 00000000..3f203864 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/innerSubscribe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"innerSubscribe.js","sources":["../../src/internal/innerSubscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmBjD,MAAM,OAAO,qBAAyB,SAAQ,UAAa;IACzD,YAAoB,MAAsC;QACxD,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAgC;IAE1D,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAES,MAAM,CAAC,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,sBAA6B,SAAQ,UAAa;IAC7D,YAAoB,MAAoC,EAAS,UAAa,EAAS,UAAkB;QACvG,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAA8B;QAAS,eAAU,GAAV,UAAU,CAAG;QAAS,eAAU,GAAV,UAAU,CAAQ;IAEzG,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAES,MAAM,CAAC,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,qBAA4B,SAAQ,UAAa;IAC5D,UAAU,CAAC,UAAa;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,GAAQ;QAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF;AAOD,MAAM,OAAO,sBAA6B,SAAQ,UAAa;IAO7D,UAAU,CAAC,WAAc,EAAE,UAAa,EAAE,WAAmB,EAAE,SAAuC;QACpG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAKD,cAAc,CAAC,SAAuC;QACpD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,MAAW,EAAE,eAAgC;IAC1E,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,YAAY,UAAU,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAiB,CAAC;AAC9D,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js b/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js new file mode 100644 index 00000000..d9e6d47b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js @@ -0,0 +1,129 @@ +import { SubjectSubscriber } from '../Subject'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { refCount as higherOrderRefCount } from '../operators/refCount'; +export class ConnectableObservable extends Observable { + constructor(source, subjectFactory) { + super(); + this.source = source; + this.subjectFactory = subjectFactory; + this._refCount = 0; + this._isComplete = false; + } + _subscribe(subscriber) { + return this.getSubject().subscribe(subscriber); + } + getSubject() { + const subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + } + connect() { + let connection = this._connection; + if (!connection) { + this._isComplete = false; + connection = this._connection = new Subscription(); + connection.add(this.source + .subscribe(new ConnectableSubscriber(this.getSubject(), this))); + if (connection.closed) { + this._connection = null; + connection = Subscription.EMPTY; + } + } + return connection; + } + refCount() { + return higherOrderRefCount()(this); + } +} +export const connectableObservableDescriptor = (() => { + const connectableProto = ConnectableObservable.prototype; + return { + operator: { value: null }, + _refCount: { value: 0, writable: true }, + _subject: { value: null, writable: true }, + _connection: { value: null, writable: true }, + _subscribe: { value: connectableProto._subscribe }, + _isComplete: { value: connectableProto._isComplete, writable: true }, + getSubject: { value: connectableProto.getSubject }, + connect: { value: connectableProto.connect }, + refCount: { value: connectableProto.refCount } + }; +})(); +class ConnectableSubscriber extends SubjectSubscriber { + constructor(destination, connectable) { + super(destination); + this.connectable = connectable; + } + _error(err) { + this._unsubscribe(); + super._error(err); + } + _complete() { + this.connectable._isComplete = true; + this._unsubscribe(); + super._complete(); + } + _unsubscribe() { + const connectable = this.connectable; + if (connectable) { + this.connectable = null; + const connection = connectable._connection; + connectable._refCount = 0; + connectable._subject = null; + connectable._connection = null; + if (connection) { + connection.unsubscribe(); + } + } + } +} +class RefCountOperator { + constructor(connectable) { + this.connectable = connectable; + } + call(subscriber, source) { + const { connectable } = this; + connectable._refCount++; + const refCounter = new RefCountSubscriber(subscriber, connectable); + const subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + } +} +class RefCountSubscriber extends Subscriber { + constructor(destination, connectable) { + super(destination); + this.connectable = connectable; + } + _unsubscribe() { + const { connectable } = this; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + const refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + const { connection } = this; + const sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + } +} +//# sourceMappingURL=ConnectableObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map b/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map new file mode 100644 index 00000000..b4d080d7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConnectableObservable.js","sources":["../../../src/internal/observable/ConnectableObservable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js b/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js new file mode 100644 index 00000000..ebdaceb3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js @@ -0,0 +1,33 @@ +import { Observable } from '../Observable'; +import { asap } from '../scheduler/asap'; +import { isNumeric } from '../util/isNumeric'; +export class SubscribeOnObservable extends Observable { + constructor(source, delayTime = 0, scheduler = asap) { + super(); + this.source = source; + this.delayTime = delayTime; + this.scheduler = scheduler; + if (!isNumeric(delayTime) || delayTime < 0) { + this.delayTime = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + this.scheduler = asap; + } + } + static create(source, delay = 0, scheduler = asap) { + return new SubscribeOnObservable(source, delay, scheduler); + } + static dispatch(arg) { + const { source, subscriber } = arg; + return this.add(source.subscribe(subscriber)); + } + _subscribe(subscriber) { + const delay = this.delayTime; + const source = this.source; + const scheduler = this.scheduler; + return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { + source, subscriber + }); + } +} +//# sourceMappingURL=SubscribeOnObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map new file mode 100644 index 00000000..f369182e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/SubscribeOnObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscribeOnObservable.js","sources":["../../../src/internal/observable/SubscribeOnObservable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY9C,MAAM,OAAO,qBAAyB,SAAQ,UAAa;IAYzD,YAAmB,MAAqB,EACpB,YAAoB,CAAC,EACrB,YAA2B,IAAI;QACjD,KAAK,EAAE,CAAC;QAHS,WAAM,GAAN,MAAM,CAAe;QACpB,cAAS,GAAT,SAAS,CAAY;QACrB,cAAS,GAAT,SAAS,CAAsB;QAEjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YAC1C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;YAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IApBD,MAAM,CAAC,MAAM,CAAI,MAAqB,EAAE,QAAgB,CAAC,EAAE,YAA2B,IAAI;QACxF,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAGD,MAAM,CAAC,QAAQ,CAA8B,GAAmB;QAC9D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAeD,UAAU,CAAC,UAAyB;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAmB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE;YACjF,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js b/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js new file mode 100644 index 00000000..6d747734 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js @@ -0,0 +1,85 @@ +import { Observable } from '../Observable'; +import { AsyncSubject } from '../AsyncSubject'; +import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; +import { isArray } from '../util/isArray'; +import { isScheduler } from '../util/isScheduler'; +export function bindCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return (...args) => bindCallback(callbackFunc, scheduler)(...args).pipe(map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args))); + } + } + return function (...args) { + const context = this; + let subject; + const params = { + context, + subject, + callbackFunc, + scheduler, + }; + return new Observable(subscriber => { + if (!scheduler) { + if (!subject) { + subject = new AsyncSubject(); + const handler = (...innerArgs) => { + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, [...args, handler]); + } + catch (err) { + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + const state = { + args, subscriber, params, + }; + return scheduler.schedule(dispatch, 0, state); + } + }); + }; +} +function dispatch(state) { + const self = this; + const { args, subscriber, params } = state; + const { callbackFunc, context, scheduler } = params; + let { subject } = params; + if (!subject) { + subject = params.subject = new AsyncSubject(); + const handler = (...innerArgs) => { + const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + this.add(scheduler.schedule(dispatchNext, 0, { value, subject })); + }; + try { + callbackFunc.apply(context, [...args, handler]); + } + catch (err) { + subject.error(err); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(state) { + const { value, subject } = state; + subject.next(value); + subject.complete(); +} +function dispatchError(state) { + const { err, subject } = state; + subject.error(err); +} +//# sourceMappingURL=bindCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map b/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map new file mode 100644 index 00000000..205826bc --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/bindCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js b/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js new file mode 100644 index 00000000..81ca5a65 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js @@ -0,0 +1,93 @@ +import { Observable } from '../Observable'; +import { AsyncSubject } from '../AsyncSubject'; +import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; +import { isScheduler } from '../util/isScheduler'; +import { isArray } from '../util/isArray'; +export function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return (...args) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))); + } + } + return function (...args) { + const params = { + subject: undefined, + args, + callbackFunc, + scheduler, + context: this, + }; + return new Observable(subscriber => { + const { context } = params; + let { subject } = params; + if (!scheduler) { + if (!subject) { + subject = params.subject = new AsyncSubject(); + const handler = (...innerArgs) => { + const err = innerArgs.shift(); + if (err) { + subject.error(err); + return; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, [...args, handler]); + } + catch (err) { + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(dispatch, 0, { params, subscriber, context }); + } + }); + }; +} +function dispatch(state) { + const { params, subscriber, context } = state; + const { callbackFunc, args, scheduler } = params; + let subject = params.subject; + if (!subject) { + subject = params.subject = new AsyncSubject(); + const handler = (...innerArgs) => { + const err = innerArgs.shift(); + if (err) { + this.add(scheduler.schedule(dispatchError, 0, { err, subject })); + } + else { + const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + this.add(scheduler.schedule(dispatchNext, 0, { value, subject })); + } + }; + try { + callbackFunc.apply(context, [...args, handler]); + } + catch (err) { + this.add(scheduler.schedule(dispatchError, 0, { err, subject })); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(arg) { + const { value, subject } = arg; + subject.next(value); + subject.complete(); +} +function dispatchError(arg) { + const { err, subject } = arg; + subject.error(err); +} +//# sourceMappingURL=bindNodeCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map b/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map new file mode 100644 index 00000000..6382afd2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/bindNodeCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js b/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js new file mode 100644 index 00000000..d33018be --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js @@ -0,0 +1,89 @@ +import { isScheduler } from '../util/isScheduler'; +import { isArray } from '../util/isArray'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { fromArray } from './fromArray'; +const NONE = {}; +export function combineLatest(...observables) { + let resultSelector = undefined; + let scheduler = undefined; + if (isScheduler(observables[observables.length - 1])) { + scheduler = observables.pop(); + } + if (typeof observables[observables.length - 1] === 'function') { + resultSelector = observables.pop(); + } + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0]; + } + return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); +} +export class CombineLatestOperator { + constructor(resultSelector) { + this.resultSelector = resultSelector; + } + call(subscriber, source) { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); + } +} +export class CombineLatestSubscriber extends OuterSubscriber { + constructor(destination, resultSelector) { + super(destination); + this.resultSelector = resultSelector; + this.active = 0; + this.values = []; + this.observables = []; + } + _next(observable) { + this.values.push(NONE); + this.observables.push(observable); + } + _complete() { + const observables = this.observables; + const len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + this.active = len; + this.toRespond = len; + for (let i = 0; i < len; i++) { + const observable = observables[i]; + this.add(subscribeToResult(this, observable, undefined, i)); + } + } + } + notifyComplete(unused) { + if ((this.active -= 1) === 0) { + this.destination.complete(); + } + } + notifyNext(_outerValue, innerValue, outerIndex) { + const values = this.values; + const oldVal = values[outerIndex]; + const toRespond = !this.toRespond + ? 0 + : oldVal === NONE ? --this.toRespond : this.toRespond; + values[outerIndex] = innerValue; + if (toRespond === 0) { + if (this.resultSelector) { + this._tryResultSelector(values); + } + else { + this.destination.next(values.slice()); + } + } + } + _tryResultSelector(values) { + let result; + try { + result = this.resultSelector.apply(this, values); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + } +} +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map b/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map new file mode 100644 index 00000000..77d2f108 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/observable/combineLatest.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/concat.js b/node_modules/rxjs/_esm2015/internal/observable/concat.js new file mode 100644 index 00000000..f4c0fef8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/concat.js @@ -0,0 +1,6 @@ +import { of } from './of'; +import { concatAll } from '../operators/concatAll'; +export function concat(...observables) { + return concatAll()(of(...observables)); +} +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/concat.js.map b/node_modules/rxjs/_esm2015/internal/observable/concat.js.map new file mode 100644 index 00000000..da4d8f8c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../../src/internal/observable/concat.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA2InD,MAAM,UAAU,MAAM,CAAoC,GAAG,WAAqC;IAChG,OAAO,SAAS,EAAK,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AAC5C,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/defer.js b/node_modules/rxjs/_esm2015/internal/observable/defer.js new file mode 100644 index 00000000..c730f4cc --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/defer.js @@ -0,0 +1,18 @@ +import { Observable } from '../Observable'; +import { from } from './from'; +import { empty } from './empty'; +export function defer(observableFactory) { + return new Observable(subscriber => { + let input; + try { + input = observableFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + const source = input ? from(input) : empty(); + return source.subscribe(subscriber); + }); +} +//# sourceMappingURL=defer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/defer.js.map b/node_modules/rxjs/_esm2015/internal/observable/defer.js.map new file mode 100644 index 00000000..2f606542 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/defer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defer.js","sources":["../../../src/internal/observable/defer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAmDhC,MAAM,UAAU,KAAK,CAAwC,iBAA0B;IACrF,OAAO,IAAI,UAAU,CAAqB,UAAU,CAAC,EAAE;QACrD,IAAI,KAAe,CAAC;QACpB,IAAI;YACF,KAAK,GAAG,iBAAiB,EAAE,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAA4C,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACpF,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js b/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js new file mode 100644 index 00000000..ceb15ff7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js @@ -0,0 +1,359 @@ +import { root } from '../../util/root'; +import { Observable } from '../../Observable'; +import { Subscriber } from '../../Subscriber'; +import { map } from '../../operators/map'; +function getCORSRequest() { + if (root.XMLHttpRequest) { + return new root.XMLHttpRequest(); + } + else if (!!root.XDomainRequest) { + return new root.XDomainRequest(); + } + else { + throw new Error('CORS is not supported by your browser'); + } +} +function getXMLHttpRequest() { + if (root.XMLHttpRequest) { + return new root.XMLHttpRequest(); + } + else { + let progId; + try { + const progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; + for (let i = 0; i < 3; i++) { + try { + progId = progIds[i]; + if (new root.ActiveXObject(progId)) { + break; + } + } + catch (e) { + } + } + return new root.ActiveXObject(progId); + } + catch (e) { + throw new Error('XMLHttpRequest is not supported by your browser'); + } + } +} +export function ajaxGet(url, headers = null) { + return new AjaxObservable({ method: 'GET', url, headers }); +} +export function ajaxPost(url, body, headers) { + return new AjaxObservable({ method: 'POST', url, body, headers }); +} +export function ajaxDelete(url, headers) { + return new AjaxObservable({ method: 'DELETE', url, headers }); +} +export function ajaxPut(url, body, headers) { + return new AjaxObservable({ method: 'PUT', url, body, headers }); +} +export function ajaxPatch(url, body, headers) { + return new AjaxObservable({ method: 'PATCH', url, body, headers }); +} +const mapResponse = map((x, index) => x.response); +export function ajaxGetJSON(url, headers) { + return mapResponse(new AjaxObservable({ + method: 'GET', + url, + responseType: 'json', + headers + })); +} +export class AjaxObservable extends Observable { + constructor(urlOrRequest) { + super(); + const request = { + async: true, + createXHR: function () { + return this.crossDomain ? getCORSRequest() : getXMLHttpRequest(); + }, + crossDomain: true, + withCredentials: false, + headers: {}, + method: 'GET', + responseType: 'json', + timeout: 0 + }; + if (typeof urlOrRequest === 'string') { + request.url = urlOrRequest; + } + else { + for (const prop in urlOrRequest) { + if (urlOrRequest.hasOwnProperty(prop)) { + request[prop] = urlOrRequest[prop]; + } + } + } + this.request = request; + } + _subscribe(subscriber) { + return new AjaxSubscriber(subscriber, this.request); + } +} +AjaxObservable.create = (() => { + const create = (urlOrRequest) => { + return new AjaxObservable(urlOrRequest); + }; + create.get = ajaxGet; + create.post = ajaxPost; + create.delete = ajaxDelete; + create.put = ajaxPut; + create.patch = ajaxPatch; + create.getJSON = ajaxGetJSON; + return create; +})(); +export class AjaxSubscriber extends Subscriber { + constructor(destination, request) { + super(destination); + this.request = request; + this.done = false; + const headers = request.headers = request.headers || {}; + if (!request.crossDomain && !this.getHeader(headers, 'X-Requested-With')) { + headers['X-Requested-With'] = 'XMLHttpRequest'; + } + let contentTypeHeader = this.getHeader(headers, 'Content-Type'); + if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') { + headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + } + request.body = this.serializeBody(request.body, this.getHeader(request.headers, 'Content-Type')); + this.send(); + } + next(e) { + this.done = true; + const { xhr, request, destination } = this; + let result; + try { + result = new AjaxResponse(e, xhr, request); + } + catch (err) { + return destination.error(err); + } + destination.next(result); + } + send() { + const { request, request: { user, method, url, async, password, headers, body } } = this; + try { + const xhr = this.xhr = request.createXHR(); + this.setupEvents(xhr, request); + if (user) { + xhr.open(method, url, async, user, password); + } + else { + xhr.open(method, url, async); + } + if (async) { + xhr.timeout = request.timeout; + xhr.responseType = request.responseType; + } + if ('withCredentials' in xhr) { + xhr.withCredentials = !!request.withCredentials; + } + this.setHeaders(xhr, headers); + if (body) { + xhr.send(body); + } + else { + xhr.send(); + } + } + catch (err) { + this.error(err); + } + } + serializeBody(body, contentType) { + if (!body || typeof body === 'string') { + return body; + } + else if (root.FormData && body instanceof root.FormData) { + return body; + } + if (contentType) { + const splitIndex = contentType.indexOf(';'); + if (splitIndex !== -1) { + contentType = contentType.substring(0, splitIndex); + } + } + switch (contentType) { + case 'application/x-www-form-urlencoded': + return Object.keys(body).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(body[key])}`).join('&'); + case 'application/json': + return JSON.stringify(body); + default: + return body; + } + } + setHeaders(xhr, headers) { + for (let key in headers) { + if (headers.hasOwnProperty(key)) { + xhr.setRequestHeader(key, headers[key]); + } + } + } + getHeader(headers, headerName) { + for (let key in headers) { + if (key.toLowerCase() === headerName.toLowerCase()) { + return headers[key]; + } + } + return undefined; + } + setupEvents(xhr, request) { + const progressSubscriber = request.progressSubscriber; + function xhrTimeout(e) { + const { subscriber, progressSubscriber, request } = xhrTimeout; + if (progressSubscriber) { + progressSubscriber.error(e); + } + let error; + try { + error = new AjaxTimeoutError(this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + xhr.ontimeout = xhrTimeout; + xhrTimeout.request = request; + xhrTimeout.subscriber = this; + xhrTimeout.progressSubscriber = progressSubscriber; + if (xhr.upload && 'withCredentials' in xhr) { + if (progressSubscriber) { + let xhrProgress; + xhrProgress = function (e) { + const { progressSubscriber } = xhrProgress; + progressSubscriber.next(e); + }; + if (root.XDomainRequest) { + xhr.onprogress = xhrProgress; + } + else { + xhr.upload.onprogress = xhrProgress; + } + xhrProgress.progressSubscriber = progressSubscriber; + } + let xhrError; + xhrError = function (e) { + const { progressSubscriber, subscriber, request } = xhrError; + if (progressSubscriber) { + progressSubscriber.error(e); + } + let error; + try { + error = new AjaxError('ajax error', this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + }; + xhr.onerror = xhrError; + xhrError.request = request; + xhrError.subscriber = this; + xhrError.progressSubscriber = progressSubscriber; + } + function xhrReadyStateChange(e) { + return; + } + xhr.onreadystatechange = xhrReadyStateChange; + xhrReadyStateChange.subscriber = this; + xhrReadyStateChange.progressSubscriber = progressSubscriber; + xhrReadyStateChange.request = request; + function xhrLoad(e) { + const { subscriber, progressSubscriber, request } = xhrLoad; + if (this.readyState === 4) { + let status = this.status === 1223 ? 204 : this.status; + let response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response); + if (status === 0) { + status = response ? 200 : 0; + } + if (status < 400) { + if (progressSubscriber) { + progressSubscriber.complete(); + } + subscriber.next(e); + subscriber.complete(); + } + else { + if (progressSubscriber) { + progressSubscriber.error(e); + } + let error; + try { + error = new AjaxError('ajax error ' + status, this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + } + } + xhr.onload = xhrLoad; + xhrLoad.subscriber = this; + xhrLoad.progressSubscriber = progressSubscriber; + xhrLoad.request = request; + } + unsubscribe() { + const { done, xhr } = this; + if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') { + xhr.abort(); + } + super.unsubscribe(); + } +} +export class AjaxResponse { + constructor(originalEvent, xhr, request) { + this.originalEvent = originalEvent; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + } +} +const AjaxErrorImpl = (() => { + function AjaxErrorImpl(message, xhr, request) { + Error.call(this); + this.message = message; + this.name = 'AjaxError'; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + return this; + } + AjaxErrorImpl.prototype = Object.create(Error.prototype); + return AjaxErrorImpl; +})(); +export const AjaxError = AjaxErrorImpl; +function parseJson(xhr) { + if ('response' in xhr) { + return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null'); + } + else { + return JSON.parse(xhr.responseText || 'null'); + } +} +function parseXhrResponse(responseType, xhr) { + switch (responseType) { + case 'json': + return parseJson(xhr); + case 'xml': + return xhr.responseXML; + case 'text': + default: + return ('response' in xhr) ? xhr.response : xhr.responseText; + } +} +function AjaxTimeoutErrorImpl(xhr, request) { + AjaxError.call(this, 'ajax timeout', xhr, request); + this.name = 'AjaxTimeoutError'; + return this; +} +export const AjaxTimeoutError = AjaxTimeoutErrorImpl; +//# sourceMappingURL=AjaxObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map new file mode 100644 index 00000000..2f20380c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AjaxObservable.js","sources":["../../../../src/internal/observable/dom/AjaxObservable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js b/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js new file mode 100644 index 00000000..357d29b7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js @@ -0,0 +1,209 @@ +import { Subject, AnonymousSubject } from '../../Subject'; +import { Subscriber } from '../../Subscriber'; +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { ReplaySubject } from '../../ReplaySubject'; +const DEFAULT_WEBSOCKET_CONFIG = { + url: '', + deserializer: (e) => JSON.parse(e.data), + serializer: (value) => JSON.stringify(value), +}; +const WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }'; +export class WebSocketSubject extends AnonymousSubject { + constructor(urlConfigOrSource, destination) { + super(); + if (urlConfigOrSource instanceof Observable) { + this.destination = destination; + this.source = urlConfigOrSource; + } + else { + const config = this._config = Object.assign({}, DEFAULT_WEBSOCKET_CONFIG); + this._output = new Subject(); + if (typeof urlConfigOrSource === 'string') { + config.url = urlConfigOrSource; + } + else { + for (let key in urlConfigOrSource) { + if (urlConfigOrSource.hasOwnProperty(key)) { + config[key] = urlConfigOrSource[key]; + } + } + } + if (!config.WebSocketCtor && WebSocket) { + config.WebSocketCtor = WebSocket; + } + else if (!config.WebSocketCtor) { + throw new Error('no WebSocket constructor can be found'); + } + this.destination = new ReplaySubject(); + } + } + lift(operator) { + const sock = new WebSocketSubject(this._config, this.destination); + sock.operator = operator; + sock.source = this; + return sock; + } + _resetState() { + this._socket = null; + if (!this.source) { + this.destination = new ReplaySubject(); + } + this._output = new Subject(); + } + multiplex(subMsg, unsubMsg, messageFilter) { + const self = this; + return new Observable((observer) => { + try { + self.next(subMsg()); + } + catch (err) { + observer.error(err); + } + const subscription = self.subscribe(x => { + try { + if (messageFilter(x)) { + observer.next(x); + } + } + catch (err) { + observer.error(err); + } + }, err => observer.error(err), () => observer.complete()); + return () => { + try { + self.next(unsubMsg()); + } + catch (err) { + observer.error(err); + } + subscription.unsubscribe(); + }; + }); + } + _connectSocket() { + const { WebSocketCtor, protocol, url, binaryType } = this._config; + const observer = this._output; + let socket = null; + try { + socket = protocol ? + new WebSocketCtor(url, protocol) : + new WebSocketCtor(url); + this._socket = socket; + if (binaryType) { + this._socket.binaryType = binaryType; + } + } + catch (e) { + observer.error(e); + return; + } + const subscription = new Subscription(() => { + this._socket = null; + if (socket && socket.readyState === 1) { + socket.close(); + } + }); + socket.onopen = (e) => { + const { _socket } = this; + if (!_socket) { + socket.close(); + this._resetState(); + return; + } + const { openObserver } = this._config; + if (openObserver) { + openObserver.next(e); + } + const queue = this.destination; + this.destination = Subscriber.create((x) => { + if (socket.readyState === 1) { + try { + const { serializer } = this._config; + socket.send(serializer(x)); + } + catch (e) { + this.destination.error(e); + } + } + }, (e) => { + const { closingObserver } = this._config; + if (closingObserver) { + closingObserver.next(undefined); + } + if (e && e.code) { + socket.close(e.code, e.reason); + } + else { + observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT)); + } + this._resetState(); + }, () => { + const { closingObserver } = this._config; + if (closingObserver) { + closingObserver.next(undefined); + } + socket.close(); + this._resetState(); + }); + if (queue && queue instanceof ReplaySubject) { + subscription.add(queue.subscribe(this.destination)); + } + }; + socket.onerror = (e) => { + this._resetState(); + observer.error(e); + }; + socket.onclose = (e) => { + this._resetState(); + const { closeObserver } = this._config; + if (closeObserver) { + closeObserver.next(e); + } + if (e.wasClean) { + observer.complete(); + } + else { + observer.error(e); + } + }; + socket.onmessage = (e) => { + try { + const { deserializer } = this._config; + observer.next(deserializer(e)); + } + catch (err) { + observer.error(err); + } + }; + } + _subscribe(subscriber) { + const { source } = this; + if (source) { + return source.subscribe(subscriber); + } + if (!this._socket) { + this._connectSocket(); + } + this._output.subscribe(subscriber); + subscriber.add(() => { + const { _socket } = this; + if (this._output.observers.length === 0) { + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + this._resetState(); + } + }); + return subscriber; + } + unsubscribe() { + const { _socket } = this; + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + this._resetState(); + super.unsubscribe(); + } +} +//# sourceMappingURL=WebSocketSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map new file mode 100644 index 00000000..46e5ddd9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/WebSocketSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WebSocketSubject.js","sources":["../../../../src/internal/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js b/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js new file mode 100644 index 00000000..3ac14f25 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js @@ -0,0 +1,3 @@ +import { AjaxObservable } from './AjaxObservable'; +export const ajax = (() => AjaxObservable.create)(); +//# sourceMappingURL=ajax.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map new file mode 100644 index 00000000..4803b493 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/ajax.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.js","sources":["../../../../src/internal/observable/dom/ajax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAiFxE,MAAM,CAAC,MAAM,IAAI,GAAuB,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js b/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js new file mode 100644 index 00000000..d37f68d1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js @@ -0,0 +1,67 @@ +import * as tslib_1 from "tslib"; +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { from } from '../../observable/from'; +export function fromFetch(input, initWithSelector = {}) { + const { selector } = initWithSelector, init = tslib_1.__rest(initWithSelector, ["selector"]); + return new Observable(subscriber => { + const controller = new AbortController(); + const signal = controller.signal; + let abortable = true; + let unsubscribed = false; + const subscription = new Subscription(); + subscription.add(() => { + unsubscribed = true; + if (abortable) { + controller.abort(); + } + }); + let perSubscriberInit; + if (init) { + if (init.signal) { + if (init.signal.aborted) { + controller.abort(); + } + else { + const outerSignal = init.signal; + const outerSignalHandler = () => { + if (!signal.aborted) { + controller.abort(); + } + }; + outerSignal.addEventListener('abort', outerSignalHandler); + subscription.add(() => outerSignal.removeEventListener('abort', outerSignalHandler)); + } + } + perSubscriberInit = Object.assign({}, init, { signal }); + } + else { + perSubscriberInit = { signal }; + } + fetch(input, perSubscriberInit).then(response => { + if (selector) { + subscription.add(from(selector(response)).subscribe(value => subscriber.next(value), err => { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }, () => { + abortable = false; + subscriber.complete(); + })); + } + else { + abortable = false; + subscriber.next(response); + subscriber.complete(); + } + }).catch(err => { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }); + return subscription; + }); +} +//# sourceMappingURL=fetch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map new file mode 100644 index 00000000..def9613d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/fetch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fetch.js","sources":["../../../../src/internal/observable/dom/fetch.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AA8F7C,MAAM,UAAU,SAAS,CACvB,KAAuB,EACvB,mBAEI,EAAE;IAEN,MAAM,EAAE,QAAQ,KAAc,gBAAgB,EAA5B,qDAA4B,CAAC;IAC/C,OAAO,IAAI,UAAU,CAAe,UAAU,CAAC,EAAE;QAC/C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;YACpB,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,SAAS,EAAE;gBACb,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,iBAA8B,CAAC;QACnC,IAAI,IAAI,EAAE;YAER,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;qBAAM;oBACL,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;oBAChC,MAAM,kBAAkB,GAAG,GAAG,EAAE;wBAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BACnB,UAAU,CAAC,KAAK,EAAE,CAAC;yBACpB;oBACH,CAAC,CAAC;oBACF,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;oBAC1D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;iBACtF;aACF;YAGD,iBAAiB,qBAAQ,IAAI,IAAE,MAAM,GAAE,CAAC;SACzC;aAAM;YACL,iBAAiB,GAAG,EAAE,MAAM,EAAE,CAAC;SAChC;QAED,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC9C,IAAI,QAAQ,EAAE;gBACZ,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACjD,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAC/B,GAAG,CAAC,EAAE;oBACJ,SAAS,GAAG,KAAK,CAAC;oBAClB,IAAI,CAAC,YAAY,EAAE;wBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACvB;gBACH,CAAC,EACD,GAAG,EAAE;oBACH,SAAS,GAAG,KAAK,CAAC;oBAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC,CACF,CAAC,CAAC;aACJ;iBAAM;gBACL,SAAS,GAAG,KAAK,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;aACvB;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACb,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE;gBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js b/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js new file mode 100644 index 00000000..73a51ab4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js @@ -0,0 +1,5 @@ +import { WebSocketSubject } from './WebSocketSubject'; +export function webSocket(urlConfigOrSource) { + return new WebSocketSubject(urlConfigOrSource); +} +//# sourceMappingURL=webSocket.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map b/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map new file mode 100644 index 00000000..821e4e62 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/dom/webSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webSocket.js","sources":["../../../../src/internal/observable/dom/webSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAyJ9E,MAAM,UAAU,SAAS,CAAI,iBAAqD;IAChF,OAAO,IAAI,gBAAgB,CAAI,iBAAiB,CAAC,CAAC;AACpD,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/empty.js b/node_modules/rxjs/_esm2015/internal/observable/empty.js new file mode 100644 index 00000000..6cbbbdc6 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/empty.js @@ -0,0 +1,9 @@ +import { Observable } from '../Observable'; +export const EMPTY = new Observable(subscriber => subscriber.complete()); +export function empty(scheduler) { + return scheduler ? emptyScheduled(scheduler) : EMPTY; +} +function emptyScheduled(scheduler) { + return new Observable(subscriber => scheduler.schedule(() => subscriber.complete())); +} +//# sourceMappingURL=empty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/empty.js.map b/node_modules/rxjs/_esm2015/internal/observable/empty.js.map new file mode 100644 index 00000000..34f52c91 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/empty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"empty.js","sources":["../../../src/internal/observable/empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAsDhF,MAAM,UAAU,KAAK,CAAC,SAAyB;IAC7C,OAAO,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO,IAAI,UAAU,CAAQ,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js b/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js new file mode 100644 index 00000000..ca915a1c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js @@ -0,0 +1,61 @@ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { map } from '../operators/map'; +import { isObject } from '../util/isObject'; +import { from } from './from'; +export function forkJoin(...sources) { + if (sources.length === 1) { + const first = sources[0]; + if (isArray(first)) { + return forkJoinInternal(first, null); + } + if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) { + const keys = Object.keys(first); + return forkJoinInternal(keys.map(key => first[key]), keys); + } + } + if (typeof sources[sources.length - 1] === 'function') { + const resultSelector = sources.pop(); + sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources; + return forkJoinInternal(sources, null).pipe(map((args) => resultSelector(...args))); + } + return forkJoinInternal(sources, null); +} +function forkJoinInternal(sources, keys) { + return new Observable(subscriber => { + const len = sources.length; + if (len === 0) { + subscriber.complete(); + return; + } + const values = new Array(len); + let completed = 0; + let emitted = 0; + for (let i = 0; i < len; i++) { + const source = from(sources[i]); + let hasValue = false; + subscriber.add(source.subscribe({ + next: value => { + if (!hasValue) { + hasValue = true; + emitted++; + } + values[i] = value; + }, + error: err => subscriber.error(err), + complete: () => { + completed++; + if (completed === len || !hasValue) { + if (emitted === len) { + subscriber.next(keys ? + keys.reduce((result, key, i) => (result[key] = values[i], result), {}) : + values); + } + subscriber.complete(); + } + } + })); + } + }); +} +//# sourceMappingURL=forkJoin.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map b/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map new file mode 100644 index 00000000..f853804e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/forkJoin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forkJoin.js","sources":["../../../src/internal/observable/forkJoin.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/from.js b/node_modules/rxjs/_esm2015/internal/observable/from.js new file mode 100644 index 00000000..8dfff4e7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/from.js @@ -0,0 +1,15 @@ +import { Observable } from '../Observable'; +import { subscribeTo } from '../util/subscribeTo'; +import { scheduled } from '../scheduled/scheduled'; +export function from(input, scheduler) { + if (!scheduler) { + if (input instanceof Observable) { + return input; + } + return new Observable(subscribeTo(input)); + } + else { + return scheduled(input, scheduler); + } +} +//# sourceMappingURL=from.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/from.js.map b/node_modules/rxjs/_esm2015/internal/observable/from.js.map new file mode 100644 index 00000000..d0b7a0a7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/from.js.map @@ -0,0 +1 @@ +{"version":3,"file":"from.js","sources":["../../../src/internal/observable/from.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAyGnD,MAAM,UAAU,IAAI,CAAI,KAAyB,EAAE,SAAyB;IAC1E,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,YAAY,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,UAAU,CAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACpC;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromArray.js b/node_modules/rxjs/_esm2015/internal/observable/fromArray.js new file mode 100644 index 00000000..b7384336 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromArray.js @@ -0,0 +1,12 @@ +import { Observable } from '../Observable'; +import { subscribeToArray } from '../util/subscribeToArray'; +import { scheduleArray } from '../scheduled/scheduleArray'; +export function fromArray(input, scheduler) { + if (!scheduler) { + return new Observable(subscribeToArray(input)); + } + else { + return scheduleArray(input, scheduler); + } +} +//# sourceMappingURL=fromArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map new file mode 100644 index 00000000..55af2bac --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromArray.js","sources":["../../../src/internal/observable/fromArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAI,KAAmB,EAAE,SAAyB;IACzE,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js b/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js new file mode 100644 index 00000000..141acced --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js @@ -0,0 +1,62 @@ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { isFunction } from '../util/isFunction'; +import { map } from '../operators/map'; +const toString = (() => Object.prototype.toString)(); +export function fromEvent(target, eventName, options, resultSelector) { + if (isFunction(options)) { + resultSelector = options; + options = undefined; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))); + } + return new Observable(subscriber => { + function handler(e) { + if (arguments.length > 1) { + subscriber.next(Array.prototype.slice.call(arguments)); + } + else { + subscriber.next(e); + } + } + setupSubscription(target, eventName, handler, subscriber, options); + }); +} +function setupSubscription(sourceObj, eventName, handler, subscriber, options) { + let unsubscribe; + if (isEventTarget(sourceObj)) { + const source = sourceObj; + sourceObj.addEventListener(eventName, handler, options); + unsubscribe = () => source.removeEventListener(eventName, handler, options); + } + else if (isJQueryStyleEventEmitter(sourceObj)) { + const source = sourceObj; + sourceObj.on(eventName, handler); + unsubscribe = () => source.off(eventName, handler); + } + else if (isNodeStyleEventEmitter(sourceObj)) { + const source = sourceObj; + sourceObj.addListener(eventName, handler); + unsubscribe = () => source.removeListener(eventName, handler); + } + else if (sourceObj && sourceObj.length) { + for (let i = 0, len = sourceObj.length; i < len; i++) { + setupSubscription(sourceObj[i], eventName, handler, subscriber, options); + } + } + else { + throw new TypeError('Invalid event target'); + } + subscriber.add(unsubscribe); +} +function isNodeStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; +} +function isJQueryStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; +} +function isEventTarget(sourceObj) { + return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; +} +//# sourceMappingURL=fromEvent.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map new file mode 100644 index 00000000..41428ba3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromEvent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEvent.js","sources":["../../../src/internal/observable/fromEvent.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js b/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js new file mode 100644 index 00000000..e9e59355 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js @@ -0,0 +1,25 @@ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { isFunction } from '../util/isFunction'; +import { map } from '../operators/map'; +export function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args))); + } + return new Observable(subscriber => { + const handler = (...e) => subscriber.next(e.length === 1 ? e[0] : e); + let retValue; + try { + retValue = addHandler(handler); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!isFunction(removeHandler)) { + return undefined; + } + return () => removeHandler(handler, retValue); + }); +} +//# sourceMappingURL=fromEventPattern.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map new file mode 100644 index 00000000..976454ad --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEventPattern.js","sources":["../../../src/internal/observable/fromEventPattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAwIvC,MAAM,UAAU,gBAAgB,CAAI,UAA8C,EAC9C,aAAiE,EACjE,cAAsC;IAExE,IAAI,cAAc,EAAE;QAElB,OAAO,gBAAgB,CAAI,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CACxD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAC5E,CAAC;KACH;IAED,OAAO,IAAI,UAAU,CAAU,UAAU,CAAC,EAAE;QAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,IAAI,QAAa,CAAC;QAClB,IAAI;YACF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAE;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js b/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js new file mode 100644 index 00000000..4788d58f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js @@ -0,0 +1,15 @@ +import { Observable } from '../Observable'; +import { subscribeToIterable } from '../util/subscribeToIterable'; +import { scheduleIterable } from '../scheduled/scheduleIterable'; +export function fromIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + if (!scheduler) { + return new Observable(subscribeToIterable(input)); + } + else { + return scheduleIterable(input, scheduler); + } +} +//# sourceMappingURL=fromIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map new file mode 100644 index 00000000..f150bb3e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromIterable.js","sources":["../../../src/internal/observable/fromIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAI,KAAkB,EAAE,SAAyB;IAC3E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC3C;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js b/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js new file mode 100644 index 00000000..127086cf --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js @@ -0,0 +1,12 @@ +import { Observable } from '../Observable'; +import { subscribeToPromise } from '../util/subscribeToPromise'; +import { schedulePromise } from '../scheduled/schedulePromise'; +export function fromPromise(input, scheduler) { + if (!scheduler) { + return new Observable(subscribeToPromise(input)); + } + else { + return schedulePromise(input, scheduler); + } +} +//# sourceMappingURL=fromPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map b/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map new file mode 100644 index 00000000..d695e5bb --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/fromPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromPromise.js","sources":["../../../src/internal/observable/fromPromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,WAAW,CAAI,KAAqB,EAAE,SAAyB;IAC7E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;SAAM;QACL,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC1C;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/generate.js b/node_modules/rxjs/_esm2015/internal/observable/generate.js new file mode 100644 index 00000000..6f07fa1c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/generate.js @@ -0,0 +1,124 @@ +import { Observable } from '../Observable'; +import { identity } from '../util/identity'; +import { isScheduler } from '../util/isScheduler'; +export function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { + let resultSelector; + let initialState; + if (arguments.length == 1) { + const options = initialStateOrOptions; + initialState = options.initialState; + condition = options.condition; + iterate = options.iterate; + resultSelector = options.resultSelector || identity; + scheduler = options.scheduler; + } + else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) { + initialState = initialStateOrOptions; + resultSelector = identity; + scheduler = resultSelectorOrObservable; + } + else { + initialState = initialStateOrOptions; + resultSelector = resultSelectorOrObservable; + } + return new Observable(subscriber => { + let state = initialState; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + subscriber, + iterate, + condition, + resultSelector, + state + }); + } + do { + if (condition) { + let conditionResult; + try { + conditionResult = condition(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + let value; + try { + value = resultSelector(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } while (true); + return undefined; + }); +} +function dispatch(state) { + const { subscriber, condition } = state; + if (subscriber.closed) { + return undefined; + } + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } + else { + state.needIterate = true; + } + if (condition) { + let conditionResult; + try { + conditionResult = condition(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + } + let value; + try { + value = state.resultSelector(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + return undefined; + } + return this.schedule(state); +} +//# sourceMappingURL=generate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/generate.js.map b/node_modules/rxjs/_esm2015/internal/observable/generate.js.map new file mode 100644 index 00000000..81273db2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/generate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"generate.js","sources":["../../../src/internal/observable/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA8PlD,MAAM,UAAU,QAAQ,CAAO,qBAAgD,EAChD,SAA4B,EAC5B,OAAwB,EACxB,0BAA+D,EAC/D,SAAyB;IAEtD,IAAI,cAAgC,CAAC;IACrC,IAAI,YAAe,CAAC;IAEpB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,MAAM,OAAO,GAAG,qBAA8C,CAAC;QAC/D,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACpC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,QAA4B,CAAC;QACxE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;KAC/B;SAAM,IAAI,0BAA0B,KAAK,SAAS,IAAI,WAAW,CAAC,0BAA0B,CAAC,EAAE;QAC9F,YAAY,GAAG,qBAA0B,CAAC;QAC1C,cAAc,GAAG,QAA4B,CAAC;QAC9C,SAAS,GAAG,0BAA2C,CAAC;KACzD;SAAM;QACL,YAAY,GAAG,qBAA0B,CAAC;QAC1C,cAAc,GAAG,0BAA8C,CAAC;KACjE;IAED,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,IAAI,KAAK,GAAG,YAAY,CAAC;QACzB,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,QAAQ,CAAuB,QAAQ,EAAE,CAAC,EAAE;gBAC3D,UAAU;gBACV,OAAO;gBACP,SAAS;gBACT,cAAc;gBACd,KAAK;aACN,CAAC,CAAC;SACJ;QAED,GAAG;YACD,IAAI,SAAS,EAAE;gBACb,IAAI,eAAwB,CAAC;gBAC7B,IAAI;oBACF,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;iBACpC;gBAAC,OAAO,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO,SAAS,CAAC;iBAClB;gBACD,IAAI,CAAC,eAAe,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM;iBACP;aACF;YACD,IAAI,KAAQ,CAAC;YACb,IAAI;gBACF,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;aAC/B;YAAC,OAAO,GAAG,EAAE;gBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,SAAS,CAAC;aAClB;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,UAAU,CAAC,MAAM,EAAE;gBACrB,MAAM;aACP;YACD,IAAI;gBACF,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;aACxB;YAAC,OAAO,GAAG,EAAE;gBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,SAAS,CAAC;aAClB;SACF,QAAQ,IAAI,EAAE;QAEf,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAoD,KAA2B;IAC9F,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,KAAK,CAAC,WAAW,EAAE;QACrB,IAAI;YACF,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;KACF;SAAM;QACL,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;KAC1B;IACD,IAAI,SAAS,EAAE;QACb,IAAI,eAAwB,CAAC;QAC7B,IAAI;YACF,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,eAAe,EAAE;YACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,OAAO,SAAS,CAAC;SAClB;KACF;IACD,IAAI,KAAQ,CAAC;IACb,IAAI;QACF,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC3C;IAAC,OAAO,GAAG,EAAE;QACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/iif.js b/node_modules/rxjs/_esm2015/internal/observable/iif.js new file mode 100644 index 00000000..91a626f4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/iif.js @@ -0,0 +1,6 @@ +import { defer } from './defer'; +import { EMPTY } from './empty'; +export function iif(condition, trueResult = EMPTY, falseResult = EMPTY) { + return defer(() => condition() ? trueResult : falseResult); +} +//# sourceMappingURL=iif.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/iif.js.map b/node_modules/rxjs/_esm2015/internal/observable/iif.js.map new file mode 100644 index 00000000..fe69e79d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/iif.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iif.js","sources":["../../../src/internal/observable/iif.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA2FhC,MAAM,UAAU,GAAG,CACjB,SAAwB,EACxB,aAAuC,KAAK,EAC5C,cAAwC,KAAK;IAE7C,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAC7D,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/interval.js b/node_modules/rxjs/_esm2015/internal/observable/interval.js new file mode 100644 index 00000000..4dbe4a05 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/interval.js @@ -0,0 +1,21 @@ +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +import { isNumeric } from '../util/isNumeric'; +export function interval(period = 0, scheduler = async) { + if (!isNumeric(period) || period < 0) { + period = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + scheduler = async; + } + return new Observable(subscriber => { + subscriber.add(scheduler.schedule(dispatch, period, { subscriber, counter: 0, period })); + return subscriber; + }); +} +function dispatch(state) { + const { subscriber, counter, period } = state; + subscriber.next(counter); + this.schedule({ subscriber, counter: counter + 1, period }, period); +} +//# sourceMappingURL=interval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/interval.js.map b/node_modules/rxjs/_esm2015/internal/observable/interval.js.map new file mode 100644 index 00000000..67f6681d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/interval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interval.js","sources":["../../../src/internal/observable/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmD9C,MAAM,UAAU,QAAQ,CAAC,MAAM,GAAG,CAAC,EACV,YAA2B,KAAK;IACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;QACpC,MAAM,GAAG,CAAC,CAAC;KACZ;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1D,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAS,UAAU,CAAC,EAAE;QACzC,UAAU,CAAC,GAAG,CACZ,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CACzE,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAuC,KAAoB;IAC1E,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC9C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/merge.js b/node_modules/rxjs/_esm2015/internal/observable/merge.js new file mode 100644 index 00000000..c62e3647 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/merge.js @@ -0,0 +1,23 @@ +import { Observable } from '../Observable'; +import { isScheduler } from '../util/isScheduler'; +import { mergeAll } from '../operators/mergeAll'; +import { fromArray } from './fromArray'; +export function merge(...observables) { + let concurrent = Number.POSITIVE_INFINITY; + let scheduler = null; + let last = observables[observables.length - 1]; + if (isScheduler(last)) { + scheduler = observables.pop(); + if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { + concurrent = observables.pop(); + } + } + else if (typeof last === 'number') { + concurrent = observables.pop(); + } + if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) { + return observables[0]; + } + return mergeAll(concurrent)(fromArray(observables, scheduler)); +} +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/merge.js.map b/node_modules/rxjs/_esm2015/internal/observable/merge.js.map new file mode 100644 index 00000000..8327b241 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../../src/internal/observable/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAqHxC,MAAM,UAAU,KAAK,CAAO,GAAG,WAAiE;IAC/F,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAQ,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,SAAS,GAAkB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;SACxC;KACF;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACnC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KACxC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,UAAU,EAAE;QAC1F,OAAsB,WAAW,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,OAAO,QAAQ,CAAI,UAAU,CAAC,CAAC,SAAS,CAAM,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/never.js b/node_modules/rxjs/_esm2015/internal/observable/never.js new file mode 100644 index 00000000..ca45f757 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/never.js @@ -0,0 +1,7 @@ +import { Observable } from '../Observable'; +import { noop } from '../util/noop'; +export const NEVER = new Observable(noop); +export function never() { + return NEVER; +} +//# sourceMappingURL=never.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/never.js.map b/node_modules/rxjs/_esm2015/internal/observable/never.js.map new file mode 100644 index 00000000..aa51b97b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/never.js.map @@ -0,0 +1 @@ +{"version":3,"file":"never.js","sources":["../../../src/internal/observable/never.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAgCpC,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,IAAI,CAAC,CAAC;AAKjD,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/of.js b/node_modules/rxjs/_esm2015/internal/observable/of.js new file mode 100644 index 00000000..fdfd611a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/of.js @@ -0,0 +1,14 @@ +import { isScheduler } from '../util/isScheduler'; +import { fromArray } from './fromArray'; +import { scheduleArray } from '../scheduled/scheduleArray'; +export function of(...args) { + let scheduler = args[args.length - 1]; + if (isScheduler(scheduler)) { + args.pop(); + return scheduleArray(args, scheduler); + } + else { + return fromArray(args); + } +} +//# sourceMappingURL=of.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/of.js.map b/node_modules/rxjs/_esm2015/internal/observable/of.js.map new file mode 100644 index 00000000..4347b595 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/of.js.map @@ -0,0 +1 @@ +{"version":3,"file":"of.js","sources":["../../../src/internal/observable/of.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAiG3D,MAAM,UAAU,EAAE,CAAI,GAAG,IAA8B;IACrD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IACvD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,aAAa,CAAC,IAAW,EAAE,SAAS,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;KAC/B;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js b/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js new file mode 100644 index 00000000..ac1fdee2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js @@ -0,0 +1,22 @@ +import { Observable } from '../Observable'; +import { from } from './from'; +import { isArray } from '../util/isArray'; +import { EMPTY } from './empty'; +export function onErrorResumeNext(...sources) { + if (sources.length === 0) { + return EMPTY; + } + const [first, ...remainder] = sources; + if (sources.length === 1 && isArray(first)) { + return onErrorResumeNext(...first); + } + return new Observable(subscriber => { + const subNext = () => subscriber.add(onErrorResumeNext(...remainder).subscribe(subscriber)); + return from(first).subscribe({ + next(value) { subscriber.next(value); }, + error: subNext, + complete: subNext, + }); + }); +} +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map b/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map new file mode 100644 index 00000000..44bd5d39 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/observable/onErrorResumeNext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAwEhC,MAAM,UAAU,iBAAiB,CAAO,GAAG,OAEkD;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,CAAE,KAAK,EAAE,GAAG,SAAS,CAAE,GAAG,OAAO,CAAC;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC;KACpC;IAED,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;QACjC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAClC,iBAAiB,CAAC,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CACtD,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC3B,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/pairs.js b/node_modules/rxjs/_esm2015/internal/observable/pairs.js new file mode 100644 index 00000000..573ef300 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/pairs.js @@ -0,0 +1,38 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +export function pairs(obj, scheduler) { + if (!scheduler) { + return new Observable(subscriber => { + const keys = Object.keys(obj); + for (let i = 0; i < keys.length && !subscriber.closed; i++) { + const key = keys[i]; + if (obj.hasOwnProperty(key)) { + subscriber.next([key, obj[key]]); + } + } + subscriber.complete(); + }); + } + else { + return new Observable(subscriber => { + const keys = Object.keys(obj); + const subscription = new Subscription(); + subscription.add(scheduler.schedule(dispatch, 0, { keys, index: 0, subscriber, subscription, obj })); + return subscription; + }); + } +} +export function dispatch(state) { + const { keys, index, subscriber, subscription, obj } = state; + if (!subscriber.closed) { + if (index < keys.length) { + const key = keys[index]; + subscriber.next([key, obj[key]]); + subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj })); + } + else { + subscriber.complete(); + } + } +} +//# sourceMappingURL=pairs.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map b/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map new file mode 100644 index 00000000..e14867e1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/pairs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairs.js","sources":["../../../src/internal/observable/pairs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkD/C,MAAM,UAAU,KAAK,CAAI,GAAW,EAAE,SAAyB;IAC7D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAc,UAAU,CAAC,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC3B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClC;aACF;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,IAAI,UAAU,CAAc,UAAU,CAAC,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CACd,SAAS,CAAC,QAAQ,CACf,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAGD,MAAM,UAAU,QAAQ,CACI,KAAsH;IAChJ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;SAC5F;aAAM;YACL,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;KACF;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/partition.js b/node_modules/rxjs/_esm2015/internal/observable/partition.js new file mode 100644 index 00000000..a34a7342 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/partition.js @@ -0,0 +1,11 @@ +import { not } from '../util/not'; +import { subscribeTo } from '../util/subscribeTo'; +import { filter } from '../operators/filter'; +import { Observable } from '../Observable'; +export function partition(source, predicate, thisArg) { + return [ + filter(predicate, thisArg)(new Observable(subscribeTo(source))), + filter(not(predicate, thisArg))(new Observable(subscribeTo(source))) + ]; +} +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/partition.js.map b/node_modules/rxjs/_esm2015/internal/observable/partition.js.map new file mode 100644 index 00000000..6c8ed222 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../../../src/internal/observable/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAqD3C,MAAM,UAAU,SAAS,CACvB,MAA0B,EAC1B,SAA+C,EAC/C,OAAa;IAEb,OAAO;QACL,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7C,CAAC;AACtC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/race.js b/node_modules/rxjs/_esm2015/internal/observable/race.js new file mode 100644 index 00000000..7632a31a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/race.js @@ -0,0 +1,64 @@ +import { isArray } from '../util/isArray'; +import { fromArray } from './fromArray'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function race(...observables) { + if (observables.length === 1) { + if (isArray(observables[0])) { + observables = observables[0]; + } + else { + return observables[0]; + } + } + return fromArray(observables, undefined).lift(new RaceOperator()); +} +export class RaceOperator { + call(subscriber, source) { + return source.subscribe(new RaceSubscriber(subscriber)); + } +} +export class RaceSubscriber extends OuterSubscriber { + constructor(destination) { + super(destination); + this.hasFirst = false; + this.observables = []; + this.subscriptions = []; + } + _next(observable) { + this.observables.push(observable); + } + _complete() { + const observables = this.observables; + const len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + for (let i = 0; i < len && !this.hasFirst; i++) { + const observable = observables[i]; + const subscription = subscribeToResult(this, observable, undefined, i); + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null; + } + } + notifyNext(_outerValue, innerValue, outerIndex) { + if (!this.hasFirst) { + this.hasFirst = true; + for (let i = 0; i < this.subscriptions.length; i++) { + if (i !== outerIndex) { + let subscription = this.subscriptions[i]; + subscription.unsubscribe(); + this.remove(subscription); + } + } + this.subscriptions = null; + } + this.destination.next(innerValue); + } +} +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/race.js.map b/node_modules/rxjs/_esm2015/internal/observable/race.js.map new file mode 100644 index 00000000..6777ba57 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../../src/internal/observable/race.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAoD9D,MAAM,UAAU,IAAI,CAAI,GAAG,WAAmC;IAG5D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3B,WAAW,GAAG,WAAW,CAAC,CAAC,CAAsB,CAAC;SACnD;aAAM;YACL,OAAO,WAAW,CAAC,CAAC,CAAkB,CAAC;SACxC;KACF;IAED,OAAO,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF;AAOD,MAAM,OAAO,cAAkB,SAAQ,eAAqB;IAK1D,YAAY,WAA0B;QACpC,KAAK,CAAC,WAAW,CAAC,CAAC;QALb,aAAQ,GAAY,KAAK,CAAC;QAC1B,gBAAW,GAAsB,EAAE,CAAC;QACpC,kBAAa,GAAmB,EAAE,CAAC;IAI3C,CAAC;IAES,KAAK,CAAC,UAAe;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QAE/B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAE,CAAC;gBAExE,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACvC;gBACD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACxB;YACD,IAAI,CAAC,WAAW,GAAG,IAAK,CAAC;SAC1B;IACH,CAAC;IAED,UAAU,CAAC,WAAc,EAAE,UAAa,EAC7B,UAAkB;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,CAAC,KAAK,UAAU,EAAE;oBACpB,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBAEzC,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC3B;aACF;YAED,IAAI,CAAC,aAAa,GAAG,IAAK,CAAC;SAC5B;QAED,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/range.js b/node_modules/rxjs/_esm2015/internal/observable/range.js new file mode 100644 index 00000000..ca939125 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/range.js @@ -0,0 +1,44 @@ +import { Observable } from '../Observable'; +export function range(start = 0, count, scheduler) { + return new Observable(subscriber => { + if (count === undefined) { + count = start; + start = 0; + } + let index = 0; + let current = start; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + index, count, start, subscriber + }); + } + else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(current++); + if (subscriber.closed) { + break; + } + } while (true); + } + return undefined; + }); +} +export function dispatch(state) { + const { start, index, count, subscriber } = state; + if (index >= count) { + subscriber.complete(); + return; + } + subscriber.next(start); + if (subscriber.closed) { + return; + } + state.index = index + 1; + state.start = start + 1; + this.schedule(state); +} +//# sourceMappingURL=range.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/range.js.map b/node_modules/rxjs/_esm2015/internal/observable/range.js.map new file mode 100644 index 00000000..8e888014 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"range.js","sources":["../../../src/internal/observable/range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAC,QAAgB,CAAC,EACjB,KAAc,EACd,SAAyB;IAC7C,OAAO,IAAI,UAAU,CAAS,UAAU,CAAC,EAAE;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC;YACd,KAAK,GAAG,CAAC,CAAC;SACX;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU;aAChC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG;gBACD,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3B,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,MAAM;iBACP;aACF,QAAQ,IAAI,EAAE;SAChB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,UAAU,QAAQ,CAA6B,KAAU;IAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAElD,IAAI,KAAK,IAAI,KAAK,EAAE;QAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO;KACR;IAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/throwError.js b/node_modules/rxjs/_esm2015/internal/observable/throwError.js new file mode 100644 index 00000000..981c0af4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/throwError.js @@ -0,0 +1,13 @@ +import { Observable } from '../Observable'; +export function throwError(error, scheduler) { + if (!scheduler) { + return new Observable(subscriber => subscriber.error(error)); + } + else { + return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber })); + } +} +function dispatch({ error, subscriber }) { + subscriber.error(error); +} +//# sourceMappingURL=throwError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map b/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map new file mode 100644 index 00000000..744583b3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/throwError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throwError.js","sources":["../../../src/internal/observable/throwError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoE3C,MAAM,UAAU,UAAU,CAAC,KAAU,EAAE,SAAyB;IAC9D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9D;SAAM;QACL,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;KAC7F;AACH,CAAC;AAOD,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAe;IAClD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/timer.js b/node_modules/rxjs/_esm2015/internal/observable/timer.js new file mode 100644 index 00000000..7476984d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/timer.js @@ -0,0 +1,37 @@ +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +import { isNumeric } from '../util/isNumeric'; +import { isScheduler } from '../util/isScheduler'; +export function timer(dueTime = 0, periodOrScheduler, scheduler) { + let period = -1; + if (isNumeric(periodOrScheduler)) { + period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); + } + else if (isScheduler(periodOrScheduler)) { + scheduler = periodOrScheduler; + } + if (!isScheduler(scheduler)) { + scheduler = async; + } + return new Observable(subscriber => { + const due = isNumeric(dueTime) + ? dueTime + : (+dueTime - scheduler.now()); + return scheduler.schedule(dispatch, due, { + index: 0, period, subscriber + }); + }); +} +function dispatch(state) { + const { index, period, subscriber } = state; + subscriber.next(index); + if (subscriber.closed) { + return; + } + else if (period === -1) { + return subscriber.complete(); + } + state.index = index + 1; + this.schedule(state, period); +} +//# sourceMappingURL=timer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/timer.js.map b/node_modules/rxjs/_esm2015/internal/observable/timer.js.map new file mode 100644 index 00000000..b9431820 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/timer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timer.js","sources":["../../../src/internal/observable/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqDlD,MAAM,UAAU,KAAK,CAAC,UAAyB,CAAC,EAC1B,iBAA0C,EAC1C,SAAyB;IAC7C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,IAAI,SAAS,CAAC,iBAAiB,CAAC,EAAE;QAChC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC1E;SAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE;QACzC,SAAS,GAAG,iBAAwB,CAAC;KACtC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;QAC3B,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;QACjC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,OAAkB;YACrB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,SAAS,QAAQ,CAAoC,KAAiB;IACpE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;SAAM,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACxB,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/using.js b/node_modules/rxjs/_esm2015/internal/observable/using.js new file mode 100644 index 00000000..86af89f4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/using.js @@ -0,0 +1,32 @@ +import { Observable } from '../Observable'; +import { from } from './from'; +import { EMPTY } from './empty'; +export function using(resourceFactory, observableFactory) { + return new Observable(subscriber => { + let resource; + try { + resource = resourceFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + let result; + try { + result = observableFactory(resource); + } + catch (err) { + subscriber.error(err); + return undefined; + } + const source = result ? from(result) : EMPTY; + const subscription = source.subscribe(subscriber); + return () => { + subscription.unsubscribe(); + if (resource) { + resource.unsubscribe(); + } + }; + }); +} +//# sourceMappingURL=using.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/using.js.map b/node_modules/rxjs/_esm2015/internal/observable/using.js.map new file mode 100644 index 00000000..74ab3bd7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/using.js.map @@ -0,0 +1 @@ +{"version":3,"file":"using.js","sources":["../../../src/internal/observable/using.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA8BhC,MAAM,UAAU,KAAK,CAAI,eAA4C,EAC5C,iBAAiF;IACxG,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,IAAI,QAA+B,CAAC;QAEpC,IAAI;YACF,QAAQ,GAAG,eAAe,EAAE,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,MAAiC,CAAC;QACtC,IAAI;YACF,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,WAAW,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/observable/zip.js b/node_modules/rxjs/_esm2015/internal/observable/zip.js new file mode 100644 index 00000000..4d7e3fc5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/zip.js @@ -0,0 +1,197 @@ +import { fromArray } from './fromArray'; +import { isArray } from '../util/isArray'; +import { Subscriber } from '../Subscriber'; +import { iterator as Symbol_iterator } from '../../internal/symbol/iterator'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function zip(...observables) { + const resultSelector = observables[observables.length - 1]; + if (typeof resultSelector === 'function') { + observables.pop(); + } + return fromArray(observables, undefined).lift(new ZipOperator(resultSelector)); +} +export class ZipOperator { + constructor(resultSelector) { + this.resultSelector = resultSelector; + } + call(subscriber, source) { + return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); + } +} +export class ZipSubscriber extends Subscriber { + constructor(destination, resultSelector, values = Object.create(null)) { + super(destination); + this.resultSelector = resultSelector; + this.iterators = []; + this.active = 0; + this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined; + } + _next(value) { + const iterators = this.iterators; + if (isArray(value)) { + iterators.push(new StaticArrayIterator(value)); + } + else if (typeof value[Symbol_iterator] === 'function') { + iterators.push(new StaticIterator(value[Symbol_iterator]())); + } + else { + iterators.push(new ZipBufferIterator(this.destination, this, value)); + } + } + _complete() { + const iterators = this.iterators; + const len = iterators.length; + this.unsubscribe(); + if (len === 0) { + this.destination.complete(); + return; + } + this.active = len; + for (let i = 0; i < len; i++) { + let iterator = iterators[i]; + if (iterator.stillUnsubscribed) { + const destination = this.destination; + destination.add(iterator.subscribe()); + } + else { + this.active--; + } + } + } + notifyInactive() { + this.active--; + if (this.active === 0) { + this.destination.complete(); + } + } + checkIterators() { + const iterators = this.iterators; + const len = iterators.length; + const destination = this.destination; + for (let i = 0; i < len; i++) { + let iterator = iterators[i]; + if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { + return; + } + } + let shouldComplete = false; + const args = []; + for (let i = 0; i < len; i++) { + let iterator = iterators[i]; + let result = iterator.next(); + if (iterator.hasCompleted()) { + shouldComplete = true; + } + if (result.done) { + destination.complete(); + return; + } + args.push(result.value); + } + if (this.resultSelector) { + this._tryresultSelector(args); + } + else { + destination.next(args); + } + if (shouldComplete) { + destination.complete(); + } + } + _tryresultSelector(args) { + let result; + try { + result = this.resultSelector.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + } +} +class StaticIterator { + constructor(iterator) { + this.iterator = iterator; + this.nextResult = iterator.next(); + } + hasValue() { + return true; + } + next() { + const result = this.nextResult; + this.nextResult = this.iterator.next(); + return result; + } + hasCompleted() { + const nextResult = this.nextResult; + return Boolean(nextResult && nextResult.done); + } +} +class StaticArrayIterator { + constructor(array) { + this.array = array; + this.index = 0; + this.length = 0; + this.length = array.length; + } + [Symbol_iterator]() { + return this; + } + next(value) { + const i = this.index++; + const array = this.array; + return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + } + hasValue() { + return this.array.length > this.index; + } + hasCompleted() { + return this.array.length === this.index; + } +} +class ZipBufferIterator extends SimpleOuterSubscriber { + constructor(destination, parent, observable) { + super(destination); + this.parent = parent; + this.observable = observable; + this.stillUnsubscribed = true; + this.buffer = []; + this.isComplete = false; + } + [Symbol_iterator]() { + return this; + } + next() { + const buffer = this.buffer; + if (buffer.length === 0 && this.isComplete) { + return { value: null, done: true }; + } + else { + return { value: buffer.shift(), done: false }; + } + } + hasValue() { + return this.buffer.length > 0; + } + hasCompleted() { + return this.buffer.length === 0 && this.isComplete; + } + notifyComplete() { + if (this.buffer.length > 0) { + this.isComplete = true; + this.parent.notifyInactive(); + } + else { + this.destination.complete(); + } + } + notifyNext(innerValue) { + this.buffer.push(innerValue); + this.parent.checkIterators(); + } + subscribe() { + return innerSubscribe(this.observable, new SimpleInnerSubscriber(this)); + } +} +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/observable/zip.js.map b/node_modules/rxjs/_esm2015/internal/observable/zip.js.map new file mode 100644 index 00000000..a6e258f8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/observable/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/audit.js b/node_modules/rxjs/_esm2015/internal/operators/audit.js new file mode 100644 index 00000000..8818a087 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/audit.js @@ -0,0 +1,62 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function audit(durationSelector) { + return function auditOperatorFunction(source) { + return source.lift(new AuditOperator(durationSelector)); + }; +} +class AuditOperator { + constructor(durationSelector) { + this.durationSelector = durationSelector; + } + call(subscriber, source) { + return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); + } +} +class AuditSubscriber extends SimpleOuterSubscriber { + constructor(destination, durationSelector) { + super(destination); + this.durationSelector = durationSelector; + this.hasValue = false; + } + _next(value) { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + let duration; + try { + const { durationSelector } = this; + duration = durationSelector(value); + } + catch (err) { + return this.destination.error(err); + } + const innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (!innerSubscription || innerSubscription.closed) { + this.clearThrottle(); + } + else { + this.add(this.throttled = innerSubscription); + } + } + } + clearThrottle() { + const { value, hasValue, throttled } = this; + if (throttled) { + this.remove(throttled); + this.throttled = undefined; + throttled.unsubscribe(); + } + if (hasValue) { + this.value = undefined; + this.hasValue = false; + this.destination.next(value); + } + } + notifyNext() { + this.clearThrottle(); + } + notifyComplete() { + this.clearThrottle(); + } +} +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/audit.js.map b/node_modules/rxjs/_esm2015/internal/operators/audit.js.map new file mode 100644 index 00000000..a638a647 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sources":["../../../src/internal/operators/audit.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAgDjG,MAAM,UAAU,KAAK,CAAI,gBAA0D;IACjF,OAAO,SAAS,qBAAqB,CAAC,MAAqB;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;CACF;AAOD,MAAM,eAAsB,SAAQ,qBAA2B;IAM7D,YAAY,WAA0B,EAClB,gBAA0D;QAC5E,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,qBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,aAAQ,GAAY,KAAK,CAAC;IAMlC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,QAAQ,CAAC;YACb,IAAI;gBACF,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;gBAClC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;aACrC;YACD,MAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,aAAa;QACX,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC5C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,SAAS,CAAC,WAAW,EAAE,CAAC;SACzB;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/auditTime.js b/node_modules/rxjs/_esm2015/internal/operators/auditTime.js new file mode 100644 index 00000000..e94a8b6c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/auditTime.js @@ -0,0 +1,7 @@ +import { async } from '../scheduler/async'; +import { audit } from './audit'; +import { timer } from '../observable/timer'; +export function auditTime(duration, scheduler = async) { + return audit(() => timer(duration, scheduler)); +} +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map new file mode 100644 index 00000000..1d3d9238 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sources":["../../../src/internal/operators/auditTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAoD5C,MAAM,UAAU,SAAS,CAAI,QAAgB,EAAE,YAA2B,KAAK;IAC7E,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/buffer.js b/node_modules/rxjs/_esm2015/internal/operators/buffer.js new file mode 100644 index 00000000..b24311e0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/buffer.js @@ -0,0 +1,30 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function buffer(closingNotifier) { + return function bufferOperatorFunction(source) { + return source.lift(new BufferOperator(closingNotifier)); + }; +} +class BufferOperator { + constructor(closingNotifier) { + this.closingNotifier = closingNotifier; + } + call(subscriber, source) { + return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); + } +} +class BufferSubscriber extends SimpleOuterSubscriber { + constructor(destination, closingNotifier) { + super(destination); + this.buffer = []; + this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this))); + } + _next(value) { + this.buffer.push(value); + } + notifyNext() { + const buffer = this.buffer; + this.buffer = []; + this.destination.next(buffer); + } +} +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map b/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map new file mode 100644 index 00000000..b4bc0d13 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sources":["../../../src/internal/operators/buffer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA0CjG,MAAM,UAAU,MAAM,CAAI,eAAgC;IACxD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAElB,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IACpD,CAAC;IAED,IAAI,CAAC,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,qBAA6B;IAG7D,YAAY,WAA4B,EAAE,eAAgC;QACxE,KAAK,CAAC,WAAW,CAAC,CAAC;QAHb,WAAM,GAAQ,EAAE,CAAC;QAIvB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js b/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js new file mode 100644 index 00000000..0f119e7f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js @@ -0,0 +1,78 @@ +import { Subscriber } from '../Subscriber'; +export function bufferCount(bufferSize, startBufferEvery = null) { + return function bufferCountOperatorFunction(source) { + return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); + }; +} +class BufferCountOperator { + constructor(bufferSize, startBufferEvery) { + this.bufferSize = bufferSize; + this.startBufferEvery = startBufferEvery; + if (!startBufferEvery || bufferSize === startBufferEvery) { + this.subscriberClass = BufferCountSubscriber; + } + else { + this.subscriberClass = BufferSkipCountSubscriber; + } + } + call(subscriber, source) { + return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); + } +} +class BufferCountSubscriber extends Subscriber { + constructor(destination, bufferSize) { + super(destination); + this.bufferSize = bufferSize; + this.buffer = []; + } + _next(value) { + const buffer = this.buffer; + buffer.push(value); + if (buffer.length == this.bufferSize) { + this.destination.next(buffer); + this.buffer = []; + } + } + _complete() { + const buffer = this.buffer; + if (buffer.length > 0) { + this.destination.next(buffer); + } + super._complete(); + } +} +class BufferSkipCountSubscriber extends Subscriber { + constructor(destination, bufferSize, startBufferEvery) { + super(destination); + this.bufferSize = bufferSize; + this.startBufferEvery = startBufferEvery; + this.buffers = []; + this.count = 0; + } + _next(value) { + const { bufferSize, startBufferEvery, buffers, count } = this; + this.count++; + if (count % startBufferEvery === 0) { + buffers.push([]); + } + for (let i = buffers.length; i--;) { + const buffer = buffers[i]; + buffer.push(value); + if (buffer.length === bufferSize) { + buffers.splice(i, 1); + this.destination.next(buffer); + } + } + } + _complete() { + const { buffers, destination } = this; + while (buffers.length > 0) { + let buffer = buffers.shift(); + if (buffer.length > 0) { + destination.next(buffer); + } + } + super._complete(); + } +} +//# sourceMappingURL=bufferCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map new file mode 100644 index 00000000..13d96cef --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sources":["../../../src/internal/operators/bufferCount.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js b/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js new file mode 100644 index 00000000..aac9ea52 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js @@ -0,0 +1,141 @@ +import { async } from '../scheduler/async'; +import { Subscriber } from '../Subscriber'; +import { isScheduler } from '../util/isScheduler'; +export function bufferTime(bufferTimeSpan) { + let length = arguments.length; + let scheduler = async; + if (isScheduler(arguments[arguments.length - 1])) { + scheduler = arguments[arguments.length - 1]; + length--; + } + let bufferCreationInterval = null; + if (length >= 2) { + bufferCreationInterval = arguments[1]; + } + let maxBufferSize = Number.POSITIVE_INFINITY; + if (length >= 3) { + maxBufferSize = arguments[2]; + } + return function bufferTimeOperatorFunction(source) { + return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); + }; +} +class BufferTimeOperator { + constructor(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + this.bufferTimeSpan = bufferTimeSpan; + this.bufferCreationInterval = bufferCreationInterval; + this.maxBufferSize = maxBufferSize; + this.scheduler = scheduler; + } + call(subscriber, source) { + return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); + } +} +class Context { + constructor() { + this.buffer = []; + } +} +class BufferTimeSubscriber extends Subscriber { + constructor(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + super(destination); + this.bufferTimeSpan = bufferTimeSpan; + this.bufferCreationInterval = bufferCreationInterval; + this.maxBufferSize = maxBufferSize; + this.scheduler = scheduler; + this.contexts = []; + const context = this.openContext(); + this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; + if (this.timespanOnly) { + const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan }; + this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + else { + const closeState = { subscriber: this, context }; + const creationState = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler }; + this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); + this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); + } + } + _next(value) { + const contexts = this.contexts; + const len = contexts.length; + let filledBufferContext; + for (let i = 0; i < len; i++) { + const context = contexts[i]; + const buffer = context.buffer; + buffer.push(value); + if (buffer.length == this.maxBufferSize) { + filledBufferContext = context; + } + } + if (filledBufferContext) { + this.onBufferFull(filledBufferContext); + } + } + _error(err) { + this.contexts.length = 0; + super._error(err); + } + _complete() { + const { contexts, destination } = this; + while (contexts.length > 0) { + const context = contexts.shift(); + destination.next(context.buffer); + } + super._complete(); + } + _unsubscribe() { + this.contexts = null; + } + onBufferFull(context) { + this.closeContext(context); + const closeAction = context.closeAction; + closeAction.unsubscribe(); + this.remove(closeAction); + if (!this.closed && this.timespanOnly) { + context = this.openContext(); + const bufferTimeSpan = this.bufferTimeSpan; + const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan }; + this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + } + openContext() { + const context = new Context(); + this.contexts.push(context); + return context; + } + closeContext(context) { + this.destination.next(context.buffer); + const contexts = this.contexts; + const spliceIndex = contexts ? contexts.indexOf(context) : -1; + if (spliceIndex >= 0) { + contexts.splice(contexts.indexOf(context), 1); + } + } +} +function dispatchBufferTimeSpanOnly(state) { + const subscriber = state.subscriber; + const prevContext = state.context; + if (prevContext) { + subscriber.closeContext(prevContext); + } + if (!subscriber.closed) { + state.context = subscriber.openContext(); + state.context.closeAction = this.schedule(state, state.bufferTimeSpan); + } +} +function dispatchBufferCreation(state) { + const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state; + const context = subscriber.openContext(); + const action = this; + if (!subscriber.closed) { + subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber, context })); + action.schedule(state, bufferCreationInterval); + } +} +function dispatchBufferClose(arg) { + const { subscriber, context } = arg; + subscriber.closeContext(context); +} +//# sourceMappingURL=bufferTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map new file mode 100644 index 00000000..471696a3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sources":["../../../src/internal/operators/bufferTime.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js b/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js new file mode 100644 index 00000000..811e4996 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js @@ -0,0 +1,100 @@ +import { Subscription } from '../Subscription'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +export function bufferToggle(openings, closingSelector) { + return function bufferToggleOperatorFunction(source) { + return source.lift(new BufferToggleOperator(openings, closingSelector)); + }; +} +class BufferToggleOperator { + constructor(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + call(subscriber, source) { + return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); + } +} +class BufferToggleSubscriber extends OuterSubscriber { + constructor(destination, openings, closingSelector) { + super(destination); + this.closingSelector = closingSelector; + this.contexts = []; + this.add(subscribeToResult(this, openings)); + } + _next(value) { + const contexts = this.contexts; + const len = contexts.length; + for (let i = 0; i < len; i++) { + contexts[i].buffer.push(value); + } + } + _error(err) { + const contexts = this.contexts; + while (contexts.length > 0) { + const context = contexts.shift(); + context.subscription.unsubscribe(); + context.buffer = null; + context.subscription = null; + } + this.contexts = null; + super._error(err); + } + _complete() { + const contexts = this.contexts; + while (contexts.length > 0) { + const context = contexts.shift(); + this.destination.next(context.buffer); + context.subscription.unsubscribe(); + context.buffer = null; + context.subscription = null; + } + this.contexts = null; + super._complete(); + } + notifyNext(outerValue, innerValue) { + outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); + } + notifyComplete(innerSub) { + this.closeBuffer(innerSub.context); + } + openBuffer(value) { + try { + const closingSelector = this.closingSelector; + const closingNotifier = closingSelector.call(this, value); + if (closingNotifier) { + this.trySubscribe(closingNotifier); + } + } + catch (err) { + this._error(err); + } + } + closeBuffer(context) { + const contexts = this.contexts; + if (contexts && context) { + const { buffer, subscription } = context; + this.destination.next(buffer); + contexts.splice(contexts.indexOf(context), 1); + this.remove(subscription); + subscription.unsubscribe(); + } + } + trySubscribe(closingNotifier) { + const contexts = this.contexts; + const buffer = []; + const subscription = new Subscription(); + const context = { buffer, subscription }; + contexts.push(context); + const innerSubscription = subscribeToResult(this, closingNotifier, context); + if (!innerSubscription || innerSubscription.closed) { + this.closeBuffer(context); + } + else { + innerSubscription.context = context; + this.add(innerSubscription); + subscription.add(innerSubscription); + } + } +} +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map new file mode 100644 index 00000000..ef262627 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sources":["../../../src/internal/operators/bufferToggle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js b/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js new file mode 100644 index 00000000..705f3e40 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js @@ -0,0 +1,75 @@ +import { Subscription } from '../Subscription'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function bufferWhen(closingSelector) { + return function (source) { + return source.lift(new BufferWhenOperator(closingSelector)); + }; +} +class BufferWhenOperator { + constructor(closingSelector) { + this.closingSelector = closingSelector; + } + call(subscriber, source) { + return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); + } +} +class BufferWhenSubscriber extends SimpleOuterSubscriber { + constructor(destination, closingSelector) { + super(destination); + this.closingSelector = closingSelector; + this.subscribing = false; + this.openBuffer(); + } + _next(value) { + this.buffer.push(value); + } + _complete() { + const buffer = this.buffer; + if (buffer) { + this.destination.next(buffer); + } + super._complete(); + } + _unsubscribe() { + this.buffer = undefined; + this.subscribing = false; + } + notifyNext() { + this.openBuffer(); + } + notifyComplete() { + if (this.subscribing) { + this.complete(); + } + else { + this.openBuffer(); + } + } + openBuffer() { + let { closingSubscription } = this; + if (closingSubscription) { + this.remove(closingSubscription); + closingSubscription.unsubscribe(); + } + const buffer = this.buffer; + if (this.buffer) { + this.destination.next(buffer); + } + this.buffer = []; + let closingNotifier; + try { + const { closingSelector } = this; + closingNotifier = closingSelector(); + } + catch (err) { + return this.error(err); + } + closingSubscription = new Subscription(); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this))); + this.subscribing = false; + } +} +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map new file mode 100644 index 00000000..0cf465ea --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sources":["../../../src/internal/operators/bufferWhen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA4CjG,MAAM,UAAU,UAAU,CAAI,eAAsC;IAClE,OAAO,UAAU,MAAqB;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB;IAEtB,YAAoB,eAAsC;QAAtC,oBAAe,GAAf,eAAe,CAAuB;IAC1D,CAAC;IAED,IAAI,CAAC,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACtF,CAAC;CACF;AAOD,MAAM,oBAAwB,SAAQ,qBAA6B;IAKjE,YAAY,WAA4B,EAAU,eAAsC;QACtF,KAAK,CAAC,WAAW,CAAC,CAAC;QAD6B,oBAAe,GAAf,eAAe,CAAuB;QAHhF,gBAAW,GAAY,KAAK,CAAC;QAKnC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAES,SAAS;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;aAAM;YACL,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,UAAU;QACR,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;QAEnC,IAAI,mBAAmB,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SACnC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;SAChC;QAED,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IAAI,eAAe,CAAC;QACpB,IAAI;YACF,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;YACjC,eAAe,GAAG,eAAe,EAAE,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;QACD,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/catchError.js b/node_modules/rxjs/_esm2015/internal/operators/catchError.js new file mode 100644 index 00000000..248c29a5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/catchError.js @@ -0,0 +1,43 @@ +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function catchError(selector) { + return function catchErrorOperatorFunction(source) { + const operator = new CatchOperator(selector); + const caught = source.lift(operator); + return (operator.caught = caught); + }; +} +class CatchOperator { + constructor(selector) { + this.selector = selector; + } + call(subscriber, source) { + return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); + } +} +class CatchSubscriber extends SimpleOuterSubscriber { + constructor(destination, selector, caught) { + super(destination); + this.selector = selector; + this.caught = caught; + } + error(err) { + if (!this.isStopped) { + let result; + try { + result = this.selector(err, this.caught); + } + catch (err2) { + super.error(err2); + return; + } + this._unsubscribeAndRecycle(); + const innerSubscriber = new SimpleInnerSubscriber(this); + this.add(innerSubscriber); + const innerSubscription = innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + this.add(innerSubscription); + } + } + } +} +//# sourceMappingURL=catchError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map b/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map new file mode 100644 index 00000000..b50507c8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/catchError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catchError.js","sources":["../../../src/internal/operators/catchError.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkFjG,MAAM,UAAU,UAAU,CACxB,QAAgD;IAEhD,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,aAAa;IAGjB,YAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAOD,MAAM,eAAsB,SAAQ,qBAA+B;IACjE,YAAY,WAA4B,EACpB,QAAqE,EACrE,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAA6D;QACrE,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IAOD,KAAK,CAAC,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,MAAW,CAAC;YAChB,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,IAAI,EAAE;gBACb,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;aACR;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAIlE,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineAll.js b/node_modules/rxjs/_esm2015/internal/operators/combineAll.js new file mode 100644 index 00000000..8b8fe360 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/combineAll.js @@ -0,0 +1,5 @@ +import { CombineLatestOperator } from '../observable/combineLatest'; +export function combineAll(project) { + return (source) => source.lift(new CombineLatestOperator(project)); +} +//# sourceMappingURL=combineAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map new file mode 100644 index 00000000..698b5a6c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sources":["../../../src/internal/operators/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAsDpE,MAAM,UAAU,UAAU,CAAO,OAAsC;IACrE,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js b/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js new file mode 100644 index 00000000..21d392de --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js @@ -0,0 +1,15 @@ +import { isArray } from '../util/isArray'; +import { CombineLatestOperator } from '../observable/combineLatest'; +import { from } from '../observable/from'; +const none = {}; +export function combineLatest(...observables) { + let project = null; + if (typeof observables[observables.length - 1] === 'function') { + project = observables.pop(); + } + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0].slice(); + } + return (source) => source.lift.call(from([source, ...observables]), new CombineLatestOperator(project)); +} +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map b/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map new file mode 100644 index 00000000..9724120b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/operators/combineLatest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI1C,MAAM,IAAI,GAAG,EAAE,CAAC;AAoChB,MAAM,UAAU,aAAa,CAAO,GAAG,WAE4C;IACjF,IAAI,OAAO,GAAiC,IAAI,CAAC;IACjD,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,EAAE;QAC7D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC3D;IAID,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAS,WAAW,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;KAC7C;IAED,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACzH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/concat.js b/node_modules/rxjs/_esm2015/internal/operators/concat.js new file mode 100644 index 00000000..1f4daf10 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concat.js @@ -0,0 +1,5 @@ +import { concat as concatStatic } from '../observable/concat'; +export function concat(...observables) { + return (source) => source.lift.call(concatStatic(source, ...observables)); +} +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/concat.js.map b/node_modules/rxjs/_esm2015/internal/operators/concat.js.map new file mode 100644 index 00000000..292d9fd5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../../src/internal/operators/concat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA0B/D,MAAM,UAAU,MAAM,CAAO,GAAG,WAAwD;IACtF,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;AAC3F,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatAll.js b/node_modules/rxjs/_esm2015/internal/operators/concatAll.js new file mode 100644 index 00000000..9ef00222 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concatAll.js @@ -0,0 +1,5 @@ +import { mergeAll } from './mergeAll'; +export function concatAll() { + return mergeAll(1); +} +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map new file mode 100644 index 00000000..9c92ccc7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sources":["../../../src/internal/operators/concatAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgEtC,MAAM,UAAU,SAAS;IACvB,OAAO,QAAQ,CAAI,CAAC,CAAC,CAAC;AACxB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMap.js b/node_modules/rxjs/_esm2015/internal/operators/concatMap.js new file mode 100644 index 00000000..165b4d5d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concatMap.js @@ -0,0 +1,5 @@ +import { mergeMap } from './mergeMap'; +export function concatMap(project, resultSelector) { + return mergeMap(project, resultSelector, 1); +} +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map new file mode 100644 index 00000000..63a35fa9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sources":["../../../src/internal/operators/concatMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuEtC,MAAM,UAAU,SAAS,CACvB,OAAuC,EACvC,cAA6G;IAE7G,OAAO,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js b/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js new file mode 100644 index 00000000..270a4a25 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js @@ -0,0 +1,5 @@ +import { concatMap } from './concatMap'; +export function concatMapTo(innerObservable, resultSelector) { + return concatMap(() => innerObservable, resultSelector); +} +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map new file mode 100644 index 00000000..10a313a2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sources":["../../../src/internal/operators/concatMapTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmExC,MAAM,UAAU,WAAW,CACzB,eAAkB,EAClB,cAA6G;IAE7G,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/count.js b/node_modules/rxjs/_esm2015/internal/operators/count.js new file mode 100644 index 00000000..fb4f7462 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/count.js @@ -0,0 +1,48 @@ +import { Subscriber } from '../Subscriber'; +export function count(predicate) { + return (source) => source.lift(new CountOperator(predicate, source)); +} +class CountOperator { + constructor(predicate, source) { + this.predicate = predicate; + this.source = source; + } + call(subscriber, source) { + return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + } +} +class CountSubscriber extends Subscriber { + constructor(destination, predicate, source) { + super(destination); + this.predicate = predicate; + this.source = source; + this.count = 0; + this.index = 0; + } + _next(value) { + if (this.predicate) { + this._tryPredicate(value); + } + else { + this.count++; + } + } + _tryPredicate(value) { + let result; + try { + result = this.predicate(value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.count++; + } + } + _complete() { + this.destination.next(this.count); + this.destination.complete(); + } +} +//# sourceMappingURL=count.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/count.js.map b/node_modules/rxjs/_esm2015/internal/operators/count.js.map new file mode 100644 index 00000000..b634bab4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sources":["../../../src/internal/operators/count.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA6D3C,MAAM,UAAU,KAAK,CAAI,SAAuE;IAC9F,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;CACF;AAOD,MAAM,eAAmB,SAAQ,UAAa;IAI5C,YAAY,WAA6B,EACrB,SAAuE,EACvE,MAAsB;QACxC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;QALlC,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;IAM1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAEO,aAAa,CAAC,KAAQ;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounce.js b/node_modules/rxjs/_esm2015/internal/operators/debounce.js new file mode 100644 index 00000000..4737d8f5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/debounce.js @@ -0,0 +1,68 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function debounce(durationSelector) { + return (source) => source.lift(new DebounceOperator(durationSelector)); +} +class DebounceOperator { + constructor(durationSelector) { + this.durationSelector = durationSelector; + } + call(subscriber, source) { + return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); + } +} +class DebounceSubscriber extends SimpleOuterSubscriber { + constructor(destination, durationSelector) { + super(destination); + this.durationSelector = durationSelector; + this.hasValue = false; + } + _next(value) { + try { + const result = this.durationSelector.call(this, value); + if (result) { + this._tryNext(value, result); + } + } + catch (err) { + this.destination.error(err); + } + } + _complete() { + this.emitValue(); + this.destination.complete(); + } + _tryNext(value, duration) { + let subscription = this.durationSubscription; + this.value = value; + this.hasValue = true; + if (subscription) { + subscription.unsubscribe(); + this.remove(subscription); + } + subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (subscription && !subscription.closed) { + this.add(this.durationSubscription = subscription); + } + } + notifyNext() { + this.emitValue(); + } + notifyComplete() { + this.emitValue(); + } + emitValue() { + if (this.hasValue) { + const value = this.value; + const subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = undefined; + subscription.unsubscribe(); + this.remove(subscription); + } + this.value = undefined; + this.hasValue = false; + super._next(value); + } + } +} +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map b/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map new file mode 100644 index 00000000..b013d949 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sources":["../../../src/internal/operators/debounce.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAkDjG,MAAM,UAAU,QAAQ,CAAI,gBAA0D;IACpF,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAOD,MAAM,kBAAyB,SAAQ,qBAA2B;IAKhE,YAAY,WAA0B,EAClB,gBAA0D;QAC5E,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,qBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,aAAQ,GAAG,KAAK,CAAC;IAMzB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEvD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;SAC9B;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;IAC/B,CAAC;IAEO,QAAQ,CAAC,KAAQ,EAAE,QAAoC;QAC7D,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,YAAY,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,CAAC;SACpD;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC/C,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;gBACtC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAC3B;YAMD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;SACrB;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js b/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js new file mode 100644 index 00000000..891abcc5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js @@ -0,0 +1,55 @@ +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +export function debounceTime(dueTime, scheduler = async) { + return (source) => source.lift(new DebounceTimeOperator(dueTime, scheduler)); +} +class DebounceTimeOperator { + constructor(dueTime, scheduler) { + this.dueTime = dueTime; + this.scheduler = scheduler; + } + call(subscriber, source) { + return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); + } +} +class DebounceTimeSubscriber extends Subscriber { + constructor(destination, dueTime, scheduler) { + super(destination); + this.dueTime = dueTime; + this.scheduler = scheduler; + this.debouncedSubscription = null; + this.lastValue = null; + this.hasValue = false; + } + _next(value) { + this.clearDebounce(); + this.lastValue = value; + this.hasValue = true; + this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); + } + _complete() { + this.debouncedNext(); + this.destination.complete(); + } + debouncedNext() { + this.clearDebounce(); + if (this.hasValue) { + const { lastValue } = this; + this.lastValue = null; + this.hasValue = false; + this.destination.next(lastValue); + } + } + clearDebounce() { + const debouncedSubscription = this.debouncedSubscription; + if (debouncedSubscription !== null) { + this.remove(debouncedSubscription); + debouncedSubscription.unsubscribe(); + this.debouncedSubscription = null; + } + } +} +function dispatchNext(subscriber) { + subscriber.debouncedNext(); +} +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map new file mode 100644 index 00000000..e8d3112e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sources":["../../../src/internal/operators/debounceTime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAuD3C,MAAM,UAAU,YAAY,CAAI,OAAe,EAAE,YAA2B,KAAK;IAC/E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,oBAAoB;IACxB,YAAoB,OAAe,EAAU,SAAwB;QAAjD,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAe;IACrE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;CACF;AAOD,MAAM,sBAA0B,SAAQ,UAAa;IAKnD,YAAY,WAA0B,EAClB,OAAe,EACf,SAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAe;QANpC,0BAAqB,GAAiB,IAAI,CAAC;QAC3C,cAAS,GAAM,IAAI,CAAC;QACpB,aAAQ,GAAY,KAAK,CAAC;IAMlC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAM3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;IACH,CAAC;CACF;AAED,SAAS,YAAY,CAAC,UAAuC;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js b/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js new file mode 100644 index 00000000..fbb5802f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js @@ -0,0 +1,30 @@ +import { Subscriber } from '../Subscriber'; +export function defaultIfEmpty(defaultValue = null) { + return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue)); +} +class DefaultIfEmptyOperator { + constructor(defaultValue) { + this.defaultValue = defaultValue; + } + call(subscriber, source) { + return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); + } +} +class DefaultIfEmptySubscriber extends Subscriber { + constructor(destination, defaultValue) { + super(destination); + this.defaultValue = defaultValue; + this.isEmpty = true; + } + _next(value) { + this.isEmpty = false; + this.destination.next(value); + } + _complete() { + if (this.isEmpty) { + this.destination.next(this.defaultValue); + } + this.destination.complete(); + } +} +//# sourceMappingURL=defaultIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map b/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map new file mode 100644 index 00000000..c25fbda8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sources":["../../../src/internal/operators/defaultIfEmpty.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA4C3C,MAAM,UAAU,cAAc,CAAO,eAAkB,IAAI;IACzD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAsB,CAAC;AAC/G,CAAC;AAED,MAAM,sBAAsB;IAE1B,YAAoB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;IACnC,CAAC;IAED,IAAI,CAAC,UAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;CACF;AAOD,MAAM,wBAA+B,SAAQ,UAAa;IAGxD,YAAY,WAA8B,EAAU,YAAe;QACjE,KAAK,CAAC,WAAW,CAAC,CAAC;QAD+B,iBAAY,GAAZ,YAAY,CAAG;QAF3D,YAAO,GAAY,IAAI,CAAC;IAIhC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,SAAS;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/delay.js b/node_modules/rxjs/_esm2015/internal/operators/delay.js new file mode 100644 index 00000000..de834ba1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/delay.js @@ -0,0 +1,83 @@ +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +export function delay(delay, scheduler = async) { + const absoluteDelay = isDate(delay); + const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); + return (source) => source.lift(new DelayOperator(delayFor, scheduler)); +} +class DelayOperator { + constructor(delay, scheduler) { + this.delay = delay; + this.scheduler = scheduler; + } + call(subscriber, source) { + return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); + } +} +class DelaySubscriber extends Subscriber { + constructor(destination, delay, scheduler) { + super(destination); + this.delay = delay; + this.scheduler = scheduler; + this.queue = []; + this.active = false; + this.errored = false; + } + static dispatch(state) { + const source = state.source; + const queue = source.queue; + const scheduler = state.scheduler; + const destination = state.destination; + while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { + queue.shift().notification.observe(destination); + } + if (queue.length > 0) { + const delay = Math.max(0, queue[0].time - scheduler.now()); + this.schedule(state, delay); + } + else { + this.unsubscribe(); + source.active = false; + } + } + _schedule(scheduler) { + this.active = true; + const destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + source: this, destination: this.destination, scheduler: scheduler + })); + } + scheduleNotification(notification) { + if (this.errored === true) { + return; + } + const scheduler = this.scheduler; + const message = new DelayMessage(scheduler.now() + this.delay, notification); + this.queue.push(message); + if (this.active === false) { + this._schedule(scheduler); + } + } + _next(value) { + this.scheduleNotification(Notification.createNext(value)); + } + _error(err) { + this.errored = true; + this.queue = []; + this.destination.error(err); + this.unsubscribe(); + } + _complete() { + this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); + } +} +class DelayMessage { + constructor(time, notification) { + this.time = time; + this.notification = notification; + } +} +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/delay.js.map b/node_modules/rxjs/_esm2015/internal/operators/delay.js.map new file mode 100644 index 00000000..02dfa542 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js b/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js new file mode 100644 index 00000000..cc0e9178 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js @@ -0,0 +1,118 @@ +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return (source) => new SubscriptionDelayObservable(source, subscriptionDelay) + .lift(new DelayWhenOperator(delayDurationSelector)); + } + return (source) => source.lift(new DelayWhenOperator(delayDurationSelector)); +} +class DelayWhenOperator { + constructor(delayDurationSelector) { + this.delayDurationSelector = delayDurationSelector; + } + call(subscriber, source) { + return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); + } +} +class DelayWhenSubscriber extends OuterSubscriber { + constructor(destination, delayDurationSelector) { + super(destination); + this.delayDurationSelector = delayDurationSelector; + this.completed = false; + this.delayNotifierSubscriptions = []; + this.index = 0; + } + notifyNext(outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.destination.next(outerValue); + this.removeSubscription(innerSub); + this.tryComplete(); + } + notifyError(error, innerSub) { + this._error(error); + } + notifyComplete(innerSub) { + const value = this.removeSubscription(innerSub); + if (value) { + this.destination.next(value); + } + this.tryComplete(); + } + _next(value) { + const index = this.index++; + try { + const delayNotifier = this.delayDurationSelector(value, index); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); + } + } + catch (err) { + this.destination.error(err); + } + } + _complete() { + this.completed = true; + this.tryComplete(); + this.unsubscribe(); + } + removeSubscription(subscription) { + subscription.unsubscribe(); + const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + if (subscriptionIdx !== -1) { + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); + } + return subscription.outerValue; + } + tryDelay(delayNotifier, value) { + const notifierSubscription = subscribeToResult(this, delayNotifier, value); + if (notifierSubscription && !notifierSubscription.closed) { + const destination = this.destination; + destination.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + } + tryComplete() { + if (this.completed && this.delayNotifierSubscriptions.length === 0) { + this.destination.complete(); + } + } +} +class SubscriptionDelayObservable extends Observable { + constructor(source, subscriptionDelay) { + super(); + this.source = source; + this.subscriptionDelay = subscriptionDelay; + } + _subscribe(subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + } +} +class SubscriptionDelaySubscriber extends Subscriber { + constructor(parent, source) { + super(); + this.parent = parent; + this.source = source; + this.sourceSubscribed = false; + } + _next(unused) { + this.subscribeToSource(); + } + _error(err) { + this.unsubscribe(); + this.parent.error(err); + } + _complete() { + this.unsubscribe(); + this.subscribeToSource(); + } + subscribeToSource() { + if (!this.sourceSubscribed) { + this.sourceSubscribed = true; + this.unsubscribe(); + this.source.subscribe(this.parent); + } + } +} +//# sourceMappingURL=delayWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map new file mode 100644 index 00000000..bd59a90f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js b/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js new file mode 100644 index 00000000..2e227f12 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js @@ -0,0 +1,20 @@ +import { Subscriber } from '../Subscriber'; +export function dematerialize() { + return function dematerializeOperatorFunction(source) { + return source.lift(new DeMaterializeOperator()); + }; +} +class DeMaterializeOperator { + call(subscriber, source) { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); + } +} +class DeMaterializeSubscriber extends Subscriber { + constructor(destination) { + super(destination); + } + _next(value) { + value.observe(this.destination); + } +} +//# sourceMappingURL=dematerialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map b/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map new file mode 100644 index 00000000..7410893e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sources":["../../../src/internal/operators/dematerialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAkD3C,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAS,6BAA6B,CAAC,MAAmC;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB;IACzB,IAAI,CAAC,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;CACF;AAOD,MAAM,uBAAqD,SAAQ,UAAa;IAC9E,YAAY,WAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinct.js b/node_modules/rxjs/_esm2015/internal/operators/distinct.js new file mode 100644 index 00000000..651dc6df --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/distinct.js @@ -0,0 +1,57 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function distinct(keySelector, flushes) { + return (source) => source.lift(new DistinctOperator(keySelector, flushes)); +} +class DistinctOperator { + constructor(keySelector, flushes) { + this.keySelector = keySelector; + this.flushes = flushes; + } + call(subscriber, source) { + return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); + } +} +export class DistinctSubscriber extends SimpleOuterSubscriber { + constructor(destination, keySelector, flushes) { + super(destination); + this.keySelector = keySelector; + this.values = new Set(); + if (flushes) { + this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(this))); + } + } + notifyNext() { + this.values.clear(); + } + notifyError(error) { + this._error(error); + } + _next(value) { + if (this.keySelector) { + this._useKeySelector(value); + } + else { + this._finalizeNext(value, value); + } + } + _useKeySelector(value) { + let key; + const { destination } = this; + try { + key = this.keySelector(value); + } + catch (err) { + destination.error(err); + return; + } + this._finalizeNext(key, value); + } + _finalizeNext(key, value) { + const { values } = this; + if (!values.has(key)) { + values.add(key); + this.destination.next(value); + } + } +} +//# sourceMappingURL=distinct.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map b/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map new file mode 100644 index 00000000..916cee0b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sources":["../../../src/internal/operators/distinct.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA4DjG,MAAM,UAAU,QAAQ,CAAO,WAA6B,EAC7B,OAAyB;IACtD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,WAA6B,EAAU,OAAyB;QAAhE,gBAAW,GAAX,WAAW,CAAkB;QAAU,YAAO,GAAP,OAAO,CAAkB;IACpF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;CACF;AAOD,MAAM,OAAO,kBAAyB,SAAQ,qBAA2B;IAGvE,YAAY,WAA0B,EAAU,WAA6B,EAAE,OAAyB;QACtG,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,gBAAW,GAAX,WAAW,CAAkB;QAFrE,WAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAK5B,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACpE;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,eAAe,CAAC,KAAQ;QAC9B,IAAI,GAAM,CAAC;QACX,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI;YACF,GAAG,GAAG,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,aAAa,CAAC,GAAQ,EAAE,KAAQ;QACtC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;CAEF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js new file mode 100644 index 00000000..3b8903b1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js @@ -0,0 +1,54 @@ +import { Subscriber } from '../Subscriber'; +export function distinctUntilChanged(compare, keySelector) { + return (source) => source.lift(new DistinctUntilChangedOperator(compare, keySelector)); +} +class DistinctUntilChangedOperator { + constructor(compare, keySelector) { + this.compare = compare; + this.keySelector = keySelector; + } + call(subscriber, source) { + return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); + } +} +class DistinctUntilChangedSubscriber extends Subscriber { + constructor(destination, compare, keySelector) { + super(destination); + this.keySelector = keySelector; + this.hasKey = false; + if (typeof compare === 'function') { + this.compare = compare; + } + } + compare(x, y) { + return x === y; + } + _next(value) { + let key; + try { + const { keySelector } = this; + key = keySelector ? keySelector(value) : value; + } + catch (err) { + return this.destination.error(err); + } + let result = false; + if (this.hasKey) { + try { + const { compare } = this; + result = compare(this.key, key); + } + catch (err) { + return this.destination.error(err); + } + } + else { + this.hasKey = true; + } + if (!result) { + this.key = key; + this.destination.next(value); + } + } +} +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map new file mode 100644 index 00000000..bec6d8c8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sources":["../../../src/internal/operators/distinctUntilChanged.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8D3C,MAAM,UAAU,oBAAoB,CAAO,OAAiC,EAAE,WAAyB;IACrG,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAO,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,4BAA4B;IAChC,YAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;CACF;AAOD,MAAM,8BAAqC,SAAQ,UAAa;IAI9D,YAAY,WAA0B,EAC1B,OAAgC,EACxB,WAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,gBAAW,GAAX,WAAW,CAAa;QAJpC,WAAM,GAAY,KAAK,CAAC;QAM9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;IACH,CAAC;IAEO,OAAO,CAAC,CAAM,EAAE,CAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,GAAQ,CAAC;QACb,IAAI;YACF,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAC7B,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAChD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI;gBACF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;gBACzB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js new file mode 100644 index 00000000..240fd1a9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js @@ -0,0 +1,5 @@ +import { distinctUntilChanged } from './distinctUntilChanged'; +export function distinctUntilKeyChanged(key, compare) { + return distinctUntilChanged((x, y) => compare ? compare(x[key], y[key]) : x[key] === y[key]); +} +//# sourceMappingURL=distinctUntilKeyChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000..b32d8b33 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../../src/internal/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA8E9D,MAAM,UAAU,uBAAuB,CAAuB,GAAM,EAAE,OAAuC;IAC3G,OAAO,oBAAoB,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACrG,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/elementAt.js b/node_modules/rxjs/_esm2015/internal/operators/elementAt.js new file mode 100644 index 00000000..b95376fd --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/elementAt.js @@ -0,0 +1,15 @@ +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { filter } from './filter'; +import { throwIfEmpty } from './throwIfEmpty'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { take } from './take'; +export function elementAt(index, defaultValue) { + if (index < 0) { + throw new ArgumentOutOfRangeError(); + } + const hasDefaultValue = arguments.length >= 2; + return (source) => source.pipe(filter((v, i) => i === index), take(1), hasDefaultValue + ? defaultIfEmpty(defaultValue) + : throwIfEmpty(() => new ArgumentOutOfRangeError())); +} +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map b/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map new file mode 100644 index 00000000..e7cf7f75 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sources":["../../../src/internal/operators/elementAt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkD9B,MAAM,UAAU,SAAS,CAAI,KAAa,EAAE,YAAgB;IAC1D,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;KAAE;IACvD,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EAC7B,IAAI,CAAC,CAAC,CAAC,EACP,eAAe;QACb,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/endWith.js b/node_modules/rxjs/_esm2015/internal/operators/endWith.js new file mode 100644 index 00000000..cf52a35e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/endWith.js @@ -0,0 +1,6 @@ +import { concat } from '../observable/concat'; +import { of } from '../observable/of'; +export function endWith(...array) { + return (source) => concat(source, of(...array)); +} +//# sourceMappingURL=endWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map b/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map new file mode 100644 index 00000000..827ba1a0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/endWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"endWith.js","sources":["../../../src/internal/operators/endWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AA8DtC,MAAM,UAAU,OAAO,CAAI,GAAG,KAA+B;IAC3D,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAkB,CAAC;AAClF,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/every.js b/node_modules/rxjs/_esm2015/internal/operators/every.js new file mode 100644 index 00000000..7d4a0485 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/every.js @@ -0,0 +1,45 @@ +import { Subscriber } from '../Subscriber'; +export function every(predicate, thisArg) { + return (source) => source.lift(new EveryOperator(predicate, thisArg, source)); +} +class EveryOperator { + constructor(predicate, thisArg, source) { + this.predicate = predicate; + this.thisArg = thisArg; + this.source = source; + } + call(observer, source) { + return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); + } +} +class EverySubscriber extends Subscriber { + constructor(destination, predicate, thisArg, source) { + super(destination); + this.predicate = predicate; + this.thisArg = thisArg; + this.source = source; + this.index = 0; + this.thisArg = thisArg || this; + } + notifyComplete(everyValueMatch) { + this.destination.next(everyValueMatch); + this.destination.complete(); + } + _next(value) { + let result = false; + try { + result = this.predicate.call(this.thisArg, value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (!result) { + this.notifyComplete(false); + } + } + _complete() { + this.notifyComplete(true); + } +} +//# sourceMappingURL=every.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/every.js.map b/node_modules/rxjs/_esm2015/internal/operators/every.js.map new file mode 100644 index 00000000..2d151642 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sources":["../../../src/internal/operators/every.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwB3C,MAAM,UAAU,KAAK,CAAI,SAAsE,EACtE,OAAa;IACpC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,SAAsE,EACtE,OAAa,EACb,MAAsB;QAFtB,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAM;QACb,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,QAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,CAAC;CACF;AAOD,MAAM,eAAmB,SAAQ,UAAa;IAG5C,YAAY,WAA8B,EACtB,SAAsE,EACtE,OAAY,EACZ,MAAsB;QACxC,KAAK,CAAC,WAAW,CAAC,CAAC;QAHD,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAK;QACZ,WAAM,GAAN,MAAM,CAAgB;QALlC,UAAK,GAAW,CAAC,CAAC;QAOxB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAEO,cAAc,CAAC,eAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9E;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaust.js b/node_modules/rxjs/_esm2015/internal/operators/exhaust.js new file mode 100644 index 00000000..fd0fb085 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/exhaust.js @@ -0,0 +1,35 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function exhaust() { + return (source) => source.lift(new SwitchFirstOperator()); +} +class SwitchFirstOperator { + call(subscriber, source) { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); + } +} +class SwitchFirstSubscriber extends SimpleOuterSubscriber { + constructor(destination) { + super(destination); + this.hasCompleted = false; + this.hasSubscription = false; + } + _next(value) { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(innerSubscribe(value, new SimpleInnerSubscriber(this))); + } + } + _complete() { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + } + notifyComplete() { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + } +} +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map b/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map new file mode 100644 index 00000000..b64e0dc2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sources":["../../../src/internal/operators/exhaust.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAiDjG,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,mBAAmB;IACvB,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAOD,MAAM,qBAAyB,SAAQ,qBAA2B;IAIhE,YAAY,WAA0B;QACpC,KAAK,CAAC,WAAW,CAAC,CAAC;QAJb,iBAAY,GAAY,KAAK,CAAC;QAC9B,oBAAe,GAAY,KAAK,CAAC;IAIzC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClE;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js b/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js new file mode 100644 index 00000000..7223cb35 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js @@ -0,0 +1,73 @@ +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function exhaustMap(project, resultSelector) { + if (resultSelector) { + return (source) => source.pipe(exhaustMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))))); + } + return (source) => source.lift(new ExhaustMapOperator(project)); +} +class ExhaustMapOperator { + constructor(project) { + this.project = project; + } + call(subscriber, source) { + return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); + } +} +class ExhaustMapSubscriber extends SimpleOuterSubscriber { + constructor(destination, project) { + super(destination); + this.project = project; + this.hasSubscription = false; + this.hasCompleted = false; + this.index = 0; + } + _next(value) { + if (!this.hasSubscription) { + this.tryNext(value); + } + } + tryNext(value) { + let result; + const index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.hasSubscription = true; + this._innerSub(result); + } + _innerSub(result) { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + _complete() { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + this.unsubscribe(); + } + notifyNext(innerValue) { + this.destination.next(innerValue); + } + notifyError(err) { + this.destination.error(err); + } + notifyComplete() { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + } +} +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map new file mode 100644 index 00000000..ab65793a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAuDjG,MAAM,UAAU,UAAU,CACxB,OAAuC,EACvC,cAA6G;IAE7G,IAAI,cAAc,EAAE;QAElB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3C,GAAG,CAAC,CAAC,CAAM,EAAE,EAAO,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CACtD,CAAC,CACH,CAAC;KACH;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,kBAAkB;IACtB,YAAoB,OAAwD;QAAxD,YAAO,GAAP,OAAO,CAAiD;IAC5E,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;CACF;AAOD,MAAM,oBAA2B,SAAQ,qBAA2B;IAKlE,YAAY,WAA0B,EAClB,OAAwD;QAC1E,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,YAAO,GAAP,OAAO,CAAiD;QALpE,oBAAe,GAAG,KAAK,CAAC;QACxB,iBAAY,GAAG,KAAK,CAAC;QACrB,UAAK,GAAG,CAAC,CAAC;IAKlB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,OAAO,CAAC,KAAQ;QACtB,IAAI,MAA0B,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO;SACR;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAEO,SAAS,CAAC,MAA0B;QAC1C,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjC,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAIlE,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACpC;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,UAAa;QACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,WAAW,CAAC,GAAQ;QAClB,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/expand.js b/node_modules/rxjs/_esm2015/internal/operators/expand.js new file mode 100644 index 00000000..11f8cf72 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/expand.js @@ -0,0 +1,88 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function expand(project, concurrent = Number.POSITIVE_INFINITY, scheduler) { + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + return (source) => source.lift(new ExpandOperator(project, concurrent, scheduler)); +} +export class ExpandOperator { + constructor(project, concurrent, scheduler) { + this.project = project; + this.concurrent = concurrent; + this.scheduler = scheduler; + } + call(subscriber, source) { + return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); + } +} +export class ExpandSubscriber extends SimpleOuterSubscriber { + constructor(destination, project, concurrent, scheduler) { + super(destination); + this.project = project; + this.concurrent = concurrent; + this.scheduler = scheduler; + this.index = 0; + this.active = 0; + this.hasCompleted = false; + if (concurrent < Number.POSITIVE_INFINITY) { + this.buffer = []; + } + } + static dispatch(arg) { + const { subscriber, result, value, index } = arg; + subscriber.subscribeToProjection(result, value, index); + } + _next(value) { + const destination = this.destination; + if (destination.closed) { + this._complete(); + return; + } + const index = this.index++; + if (this.active < this.concurrent) { + destination.next(value); + try { + const { project } = this; + const result = project(value, index); + if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } + else { + const state = { subscriber: this, result, value, index }; + const destination = this.destination; + destination.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + } + } + catch (e) { + destination.error(e); + } + } + else { + this.buffer.push(value); + } + } + subscribeToProjection(result, value, index) { + this.active++; + const destination = this.destination; + destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this))); + } + _complete() { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + this.unsubscribe(); + } + notifyNext(innerValue) { + this._next(innerValue); + } + notifyComplete() { + const buffer = this.buffer; + this.active--; + if (buffer && buffer.length > 0) { + this._next(buffer.shift()); + } + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + } +} +//# sourceMappingURL=expand.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/expand.js.map b/node_modules/rxjs/_esm2015/internal/operators/expand.js.map new file mode 100644 index 00000000..10cdd403 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/filter.js b/node_modules/rxjs/_esm2015/internal/operators/filter.js new file mode 100644 index 00000000..3c94a976 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/filter.js @@ -0,0 +1,37 @@ +import { Subscriber } from '../Subscriber'; +export function filter(predicate, thisArg) { + return function filterOperatorFunction(source) { + return source.lift(new FilterOperator(predicate, thisArg)); + }; +} +class FilterOperator { + constructor(predicate, thisArg) { + this.predicate = predicate; + this.thisArg = thisArg; + } + call(subscriber, source) { + return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); + } +} +class FilterSubscriber extends Subscriber { + constructor(destination, predicate, thisArg) { + super(destination); + this.predicate = predicate; + this.thisArg = thisArg; + this.count = 0; + } + _next(value) { + let result; + try { + result = this.predicate.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.destination.next(value); + } + } +} +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/filter.js.map b/node_modules/rxjs/_esm2015/internal/operators/filter.js.map new file mode 100644 index 00000000..d0341d05 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sources":["../../../src/internal/operators/filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwD3C,MAAM,UAAU,MAAM,CAAI,SAA+C,EAC/C,OAAa;IACrC,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,SAA+C,EAC/C,OAAa;QADb,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,UAAa;IAI7C,YAAY,WAA0B,EAClB,SAA+C,EAC/C,OAAY;QAC9B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAK;QAJhC,UAAK,GAAW,CAAC,CAAC;IAMlB,CAAC;IAIS,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/finalize.js b/node_modules/rxjs/_esm2015/internal/operators/finalize.js new file mode 100644 index 00000000..0e4b481e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/finalize.js @@ -0,0 +1,20 @@ +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +export function finalize(callback) { + return (source) => source.lift(new FinallyOperator(callback)); +} +class FinallyOperator { + constructor(callback) { + this.callback = callback; + } + call(subscriber, source) { + return source.subscribe(new FinallySubscriber(subscriber, this.callback)); + } +} +class FinallySubscriber extends Subscriber { + constructor(destination, callback) { + super(destination); + this.add(new Subscription(callback)); + } +} +//# sourceMappingURL=finalize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map b/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map new file mode 100644 index 00000000..41375bec --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/finalize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finalize.js","sources":["../../../src/internal/operators/finalize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAY/C,MAAM,UAAU,QAAQ,CAAI,QAAoB;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,eAAe;IACnB,YAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF;AAOD,MAAM,iBAAqB,SAAQ,UAAa;IAC9C,YAAY,WAA0B,EAAE,QAAoB;QAC1D,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/find.js b/node_modules/rxjs/_esm2015/internal/operators/find.js new file mode 100644 index 00000000..37d80e17 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/find.js @@ -0,0 +1,51 @@ +import { Subscriber } from '../Subscriber'; +export function find(predicate, thisArg) { + if (typeof predicate !== 'function') { + throw new TypeError('predicate is not a function'); + } + return (source) => source.lift(new FindValueOperator(predicate, source, false, thisArg)); +} +export class FindValueOperator { + constructor(predicate, source, yieldIndex, thisArg) { + this.predicate = predicate; + this.source = source; + this.yieldIndex = yieldIndex; + this.thisArg = thisArg; + } + call(observer, source) { + return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); + } +} +export class FindValueSubscriber extends Subscriber { + constructor(destination, predicate, source, yieldIndex, thisArg) { + super(destination); + this.predicate = predicate; + this.source = source; + this.yieldIndex = yieldIndex; + this.thisArg = thisArg; + this.index = 0; + } + notifyComplete(value) { + const destination = this.destination; + destination.next(value); + destination.complete(); + this.unsubscribe(); + } + _next(value) { + const { predicate, thisArg } = this; + const index = this.index++; + try { + const result = predicate.call(thisArg || this, value, index, this.source); + if (result) { + this.notifyComplete(this.yieldIndex ? index : value); + } + } + catch (err) { + this.destination.error(err); + } + } + _complete() { + this.notifyComplete(this.yieldIndex ? -1 : undefined); + } +} +//# sourceMappingURL=find.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/find.js.map b/node_modules/rxjs/_esm2015/internal/operators/find.js.map new file mode 100644 index 00000000..5b684be2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sources":["../../../src/internal/operators/find.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AA8CzC,MAAM,UAAU,IAAI,CAAI,SAAsE,EACtE,OAAa;IACnC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;KACpD;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAA8B,CAAC;AACvI,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAHb,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,IAAI,CAAC,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;CACF;AAOD,MAAM,OAAO,mBAAuB,SAAQ,UAAa;IAGvD,YAAY,WAA0B,EAClB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAC/B,KAAK,CAAC,WAAW,CAAC,CAAC;QAJD,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;QANzB,UAAK,GAAW,CAAC,CAAC;IAQ1B,CAAC;IAEO,cAAc,CAAC,KAAU;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,EAAC,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACtD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/findIndex.js b/node_modules/rxjs/_esm2015/internal/operators/findIndex.js new file mode 100644 index 00000000..64727218 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/findIndex.js @@ -0,0 +1,5 @@ +import { FindValueOperator } from '../operators/find'; +export function findIndex(predicate, thisArg) { + return (source) => source.lift(new FindValueOperator(predicate, source, true, thisArg)); +} +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map b/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map new file mode 100644 index 00000000..29d8dbf4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sources":["../../../src/internal/operators/findIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA0CtD,MAAM,UAAU,SAAS,CAAI,SAAsE,EACtE,OAAa;IACxC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAoB,CAAC;AAC5H,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/first.js b/node_modules/rxjs/_esm2015/internal/operators/first.js new file mode 100644 index 00000000..406bba06 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/first.js @@ -0,0 +1,11 @@ +import { EmptyError } from '../util/EmptyError'; +import { filter } from './filter'; +import { take } from './take'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { throwIfEmpty } from './throwIfEmpty'; +import { identity } from '../util/identity'; +export function first(predicate, defaultValue) { + const hasDefaultValue = arguments.length >= 2; + return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError())); +} +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/first.js.map b/node_modules/rxjs/_esm2015/internal/operators/first.js.map new file mode 100644 index 00000000..44ff5c94 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sources":["../../../src/internal/operators/first.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuE5C,MAAM,UAAU,KAAK,CACnB,SAAgF,EAChF,YAAgB;IAEhB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,IAAI,CAAC,CAAC,CAAC,EACP,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,CAC7F,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/groupBy.js b/node_modules/rxjs/_esm2015/internal/operators/groupBy.js new file mode 100644 index 00000000..c60d49d0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/groupBy.js @@ -0,0 +1,164 @@ +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +export function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { + return (source) => source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); +} +class GroupByOperator { + constructor(keySelector, elementSelector, durationSelector, subjectSelector) { + this.keySelector = keySelector; + this.elementSelector = elementSelector; + this.durationSelector = durationSelector; + this.subjectSelector = subjectSelector; + } + call(subscriber, source) { + return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); + } +} +class GroupBySubscriber extends Subscriber { + constructor(destination, keySelector, elementSelector, durationSelector, subjectSelector) { + super(destination); + this.keySelector = keySelector; + this.elementSelector = elementSelector; + this.durationSelector = durationSelector; + this.subjectSelector = subjectSelector; + this.groups = null; + this.attemptedToUnsubscribe = false; + this.count = 0; + } + _next(value) { + let key; + try { + key = this.keySelector(value); + } + catch (err) { + this.error(err); + return; + } + this._group(value, key); + } + _group(value, key) { + let groups = this.groups; + if (!groups) { + groups = this.groups = new Map(); + } + let group = groups.get(key); + let element; + if (this.elementSelector) { + try { + element = this.elementSelector(value); + } + catch (err) { + this.error(err); + } + } + else { + element = value; + } + if (!group) { + group = (this.subjectSelector ? this.subjectSelector() : new Subject()); + groups.set(key, group); + const groupedObservable = new GroupedObservable(key, group, this); + this.destination.next(groupedObservable); + if (this.durationSelector) { + let duration; + try { + duration = this.durationSelector(new GroupedObservable(key, group)); + } + catch (err) { + this.error(err); + return; + } + this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); + } + } + if (!group.closed) { + group.next(element); + } + } + _error(err) { + const groups = this.groups; + if (groups) { + groups.forEach((group, key) => { + group.error(err); + }); + groups.clear(); + } + this.destination.error(err); + } + _complete() { + const groups = this.groups; + if (groups) { + groups.forEach((group, key) => { + group.complete(); + }); + groups.clear(); + } + this.destination.complete(); + } + removeGroup(key) { + this.groups.delete(key); + } + unsubscribe() { + if (!this.closed) { + this.attemptedToUnsubscribe = true; + if (this.count === 0) { + super.unsubscribe(); + } + } + } +} +class GroupDurationSubscriber extends Subscriber { + constructor(key, group, parent) { + super(group); + this.key = key; + this.group = group; + this.parent = parent; + } + _next(value) { + this.complete(); + } + _unsubscribe() { + const { parent, key } = this; + this.key = this.parent = null; + if (parent) { + parent.removeGroup(key); + } + } +} +export class GroupedObservable extends Observable { + constructor(key, groupSubject, refCountSubscription) { + super(); + this.key = key; + this.groupSubject = groupSubject; + this.refCountSubscription = refCountSubscription; + } + _subscribe(subscriber) { + const subscription = new Subscription(); + const { refCountSubscription, groupSubject } = this; + if (refCountSubscription && !refCountSubscription.closed) { + subscription.add(new InnerRefCountSubscription(refCountSubscription)); + } + subscription.add(groupSubject.subscribe(subscriber)); + return subscription; + } +} +class InnerRefCountSubscription extends Subscription { + constructor(parent) { + super(); + this.parent = parent; + parent.count++; + } + unsubscribe() { + const parent = this.parent; + if (!parent.closed && !this.closed) { + super.unsubscribe(); + parent.count -= 1; + if (parent.count === 0 && parent.attemptedToUnsubscribe) { + parent.unsubscribe(); + } + } + } +} +//# sourceMappingURL=groupBy.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map b/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map new file mode 100644 index 00000000..77258281 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sources":["../../../src/internal/operators/groupBy.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js b/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js new file mode 100644 index 00000000..9b4d214d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js @@ -0,0 +1,16 @@ +import { Subscriber } from '../Subscriber'; +export function ignoreElements() { + return function ignoreElementsOperatorFunction(source) { + return source.lift(new IgnoreElementsOperator()); + }; +} +class IgnoreElementsOperator { + call(subscriber, source) { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + } +} +class IgnoreElementsSubscriber extends Subscriber { + _next(unused) { + } +} +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map b/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map new file mode 100644 index 00000000..9ac771c5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sources":["../../../src/internal/operators/ignoreElements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8B3C,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,8BAA8B,CAAC,MAAuB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,sBAAsB;IAC1B,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAOD,MAAM,wBAA4B,SAAQ,UAAa;IAC3C,KAAK,CAAC,MAAS;IAEzB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/index.js b/node_modules/rxjs/_esm2015/internal/operators/index.js new file mode 100644 index 00000000..52a926cd --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/index.js @@ -0,0 +1,103 @@ +export { audit } from './audit'; +export { auditTime } from './auditTime'; +export { buffer } from './buffer'; +export { bufferCount } from './bufferCount'; +export { bufferTime } from './bufferTime'; +export { bufferToggle } from './bufferToggle'; +export { bufferWhen } from './bufferWhen'; +export { catchError } from './catchError'; +export { combineAll } from './combineAll'; +export { combineLatest } from './combineLatest'; +export { concat } from './concat'; +export { concatAll } from './concatAll'; +export { concatMap } from './concatMap'; +export { concatMapTo } from './concatMapTo'; +export { count } from './count'; +export { debounce } from './debounce'; +export { debounceTime } from './debounceTime'; +export { defaultIfEmpty } from './defaultIfEmpty'; +export { delay } from './delay'; +export { delayWhen } from './delayWhen'; +export { dematerialize } from './dematerialize'; +export { distinct } from './distinct'; +export { distinctUntilChanged } from './distinctUntilChanged'; +export { distinctUntilKeyChanged } from './distinctUntilKeyChanged'; +export { elementAt } from './elementAt'; +export { every } from './every'; +export { exhaust } from './exhaust'; +export { exhaustMap } from './exhaustMap'; +export { expand } from './expand'; +export { filter } from './filter'; +export { finalize } from './finalize'; +export { find } from './find'; +export { findIndex } from './findIndex'; +export { first } from './first'; +export { groupBy } from './groupBy'; +export { ignoreElements } from './ignoreElements'; +export { isEmpty } from './isEmpty'; +export { last } from './last'; +export { map } from './map'; +export { mapTo } from './mapTo'; +export { materialize } from './materialize'; +export { max } from './max'; +export { merge } from './merge'; +export { mergeAll } from './mergeAll'; +export { mergeMap } from './mergeMap'; +export { mergeMap as flatMap } from './mergeMap'; +export { mergeMapTo } from './mergeMapTo'; +export { mergeScan } from './mergeScan'; +export { min } from './min'; +export { multicast } from './multicast'; +export { observeOn } from './observeOn'; +export { onErrorResumeNext } from './onErrorResumeNext'; +export { pairwise } from './pairwise'; +export { partition } from './partition'; +export { pluck } from './pluck'; +export { publish } from './publish'; +export { publishBehavior } from './publishBehavior'; +export { publishLast } from './publishLast'; +export { publishReplay } from './publishReplay'; +export { race } from './race'; +export { reduce } from './reduce'; +export { repeat } from './repeat'; +export { repeatWhen } from './repeatWhen'; +export { retry } from './retry'; +export { retryWhen } from './retryWhen'; +export { refCount } from './refCount'; +export { sample } from './sample'; +export { sampleTime } from './sampleTime'; +export { scan } from './scan'; +export { sequenceEqual } from './sequenceEqual'; +export { share } from './share'; +export { shareReplay } from './shareReplay'; +export { single } from './single'; +export { skip } from './skip'; +export { skipLast } from './skipLast'; +export { skipUntil } from './skipUntil'; +export { skipWhile } from './skipWhile'; +export { startWith } from './startWith'; +export { subscribeOn } from './subscribeOn'; +export { switchAll } from './switchAll'; +export { switchMap } from './switchMap'; +export { switchMapTo } from './switchMapTo'; +export { take } from './take'; +export { takeLast } from './takeLast'; +export { takeUntil } from './takeUntil'; +export { takeWhile } from './takeWhile'; +export { tap } from './tap'; +export { throttle } from './throttle'; +export { throttleTime } from './throttleTime'; +export { timeInterval } from './timeInterval'; +export { timeout } from './timeout'; +export { timeoutWith } from './timeoutWith'; +export { timestamp } from './timestamp'; +export { toArray } from './toArray'; +export { window } from './window'; +export { windowCount } from './windowCount'; +export { windowTime } from './windowTime'; +export { windowToggle } from './windowToggle'; +export { windowWhen } from './windowWhen'; +export { withLatestFrom } from './withLatestFrom'; +export { zip } from './zip'; +export { zipAll } from './zipAll'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/index.js.map b/node_modules/rxjs/_esm2015/internal/operators/index.js.map new file mode 100644 index 00000000..9ba5647e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/operators/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js b/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js new file mode 100644 index 00000000..a1b8b5a0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js @@ -0,0 +1,26 @@ +import { Subscriber } from '../Subscriber'; +export function isEmpty() { + return (source) => source.lift(new IsEmptyOperator()); +} +class IsEmptyOperator { + call(observer, source) { + return source.subscribe(new IsEmptySubscriber(observer)); + } +} +class IsEmptySubscriber extends Subscriber { + constructor(destination) { + super(destination); + } + notifyComplete(isEmpty) { + const destination = this.destination; + destination.next(isEmpty); + destination.complete(); + } + _next(value) { + this.notifyComplete(false); + } + _complete() { + this.notifyComplete(true); + } +} +//# sourceMappingURL=isEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map b/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map new file mode 100644 index 00000000..c0f8e63f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sources":["../../../src/internal/operators/isEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgE3C,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,eAAe;IACnB,IAAI,CAAE,QAA6B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF;AAOD,MAAM,iBAAkB,SAAQ,UAAe;IAC7C,YAAY,WAAgC;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;IAEO,cAAc,CAAC,OAAgB;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,KAAc;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/last.js b/node_modules/rxjs/_esm2015/internal/operators/last.js new file mode 100644 index 00000000..ff65d75f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/last.js @@ -0,0 +1,11 @@ +import { EmptyError } from '../util/EmptyError'; +import { filter } from './filter'; +import { takeLast } from './takeLast'; +import { throwIfEmpty } from './throwIfEmpty'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { identity } from '../util/identity'; +export function last(predicate, defaultValue) { + const hasDefaultValue = arguments.length >= 2; + return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError())); +} +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/last.js.map b/node_modules/rxjs/_esm2015/internal/operators/last.js.map new file mode 100644 index 00000000..95eb25fd --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sources":["../../../src/internal/operators/last.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAkC5C,MAAM,UAAU,IAAI,CAClB,SAAgF,EAChF,YAAgB;IAEhB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,QAAQ,CAAC,CAAC,CAAC,EACX,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,CAC7F,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/map.js b/node_modules/rxjs/_esm2015/internal/operators/map.js new file mode 100644 index 00000000..3be1e761 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/map.js @@ -0,0 +1,38 @@ +import { Subscriber } from '../Subscriber'; +export function map(project, thisArg) { + return function mapOperation(source) { + if (typeof project !== 'function') { + throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); + } + return source.lift(new MapOperator(project, thisArg)); + }; +} +export class MapOperator { + constructor(project, thisArg) { + this.project = project; + this.thisArg = thisArg; + } + call(subscriber, source) { + return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); + } +} +class MapSubscriber extends Subscriber { + constructor(destination, project, thisArg) { + super(destination); + this.project = project; + this.count = 0; + this.thisArg = thisArg || this; + } + _next(value) { + let result; + try { + result = this.project.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + } +} +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/map.js.map b/node_modules/rxjs/_esm2015/internal/operators/map.js.map new file mode 100644 index 00000000..b396f646 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sources":["../../../src/internal/operators/map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2C3C,MAAM,UAAU,GAAG,CAAO,OAAuC,EAAE,OAAa;IAC9E,OAAO,SAAS,YAAY,CAAC,MAAqB;QAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,WAAW;IACtB,YAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAOD,MAAM,aAAoB,SAAQ,UAAa;IAI7C,YAAY,WAA0B,EAClB,OAAuC,EAC/C,OAAY;QACtB,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,YAAO,GAAP,OAAO,CAAgC;QAJ3D,UAAK,GAAW,CAAC,CAAC;QAOhB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;IACjC,CAAC;IAIS,KAAK,CAAC,KAAQ;QACtB,IAAI,MAAS,CAAC;QACd,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/mapTo.js b/node_modules/rxjs/_esm2015/internal/operators/mapTo.js new file mode 100644 index 00000000..160be163 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mapTo.js @@ -0,0 +1,22 @@ +import { Subscriber } from '../Subscriber'; +export function mapTo(value) { + return (source) => source.lift(new MapToOperator(value)); +} +class MapToOperator { + constructor(value) { + this.value = value; + } + call(subscriber, source) { + return source.subscribe(new MapToSubscriber(subscriber, this.value)); + } +} +class MapToSubscriber extends Subscriber { + constructor(destination, value) { + super(destination); + this.value = value; + } + _next(x) { + this.destination.next(this.value); + } +} +//# sourceMappingURL=mapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map new file mode 100644 index 00000000..d572ed8e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sources":["../../../src/internal/operators/mapTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAO,KAAQ;IAClC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,aAAa;IAIjB,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;CACF;AAOD,MAAM,eAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAAE,KAAQ;QAC9C,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,CAAI;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/materialize.js b/node_modules/rxjs/_esm2015/internal/operators/materialize.js new file mode 100644 index 00000000..66eac6cb --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/materialize.js @@ -0,0 +1,31 @@ +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +export function materialize() { + return function materializeOperatorFunction(source) { + return source.lift(new MaterializeOperator()); + }; +} +class MaterializeOperator { + call(subscriber, source) { + return source.subscribe(new MaterializeSubscriber(subscriber)); + } +} +class MaterializeSubscriber extends Subscriber { + constructor(destination) { + super(destination); + } + _next(value) { + this.destination.next(Notification.createNext(value)); + } + _error(err) { + const destination = this.destination; + destination.next(Notification.createError(err)); + destination.complete(); + } + _complete() { + const destination = this.destination; + destination.next(Notification.createComplete()); + destination.complete(); + } +} +//# sourceMappingURL=materialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map b/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map new file mode 100644 index 00000000..cd635a68 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sources":["../../../src/internal/operators/materialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqD/C,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB;IACvB,IAAI,CAAC,UAAuC,EAAE,MAAW;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;CACF;AAOD,MAAM,qBAAyB,SAAQ,UAAa;IAClD,YAAY,WAAwC;QAClD,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/max.js b/node_modules/rxjs/_esm2015/internal/operators/max.js new file mode 100644 index 00000000..6d2083e8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/max.js @@ -0,0 +1,8 @@ +import { reduce } from './reduce'; +export function max(comparer) { + const max = (typeof comparer === 'function') + ? (x, y) => comparer(x, y) > 0 ? x : y + : (x, y) => x > y ? x : y; + return reduce(max); +} +//# sourceMappingURL=max.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/max.js.map b/node_modules/rxjs/_esm2015/internal/operators/max.js.map new file mode 100644 index 00000000..0009e691 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sources":["../../../src/internal/operators/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgDlC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,MAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/merge.js b/node_modules/rxjs/_esm2015/internal/operators/merge.js new file mode 100644 index 00000000..691be8bd --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/merge.js @@ -0,0 +1,5 @@ +import { merge as mergeStatic } from '../observable/merge'; +export function merge(...observables) { + return (source) => source.lift.call(mergeStatic(source, ...observables)); +} +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/merge.js.map b/node_modules/rxjs/_esm2015/internal/operators/merge.js.map new file mode 100644 index 00000000..52e603cc --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../../src/internal/operators/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsC3D,MAAM,UAAU,KAAK,CAAO,GAAG,WAAiE;IAC9F,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;AAC1F,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js b/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js new file mode 100644 index 00000000..05d63a62 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js @@ -0,0 +1,6 @@ +import { mergeMap } from './mergeMap'; +import { identity } from '../util/identity'; +export function mergeAll(concurrent = Number.POSITIVE_INFINITY) { + return mergeMap(identity, concurrent); +} +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map new file mode 100644 index 00000000..69da1475 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sources":["../../../src/internal/operators/mergeAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA6D5C,MAAM,UAAU,QAAQ,CAAI,aAAqB,MAAM,CAAC,iBAAiB;IACvE,OAAO,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js b/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js new file mode 100644 index 00000000..8b0f4586 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js @@ -0,0 +1,84 @@ +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + if (typeof resultSelector === 'function') { + return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent)); + } + else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return (source) => source.lift(new MergeMapOperator(project, concurrent)); +} +export class MergeMapOperator { + constructor(project, concurrent = Number.POSITIVE_INFINITY) { + this.project = project; + this.concurrent = concurrent; + } + call(observer, source) { + return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); + } +} +export class MergeMapSubscriber extends SimpleOuterSubscriber { + constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) { + super(destination); + this.project = project; + this.concurrent = concurrent; + this.hasCompleted = false; + this.buffer = []; + this.active = 0; + this.index = 0; + } + _next(value) { + if (this.active < this.concurrent) { + this._tryNext(value); + } + else { + this.buffer.push(value); + } + } + _tryNext(value) { + let result; + const index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.active++; + this._innerSub(result); + } + _innerSub(ish) { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + _complete() { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete(); + } + this.unsubscribe(); + } + notifyNext(innerValue) { + this.destination.next(innerValue); + } + notifyComplete() { + const buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); + } + } +} +export const flatMap = mergeMap; +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map new file mode 100644 index 00000000..fff95d9d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js b/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js new file mode 100644 index 00000000..d4184baf --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js @@ -0,0 +1,11 @@ +import { mergeMap } from './mergeMap'; +export function mergeMapTo(innerObservable, resultSelector, concurrent = Number.POSITIVE_INFINITY) { + if (typeof resultSelector === 'function') { + return mergeMap(() => innerObservable, resultSelector, concurrent); + } + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return mergeMap(() => innerObservable, concurrent); +} +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map new file mode 100644 index 00000000..c7db2810 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sources":["../../../src/internal/operators/mergeMapTo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiDtC,MAAM,UAAU,UAAU,CACxB,eAAkB,EAClB,cAAwH,EACxH,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;KACpE;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js b/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js new file mode 100644 index 00000000..1f19aaf7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js @@ -0,0 +1,85 @@ +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function mergeScan(accumulator, seed, concurrent = Number.POSITIVE_INFINITY) { + return (source) => source.lift(new MergeScanOperator(accumulator, seed, concurrent)); +} +export class MergeScanOperator { + constructor(accumulator, seed, concurrent) { + this.accumulator = accumulator; + this.seed = seed; + this.concurrent = concurrent; + } + call(subscriber, source) { + return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); + } +} +export class MergeScanSubscriber extends SimpleOuterSubscriber { + constructor(destination, accumulator, acc, concurrent) { + super(destination); + this.accumulator = accumulator; + this.acc = acc; + this.concurrent = concurrent; + this.hasValue = false; + this.hasCompleted = false; + this.buffer = []; + this.active = 0; + this.index = 0; + } + _next(value) { + if (this.active < this.concurrent) { + const index = this.index++; + const destination = this.destination; + let ish; + try { + const { accumulator } = this; + ish = accumulator(this.acc, value, index); + } + catch (e) { + return destination.error(e); + } + this.active++; + this._innerSub(ish); + } + else { + this.buffer.push(value); + } + } + _innerSub(ish) { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + _complete() { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + this.unsubscribe(); + } + notifyNext(innerValue) { + const { destination } = this; + this.acc = innerValue; + this.hasValue = true; + destination.next(innerValue); + } + notifyComplete() { + const buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + } +} +//# sourceMappingURL=mergeScan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map b/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map new file mode 100644 index 00000000..c67cf25e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/min.js b/node_modules/rxjs/_esm2015/internal/operators/min.js new file mode 100644 index 00000000..1f7fc8c7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/min.js @@ -0,0 +1,8 @@ +import { reduce } from './reduce'; +export function min(comparer) { + const min = (typeof comparer === 'function') + ? (x, y) => comparer(x, y) < 0 ? x : y + : (x, y) => x < y ? x : y; + return reduce(min); +} +//# sourceMappingURL=min.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/min.js.map b/node_modules/rxjs/_esm2015/internal/operators/min.js.map new file mode 100644 index 00000000..1793b064 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sources":["../../../src/internal/operators/min.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA+ClC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,MAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/multicast.js b/node_modules/rxjs/_esm2015/internal/operators/multicast.js new file mode 100644 index 00000000..6e154c80 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/multicast.js @@ -0,0 +1,35 @@ +import { connectableObservableDescriptor } from '../observable/ConnectableObservable'; +export function multicast(subjectOrSubjectFactory, selector) { + return function multicastOperatorFunction(source) { + let subjectFactory; + if (typeof subjectOrSubjectFactory === 'function') { + subjectFactory = subjectOrSubjectFactory; + } + else { + subjectFactory = function subjectFactory() { + return subjectOrSubjectFactory; + }; + } + if (typeof selector === 'function') { + return source.lift(new MulticastOperator(subjectFactory, selector)); + } + const connectable = Object.create(source, connectableObservableDescriptor); + connectable.source = source; + connectable.subjectFactory = subjectFactory; + return connectable; + }; +} +export class MulticastOperator { + constructor(subjectFactory, selector) { + this.subjectFactory = subjectFactory; + this.selector = selector; + } + call(subscriber, source) { + const { selector } = this; + const subject = this.subjectFactory(); + const subscription = selector(subject).subscribe(subscriber); + subscription.add(source.subscribe(subject)); + return subscription; + } +} +//# sourceMappingURL=multicast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map b/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map new file mode 100644 index 00000000..254c7841 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sources":["../../../src/internal/operators/multicast.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AA6B7G,MAAM,UAAU,SAAS,CAAO,uBAAwD,EACxD,QAAmD;IACjF,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE;YACjD,cAAc,GAAqB,uBAAuB,CAAC;SAC5D;aAAM;YACL,cAAc,GAAG,SAAS,cAAc;gBACtC,OAAmB,uBAAuB,CAAC;YAC7C,CAAC,CAAC;SACH;QAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrE;QAED,MAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;QAE5C,OAAkC,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,cAAgC,EAChC,QAAkD;QADlD,mBAAc,GAAd,cAAc,CAAkB;QAChC,aAAQ,GAAR,QAAQ,CAA0C;IACtE,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/observeOn.js b/node_modules/rxjs/_esm2015/internal/operators/observeOn.js new file mode 100644 index 00000000..1efe6d49 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/observeOn.js @@ -0,0 +1,50 @@ +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +export function observeOn(scheduler, delay = 0) { + return function observeOnOperatorFunction(source) { + return source.lift(new ObserveOnOperator(scheduler, delay)); + }; +} +export class ObserveOnOperator { + constructor(scheduler, delay = 0) { + this.scheduler = scheduler; + this.delay = delay; + } + call(subscriber, source) { + return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + } +} +export class ObserveOnSubscriber extends Subscriber { + constructor(destination, scheduler, delay = 0) { + super(destination); + this.scheduler = scheduler; + this.delay = delay; + } + static dispatch(arg) { + const { notification, destination } = arg; + notification.observe(destination); + this.unsubscribe(); + } + scheduleMessage(notification) { + const destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + } + _next(value) { + this.scheduleMessage(Notification.createNext(value)); + } + _error(err) { + this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); + } + _complete() { + this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); + } +} +export class ObserveOnMessage { + constructor(notification, destination) { + this.notification = notification; + this.destination = destination; + } +} +//# sourceMappingURL=observeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map b/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map new file mode 100644 index 00000000..65e6cdcf --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAuD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,QAAgB,CAAC;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAiB;IAC5B,YAAoB,SAAwB,EAAU,QAAgB,CAAC;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF;AAOD,MAAM,OAAO,mBAAuB,SAAQ,UAAa;IAQvD,YAAY,WAA0B,EAClB,SAAwB,EACxB,QAAgB,CAAC;QACnC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAY;IAErC,CAAC;IAVD,MAAM,CAAC,QAAQ,CAA0C,GAAqB;QAC5E,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,eAAe,CAAC,YAA+B;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAC3B,YAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js b/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js new file mode 100644 index 00000000..92bbbfd9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js @@ -0,0 +1,62 @@ +import { from } from '../observable/from'; +import { isArray } from '../util/isArray'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function onErrorResumeNext(...nextSources) { + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + return (source) => source.lift(new OnErrorResumeNextOperator(nextSources)); +} +export function onErrorResumeNextStatic(...nextSources) { + let source = undefined; + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + source = nextSources.shift(); + return from(source).lift(new OnErrorResumeNextOperator(nextSources)); +} +class OnErrorResumeNextOperator { + constructor(nextSources) { + this.nextSources = nextSources; + } + call(subscriber, source) { + return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); + } +} +class OnErrorResumeNextSubscriber extends SimpleOuterSubscriber { + constructor(destination, nextSources) { + super(destination); + this.destination = destination; + this.nextSources = nextSources; + } + notifyError() { + this.subscribeToNextSource(); + } + notifyComplete() { + this.subscribeToNextSource(); + } + _error(err) { + this.subscribeToNextSource(); + this.unsubscribe(); + } + _complete() { + this.subscribeToNextSource(); + this.unsubscribe(); + } + subscribeToNextSource() { + const next = this.nextSources.shift(); + if (!!next) { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(next, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + else { + this.destination.complete(); + } + } +} +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map b/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map new file mode 100644 index 00000000..a4de348a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAmFjG,MAAM,UAAU,iBAAiB,CAAO,GAAG,WACwC;IACjF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AAClG,CAAC;AAaD,MAAM,UAAU,uBAAuB,CAAO,GAAG,WAEhB;IAC/B,IAAI,MAAM,GAAmC,SAAS,CAAC;IAEvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAA2B,CAAC;KACxD;IAED,MAAM,GAAG,WAAW,CAAC,KAAK,EAAG,CAAC;IAE9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,yBAAyB;IAC7B,YAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;CACF;AAED,MAAM,2BAAkC,SAAQ,qBAA2B;IACzE,YAAsB,WAA0B,EAC5B,WAAwC;QAC1D,KAAK,CAAC,WAAW,CAAC,CAAC;QAFC,gBAAW,GAAX,WAAW,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAA6B;IAE5D,CAAC;IAED,WAAW;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,qBAAqB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,IAAI,EAAE;YACV,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;YACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAIhE,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/pairwise.js b/node_modules/rxjs/_esm2015/internal/operators/pairwise.js new file mode 100644 index 00000000..00136726 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/pairwise.js @@ -0,0 +1,29 @@ +import { Subscriber } from '../Subscriber'; +export function pairwise() { + return (source) => source.lift(new PairwiseOperator()); +} +class PairwiseOperator { + call(subscriber, source) { + return source.subscribe(new PairwiseSubscriber(subscriber)); + } +} +class PairwiseSubscriber extends Subscriber { + constructor(destination) { + super(destination); + this.hasPrev = false; + } + _next(value) { + let pair; + if (this.hasPrev) { + pair = [this.prev, value]; + } + else { + this.hasPrev = true; + } + this.prev = value; + if (pair) { + this.destination.next(pair); + } + } +} +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map b/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map new file mode 100644 index 00000000..f5877412 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sources":["../../../src/internal/operators/pairwise.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8C3C,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,gBAAgB;IACpB,IAAI,CAAC,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF;AAOD,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA+B;QACzC,KAAK,CAAC,WAAW,CAAC,CAAC;QAHb,YAAO,GAAY,KAAK,CAAC;IAIjC,CAAC;IAED,KAAK,CAAC,KAAQ;QACZ,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/partition.js b/node_modules/rxjs/_esm2015/internal/operators/partition.js new file mode 100644 index 00000000..6ef7d980 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/partition.js @@ -0,0 +1,9 @@ +import { not } from '../util/not'; +import { filter } from './filter'; +export function partition(predicate, thisArg) { + return (source) => [ + filter(predicate, thisArg)(source), + filter(not(predicate, thisArg))(source) + ]; +} +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/partition.js.map b/node_modules/rxjs/_esm2015/internal/operators/partition.js.map new file mode 100644 index 00000000..aa945f50 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../../../src/internal/operators/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoDlC,MAAM,UAAU,SAAS,CAAI,SAA+C,EAC/C,OAAa;IACxC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,MAAM,CAAC;KACb,CAAC;AACtC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/pluck.js b/node_modules/rxjs/_esm2015/internal/operators/pluck.js new file mode 100644 index 00000000..9146dba5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/pluck.js @@ -0,0 +1,25 @@ +import { map } from './map'; +export function pluck(...properties) { + const length = properties.length; + if (length === 0) { + throw new Error('list of properties cannot be empty.'); + } + return (source) => map(plucker(properties, length))(source); +} +function plucker(props, length) { + const mapper = (x) => { + let currentProp = x; + for (let i = 0; i < length; i++) { + const p = currentProp != null ? currentProp[props[i]] : undefined; + if (p !== void 0) { + currentProp = p; + } + else { + return undefined; + } + } + return currentProp; + }; + return mapper; +} +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map b/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map new file mode 100644 index 00000000..56af7d35 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sources":["../../../src/internal/operators/pluck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA6C5B,MAAM,UAAU,KAAK,CAAO,GAAG,UAAoB;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAa,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,OAAO,CAAC,KAAe,EAAE,MAAc;IAC9C,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;gBAChB,WAAW,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/publish.js b/node_modules/rxjs/_esm2015/internal/operators/publish.js new file mode 100644 index 00000000..416d7fbc --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publish.js @@ -0,0 +1,8 @@ +import { Subject } from '../Subject'; +import { multicast } from './multicast'; +export function publish(selector) { + return selector ? + multicast(() => new Subject(), selector) : + multicast(new Subject()); +} +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/publish.js.map b/node_modules/rxjs/_esm2015/internal/operators/publish.js.map new file mode 100644 index 00000000..89d79b22 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sources":["../../../src/internal/operators/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA4DxC,MAAM,UAAU,OAAO,CAAO,QAAiC;IAC7D,OAAO,QAAQ,CAAC,CAAC;QACf,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,EAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,SAAS,CAAC,IAAI,OAAO,EAAK,CAAC,CAAC;AAChC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js b/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js new file mode 100644 index 00000000..090d696d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js @@ -0,0 +1,6 @@ +import { BehaviorSubject } from '../BehaviorSubject'; +import { multicast } from './multicast'; +export function publishBehavior(value) { + return (source) => multicast(new BehaviorSubject(value))(source); +} +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map b/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map new file mode 100644 index 00000000..04805f1d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sources":["../../../src/internal/operators/publishBehavior.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC,MAAM,UAAU,eAAe,CAAI,KAAQ;IACzC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,CAAC;AACjH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishLast.js b/node_modules/rxjs/_esm2015/internal/operators/publishLast.js new file mode 100644 index 00000000..5d4ea446 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publishLast.js @@ -0,0 +1,6 @@ +import { AsyncSubject } from '../AsyncSubject'; +import { multicast } from './multicast'; +export function publishLast() { + return (source) => multicast(new AsyncSubject())(source); +} +//# sourceMappingURL=publishLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map b/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map new file mode 100644 index 00000000..120a3fd4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sources":["../../../src/internal/operators/publishLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8DxC,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js b/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js new file mode 100644 index 00000000..9aca27f2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js @@ -0,0 +1,11 @@ +import { ReplaySubject } from '../ReplaySubject'; +import { multicast } from './multicast'; +export function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { + if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { + scheduler = selectorOrScheduler; + } + const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; + const subject = new ReplaySubject(bufferSize, windowTime, scheduler); + return (source) => multicast(() => subject, selector)(source); +} +//# sourceMappingURL=publishReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map b/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map new file mode 100644 index 00000000..d8a7ac76 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sources":["../../../src/internal/operators/publishReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,MAAM,UAAU,aAAa,CAAO,UAAmB,EACnB,UAAmB,EACnB,mBAA4D,EAC5D,SAAyB;IAE3D,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QACpE,SAAS,GAAG,mBAAmB,CAAC;KACjC;IAED,MAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6B,CAAC;AAC3G,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/race.js b/node_modules/rxjs/_esm2015/internal/operators/race.js new file mode 100644 index 00000000..faea6b1e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/race.js @@ -0,0 +1,11 @@ +import { isArray } from '../util/isArray'; +import { race as raceStatic } from '../observable/race'; +export function race(...observables) { + return function raceOperatorFunction(source) { + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0]; + } + return source.lift.call(raceStatic(source, ...observables)); + }; +} +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/race.js.map b/node_modules/rxjs/_esm2015/internal/operators/race.js.map new file mode 100644 index 00000000..ae477b9d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../../src/internal/operators/race.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBxD,MAAM,UAAU,IAAI,CAAI,GAAG,WAAgD;IACzE,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QAGxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAAoB,CAAC;SACjD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAI,WAA+B,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/reduce.js b/node_modules/rxjs/_esm2015/internal/operators/reduce.js new file mode 100644 index 00000000..ca129872 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/reduce.js @@ -0,0 +1,15 @@ +import { scan } from './scan'; +import { takeLast } from './takeLast'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { pipe } from '../util/pipe'; +export function reduce(accumulator, seed) { + if (arguments.length >= 2) { + return function reduceOperatorFunctionWithSeed(source) { + return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source); + }; + } + return function reduceOperatorFunction(source) { + return pipe(scan((acc, value, index) => accumulator(acc, value, index + 1)), takeLast(1))(source); + }; +} +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map b/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map new file mode 100644 index 00000000..13820533 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AA2DpC,MAAM,UAAU,MAAM,CAAO,WAA4D,EAAE,IAAY;IAMrG,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CACT,IAAI,CAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EACzE,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/refCount.js b/node_modules/rxjs/_esm2015/internal/operators/refCount.js new file mode 100644 index 00000000..3de8d1e1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/refCount.js @@ -0,0 +1,52 @@ +import { Subscriber } from '../Subscriber'; +export function refCount() { + return function refCountOperatorFunction(source) { + return source.lift(new RefCountOperator(source)); + }; +} +class RefCountOperator { + constructor(connectable) { + this.connectable = connectable; + } + call(subscriber, source) { + const { connectable } = this; + connectable._refCount++; + const refCounter = new RefCountSubscriber(subscriber, connectable); + const subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + } +} +class RefCountSubscriber extends Subscriber { + constructor(destination, connectable) { + super(destination); + this.connectable = connectable; + } + _unsubscribe() { + const { connectable } = this; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + const refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + const { connection } = this; + const sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + } +} +//# sourceMappingURL=refCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map b/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map new file mode 100644 index 00000000..2bbfde99 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/refCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refCount.js","sources":["../../../src/internal/operators/refCount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2D3C,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,wBAAwB,CAAC,MAAgC;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAgC,CAAC;AACnC,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QAEzC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SACvD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAClB,WAAqC;QACvD,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,gBAAW,GAAX,WAAW,CAA0B;IAEzD,CAAC;IAES,YAAY;QAEpB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,QAAQ,GAAU,WAAY,CAAC,SAAS,CAAC;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAEM,WAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QA0BD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,gBAAgB,GAAU,WAAY,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,KAAK,UAAU,CAAC,EAAE;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeat.js b/node_modules/rxjs/_esm2015/internal/operators/repeat.js new file mode 100644 index 00000000..8d4788fb --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/repeat.js @@ -0,0 +1,44 @@ +import { Subscriber } from '../Subscriber'; +import { empty } from '../observable/empty'; +export function repeat(count = -1) { + return (source) => { + if (count === 0) { + return empty(); + } + else if (count < 0) { + return source.lift(new RepeatOperator(-1, source)); + } + else { + return source.lift(new RepeatOperator(count - 1, source)); + } + }; +} +class RepeatOperator { + constructor(count, source) { + this.count = count; + this.source = source; + } + call(subscriber, source) { + return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + } +} +class RepeatSubscriber extends Subscriber { + constructor(destination, count, source) { + super(destination); + this.count = count; + this.source = source; + } + complete() { + if (!this.isStopped) { + const { source, count } = this; + if (count === 0) { + return super.complete(); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + } +} +//# sourceMappingURL=repeat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map b/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map new file mode 100644 index 00000000..10d378ae --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sources":["../../../src/internal/operators/repeat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA2D5C,MAAM,UAAU,MAAM,CAAI,QAAgB,CAAC,CAAC;IAC1C,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,UAAa;IAC7C,YAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js b/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js new file mode 100644 index 00000000..027eaa09 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js @@ -0,0 +1,76 @@ +import { Subject } from '../Subject'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function repeatWhen(notifier) { + return (source) => source.lift(new RepeatWhenOperator(notifier)); +} +class RepeatWhenOperator { + constructor(notifier) { + this.notifier = notifier; + } + call(subscriber, source) { + return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); + } +} +class RepeatWhenSubscriber extends SimpleOuterSubscriber { + constructor(destination, notifier, source) { + super(destination); + this.notifier = notifier; + this.source = source; + this.sourceIsBeingSubscribedTo = true; + } + notifyNext() { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); + } + notifyComplete() { + if (this.sourceIsBeingSubscribedTo === false) { + return super.complete(); + } + } + complete() { + this.sourceIsBeingSubscribedTo = false; + if (!this.isStopped) { + if (!this.retries) { + this.subscribeToRetries(); + } + if (!this.retriesSubscription || this.retriesSubscription.closed) { + return super.complete(); + } + this._unsubscribeAndRecycle(); + this.notifications.next(undefined); + } + } + _unsubscribe() { + const { notifications, retriesSubscription } = this; + if (notifications) { + notifications.unsubscribe(); + this.notifications = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + } + _unsubscribeAndRecycle() { + const { _unsubscribe } = this; + this._unsubscribe = null; + super._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + return this; + } + subscribeToRetries() { + this.notifications = new Subject(); + let retries; + try { + const { notifier } = this; + retries = notifier(this.notifications); + } + catch (e) { + return super.complete(); + } + this.retries = retries; + this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + } +} +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map new file mode 100644 index 00000000..912b6025 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sources":["../../../src/internal/operators/repeatWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/retry.js b/node_modules/rxjs/_esm2015/internal/operators/retry.js new file mode 100644 index 00000000..e3036c2b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/retry.js @@ -0,0 +1,33 @@ +import { Subscriber } from '../Subscriber'; +export function retry(count = -1) { + return (source) => source.lift(new RetryOperator(count, source)); +} +class RetryOperator { + constructor(count, source) { + this.count = count; + this.source = source; + } + call(subscriber, source) { + return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); + } +} +class RetrySubscriber extends Subscriber { + constructor(destination, count, source) { + super(destination); + this.count = count; + this.source = source; + } + error(err) { + if (!this.isStopped) { + const { source, count } = this; + if (count === 0) { + return super.error(err); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + } +} +//# sourceMappingURL=retry.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/retry.js.map b/node_modules/rxjs/_esm2015/internal/operators/retry.js.map new file mode 100644 index 00000000..e6816499 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sources":["../../../src/internal/operators/retry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,KAAK,CAAI,QAAgB,CAAC,CAAC;IACzC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,aAAa;IACjB,YAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;CACF;AAOD,MAAM,eAAmB,SAAQ,UAAa;IAC5C,YAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IACD,KAAK,CAAC,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js b/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js new file mode 100644 index 00000000..0f3aa2fb --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js @@ -0,0 +1,68 @@ +import { Subject } from '../Subject'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function retryWhen(notifier) { + return (source) => source.lift(new RetryWhenOperator(notifier, source)); +} +class RetryWhenOperator { + constructor(notifier, source) { + this.notifier = notifier; + this.source = source; + } + call(subscriber, source) { + return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); + } +} +class RetryWhenSubscriber extends SimpleOuterSubscriber { + constructor(destination, notifier, source) { + super(destination); + this.notifier = notifier; + this.source = source; + } + error(err) { + if (!this.isStopped) { + let errors = this.errors; + let retries = this.retries; + let retriesSubscription = this.retriesSubscription; + if (!retries) { + errors = new Subject(); + try { + const { notifier } = this; + retries = notifier(errors); + } + catch (e) { + return super.error(e); + } + retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + } + else { + this.errors = undefined; + this.retriesSubscription = undefined; + } + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + errors.next(err); + } + } + _unsubscribe() { + const { errors, retriesSubscription } = this; + if (errors) { + errors.unsubscribe(); + this.errors = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + } + notifyNext() { + const { _unsubscribe } = this; + this._unsubscribe = null; + this._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + this.source.subscribe(this); + } +} +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map new file mode 100644 index 00000000..828da081 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sources":["../../../src/internal/operators/retryWhen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAgBjG,MAAM,UAAU,SAAS,CAAI,QAAsD;IACjF,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAsB,QAAsD,EACtD,MAAqB;QADrB,aAAQ,GAAR,QAAQ,CAA8C;QACtD,WAAM,GAAN,MAAM,CAAe;IAC3C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;CACF;AAOD,MAAM,mBAA0B,SAAQ,qBAA2B;IAMjE,YAAY,WAA0B,EAClB,QAAsD,EACtD,MAAqB;QACvC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,aAAQ,GAAR,QAAQ,CAA8C;QACtD,WAAM,GAAN,MAAM,CAAe;IAEzC,CAAC;IAED,KAAK,CAAC,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAEnB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,OAAO,GAAQ,IAAI,CAAC,OAAO,CAAC;YAChC,IAAI,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAEnD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBACvB,IAAI;oBACF,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;oBAC1B,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC5B;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACvB;gBACD,mBAAmB,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;aAChF;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;aACtC;YAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAE9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;YAE/C,MAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnB;IACH,CAAC;IAGD,YAAY;QACV,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;QAC7C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;SACzB;QACD,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;SACtC;QACD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAE9B,IAAI,CAAC,YAAY,GAAG,IAAK,CAAC;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/sample.js b/node_modules/rxjs/_esm2015/internal/operators/sample.js new file mode 100644 index 00000000..bab2a432 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/sample.js @@ -0,0 +1,38 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function sample(notifier) { + return (source) => source.lift(new SampleOperator(notifier)); +} +class SampleOperator { + constructor(notifier) { + this.notifier = notifier; + } + call(subscriber, source) { + const sampleSubscriber = new SampleSubscriber(subscriber); + const subscription = source.subscribe(sampleSubscriber); + subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber))); + return subscription; + } +} +class SampleSubscriber extends SimpleOuterSubscriber { + constructor() { + super(...arguments); + this.hasValue = false; + } + _next(value) { + this.value = value; + this.hasValue = true; + } + notifyNext() { + this.emitValue(); + } + notifyComplete() { + this.emitValue(); + } + emitValue() { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.value); + } + } +} +//# sourceMappingURL=sample.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/sample.js.map b/node_modules/rxjs/_esm2015/internal/operators/sample.js.map new file mode 100644 index 00000000..01c210fe --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sources":["../../../src/internal/operators/sample.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA0CjG,MAAM,UAAU,MAAM,CAAI,QAAyB;IACjD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7F,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAOD,MAAM,gBAAuB,SAAQ,qBAA2B;IAAhE;;QAEU,aAAQ,GAAY,KAAK,CAAC;IAqBpC,CAAC;IAnBW,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;SACrC;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js b/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js new file mode 100644 index 00000000..a3b08c28 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js @@ -0,0 +1,39 @@ +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +export function sampleTime(period, scheduler = async) { + return (source) => source.lift(new SampleTimeOperator(period, scheduler)); +} +class SampleTimeOperator { + constructor(period, scheduler) { + this.period = period; + this.scheduler = scheduler; + } + call(subscriber, source) { + return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); + } +} +class SampleTimeSubscriber extends Subscriber { + constructor(destination, period, scheduler) { + super(destination); + this.period = period; + this.scheduler = scheduler; + this.hasValue = false; + this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period })); + } + _next(value) { + this.lastValue = value; + this.hasValue = true; + } + notifyNext() { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.lastValue); + } + } +} +function dispatchNotification(state) { + let { subscriber, period } = state; + subscriber.notifyNext(); + this.schedule(state, period); +} +//# sourceMappingURL=sampleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map new file mode 100644 index 00000000..4b202a33 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sources":["../../../src/internal/operators/sampleTime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA6C3C,MAAM,UAAU,UAAU,CAAI,MAAc,EAAE,YAA2B,KAAK;IAC5E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,kBAAkB;IACtB,YAAoB,MAAc,EACd,SAAwB;QADxB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;CACF;AAOD,MAAM,oBAAwB,SAAQ,UAAa;IAIjD,YAAY,WAA0B,EAClB,MAAc,EACd,SAAwB;QAC1C,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;QAJ5C,aAAQ,GAAY,KAAK,CAAC;QAMxB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;CACF;AAED,SAAS,oBAAoB,CAAgC,KAAU;IACrE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnC,UAAU,CAAC,UAAU,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/scan.js b/node_modules/rxjs/_esm2015/internal/operators/scan.js new file mode 100644 index 00000000..44cfc175 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/scan.js @@ -0,0 +1,58 @@ +import { Subscriber } from '../Subscriber'; +export function scan(accumulator, seed) { + let hasSeed = false; + if (arguments.length >= 2) { + hasSeed = true; + } + return function scanOperatorFunction(source) { + return source.lift(new ScanOperator(accumulator, seed, hasSeed)); + }; +} +class ScanOperator { + constructor(accumulator, seed, hasSeed = false) { + this.accumulator = accumulator; + this.seed = seed; + this.hasSeed = hasSeed; + } + call(subscriber, source) { + return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); + } +} +class ScanSubscriber extends Subscriber { + constructor(destination, accumulator, _seed, hasSeed) { + super(destination); + this.accumulator = accumulator; + this._seed = _seed; + this.hasSeed = hasSeed; + this.index = 0; + } + get seed() { + return this._seed; + } + set seed(value) { + this.hasSeed = true; + this._seed = value; + } + _next(value) { + if (!this.hasSeed) { + this.seed = value; + this.destination.next(value); + } + else { + return this._tryNext(value); + } + } + _tryNext(value) { + const index = this.index++; + let result; + try { + result = this.accumulator(this.seed, value, index); + } + catch (err) { + this.destination.error(err); + } + this.seed = result; + this.destination.next(result); + } +} +//# sourceMappingURL=scan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/scan.js.map b/node_modules/rxjs/_esm2015/internal/operators/scan.js.map new file mode 100644 index 00000000..b93b4db2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sources":["../../../src/internal/operators/scan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoD3C,MAAM,UAAU,IAAI,CAAO,WAAmD,EAAE,IAAY;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAC;IAMpB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY;IAChB,YAAoB,WAAmD,EAAU,IAAY,EAAU,UAAmB,KAAK;QAA3G,gBAAW,GAAX,WAAW,CAAwC;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEnI,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrG,CAAC;CACF;AAOD,MAAM,cAAqB,SAAQ,UAAa;IAY9C,YAAY,WAA0B,EAAU,WAAmD,EAAU,KAAY,EACrG,OAAgB;QAClC,KAAK,CAAC,WAAW,CAAC,CAAC;QAF2B,gBAAW,GAAX,WAAW,CAAwC;QAAU,UAAK,GAAL,KAAK,CAAO;QACrG,YAAO,GAAP,OAAO,CAAS;QAZ5B,UAAK,GAAW,CAAC,CAAC;IAc1B,CAAC;IAZD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAY;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAOS,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,QAAQ,CAAC,KAAQ;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js b/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js new file mode 100644 index 00000000..a2a5e6a5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js @@ -0,0 +1,99 @@ +import { Subscriber } from '../Subscriber'; +export function sequenceEqual(compareTo, comparator) { + return (source) => source.lift(new SequenceEqualOperator(compareTo, comparator)); +} +export class SequenceEqualOperator { + constructor(compareTo, comparator) { + this.compareTo = compareTo; + this.comparator = comparator; + } + call(subscriber, source) { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator)); + } +} +export class SequenceEqualSubscriber extends Subscriber { + constructor(destination, compareTo, comparator) { + super(destination); + this.compareTo = compareTo; + this.comparator = comparator; + this._a = []; + this._b = []; + this._oneComplete = false; + this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this))); + } + _next(value) { + if (this._oneComplete && this._b.length === 0) { + this.emit(false); + } + else { + this._a.push(value); + this.checkValues(); + } + } + _complete() { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + this.unsubscribe(); + } + checkValues() { + const { _a, _b, comparator } = this; + while (_a.length > 0 && _b.length > 0) { + let a = _a.shift(); + let b = _b.shift(); + let areEqual = false; + try { + areEqual = comparator ? comparator(a, b) : a === b; + } + catch (e) { + this.destination.error(e); + } + if (!areEqual) { + this.emit(false); + } + } + } + emit(value) { + const { destination } = this; + destination.next(value); + destination.complete(); + } + nextB(value) { + if (this._oneComplete && this._a.length === 0) { + this.emit(false); + } + else { + this._b.push(value); + this.checkValues(); + } + } + completeB() { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + } +} +class SequenceEqualCompareToSubscriber extends Subscriber { + constructor(destination, parent) { + super(destination); + this.parent = parent; + } + _next(value) { + this.parent.nextB(value); + } + _error(err) { + this.parent.error(err); + this.unsubscribe(); + } + _complete() { + this.parent.completeB(); + this.unsubscribe(); + } +} +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map b/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map new file mode 100644 index 00000000..2122eb44 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/share.js b/node_modules/rxjs/_esm2015/internal/operators/share.js new file mode 100644 index 00000000..bc2c9536 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/share.js @@ -0,0 +1,10 @@ +import { multicast } from './multicast'; +import { refCount } from './refCount'; +import { Subject } from '../Subject'; +function shareSubjectFactory() { + return new Subject(); +} +export function share() { + return (source) => refCount()(multicast(shareSubjectFactory)(source)); +} +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/share.js.map b/node_modules/rxjs/_esm2015/internal/operators/share.js.map new file mode 100644 index 00000000..904fa879 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sources":["../../../src/internal/operators/share.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,SAAS,mBAAmB;IAC1B,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC;AAcD,MAAM,UAAU,KAAK;IACnB,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAkB,CAAC;AACxG,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js b/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js new file mode 100644 index 00000000..bc17d967 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js @@ -0,0 +1,57 @@ +import { ReplaySubject } from '../ReplaySubject'; +export function shareReplay(configOrBufferSize, windowTime, scheduler) { + let config; + if (configOrBufferSize && typeof configOrBufferSize === 'object') { + config = configOrBufferSize; + } + else { + config = { + bufferSize: configOrBufferSize, + windowTime, + refCount: false, + scheduler + }; + } + return (source) => source.lift(shareReplayOperator(config)); +} +function shareReplayOperator({ bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, refCount: useRefCount, scheduler }) { + let subject; + let refCount = 0; + let subscription; + let hasError = false; + let isComplete = false; + return function shareReplayOperation(source) { + refCount++; + let innerSub; + if (!subject || hasError) { + hasError = false; + subject = new ReplaySubject(bufferSize, windowTime, scheduler); + innerSub = subject.subscribe(this); + subscription = source.subscribe({ + next(value) { subject.next(value); }, + error(err) { + hasError = true; + subject.error(err); + }, + complete() { + isComplete = true; + subscription = undefined; + subject.complete(); + }, + }); + } + else { + innerSub = subject.subscribe(this); + } + this.add(() => { + refCount--; + innerSub.unsubscribe(); + if (subscription && !isComplete && useRefCount && refCount === 0) { + subscription.unsubscribe(); + subscription = undefined; + subject = undefined; + } + }); + }; +} +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map b/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map new file mode 100644 index 00000000..b5b1b1c6 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2DjD,MAAM,UAAU,WAAW,CACzB,kBAA+C,EAC/C,UAAmB,EACnB,SAAyB;IAEzB,IAAI,MAAyB,CAAC;IAC9B,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAChE,MAAM,GAAG,kBAAuC,CAAC;KAClD;SAAM;QACL,MAAM,GAAG;YACP,UAAU,EAAE,kBAAwC;YACpD,UAAU;YACV,QAAQ,EAAE,KAAK;YACf,SAAS;SACV,CAAC;KACH;IACD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAAI,EAC9B,UAAU,GAAG,MAAM,CAAC,iBAAiB,EACrC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EACrC,QAAQ,EAAE,WAAW,EACrB,SAAS,EACS;IAClB,IAAI,OAAqC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,QAAsB,CAAC;QAC3B,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,CAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,YAAY,GAAG,SAAS,CAAC;oBACzB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;aAAM;YACL,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;YACZ,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChE,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/single.js b/node_modules/rxjs/_esm2015/internal/operators/single.js new file mode 100644 index 00000000..5839ba6d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/single.js @@ -0,0 +1,62 @@ +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; +export function single(predicate) { + return (source) => source.lift(new SingleOperator(predicate, source)); +} +class SingleOperator { + constructor(predicate, source) { + this.predicate = predicate; + this.source = source; + } + call(subscriber, source) { + return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); + } +} +class SingleSubscriber extends Subscriber { + constructor(destination, predicate, source) { + super(destination); + this.predicate = predicate; + this.source = source; + this.seenValue = false; + this.index = 0; + } + applySingleValue(value) { + if (this.seenValue) { + this.destination.error('Sequence contains more than one element'); + } + else { + this.seenValue = true; + this.singleValue = value; + } + } + _next(value) { + const index = this.index++; + if (this.predicate) { + this.tryNext(value, index); + } + else { + this.applySingleValue(value); + } + } + tryNext(value, index) { + try { + if (this.predicate(value, index, this.source)) { + this.applySingleValue(value); + } + } + catch (err) { + this.destination.error(err); + } + } + _complete() { + const destination = this.destination; + if (this.index > 0) { + destination.next(this.seenValue ? this.singleValue : undefined); + destination.complete(); + } + else { + destination.error(new EmptyError); + } + } +} +//# sourceMappingURL=single.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/single.js.map b/node_modules/rxjs/_esm2015/internal/operators/single.js.map new file mode 100644 index 00000000..b7db2d93 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sources":["../../../src/internal/operators/single.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkDhD,MAAM,UAAU,MAAM,CAAI,SAAuE;IAC/F,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,cAAc;IAClB,YAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,UAAa;IAK7C,YAAY,WAAwB,EAChB,SAAuE,EACvE,MAAsB;QACxC,KAAK,CAAC,WAAW,CAAC,CAAC;QAFD,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;QANlC,cAAS,GAAY,KAAK,CAAC;QAE3B,UAAK,GAAW,CAAC,CAAC;IAM1B,CAAC;IAEO,gBAAgB,CAAC,KAAQ;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEO,OAAO,CAAC,KAAQ,EAAE,KAAa;QACrC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;aAAM;YACL,WAAW,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;SACnC;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/skip.js b/node_modules/rxjs/_esm2015/internal/operators/skip.js new file mode 100644 index 00000000..5fa27cdc --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skip.js @@ -0,0 +1,25 @@ +import { Subscriber } from '../Subscriber'; +export function skip(count) { + return (source) => source.lift(new SkipOperator(count)); +} +class SkipOperator { + constructor(total) { + this.total = total; + } + call(subscriber, source) { + return source.subscribe(new SkipSubscriber(subscriber, this.total)); + } +} +class SkipSubscriber extends Subscriber { + constructor(destination, total) { + super(destination); + this.total = total; + this.count = 0; + } + _next(x) { + if (++this.count > this.total) { + this.destination.next(x); + } + } +} +//# sourceMappingURL=skip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/skip.js.map b/node_modules/rxjs/_esm2015/internal/operators/skip.js.map new file mode 100644 index 00000000..82e71ec1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sources":["../../../src/internal/operators/skip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,YAAY;IAChB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAOD,MAAM,cAAkB,SAAQ,UAAa;IAG3C,YAAY,WAA0B,EAAU,KAAa;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAF7D,UAAK,GAAW,CAAC,CAAC;IAIlB,CAAC;IAES,KAAK,CAAC,CAAI;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipLast.js b/node_modules/rxjs/_esm2015/internal/operators/skipLast.js new file mode 100644 index 00000000..f6de47ea --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skipLast.js @@ -0,0 +1,44 @@ +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +export function skipLast(count) { + return (source) => source.lift(new SkipLastOperator(count)); +} +class SkipLastOperator { + constructor(_skipCount) { + this._skipCount = _skipCount; + if (this._skipCount < 0) { + throw new ArgumentOutOfRangeError; + } + } + call(subscriber, source) { + if (this._skipCount === 0) { + return source.subscribe(new Subscriber(subscriber)); + } + else { + return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); + } + } +} +class SkipLastSubscriber extends Subscriber { + constructor(destination, _skipCount) { + super(destination); + this._skipCount = _skipCount; + this._count = 0; + this._ring = new Array(_skipCount); + } + _next(value) { + const skipCount = this._skipCount; + const count = this._count++; + if (count < skipCount) { + this._ring[count] = value; + } + else { + const currentIndex = count % skipCount; + const ring = this._ring; + const oldValue = ring[currentIndex]; + ring[currentIndex] = value; + this.destination.next(oldValue); + } + } +} +//# sourceMappingURL=skipLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map b/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map new file mode 100644 index 00000000..7654c0fa --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sources":["../../../src/internal/operators/skipLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AA0C1E,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAGzB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;CACF;AAOD,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAAU,UAAkB;QAChE,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,eAAU,GAAV,UAAU,CAAQ;QAF1D,WAAM,GAAW,CAAC,CAAC;QAIzB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAI,UAAU,CAAC,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SAC3B;aAAM;YACL,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js b/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js new file mode 100644 index 00000000..a0f54e3f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js @@ -0,0 +1,40 @@ +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function skipUntil(notifier) { + return (source) => source.lift(new SkipUntilOperator(notifier)); +} +class SkipUntilOperator { + constructor(notifier) { + this.notifier = notifier; + } + call(destination, source) { + return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); + } +} +class SkipUntilSubscriber extends SimpleOuterSubscriber { + constructor(destination, notifier) { + super(destination); + this.hasValue = false; + const innerSubscriber = new SimpleInnerSubscriber(this); + this.add(innerSubscriber); + this.innerSubscription = innerSubscriber; + const innerSubscription = innerSubscribe(notifier, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + this.add(innerSubscription); + this.innerSubscription = innerSubscription; + } + } + _next(value) { + if (this.hasValue) { + super._next(value); + } + } + notifyNext() { + this.hasValue = true; + if (this.innerSubscription) { + this.innerSubscription.unsubscribe(); + } + } + notifyComplete() { + } +} +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map b/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map new file mode 100644 index 00000000..22db02d2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sources":["../../../src/internal/operators/skipUntil.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAyCjG,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,WAA0B,EAAE,MAAW;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAOD,MAAM,mBAA0B,SAAQ,qBAA2B;IAKjE,YAAY,WAA0B,EAAE,QAA8B;QACpE,KAAK,CAAC,WAAW,CAAC,CAAC;QAJb,aAAQ,GAAY,KAAK,CAAC;QAKhC,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QACzC,MAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAIpE,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;IACH,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACtC;IACH,CAAC;IAED,cAAc;IAEd,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js b/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js new file mode 100644 index 00000000..a1212bc5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js @@ -0,0 +1,39 @@ +import { Subscriber } from '../Subscriber'; +export function skipWhile(predicate) { + return (source) => source.lift(new SkipWhileOperator(predicate)); +} +class SkipWhileOperator { + constructor(predicate) { + this.predicate = predicate; + } + call(subscriber, source) { + return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); + } +} +class SkipWhileSubscriber extends Subscriber { + constructor(destination, predicate) { + super(destination); + this.predicate = predicate; + this.skipping = true; + this.index = 0; + } + _next(value) { + const destination = this.destination; + if (this.skipping) { + this.tryCallPredicate(value); + } + if (!this.skipping) { + destination.next(value); + } + } + tryCallPredicate(value) { + try { + const result = this.predicate(value, this.index++); + this.skipping = Boolean(result); + } + catch (err) { + this.destination.error(err); + } + } +} +//# sourceMappingURL=skipWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map b/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map new file mode 100644 index 00000000..c409a550 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sources":["../../../src/internal/operators/skipWhile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAOD,MAAM,mBAAuB,SAAQ,UAAa;IAIhD,YAAY,WAA0B,EAClB,SAA+C;QACjE,KAAK,CAAC,WAAW,CAAC,CAAC;QADD,cAAS,GAAT,SAAS,CAAsC;QAJ3D,aAAQ,GAAY,IAAI,CAAC;QACzB,UAAK,GAAW,CAAC,CAAC;IAK1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAQ;QAC/B,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/startWith.js b/node_modules/rxjs/_esm2015/internal/operators/startWith.js new file mode 100644 index 00000000..a9a7c273 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/startWith.js @@ -0,0 +1,13 @@ +import { concat } from '../observable/concat'; +import { isScheduler } from '../util/isScheduler'; +export function startWith(...array) { + const scheduler = array[array.length - 1]; + if (isScheduler(scheduler)) { + array.pop(); + return (source) => concat(array, source, scheduler); + } + else { + return (source) => concat(array, source); + } +} +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map b/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map new file mode 100644 index 00000000..4ba6b89e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sources":["../../../src/internal/operators/startWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiElD,MAAM,UAAU,SAAS,CAAO,GAAG,KAA+B;IAChE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IAC3D,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAE1B,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;KAC3E;SAAM;QACL,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAY,EAAE,MAAM,CAAC,CAAC;KAChE;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js b/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js new file mode 100644 index 00000000..2ca57958 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js @@ -0,0 +1,16 @@ +import { SubscribeOnObservable } from '../observable/SubscribeOnObservable'; +export function subscribeOn(scheduler, delay = 0) { + return function subscribeOnOperatorFunction(source) { + return source.lift(new SubscribeOnOperator(scheduler, delay)); + }; +} +class SubscribeOnOperator { + constructor(scheduler, delay) { + this.scheduler = scheduler; + this.delay = delay; + } + call(subscriber, source) { + return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber); + } +} +//# sourceMappingURL=subscribeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map b/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map new file mode 100644 index 00000000..dd285b45 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sources":["../../../src/internal/operators/subscribeOn.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AA6C5E,MAAM,UAAU,WAAW,CAAI,SAAwB,EAAE,QAAgB,CAAC;IACxE,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB;IACvB,YAAoB,SAAwB,EACxB,KAAa;QADb,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IACD,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,IAAI,qBAAqB,CAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CACnC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchAll.js b/node_modules/rxjs/_esm2015/internal/operators/switchAll.js new file mode 100644 index 00000000..f0db5993 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/switchAll.js @@ -0,0 +1,6 @@ +import { switchMap } from './switchMap'; +import { identity } from '../util/identity'; +export function switchAll() { + return switchMap(identity); +} +//# sourceMappingURL=switchAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map new file mode 100644 index 00000000..643e89db --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/switchAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchAll.js","sources":["../../../src/internal/operators/switchAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA4D5C,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMap.js b/node_modules/rxjs/_esm2015/internal/operators/switchMap.js new file mode 100644 index 00000000..a550a4c7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/switchMap.js @@ -0,0 +1,69 @@ +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function switchMap(project, resultSelector) { + if (typeof resultSelector === 'function') { + return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))))); + } + return (source) => source.lift(new SwitchMapOperator(project)); +} +class SwitchMapOperator { + constructor(project) { + this.project = project; + } + call(subscriber, source) { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + } +} +class SwitchMapSubscriber extends SimpleOuterSubscriber { + constructor(destination, project) { + super(destination); + this.project = project; + this.index = 0; + } + _next(value) { + let result; + const index = this.index++; + try { + result = this.project(value, index); + } + catch (error) { + this.destination.error(error); + return; + } + this._innerSub(result); + } + _innerSub(result) { + const innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination; + destination.add(innerSubscriber); + this.innerSubscription = innerSubscribe(result, innerSubscriber); + if (this.innerSubscription !== innerSubscriber) { + destination.add(this.innerSubscription); + } + } + _complete() { + const { innerSubscription } = this; + if (!innerSubscription || innerSubscription.closed) { + super._complete(); + } + this.unsubscribe(); + } + _unsubscribe() { + this.innerSubscription = undefined; + } + notifyComplete() { + this.innerSubscription = undefined; + if (this.isStopped) { + super._complete(); + } + } + notifyNext(innerValue) { + this.destination.next(innerValue); + } +} +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map b/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map new file mode 100644 index 00000000..5d2cecd7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js b/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js new file mode 100644 index 00000000..be8a83da --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js @@ -0,0 +1,5 @@ +import { switchMap } from './switchMap'; +export function switchMapTo(innerObservable, resultSelector) { + return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable); +} +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map b/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map new file mode 100644 index 00000000..018ebd5d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sources":["../../../src/internal/operators/switchMapTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkDxC,MAAM,UAAU,WAAW,CACzB,eAAmC,EACnC,cAA4F;IAE5F,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;AAC9G,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/take.js b/node_modules/rxjs/_esm2015/internal/operators/take.js new file mode 100644 index 00000000..bd45f033 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/take.js @@ -0,0 +1,43 @@ +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { empty } from '../observable/empty'; +export function take(count) { + return (source) => { + if (count === 0) { + return empty(); + } + else { + return source.lift(new TakeOperator(count)); + } + }; +} +class TakeOperator { + constructor(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + call(subscriber, source) { + return source.subscribe(new TakeSubscriber(subscriber, this.total)); + } +} +class TakeSubscriber extends Subscriber { + constructor(destination, total) { + super(destination); + this.total = total; + this.count = 0; + } + _next(value) { + const total = this.total; + const count = ++this.count; + if (count <= total) { + this.destination.next(value); + if (count === total) { + this.destination.complete(); + this.unsubscribe(); + } + } + } +} +//# sourceMappingURL=take.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/take.js.map b/node_modules/rxjs/_esm2015/internal/operators/take.js.map new file mode 100644 index 00000000..dcf2e847 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sources":["../../../src/internal/operators/take.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAkD5C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY;IAChB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAOD,MAAM,cAAkB,SAAQ,UAAa;IAG3C,YAAY,WAA0B,EAAU,KAAa;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAFrD,UAAK,GAAW,CAAC,CAAC;IAI1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeLast.js b/node_modules/rxjs/_esm2015/internal/operators/takeLast.js new file mode 100644 index 00000000..98fe686b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/takeLast.js @@ -0,0 +1,58 @@ +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { empty } from '../observable/empty'; +export function takeLast(count) { + return function takeLastOperatorFunction(source) { + if (count === 0) { + return empty(); + } + else { + return source.lift(new TakeLastOperator(count)); + } + }; +} +class TakeLastOperator { + constructor(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + call(subscriber, source) { + return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + } +} +class TakeLastSubscriber extends Subscriber { + constructor(destination, total) { + super(destination); + this.total = total; + this.ring = new Array(); + this.count = 0; + } + _next(value) { + const ring = this.ring; + const total = this.total; + const count = this.count++; + if (ring.length < total) { + ring.push(value); + } + else { + const index = count % total; + ring[index] = value; + } + } + _complete() { + const destination = this.destination; + let count = this.count; + if (count > 0) { + const total = this.count >= this.total ? this.total : this.count; + const ring = this.ring; + for (let i = 0; i < total; i++) { + const idx = (count++) % total; + destination.next(ring[idx]); + } + } + destination.complete(); + } +} +//# sourceMappingURL=takeLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map b/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map new file mode 100644 index 00000000..f1d87a73 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sources":["../../../src/internal/operators/takeLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA8C5C,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,SAAS,wBAAwB,CAAC,MAAqB;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB;IACpB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AAOD,MAAM,kBAAsB,SAAQ,UAAa;IAI/C,YAAY,WAA0B,EAAU,KAAa;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,UAAK,GAAL,KAAK,CAAQ;QAHrD,SAAI,GAAa,IAAI,KAAK,EAAE,CAAC;QAC7B,UAAK,GAAW,CAAC,CAAC;IAI1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM;YACL,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC;IAES,SAAS;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js b/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js new file mode 100644 index 00000000..9bd558b9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js @@ -0,0 +1,31 @@ +import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe'; +export function takeUntil(notifier) { + return (source) => source.lift(new TakeUntilOperator(notifier)); +} +class TakeUntilOperator { + constructor(notifier) { + this.notifier = notifier; + } + call(subscriber, source) { + const takeUntilSubscriber = new TakeUntilSubscriber(subscriber); + const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber)); + if (notifierSubscription && !takeUntilSubscriber.seenValue) { + takeUntilSubscriber.add(notifierSubscription); + return source.subscribe(takeUntilSubscriber); + } + return takeUntilSubscriber; + } +} +class TakeUntilSubscriber extends SimpleOuterSubscriber { + constructor(destination) { + super(destination); + this.seenValue = false; + } + notifyNext() { + this.seenValue = true; + this.complete(); + } + notifyComplete() { + } +} +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map b/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map new file mode 100644 index 00000000..91ea0e1c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sources":["../../../src/internal/operators/takeUntil.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA0CjG,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,iBAAiB;IACrB,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,oBAAoB,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC3G,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YAC1D,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SAC9C;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF;AAOD,MAAM,mBAA0B,SAAQ,qBAA2B;IAGjE,YAAY,WAA4B;QACtC,KAAK,CAAC,WAAW,CAAC,CAAC;QAHrB,cAAS,GAAG,KAAK,CAAC;IAIlB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,cAAc;IAEd,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js b/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js new file mode 100644 index 00000000..fa759680 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js @@ -0,0 +1,46 @@ +import { Subscriber } from '../Subscriber'; +export function takeWhile(predicate, inclusive = false) { + return (source) => source.lift(new TakeWhileOperator(predicate, inclusive)); +} +class TakeWhileOperator { + constructor(predicate, inclusive) { + this.predicate = predicate; + this.inclusive = inclusive; + } + call(subscriber, source) { + return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive)); + } +} +class TakeWhileSubscriber extends Subscriber { + constructor(destination, predicate, inclusive) { + super(destination); + this.predicate = predicate; + this.inclusive = inclusive; + this.index = 0; + } + _next(value) { + const destination = this.destination; + let result; + try { + result = this.predicate(value, this.index++); + } + catch (err) { + destination.error(err); + return; + } + this.nextOrComplete(value, result); + } + nextOrComplete(value, predicateResult) { + const destination = this.destination; + if (Boolean(predicateResult)) { + destination.next(value); + } + else { + if (this.inclusive) { + destination.next(value); + } + destination.complete(); + } + } +} +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map b/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map new file mode 100644 index 00000000..9450a9ed --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,SAAS,CACrB,SAA+C,EAC/C,SAAS,GAAG,KAAK;IACnB,OAAO,CAAC,MAAqB,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,iBAAiB;IACrB,YACY,SAA+C,EAC/C,SAAkB;QADlB,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;IAAG,CAAC;IAElC,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CACnB,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAOD,MAAM,mBAAuB,SAAQ,UAAa;IAGhD,YACI,WAA0B,EAClB,SAA+C,EAC/C,SAAkB;QAC5B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFT,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;QALtB,UAAK,GAAW,CAAC,CAAC;IAO1B,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,KAAQ,EAAE,eAAwB;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/tap.js b/node_modules/rxjs/_esm2015/internal/operators/tap.js new file mode 100644 index 00000000..344c7f3e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/tap.js @@ -0,0 +1,69 @@ +import { Subscriber } from '../Subscriber'; +import { noop } from '../util/noop'; +import { isFunction } from '../util/isFunction'; +export function tap(nextOrObserver, error, complete) { + return function tapOperatorFunction(source) { + return source.lift(new DoOperator(nextOrObserver, error, complete)); + }; +} +class DoOperator { + constructor(nextOrObserver, error, complete) { + this.nextOrObserver = nextOrObserver; + this.error = error; + this.complete = complete; + } + call(subscriber, source) { + return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + } +} +class TapSubscriber extends Subscriber { + constructor(destination, observerOrNext, error, complete) { + super(destination); + this._tapNext = noop; + this._tapError = noop; + this._tapComplete = noop; + this._tapError = error || noop; + this._tapComplete = complete || noop; + if (isFunction(observerOrNext)) { + this._context = this; + this._tapNext = observerOrNext; + } + else if (observerOrNext) { + this._context = observerOrNext; + this._tapNext = observerOrNext.next || noop; + this._tapError = observerOrNext.error || noop; + this._tapComplete = observerOrNext.complete || noop; + } + } + _next(value) { + try { + this._tapNext.call(this._context, value); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(value); + } + _error(err) { + try { + this._tapError.call(this._context, err); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.error(err); + } + _complete() { + try { + this._tapComplete.call(this._context); + } + catch (err) { + this.destination.error(err); + return; + } + return this.destination.complete(); + } +} +//# sourceMappingURL=tap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/tap.js.map b/node_modules/rxjs/_esm2015/internal/operators/tap.js.map new file mode 100644 index 00000000..07364d39 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/tap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tap.js","sources":["../../../src/internal/operators/tap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttle.js b/node_modules/rxjs/_esm2015/internal/operators/throttle.js new file mode 100644 index 00000000..6b32790d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/throttle.js @@ -0,0 +1,81 @@ +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export const defaultThrottleConfig = { + leading: true, + trailing: false +}; +export function throttle(durationSelector, config = defaultThrottleConfig) { + return (source) => source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); +} +class ThrottleOperator { + constructor(durationSelector, leading, trailing) { + this.durationSelector = durationSelector; + this.leading = leading; + this.trailing = trailing; + } + call(subscriber, source) { + return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); + } +} +class ThrottleSubscriber extends SimpleOuterSubscriber { + constructor(destination, durationSelector, _leading, _trailing) { + super(destination); + this.destination = destination; + this.durationSelector = durationSelector; + this._leading = _leading; + this._trailing = _trailing; + this._hasValue = false; + } + _next(value) { + this._hasValue = true; + this._sendValue = value; + if (!this._throttled) { + if (this._leading) { + this.send(); + } + else { + this.throttle(value); + } + } + } + send() { + const { _hasValue, _sendValue } = this; + if (_hasValue) { + this.destination.next(_sendValue); + this.throttle(_sendValue); + } + this._hasValue = false; + this._sendValue = undefined; + } + throttle(value) { + const duration = this.tryDurationSelector(value); + if (!!duration) { + this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this))); + } + } + tryDurationSelector(value) { + try { + return this.durationSelector(value); + } + catch (err) { + this.destination.error(err); + return null; + } + } + throttlingDone() { + const { _throttled, _trailing } = this; + if (_throttled) { + _throttled.unsubscribe(); + } + this._throttled = undefined; + if (_trailing) { + this.send(); + } + } + notifyNext() { + this.throttlingDone(); + } + notifyComplete() { + this.throttlingDone(); + } +} +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map b/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map new file mode 100644 index 00000000..0055275c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sources":["../../../src/internal/operators/throttle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js b/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js new file mode 100644 index 00000000..3a1a9c5e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js @@ -0,0 +1,73 @@ +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +import { defaultThrottleConfig } from './throttle'; +export function throttleTime(duration, scheduler = async, config = defaultThrottleConfig) { + return (source) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); +} +class ThrottleTimeOperator { + constructor(duration, scheduler, leading, trailing) { + this.duration = duration; + this.scheduler = scheduler; + this.leading = leading; + this.trailing = trailing; + } + call(subscriber, source) { + return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); + } +} +class ThrottleTimeSubscriber extends Subscriber { + constructor(destination, duration, scheduler, leading, trailing) { + super(destination); + this.duration = duration; + this.scheduler = scheduler; + this.leading = leading; + this.trailing = trailing; + this._hasTrailingValue = false; + this._trailingValue = null; + } + _next(value) { + if (this.throttled) { + if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + else { + this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this })); + if (this.leading) { + this.destination.next(value); + } + else if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + } + _complete() { + if (this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this.destination.complete(); + } + else { + this.destination.complete(); + } + } + clearThrottle() { + const throttled = this.throttled; + if (throttled) { + if (this.trailing && this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + throttled.unsubscribe(); + this.remove(throttled); + this.throttled = null; + } + } +} +function dispatchNext(arg) { + const { subscriber } = arg; + subscriber.clearThrottle(); +} +//# sourceMappingURL=throttleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map new file mode 100644 index 00000000..63ecb285 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sources":["../../../src/internal/operators/throttleTime.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js b/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js new file mode 100644 index 00000000..9a422069 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js @@ -0,0 +1,45 @@ +import { EmptyError } from '../util/EmptyError'; +import { Subscriber } from '../Subscriber'; +export function throwIfEmpty(errorFactory = defaultErrorFactory) { + return (source) => { + return source.lift(new ThrowIfEmptyOperator(errorFactory)); + }; +} +class ThrowIfEmptyOperator { + constructor(errorFactory) { + this.errorFactory = errorFactory; + } + call(subscriber, source) { + return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); + } +} +class ThrowIfEmptySubscriber extends Subscriber { + constructor(destination, errorFactory) { + super(destination); + this.errorFactory = errorFactory; + this.hasValue = false; + } + _next(value) { + this.hasValue = true; + this.destination.next(value); + } + _complete() { + if (!this.hasValue) { + let err; + try { + err = this.errorFactory(); + } + catch (e) { + err = e; + } + this.destination.error(err); + } + else { + return this.destination.complete(); + } + } +} +function defaultErrorFactory() { + return new EmptyError(); +} +//# sourceMappingURL=throwIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map b/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map new file mode 100644 index 00000000..71ed774e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throwIfEmpty.js","sources":["../../../src/internal/operators/throwIfEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiC3C,MAAM,UAAU,YAAY,CAAK,eAA4B,mBAAmB;IAC9E,OAAO,CAAC,MAAqB,EAAE,EAAE;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB;IACxB,YAAoB,YAAuB;QAAvB,iBAAY,GAAZ,YAAY,CAAW;IAC3C,CAAC;IAED,IAAI,CAAC,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAED,MAAM,sBAA0B,SAAQ,UAAa;IAGnD,YAAY,WAA0B,EAAU,YAAuB;QACrE,KAAK,CAAC,WAAW,CAAC,CAAC;QAD2B,iBAAY,GAAZ,YAAY,CAAW;QAF/D,aAAQ,GAAY,KAAK,CAAC;IAIlC,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,GAAQ,CAAC;YACb,IAAI;gBACF,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SACtC;IACH,CAAC;CACF;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js b/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js new file mode 100644 index 00000000..1e67b890 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js @@ -0,0 +1,16 @@ +import { async } from '../scheduler/async'; +import { scan } from './scan'; +import { defer } from '../observable/defer'; +import { map } from './map'; +export function timeInterval(scheduler = async) { + return (source) => defer(() => { + return source.pipe(scan(({ current }, value) => ({ value, current: scheduler.now(), last: current }), { current: scheduler.now(), value: undefined, last: undefined }), map(({ current, last, value }) => new TimeInterval(value, current - last))); + }); +} +export class TimeInterval { + constructor(value, interval) { + this.value = value; + this.interval = interval; + } +} +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map b/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map new file mode 100644 index 00000000..fa9048b1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sources":["../../../src/internal/operators/timeInterval.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA+C5B,MAAM,UAAU,YAAY,CAAI,YAA2B,KAAK;IAC9D,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3C,OAAO,MAAM,CAAC,IAAI,CAEhB,IAAI,CACF,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC5E,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAG,IAAI,EAAE,SAAS,EAAE,CAC1D,EACR,GAAG,CAAuB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CACjG,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,MAAM,OAAO,YAAY;IACvB,YAAmB,KAAQ,EAAS,QAAgB;QAAjC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;CACzD"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeout.js b/node_modules/rxjs/_esm2015/internal/operators/timeout.js new file mode 100644 index 00000000..37589e20 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timeout.js @@ -0,0 +1,8 @@ +import { async } from '../scheduler/async'; +import { TimeoutError } from '../util/TimeoutError'; +import { timeoutWith } from './timeoutWith'; +import { throwError } from '../observable/throwError'; +export function timeout(due, scheduler = async) { + return timeoutWith(due, throwError(new TimeoutError()), scheduler); +} +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map b/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map new file mode 100644 index 00000000..c0ce3e4e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sources":["../../../src/internal/operators/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgFtD,MAAM,UAAU,OAAO,CAAI,GAAkB,EAClB,YAA2B,KAAK;IACzD,OAAO,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js b/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js new file mode 100644 index 00000000..e463f661 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js @@ -0,0 +1,57 @@ +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function timeoutWith(due, withObservable, scheduler = async) { + return (source) => { + let absoluteTimeout = isDate(due); + let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); + }; +} +class TimeoutWithOperator { + constructor(waitFor, absoluteTimeout, withObservable, scheduler) { + this.waitFor = waitFor; + this.absoluteTimeout = absoluteTimeout; + this.withObservable = withObservable; + this.scheduler = scheduler; + } + call(subscriber, source) { + return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); + } +} +class TimeoutWithSubscriber extends SimpleOuterSubscriber { + constructor(destination, absoluteTimeout, waitFor, withObservable, scheduler) { + super(destination); + this.absoluteTimeout = absoluteTimeout; + this.waitFor = waitFor; + this.withObservable = withObservable; + this.scheduler = scheduler; + this.scheduleTimeout(); + } + static dispatchTimeout(subscriber) { + const { withObservable } = subscriber; + subscriber._unsubscribeAndRecycle(); + subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber))); + } + scheduleTimeout() { + const { action } = this; + if (action) { + this.action = action.schedule(this, this.waitFor); + } + else { + this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); + } + } + _next(value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + super._next(value); + } + _unsubscribe() { + this.action = undefined; + this.scheduler = null; + this.withObservable = null; + } +} +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map b/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map new file mode 100644 index 00000000..48888fc8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sources":["../../../src/internal/operators/timeoutWith.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/timestamp.js b/node_modules/rxjs/_esm2015/internal/operators/timestamp.js new file mode 100644 index 00000000..9cb02811 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timestamp.js @@ -0,0 +1,12 @@ +import { async } from '../scheduler/async'; +import { map } from './map'; +export function timestamp(scheduler = async) { + return map((value) => new Timestamp(value, scheduler.now())); +} +export class Timestamp { + constructor(value, timestamp) { + this.value = value; + this.timestamp = timestamp; + } +} +//# sourceMappingURL=timestamp.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map b/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map new file mode 100644 index 00000000..31a1fb99 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sources":["../../../src/internal/operators/timestamp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAoC5B,MAAM,UAAU,SAAS,CAAI,YAA2B,KAAK;IAC3D,OAAO,GAAG,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAElE,CAAC;AAED,MAAM,OAAO,SAAS;IACpB,YAAmB,KAAQ,EAAS,SAAiB;QAAlC,UAAK,GAAL,KAAK,CAAG;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/toArray.js b/node_modules/rxjs/_esm2015/internal/operators/toArray.js new file mode 100644 index 00000000..98effe76 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/toArray.js @@ -0,0 +1,12 @@ +import { reduce } from './reduce'; +function toArrayReducer(arr, item, index) { + if (index === 0) { + return [item]; + } + arr.push(item); + return arr; +} +export function toArray() { + return reduce(toArrayReducer, []); +} +//# sourceMappingURL=toArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map b/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map new file mode 100644 index 00000000..c129b66b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sources":["../../../src/internal/operators/toArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,SAAS,cAAc,CAAI,GAAQ,EAAE,IAAO,EAAE,KAAa;IACzD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAiCD,MAAM,UAAU,OAAO;IACrB,OAAO,MAAM,CAAC,cAAc,EAAE,EAAS,CAAC,CAAC;AAC3C,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/window.js b/node_modules/rxjs/_esm2015/internal/operators/window.js new file mode 100644 index 00000000..8c298480 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/window.js @@ -0,0 +1,60 @@ +import { Subject } from '../Subject'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function window(windowBoundaries) { + return function windowOperatorFunction(source) { + return source.lift(new WindowOperator(windowBoundaries)); + }; +} +class WindowOperator { + constructor(windowBoundaries) { + this.windowBoundaries = windowBoundaries; + } + call(subscriber, source) { + const windowSubscriber = new WindowSubscriber(subscriber); + const sourceSubscription = source.subscribe(windowSubscriber); + if (!sourceSubscription.closed) { + windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber))); + } + return sourceSubscription; + } +} +class WindowSubscriber extends SimpleOuterSubscriber { + constructor(destination) { + super(destination); + this.window = new Subject(); + destination.next(this.window); + } + notifyNext() { + this.openWindow(); + } + notifyError(error) { + this._error(error); + } + notifyComplete() { + this._complete(); + } + _next(value) { + this.window.next(value); + } + _error(err) { + this.window.error(err); + this.destination.error(err); + } + _complete() { + this.window.complete(); + this.destination.complete(); + } + _unsubscribe() { + this.window = null; + } + openWindow() { + const prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + const destination = this.destination; + const newWindow = this.window = new Subject(); + destination.next(newWindow); + } +} +//# sourceMappingURL=window.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/window.js.map b/node_modules/rxjs/_esm2015/internal/operators/window.js.map new file mode 100644 index 00000000..703210ec --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sources":["../../../src/internal/operators/window.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA6CjG,MAAM,UAAU,MAAM,CAAI,gBAAiC;IACzD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,cAAc;IAElB,YAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IACrD,CAAC;IAED,IAAI,CAAC,UAAqC,EAAE,MAAW;QACrD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC1G;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;CACF;AAOD,MAAM,gBAAoB,SAAQ,qBAA6B;IAI7D,YAAY,WAAsC;QAChD,KAAK,CAAC,WAAW,CAAC,CAAC;QAHb,WAAM,GAAe,IAAI,OAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW,CAAC,KAAU;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,MAAM,CAAC,GAAQ;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;IAC/B,CAAC;IAGD,YAAY;QACV,IAAI,CAAC,MAAM,GAAG,IAAK,CAAC;IACtB,CAAC;IAEO,UAAU;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;QACjD,WAAW,CAAC,IAAK,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowCount.js b/node_modules/rxjs/_esm2015/internal/operators/windowCount.js new file mode 100644 index 00000000..a1b15511 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowCount.js @@ -0,0 +1,69 @@ +import { Subscriber } from '../Subscriber'; +import { Subject } from '../Subject'; +export function windowCount(windowSize, startWindowEvery = 0) { + return function windowCountOperatorFunction(source) { + return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); + }; +} +class WindowCountOperator { + constructor(windowSize, startWindowEvery) { + this.windowSize = windowSize; + this.startWindowEvery = startWindowEvery; + } + call(subscriber, source) { + return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + } +} +class WindowCountSubscriber extends Subscriber { + constructor(destination, windowSize, startWindowEvery) { + super(destination); + this.destination = destination; + this.windowSize = windowSize; + this.startWindowEvery = startWindowEvery; + this.windows = [new Subject()]; + this.count = 0; + destination.next(this.windows[0]); + } + _next(value) { + const startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; + const destination = this.destination; + const windowSize = this.windowSize; + const windows = this.windows; + const len = windows.length; + for (let i = 0; i < len && !this.closed; i++) { + windows[i].next(value); + } + const c = this.count - windowSize + 1; + if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { + windows.shift().complete(); + } + if (++this.count % startWindowEvery === 0 && !this.closed) { + const window = new Subject(); + windows.push(window); + destination.next(window); + } + } + _error(err) { + const windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().error(err); + } + } + this.destination.error(err); + } + _complete() { + const windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().complete(); + } + } + this.destination.complete(); + } + _unsubscribe() { + this.count = 0; + this.windows = null; + } +} +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map new file mode 100644 index 00000000..70d79360 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sources":["../../../src/internal/operators/windowCount.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowTime.js b/node_modules/rxjs/_esm2015/internal/operators/windowTime.js new file mode 100644 index 00000000..ace98120 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowTime.js @@ -0,0 +1,142 @@ +import { Subject } from '../Subject'; +import { async } from '../scheduler/async'; +import { Subscriber } from '../Subscriber'; +import { isNumeric } from '../util/isNumeric'; +import { isScheduler } from '../util/isScheduler'; +export function windowTime(windowTimeSpan) { + let scheduler = async; + let windowCreationInterval = null; + let maxWindowSize = Number.POSITIVE_INFINITY; + if (isScheduler(arguments[3])) { + scheduler = arguments[3]; + } + if (isScheduler(arguments[2])) { + scheduler = arguments[2]; + } + else if (isNumeric(arguments[2])) { + maxWindowSize = Number(arguments[2]); + } + if (isScheduler(arguments[1])) { + scheduler = arguments[1]; + } + else if (isNumeric(arguments[1])) { + windowCreationInterval = Number(arguments[1]); + } + return function windowTimeOperatorFunction(source) { + return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); + }; +} +class WindowTimeOperator { + constructor(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + this.windowTimeSpan = windowTimeSpan; + this.windowCreationInterval = windowCreationInterval; + this.maxWindowSize = maxWindowSize; + this.scheduler = scheduler; + } + call(subscriber, source) { + return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); + } +} +class CountedSubject extends Subject { + constructor() { + super(...arguments); + this._numberOfNextedValues = 0; + } + next(value) { + this._numberOfNextedValues++; + super.next(value); + } + get numberOfNextedValues() { + return this._numberOfNextedValues; + } +} +class WindowTimeSubscriber extends Subscriber { + constructor(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + super(destination); + this.destination = destination; + this.windowTimeSpan = windowTimeSpan; + this.windowCreationInterval = windowCreationInterval; + this.maxWindowSize = maxWindowSize; + this.scheduler = scheduler; + this.windows = []; + const window = this.openWindow(); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + const closeState = { subscriber: this, window, context: null }; + const creationState = { windowTimeSpan, windowCreationInterval, subscriber: this, scheduler }; + this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); + this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); + } + else { + const timeSpanOnlyState = { subscriber: this, window, windowTimeSpan }; + this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); + } + } + _next(value) { + const windows = this.windows; + const len = windows.length; + for (let i = 0; i < len; i++) { + const window = windows[i]; + if (!window.closed) { + window.next(value); + if (window.numberOfNextedValues >= this.maxWindowSize) { + this.closeWindow(window); + } + } + } + } + _error(err) { + const windows = this.windows; + while (windows.length > 0) { + windows.shift().error(err); + } + this.destination.error(err); + } + _complete() { + const windows = this.windows; + while (windows.length > 0) { + const window = windows.shift(); + if (!window.closed) { + window.complete(); + } + } + this.destination.complete(); + } + openWindow() { + const window = new CountedSubject(); + this.windows.push(window); + const destination = this.destination; + destination.next(window); + return window; + } + closeWindow(window) { + window.complete(); + const windows = this.windows; + windows.splice(windows.indexOf(window), 1); + } +} +function dispatchWindowTimeSpanOnly(state) { + const { subscriber, windowTimeSpan, window } = state; + if (window) { + subscriber.closeWindow(window); + } + state.window = subscriber.openWindow(); + this.schedule(state, windowTimeSpan); +} +function dispatchWindowCreation(state) { + const { windowTimeSpan, subscriber, scheduler, windowCreationInterval } = state; + const window = subscriber.openWindow(); + const action = this; + let context = { action, subscription: null }; + const timeSpanState = { subscriber, window, context }; + context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); + action.add(context.subscription); + action.schedule(state, windowCreationInterval); +} +function dispatchWindowClose(state) { + const { subscriber, window, context } = state; + if (context && context.action && context.subscription) { + context.action.remove(context.subscription); + } + subscriber.closeWindow(window); +} +//# sourceMappingURL=windowTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map new file mode 100644 index 00000000..604d79b7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sources":["../../../src/internal/operators/windowTime.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js b/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js new file mode 100644 index 00000000..1631e021 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js @@ -0,0 +1,123 @@ +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function windowToggle(openings, closingSelector) { + return (source) => source.lift(new WindowToggleOperator(openings, closingSelector)); +} +class WindowToggleOperator { + constructor(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + call(subscriber, source) { + return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); + } +} +class WindowToggleSubscriber extends OuterSubscriber { + constructor(destination, openings, closingSelector) { + super(destination); + this.openings = openings; + this.closingSelector = closingSelector; + this.contexts = []; + this.add(this.openSubscription = subscribeToResult(this, openings, openings)); + } + _next(value) { + const { contexts } = this; + if (contexts) { + const len = contexts.length; + for (let i = 0; i < len; i++) { + contexts[i].window.next(value); + } + } + } + _error(err) { + const { contexts } = this; + this.contexts = null; + if (contexts) { + const len = contexts.length; + let index = -1; + while (++index < len) { + const context = contexts[index]; + context.window.error(err); + context.subscription.unsubscribe(); + } + } + super._error(err); + } + _complete() { + const { contexts } = this; + this.contexts = null; + if (contexts) { + const len = contexts.length; + let index = -1; + while (++index < len) { + const context = contexts[index]; + context.window.complete(); + context.subscription.unsubscribe(); + } + } + super._complete(); + } + _unsubscribe() { + const { contexts } = this; + this.contexts = null; + if (contexts) { + const len = contexts.length; + let index = -1; + while (++index < len) { + const context = contexts[index]; + context.window.unsubscribe(); + context.subscription.unsubscribe(); + } + } + } + notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (outerValue === this.openings) { + let closingNotifier; + try { + const { closingSelector } = this; + closingNotifier = closingSelector(innerValue); + } + catch (e) { + return this.error(e); + } + const window = new Subject(); + const subscription = new Subscription(); + const context = { window, subscription }; + this.contexts.push(context); + const innerSubscription = subscribeToResult(this, closingNotifier, context); + if (innerSubscription.closed) { + this.closeWindow(this.contexts.length - 1); + } + else { + innerSubscription.context = context; + subscription.add(innerSubscription); + } + this.destination.next(window); + } + else { + this.closeWindow(this.contexts.indexOf(outerValue)); + } + } + notifyError(err) { + this.error(err); + } + notifyComplete(inner) { + if (inner !== this.openSubscription) { + this.closeWindow(this.contexts.indexOf(inner.context)); + } + } + closeWindow(index) { + if (index === -1) { + return; + } + const { contexts } = this; + const context = contexts[index]; + const { window, subscription } = context; + contexts.splice(index, 1); + window.complete(); + subscription.unsubscribe(); + } +} +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map new file mode 100644 index 00000000..7df7808e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sources":["../../../src/internal/operators/windowToggle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js b/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js new file mode 100644 index 00000000..4d7faea2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js @@ -0,0 +1,75 @@ +import { Subject } from '../Subject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function windowWhen(closingSelector) { + return function windowWhenOperatorFunction(source) { + return source.lift(new WindowOperator(closingSelector)); + }; +} +class WindowOperator { + constructor(closingSelector) { + this.closingSelector = closingSelector; + } + call(subscriber, source) { + return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector)); + } +} +class WindowSubscriber extends OuterSubscriber { + constructor(destination, closingSelector) { + super(destination); + this.destination = destination; + this.closingSelector = closingSelector; + this.openWindow(); + } + notifyNext(_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.openWindow(innerSub); + } + notifyError(error) { + this._error(error); + } + notifyComplete(innerSub) { + this.openWindow(innerSub); + } + _next(value) { + this.window.next(value); + } + _error(err) { + this.window.error(err); + this.destination.error(err); + this.unsubscribeClosingNotification(); + } + _complete() { + this.window.complete(); + this.destination.complete(); + this.unsubscribeClosingNotification(); + } + unsubscribeClosingNotification() { + if (this.closingNotification) { + this.closingNotification.unsubscribe(); + } + } + openWindow(innerSub = null) { + if (innerSub) { + this.remove(innerSub); + innerSub.unsubscribe(); + } + const prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + const window = this.window = new Subject(); + this.destination.next(window); + let closingNotifier; + try { + const { closingSelector } = this; + closingNotifier = closingSelector(); + } + catch (e) { + this.destination.error(e); + this.window.error(e); + return; + } + this.add(this.closingNotification = subscribeToResult(this, closingNotifier)); + } +} +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map b/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map new file mode 100644 index 00000000..b6fe3ab7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sources":["../../../src/internal/operators/windowWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js b/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js new file mode 100644 index 00000000..849ab0e8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js @@ -0,0 +1,73 @@ +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function withLatestFrom(...args) { + return (source) => { + let project; + if (typeof args[args.length - 1] === 'function') { + project = args.pop(); + } + const observables = args; + return source.lift(new WithLatestFromOperator(observables, project)); + }; +} +class WithLatestFromOperator { + constructor(observables, project) { + this.observables = observables; + this.project = project; + } + call(subscriber, source) { + return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + } +} +class WithLatestFromSubscriber extends OuterSubscriber { + constructor(destination, observables, project) { + super(destination); + this.observables = observables; + this.project = project; + this.toRespond = []; + const len = observables.length; + this.values = new Array(len); + for (let i = 0; i < len; i++) { + this.toRespond.push(i); + } + for (let i = 0; i < len; i++) { + let observable = observables[i]; + this.add(subscribeToResult(this, observable, undefined, i)); + } + } + notifyNext(_outerValue, innerValue, outerIndex) { + this.values[outerIndex] = innerValue; + const toRespond = this.toRespond; + if (toRespond.length > 0) { + const found = toRespond.indexOf(outerIndex); + if (found !== -1) { + toRespond.splice(found, 1); + } + } + } + notifyComplete() { + } + _next(value) { + if (this.toRespond.length === 0) { + const args = [value, ...this.values]; + if (this.project) { + this._tryProject(args); + } + else { + this.destination.next(args); + } + } + } + _tryProject(args) { + let result; + try { + result = this.project.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + } +} +//# sourceMappingURL=withLatestFrom.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map b/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map new file mode 100644 index 00000000..dd0fb1b7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sources":["../../../src/internal/operators/withLatestFrom.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/zip.js b/node_modules/rxjs/_esm2015/internal/operators/zip.js new file mode 100644 index 00000000..1c6997e0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/zip.js @@ -0,0 +1,7 @@ +import { zip as zipStatic } from '../observable/zip'; +export function zip(...observables) { + return function zipOperatorFunction(source) { + return source.lift.call(zipStatic(source, ...observables)); + }; +} +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/zip.js.map b/node_modules/rxjs/_esm2015/internal/operators/zip.js.map new file mode 100644 index 00000000..5c9e47b9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../../src/internal/operators/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsCrD,MAAM,UAAU,GAAG,CAAO,GAAG,WAAyE;IACpG,OAAO,SAAS,mBAAmB,CAAC,MAAqB;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAI,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/operators/zipAll.js b/node_modules/rxjs/_esm2015/internal/operators/zipAll.js new file mode 100644 index 00000000..b3a0c7a5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/zipAll.js @@ -0,0 +1,5 @@ +import { ZipOperator } from '../observable/zip'; +export function zipAll(project) { + return (source) => source.lift(new ZipOperator(project)); +} +//# sourceMappingURL=zipAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map b/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map new file mode 100644 index 00000000..a9cb659f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/operators/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sources":["../../../src/internal/operators/zipAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,MAAM,UAAU,MAAM,CAAO,OAAsC;IACjE,OAAO,CAAC,MAAqB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1E,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js new file mode 100644 index 00000000..46045434 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js @@ -0,0 +1,20 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +export function scheduleArray(input, scheduler) { + return new Observable(subscriber => { + const sub = new Subscription(); + let i = 0; + sub.add(scheduler.schedule(function () { + if (i === input.length) { + subscriber.complete(); + return; + } + subscriber.next(input[i++]); + if (!subscriber.closed) { + sub.add(this.schedule()); + } + })); + return sub; + }); +} +//# sourceMappingURL=scheduleArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map new file mode 100644 index 00000000..661fe671 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleArray.js","sources":["../../../src/internal/scheduled/scheduleArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,aAAa,CAAI,KAAmB,EAAE,SAAwB;IAC5E,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;gBACtB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;aACR;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js new file mode 100644 index 00000000..452d40d2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js @@ -0,0 +1,45 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +export function scheduleIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + return new Observable(subscriber => { + const sub = new Subscription(); + let iterator; + sub.add(() => { + if (iterator && typeof iterator.return === 'function') { + iterator.return(); + } + }); + sub.add(scheduler.schedule(() => { + iterator = input[Symbol_iterator](); + sub.add(scheduler.schedule(function () { + if (subscriber.closed) { + return; + } + let value; + let done; + try { + const result = iterator.next(); + value = result.value; + done = result.done; + } + catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } + else { + subscriber.next(value); + this.schedule(); + } + })); + })); + return sub; + }); +} +//# sourceMappingURL=scheduleIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map new file mode 100644 index 00000000..a9b24f6e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleIterable.js","sources":["../../../src/internal/scheduled/scheduleIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,UAAU,gBAAgB,CAAI,KAAkB,EAAE,SAAwB;IAC9E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,QAAqB,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;YAEX,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;gBACrD,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC9B,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,OAAO;iBACR;gBACD,IAAI,KAAQ,CAAC;gBACb,IAAI,IAAa,CAAC;gBAClB,IAAI;oBACF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;iBACpB;gBAAC,OAAO,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO;iBACR;gBACD,IAAI,IAAI,EAAE;oBACR,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js new file mode 100644 index 00000000..96ae5991 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js @@ -0,0 +1,18 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { observable as Symbol_observable } from '../symbol/observable'; +export function scheduleObservable(input, scheduler) { + return new Observable(subscriber => { + const sub = new Subscription(); + sub.add(scheduler.schedule(() => { + const observable = input[Symbol_observable](); + sub.add(observable.subscribe({ + next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); }, + error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); }, + complete() { sub.add(scheduler.schedule(() => subscriber.complete())); }, + })); + })); + return sub; + }); +} +//# sourceMappingURL=scheduleObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map new file mode 100644 index 00000000..adddb70f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleObservable.js","sources":["../../../src/internal/scheduled/scheduleObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,kBAAkB,CAAI,KAA2B,EAAE,SAAwB;IACzF,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC9B,MAAM,UAAU,GAAoB,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,QAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js b/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js new file mode 100644 index 00000000..68d49388 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js @@ -0,0 +1,17 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +export function schedulePromise(input, scheduler) { + return new Observable(subscriber => { + const sub = new Subscription(); + sub.add(scheduler.schedule(() => input.then(value => { + sub.add(scheduler.schedule(() => { + subscriber.next(value); + sub.add(scheduler.schedule(() => subscriber.complete())); + })); + }, err => { + sub.add(scheduler.schedule(() => subscriber.error(err))); + }))); + return sub; + }); +} +//# sourceMappingURL=schedulePromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map new file mode 100644 index 00000000..2ddd8a2f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"schedulePromise.js","sources":["../../../src/internal/scheduled/schedulePromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAI,KAAqB,EAAE,SAAwB;IAChF,OAAO,IAAI,UAAU,CAAI,UAAU,CAAC,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CACzC,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,EACD,GAAG,CAAC,EAAE;YACJ,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC,CACF,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js b/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js new file mode 100644 index 00000000..554d1a2d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js @@ -0,0 +1,26 @@ +import { scheduleObservable } from './scheduleObservable'; +import { schedulePromise } from './schedulePromise'; +import { scheduleArray } from './scheduleArray'; +import { scheduleIterable } from './scheduleIterable'; +import { isInteropObservable } from '../util/isInteropObservable'; +import { isPromise } from '../util/isPromise'; +import { isArrayLike } from '../util/isArrayLike'; +import { isIterable } from '../util/isIterable'; +export function scheduled(input, scheduler) { + if (input != null) { + if (isInteropObservable(input)) { + return scheduleObservable(input, scheduler); + } + else if (isPromise(input)) { + return schedulePromise(input, scheduler); + } + else if (isArrayLike(input)) { + return scheduleArray(input, scheduler); + } + else if (isIterable(input) || typeof input === 'string') { + return scheduleIterable(input, scheduler); + } + } + throw new TypeError((input !== null && typeof input || input) + ' is not observable'); +} +//# sourceMappingURL=scheduled.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map b/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map new file mode 100644 index 00000000..d4e76f87 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduled.js","sources":["../../../src/internal/scheduled/scheduled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAahD,MAAM,UAAU,SAAS,CAAI,KAAyB,EAAE,SAAwB;IAC9E,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7C;aAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACxC;aAAO,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC1D,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC3C;KACF;IAED,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACxF,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/Action.js b/node_modules/rxjs/_esm2015/internal/scheduler/Action.js new file mode 100644 index 00000000..4ded474f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/Action.js @@ -0,0 +1,10 @@ +import { Subscription } from '../Subscription'; +export class Action extends Subscription { + constructor(scheduler, work) { + super(); + } + schedule(state, delay = 0) { + return this; + } +} +//# sourceMappingURL=Action.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map new file mode 100644 index 00000000..c5428520 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/Action.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Action.js","sources":["../../../src/internal/scheduler/Action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAiB/C,MAAM,OAAO,MAAU,SAAQ,YAAY;IACzC,YAAY,SAAoB,EAAE,IAAmD;QACnF,KAAK,EAAE,CAAC;IACV,CAAC;IAWM,QAAQ,CAAC,KAAS,EAAE,QAAgB,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js new file mode 100644 index 00000000..e0b7ffa4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js @@ -0,0 +1,26 @@ +import { AsyncAction } from './AsyncAction'; +export class AnimationFrameAction extends AsyncAction { + constructor(scheduler, work) { + super(scheduler, work); + this.scheduler = scheduler; + this.work = work; + } + requestAsyncId(scheduler, id, delay = 0) { + if (delay !== null && delay > 0) { + return super.requestAsyncId(scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(() => scheduler.flush(null))); + } + recycleAsyncId(scheduler, id, delay = 0) { + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return super.recycleAsyncId(scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + return undefined; + } +} +//# sourceMappingURL=AnimationFrameAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map new file mode 100644 index 00000000..c9dabf4a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameAction.js","sources":["../../../src/internal/scheduler/AnimationFrameAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,MAAM,OAAO,oBAAwB,SAAQ,WAAc;IAEzD,YAAsB,SAAkC,EAClC,IAAmD;QACvE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAyB;QAClC,SAAI,GAAJ,IAAI,CAA+C;IAEzE,CAAC;IAES,cAAc,CAAC,SAAkC,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAEtF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAqB,CACxE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACS,cAAc,CAAC,SAAkC,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAItF,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js new file mode 100644 index 00000000..cb658cb4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js @@ -0,0 +1,25 @@ +import { AsyncScheduler } from './AsyncScheduler'; +export class AnimationFrameScheduler extends AsyncScheduler { + flush(action) { + this.active = true; + this.scheduled = undefined; + const { actions } = this; + let error; + let index = -1; + let count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + } +} +//# sourceMappingURL=AnimationFrameScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map new file mode 100644 index 00000000..88d43ada --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameScheduler.js","sources":["../../../src/internal/scheduler/AnimationFrameScheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,uBAAwB,SAAQ,cAAc;IAClD,KAAK,CAAC,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js new file mode 100644 index 00000000..1d6a6776 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js @@ -0,0 +1,27 @@ +import { Immediate } from '../util/Immediate'; +import { AsyncAction } from './AsyncAction'; +export class AsapAction extends AsyncAction { + constructor(scheduler, work) { + super(scheduler, work); + this.scheduler = scheduler; + this.work = work; + } + requestAsyncId(scheduler, id, delay = 0) { + if (delay !== null && delay > 0) { + return super.requestAsyncId(scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null))); + } + recycleAsyncId(scheduler, id, delay = 0) { + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return super.recycleAsyncId(scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + Immediate.clearImmediate(id); + scheduler.scheduled = undefined; + } + return undefined; + } +} +//# sourceMappingURL=AsapAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map new file mode 100644 index 00000000..a74d5d7a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapAction.js","sources":["../../../src/internal/scheduler/AsapAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,MAAM,OAAO,UAAc,SAAQ,WAAc;IAE/C,YAAsB,SAAwB,EACxB,IAAmD;QACvE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAe;QACxB,SAAI,GAAJ,IAAI,CAA+C;IAEzE,CAAC;IAES,cAAc,CAAC,SAAwB,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAE5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CACzE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtC,CAAC,CAAC;IACL,CAAC;IACS,cAAc,CAAC,SAAwB,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAI5E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js new file mode 100644 index 00000000..d4f637de --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js @@ -0,0 +1,25 @@ +import { AsyncScheduler } from './AsyncScheduler'; +export class AsapScheduler extends AsyncScheduler { + flush(action) { + this.active = true; + this.scheduled = undefined; + const { actions } = this; + let error; + let index = -1; + let count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + } +} +//# sourceMappingURL=AsapScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map new file mode 100644 index 00000000..c8727d84 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapScheduler.js","sources":["../../../src/internal/scheduler/AsapScheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,aAAc,SAAQ,cAAc;IACxC,KAAK,CAAC,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js new file mode 100644 index 00000000..66c29364 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js @@ -0,0 +1,80 @@ +import { Action } from './Action'; +export class AsyncAction extends Action { + constructor(scheduler, work) { + super(scheduler, work); + this.scheduler = scheduler; + this.work = work; + this.pending = false; + } + schedule(state, delay = 0) { + if (this.closed) { + return this; + } + this.state = state; + const id = this.id; + const scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; + } + requestAsyncId(scheduler, id, delay = 0) { + return setInterval(scheduler.flush.bind(scheduler, this), delay); + } + recycleAsyncId(scheduler, id, delay = 0) { + if (delay !== null && this.delay === delay && this.pending === false) { + return id; + } + clearInterval(id); + return undefined; + } + execute(state, delay) { + if (this.closed) { + return new Error('executing a cancelled action'); + } + this.pending = false; + const error = this._execute(state, delay); + if (error) { + return error; + } + else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + } + _execute(state, delay) { + let errored = false; + let errorValue = undefined; + try { + this.work(state); + } + catch (e) { + errored = true; + errorValue = !!e && e || new Error(e); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + } + _unsubscribe() { + const id = this.id; + const scheduler = this.scheduler; + const actions = scheduler.actions; + const index = actions.indexOf(this); + this.work = null; + this.state = null; + this.pending = false; + this.scheduler = null; + if (index !== -1) { + actions.splice(index, 1); + } + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + } +} +//# sourceMappingURL=AsyncAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map new file mode 100644 index 00000000..081998ee --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncAction.js","sources":["../../../src/internal/scheduler/AsyncAction.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js new file mode 100644 index 00000000..828192fb --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js @@ -0,0 +1,46 @@ +import { Scheduler } from '../Scheduler'; +export class AsyncScheduler extends Scheduler { + constructor(SchedulerAction, now = Scheduler.now) { + super(SchedulerAction, () => { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.now(); + } + else { + return now(); + } + }); + this.actions = []; + this.active = false; + this.scheduled = undefined; + } + schedule(work, delay = 0, state) { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.schedule(work, delay, state); + } + else { + return super.schedule(work, delay, state); + } + } + flush(action) { + const { actions } = this; + if (this.active) { + actions.push(action); + return; + } + let error; + this.active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this.active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + } +} +//# sourceMappingURL=AsyncScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map new file mode 100644 index 00000000..2fd6cd54 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncScheduler.js","sources":["../../../src/internal/scheduler/AsyncScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,MAAM,OAAO,cAAe,SAAQ,SAAS;IAmB3C,YAAY,eAA8B,EAC9B,MAAoB,SAAS,CAAC,GAAG;QAC3C,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE;YAC1B,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACtC;iBAAM;gBACL,OAAO,GAAG,EAAE,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QAzBE,YAAO,GAA4B,EAAE,CAAC;QAOtC,WAAM,GAAY,KAAK,CAAC;QAQxB,cAAS,GAAQ,SAAS,CAAC;IAWlC,CAAC;IAEM,QAAQ,CAAI,IAAmD,EAAE,QAAgB,CAAC,EAAE,KAAS;QAClG,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;IACH,CAAC;IAEM,KAAK,CAAC,MAAwB;QAEnC,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO;SACR;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js b/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js new file mode 100644 index 00000000..3b3177a3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js @@ -0,0 +1,29 @@ +import { AsyncAction } from './AsyncAction'; +export class QueueAction extends AsyncAction { + constructor(scheduler, work) { + super(scheduler, work); + this.scheduler = scheduler; + this.work = work; + } + schedule(state, delay = 0) { + if (delay > 0) { + return super.schedule(state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + } + execute(state, delay) { + return (delay > 0 || this.closed) ? + super.execute(state, delay) : + this._execute(state, delay); + } + requestAsyncId(scheduler, id, delay = 0) { + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return super.requestAsyncId(scheduler, id, delay); + } + return scheduler.flush(this); + } +} +//# sourceMappingURL=QueueAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map new file mode 100644 index 00000000..af07a1e9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueAction.js","sources":["../../../src/internal/scheduler/QueueAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,MAAM,OAAO,WAAe,SAAQ,WAAc;IAEhD,YAAsB,SAAyB,EACzB,IAAmD;QACvE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAFH,cAAS,GAAT,SAAS,CAAgB;QACzB,SAAI,GAAJ,IAAI,CAA+C;IAEzE,CAAC;IAEM,QAAQ,CAAC,KAAS,EAAE,QAAgB,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,KAAQ,EAAE,KAAa;QACpC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,cAAc,CAAC,SAAyB,EAAE,EAAQ,EAAE,QAAgB,CAAC;QAI7E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js new file mode 100644 index 00000000..cc1fb4d5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js @@ -0,0 +1,4 @@ +import { AsyncScheduler } from './AsyncScheduler'; +export class QueueScheduler extends AsyncScheduler { +} +//# sourceMappingURL=QueueScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map new file mode 100644 index 00000000..c32c0b1f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueScheduler.js","sources":["../../../src/internal/scheduler/QueueScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,cAAe,SAAQ,cAAc;CACjD"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js b/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js new file mode 100644 index 00000000..ebce6dbd --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js @@ -0,0 +1,82 @@ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; +export class VirtualTimeScheduler extends AsyncScheduler { + constructor(SchedulerAction = VirtualAction, maxFrames = Number.POSITIVE_INFINITY) { + super(SchedulerAction, () => this.frame); + this.maxFrames = maxFrames; + this.frame = 0; + this.index = -1; + } + flush() { + const { actions, maxFrames } = this; + let error, action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + } +} +VirtualTimeScheduler.frameTimeFactor = 10; +export class VirtualAction extends AsyncAction { + constructor(scheduler, work, index = scheduler.index += 1) { + super(scheduler, work); + this.scheduler = scheduler; + this.work = work; + this.index = index; + this.active = true; + this.index = scheduler.index = index; + } + schedule(state, delay = 0) { + if (!this.id) { + return super.schedule(state, delay); + } + this.active = false; + const action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + } + requestAsyncId(scheduler, id, delay = 0) { + this.delay = scheduler.frame + delay; + const { actions } = scheduler; + actions.push(this); + actions.sort(VirtualAction.sortActions); + return true; + } + recycleAsyncId(scheduler, id, delay = 0) { + return undefined; + } + _execute(state, delay) { + if (this.active === true) { + return super._execute(state, delay); + } + } + static sortActions(a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } + else if (a.index > b.index) { + return 1; + } + else { + return -1; + } + } + else if (a.delay > b.delay) { + return 1; + } + else { + return -1; + } + } +} +//# sourceMappingURL=VirtualTimeScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map new file mode 100644 index 00000000..9b56e6ec --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/VirtualTimeScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"VirtualTimeScheduler.js","sources":["../../../src/internal/scheduler/VirtualTimeScheduler.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js b/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js new file mode 100644 index 00000000..6575d95b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js @@ -0,0 +1,5 @@ +import { AnimationFrameAction } from './AnimationFrameAction'; +import { AnimationFrameScheduler } from './AnimationFrameScheduler'; +export const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction); +export const animationFrame = animationFrameScheduler; +//# sourceMappingURL=animationFrame.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map new file mode 100644 index 00000000..f505e818 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js.map @@ -0,0 +1 @@ +{"version":3,"file":"animationFrame.js","sources":["../../../src/internal/scheduler/animationFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAiCpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAKzF,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAuB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/asap.js b/node_modules/rxjs/_esm2015/internal/scheduler/asap.js new file mode 100644 index 00000000..29ae3a84 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/asap.js @@ -0,0 +1,5 @@ +import { AsapAction } from './AsapAction'; +import { AsapScheduler } from './AsapScheduler'; +export const asapScheduler = new AsapScheduler(AsapAction); +export const asap = asapScheduler; +//# sourceMappingURL=asap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map new file mode 100644 index 00000000..27cd494b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/asap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"asap.js","sources":["../../../src/internal/scheduler/asap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAoChD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;AAK3D,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/async.js b/node_modules/rxjs/_esm2015/internal/scheduler/async.js new file mode 100644 index 00000000..8d0283e1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/async.js @@ -0,0 +1,5 @@ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; +export const asyncScheduler = new AsyncScheduler(AsyncAction); +export const async = asyncScheduler; +//# sourceMappingURL=async.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map new file mode 100644 index 00000000..6aadfea7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/async.js.map @@ -0,0 +1 @@ +{"version":3,"file":"async.js","sources":["../../../src/internal/scheduler/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAgDlD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;AAK9D,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/queue.js b/node_modules/rxjs/_esm2015/internal/scheduler/queue.js new file mode 100644 index 00000000..cb4f218d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/queue.js @@ -0,0 +1,5 @@ +import { QueueAction } from './QueueAction'; +import { QueueScheduler } from './QueueScheduler'; +export const queueScheduler = new QueueScheduler(QueueAction); +export const queue = queueScheduler; +//# sourceMappingURL=queue.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map b/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map new file mode 100644 index 00000000..3e279bb9 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/scheduler/queue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue.js","sources":["../../../src/internal/scheduler/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAgElD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;AAK9D,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/symbol/iterator.js b/node_modules/rxjs/_esm2015/internal/symbol/iterator.js new file mode 100644 index 00000000..33fadd2f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/symbol/iterator.js @@ -0,0 +1,9 @@ +export function getSymbolIterator() { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator'; + } + return Symbol.iterator; +} +export const iterator = getSymbolIterator(); +export const $$iterator = iterator; +//# sourceMappingURL=iterator.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map b/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map new file mode 100644 index 00000000..9670beee --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/symbol/iterator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iterator.js","sources":["../../../src/internal/symbol/iterator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpD,OAAO,YAAmB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;AAK5C,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/symbol/observable.js b/node_modules/rxjs/_esm2015/internal/symbol/observable.js new file mode 100644 index 00000000..00758908 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/symbol/observable.js @@ -0,0 +1,2 @@ +export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')(); +//# sourceMappingURL=observable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map b/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map new file mode 100644 index 00000000..08d4eef2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/symbol/observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observable.js","sources":["../../../src/internal/symbol/observable.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js b/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js new file mode 100644 index 00000000..64d5dc69 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js @@ -0,0 +1,5 @@ +export const rxSubscriber = (() => typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random())(); +export const $$rxSubscriber = rxSubscriber; +//# sourceMappingURL=rxSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map new file mode 100644 index 00000000..615f0220 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,CAChC,OAAO,MAAM,KAAK,UAAU;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAK3C,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js b/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js new file mode 100644 index 00000000..4bb51733 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js @@ -0,0 +1,30 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +export class ColdObservable extends Observable { + constructor(messages, scheduler) { + super(function (subscriber) { + const observable = this; + const index = observable.logSubscribedFrame(); + const subscription = new Subscription(); + subscription.add(new Subscription(() => { + observable.logUnsubscribedFrame(index); + })); + observable.scheduleMessages(subscriber); + return subscription; + }); + this.messages = messages; + this.subscriptions = []; + this.scheduler = scheduler; + } + scheduleMessages(subscriber) { + const messagesLength = this.messages.length; + for (let i = 0; i < messagesLength; i++) { + const message = this.messages[i]; + subscriber.add(this.scheduler.schedule(({ message, subscriber }) => { message.notification.observe(subscriber); }, message.frame, { message, subscriber })); + } + } +} +applyMixins(ColdObservable, [SubscriptionLoggable]); +//# sourceMappingURL=ColdObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map b/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map new file mode 100644 index 00000000..a6f9c6d8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/ColdObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColdObservable.js","sources":["../../../src/internal/testing/ColdObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD,MAAM,OAAO,cAAkB,SAAQ,UAAa;IAMlD,YAAmB,QAAuB,EAC9B,SAAoB;QAC9B,KAAK,CAAC,UAA+B,UAA2B;YAC9D,MAAM,UAAU,GAAsB,IAAW,CAAC;YAClD,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE;gBACrC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;QAXc,aAAQ,GAAR,QAAQ,CAAe;QALnC,kBAAa,GAAsB,EAAE,CAAC;QAiB3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,UAA2B;QAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAChG,OAAO,CAAC,KAAK,EACb,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAC3B,CAAC;SACH;IACH,CAAC;CACF;AACD,WAAW,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js b/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js new file mode 100644 index 00000000..e2ac7630 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js @@ -0,0 +1,34 @@ +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +export class HotObservable extends Subject { + constructor(messages, scheduler) { + super(); + this.messages = messages; + this.subscriptions = []; + this.scheduler = scheduler; + } + _subscribe(subscriber) { + const subject = this; + const index = subject.logSubscribedFrame(); + const subscription = new Subscription(); + subscription.add(new Subscription(() => { + subject.logUnsubscribedFrame(index); + })); + subscription.add(super._subscribe(subscriber)); + return subscription; + } + setup() { + const subject = this; + const messagesLength = subject.messages.length; + for (var i = 0; i < messagesLength; i++) { + (() => { + var message = subject.messages[i]; + subject.scheduler.schedule(() => { message.notification.observe(subject); }, message.frame); + })(); + } + } +} +applyMixins(HotObservable, [SubscriptionLoggable]); +//# sourceMappingURL=HotObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map b/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map new file mode 100644 index 00000000..ac44f2af --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/HotObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HotObservable.js","sources":["../../../src/internal/testing/HotObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOlD,MAAM,OAAO,aAAiB,SAAQ,OAAU;IAM9C,YAAmB,QAAuB,EAC9B,SAAoB;QAC9B,KAAK,EAAE,CAAC;QAFS,aAAQ,GAAR,QAAQ,CAAe;QALnC,kBAAa,GAAsB,EAAE,CAAC;QAQ3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAGD,UAAU,CAAC,UAA2B;QACpC,MAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,EAAE;YACrC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,CAAC,GAAG,EAAE;gBACJ,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAElC,OAAO,CAAC,SAAS,CAAC,QAAQ,CACxB,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,KAAK,CACd,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;SACN;IACH,CAAC;CACF;AACD,WAAW,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js new file mode 100644 index 00000000..c421751b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js @@ -0,0 +1,7 @@ +export class SubscriptionLog { + constructor(subscribedFrame, unsubscribedFrame = Number.POSITIVE_INFINITY) { + this.subscribedFrame = subscribedFrame; + this.unsubscribedFrame = unsubscribedFrame; + } +} +//# sourceMappingURL=SubscriptionLog.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map new file mode 100644 index 00000000..8903b165 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLog.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLog.js","sources":["../../../src/internal/testing/SubscriptionLog.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IAC1B,YAAmB,eAAuB,EACvB,oBAA4B,MAAM,CAAC,iBAAiB;QADpD,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmC;IACvE,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js new file mode 100644 index 00000000..08a00d72 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js @@ -0,0 +1,16 @@ +import { SubscriptionLog } from './SubscriptionLog'; +export class SubscriptionLoggable { + constructor() { + this.subscriptions = []; + } + logSubscribedFrame() { + this.subscriptions.push(new SubscriptionLog(this.scheduler.now())); + return this.subscriptions.length - 1; + } + logUnsubscribedFrame(index) { + const subscriptionLogs = this.subscriptions; + const oldSubscriptionLog = subscriptionLogs[index]; + subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now()); + } +} +//# sourceMappingURL=SubscriptionLoggable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map new file mode 100644 index 00000000..37f16beb --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/SubscriptionLoggable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLoggable.js","sources":["../../../src/internal/testing/SubscriptionLoggable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,oBAAoB;IAAjC;QACS,kBAAa,GAAsB,EAAE,CAAC;IAgB/C,CAAC;IAbC,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,oBAAoB,CAAC,KAAa;QAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,eAAe,CAC3C,kBAAkB,CAAC,eAAe,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;CACF"} diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js b/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js new file mode 100644 index 00000000..908175c7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js @@ -0,0 +1 @@ +//# sourceMappingURL=TestMessage.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map b/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map new file mode 100644 index 00000000..b19facd5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/TestMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestMessage.js","sources":["../../../src/internal/testing/TestMessage.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js b/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js new file mode 100644 index 00000000..3b8a55fa --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js @@ -0,0 +1,322 @@ +import { Observable } from '../Observable'; +import { Notification } from '../Notification'; +import { ColdObservable } from './ColdObservable'; +import { HotObservable } from './HotObservable'; +import { SubscriptionLog } from './SubscriptionLog'; +import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler'; +import { AsyncScheduler } from '../scheduler/AsyncScheduler'; +const defaultMaxFrame = 750; +export class TestScheduler extends VirtualTimeScheduler { + constructor(assertDeepEqual) { + super(VirtualAction, defaultMaxFrame); + this.assertDeepEqual = assertDeepEqual; + this.hotObservables = []; + this.coldObservables = []; + this.flushTests = []; + this.runMode = false; + } + createTime(marbles) { + const indexOf = marbles.indexOf('|'); + if (indexOf === -1) { + throw new Error('marble diagram for time should have a completion marker "|"'); + } + return indexOf * TestScheduler.frameTimeFactor; + } + createColdObservable(marbles, values, error) { + if (marbles.indexOf('^') !== -1) { + throw new Error('cold observable cannot have subscription offset "^"'); + } + if (marbles.indexOf('!') !== -1) { + throw new Error('cold observable cannot have unsubscription marker "!"'); + } + const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + const cold = new ColdObservable(messages, this); + this.coldObservables.push(cold); + return cold; + } + createHotObservable(marbles, values, error) { + if (marbles.indexOf('!') !== -1) { + throw new Error('hot observable cannot have unsubscription marker "!"'); + } + const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + const subject = new HotObservable(messages, this); + this.hotObservables.push(subject); + return subject; + } + materializeInnerObservable(observable, outerFrame) { + const messages = []; + observable.subscribe((value) => { + messages.push({ frame: this.frame - outerFrame, notification: Notification.createNext(value) }); + }, (err) => { + messages.push({ frame: this.frame - outerFrame, notification: Notification.createError(err) }); + }, () => { + messages.push({ frame: this.frame - outerFrame, notification: Notification.createComplete() }); + }); + return messages; + } + expectObservable(observable, subscriptionMarbles = null) { + const actual = []; + const flushTest = { actual, ready: false }; + const subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode); + const subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ? + 0 : subscriptionParsed.subscribedFrame; + const unsubscriptionFrame = subscriptionParsed.unsubscribedFrame; + let subscription; + this.schedule(() => { + subscription = observable.subscribe(x => { + let value = x; + if (x instanceof Observable) { + value = this.materializeInnerObservable(value, this.frame); + } + actual.push({ frame: this.frame, notification: Notification.createNext(value) }); + }, (err) => { + actual.push({ frame: this.frame, notification: Notification.createError(err) }); + }, () => { + actual.push({ frame: this.frame, notification: Notification.createComplete() }); + }); + }, subscriptionFrame); + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + this.schedule(() => subscription.unsubscribe(), unsubscriptionFrame); + } + this.flushTests.push(flushTest); + const { runMode } = this; + return { + toBe(marbles, values, errorValue) { + flushTest.ready = true; + flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode); + } + }; + } + expectSubscriptions(actualSubscriptionLogs) { + const flushTest = { actual: actualSubscriptionLogs, ready: false }; + this.flushTests.push(flushTest); + const { runMode } = this; + return { + toBe(marbles) { + const marblesArray = (typeof marbles === 'string') ? [marbles] : marbles; + flushTest.ready = true; + flushTest.expected = marblesArray.map(marbles => TestScheduler.parseMarblesAsSubscriptions(marbles, runMode)); + } + }; + } + flush() { + const hotObservables = this.hotObservables; + while (hotObservables.length > 0) { + hotObservables.shift().setup(); + } + super.flush(); + this.flushTests = this.flushTests.filter(test => { + if (test.ready) { + this.assertDeepEqual(test.actual, test.expected); + return false; + } + return true; + }); + } + static parseMarblesAsSubscriptions(marbles, runMode = false) { + if (typeof marbles !== 'string') { + return new SubscriptionLog(Number.POSITIVE_INFINITY); + } + const len = marbles.length; + let groupStart = -1; + let subscriptionFrame = Number.POSITIVE_INFINITY; + let unsubscriptionFrame = Number.POSITIVE_INFINITY; + let frame = 0; + for (let i = 0; i < len; i++) { + let nextFrame = frame; + const advanceFrameBy = (count) => { + nextFrame += count * this.frameTimeFactor; + }; + const c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '^': + if (subscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + subscriptionFrame = groupStart > -1 ? groupStart : frame; + advanceFrameBy(1); + break; + case '!': + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + unsubscriptionFrame = groupStart > -1 ? groupStart : frame; + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + const buffer = marbles.slice(i); + const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + const duration = parseFloat(match[1]); + const unit = match[2]; + let durationInMs; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this.frameTimeFactor); + break; + } + } + } + throw new Error('there can only be \'^\' and \'!\' markers in a ' + + 'subscription marble diagram. Found instead \'' + c + '\'.'); + } + frame = nextFrame; + } + if (unsubscriptionFrame < 0) { + return new SubscriptionLog(subscriptionFrame); + } + else { + return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame); + } + } + static parseMarbles(marbles, values, errorValue, materializeInnerObservables = false, runMode = false) { + if (marbles.indexOf('!') !== -1) { + throw new Error('conventional marble diagrams cannot have the ' + + 'unsubscription marker "!"'); + } + const len = marbles.length; + const testMessages = []; + const subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^'); + let frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor); + const getValue = typeof values !== 'object' ? + (x) => x : + (x) => { + if (materializeInnerObservables && values[x] instanceof ColdObservable) { + return values[x].messages; + } + return values[x]; + }; + let groupStart = -1; + for (let i = 0; i < len; i++) { + let nextFrame = frame; + const advanceFrameBy = (count) => { + nextFrame += count * this.frameTimeFactor; + }; + let notification; + const c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '|': + notification = Notification.createComplete(); + advanceFrameBy(1); + break; + case '^': + advanceFrameBy(1); + break; + case '#': + notification = Notification.createError(errorValue || 'error'); + advanceFrameBy(1); + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + const buffer = marbles.slice(i); + const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + const duration = parseFloat(match[1]); + const unit = match[2]; + let durationInMs; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this.frameTimeFactor); + break; + } + } + } + notification = Notification.createNext(getValue(c)); + advanceFrameBy(1); + break; + } + if (notification) { + testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification }); + } + frame = nextFrame; + } + return testMessages; + } + run(callback) { + const prevFrameTimeFactor = TestScheduler.frameTimeFactor; + const prevMaxFrames = this.maxFrames; + TestScheduler.frameTimeFactor = 1; + this.maxFrames = Number.POSITIVE_INFINITY; + this.runMode = true; + AsyncScheduler.delegate = this; + const helpers = { + cold: this.createColdObservable.bind(this), + hot: this.createHotObservable.bind(this), + flush: this.flush.bind(this), + expectObservable: this.expectObservable.bind(this), + expectSubscriptions: this.expectSubscriptions.bind(this), + }; + try { + const ret = callback(helpers); + this.flush(); + return ret; + } + finally { + TestScheduler.frameTimeFactor = prevFrameTimeFactor; + this.maxFrames = prevMaxFrames; + this.runMode = false; + AsyncScheduler.delegate = undefined; + } + } +} +//# sourceMappingURL=TestScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map b/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map new file mode 100644 index 00000000..b2c5bdc4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/testing/TestScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestScheduler.js","sources":["../../../src/internal/testing/TestScheduler.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/internal/types.js b/node_modules/rxjs/_esm2015/internal/types.js new file mode 100644 index 00000000..5b2306a4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/types.js @@ -0,0 +1 @@ +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/types.js.map b/node_modules/rxjs/_esm2015/internal/types.js.map new file mode 100644 index 00000000..607b9924 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sources":["../../src/internal/types.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js new file mode 100644 index 00000000..73baa861 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js @@ -0,0 +1,12 @@ +const ArgumentOutOfRangeErrorImpl = (() => { + function ArgumentOutOfRangeErrorImpl() { + Error.call(this); + this.message = 'argument out of range'; + this.name = 'ArgumentOutOfRangeError'; + return this; + } + ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype); + return ArgumentOutOfRangeErrorImpl; +})(); +export const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl; +//# sourceMappingURL=ArgumentOutOfRangeError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map new file mode 100644 index 00000000..d57ac07c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../../../src/internal/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":"AAOA,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE;IACxC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,MAAM,uBAAuB,GAAgC,2BAAkC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/EmptyError.js b/node_modules/rxjs/_esm2015/internal/util/EmptyError.js new file mode 100644 index 00000000..6f0cbcca --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/EmptyError.js @@ -0,0 +1,12 @@ +const EmptyErrorImpl = (() => { + function EmptyErrorImpl() { + Error.call(this); + this.message = 'no elements in sequence'; + this.name = 'EmptyError'; + return this; + } + EmptyErrorImpl.prototype = Object.create(Error.prototype); + return EmptyErrorImpl; +})(); +export const EmptyError = EmptyErrorImpl; +//# sourceMappingURL=EmptyError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map b/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map new file mode 100644 index 00000000..a8e85a3b --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/EmptyError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EmptyError.js","sources":["../../../src/internal/util/EmptyError.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE;IAC3B,SAAS,cAAc;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,MAAM,UAAU,GAAmB,cAAqB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/Immediate.js b/node_modules/rxjs/_esm2015/internal/util/Immediate.js new file mode 100644 index 00000000..318097bf --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/Immediate.js @@ -0,0 +1,27 @@ +let nextHandle = 1; +const RESOLVED = (() => Promise.resolve())(); +const activeHandles = {}; +function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; +} +export const Immediate = { + setImmediate(cb) { + const handle = nextHandle++; + activeHandles[handle] = true; + RESOLVED.then(() => findAndClearHandle(handle) && cb()); + return handle; + }, + clearImmediate(handle) { + findAndClearHandle(handle); + }, +}; +export const TestTools = { + pending() { + return Object.keys(activeHandles).length; + } +}; +//# sourceMappingURL=Immediate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map b/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map new file mode 100644 index 00000000..402f32e4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/Immediate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Immediate.js","sources":["../../../src/internal/util/Immediate.ts"],"names":[],"mappings":"AAAA,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,MAAM,aAAa,GAA2B,EAAE,CAAC;AAOjD,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,IAAI,aAAa,EAAE;QAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,CAAC,EAAc;QACzB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAKF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;CACF,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js b/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js new file mode 100644 index 00000000..19587e69 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js @@ -0,0 +1,12 @@ +const ObjectUnsubscribedErrorImpl = (() => { + function ObjectUnsubscribedErrorImpl() { + Error.call(this); + this.message = 'object unsubscribed'; + this.name = 'ObjectUnsubscribedError'; + return this; + } + ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype); + return ObjectUnsubscribedErrorImpl; +})(); +export const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; +//# sourceMappingURL=ObjectUnsubscribedError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map new file mode 100644 index 00000000..0567cdbe --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../../../src/internal/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":"AAOA,MAAM,2BAA2B,GAAG,CAAC,GAAG,EAAE;IACxC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAWL,MAAM,CAAC,MAAM,uBAAuB,GAAgC,2BAAkC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js b/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js new file mode 100644 index 00000000..90b79ca7 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js @@ -0,0 +1,12 @@ +const TimeoutErrorImpl = (() => { + function TimeoutErrorImpl() { + Error.call(this); + this.message = 'Timeout has occurred'; + this.name = 'TimeoutError'; + return this; + } + TimeoutErrorImpl.prototype = Object.create(Error.prototype); + return TimeoutErrorImpl; +})(); +export const TimeoutError = TimeoutErrorImpl; +//# sourceMappingURL=TimeoutError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map b/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map new file mode 100644 index 00000000..08a99ad0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/TimeoutError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TimeoutError.js","sources":["../../../src/internal/util/TimeoutError.ts"],"names":[],"mappings":"AAOA,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;IAC7B,SAAS,gBAAgB;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC,EAAE,CAAC;AASL,MAAM,CAAC,MAAM,YAAY,GAAqB,gBAAuB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js b/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js new file mode 100644 index 00000000..41b16f6a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js @@ -0,0 +1,15 @@ +const UnsubscriptionErrorImpl = (() => { + function UnsubscriptionErrorImpl(errors) { + Error.call(this); + this.message = errors ? + `${errors.length} errors occurred during unsubscription: +${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : ''; + this.name = 'UnsubscriptionError'; + this.errors = errors; + return this; + } + UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype); + return UnsubscriptionErrorImpl; +})(); +export const UnsubscriptionError = UnsubscriptionErrorImpl; +//# sourceMappingURL=UnsubscriptionError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map b/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map new file mode 100644 index 00000000..573d18bd --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsubscriptionError.js","sources":["../../../src/internal/util/UnsubscriptionError.ts"],"names":[],"mappings":"AAQA,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE;IACpC,SAAS,uBAAuB,CAAY,MAAa;QACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YACrB,GAAG,MAAM,CAAC,MAAM;EACpB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC,EAAE,CAAC;AAML,MAAM,CAAC,MAAM,mBAAmB,GAA4B,uBAA8B,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/applyMixins.js b/node_modules/rxjs/_esm2015/internal/util/applyMixins.js new file mode 100644 index 00000000..dfbeb913 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/applyMixins.js @@ -0,0 +1,11 @@ +export function applyMixins(derivedCtor, baseCtors) { + for (let i = 0, len = baseCtors.length; i < len; i++) { + const baseCtor = baseCtors[i]; + const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype); + for (let j = 0, len2 = propertyKeys.length; j < len2; j++) { + const name = propertyKeys[j]; + derivedCtor.prototype[name] = baseCtor.prototype[name]; + } + } +} +//# sourceMappingURL=applyMixins.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map b/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map new file mode 100644 index 00000000..11e203db --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/applyMixins.js.map @@ -0,0 +1 @@ +{"version":3,"file":"applyMixins.js","sources":["../../../src/internal/util/applyMixins.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,WAAgB,EAAE,SAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YACzD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACxD;KACF;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/canReportError.js b/node_modules/rxjs/_esm2015/internal/util/canReportError.js new file mode 100644 index 00000000..08819b51 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/canReportError.js @@ -0,0 +1,17 @@ +import { Subscriber } from '../Subscriber'; +export function canReportError(observer) { + while (observer) { + const { closed, destination, isStopped } = observer; + if (closed || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; +} +//# sourceMappingURL=canReportError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map b/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map new file mode 100644 index 00000000..bed1e3b3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/canReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"canReportError.js","sources":["../../../src/internal/util/canReportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,MAAM,UAAU,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACf,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,QAAe,CAAC;QAC3D,IAAI,MAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,UAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/errorObject.js b/node_modules/rxjs/_esm2015/internal/util/errorObject.js new file mode 100644 index 00000000..26ab7ff3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/errorObject.js @@ -0,0 +1,2 @@ +export const errorObject = { e: {} }; +//# sourceMappingURL=errorObject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map b/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map new file mode 100644 index 00000000..dafb8c31 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/errorObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"errorObject.js","sources":["../../../src/internal/util/errorObject.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,WAAW,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/hostReportError.js b/node_modules/rxjs/_esm2015/internal/util/hostReportError.js new file mode 100644 index 00000000..3851a362 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/hostReportError.js @@ -0,0 +1,4 @@ +export function hostReportError(err) { + setTimeout(() => { throw err; }, 0); +} +//# sourceMappingURL=hostReportError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map b/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map new file mode 100644 index 00000000..202c7524 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/hostReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hostReportError.js","sources":["../../../src/internal/util/hostReportError.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,eAAe,CAAC,GAAQ;IACtC,UAAU,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/identity.js b/node_modules/rxjs/_esm2015/internal/util/identity.js new file mode 100644 index 00000000..1084d77f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/identity.js @@ -0,0 +1,4 @@ +export function identity(x) { + return x; +} +//# sourceMappingURL=identity.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/identity.js.map b/node_modules/rxjs/_esm2015/internal/util/identity.js.map new file mode 100644 index 00000000..3173922c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/identity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"identity.js","sources":["../../../src/internal/util/identity.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isArray.js b/node_modules/rxjs/_esm2015/internal/util/isArray.js new file mode 100644 index 00000000..98ae4296 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isArray.js @@ -0,0 +1,2 @@ +export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))(); +//# sourceMappingURL=isArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isArray.js.map b/node_modules/rxjs/_esm2015/internal/util/isArray.js.map new file mode 100644 index 00000000..bdff915d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArray.js","sources":["../../../src/internal/util/isArray.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAI,CAAM,EAAY,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js b/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js new file mode 100644 index 00000000..393c8b89 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js @@ -0,0 +1,2 @@ +export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function'); +//# sourceMappingURL=isArrayLike.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map b/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map new file mode 100644 index 00000000..5f701203 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isArrayLike.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArrayLike.js","sources":["../../../src/internal/util/isArrayLike.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAI,CAAM,EAAqB,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isDate.js b/node_modules/rxjs/_esm2015/internal/util/isDate.js new file mode 100644 index 00000000..842d77f2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isDate.js @@ -0,0 +1,4 @@ +export function isDate(value) { + return value instanceof Date && !isNaN(+value); +} +//# sourceMappingURL=isDate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isDate.js.map b/node_modules/rxjs/_esm2015/internal/util/isDate.js.map new file mode 100644 index 00000000..69589198 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isDate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isDate.js","sources":["../../../src/internal/util/isDate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isFunction.js b/node_modules/rxjs/_esm2015/internal/util/isFunction.js new file mode 100644 index 00000000..c569835c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isFunction.js @@ -0,0 +1,4 @@ +export function isFunction(x) { + return typeof x === 'function'; +} +//# sourceMappingURL=isFunction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map b/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map new file mode 100644 index 00000000..3774b955 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isFunction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isFunction.js","sources":["../../../src/internal/util/isFunction.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,CAAM;IAC/B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACjC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js b/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js new file mode 100644 index 00000000..00ab1c74 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js @@ -0,0 +1,5 @@ +import { observable as Symbol_observable } from '../symbol/observable'; +export function isInteropObservable(input) { + return input && typeof input[Symbol_observable] === 'function'; +} +//# sourceMappingURL=isInteropObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map b/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map new file mode 100644 index 00000000..88264210 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isInteropObservable.js","sources":["../../../src/internal/util/isInteropObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,UAAU,CAAC;AACjE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isIterable.js b/node_modules/rxjs/_esm2015/internal/util/isIterable.js new file mode 100644 index 00000000..484e8eda --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isIterable.js @@ -0,0 +1,5 @@ +import { iterator as Symbol_iterator } from '../symbol/iterator'; +export function isIterable(input) { + return input && typeof input[Symbol_iterator] === 'function'; +} +//# sourceMappingURL=isIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map b/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map new file mode 100644 index 00000000..3ff5f6ef --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isIterable.js","sources":["../../../src/internal/util/isIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,UAAU,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC;AAC/D,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isNumeric.js b/node_modules/rxjs/_esm2015/internal/util/isNumeric.js new file mode 100644 index 00000000..a7a70d82 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isNumeric.js @@ -0,0 +1,5 @@ +import { isArray } from './isArray'; +export function isNumeric(val) { + return !isArray(val) && (val - parseFloat(val) + 1) >= 0; +} +//# sourceMappingURL=isNumeric.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map b/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map new file mode 100644 index 00000000..b5954be6 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isNumeric.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isNumeric.js","sources":["../../../src/internal/util/isNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,SAAS,CAAC,GAAQ;IAKhC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isObject.js b/node_modules/rxjs/_esm2015/internal/util/isObject.js new file mode 100644 index 00000000..e67f6e8c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isObject.js @@ -0,0 +1,4 @@ +export function isObject(x) { + return x !== null && typeof x === 'object'; +} +//# sourceMappingURL=isObject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isObject.js.map b/node_modules/rxjs/_esm2015/internal/util/isObject.js.map new file mode 100644 index 00000000..f942bed3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObject.js","sources":["../../../src/internal/util/isObject.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,CAAM;IAC7B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC7C,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isObservable.js b/node_modules/rxjs/_esm2015/internal/util/isObservable.js new file mode 100644 index 00000000..d1c95f5d --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isObservable.js @@ -0,0 +1,5 @@ +import { Observable } from '../Observable'; +export function isObservable(obj) { + return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); +} +//# sourceMappingURL=isObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map b/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map new file mode 100644 index 00000000..fa08bc7f --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObservable.js","sources":["../../../src/internal/util/isObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,UAAU,YAAY,CAAI,GAAQ;IACtC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,UAAU,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC;AACzH,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isPromise.js b/node_modules/rxjs/_esm2015/internal/util/isPromise.js new file mode 100644 index 00000000..7ffe2065 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isPromise.js @@ -0,0 +1,4 @@ +export function isPromise(value) { + return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; +} +//# sourceMappingURL=isPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map b/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map new file mode 100644 index 00000000..dcd975c3 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isPromise.js","sources":["../../../src/internal/util/isPromise.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAa,KAAM,CAAC,SAAS,KAAK,UAAU,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9G,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/isScheduler.js b/node_modules/rxjs/_esm2015/internal/util/isScheduler.js new file mode 100644 index 00000000..51a2ba40 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isScheduler.js @@ -0,0 +1,4 @@ +export function isScheduler(value) { + return value && typeof value.schedule === 'function'; +} +//# sourceMappingURL=isScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map b/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map new file mode 100644 index 00000000..75c4ecac --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/isScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isScheduler.js","sources":["../../../src/internal/util/isScheduler.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,OAAO,KAAK,IAAI,OAAa,KAAM,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC9D,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/noop.js b/node_modules/rxjs/_esm2015/internal/util/noop.js new file mode 100644 index 00000000..1a78a542 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/noop.js @@ -0,0 +1,2 @@ +export function noop() { } +//# sourceMappingURL=noop.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/noop.js.map b/node_modules/rxjs/_esm2015/internal/util/noop.js.map new file mode 100644 index 00000000..5d245d86 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/noop.js.map @@ -0,0 +1 @@ +{"version":3,"file":"noop.js","sources":["../../../src/internal/util/noop.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,IAAI,KAAK,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/not.js b/node_modules/rxjs/_esm2015/internal/util/not.js new file mode 100644 index 00000000..f430f55a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/not.js @@ -0,0 +1,9 @@ +export function not(pred, thisArg) { + function notPred() { + return !(notPred.pred.apply(notPred.thisArg, arguments)); + } + notPred.pred = pred; + notPred.thisArg = thisArg; + return notPred; +} +//# sourceMappingURL=not.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/not.js.map b/node_modules/rxjs/_esm2015/internal/util/not.js.map new file mode 100644 index 00000000..c74adc52 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/not.js.map @@ -0,0 +1 @@ +{"version":3,"file":"not.js","sources":["../../../src/internal/util/not.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,OAAY;IAC9C,SAAS,OAAO;QACd,OAAO,CAAC,CAAQ,OAAQ,CAAC,IAAI,CAAC,KAAK,CAAQ,OAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACM,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,OAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/pipe.js b/node_modules/rxjs/_esm2015/internal/util/pipe.js new file mode 100644 index 00000000..fb1cccf1 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/pipe.js @@ -0,0 +1,16 @@ +import { identity } from './identity'; +export function pipe(...fns) { + return pipeFromArray(fns); +} +export function pipeFromArray(fns) { + if (fns.length === 0) { + return identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce((prev, fn) => fn(prev), input); + }; +} +//# sourceMappingURL=pipe.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/pipe.js.map b/node_modules/rxjs/_esm2015/internal/util/pipe.js.map new file mode 100644 index 00000000..f3908d05 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/pipe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiBtC,MAAM,UAAU,IAAI,CAAC,GAAG,GAAmC;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,QAAmC,CAAC;KAC5C;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAuB,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/root.js b/node_modules/rxjs/_esm2015/internal/util/root.js new file mode 100644 index 00000000..e12f2e29 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/root.js @@ -0,0 +1,12 @@ +const __window = typeof window !== 'undefined' && window; +const __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && + self instanceof WorkerGlobalScope && self; +const __global = typeof global !== 'undefined' && global; +const _root = __window || __global || __self; +(function () { + if (!_root) { + throw new Error('RxJS could not find any global context (window, self, global)'); + } +})(); +export { _root as root }; +//# sourceMappingURL=root.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/root.js.map b/node_modules/rxjs/_esm2015/internal/util/root.js.map new file mode 100644 index 00000000..db51d96a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"root.js","sources":["../../../src/internal/util/root.ts"],"names":[],"mappings":"AAeA,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,iBAAiB,KAAK,WAAW;IAClF,IAAI,YAAY,iBAAiB,IAAI,IAAI,CAAC;AAC9C,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,MAAM,KAAK,GAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC;AAKlD,CAAC;IACC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;KAClF;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js b/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js new file mode 100644 index 00000000..71a569bf --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js @@ -0,0 +1,30 @@ +import { subscribeToArray } from './subscribeToArray'; +import { subscribeToPromise } from './subscribeToPromise'; +import { subscribeToIterable } from './subscribeToIterable'; +import { subscribeToObservable } from './subscribeToObservable'; +import { isArrayLike } from './isArrayLike'; +import { isPromise } from './isPromise'; +import { isObject } from './isObject'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +import { observable as Symbol_observable } from '../symbol/observable'; +export const subscribeTo = (result) => { + if (!!result && typeof result[Symbol_observable] === 'function') { + return subscribeToObservable(result); + } + else if (isArrayLike(result)) { + return subscribeToArray(result); + } + else if (isPromise(result)) { + return subscribeToPromise(result); + } + else if (!!result && typeof result[Symbol_iterator] === 'function') { + return subscribeToIterable(result); + } + else { + const value = isObject(result) ? 'an invalid object' : `'${result}'`; + const msg = `You provided ${value} where a stream was expected.` + + ' You can provide an Observable, Promise, Array, or Iterable.'; + throw new TypeError(msg); + } +}; +//# sourceMappingURL=subscribeTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map new file mode 100644 index 00000000..22f4c1e2 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeTo.js","sources":["../../../src/internal/util/subscribeTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIvE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,MAA0B,EAAsD,EAAE;IAC/G,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,EAAE;QAC/D,OAAO,qBAAqB,CAAC,MAAa,CAAC,CAAC;KAC7C;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACjC;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,kBAAkB,CAAC,MAAsB,CAAC,CAAC;KACnD;SAAM,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,UAAU,EAAE;QACpE,OAAO,mBAAmB,CAAC,MAAa,CAAC,CAAC;KAC3C;SAAM;QACL,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC;QACrE,MAAM,GAAG,GAAG,gBAAgB,KAAK,+BAA+B;cAC5D,8DAA8D,CAAC;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js new file mode 100644 index 00000000..2693661a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js @@ -0,0 +1,7 @@ +export const subscribeToArray = (array) => (subscriber) => { + for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); +}; +//# sourceMappingURL=subscribeToArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map new file mode 100644 index 00000000..ebf89a10 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToArray.js","sources":["../../../src/internal/util/subscribeToArray.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAI,KAAmB,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IACxF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js new file mode 100644 index 00000000..17e1d69a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js @@ -0,0 +1,31 @@ +import { iterator as Symbol_iterator } from '../symbol/iterator'; +export const subscribeToIterable = (iterable) => (subscriber) => { + const iterator = iterable[Symbol_iterator](); + do { + let item; + try { + item = iterator.next(); + } + catch (err) { + subscriber.error(err); + return subscriber; + } + if (item.done) { + subscriber.complete(); + break; + } + subscriber.next(item.value); + if (subscriber.closed) { + break; + } + } while (true); + if (typeof iterator.return === 'function') { + subscriber.add(() => { + if (iterator.return) { + iterator.return(); + } + }); + } + return subscriber; +}; +//# sourceMappingURL=subscribeToIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map new file mode 100644 index 00000000..03a72e41 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToIterable.js","sources":["../../../src/internal/util/subscribeToIterable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAI,QAAqB,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IAC7F,MAAM,QAAQ,GAAI,QAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;IAEtD,GAAG;QACD,IAAI,IAAuB,CAAC;QAC5B,IAAI;YACF,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,UAAU,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM;SACP;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,MAAM;SACP;KACF,QAAQ,IAAI,EAAE;IAGf,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;QACzC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js new file mode 100644 index 00000000..8a284218 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js @@ -0,0 +1,11 @@ +import { observable as Symbol_observable } from '../symbol/observable'; +export const subscribeToObservable = (obj) => (subscriber) => { + const obs = obj[Symbol_observable](); + if (typeof obs.subscribe !== 'function') { + throw new TypeError('Provided object does not correctly implement Symbol.observable'); + } + else { + return obs.subscribe(subscriber); + } +}; +//# sourceMappingURL=subscribeToObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map new file mode 100644 index 00000000..85cce8d5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToObservable.js","sources":["../../../src/internal/util/subscribeToObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAI,GAAQ,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IAClF,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;QAEvC,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;KACvF;SAAM;QACL,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAClC;AACH,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js new file mode 100644 index 00000000..0f919ba5 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js @@ -0,0 +1,12 @@ +import { hostReportError } from './hostReportError'; +export const subscribeToPromise = (promise) => (subscriber) => { + promise.then((value) => { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, (err) => subscriber.error(err)) + .then(null, hostReportError); + return subscriber; +}; +//# sourceMappingURL=subscribeToPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map new file mode 100644 index 00000000..f8af52cb --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToPromise.js","sources":["../../../src/internal/util/subscribeToPromise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAI,OAAuB,EAAE,EAAE,CAAC,CAAC,UAAyB,EAAE,EAAE;IAC9F,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC,EACD,CAAC,GAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CACpC;SACA,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js b/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js new file mode 100644 index 00000000..be8d01f4 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js @@ -0,0 +1,13 @@ +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeTo } from './subscribeTo'; +import { Observable } from '../Observable'; +export function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) { + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber); +} +//# sourceMappingURL=subscribeToResult.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map b/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map new file mode 100644 index 00000000..c1751b6e --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToResult.js","sources":["../../../src/internal/util/subscribeToResult.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiB3C,MAAM,UAAU,iBAAiB,CAC/B,eAAsC,EACtC,MAAW,EACX,UAAc,EACd,UAAmB,EACnB,kBAAiC,IAAI,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC;IAE7F,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,YAAY,UAAU,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAiB,CAAC;AAC9D,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js b/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js new file mode 100644 index 00000000..1d61183c --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js @@ -0,0 +1,18 @@ +import { Subscriber } from '../Subscriber'; +import { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber'; +import { empty as emptyObserver } from '../Observer'; +export function toSubscriber(nextOrObserver, error, complete) { + if (nextOrObserver) { + if (nextOrObserver instanceof Subscriber) { + return nextOrObserver; + } + if (nextOrObserver[rxSubscriberSymbol]) { + return nextOrObserver[rxSubscriberSymbol](); + } + } + if (!nextOrObserver && !error && !complete) { + return new Subscriber(emptyObserver); + } + return new Subscriber(nextOrObserver, error, complete); +} +//# sourceMappingURL=toSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map b/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map new file mode 100644 index 00000000..5f6c7a9a --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/toSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toSubscriber.js","sources":["../../../src/internal/util/toSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,UAAU,YAAY,CAC1B,cAA0D,EAC1D,KAA4B,EAC5B,QAAqB;IAErB,IAAI,cAAc,EAAE;QAClB,IAAI,cAAc,YAAY,UAAU,EAAE;YACxC,OAAwB,cAAe,CAAC;SACzC;QAED,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE;YACtC,OAAO,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;SAC7C;KACF;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC1C,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,OAAO,IAAI,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC"} diff --git a/node_modules/rxjs/_esm2015/internal/util/tryCatch.js b/node_modules/rxjs/_esm2015/internal/util/tryCatch.js new file mode 100644 index 00000000..503fcee8 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/tryCatch.js @@ -0,0 +1,20 @@ +import { errorObject } from './errorObject'; +let tryCatchTarget; +function tryCatcher() { + errorObject.e = undefined; + try { + return tryCatchTarget.apply(this, arguments); + } + catch (e) { + errorObject.e = e; + return errorObject; + } + finally { + tryCatchTarget = undefined; + } +} +export function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} +//# sourceMappingURL=tryCatch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map b/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map new file mode 100644 index 00000000..f6852996 --- /dev/null +++ b/node_modules/rxjs/_esm2015/internal/util/tryCatch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tryCatch.js","sources":["../../../src/internal/util/tryCatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,IAAI,cAAwB,CAAC;AAE7B,SAAS,UAAU;IACjB,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1B,IAAI;QACF,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACV,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,WAAW,CAAC;KACpB;YAAS;QACR,cAAc,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAqB,EAAK;IAChD,cAAc,GAAG,EAAE,CAAC;IACpB,OAAY,UAAU,CAAC;AACzB,CAAC"} diff --git a/node_modules/rxjs/_esm2015/operators/index.js b/node_modules/rxjs/_esm2015/operators/index.js new file mode 100644 index 00000000..10d3b97e --- /dev/null +++ b/node_modules/rxjs/_esm2015/operators/index.js @@ -0,0 +1,104 @@ +export { audit } from '../internal/operators/audit'; +export { auditTime } from '../internal/operators/auditTime'; +export { buffer } from '../internal/operators/buffer'; +export { bufferCount } from '../internal/operators/bufferCount'; +export { bufferTime } from '../internal/operators/bufferTime'; +export { bufferToggle } from '../internal/operators/bufferToggle'; +export { bufferWhen } from '../internal/operators/bufferWhen'; +export { catchError } from '../internal/operators/catchError'; +export { combineAll } from '../internal/operators/combineAll'; +export { combineLatest } from '../internal/operators/combineLatest'; +export { concat } from '../internal/operators/concat'; +export { concatAll } from '../internal/operators/concatAll'; +export { concatMap } from '../internal/operators/concatMap'; +export { concatMapTo } from '../internal/operators/concatMapTo'; +export { count } from '../internal/operators/count'; +export { debounce } from '../internal/operators/debounce'; +export { debounceTime } from '../internal/operators/debounceTime'; +export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty'; +export { delay } from '../internal/operators/delay'; +export { delayWhen } from '../internal/operators/delayWhen'; +export { dematerialize } from '../internal/operators/dematerialize'; +export { distinct } from '../internal/operators/distinct'; +export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged'; +export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged'; +export { elementAt } from '../internal/operators/elementAt'; +export { endWith } from '../internal/operators/endWith'; +export { every } from '../internal/operators/every'; +export { exhaust } from '../internal/operators/exhaust'; +export { exhaustMap } from '../internal/operators/exhaustMap'; +export { expand } from '../internal/operators/expand'; +export { filter } from '../internal/operators/filter'; +export { finalize } from '../internal/operators/finalize'; +export { find } from '../internal/operators/find'; +export { findIndex } from '../internal/operators/findIndex'; +export { first } from '../internal/operators/first'; +export { groupBy } from '../internal/operators/groupBy'; +export { ignoreElements } from '../internal/operators/ignoreElements'; +export { isEmpty } from '../internal/operators/isEmpty'; +export { last } from '../internal/operators/last'; +export { map } from '../internal/operators/map'; +export { mapTo } from '../internal/operators/mapTo'; +export { materialize } from '../internal/operators/materialize'; +export { max } from '../internal/operators/max'; +export { merge } from '../internal/operators/merge'; +export { mergeAll } from '../internal/operators/mergeAll'; +export { mergeMap, flatMap } from '../internal/operators/mergeMap'; +export { mergeMapTo } from '../internal/operators/mergeMapTo'; +export { mergeScan } from '../internal/operators/mergeScan'; +export { min } from '../internal/operators/min'; +export { multicast } from '../internal/operators/multicast'; +export { observeOn } from '../internal/operators/observeOn'; +export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext'; +export { pairwise } from '../internal/operators/pairwise'; +export { partition } from '../internal/operators/partition'; +export { pluck } from '../internal/operators/pluck'; +export { publish } from '../internal/operators/publish'; +export { publishBehavior } from '../internal/operators/publishBehavior'; +export { publishLast } from '../internal/operators/publishLast'; +export { publishReplay } from '../internal/operators/publishReplay'; +export { race } from '../internal/operators/race'; +export { reduce } from '../internal/operators/reduce'; +export { repeat } from '../internal/operators/repeat'; +export { repeatWhen } from '../internal/operators/repeatWhen'; +export { retry } from '../internal/operators/retry'; +export { retryWhen } from '../internal/operators/retryWhen'; +export { refCount } from '../internal/operators/refCount'; +export { sample } from '../internal/operators/sample'; +export { sampleTime } from '../internal/operators/sampleTime'; +export { scan } from '../internal/operators/scan'; +export { sequenceEqual } from '../internal/operators/sequenceEqual'; +export { share } from '../internal/operators/share'; +export { shareReplay } from '../internal/operators/shareReplay'; +export { single } from '../internal/operators/single'; +export { skip } from '../internal/operators/skip'; +export { skipLast } from '../internal/operators/skipLast'; +export { skipUntil } from '../internal/operators/skipUntil'; +export { skipWhile } from '../internal/operators/skipWhile'; +export { startWith } from '../internal/operators/startWith'; +export { subscribeOn } from '../internal/operators/subscribeOn'; +export { switchAll } from '../internal/operators/switchAll'; +export { switchMap } from '../internal/operators/switchMap'; +export { switchMapTo } from '../internal/operators/switchMapTo'; +export { take } from '../internal/operators/take'; +export { takeLast } from '../internal/operators/takeLast'; +export { takeUntil } from '../internal/operators/takeUntil'; +export { takeWhile } from '../internal/operators/takeWhile'; +export { tap } from '../internal/operators/tap'; +export { throttle } from '../internal/operators/throttle'; +export { throttleTime } from '../internal/operators/throttleTime'; +export { throwIfEmpty } from '../internal/operators/throwIfEmpty'; +export { timeInterval } from '../internal/operators/timeInterval'; +export { timeout } from '../internal/operators/timeout'; +export { timeoutWith } from '../internal/operators/timeoutWith'; +export { timestamp } from '../internal/operators/timestamp'; +export { toArray } from '../internal/operators/toArray'; +export { window } from '../internal/operators/window'; +export { windowCount } from '../internal/operators/windowCount'; +export { windowTime } from '../internal/operators/windowTime'; +export { windowToggle } from '../internal/operators/windowToggle'; +export { windowWhen } from '../internal/operators/windowWhen'; +export { withLatestFrom } from '../internal/operators/withLatestFrom'; +export { zip } from '../internal/operators/zip'; +export { zipAll } from '../internal/operators/zipAll'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/operators/index.js.map b/node_modules/rxjs/_esm2015/operators/index.js.map new file mode 100644 index 00000000..484b550c --- /dev/null +++ b/node_modules/rxjs/_esm2015/operators/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/operators/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm2015/path-mapping.js b/node_modules/rxjs/_esm2015/path-mapping.js new file mode 100644 index 00000000..31003f1f --- /dev/null +++ b/node_modules/rxjs/_esm2015/path-mapping.js @@ -0,0 +1,453 @@ + +"use strict" + +var path = require('path'); +var dir = path.resolve(__dirname); + +module.exports = function() { + return { + "rxjs/util/tryCatch": "rxjs-compat/_esm2015/util/tryCatch", + "rxjs/util/toSubscriber": "rxjs-compat/_esm2015/util/toSubscriber", + "rxjs/util/subscribeToResult": "rxjs-compat/_esm2015/util/subscribeToResult", + "rxjs/util/subscribeToPromise": "rxjs-compat/_esm2015/util/subscribeToPromise", + "rxjs/util/subscribeToObservable": "rxjs-compat/_esm2015/util/subscribeToObservable", + "rxjs/util/subscribeToIterable": "rxjs-compat/_esm2015/util/subscribeToIterable", + "rxjs/util/subscribeToArray": "rxjs-compat/_esm2015/util/subscribeToArray", + "rxjs/util/subscribeTo": "rxjs-compat/_esm2015/util/subscribeTo", + "rxjs/util/root": "rxjs-compat/_esm2015/util/root", + "rxjs/util/pipe": "rxjs-compat/_esm2015/util/pipe", + "rxjs/util/not": "rxjs-compat/_esm2015/util/not", + "rxjs/util/noop": "rxjs-compat/_esm2015/util/noop", + "rxjs/util/isScheduler": "rxjs-compat/_esm2015/util/isScheduler", + "rxjs/util/isPromise": "rxjs-compat/_esm2015/util/isPromise", + "rxjs/util/isObservable": "rxjs-compat/_esm2015/util/isObservable", + "rxjs/util/isObject": "rxjs-compat/_esm2015/util/isObject", + "rxjs/util/isNumeric": "rxjs-compat/_esm2015/util/isNumeric", + "rxjs/util/isIterable": "rxjs-compat/_esm2015/util/isIterable", + "rxjs/util/isFunction": "rxjs-compat/_esm2015/util/isFunction", + "rxjs/util/isDate": "rxjs-compat/_esm2015/util/isDate", + "rxjs/util/isArrayLike": "rxjs-compat/_esm2015/util/isArrayLike", + "rxjs/util/isArray": "rxjs-compat/_esm2015/util/isArray", + "rxjs/util/identity": "rxjs-compat/_esm2015/util/identity", + "rxjs/util/hostReportError": "rxjs-compat/_esm2015/util/hostReportError", + "rxjs/util/errorObject": "rxjs-compat/_esm2015/util/errorObject", + "rxjs/util/applyMixins": "rxjs-compat/_esm2015/util/applyMixins", + "rxjs/util/UnsubscriptionError": "rxjs-compat/_esm2015/util/UnsubscriptionError", + "rxjs/util/TimeoutError": "rxjs-compat/_esm2015/util/TimeoutError", + "rxjs/util/ObjectUnsubscribedError": "rxjs-compat/_esm2015/util/ObjectUnsubscribedError", + "rxjs/util/Immediate": "rxjs-compat/_esm2015/util/Immediate", + "rxjs/util/EmptyError": "rxjs-compat/_esm2015/util/EmptyError", + "rxjs/util/ArgumentOutOfRangeError": "rxjs-compat/_esm2015/util/ArgumentOutOfRangeError", + "rxjs/symbol/rxSubscriber": "rxjs-compat/_esm2015/symbol/rxSubscriber", + "rxjs/symbol/observable": "rxjs-compat/_esm2015/symbol/observable", + "rxjs/symbol/iterator": "rxjs-compat/_esm2015/symbol/iterator", + "rxjs/scheduler/queue": "rxjs-compat/_esm2015/scheduler/queue", + "rxjs/scheduler/async": "rxjs-compat/_esm2015/scheduler/async", + "rxjs/scheduler/asap": "rxjs-compat/_esm2015/scheduler/asap", + "rxjs/scheduler/animationFrame": "rxjs-compat/_esm2015/scheduler/animationFrame", + "rxjs/operators/zipAll": "rxjs-compat/_esm2015/operators/zipAll", + "rxjs/operators/zip": "rxjs-compat/_esm2015/operators/zip", + "rxjs/operators/withLatestFrom": "rxjs-compat/_esm2015/operators/withLatestFrom", + "rxjs/operators/windowWhen": "rxjs-compat/_esm2015/operators/windowWhen", + "rxjs/operators/windowToggle": "rxjs-compat/_esm2015/operators/windowToggle", + "rxjs/operators/windowTime": "rxjs-compat/_esm2015/operators/windowTime", + "rxjs/operators/windowCount": "rxjs-compat/_esm2015/operators/windowCount", + "rxjs/operators/window": "rxjs-compat/_esm2015/operators/window", + "rxjs/operators/toArray": "rxjs-compat/_esm2015/operators/toArray", + "rxjs/operators/timestamp": "rxjs-compat/_esm2015/operators/timestamp", + "rxjs/operators/timeoutWith": "rxjs-compat/_esm2015/operators/timeoutWith", + "rxjs/operators/timeout": "rxjs-compat/_esm2015/operators/timeout", + "rxjs/operators/timeInterval": "rxjs-compat/_esm2015/operators/timeInterval", + "rxjs/operators/throwIfEmpty": "rxjs-compat/_esm2015/operators/throwIfEmpty", + "rxjs/operators/throttleTime": "rxjs-compat/_esm2015/operators/throttleTime", + "rxjs/operators/throttle": "rxjs-compat/_esm2015/operators/throttle", + "rxjs/operators/tap": "rxjs-compat/_esm2015/operators/tap", + "rxjs/operators/takeWhile": "rxjs-compat/_esm2015/operators/takeWhile", + "rxjs/operators/takeUntil": "rxjs-compat/_esm2015/operators/takeUntil", + "rxjs/operators/takeLast": "rxjs-compat/_esm2015/operators/takeLast", + "rxjs/operators/take": "rxjs-compat/_esm2015/operators/take", + "rxjs/operators/switchMapTo": "rxjs-compat/_esm2015/operators/switchMapTo", + "rxjs/operators/switchMap": "rxjs-compat/_esm2015/operators/switchMap", + "rxjs/operators/switchAll": "rxjs-compat/_esm2015/operators/switchAll", + "rxjs/operators/subscribeOn": "rxjs-compat/_esm2015/operators/subscribeOn", + "rxjs/operators/startWith": "rxjs-compat/_esm2015/operators/startWith", + "rxjs/operators/skipWhile": "rxjs-compat/_esm2015/operators/skipWhile", + "rxjs/operators/skipUntil": "rxjs-compat/_esm2015/operators/skipUntil", + "rxjs/operators/skipLast": "rxjs-compat/_esm2015/operators/skipLast", + "rxjs/operators/skip": "rxjs-compat/_esm2015/operators/skip", + "rxjs/operators/single": "rxjs-compat/_esm2015/operators/single", + "rxjs/operators/shareReplay": "rxjs-compat/_esm2015/operators/shareReplay", + "rxjs/operators/share": "rxjs-compat/_esm2015/operators/share", + "rxjs/operators/sequenceEqual": "rxjs-compat/_esm2015/operators/sequenceEqual", + "rxjs/operators/scan": "rxjs-compat/_esm2015/operators/scan", + "rxjs/operators/sampleTime": "rxjs-compat/_esm2015/operators/sampleTime", + "rxjs/operators/sample": "rxjs-compat/_esm2015/operators/sample", + "rxjs/operators/retryWhen": "rxjs-compat/_esm2015/operators/retryWhen", + "rxjs/operators/retry": "rxjs-compat/_esm2015/operators/retry", + "rxjs/operators/repeatWhen": "rxjs-compat/_esm2015/operators/repeatWhen", + "rxjs/operators/repeat": "rxjs-compat/_esm2015/operators/repeat", + "rxjs/operators/refCount": "rxjs-compat/_esm2015/operators/refCount", + "rxjs/operators/reduce": "rxjs-compat/_esm2015/operators/reduce", + "rxjs/operators/race": "rxjs-compat/_esm2015/operators/race", + "rxjs/operators/publishReplay": "rxjs-compat/_esm2015/operators/publishReplay", + "rxjs/operators/publishLast": "rxjs-compat/_esm2015/operators/publishLast", + "rxjs/operators/publishBehavior": "rxjs-compat/_esm2015/operators/publishBehavior", + "rxjs/operators/publish": "rxjs-compat/_esm2015/operators/publish", + "rxjs/operators/pluck": "rxjs-compat/_esm2015/operators/pluck", + "rxjs/operators/partition": "rxjs-compat/_esm2015/operators/partition", + "rxjs/operators/pairwise": "rxjs-compat/_esm2015/operators/pairwise", + "rxjs/operators/onErrorResumeNext": "rxjs-compat/_esm2015/operators/onErrorResumeNext", + "rxjs/operators/observeOn": "rxjs-compat/_esm2015/operators/observeOn", + "rxjs/operators/multicast": "rxjs-compat/_esm2015/operators/multicast", + "rxjs/operators/min": "rxjs-compat/_esm2015/operators/min", + "rxjs/operators/mergeScan": "rxjs-compat/_esm2015/operators/mergeScan", + "rxjs/operators/mergeMapTo": "rxjs-compat/_esm2015/operators/mergeMapTo", + "rxjs/operators/mergeMap": "rxjs-compat/_esm2015/operators/mergeMap", + "rxjs/operators/mergeAll": "rxjs-compat/_esm2015/operators/mergeAll", + "rxjs/operators/merge": "rxjs-compat/_esm2015/operators/merge", + "rxjs/operators/max": "rxjs-compat/_esm2015/operators/max", + "rxjs/operators/materialize": "rxjs-compat/_esm2015/operators/materialize", + "rxjs/operators/mapTo": "rxjs-compat/_esm2015/operators/mapTo", + "rxjs/operators/map": "rxjs-compat/_esm2015/operators/map", + "rxjs/operators/last": "rxjs-compat/_esm2015/operators/last", + "rxjs/operators/isEmpty": "rxjs-compat/_esm2015/operators/isEmpty", + "rxjs/operators/ignoreElements": "rxjs-compat/_esm2015/operators/ignoreElements", + "rxjs/operators/groupBy": "rxjs-compat/_esm2015/operators/groupBy", + "rxjs/operators/first": "rxjs-compat/_esm2015/operators/first", + "rxjs/operators/findIndex": "rxjs-compat/_esm2015/operators/findIndex", + "rxjs/operators/find": "rxjs-compat/_esm2015/operators/find", + "rxjs/operators/finalize": "rxjs-compat/_esm2015/operators/finalize", + "rxjs/operators/filter": "rxjs-compat/_esm2015/operators/filter", + "rxjs/operators/expand": "rxjs-compat/_esm2015/operators/expand", + "rxjs/operators/exhaustMap": "rxjs-compat/_esm2015/operators/exhaustMap", + "rxjs/operators/exhaust": "rxjs-compat/_esm2015/operators/exhaust", + "rxjs/operators/every": "rxjs-compat/_esm2015/operators/every", + "rxjs/operators/elementAt": "rxjs-compat/_esm2015/operators/elementAt", + "rxjs/operators/distinctUntilKeyChanged": "rxjs-compat/_esm2015/operators/distinctUntilKeyChanged", + "rxjs/operators/distinctUntilChanged": "rxjs-compat/_esm2015/operators/distinctUntilChanged", + "rxjs/operators/distinct": "rxjs-compat/_esm2015/operators/distinct", + "rxjs/operators/dematerialize": "rxjs-compat/_esm2015/operators/dematerialize", + "rxjs/operators/delayWhen": "rxjs-compat/_esm2015/operators/delayWhen", + "rxjs/operators/delay": "rxjs-compat/_esm2015/operators/delay", + "rxjs/operators/defaultIfEmpty": "rxjs-compat/_esm2015/operators/defaultIfEmpty", + "rxjs/operators/debounceTime": "rxjs-compat/_esm2015/operators/debounceTime", + "rxjs/operators/debounce": "rxjs-compat/_esm2015/operators/debounce", + "rxjs/operators/count": "rxjs-compat/_esm2015/operators/count", + "rxjs/operators/concatMapTo": "rxjs-compat/_esm2015/operators/concatMapTo", + "rxjs/operators/concatMap": "rxjs-compat/_esm2015/operators/concatMap", + "rxjs/operators/concatAll": "rxjs-compat/_esm2015/operators/concatAll", + "rxjs/operators/concat": "rxjs-compat/_esm2015/operators/concat", + "rxjs/operators/combineLatest": "rxjs-compat/_esm2015/operators/combineLatest", + "rxjs/operators/combineAll": "rxjs-compat/_esm2015/operators/combineAll", + "rxjs/operators/catchError": "rxjs-compat/_esm2015/operators/catchError", + "rxjs/operators/bufferWhen": "rxjs-compat/_esm2015/operators/bufferWhen", + "rxjs/operators/bufferToggle": "rxjs-compat/_esm2015/operators/bufferToggle", + "rxjs/operators/bufferTime": "rxjs-compat/_esm2015/operators/bufferTime", + "rxjs/operators/bufferCount": "rxjs-compat/_esm2015/operators/bufferCount", + "rxjs/operators/buffer": "rxjs-compat/_esm2015/operators/buffer", + "rxjs/operators/auditTime": "rxjs-compat/_esm2015/operators/auditTime", + "rxjs/operators/audit": "rxjs-compat/_esm2015/operators/audit", + "rxjs/operator/zipAll": "rxjs-compat/_esm2015/operator/zipAll", + "rxjs/operator/zip": "rxjs-compat/_esm2015/operator/zip", + "rxjs/operator/withLatestFrom": "rxjs-compat/_esm2015/operator/withLatestFrom", + "rxjs/operator/windowWhen": "rxjs-compat/_esm2015/operator/windowWhen", + "rxjs/operator/windowToggle": "rxjs-compat/_esm2015/operator/windowToggle", + "rxjs/operator/windowTime": "rxjs-compat/_esm2015/operator/windowTime", + "rxjs/operator/windowCount": "rxjs-compat/_esm2015/operator/windowCount", + "rxjs/operator/window": "rxjs-compat/_esm2015/operator/window", + "rxjs/operator/toPromise": "rxjs-compat/_esm2015/operator/toPromise", + "rxjs/operator/toArray": "rxjs-compat/_esm2015/operator/toArray", + "rxjs/operator/timestamp": "rxjs-compat/_esm2015/operator/timestamp", + "rxjs/operator/timeoutWith": "rxjs-compat/_esm2015/operator/timeoutWith", + "rxjs/operator/timeout": "rxjs-compat/_esm2015/operator/timeout", + "rxjs/operator/timeInterval": "rxjs-compat/_esm2015/operator/timeInterval", + "rxjs/operator/throttleTime": "rxjs-compat/_esm2015/operator/throttleTime", + "rxjs/operator/throttle": "rxjs-compat/_esm2015/operator/throttle", + "rxjs/operator/takeWhile": "rxjs-compat/_esm2015/operator/takeWhile", + "rxjs/operator/takeUntil": "rxjs-compat/_esm2015/operator/takeUntil", + "rxjs/operator/takeLast": "rxjs-compat/_esm2015/operator/takeLast", + "rxjs/operator/take": "rxjs-compat/_esm2015/operator/take", + "rxjs/operator/switchMapTo": "rxjs-compat/_esm2015/operator/switchMapTo", + "rxjs/operator/switchMap": "rxjs-compat/_esm2015/operator/switchMap", + "rxjs/operator/switch": "rxjs-compat/_esm2015/operator/switch", + "rxjs/operator/subscribeOn": "rxjs-compat/_esm2015/operator/subscribeOn", + "rxjs/operator/startWith": "rxjs-compat/_esm2015/operator/startWith", + "rxjs/operator/skipWhile": "rxjs-compat/_esm2015/operator/skipWhile", + "rxjs/operator/skipUntil": "rxjs-compat/_esm2015/operator/skipUntil", + "rxjs/operator/skipLast": "rxjs-compat/_esm2015/operator/skipLast", + "rxjs/operator/skip": "rxjs-compat/_esm2015/operator/skip", + "rxjs/operator/single": "rxjs-compat/_esm2015/operator/single", + "rxjs/operator/shareReplay": "rxjs-compat/_esm2015/operator/shareReplay", + "rxjs/operator/share": "rxjs-compat/_esm2015/operator/share", + "rxjs/operator/sequenceEqual": "rxjs-compat/_esm2015/operator/sequenceEqual", + "rxjs/operator/scan": "rxjs-compat/_esm2015/operator/scan", + "rxjs/operator/sampleTime": "rxjs-compat/_esm2015/operator/sampleTime", + "rxjs/operator/sample": "rxjs-compat/_esm2015/operator/sample", + "rxjs/operator/retryWhen": "rxjs-compat/_esm2015/operator/retryWhen", + "rxjs/operator/retry": "rxjs-compat/_esm2015/operator/retry", + "rxjs/operator/repeatWhen": "rxjs-compat/_esm2015/operator/repeatWhen", + "rxjs/operator/repeat": "rxjs-compat/_esm2015/operator/repeat", + "rxjs/operator/reduce": "rxjs-compat/_esm2015/operator/reduce", + "rxjs/operator/race": "rxjs-compat/_esm2015/operator/race", + "rxjs/operator/publishReplay": "rxjs-compat/_esm2015/operator/publishReplay", + "rxjs/operator/publishLast": "rxjs-compat/_esm2015/operator/publishLast", + "rxjs/operator/publishBehavior": "rxjs-compat/_esm2015/operator/publishBehavior", + "rxjs/operator/publish": "rxjs-compat/_esm2015/operator/publish", + "rxjs/operator/pluck": "rxjs-compat/_esm2015/operator/pluck", + "rxjs/operator/partition": "rxjs-compat/_esm2015/operator/partition", + "rxjs/operator/pairwise": "rxjs-compat/_esm2015/operator/pairwise", + "rxjs/operator/onErrorResumeNext": "rxjs-compat/_esm2015/operator/onErrorResumeNext", + "rxjs/operator/observeOn": "rxjs-compat/_esm2015/operator/observeOn", + "rxjs/operator/multicast": "rxjs-compat/_esm2015/operator/multicast", + "rxjs/operator/min": "rxjs-compat/_esm2015/operator/min", + "rxjs/operator/mergeScan": "rxjs-compat/_esm2015/operator/mergeScan", + "rxjs/operator/mergeMapTo": "rxjs-compat/_esm2015/operator/mergeMapTo", + "rxjs/operator/mergeMap": "rxjs-compat/_esm2015/operator/mergeMap", + "rxjs/operator/mergeAll": "rxjs-compat/_esm2015/operator/mergeAll", + "rxjs/operator/merge": "rxjs-compat/_esm2015/operator/merge", + "rxjs/operator/max": "rxjs-compat/_esm2015/operator/max", + "rxjs/operator/materialize": "rxjs-compat/_esm2015/operator/materialize", + "rxjs/operator/mapTo": "rxjs-compat/_esm2015/operator/mapTo", + "rxjs/operator/map": "rxjs-compat/_esm2015/operator/map", + "rxjs/operator/let": "rxjs-compat/_esm2015/operator/let", + "rxjs/operator/last": "rxjs-compat/_esm2015/operator/last", + "rxjs/operator/isEmpty": "rxjs-compat/_esm2015/operator/isEmpty", + "rxjs/operator/ignoreElements": "rxjs-compat/_esm2015/operator/ignoreElements", + "rxjs/operator/groupBy": "rxjs-compat/_esm2015/operator/groupBy", + "rxjs/operator/first": "rxjs-compat/_esm2015/operator/first", + "rxjs/operator/findIndex": "rxjs-compat/_esm2015/operator/findIndex", + "rxjs/operator/find": "rxjs-compat/_esm2015/operator/find", + "rxjs/operator/finally": "rxjs-compat/_esm2015/operator/finally", + "rxjs/operator/filter": "rxjs-compat/_esm2015/operator/filter", + "rxjs/operator/expand": "rxjs-compat/_esm2015/operator/expand", + "rxjs/operator/exhaustMap": "rxjs-compat/_esm2015/operator/exhaustMap", + "rxjs/operator/exhaust": "rxjs-compat/_esm2015/operator/exhaust", + "rxjs/operator/every": "rxjs-compat/_esm2015/operator/every", + "rxjs/operator/elementAt": "rxjs-compat/_esm2015/operator/elementAt", + "rxjs/operator/do": "rxjs-compat/_esm2015/operator/do", + "rxjs/operator/distinctUntilKeyChanged": "rxjs-compat/_esm2015/operator/distinctUntilKeyChanged", + "rxjs/operator/distinctUntilChanged": "rxjs-compat/_esm2015/operator/distinctUntilChanged", + "rxjs/operator/distinct": "rxjs-compat/_esm2015/operator/distinct", + "rxjs/operator/dematerialize": "rxjs-compat/_esm2015/operator/dematerialize", + "rxjs/operator/delayWhen": "rxjs-compat/_esm2015/operator/delayWhen", + "rxjs/operator/delay": "rxjs-compat/_esm2015/operator/delay", + "rxjs/operator/defaultIfEmpty": "rxjs-compat/_esm2015/operator/defaultIfEmpty", + "rxjs/operator/debounceTime": "rxjs-compat/_esm2015/operator/debounceTime", + "rxjs/operator/debounce": "rxjs-compat/_esm2015/operator/debounce", + "rxjs/operator/count": "rxjs-compat/_esm2015/operator/count", + "rxjs/operator/concatMapTo": "rxjs-compat/_esm2015/operator/concatMapTo", + "rxjs/operator/concatMap": "rxjs-compat/_esm2015/operator/concatMap", + "rxjs/operator/concatAll": "rxjs-compat/_esm2015/operator/concatAll", + "rxjs/operator/concat": "rxjs-compat/_esm2015/operator/concat", + "rxjs/operator/combineLatest": "rxjs-compat/_esm2015/operator/combineLatest", + "rxjs/operator/combineAll": "rxjs-compat/_esm2015/operator/combineAll", + "rxjs/operator/catch": "rxjs-compat/_esm2015/operator/catch", + "rxjs/operator/bufferWhen": "rxjs-compat/_esm2015/operator/bufferWhen", + "rxjs/operator/bufferToggle": "rxjs-compat/_esm2015/operator/bufferToggle", + "rxjs/operator/bufferTime": "rxjs-compat/_esm2015/operator/bufferTime", + "rxjs/operator/bufferCount": "rxjs-compat/_esm2015/operator/bufferCount", + "rxjs/operator/buffer": "rxjs-compat/_esm2015/operator/buffer", + "rxjs/operator/auditTime": "rxjs-compat/_esm2015/operator/auditTime", + "rxjs/operator/audit": "rxjs-compat/_esm2015/operator/audit", + "rxjs/observable/zip": "rxjs-compat/_esm2015/observable/zip", + "rxjs/observable/using": "rxjs-compat/_esm2015/observable/using", + "rxjs/observable/timer": "rxjs-compat/_esm2015/observable/timer", + "rxjs/observable/throw": "rxjs-compat/_esm2015/observable/throw", + "rxjs/observable/range": "rxjs-compat/_esm2015/observable/range", + "rxjs/observable/race": "rxjs-compat/_esm2015/observable/race", + "rxjs/observable/pairs": "rxjs-compat/_esm2015/observable/pairs", + "rxjs/observable/onErrorResumeNext": "rxjs-compat/_esm2015/observable/onErrorResumeNext", + "rxjs/observable/of": "rxjs-compat/_esm2015/observable/of", + "rxjs/observable/never": "rxjs-compat/_esm2015/observable/never", + "rxjs/observable/merge": "rxjs-compat/_esm2015/observable/merge", + "rxjs/observable/interval": "rxjs-compat/_esm2015/observable/interval", + "rxjs/observable/if": "rxjs-compat/_esm2015/observable/if", + "rxjs/observable/generate": "rxjs-compat/_esm2015/observable/generate", + "rxjs/observable/fromPromise": "rxjs-compat/_esm2015/observable/fromPromise", + "rxjs/observable/fromIterable": "rxjs-compat/_esm2015/observable/fromIterable", + "rxjs/observable/fromEventPattern": "rxjs-compat/_esm2015/observable/fromEventPattern", + "rxjs/observable/fromEvent": "rxjs-compat/_esm2015/observable/fromEvent", + "rxjs/observable/fromArray": "rxjs-compat/_esm2015/observable/fromArray", + "rxjs/observable/from": "rxjs-compat/_esm2015/observable/from", + "rxjs/observable/forkJoin": "rxjs-compat/_esm2015/observable/forkJoin", + "rxjs/observable/empty": "rxjs-compat/_esm2015/observable/empty", + "rxjs/observable/dom/webSocket": "rxjs-compat/_esm2015/observable/dom/webSocket", + "rxjs/observable/dom/ajax": "rxjs-compat/_esm2015/observable/dom/ajax", + "rxjs/observable/dom/WebSocketSubject": "rxjs-compat/_esm2015/observable/dom/WebSocketSubject", + "rxjs/observable/dom/AjaxObservable": "rxjs-compat/_esm2015/observable/dom/AjaxObservable", + "rxjs/observable/defer": "rxjs-compat/_esm2015/observable/defer", + "rxjs/observable/concat": "rxjs-compat/_esm2015/observable/concat", + "rxjs/observable/combineLatest": "rxjs-compat/_esm2015/observable/combineLatest", + "rxjs/observable/bindNodeCallback": "rxjs-compat/_esm2015/observable/bindNodeCallback", + "rxjs/observable/bindCallback": "rxjs-compat/_esm2015/observable/bindCallback", + "rxjs/observable/UsingObservable": "rxjs-compat/_esm2015/observable/UsingObservable", + "rxjs/observable/TimerObservable": "rxjs-compat/_esm2015/observable/TimerObservable", + "rxjs/observable/SubscribeOnObservable": "rxjs-compat/_esm2015/observable/SubscribeOnObservable", + "rxjs/observable/ScalarObservable": "rxjs-compat/_esm2015/observable/ScalarObservable", + "rxjs/observable/RangeObservable": "rxjs-compat/_esm2015/observable/RangeObservable", + "rxjs/observable/PromiseObservable": "rxjs-compat/_esm2015/observable/PromiseObservable", + "rxjs/observable/PairsObservable": "rxjs-compat/_esm2015/observable/PairsObservable", + "rxjs/observable/NeverObservable": "rxjs-compat/_esm2015/observable/NeverObservable", + "rxjs/observable/IteratorObservable": "rxjs-compat/_esm2015/observable/IteratorObservable", + "rxjs/observable/IntervalObservable": "rxjs-compat/_esm2015/observable/IntervalObservable", + "rxjs/observable/IfObservable": "rxjs-compat/_esm2015/observable/IfObservable", + "rxjs/observable/GenerateObservable": "rxjs-compat/_esm2015/observable/GenerateObservable", + "rxjs/observable/FromObservable": "rxjs-compat/_esm2015/observable/FromObservable", + "rxjs/observable/FromEventPatternObservable": "rxjs-compat/_esm2015/observable/FromEventPatternObservable", + "rxjs/observable/FromEventObservable": "rxjs-compat/_esm2015/observable/FromEventObservable", + "rxjs/observable/ForkJoinObservable": "rxjs-compat/_esm2015/observable/ForkJoinObservable", + "rxjs/observable/ErrorObservable": "rxjs-compat/_esm2015/observable/ErrorObservable", + "rxjs/observable/EmptyObservable": "rxjs-compat/_esm2015/observable/EmptyObservable", + "rxjs/observable/DeferObservable": "rxjs-compat/_esm2015/observable/DeferObservable", + "rxjs/observable/ConnectableObservable": "rxjs-compat/_esm2015/observable/ConnectableObservable", + "rxjs/observable/BoundNodeCallbackObservable": "rxjs-compat/_esm2015/observable/BoundNodeCallbackObservable", + "rxjs/observable/BoundCallbackObservable": "rxjs-compat/_esm2015/observable/BoundCallbackObservable", + "rxjs/observable/ArrayObservable": "rxjs-compat/_esm2015/observable/ArrayObservable", + "rxjs/observable/ArrayLikeObservable": "rxjs-compat/_esm2015/observable/ArrayLikeObservable", + "rxjs/interfaces": "rxjs-compat/_esm2015/interfaces", + "rxjs/add/operator/zipAll": "rxjs-compat/_esm2015/add/operator/zipAll", + "rxjs/add/operator/zip": "rxjs-compat/_esm2015/add/operator/zip", + "rxjs/add/operator/withLatestFrom": "rxjs-compat/_esm2015/add/operator/withLatestFrom", + "rxjs/add/operator/windowWhen": "rxjs-compat/_esm2015/add/operator/windowWhen", + "rxjs/add/operator/windowToggle": "rxjs-compat/_esm2015/add/operator/windowToggle", + "rxjs/add/operator/windowTime": "rxjs-compat/_esm2015/add/operator/windowTime", + "rxjs/add/operator/windowCount": "rxjs-compat/_esm2015/add/operator/windowCount", + "rxjs/add/operator/window": "rxjs-compat/_esm2015/add/operator/window", + "rxjs/add/operator/toPromise": "rxjs-compat/_esm2015/add/operator/toPromise", + "rxjs/add/operator/toArray": "rxjs-compat/_esm2015/add/operator/toArray", + "rxjs/add/operator/timestamp": "rxjs-compat/_esm2015/add/operator/timestamp", + "rxjs/add/operator/timeoutWith": "rxjs-compat/_esm2015/add/operator/timeoutWith", + "rxjs/add/operator/timeout": "rxjs-compat/_esm2015/add/operator/timeout", + "rxjs/add/operator/timeInterval": "rxjs-compat/_esm2015/add/operator/timeInterval", + "rxjs/add/operator/throttleTime": "rxjs-compat/_esm2015/add/operator/throttleTime", + "rxjs/add/operator/throttle": "rxjs-compat/_esm2015/add/operator/throttle", + "rxjs/add/operator/takeWhile": "rxjs-compat/_esm2015/add/operator/takeWhile", + "rxjs/add/operator/takeUntil": "rxjs-compat/_esm2015/add/operator/takeUntil", + "rxjs/add/operator/takeLast": "rxjs-compat/_esm2015/add/operator/takeLast", + "rxjs/add/operator/take": "rxjs-compat/_esm2015/add/operator/take", + "rxjs/add/operator/switchMapTo": "rxjs-compat/_esm2015/add/operator/switchMapTo", + "rxjs/add/operator/switchMap": "rxjs-compat/_esm2015/add/operator/switchMap", + "rxjs/add/operator/switch": "rxjs-compat/_esm2015/add/operator/switch", + "rxjs/add/operator/subscribeOn": "rxjs-compat/_esm2015/add/operator/subscribeOn", + "rxjs/add/operator/startWith": "rxjs-compat/_esm2015/add/operator/startWith", + "rxjs/add/operator/skipWhile": "rxjs-compat/_esm2015/add/operator/skipWhile", + "rxjs/add/operator/skipUntil": "rxjs-compat/_esm2015/add/operator/skipUntil", + "rxjs/add/operator/skipLast": "rxjs-compat/_esm2015/add/operator/skipLast", + "rxjs/add/operator/skip": "rxjs-compat/_esm2015/add/operator/skip", + "rxjs/add/operator/single": "rxjs-compat/_esm2015/add/operator/single", + "rxjs/add/operator/shareReplay": "rxjs-compat/_esm2015/add/operator/shareReplay", + "rxjs/add/operator/share": "rxjs-compat/_esm2015/add/operator/share", + "rxjs/add/operator/sequenceEqual": "rxjs-compat/_esm2015/add/operator/sequenceEqual", + "rxjs/add/operator/scan": "rxjs-compat/_esm2015/add/operator/scan", + "rxjs/add/operator/sampleTime": "rxjs-compat/_esm2015/add/operator/sampleTime", + "rxjs/add/operator/sample": "rxjs-compat/_esm2015/add/operator/sample", + "rxjs/add/operator/retryWhen": "rxjs-compat/_esm2015/add/operator/retryWhen", + "rxjs/add/operator/retry": "rxjs-compat/_esm2015/add/operator/retry", + "rxjs/add/operator/repeatWhen": "rxjs-compat/_esm2015/add/operator/repeatWhen", + "rxjs/add/operator/repeat": "rxjs-compat/_esm2015/add/operator/repeat", + "rxjs/add/operator/reduce": "rxjs-compat/_esm2015/add/operator/reduce", + "rxjs/add/operator/race": "rxjs-compat/_esm2015/add/operator/race", + "rxjs/add/operator/publishReplay": "rxjs-compat/_esm2015/add/operator/publishReplay", + "rxjs/add/operator/publishLast": "rxjs-compat/_esm2015/add/operator/publishLast", + "rxjs/add/operator/publishBehavior": "rxjs-compat/_esm2015/add/operator/publishBehavior", + "rxjs/add/operator/publish": "rxjs-compat/_esm2015/add/operator/publish", + "rxjs/add/operator/pluck": "rxjs-compat/_esm2015/add/operator/pluck", + "rxjs/add/operator/partition": "rxjs-compat/_esm2015/add/operator/partition", + "rxjs/add/operator/pairwise": "rxjs-compat/_esm2015/add/operator/pairwise", + "rxjs/add/operator/onErrorResumeNext": "rxjs-compat/_esm2015/add/operator/onErrorResumeNext", + "rxjs/add/operator/observeOn": "rxjs-compat/_esm2015/add/operator/observeOn", + "rxjs/add/operator/multicast": "rxjs-compat/_esm2015/add/operator/multicast", + "rxjs/add/operator/min": "rxjs-compat/_esm2015/add/operator/min", + "rxjs/add/operator/mergeScan": "rxjs-compat/_esm2015/add/operator/mergeScan", + "rxjs/add/operator/mergeMapTo": "rxjs-compat/_esm2015/add/operator/mergeMapTo", + "rxjs/add/operator/mergeMap": "rxjs-compat/_esm2015/add/operator/mergeMap", + "rxjs/add/operator/mergeAll": "rxjs-compat/_esm2015/add/operator/mergeAll", + "rxjs/add/operator/merge": "rxjs-compat/_esm2015/add/operator/merge", + "rxjs/add/operator/max": "rxjs-compat/_esm2015/add/operator/max", + "rxjs/add/operator/materialize": "rxjs-compat/_esm2015/add/operator/materialize", + "rxjs/add/operator/mapTo": "rxjs-compat/_esm2015/add/operator/mapTo", + "rxjs/add/operator/map": "rxjs-compat/_esm2015/add/operator/map", + "rxjs/add/operator/let": "rxjs-compat/_esm2015/add/operator/let", + "rxjs/add/operator/last": "rxjs-compat/_esm2015/add/operator/last", + "rxjs/add/operator/isEmpty": "rxjs-compat/_esm2015/add/operator/isEmpty", + "rxjs/add/operator/ignoreElements": "rxjs-compat/_esm2015/add/operator/ignoreElements", + "rxjs/add/operator/groupBy": "rxjs-compat/_esm2015/add/operator/groupBy", + "rxjs/add/operator/first": "rxjs-compat/_esm2015/add/operator/first", + "rxjs/add/operator/findIndex": "rxjs-compat/_esm2015/add/operator/findIndex", + "rxjs/add/operator/find": "rxjs-compat/_esm2015/add/operator/find", + "rxjs/add/operator/finally": "rxjs-compat/_esm2015/add/operator/finally", + "rxjs/add/operator/filter": "rxjs-compat/_esm2015/add/operator/filter", + "rxjs/add/operator/expand": "rxjs-compat/_esm2015/add/operator/expand", + "rxjs/add/operator/exhaustMap": "rxjs-compat/_esm2015/add/operator/exhaustMap", + "rxjs/add/operator/exhaust": "rxjs-compat/_esm2015/add/operator/exhaust", + "rxjs/add/operator/every": "rxjs-compat/_esm2015/add/operator/every", + "rxjs/add/operator/elementAt": "rxjs-compat/_esm2015/add/operator/elementAt", + "rxjs/add/operator/do": "rxjs-compat/_esm2015/add/operator/do", + "rxjs/add/operator/distinctUntilKeyChanged": "rxjs-compat/_esm2015/add/operator/distinctUntilKeyChanged", + "rxjs/add/operator/distinctUntilChanged": "rxjs-compat/_esm2015/add/operator/distinctUntilChanged", + "rxjs/add/operator/distinct": "rxjs-compat/_esm2015/add/operator/distinct", + "rxjs/add/operator/dematerialize": "rxjs-compat/_esm2015/add/operator/dematerialize", + "rxjs/add/operator/delayWhen": "rxjs-compat/_esm2015/add/operator/delayWhen", + "rxjs/add/operator/delay": "rxjs-compat/_esm2015/add/operator/delay", + "rxjs/add/operator/defaultIfEmpty": "rxjs-compat/_esm2015/add/operator/defaultIfEmpty", + "rxjs/add/operator/debounceTime": "rxjs-compat/_esm2015/add/operator/debounceTime", + "rxjs/add/operator/debounce": "rxjs-compat/_esm2015/add/operator/debounce", + "rxjs/add/operator/count": "rxjs-compat/_esm2015/add/operator/count", + "rxjs/add/operator/concatMapTo": "rxjs-compat/_esm2015/add/operator/concatMapTo", + "rxjs/add/operator/concatMap": "rxjs-compat/_esm2015/add/operator/concatMap", + "rxjs/add/operator/concatAll": "rxjs-compat/_esm2015/add/operator/concatAll", + "rxjs/add/operator/concat": "rxjs-compat/_esm2015/add/operator/concat", + "rxjs/add/operator/combineLatest": "rxjs-compat/_esm2015/add/operator/combineLatest", + "rxjs/add/operator/combineAll": "rxjs-compat/_esm2015/add/operator/combineAll", + "rxjs/add/operator/catch": "rxjs-compat/_esm2015/add/operator/catch", + "rxjs/add/operator/bufferWhen": "rxjs-compat/_esm2015/add/operator/bufferWhen", + "rxjs/add/operator/bufferToggle": "rxjs-compat/_esm2015/add/operator/bufferToggle", + "rxjs/add/operator/bufferTime": "rxjs-compat/_esm2015/add/operator/bufferTime", + "rxjs/add/operator/bufferCount": "rxjs-compat/_esm2015/add/operator/bufferCount", + "rxjs/add/operator/buffer": "rxjs-compat/_esm2015/add/operator/buffer", + "rxjs/add/operator/auditTime": "rxjs-compat/_esm2015/add/operator/auditTime", + "rxjs/add/operator/audit": "rxjs-compat/_esm2015/add/operator/audit", + "rxjs/add/observable/zip": "rxjs-compat/_esm2015/add/observable/zip", + "rxjs/add/observable/using": "rxjs-compat/_esm2015/add/observable/using", + "rxjs/add/observable/timer": "rxjs-compat/_esm2015/add/observable/timer", + "rxjs/add/observable/throw": "rxjs-compat/_esm2015/add/observable/throw", + "rxjs/add/observable/range": "rxjs-compat/_esm2015/add/observable/range", + "rxjs/add/observable/race": "rxjs-compat/_esm2015/add/observable/race", + "rxjs/add/observable/pairs": "rxjs-compat/_esm2015/add/observable/pairs", + "rxjs/add/observable/onErrorResumeNext": "rxjs-compat/_esm2015/add/observable/onErrorResumeNext", + "rxjs/add/observable/of": "rxjs-compat/_esm2015/add/observable/of", + "rxjs/add/observable/never": "rxjs-compat/_esm2015/add/observable/never", + "rxjs/add/observable/merge": "rxjs-compat/_esm2015/add/observable/merge", + "rxjs/add/observable/interval": "rxjs-compat/_esm2015/add/observable/interval", + "rxjs/add/observable/if": "rxjs-compat/_esm2015/add/observable/if", + "rxjs/add/observable/generate": "rxjs-compat/_esm2015/add/observable/generate", + "rxjs/add/observable/fromPromise": "rxjs-compat/_esm2015/add/observable/fromPromise", + "rxjs/add/observable/fromEventPattern": "rxjs-compat/_esm2015/add/observable/fromEventPattern", + "rxjs/add/observable/fromEvent": "rxjs-compat/_esm2015/add/observable/fromEvent", + "rxjs/add/observable/from": "rxjs-compat/_esm2015/add/observable/from", + "rxjs/add/observable/forkJoin": "rxjs-compat/_esm2015/add/observable/forkJoin", + "rxjs/add/observable/empty": "rxjs-compat/_esm2015/add/observable/empty", + "rxjs/add/observable/dom/webSocket": "rxjs-compat/_esm2015/add/observable/dom/webSocket", + "rxjs/add/observable/dom/ajax": "rxjs-compat/_esm2015/add/observable/dom/ajax", + "rxjs/add/observable/defer": "rxjs-compat/_esm2015/add/observable/defer", + "rxjs/add/observable/concat": "rxjs-compat/_esm2015/add/observable/concat", + "rxjs/add/observable/combineLatest": "rxjs-compat/_esm2015/add/observable/combineLatest", + "rxjs/add/observable/bindNodeCallback": "rxjs-compat/_esm2015/add/observable/bindNodeCallback", + "rxjs/add/observable/bindCallback": "rxjs-compat/_esm2015/add/observable/bindCallback", + "rxjs/Subscription": "rxjs-compat/_esm2015/Subscription", + "rxjs/Subscriber": "rxjs-compat/_esm2015/Subscriber", + "rxjs/SubjectSubscription": "rxjs-compat/_esm2015/SubjectSubscription", + "rxjs/Subject": "rxjs-compat/_esm2015/Subject", + "rxjs/Scheduler": "rxjs-compat/_esm2015/Scheduler", + "rxjs/Rx": "rxjs-compat/_esm2015/Rx", + "rxjs/ReplaySubject": "rxjs-compat/_esm2015/ReplaySubject", + "rxjs/OuterSubscriber": "rxjs-compat/_esm2015/OuterSubscriber", + "rxjs/Operator": "rxjs-compat/_esm2015/Operator", + "rxjs/Observer": "rxjs-compat/_esm2015/Observer", + "rxjs/Observable": "rxjs-compat/_esm2015/Observable", + "rxjs/Notification": "rxjs-compat/_esm2015/Notification", + "rxjs/InnerSubscriber": "rxjs-compat/_esm2015/InnerSubscriber", + "rxjs/BehaviorSubject": "rxjs-compat/_esm2015/BehaviorSubject", + "rxjs/AsyncSubject": "rxjs-compat/_esm2015/AsyncSubject" +}; +} diff --git a/node_modules/rxjs/_esm2015/testing/index.js b/node_modules/rxjs/_esm2015/testing/index.js new file mode 100644 index 00000000..f0f7b53c --- /dev/null +++ b/node_modules/rxjs/_esm2015/testing/index.js @@ -0,0 +1,2 @@ +export { TestScheduler } from '../internal/testing/TestScheduler'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/testing/index.js.map b/node_modules/rxjs/_esm2015/testing/index.js.map new file mode 100644 index 00000000..68824056 --- /dev/null +++ b/node_modules/rxjs/_esm2015/testing/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"} diff --git a/node_modules/rxjs/_esm2015/webSocket/index.js b/node_modules/rxjs/_esm2015/webSocket/index.js new file mode 100644 index 00000000..a4bb4ea0 --- /dev/null +++ b/node_modules/rxjs/_esm2015/webSocket/index.js @@ -0,0 +1,3 @@ +export { webSocket as webSocket } from '../internal/observable/dom/webSocket'; +export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/_esm2015/webSocket/index.js.map b/node_modules/rxjs/_esm2015/webSocket/index.js.map new file mode 100644 index 00000000..599e9a70 --- /dev/null +++ b/node_modules/rxjs/_esm2015/webSocket/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/webSocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAA0B,MAAM,6CAA6C,CAAC"} diff --git a/node_modules/rxjs/_esm5/LICENSE.txt b/node_modules/rxjs/_esm5/LICENSE.txt new file mode 100644 index 00000000..031ce381 --- /dev/null +++ b/node_modules/rxjs/_esm5/LICENSE.txt @@ -0,0 +1,202 @@ + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + 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. + diff --git a/node_modules/rxjs/_esm5/README.md b/node_modules/rxjs/_esm5/README.md new file mode 100644 index 00000000..f92dafde --- /dev/null +++ b/node_modules/rxjs/_esm5/README.md @@ -0,0 +1,147 @@ +# RxJS Logo RxJS: Reactive Extensions For JavaScript + +[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x) +[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs) +[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +# RxJS 6 Stable + +### MIGRATION AND RELEASE INFORMATION: + +Find out how to update to v6, **automatically update your TypeScript code**, and more! + +- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md) + +### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x) + +Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. + +[Apache 2.0 License](LICENSE.txt) + +- [Code of Conduct](CODE_OF_CONDUCT.md) +- [Contribution Guidelines](CONTRIBUTING.md) +- [Maintainer Guidelines](doc_app/content/maintainer-guidelines.md) +- [API Documentation](https://rxjs.dev/) + +## Versions In This Repository + +- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now +- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs` + +## Important + +By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity. + +## Installation and Usage + +### ES6 via npm + +```sh +npm install rxjs +``` + +It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`. + +```ts +import { range } from "rxjs"; +import { map, filter } from "rxjs/operators"; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information. + +### CommonJS via npm + +To install this library for CommonJS (CJS) usage, use the following command: + +```sh +npm install rxjs +``` + +(Note: destructuring available in Node 8+) + +```js +const { range } = require('rxjs'); +const { map, filter } = require('rxjs/operators'); + +range(1, 200).pipe( + filter(x => x % 2 === 1), + map(x => x + x) +).subscribe(x => console.log(x)); +``` + +### CDN + +For CDN, you can use [unpkg](https://unpkg.com/): + +https://unpkg.com/rxjs/bundles/rxjs.umd.min.js + +The global namespace for rxjs is `rxjs`: + +```js +const { range } = rxjs; +const { map, filter } = rxjs.operators; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +## Goals + +- Smaller overall bundles sizes +- Provide better performance than preceding versions of RxJS +- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable +- Provide more modular file structure in a variety of formats +- Provide more debuggable call stacks than preceding versions of RxJS + +## Building/Testing + +- `npm run build_all` - builds everything +- `npm test` - runs tests +- `npm run test_no_cache` - run test with `ts-node` set to false + +## Performance Tests + +Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`. + +Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator. + +## Adding documentation + +We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app). + +## Generating PNG marble diagrams + +The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`. + +For Mac OS X with [Homebrew](http://brew.sh/): + +- `brew install imagemagick` +- `brew install graphicsmagick` +- `brew install ghostscript` +- You may need to install the Ghostscript fonts manually: + - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts) + - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript` + +For Debian Linux: + +- `sudo add-apt-repository ppa:dhor/myway` +- `apt-get install imagemagick` +- `apt-get install graphicsmagick` +- `apt-get install ghostscript` + +For Windows and other Operating Systems, check the download instructions here: + +- http://imagemagick.org +- http://www.graphicsmagick.org +- http://www.ghostscript.com/ diff --git a/node_modules/rxjs/_esm5/ajax/index.js b/node_modules/rxjs/_esm5/ajax/index.js new file mode 100644 index 00000000..0f1bf03a --- /dev/null +++ b/node_modules/rxjs/_esm5/ajax/index.js @@ -0,0 +1,4 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { ajax } from '../internal/observable/dom/ajax'; +export { AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/ajax/index.js.map b/node_modules/rxjs/_esm5/ajax/index.js.map new file mode 100644 index 00000000..038e2b17 --- /dev/null +++ b/node_modules/rxjs/_esm5/ajax/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/ajax/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAe,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC"} diff --git a/node_modules/rxjs/_esm5/fetch/index.js b/node_modules/rxjs/_esm5/fetch/index.js new file mode 100644 index 00000000..d6c825b0 --- /dev/null +++ b/node_modules/rxjs/_esm5/fetch/index.js @@ -0,0 +1,3 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { fromFetch } from '../internal/observable/dom/fetch'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/fetch/index.js.map b/node_modules/rxjs/_esm5/fetch/index.js.map new file mode 100644 index 00000000..8bf783b3 --- /dev/null +++ b/node_modules/rxjs/_esm5/fetch/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC"} diff --git a/node_modules/rxjs/_esm5/index.js b/node_modules/rxjs/_esm5/index.js new file mode 100644 index 00000000..abf7abf7 --- /dev/null +++ b/node_modules/rxjs/_esm5/index.js @@ -0,0 +1,57 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { Observable } from './internal/Observable'; +export { ConnectableObservable } from './internal/observable/ConnectableObservable'; +export { GroupedObservable } from './internal/operators/groupBy'; +export { observable } from './internal/symbol/observable'; +export { Subject } from './internal/Subject'; +export { BehaviorSubject } from './internal/BehaviorSubject'; +export { ReplaySubject } from './internal/ReplaySubject'; +export { AsyncSubject } from './internal/AsyncSubject'; +export { asap, asapScheduler } from './internal/scheduler/asap'; +export { async, asyncScheduler } from './internal/scheduler/async'; +export { queue, queueScheduler } from './internal/scheduler/queue'; +export { animationFrame, animationFrameScheduler } from './internal/scheduler/animationFrame'; +export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler'; +export { Scheduler } from './internal/Scheduler'; +export { Subscription } from './internal/Subscription'; +export { Subscriber } from './internal/Subscriber'; +export { Notification, NotificationKind } from './internal/Notification'; +export { pipe } from './internal/util/pipe'; +export { noop } from './internal/util/noop'; +export { identity } from './internal/util/identity'; +export { isObservable } from './internal/util/isObservable'; +export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from './internal/util/EmptyError'; +export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError'; +export { UnsubscriptionError } from './internal/util/UnsubscriptionError'; +export { TimeoutError } from './internal/util/TimeoutError'; +export { bindCallback } from './internal/observable/bindCallback'; +export { bindNodeCallback } from './internal/observable/bindNodeCallback'; +export { combineLatest } from './internal/observable/combineLatest'; +export { concat } from './internal/observable/concat'; +export { defer } from './internal/observable/defer'; +export { empty } from './internal/observable/empty'; +export { forkJoin } from './internal/observable/forkJoin'; +export { from } from './internal/observable/from'; +export { fromEvent } from './internal/observable/fromEvent'; +export { fromEventPattern } from './internal/observable/fromEventPattern'; +export { generate } from './internal/observable/generate'; +export { iif } from './internal/observable/iif'; +export { interval } from './internal/observable/interval'; +export { merge } from './internal/observable/merge'; +export { never } from './internal/observable/never'; +export { of } from './internal/observable/of'; +export { onErrorResumeNext } from './internal/observable/onErrorResumeNext'; +export { pairs } from './internal/observable/pairs'; +export { partition } from './internal/observable/partition'; +export { race } from './internal/observable/race'; +export { range } from './internal/observable/range'; +export { throwError } from './internal/observable/throwError'; +export { timer } from './internal/observable/timer'; +export { using } from './internal/observable/using'; +export { zip } from './internal/observable/zip'; +export { scheduled } from './internal/scheduled/scheduled'; +export { EMPTY } from './internal/observable/empty'; +export { NEVER } from './internal/observable/never'; +export { config } from './internal/config'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/index.js.map b/node_modules/rxjs/_esm5/index.js.map new file mode 100644 index 00000000..12977895 --- /dev/null +++ b/node_modules/rxjs/_esm5/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal-compatibility/index.js b/node_modules/rxjs/_esm5/internal-compatibility/index.js new file mode 100644 index 00000000..2164bc8e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal-compatibility/index.js @@ -0,0 +1,57 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { config } from '../internal/config'; +export { InnerSubscriber } from '../internal/InnerSubscriber'; +export { OuterSubscriber } from '../internal/OuterSubscriber'; +export { Scheduler } from '../internal/Scheduler'; +export { AnonymousSubject } from '../internal/Subject'; +export { SubjectSubscription } from '../internal/SubjectSubscription'; +export { Subscriber } from '../internal/Subscriber'; +export { fromPromise } from '../internal/observable/fromPromise'; +export { fromIterable } from '../internal/observable/fromIterable'; +export { ajax } from '../internal/observable/dom/ajax'; +export { webSocket } from '../internal/observable/dom/webSocket'; +export { ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; +export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject'; +export { CombineLatestOperator } from '../internal/observable/combineLatest'; +export { dispatch } from '../internal/observable/range'; +export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable'; +export { Timestamp } from '../internal/operators/timestamp'; +export { TimeInterval } from '../internal/operators/timeInterval'; +export { GroupedObservable } from '../internal/operators/groupBy'; +export { defaultThrottleConfig } from '../internal/operators/throttle'; +export { rxSubscriber } from '../internal/symbol/rxSubscriber'; +export { iterator } from '../internal/symbol/iterator'; +export { observable } from '../internal/symbol/observable'; +export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from '../internal/util/EmptyError'; +export { Immediate } from '../internal/util/Immediate'; +export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError'; +export { TimeoutError } from '../internal/util/TimeoutError'; +export { UnsubscriptionError } from '../internal/util/UnsubscriptionError'; +export { applyMixins } from '../internal/util/applyMixins'; +export { errorObject } from '../internal/util/errorObject'; +export { hostReportError } from '../internal/util/hostReportError'; +export { identity } from '../internal/util/identity'; +export { isArray } from '../internal/util/isArray'; +export { isArrayLike } from '../internal/util/isArrayLike'; +export { isDate } from '../internal/util/isDate'; +export { isFunction } from '../internal/util/isFunction'; +export { isIterable } from '../internal/util/isIterable'; +export { isNumeric } from '../internal/util/isNumeric'; +export { isObject } from '../internal/util/isObject'; +export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable'; +export { isPromise } from '../internal/util/isPromise'; +export { isScheduler } from '../internal/util/isScheduler'; +export { noop } from '../internal/util/noop'; +export { not } from '../internal/util/not'; +export { pipe } from '../internal/util/pipe'; +export { root } from '../internal/util/root'; +export { subscribeTo } from '../internal/util/subscribeTo'; +export { subscribeToArray } from '../internal/util/subscribeToArray'; +export { subscribeToIterable } from '../internal/util/subscribeToIterable'; +export { subscribeToObservable } from '../internal/util/subscribeToObservable'; +export { subscribeToPromise } from '../internal/util/subscribeToPromise'; +export { subscribeToResult } from '../internal/util/subscribeToResult'; +export { toSubscriber } from '../internal/util/toSubscriber'; +export { tryCatch } from '../internal/util/tryCatch'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/internal-compatibility/index.js.map b/node_modules/rxjs/_esm5/internal-compatibility/index.js.map new file mode 100644 index 00000000..9de2eb94 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal-compatibility/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/internal-compatibility/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/AsyncSubject.js b/node_modules/rxjs/_esm5/internal/AsyncSubject.js new file mode 100644 index 00000000..8c92fbb4 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/AsyncSubject.js @@ -0,0 +1,47 @@ +/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from './Subject'; +import { Subscription } from './Subscription'; +var AsyncSubject = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AsyncSubject, _super); + function AsyncSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.value = null; + _this.hasNext = false; + _this.hasCompleted = false; + return _this; + } + AsyncSubject.prototype._subscribe = function (subscriber) { + if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } + else if (this.hasCompleted && this.hasNext) { + subscriber.next(this.value); + subscriber.complete(); + return Subscription.EMPTY; + } + return _super.prototype._subscribe.call(this, subscriber); + }; + AsyncSubject.prototype.next = function (value) { + if (!this.hasCompleted) { + this.value = value; + this.hasNext = true; + } + }; + AsyncSubject.prototype.error = function (error) { + if (!this.hasCompleted) { + _super.prototype.error.call(this, error); + } + }; + AsyncSubject.prototype.complete = function () { + this.hasCompleted = true; + if (this.hasNext) { + _super.prototype.next.call(this, this.value); + } + _super.prototype.complete.call(this); + }; + return AsyncSubject; +}(Subject)); +export { AsyncSubject }; +//# sourceMappingURL=AsyncSubject.js.map diff --git a/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map b/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map new file mode 100644 index 00000000..cdf243af --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/AsyncSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncSubject.js","sources":["../../src/internal/AsyncSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C;IAAqC,wCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,OAAO,GAsC3C"} diff --git a/node_modules/rxjs/_esm5/internal/BehaviorSubject.js b/node_modules/rxjs/_esm5/internal/BehaviorSubject.js new file mode 100644 index 00000000..c7ddbd64 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/BehaviorSubject.js @@ -0,0 +1,43 @@ +/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from './Subject'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +var BehaviorSubject = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(BehaviorSubject, _super); + function BehaviorSubject(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject.prototype, "value", { + get: function () { + return this.getValue(); + }, + enumerable: true, + configurable: true + }); + BehaviorSubject.prototype._subscribe = function (subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + if (subscription && !subscription.closed) { + subscriber.next(this._value); + } + return subscription; + }; + BehaviorSubject.prototype.getValue = function () { + if (this.hasError) { + throw this.thrownError; + } + else if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else { + return this._value; + } + }; + BehaviorSubject.prototype.next = function (value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject; +}(Subject)); +export { BehaviorSubject }; +//# sourceMappingURL=BehaviorSubject.js.map diff --git a/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map b/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map new file mode 100644 index 00000000..cc33132b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/BehaviorSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BehaviorSubject.js","sources":["../../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAQzE;IAAwC,2CAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,uBAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,OAAO,GAgC9C"} diff --git a/node_modules/rxjs/_esm5/internal/InnerSubscriber.js b/node_modules/rxjs/_esm5/internal/InnerSubscriber.js new file mode 100644 index 00000000..d92fa728 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/InnerSubscriber.js @@ -0,0 +1,28 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from './Subscriber'; +var InnerSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(InnerSubscriber, _super); + function InnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + _this.index = 0; + return _this; + } + InnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); + }; + InnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error, this); + this.unsubscribe(); + }; + InnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); + }; + return InnerSubscriber; +}(Subscriber)); +export { InnerSubscriber }; +//# sourceMappingURL=InnerSubscriber.js.map diff --git a/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map b/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map new file mode 100644 index 00000000..4522441a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/InnerSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InnerSubscriber.js","sources":["../../src/internal/InnerSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;IAA2C,2CAAa;IAGtD,yBAAoB,MAA6B,EAAS,UAAa,EAAS,UAAkB;QAAlG,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAuB;QAAS,gBAAU,GAAV,UAAU,CAAG;QAAS,gBAAU,GAAV,UAAU,CAAQ;QAF1F,WAAK,GAAG,CAAC,CAAC;;IAIlB,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAES,gCAAM,GAAhB,UAAiB,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,sBAAC;AAAD,CAAC,AApBD,CAA2C,UAAU,GAoBpD"} diff --git a/node_modules/rxjs/_esm5/internal/Notification.js b/node_modules/rxjs/_esm5/internal/Notification.js new file mode 100644 index 00000000..3f7dcd7e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Notification.js @@ -0,0 +1,76 @@ +/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */ +import { empty } from './observable/empty'; +import { of } from './observable/of'; +import { throwError } from './observable/throwError'; +export var NotificationKind; +/*@__PURE__*/ (function (NotificationKind) { + NotificationKind["NEXT"] = "N"; + NotificationKind["ERROR"] = "E"; + NotificationKind["COMPLETE"] = "C"; +})(NotificationKind || (NotificationKind = {})); +var Notification = /*@__PURE__*/ (function () { + function Notification(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + Notification.prototype.observe = function (observer) { + switch (this.kind) { + case 'N': + return observer.next && observer.next(this.value); + case 'E': + return observer.error && observer.error(this.error); + case 'C': + return observer.complete && observer.complete(); + } + }; + Notification.prototype.do = function (next, error, complete) { + var kind = this.kind; + switch (kind) { + case 'N': + return next && next(this.value); + case 'E': + return error && error(this.error); + case 'C': + return complete && complete(); + } + }; + Notification.prototype.accept = function (nextOrObserver, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + }; + Notification.prototype.toObservable = function () { + var kind = this.kind; + switch (kind) { + case 'N': + return of(this.value); + case 'E': + return throwError(this.error); + case 'C': + return empty(); + } + throw new Error('unexpected notification kind value'); + }; + Notification.createNext = function (value) { + if (typeof value !== 'undefined') { + return new Notification('N', value); + } + return Notification.undefinedValueNotification; + }; + Notification.createError = function (err) { + return new Notification('E', undefined, err); + }; + Notification.createComplete = function () { + return Notification.completeNotification; + }; + Notification.completeNotification = new Notification('C'); + Notification.undefinedValueNotification = new Notification('N', undefined); + return Notification; +}()); +export { Notification }; +//# sourceMappingURL=Notification.js.map diff --git a/node_modules/rxjs/_esm5/internal/Notification.js.map b/node_modules/rxjs/_esm5/internal/Notification.js.map new file mode 100644 index 00000000..9c152551 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Notification.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Notification.js","sources":["../../src/internal/Notification.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/Observable.js b/node_modules/rxjs/_esm5/internal/Observable.js new file mode 100644 index 00000000..8f2ef306 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Observable.js @@ -0,0 +1,116 @@ +/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ +import { canReportError } from './util/canReportError'; +import { toSubscriber } from './util/toSubscriber'; +import { observable as Symbol_observable } from './symbol/observable'; +import { pipeFromArray } from './util/pipe'; +import { config } from './config'; +var Observable = /*@__PURE__*/ (function () { + function Observable(subscribe) { + this._isScalar = false; + if (subscribe) { + this._subscribe = subscribe; + } + } + Observable.prototype.lift = function (operator) { + var observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + }; + Observable.prototype.subscribe = function (observerOrNext, error, complete) { + var operator = this.operator; + var sink = toSubscriber(observerOrNext, error, complete); + if (operator) { + sink.add(operator.call(sink, this.source)); + } + else { + sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink)); + } + if (config.useDeprecatedSynchronousErrorHandling) { + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } + } + } + return sink; + }; + Observable.prototype._trySubscribe = function (sink) { + try { + return this._subscribe(sink); + } + catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + } + if (canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } + } + }; + Observable.prototype.forEach = function (next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var subscription; + subscription = _this.subscribe(function (value) { + try { + next(value); + } + catch (err) { + reject(err); + if (subscription) { + subscription.unsubscribe(); + } + } + }, reject, resolve); + }); + }; + Observable.prototype._subscribe = function (subscriber) { + var source = this.source; + return source && source.subscribe(subscriber); + }; + Observable.prototype[Symbol_observable] = function () { + return this; + }; + Observable.prototype.pipe = function () { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + if (operations.length === 0) { + return this; + } + return pipeFromArray(operations)(this); + }; + Observable.prototype.toPromise = function (promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var value; + _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); + }); + }; + Observable.create = function (subscribe) { + return new Observable(subscribe); + }; + return Observable; +}()); +export { Observable }; +function getPromiseCtor(promiseCtor) { + if (!promiseCtor) { + promiseCtor = config.Promise || Promise; + } + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + return promiseCtor; +} +//# sourceMappingURL=Observable.js.map diff --git a/node_modules/rxjs/_esm5/internal/Observable.js.map b/node_modules/rxjs/_esm5/internal/Observable.js.map new file mode 100644 index 00000000..1cd9695e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observable.js","sources":["../../src/internal/Observable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/Observer.js b/node_modules/rxjs/_esm5/internal/Observer.js new file mode 100644 index 00000000..b066ea29 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Observer.js @@ -0,0 +1,17 @@ +/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */ +import { config } from './config'; +import { hostReportError } from './util/hostReportError'; +export var empty = { + closed: true, + next: function (value) { }, + error: function (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError(err); + } + }, + complete: function () { } +}; +//# sourceMappingURL=Observer.js.map diff --git a/node_modules/rxjs/_esm5/internal/Observer.js.map b/node_modules/rxjs/_esm5/internal/Observer.js.map new file mode 100644 index 00000000..1db76331 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Observer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observer.js","sources":["../../src/internal/Observer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,IAAM,KAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,EAAJ,UAAK,KAAU,IAAoB,CAAC;IACpC,KAAK,EAAL,UAAM,GAAQ;QACZ,IAAI,MAAM,CAAC,qCAAqC,EAAE;YAChD,MAAM,GAAG,CAAC;SACX;aAAM;YACL,eAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IACD,QAAQ,EAAR,cAA4B,CAAC;CAC9B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/Operator.js b/node_modules/rxjs/_esm5/internal/Operator.js new file mode 100644 index 00000000..09d2cfc0 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Operator.js @@ -0,0 +1 @@ +//# sourceMappingURL=Operator.js.map diff --git a/node_modules/rxjs/_esm5/internal/Operator.js.map b/node_modules/rxjs/_esm5/internal/Operator.js.map new file mode 100644 index 00000000..f45f5ad9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Operator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Operator.js","sources":["../../src/internal/Operator.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/_esm5/internal/OuterSubscriber.js b/node_modules/rxjs/_esm5/internal/OuterSubscriber.js new file mode 100644 index 00000000..de6dbfe6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/OuterSubscriber.js @@ -0,0 +1,21 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from './Subscriber'; +var OuterSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(OuterSubscriber, _super); + function OuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + OuterSubscriber.prototype.notifyError = function (error, innerSub) { + this.destination.error(error); + }; + OuterSubscriber.prototype.notifyComplete = function (innerSub) { + this.destination.complete(); + }; + return OuterSubscriber; +}(Subscriber)); +export { OuterSubscriber }; +//# sourceMappingURL=OuterSubscriber.js.map diff --git a/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map b/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map new file mode 100644 index 00000000..df6aee26 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/OuterSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OuterSubscriber.js","sources":["../../src/internal/OuterSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C;IAA2C,2CAAa;IAAxD;;IAcA,CAAC;IAbC,oCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,qCAAW,GAAX,UAAY,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,wCAAc,GAAd,UAAe,QAA+B;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AAdD,CAA2C,UAAU,GAcpD"} diff --git a/node_modules/rxjs/_esm5/internal/ReplaySubject.js b/node_modules/rxjs/_esm5/internal/ReplaySubject.js new file mode 100644 index 00000000..6fa3479b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/ReplaySubject.js @@ -0,0 +1,121 @@ +/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from './Subject'; +import { queue } from './scheduler/queue'; +import { Subscription } from './Subscription'; +import { ObserveOnSubscriber } from './operators/observeOn'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +import { SubjectSubscription } from './SubjectSubscription'; +var ReplaySubject = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ReplaySubject, _super); + function ReplaySubject(bufferSize, windowTime, scheduler) { + if (bufferSize === void 0) { + bufferSize = Number.POSITIVE_INFINITY; + } + if (windowTime === void 0) { + windowTime = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this) || this; + _this.scheduler = scheduler; + _this._events = []; + _this._infiniteTimeWindow = false; + _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + _this._windowTime = windowTime < 1 ? 1 : windowTime; + if (windowTime === Number.POSITIVE_INFINITY) { + _this._infiniteTimeWindow = true; + _this.next = _this.nextInfiniteTimeWindow; + } + else { + _this.next = _this.nextTimeWindow; + } + return _this; + } + ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { + if (!this.isStopped) { + var _events = this._events; + _events.push(value); + if (_events.length > this._bufferSize) { + _events.shift(); + } + } + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype.nextTimeWindow = function (value) { + if (!this.isStopped) { + this._events.push(new ReplayEvent(this._getNow(), value)); + this._trimBufferThenGetEvents(); + } + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype._subscribe = function (subscriber) { + var _infiniteTimeWindow = this._infiniteTimeWindow; + var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); + var scheduler = this.scheduler; + var len = _events.length; + var subscription; + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else if (this.isStopped || this.hasError) { + subscription = Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + subscription = new SubjectSubscription(this, subscriber); + } + if (scheduler) { + subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler)); + } + if (_infiniteTimeWindow) { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i]); + } + } + else { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i].value); + } + } + if (this.hasError) { + subscriber.error(this.thrownError); + } + else if (this.isStopped) { + subscriber.complete(); + } + return subscription; + }; + ReplaySubject.prototype._getNow = function () { + return (this.scheduler || queue).now(); + }; + ReplaySubject.prototype._trimBufferThenGetEvents = function () { + var now = this._getNow(); + var _bufferSize = this._bufferSize; + var _windowTime = this._windowTime; + var _events = this._events; + var eventsCount = _events.length; + var spliceCount = 0; + while (spliceCount < eventsCount) { + if ((now - _events[spliceCount].time) < _windowTime) { + break; + } + spliceCount++; + } + if (eventsCount > _bufferSize) { + spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); + } + if (spliceCount > 0) { + _events.splice(0, spliceCount); + } + return _events; + }; + return ReplaySubject; +}(Subject)); +export { ReplaySubject }; +var ReplayEvent = /*@__PURE__*/ (function () { + function ReplayEvent(time, value) { + this.time = time; + this.value = value; + } + return ReplayEvent; +}()); +//# sourceMappingURL=ReplaySubject.js.map diff --git a/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map b/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map new file mode 100644 index 00000000..81a1b02d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/ReplaySubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ReplaySubject.js","sources":["../../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/Rx.js b/node_modules/rxjs/_esm5/internal/Rx.js new file mode 100644 index 00000000..de82a397 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Rx.js @@ -0,0 +1,173 @@ +/** PURE_IMPORTS_START _scheduler_asap,_scheduler_async,_scheduler_queue,_scheduler_animationFrame,_symbol_rxSubscriber,_symbol_iterator,_symbol_observable,_operators_index PURE_IMPORTS_END */ +export { Subject, AnonymousSubject } from './Subject'; +export { Observable } from './Observable'; +export { config } from './config'; +import 'rxjs-compat/add/observable/bindCallback'; +import 'rxjs-compat/add/observable/bindNodeCallback'; +import 'rxjs-compat/add/observable/combineLatest'; +import 'rxjs-compat/add/observable/concat'; +import 'rxjs-compat/add/observable/defer'; +import 'rxjs-compat/add/observable/empty'; +import 'rxjs-compat/add/observable/forkJoin'; +import 'rxjs-compat/add/observable/from'; +import 'rxjs-compat/add/observable/fromEvent'; +import 'rxjs-compat/add/observable/fromEventPattern'; +import 'rxjs-compat/add/observable/fromPromise'; +import 'rxjs-compat/add/observable/generate'; +import 'rxjs-compat/add/observable/if'; +import 'rxjs-compat/add/observable/interval'; +import 'rxjs-compat/add/observable/merge'; +import 'rxjs-compat/add/observable/race'; +import 'rxjs-compat/add/observable/never'; +import 'rxjs-compat/add/observable/of'; +import 'rxjs-compat/add/observable/onErrorResumeNext'; +import 'rxjs-compat/add/observable/pairs'; +import 'rxjs-compat/add/observable/range'; +import 'rxjs-compat/add/observable/using'; +import 'rxjs-compat/add/observable/throw'; +import 'rxjs-compat/add/observable/timer'; +import 'rxjs-compat/add/observable/zip'; +import 'rxjs-compat/add/observable/dom/ajax'; +import 'rxjs-compat/add/observable/dom/webSocket'; +import 'rxjs-compat/add/operator/buffer'; +import 'rxjs-compat/add/operator/bufferCount'; +import 'rxjs-compat/add/operator/bufferTime'; +import 'rxjs-compat/add/operator/bufferToggle'; +import 'rxjs-compat/add/operator/bufferWhen'; +import 'rxjs-compat/add/operator/catch'; +import 'rxjs-compat/add/operator/combineAll'; +import 'rxjs-compat/add/operator/combineLatest'; +import 'rxjs-compat/add/operator/concat'; +import 'rxjs-compat/add/operator/concatAll'; +import 'rxjs-compat/add/operator/concatMap'; +import 'rxjs-compat/add/operator/concatMapTo'; +import 'rxjs-compat/add/operator/count'; +import 'rxjs-compat/add/operator/dematerialize'; +import 'rxjs-compat/add/operator/debounce'; +import 'rxjs-compat/add/operator/debounceTime'; +import 'rxjs-compat/add/operator/defaultIfEmpty'; +import 'rxjs-compat/add/operator/delay'; +import 'rxjs-compat/add/operator/delayWhen'; +import 'rxjs-compat/add/operator/distinct'; +import 'rxjs-compat/add/operator/distinctUntilChanged'; +import 'rxjs-compat/add/operator/distinctUntilKeyChanged'; +import 'rxjs-compat/add/operator/do'; +import 'rxjs-compat/add/operator/exhaust'; +import 'rxjs-compat/add/operator/exhaustMap'; +import 'rxjs-compat/add/operator/expand'; +import 'rxjs-compat/add/operator/elementAt'; +import 'rxjs-compat/add/operator/filter'; +import 'rxjs-compat/add/operator/finally'; +import 'rxjs-compat/add/operator/find'; +import 'rxjs-compat/add/operator/findIndex'; +import 'rxjs-compat/add/operator/first'; +import 'rxjs-compat/add/operator/groupBy'; +import 'rxjs-compat/add/operator/ignoreElements'; +import 'rxjs-compat/add/operator/isEmpty'; +import 'rxjs-compat/add/operator/audit'; +import 'rxjs-compat/add/operator/auditTime'; +import 'rxjs-compat/add/operator/last'; +import 'rxjs-compat/add/operator/let'; +import 'rxjs-compat/add/operator/every'; +import 'rxjs-compat/add/operator/map'; +import 'rxjs-compat/add/operator/mapTo'; +import 'rxjs-compat/add/operator/materialize'; +import 'rxjs-compat/add/operator/max'; +import 'rxjs-compat/add/operator/merge'; +import 'rxjs-compat/add/operator/mergeAll'; +import 'rxjs-compat/add/operator/mergeMap'; +import 'rxjs-compat/add/operator/mergeMapTo'; +import 'rxjs-compat/add/operator/mergeScan'; +import 'rxjs-compat/add/operator/min'; +import 'rxjs-compat/add/operator/multicast'; +import 'rxjs-compat/add/operator/observeOn'; +import 'rxjs-compat/add/operator/onErrorResumeNext'; +import 'rxjs-compat/add/operator/pairwise'; +import 'rxjs-compat/add/operator/partition'; +import 'rxjs-compat/add/operator/pluck'; +import 'rxjs-compat/add/operator/publish'; +import 'rxjs-compat/add/operator/publishBehavior'; +import 'rxjs-compat/add/operator/publishReplay'; +import 'rxjs-compat/add/operator/publishLast'; +import 'rxjs-compat/add/operator/race'; +import 'rxjs-compat/add/operator/reduce'; +import 'rxjs-compat/add/operator/repeat'; +import 'rxjs-compat/add/operator/repeatWhen'; +import 'rxjs-compat/add/operator/retry'; +import 'rxjs-compat/add/operator/retryWhen'; +import 'rxjs-compat/add/operator/sample'; +import 'rxjs-compat/add/operator/sampleTime'; +import 'rxjs-compat/add/operator/scan'; +import 'rxjs-compat/add/operator/sequenceEqual'; +import 'rxjs-compat/add/operator/share'; +import 'rxjs-compat/add/operator/shareReplay'; +import 'rxjs-compat/add/operator/single'; +import 'rxjs-compat/add/operator/skip'; +import 'rxjs-compat/add/operator/skipLast'; +import 'rxjs-compat/add/operator/skipUntil'; +import 'rxjs-compat/add/operator/skipWhile'; +import 'rxjs-compat/add/operator/startWith'; +import 'rxjs-compat/add/operator/subscribeOn'; +import 'rxjs-compat/add/operator/switch'; +import 'rxjs-compat/add/operator/switchMap'; +import 'rxjs-compat/add/operator/switchMapTo'; +import 'rxjs-compat/add/operator/take'; +import 'rxjs-compat/add/operator/takeLast'; +import 'rxjs-compat/add/operator/takeUntil'; +import 'rxjs-compat/add/operator/takeWhile'; +import 'rxjs-compat/add/operator/throttle'; +import 'rxjs-compat/add/operator/throttleTime'; +import 'rxjs-compat/add/operator/timeInterval'; +import 'rxjs-compat/add/operator/timeout'; +import 'rxjs-compat/add/operator/timeoutWith'; +import 'rxjs-compat/add/operator/timestamp'; +import 'rxjs-compat/add/operator/toArray'; +import 'rxjs-compat/add/operator/toPromise'; +import 'rxjs-compat/add/operator/window'; +import 'rxjs-compat/add/operator/windowCount'; +import 'rxjs-compat/add/operator/windowTime'; +import 'rxjs-compat/add/operator/windowToggle'; +import 'rxjs-compat/add/operator/windowWhen'; +import 'rxjs-compat/add/operator/withLatestFrom'; +import 'rxjs-compat/add/operator/zip'; +import 'rxjs-compat/add/operator/zipAll'; +export { Subscription } from './Subscription'; +export { Subscriber } from './Subscriber'; +export { AsyncSubject } from './AsyncSubject'; +export { ReplaySubject } from './ReplaySubject'; +export { BehaviorSubject } from './BehaviorSubject'; +export { ConnectableObservable } from './observable/ConnectableObservable'; +export { Notification, NotificationKind } from './Notification'; +export { EmptyError } from './util/EmptyError'; +export { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError'; +export { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +export { TimeoutError } from './util/TimeoutError'; +export { UnsubscriptionError } from './util/UnsubscriptionError'; +export { TimeInterval } from './operators/timeInterval'; +export { Timestamp } from './operators/timestamp'; +export { TestScheduler } from './testing/TestScheduler'; +export { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler'; +export { AjaxResponse, AjaxError, AjaxTimeoutError } from './observable/dom/AjaxObservable'; +export { pipe } from './util/pipe'; +import { asap } from './scheduler/asap'; +import { async } from './scheduler/async'; +import { queue } from './scheduler/queue'; +import { animationFrame } from './scheduler/animationFrame'; +import { rxSubscriber } from './symbol/rxSubscriber'; +import { iterator } from './symbol/iterator'; +import { observable } from './symbol/observable'; +import * as _operators from './operators/index'; +export var operators = _operators; +var Scheduler = { + asap: asap, + queue: queue, + animationFrame: animationFrame, + async: async +}; +var Symbol = { + rxSubscriber: rxSubscriber, + observable: observable, + iterator: iterator +}; +export { Scheduler, Symbol }; +//# sourceMappingURL=Rx.js.map diff --git a/node_modules/rxjs/_esm5/internal/Rx.js.map b/node_modules/rxjs/_esm5/internal/Rx.js.map new file mode 100644 index 00000000..ca18900d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Rx.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Rx.js","sources":["../../src/internal/Rx.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/Scheduler.js b/node_modules/rxjs/_esm5/internal/Scheduler.js new file mode 100644 index 00000000..3312a44e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Scheduler.js @@ -0,0 +1,19 @@ +var Scheduler = /*@__PURE__*/ (function () { + function Scheduler(SchedulerAction, now) { + if (now === void 0) { + now = Scheduler.now; + } + this.SchedulerAction = SchedulerAction; + this.now = now; + } + Scheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { + delay = 0; + } + return new this.SchedulerAction(this, work).schedule(state, delay); + }; + Scheduler.now = function () { return Date.now(); }; + return Scheduler; +}()); +export { Scheduler }; +//# sourceMappingURL=Scheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/Scheduler.js.map b/node_modules/rxjs/_esm5/internal/Scheduler.js.map new file mode 100644 index 00000000..79dfb854 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Scheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scheduler.js","sources":["../../src/internal/Scheduler.ts"],"names":[],"mappings":"AAuBA;IASE,mBAAoB,eAA8B,EACtC,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IA6BM,4BAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,OAAO,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IApCa,aAAG,GAAiB,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAC;IAqCrD,gBAAC;CAAA,AA5CD,IA4CC;SA5CY,SAAS"} diff --git a/node_modules/rxjs/_esm5/internal/Subject.js b/node_modules/rxjs/_esm5/internal/Subject.js new file mode 100644 index 00000000..84c3c50e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Subject.js @@ -0,0 +1,158 @@ +/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Observable } from './Observable'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +import { SubjectSubscription } from './SubjectSubscription'; +import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber'; +var SubjectSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SubjectSubscriber, _super); + function SubjectSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + return _this; + } + return SubjectSubscriber; +}(Subscriber)); +export { SubjectSubscriber }; +var Subject = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(Subject, _super); + function Subject() { + var _this = _super.call(this) || this; + _this.observers = []; + _this.closed = false; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject.prototype[rxSubscriberSymbol] = function () { + return new SubjectSubscriber(this); + }; + Subject.prototype.lift = function (operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject.prototype.next = function (value) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + if (!this.isStopped) { + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].next(value); + } + } + }; + Subject.prototype.error = function (err) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.hasError = true; + this.thrownError = err; + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].error(err); + } + this.observers.length = 0; + }; + Subject.prototype.complete = function () { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].complete(); + } + this.observers.length = 0; + }; + Subject.prototype.unsubscribe = function () { + this.isStopped = true; + this.closed = true; + this.observers = null; + }; + Subject.prototype._trySubscribe = function (subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else { + return _super.prototype._trySubscribe.call(this, subscriber); + } + }; + Subject.prototype._subscribe = function (subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } + else if (this.isStopped) { + subscriber.complete(); + return Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + return new SubjectSubscription(this, subscriber); + } + }; + Subject.prototype.asObservable = function () { + var observable = new Observable(); + observable.source = this; + return observable; + }; + Subject.create = function (destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject; +}(Observable)); +export { Subject }; +var AnonymousSubject = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AnonymousSubject, _super); + function AnonymousSubject(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject.prototype.next = function (value) { + var destination = this.destination; + if (destination && destination.next) { + destination.next(value); + } + }; + AnonymousSubject.prototype.error = function (err) { + var destination = this.destination; + if (destination && destination.error) { + this.destination.error(err); + } + }; + AnonymousSubject.prototype.complete = function () { + var destination = this.destination; + if (destination && destination.complete) { + this.destination.complete(); + } + }; + AnonymousSubject.prototype._subscribe = function (subscriber) { + var source = this.source; + if (source) { + return this.source.subscribe(subscriber); + } + else { + return Subscription.EMPTY; + } + }; + return AnonymousSubject; +}(Subject)); +export { AnonymousSubject }; +//# sourceMappingURL=Subject.js.map diff --git a/node_modules/rxjs/_esm5/internal/Subject.js.map b/node_modules/rxjs/_esm5/internal/Subject.js.map new file mode 100644 index 00000000..881b06e9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Subject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subject.js","sources":["../../src/internal/Subject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/SubjectSubscription.js b/node_modules/rxjs/_esm5/internal/SubjectSubscription.js new file mode 100644 index 00000000..f09a2a28 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/SubjectSubscription.js @@ -0,0 +1,32 @@ +/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscription } from './Subscription'; +var SubjectSubscription = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SubjectSubscription, _super); + function SubjectSubscription(subject, subscriber) { + var _this = _super.call(this) || this; + _this.subject = subject; + _this.subscriber = subscriber; + _this.closed = false; + return _this; + } + SubjectSubscription.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.closed = true; + var subject = this.subject; + var observers = subject.observers; + this.subject = null; + if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { + return; + } + var subscriberIndex = observers.indexOf(this.subscriber); + if (subscriberIndex !== -1) { + observers.splice(subscriberIndex, 1); + } + }; + return SubjectSubscription; +}(Subscription)); +export { SubjectSubscription }; +//# sourceMappingURL=SubjectSubscription.js.map diff --git a/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map b/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map new file mode 100644 index 00000000..3698894e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/SubjectSubscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubjectSubscription.js","sources":["../../src/internal/SubjectSubscription.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;IAA4C,+CAAY;IAGtD,6BAAmB,OAAmB,EAAS,UAAuB;QAAtE,YACE,iBAAO,SACR;QAFkB,aAAO,GAAP,OAAO,CAAY;QAAS,gBAAU,GAAV,UAAU,CAAa;QAFtE,YAAM,GAAY,KAAK,CAAC;;IAIxB,CAAC;IAED,yCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;YAC/E,OAAO;SACR;QAED,IAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA7BD,CAA4C,YAAY,GA6BvD"} diff --git a/node_modules/rxjs/_esm5/internal/Subscriber.js b/node_modules/rxjs/_esm5/internal/Subscriber.js new file mode 100644 index 00000000..86100937 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Subscriber.js @@ -0,0 +1,233 @@ +/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { isFunction } from './util/isFunction'; +import { empty as emptyObserver } from './Observer'; +import { Subscription } from './Subscription'; +import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber'; +import { config } from './config'; +import { hostReportError } from './util/hostReportError'; +var Subscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(Subscriber, _super); + function Subscriber(destinationOrNext, error, complete) { + var _this = _super.call(this) || this; + _this.syncErrorValue = null; + _this.syncErrorThrown = false; + _this.syncErrorThrowable = false; + _this.isStopped = false; + switch (arguments.length) { + case 0: + _this.destination = emptyObserver; + break; + case 1: + if (!destinationOrNext) { + _this.destination = emptyObserver; + break; + } + if (typeof destinationOrNext === 'object') { + if (destinationOrNext instanceof Subscriber) { + _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + _this.destination = destinationOrNext; + destinationOrNext.add(_this); + } + else { + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext); + } + break; + } + default: + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete); + break; + } + return _this; + } + Subscriber.prototype[rxSubscriberSymbol] = function () { return this; }; + Subscriber.create = function (next, error, complete) { + var subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + }; + Subscriber.prototype.next = function (value) { + if (!this.isStopped) { + this._next(value); + } + }; + Subscriber.prototype.error = function (err) { + if (!this.isStopped) { + this.isStopped = true; + this._error(err); + } + }; + Subscriber.prototype.complete = function () { + if (!this.isStopped) { + this.isStopped = true; + this._complete(); + } + }; + Subscriber.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + }; + Subscriber.prototype._next = function (value) { + this.destination.next(value); + }; + Subscriber.prototype._error = function (err) { + this.destination.error(err); + this.unsubscribe(); + }; + Subscriber.prototype._complete = function () { + this.destination.complete(); + this.unsubscribe(); + }; + Subscriber.prototype._unsubscribeAndRecycle = function () { + var _parentOrParents = this._parentOrParents; + this._parentOrParents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parentOrParents = _parentOrParents; + return this; + }; + return Subscriber; +}(Subscription)); +export { Subscriber }; +var SafeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SafeSubscriber, _super); + function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { + var _this = _super.call(this) || this; + _this._parentSubscriber = _parentSubscriber; + var next; + var context = _this; + if (isFunction(observerOrNext)) { + next = observerOrNext; + } + else if (observerOrNext) { + next = observerOrNext.next; + error = observerOrNext.error; + complete = observerOrNext.complete; + if (observerOrNext !== emptyObserver) { + context = Object.create(observerOrNext); + if (isFunction(context.unsubscribe)) { + _this.add(context.unsubscribe.bind(context)); + } + context.unsubscribe = _this.unsubscribe.bind(_this); + } + } + _this._context = context; + _this._next = next; + _this._error = error; + _this._complete = complete; + return _this; + } + SafeSubscriber.prototype.next = function (value) { + if (!this.isStopped && this._next) { + var _parentSubscriber = this._parentSubscriber; + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._next, value); + } + else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling; + if (this._error) { + if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } + else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + if (useDeprecatedSynchronousErrorHandling) { + throw err; + } + hostReportError(err); + } + else { + if (useDeprecatedSynchronousErrorHandling) { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + } + else { + hostReportError(err); + } + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.complete = function () { + var _this = this; + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + if (this._complete) { + var wrappedComplete = function () { return _this._complete.call(_this._context); }; + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(wrappedComplete); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, wrappedComplete); + this.unsubscribe(); + } + } + else { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) { + try { + fn.call(this._context, value); + } + catch (err) { + this.unsubscribe(); + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError(err); + } + } + }; + SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { + if (!config.useDeprecatedSynchronousErrorHandling) { + throw new Error('bad call'); + } + try { + fn.call(this._context, value); + } + catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + else { + hostReportError(err); + return true; + } + } + return false; + }; + SafeSubscriber.prototype._unsubscribe = function () { + var _parentSubscriber = this._parentSubscriber; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + }; + return SafeSubscriber; +}(Subscriber)); +export { SafeSubscriber }; +//# sourceMappingURL=Subscriber.js.map diff --git a/node_modules/rxjs/_esm5/internal/Subscriber.js.map b/node_modules/rxjs/_esm5/internal/Subscriber.js.map new file mode 100644 index 00000000..c2b70240 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Subscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscriber.js","sources":["../../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/Subscription.js b/node_modules/rxjs/_esm5/internal/Subscription.js new file mode 100644 index 00000000..2527dd34 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Subscription.js @@ -0,0 +1,140 @@ +/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */ +import { isArray } from './util/isArray'; +import { isObject } from './util/isObject'; +import { isFunction } from './util/isFunction'; +import { UnsubscriptionError } from './util/UnsubscriptionError'; +var Subscription = /*@__PURE__*/ (function () { + function Subscription(unsubscribe) { + this.closed = false; + this._parentOrParents = null; + this._subscriptions = null; + if (unsubscribe) { + this._ctorUnsubscribe = true; + this._unsubscribe = unsubscribe; + } + } + Subscription.prototype.unsubscribe = function () { + var errors; + if (this.closed) { + return; + } + var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; + this.closed = true; + this._parentOrParents = null; + this._subscriptions = null; + if (_parentOrParents instanceof Subscription) { + _parentOrParents.remove(this); + } + else if (_parentOrParents !== null) { + for (var index = 0; index < _parentOrParents.length; ++index) { + var parent_1 = _parentOrParents[index]; + parent_1.remove(this); + } + } + if (isFunction(_unsubscribe)) { + if (_ctorUnsubscribe) { + this._unsubscribe = undefined; + } + try { + _unsubscribe.call(this); + } + catch (e) { + errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; + } + } + if (isArray(_subscriptions)) { + var index = -1; + var len = _subscriptions.length; + while (++index < len) { + var sub = _subscriptions[index]; + if (isObject(sub)) { + try { + sub.unsubscribe(); + } + catch (e) { + errors = errors || []; + if (e instanceof UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); + } + else { + errors.push(e); + } + } + } + } + } + if (errors) { + throw new UnsubscriptionError(errors); + } + }; + Subscription.prototype.add = function (teardown) { + var subscription = teardown; + if (!teardown) { + return Subscription.EMPTY; + } + switch (typeof teardown) { + case 'function': + subscription = new Subscription(teardown); + case 'object': + if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { + return subscription; + } + else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } + else if (!(subscription instanceof Subscription)) { + var tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: { + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + } + var _parentOrParents = subscription._parentOrParents; + if (_parentOrParents === null) { + subscription._parentOrParents = this; + } + else if (_parentOrParents instanceof Subscription) { + if (_parentOrParents === this) { + return subscription; + } + subscription._parentOrParents = [_parentOrParents, this]; + } + else if (_parentOrParents.indexOf(this) === -1) { + _parentOrParents.push(this); + } + else { + return subscription; + } + var subscriptions = this._subscriptions; + if (subscriptions === null) { + this._subscriptions = [subscription]; + } + else { + subscriptions.push(subscription); + } + return subscription; + }; + Subscription.prototype.remove = function (subscription) { + var subscriptions = this._subscriptions; + if (subscriptions) { + var subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + }; + Subscription.EMPTY = (function (empty) { + empty.closed = true; + return empty; + }(new Subscription())); + return Subscription; +}()); +export { Subscription }; +function flattenUnsubscriptionErrors(errors) { + return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []); +} +//# sourceMappingURL=Subscription.js.map diff --git a/node_modules/rxjs/_esm5/internal/Subscription.js.map b/node_modules/rxjs/_esm5/internal/Subscription.js.map new file mode 100644 index 00000000..dc2cb449 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/Subscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscription.js","sources":["../../src/internal/Subscription.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/config.js b/node_modules/rxjs/_esm5/internal/config.js new file mode 100644 index 00000000..e9982290 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/config.js @@ -0,0 +1,19 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var _enable_super_gross_mode_that_will_cause_bad_things = false; +export var config = { + Promise: undefined, + set useDeprecatedSynchronousErrorHandling(value) { + if (value) { + var error = /*@__PURE__*/ new Error(); + /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); + } + else if (_enable_super_gross_mode_that_will_cause_bad_things) { + /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3'); + } + _enable_super_gross_mode_that_will_cause_bad_things = value; + }, + get useDeprecatedSynchronousErrorHandling() { + return _enable_super_gross_mode_that_will_cause_bad_things; + }, +}; +//# sourceMappingURL=config.js.map diff --git a/node_modules/rxjs/_esm5/internal/config.js.map b/node_modules/rxjs/_esm5/internal/config.js.map new file mode 100644 index 00000000..21e6def6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"config.js","sources":["../../src/internal/config.ts"],"names":[],"mappings":"AAAA,IAAI,mDAAmD,GAAG,KAAK,CAAC;AAMhE,MAAM,CAAC,IAAM,MAAM,GAAG;IAKpB,OAAO,EAAE,SAAmC;IAU5C,IAAI,qCAAqC,CAAC,KAAc;QACtD,IAAI,KAAK,EAAE;YACT,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,+FAA+F,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7H;aAAM,IAAI,mDAAmD,EAAE;YAC9D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;SACrE;QACD,mDAAmD,GAAG,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,qCAAqC;QACvC,OAAO,mDAAmD,CAAC;IAC7D,CAAC;CACF,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/innerSubscribe.js b/node_modules/rxjs/_esm5/internal/innerSubscribe.js new file mode 100644 index 00000000..640ada7c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/innerSubscribe.js @@ -0,0 +1,93 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_util_subscribeTo PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from './Subscriber'; +import { Observable } from './Observable'; +import { subscribeTo } from './util/subscribeTo'; +var SimpleInnerSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SimpleInnerSubscriber, _super); + function SimpleInnerSubscriber(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + return _this; + } + SimpleInnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(value); + }; + SimpleInnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error); + this.unsubscribe(); + }; + SimpleInnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(); + this.unsubscribe(); + }; + return SimpleInnerSubscriber; +}(Subscriber)); +export { SimpleInnerSubscriber }; +var ComplexInnerSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ComplexInnerSubscriber, _super); + function ComplexInnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + return _this; + } + ComplexInnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this); + }; + ComplexInnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error); + this.unsubscribe(); + }; + ComplexInnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); + }; + return ComplexInnerSubscriber; +}(Subscriber)); +export { ComplexInnerSubscriber }; +var SimpleOuterSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SimpleOuterSubscriber, _super); + function SimpleOuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + SimpleOuterSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + SimpleOuterSubscriber.prototype.notifyComplete = function () { + this.destination.complete(); + }; + return SimpleOuterSubscriber; +}(Subscriber)); +export { SimpleOuterSubscriber }; +var ComplexOuterSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ComplexOuterSubscriber, _super); + function ComplexOuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) { + this.destination.next(innerValue); + }; + ComplexOuterSubscriber.prototype.notifyError = function (error) { + this.destination.error(error); + }; + ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) { + this.destination.complete(); + }; + return ComplexOuterSubscriber; +}(Subscriber)); +export { ComplexOuterSubscriber }; +export function innerSubscribe(result, innerSubscriber) { + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber); +} +//# sourceMappingURL=innerSubscribe.js.map diff --git a/node_modules/rxjs/_esm5/internal/innerSubscribe.js.map b/node_modules/rxjs/_esm5/internal/innerSubscribe.js.map new file mode 100644 index 00000000..8cc2df27 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/innerSubscribe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"innerSubscribe.js","sources":["../../src/internal/innerSubscribe.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js b/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js new file mode 100644 index 00000000..ed319114 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js @@ -0,0 +1,142 @@ +/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SubjectSubscriber } from '../Subject'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { refCount as higherOrderRefCount } from '../operators/refCount'; +var ConnectableObservable = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ConnectableObservable, _super); + function ConnectableObservable(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._refCount = 0; + _this._isComplete = false; + return _this; + } + ConnectableObservable.prototype._subscribe = function (subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable.prototype.getSubject = function () { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable.prototype.connect = function () { + var connection = this._connection; + if (!connection) { + this._isComplete = false; + connection = this._connection = new Subscription(); + connection.add(this.source + .subscribe(new ConnectableSubscriber(this.getSubject(), this))); + if (connection.closed) { + this._connection = null; + connection = Subscription.EMPTY; + } + } + return connection; + }; + ConnectableObservable.prototype.refCount = function () { + return higherOrderRefCount()(this); + }; + return ConnectableObservable; +}(Observable)); +export { ConnectableObservable }; +export var connectableObservableDescriptor = /*@__PURE__*/ (function () { + var connectableProto = ConnectableObservable.prototype; + return { + operator: { value: null }, + _refCount: { value: 0, writable: true }, + _subject: { value: null, writable: true }, + _connection: { value: null, writable: true }, + _subscribe: { value: connectableProto._subscribe }, + _isComplete: { value: connectableProto._isComplete, writable: true }, + getSubject: { value: connectableProto.getSubject }, + connect: { value: connectableProto.connect }, + refCount: { value: connectableProto.refCount } + }; +})(); +var ConnectableSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ConnectableSubscriber, _super); + function ConnectableSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + ConnectableSubscriber.prototype._error = function (err) { + this._unsubscribe(); + _super.prototype._error.call(this, err); + }; + ConnectableSubscriber.prototype._complete = function () { + this.connectable._isComplete = true; + this._unsubscribe(); + _super.prototype._complete.call(this); + }; + ConnectableSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (connectable) { + this.connectable = null; + var connection = connectable._connection; + connectable._refCount = 0; + connectable._subject = null; + connectable._connection = null; + if (connection) { + connection.unsubscribe(); + } + } + }; + return ConnectableSubscriber; +}(SubjectSubscriber)); +var RefCountOperator = /*@__PURE__*/ (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; + } + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + }; + return RefCountOperator; +}()); +var RefCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; +}(Subscriber)); +//# sourceMappingURL=ConnectableObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map b/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map new file mode 100644 index 00000000..44b1eccc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConnectableObservable.js","sources":["../../../src/internal/observable/ConnectableObservable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js b/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js new file mode 100644 index 00000000..c4ef8485 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js @@ -0,0 +1,51 @@ +/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Observable } from '../Observable'; +import { asap } from '../scheduler/asap'; +import { isNumeric } from '../util/isNumeric'; +var SubscribeOnObservable = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SubscribeOnObservable, _super); + function SubscribeOnObservable(source, delayTime, scheduler) { + if (delayTime === void 0) { + delayTime = 0; + } + if (scheduler === void 0) { + scheduler = asap; + } + var _this = _super.call(this) || this; + _this.source = source; + _this.delayTime = delayTime; + _this.scheduler = scheduler; + if (!isNumeric(delayTime) || delayTime < 0) { + _this.delayTime = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + _this.scheduler = asap; + } + return _this; + } + SubscribeOnObservable.create = function (source, delay, scheduler) { + if (delay === void 0) { + delay = 0; + } + if (scheduler === void 0) { + scheduler = asap; + } + return new SubscribeOnObservable(source, delay, scheduler); + }; + SubscribeOnObservable.dispatch = function (arg) { + var source = arg.source, subscriber = arg.subscriber; + return this.add(source.subscribe(subscriber)); + }; + SubscribeOnObservable.prototype._subscribe = function (subscriber) { + var delay = this.delayTime; + var source = this.source; + var scheduler = this.scheduler; + return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { + source: source, subscriber: subscriber + }); + }; + return SubscribeOnObservable; +}(Observable)); +export { SubscribeOnObservable }; +//# sourceMappingURL=SubscribeOnObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map new file mode 100644 index 00000000..6092bee8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscribeOnObservable.js","sources":["../../../src/internal/observable/SubscribeOnObservable.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY9C;IAA8C,iDAAa;IAYzD,+BAAmB,MAAqB,EACpB,SAAqB,EACrB,SAA+B;QAD/B,0BAAA,EAAA,aAAqB;QACrB,0BAAA,EAAA,gBAA+B;QAFnD,YAGE,iBAAO,SAOR;QAVkB,YAAM,GAAN,MAAM,CAAe;QACpB,eAAS,GAAT,SAAS,CAAY;QACrB,eAAS,GAAT,SAAS,CAAsB;QAEjD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YAC1C,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;YAC1D,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;;IACH,CAAC;IApBM,4BAAM,GAAb,UAAiB,MAAqB,EAAE,KAAiB,EAAE,SAA+B;QAAlD,sBAAA,EAAA,SAAiB;QAAE,0BAAA,EAAA,gBAA+B;QACxF,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAGM,8BAAQ,GAAf,UAA6C,GAAmB;QACtD,IAAA,mBAAM,EAAE,2BAAU,CAAS;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAeD,0CAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAmB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE;YACjF,MAAM,QAAA,EAAE,UAAU,YAAA;SACnB,CAAC,CAAC;IACL,CAAC;IACH,4BAAC;AAAD,CAAC,AAlCD,CAA8C,UAAU,GAkCvD"} diff --git a/node_modules/rxjs/_esm5/internal/observable/bindCallback.js b/node_modules/rxjs/_esm5/internal/observable/bindCallback.js new file mode 100644 index 00000000..ee5e68a6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/bindCallback.js @@ -0,0 +1,105 @@ +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { AsyncSubject } from '../AsyncSubject'; +import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; +import { isArray } from '../util/isArray'; +import { isScheduler } from '../util/isScheduler'; +export function bindCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var context = this; + var subject; + var params = { + context: context, + subject: subject, + callbackFunc: callbackFunc, + scheduler: scheduler, + }; + return new Observable(function (subscriber) { + if (!scheduler) { + if (!subject) { + subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + var state = { + args: args, subscriber: subscriber, params: params, + }; + return scheduler.schedule(dispatch, 0, state); + } + }); + }; +} +function dispatch(state) { + var _this = this; + var self = this; + var args = state.args, subscriber = state.subscriber, params = state.params; + var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + subject.error(err); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(state) { + var value = state.value, subject = state.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(state) { + var err = state.err, subject = state.subject; + subject.error(err); +} +//# sourceMappingURL=bindCallback.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map b/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map new file mode 100644 index 00000000..f516e14b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/bindCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindCallback.js","sources":["../../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js b/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js new file mode 100644 index 00000000..5d8c4caa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js @@ -0,0 +1,113 @@ +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { AsyncSubject } from '../AsyncSubject'; +import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; +import { isScheduler } from '../util/isScheduler'; +import { isArray } from '../util/isArray'; +export function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var params = { + subject: undefined, + args: args, + callbackFunc: callbackFunc, + scheduler: scheduler, + context: this, + }; + return new Observable(function (subscriber) { + var context = params.context; + var subject = params.subject; + if (!scheduler) { + if (!subject) { + subject = params.subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + subject.error(err); + return; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context }); + } + }); + }; +} +function dispatch(state) { + var _this = this; + var params = state.params, subscriber = state.subscriber, context = state.context; + var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + else { + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + } + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(arg) { + var value = arg.value, subject = arg.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(arg) { + var err = arg.err, subject = arg.subject; + subject.error(err); +} +//# sourceMappingURL=bindNodeCallback.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map b/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map new file mode 100644 index 00000000..ffa674ca --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindNodeCallback.js","sources":["../../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/combineLatest.js b/node_modules/rxjs/_esm5/internal/observable/combineLatest.js new file mode 100644 index 00000000..77eb4634 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/combineLatest.js @@ -0,0 +1,101 @@ +/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { isScheduler } from '../util/isScheduler'; +import { isArray } from '../util/isArray'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { fromArray } from './fromArray'; +var NONE = {}; +export function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = undefined; + var scheduler = undefined; + if (isScheduler(observables[observables.length - 1])) { + scheduler = observables.pop(); + } + if (typeof observables[observables.length - 1] === 'function') { + resultSelector = observables.pop(); + } + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0]; + } + return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); +} +var CombineLatestOperator = /*@__PURE__*/ (function () { + function CombineLatestOperator(resultSelector) { + this.resultSelector = resultSelector; + } + CombineLatestOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); + }; + return CombineLatestOperator; +}()); +export { CombineLatestOperator }; +var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(CombineLatestSubscriber, _super); + function CombineLatestSubscriber(destination, resultSelector) { + var _this = _super.call(this, destination) || this; + _this.resultSelector = resultSelector; + _this.active = 0; + _this.values = []; + _this.observables = []; + return _this; + } + CombineLatestSubscriber.prototype._next = function (observable) { + this.values.push(NONE); + this.observables.push(observable); + }; + CombineLatestSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + this.active = len; + this.toRespond = len; + for (var i = 0; i < len; i++) { + var observable = observables[i]; + this.add(subscribeToResult(this, observable, undefined, i)); + } + } + }; + CombineLatestSubscriber.prototype.notifyComplete = function (unused) { + if ((this.active -= 1) === 0) { + this.destination.complete(); + } + }; + CombineLatestSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + var values = this.values; + var oldVal = values[outerIndex]; + var toRespond = !this.toRespond + ? 0 + : oldVal === NONE ? --this.toRespond : this.toRespond; + values[outerIndex] = innerValue; + if (toRespond === 0) { + if (this.resultSelector) { + this._tryResultSelector(values); + } + else { + this.destination.next(values.slice()); + } + } + }; + CombineLatestSubscriber.prototype._tryResultSelector = function (values) { + var result; + try { + result = this.resultSelector.apply(this, values); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return CombineLatestSubscriber; +}(OuterSubscriber)); +export { CombineLatestSubscriber }; +//# sourceMappingURL=combineLatest.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map b/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map new file mode 100644 index 00000000..21898625 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/observable/combineLatest.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/concat.js b/node_modules/rxjs/_esm5/internal/observable/concat.js new file mode 100644 index 00000000..4c089303 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/concat.js @@ -0,0 +1,11 @@ +/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */ +import { of } from './of'; +import { concatAll } from '../operators/concatAll'; +export function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return concatAll()(of.apply(void 0, observables)); +} +//# sourceMappingURL=concat.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/concat.js.map b/node_modules/rxjs/_esm5/internal/observable/concat.js.map new file mode 100644 index 00000000..f963a9ad --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../../src/internal/observable/concat.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA2InD,MAAM,UAAU,MAAM;IAAoC,qBAAwC;SAAxC,UAAwC,EAAxC,qBAAwC,EAAxC,IAAwC;QAAxC,gCAAwC;;IAChG,OAAO,SAAS,EAAK,CAAC,EAAE,eAAI,WAAW,EAAE,CAAC;AAC5C,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/defer.js b/node_modules/rxjs/_esm5/internal/observable/defer.js new file mode 100644 index 00000000..d4cc24a6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/defer.js @@ -0,0 +1,19 @@ +/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { from } from './from'; +import { empty } from './empty'; +export function defer(observableFactory) { + return new Observable(function (subscriber) { + var input; + try { + input = observableFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = input ? from(input) : empty(); + return source.subscribe(subscriber); + }); +} +//# sourceMappingURL=defer.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/defer.js.map b/node_modules/rxjs/_esm5/internal/observable/defer.js.map new file mode 100644 index 00000000..07ea88c3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/defer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defer.js","sources":["../../../src/internal/observable/defer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAmDhC,MAAM,UAAU,KAAK,CAAwC,iBAA0B;IACrF,OAAO,IAAI,UAAU,CAAqB,UAAA,UAAU;QAClD,IAAI,KAAe,CAAC;QACpB,IAAI;YACF,KAAK,GAAG,iBAAiB,EAAE,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAA4C,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACpF,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js b/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js new file mode 100644 index 00000000..6cc88b5b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js @@ -0,0 +1,374 @@ +/** PURE_IMPORTS_START tslib,_.._util_root,_.._Observable,_.._Subscriber,_.._operators_map PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { root } from '../../util/root'; +import { Observable } from '../../Observable'; +import { Subscriber } from '../../Subscriber'; +import { map } from '../../operators/map'; +function getCORSRequest() { + if (root.XMLHttpRequest) { + return new root.XMLHttpRequest(); + } + else if (!!root.XDomainRequest) { + return new root.XDomainRequest(); + } + else { + throw new Error('CORS is not supported by your browser'); + } +} +function getXMLHttpRequest() { + if (root.XMLHttpRequest) { + return new root.XMLHttpRequest(); + } + else { + var progId = void 0; + try { + var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; + for (var i = 0; i < 3; i++) { + try { + progId = progIds[i]; + if (new root.ActiveXObject(progId)) { + break; + } + } + catch (e) { + } + } + return new root.ActiveXObject(progId); + } + catch (e) { + throw new Error('XMLHttpRequest is not supported by your browser'); + } + } +} +export function ajaxGet(url, headers) { + if (headers === void 0) { + headers = null; + } + return new AjaxObservable({ method: 'GET', url: url, headers: headers }); +} +export function ajaxPost(url, body, headers) { + return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers }); +} +export function ajaxDelete(url, headers) { + return new AjaxObservable({ method: 'DELETE', url: url, headers: headers }); +} +export function ajaxPut(url, body, headers) { + return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers }); +} +export function ajaxPatch(url, body, headers) { + return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers }); +} +var mapResponse = /*@__PURE__*/ map(function (x, index) { return x.response; }); +export function ajaxGetJSON(url, headers) { + return mapResponse(new AjaxObservable({ + method: 'GET', + url: url, + responseType: 'json', + headers: headers + })); +} +var AjaxObservable = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AjaxObservable, _super); + function AjaxObservable(urlOrRequest) { + var _this = _super.call(this) || this; + var request = { + async: true, + createXHR: function () { + return this.crossDomain ? getCORSRequest() : getXMLHttpRequest(); + }, + crossDomain: true, + withCredentials: false, + headers: {}, + method: 'GET', + responseType: 'json', + timeout: 0 + }; + if (typeof urlOrRequest === 'string') { + request.url = urlOrRequest; + } + else { + for (var prop in urlOrRequest) { + if (urlOrRequest.hasOwnProperty(prop)) { + request[prop] = urlOrRequest[prop]; + } + } + } + _this.request = request; + return _this; + } + AjaxObservable.prototype._subscribe = function (subscriber) { + return new AjaxSubscriber(subscriber, this.request); + }; + AjaxObservable.create = (function () { + var create = function (urlOrRequest) { + return new AjaxObservable(urlOrRequest); + }; + create.get = ajaxGet; + create.post = ajaxPost; + create.delete = ajaxDelete; + create.put = ajaxPut; + create.patch = ajaxPatch; + create.getJSON = ajaxGetJSON; + return create; + })(); + return AjaxObservable; +}(Observable)); +export { AjaxObservable }; +var AjaxSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AjaxSubscriber, _super); + function AjaxSubscriber(destination, request) { + var _this = _super.call(this, destination) || this; + _this.request = request; + _this.done = false; + var headers = request.headers = request.headers || {}; + if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) { + headers['X-Requested-With'] = 'XMLHttpRequest'; + } + var contentTypeHeader = _this.getHeader(headers, 'Content-Type'); + if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') { + headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + } + request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type')); + _this.send(); + return _this; + } + AjaxSubscriber.prototype.next = function (e) { + this.done = true; + var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination; + var result; + try { + result = new AjaxResponse(e, xhr, request); + } + catch (err) { + return destination.error(err); + } + destination.next(result); + }; + AjaxSubscriber.prototype.send = function () { + var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body; + try { + var xhr = this.xhr = request.createXHR(); + this.setupEvents(xhr, request); + if (user) { + xhr.open(method, url, async, user, password); + } + else { + xhr.open(method, url, async); + } + if (async) { + xhr.timeout = request.timeout; + xhr.responseType = request.responseType; + } + if ('withCredentials' in xhr) { + xhr.withCredentials = !!request.withCredentials; + } + this.setHeaders(xhr, headers); + if (body) { + xhr.send(body); + } + else { + xhr.send(); + } + } + catch (err) { + this.error(err); + } + }; + AjaxSubscriber.prototype.serializeBody = function (body, contentType) { + if (!body || typeof body === 'string') { + return body; + } + else if (root.FormData && body instanceof root.FormData) { + return body; + } + if (contentType) { + var splitIndex = contentType.indexOf(';'); + if (splitIndex !== -1) { + contentType = contentType.substring(0, splitIndex); + } + } + switch (contentType) { + case 'application/x-www-form-urlencoded': + return Object.keys(body).map(function (key) { return encodeURIComponent(key) + "=" + encodeURIComponent(body[key]); }).join('&'); + case 'application/json': + return JSON.stringify(body); + default: + return body; + } + }; + AjaxSubscriber.prototype.setHeaders = function (xhr, headers) { + for (var key in headers) { + if (headers.hasOwnProperty(key)) { + xhr.setRequestHeader(key, headers[key]); + } + } + }; + AjaxSubscriber.prototype.getHeader = function (headers, headerName) { + for (var key in headers) { + if (key.toLowerCase() === headerName.toLowerCase()) { + return headers[key]; + } + } + return undefined; + }; + AjaxSubscriber.prototype.setupEvents = function (xhr, request) { + var progressSubscriber = request.progressSubscriber; + function xhrTimeout(e) { + var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request; + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error; + try { + error = new AjaxTimeoutError(this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + xhr.ontimeout = xhrTimeout; + xhrTimeout.request = request; + xhrTimeout.subscriber = this; + xhrTimeout.progressSubscriber = progressSubscriber; + if (xhr.upload && 'withCredentials' in xhr) { + if (progressSubscriber) { + var xhrProgress_1; + xhrProgress_1 = function (e) { + var progressSubscriber = xhrProgress_1.progressSubscriber; + progressSubscriber.next(e); + }; + if (root.XDomainRequest) { + xhr.onprogress = xhrProgress_1; + } + else { + xhr.upload.onprogress = xhrProgress_1; + } + xhrProgress_1.progressSubscriber = progressSubscriber; + } + var xhrError_1; + xhrError_1 = function (e) { + var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request; + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error; + try { + error = new AjaxError('ajax error', this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + }; + xhr.onerror = xhrError_1; + xhrError_1.request = request; + xhrError_1.subscriber = this; + xhrError_1.progressSubscriber = progressSubscriber; + } + function xhrReadyStateChange(e) { + return; + } + xhr.onreadystatechange = xhrReadyStateChange; + xhrReadyStateChange.subscriber = this; + xhrReadyStateChange.progressSubscriber = progressSubscriber; + xhrReadyStateChange.request = request; + function xhrLoad(e) { + var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request; + if (this.readyState === 4) { + var status_1 = this.status === 1223 ? 204 : this.status; + var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response); + if (status_1 === 0) { + status_1 = response ? 200 : 0; + } + if (status_1 < 400) { + if (progressSubscriber) { + progressSubscriber.complete(); + } + subscriber.next(e); + subscriber.complete(); + } + else { + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error = void 0; + try { + error = new AjaxError('ajax error ' + status_1, this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + } + } + xhr.onload = xhrLoad; + xhrLoad.subscriber = this; + xhrLoad.progressSubscriber = progressSubscriber; + xhrLoad.request = request; + }; + AjaxSubscriber.prototype.unsubscribe = function () { + var _a = this, done = _a.done, xhr = _a.xhr; + if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') { + xhr.abort(); + } + _super.prototype.unsubscribe.call(this); + }; + return AjaxSubscriber; +}(Subscriber)); +export { AjaxSubscriber }; +var AjaxResponse = /*@__PURE__*/ (function () { + function AjaxResponse(originalEvent, xhr, request) { + this.originalEvent = originalEvent; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + } + return AjaxResponse; +}()); +export { AjaxResponse }; +var AjaxErrorImpl = /*@__PURE__*/ (function () { + function AjaxErrorImpl(message, xhr, request) { + Error.call(this); + this.message = message; + this.name = 'AjaxError'; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + return this; + } + AjaxErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return AjaxErrorImpl; +})(); +export var AjaxError = AjaxErrorImpl; +function parseJson(xhr) { + if ('response' in xhr) { + return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null'); + } + else { + return JSON.parse(xhr.responseText || 'null'); + } +} +function parseXhrResponse(responseType, xhr) { + switch (responseType) { + case 'json': + return parseJson(xhr); + case 'xml': + return xhr.responseXML; + case 'text': + default: + return ('response' in xhr) ? xhr.response : xhr.responseText; + } +} +function AjaxTimeoutErrorImpl(xhr, request) { + AjaxError.call(this, 'ajax timeout', xhr, request); + this.name = 'AjaxTimeoutError'; + return this; +} +export var AjaxTimeoutError = AjaxTimeoutErrorImpl; +//# sourceMappingURL=AjaxObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map new file mode 100644 index 00000000..a5517c65 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/AjaxObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AjaxObservable.js","sources":["../../../../src/internal/observable/dom/AjaxObservable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js b/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js new file mode 100644 index 00000000..136c8636 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js @@ -0,0 +1,217 @@ +/** PURE_IMPORTS_START tslib,_.._Subject,_.._Subscriber,_.._Observable,_.._Subscription,_.._ReplaySubject PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject, AnonymousSubject } from '../../Subject'; +import { Subscriber } from '../../Subscriber'; +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { ReplaySubject } from '../../ReplaySubject'; +var DEFAULT_WEBSOCKET_CONFIG = { + url: '', + deserializer: function (e) { return JSON.parse(e.data); }, + serializer: function (value) { return JSON.stringify(value); }, +}; +var WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }'; +var WebSocketSubject = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(WebSocketSubject, _super); + function WebSocketSubject(urlConfigOrSource, destination) { + var _this = _super.call(this) || this; + if (urlConfigOrSource instanceof Observable) { + _this.destination = destination; + _this.source = urlConfigOrSource; + } + else { + var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG); + _this._output = new Subject(); + if (typeof urlConfigOrSource === 'string') { + config.url = urlConfigOrSource; + } + else { + for (var key in urlConfigOrSource) { + if (urlConfigOrSource.hasOwnProperty(key)) { + config[key] = urlConfigOrSource[key]; + } + } + } + if (!config.WebSocketCtor && WebSocket) { + config.WebSocketCtor = WebSocket; + } + else if (!config.WebSocketCtor) { + throw new Error('no WebSocket constructor can be found'); + } + _this.destination = new ReplaySubject(); + } + return _this; + } + WebSocketSubject.prototype.lift = function (operator) { + var sock = new WebSocketSubject(this._config, this.destination); + sock.operator = operator; + sock.source = this; + return sock; + }; + WebSocketSubject.prototype._resetState = function () { + this._socket = null; + if (!this.source) { + this.destination = new ReplaySubject(); + } + this._output = new Subject(); + }; + WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) { + var self = this; + return new Observable(function (observer) { + try { + self.next(subMsg()); + } + catch (err) { + observer.error(err); + } + var subscription = self.subscribe(function (x) { + try { + if (messageFilter(x)) { + observer.next(x); + } + } + catch (err) { + observer.error(err); + } + }, function (err) { return observer.error(err); }, function () { return observer.complete(); }); + return function () { + try { + self.next(unsubMsg()); + } + catch (err) { + observer.error(err); + } + subscription.unsubscribe(); + }; + }); + }; + WebSocketSubject.prototype._connectSocket = function () { + var _this = this; + var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType; + var observer = this._output; + var socket = null; + try { + socket = protocol ? + new WebSocketCtor(url, protocol) : + new WebSocketCtor(url); + this._socket = socket; + if (binaryType) { + this._socket.binaryType = binaryType; + } + } + catch (e) { + observer.error(e); + return; + } + var subscription = new Subscription(function () { + _this._socket = null; + if (socket && socket.readyState === 1) { + socket.close(); + } + }); + socket.onopen = function (e) { + var _socket = _this._socket; + if (!_socket) { + socket.close(); + _this._resetState(); + return; + } + var openObserver = _this._config.openObserver; + if (openObserver) { + openObserver.next(e); + } + var queue = _this.destination; + _this.destination = Subscriber.create(function (x) { + if (socket.readyState === 1) { + try { + var serializer = _this._config.serializer; + socket.send(serializer(x)); + } + catch (e) { + _this.destination.error(e); + } + } + }, function (e) { + var closingObserver = _this._config.closingObserver; + if (closingObserver) { + closingObserver.next(undefined); + } + if (e && e.code) { + socket.close(e.code, e.reason); + } + else { + observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT)); + } + _this._resetState(); + }, function () { + var closingObserver = _this._config.closingObserver; + if (closingObserver) { + closingObserver.next(undefined); + } + socket.close(); + _this._resetState(); + }); + if (queue && queue instanceof ReplaySubject) { + subscription.add(queue.subscribe(_this.destination)); + } + }; + socket.onerror = function (e) { + _this._resetState(); + observer.error(e); + }; + socket.onclose = function (e) { + _this._resetState(); + var closeObserver = _this._config.closeObserver; + if (closeObserver) { + closeObserver.next(e); + } + if (e.wasClean) { + observer.complete(); + } + else { + observer.error(e); + } + }; + socket.onmessage = function (e) { + try { + var deserializer = _this._config.deserializer; + observer.next(deserializer(e)); + } + catch (err) { + observer.error(err); + } + }; + }; + WebSocketSubject.prototype._subscribe = function (subscriber) { + var _this = this; + var source = this.source; + if (source) { + return source.subscribe(subscriber); + } + if (!this._socket) { + this._connectSocket(); + } + this._output.subscribe(subscriber); + subscriber.add(function () { + var _socket = _this._socket; + if (_this._output.observers.length === 0) { + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + _this._resetState(); + } + }); + return subscriber; + }; + WebSocketSubject.prototype.unsubscribe = function () { + var _socket = this._socket; + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + this._resetState(); + _super.prototype.unsubscribe.call(this); + }; + return WebSocketSubject; +}(AnonymousSubject)); +export { WebSocketSubject }; +//# sourceMappingURL=WebSocketSubject.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map new file mode 100644 index 00000000..6c1c1d51 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/WebSocketSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WebSocketSubject.js","sources":["../../../../src/internal/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js b/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js new file mode 100644 index 00000000..86ee5183 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js @@ -0,0 +1,4 @@ +/** PURE_IMPORTS_START _AjaxObservable PURE_IMPORTS_END */ +import { AjaxObservable } from './AjaxObservable'; +export var ajax = /*@__PURE__*/ (function () { return AjaxObservable.create; })(); +//# sourceMappingURL=ajax.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map new file mode 100644 index 00000000..d2ee88df --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/ajax.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.js","sources":["../../../../src/internal/observable/dom/ajax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAiFxE,MAAM,CAAC,IAAM,IAAI,GAAuB,CAAC,cAAM,OAAA,cAAc,CAAC,MAAM,EAArB,CAAqB,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js b/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js new file mode 100644 index 00000000..9b9778d0 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js @@ -0,0 +1,71 @@ +/** PURE_IMPORTS_START tslib,_.._Observable,_.._Subscription,_.._observable_from PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { from } from '../../observable/from'; +export function fromFetch(input, initWithSelector) { + if (initWithSelector === void 0) { + initWithSelector = {}; + } + var selector = initWithSelector.selector, init = tslib_1.__rest(initWithSelector, ["selector"]); + return new Observable(function (subscriber) { + var controller = new AbortController(); + var signal = controller.signal; + var abortable = true; + var unsubscribed = false; + var subscription = new Subscription(); + subscription.add(function () { + unsubscribed = true; + if (abortable) { + controller.abort(); + } + }); + var perSubscriberInit; + if (init) { + if (init.signal) { + if (init.signal.aborted) { + controller.abort(); + } + else { + var outerSignal_1 = init.signal; + var outerSignalHandler_1 = function () { + if (!signal.aborted) { + controller.abort(); + } + }; + outerSignal_1.addEventListener('abort', outerSignalHandler_1); + subscription.add(function () { return outerSignal_1.removeEventListener('abort', outerSignalHandler_1); }); + } + } + perSubscriberInit = tslib_1.__assign({}, init, { signal: signal }); + } + else { + perSubscriberInit = { signal: signal }; + } + fetch(input, perSubscriberInit).then(function (response) { + if (selector) { + subscription.add(from(selector(response)).subscribe(function (value) { return subscriber.next(value); }, function (err) { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }, function () { + abortable = false; + subscriber.complete(); + })); + } + else { + abortable = false; + subscriber.next(response); + subscriber.complete(); + } + }).catch(function (err) { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }); + return subscription; + }); +} +//# sourceMappingURL=fetch.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map new file mode 100644 index 00000000..ea2c543e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/fetch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fetch.js","sources":["../../../../src/internal/observable/dom/fetch.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AA8F7C,MAAM,UAAU,SAAS,CACvB,KAAuB,EACvB,gBAEM;IAFN,iCAAA,EAAA,qBAEM;IAEE,IAAA,oCAAQ,EAAE,qDAAO,CAAsB;IAC/C,OAAO,IAAI,UAAU,CAAe,UAAA,UAAU;QAC5C,IAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC;YACf,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,SAAS,EAAE;gBACb,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,iBAA8B,CAAC;QACnC,IAAI,IAAI,EAAE;YAER,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;qBAAM;oBACL,IAAM,aAAW,GAAG,IAAI,CAAC,MAAM,CAAC;oBAChC,IAAM,oBAAkB,GAAG;wBACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BACnB,UAAU,CAAC,KAAK,EAAE,CAAC;yBACpB;oBACH,CAAC,CAAC;oBACF,aAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAkB,CAAC,CAAC;oBAC1D,YAAY,CAAC,GAAG,CAAC,cAAM,OAAA,aAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAkB,CAAC,EAA5D,CAA4D,CAAC,CAAC;iBACtF;aACF;YAGD,iBAAiB,wBAAQ,IAAI,IAAE,MAAM,QAAA,GAAE,CAAC;SACzC;aAAM;YACL,iBAAiB,GAAG,EAAE,MAAM,QAAA,EAAE,CAAC;SAChC;QAED,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ;YAC3C,IAAI,QAAQ,EAAE;gBACZ,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACjD,UAAA,KAAK,IAAI,OAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAtB,CAAsB,EAC/B,UAAA,GAAG;oBACD,SAAS,GAAG,KAAK,CAAC;oBAClB,IAAI,CAAC,YAAY,EAAE;wBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACvB;gBACH,CAAC,EACD;oBACE,SAAS,GAAG,KAAK,CAAC;oBAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC,CACF,CAAC,CAAC;aACJ;iBAAM;gBACL,SAAS,GAAG,KAAK,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;aACvB;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG;YACV,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE;gBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js b/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js new file mode 100644 index 00000000..f5dbcaa1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _WebSocketSubject PURE_IMPORTS_END */ +import { WebSocketSubject } from './WebSocketSubject'; +export function webSocket(urlConfigOrSource) { + return new WebSocketSubject(urlConfigOrSource); +} +//# sourceMappingURL=webSocket.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map b/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map new file mode 100644 index 00000000..821e4e62 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/dom/webSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webSocket.js","sources":["../../../../src/internal/observable/dom/webSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAyJ9E,MAAM,UAAU,SAAS,CAAI,iBAAqD;IAChF,OAAO,IAAI,gBAAgB,CAAI,iBAAiB,CAAC,CAAC;AACpD,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/empty.js b/node_modules/rxjs/_esm5/internal/observable/empty.js new file mode 100644 index 00000000..1c4b0c7d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/empty.js @@ -0,0 +1,10 @@ +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +export var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); }); +export function empty(scheduler) { + return scheduler ? emptyScheduled(scheduler) : EMPTY; +} +function emptyScheduled(scheduler) { + return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); +} +//# sourceMappingURL=empty.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/empty.js.map b/node_modules/rxjs/_esm5/internal/observable/empty.js.map new file mode 100644 index 00000000..567e87ce --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/empty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"empty.js","sources":["../../../src/internal/observable/empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC;AAsDhF,MAAM,UAAU,KAAK,CAAC,SAAyB;IAC7C,OAAO,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO,IAAI,UAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,EAA/C,CAA+C,CAAC,CAAC;AAC9F,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/forkJoin.js b/node_modules/rxjs/_esm5/internal/observable/forkJoin.js new file mode 100644 index 00000000..5c38fe7b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/forkJoin.js @@ -0,0 +1,69 @@ +/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { map } from '../operators/map'; +import { isObject } from '../util/isObject'; +import { from } from './from'; +export function forkJoin() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 1) { + var first_1 = sources[0]; + if (isArray(first_1)) { + return forkJoinInternal(first_1, null); + } + if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) { + var keys = Object.keys(first_1); + return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys); + } + } + if (typeof sources[sources.length - 1] === 'function') { + var resultSelector_1 = sources.pop(); + sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources; + return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); })); + } + return forkJoinInternal(sources, null); +} +function forkJoinInternal(sources, keys) { + return new Observable(function (subscriber) { + var len = sources.length; + if (len === 0) { + subscriber.complete(); + return; + } + var values = new Array(len); + var completed = 0; + var emitted = 0; + var _loop_1 = function (i) { + var source = from(sources[i]); + var hasValue = false; + subscriber.add(source.subscribe({ + next: function (value) { + if (!hasValue) { + hasValue = true; + emitted++; + } + values[i] = value; + }, + error: function (err) { return subscriber.error(err); }, + complete: function () { + completed++; + if (completed === len || !hasValue) { + if (emitted === len) { + subscriber.next(keys ? + keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) : + values); + } + subscriber.complete(); + } + } + })); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + }); +} +//# sourceMappingURL=forkJoin.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map b/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map new file mode 100644 index 00000000..e175ee5e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/forkJoin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forkJoin.js","sources":["../../../src/internal/observable/forkJoin.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/from.js b/node_modules/rxjs/_esm5/internal/observable/from.js new file mode 100644 index 00000000..453c25ee --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/from.js @@ -0,0 +1,16 @@ +/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { subscribeTo } from '../util/subscribeTo'; +import { scheduled } from '../scheduled/scheduled'; +export function from(input, scheduler) { + if (!scheduler) { + if (input instanceof Observable) { + return input; + } + return new Observable(subscribeTo(input)); + } + else { + return scheduled(input, scheduler); + } +} +//# sourceMappingURL=from.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/from.js.map b/node_modules/rxjs/_esm5/internal/observable/from.js.map new file mode 100644 index 00000000..d0b7a0a7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/from.js.map @@ -0,0 +1 @@ +{"version":3,"file":"from.js","sources":["../../../src/internal/observable/from.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAyGnD,MAAM,UAAU,IAAI,CAAI,KAAyB,EAAE,SAAyB;IAC1E,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,YAAY,UAAU,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,UAAU,CAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACpC;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/fromArray.js b/node_modules/rxjs/_esm5/internal/observable/fromArray.js new file mode 100644 index 00000000..587cb720 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromArray.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { subscribeToArray } from '../util/subscribeToArray'; +import { scheduleArray } from '../scheduled/scheduleArray'; +export function fromArray(input, scheduler) { + if (!scheduler) { + return new Observable(subscribeToArray(input)); + } + else { + return scheduleArray(input, scheduler); + } +} +//# sourceMappingURL=fromArray.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map b/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map new file mode 100644 index 00000000..55af2bac --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromArray.js","sources":["../../../src/internal/observable/fromArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAI,KAAmB,EAAE,SAAyB;IACzE,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEvent.js b/node_modules/rxjs/_esm5/internal/observable/fromEvent.js new file mode 100644 index 00000000..0c524581 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromEvent.js @@ -0,0 +1,63 @@ +/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { isFunction } from '../util/isFunction'; +import { map } from '../operators/map'; +var toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })(); +export function fromEvent(target, eventName, options, resultSelector) { + if (isFunction(options)) { + resultSelector = options; + options = undefined; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new Observable(function (subscriber) { + function handler(e) { + if (arguments.length > 1) { + subscriber.next(Array.prototype.slice.call(arguments)); + } + else { + subscriber.next(e); + } + } + setupSubscription(target, eventName, handler, subscriber, options); + }); +} +function setupSubscription(sourceObj, eventName, handler, subscriber, options) { + var unsubscribe; + if (isEventTarget(sourceObj)) { + var source_1 = sourceObj; + sourceObj.addEventListener(eventName, handler, options); + unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); }; + } + else if (isJQueryStyleEventEmitter(sourceObj)) { + var source_2 = sourceObj; + sourceObj.on(eventName, handler); + unsubscribe = function () { return source_2.off(eventName, handler); }; + } + else if (isNodeStyleEventEmitter(sourceObj)) { + var source_3 = sourceObj; + sourceObj.addListener(eventName, handler); + unsubscribe = function () { return source_3.removeListener(eventName, handler); }; + } + else if (sourceObj && sourceObj.length) { + for (var i = 0, len = sourceObj.length; i < len; i++) { + setupSubscription(sourceObj[i], eventName, handler, subscriber, options); + } + } + else { + throw new TypeError('Invalid event target'); + } + subscriber.add(unsubscribe); +} +function isNodeStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; +} +function isJQueryStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; +} +function isEventTarget(sourceObj) { + return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; +} +//# sourceMappingURL=fromEvent.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map b/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map new file mode 100644 index 00000000..55aa18e8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromEvent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEvent.js","sources":["../../../src/internal/observable/fromEvent.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js b/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js new file mode 100644 index 00000000..9c40ae61 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js @@ -0,0 +1,32 @@ +/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { isFunction } from '../util/isFunction'; +import { map } from '../operators/map'; +export function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new Observable(function (subscriber) { + var handler = function () { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }; + var retValue; + try { + retValue = addHandler(handler); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!isFunction(removeHandler)) { + return undefined; + } + return function () { return removeHandler(handler, retValue); }; + }); +} +//# sourceMappingURL=fromEventPattern.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map b/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map new file mode 100644 index 00000000..fc758c12 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEventPattern.js","sources":["../../../src/internal/observable/fromEventPattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAwIvC,MAAM,UAAU,gBAAgB,CAAI,UAA8C,EAC9C,aAAiE,EACjE,cAAsC;IAExE,IAAI,cAAc,EAAE;QAElB,OAAO,gBAAgB,CAAI,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CACxD,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,eAAI,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAA9D,CAA8D,CAAC,CAC5E,CAAC;KACH;IAED,OAAO,IAAI,UAAU,CAAU,UAAA,UAAU;QACvC,IAAM,OAAO,GAAG;YAAC,WAAS;iBAAT,UAAS,EAAT,qBAAS,EAAT,IAAS;gBAAT,sBAAS;;YAAK,OAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAA1C,CAA0C,CAAC;QAE1E,IAAI,QAAa,CAAC;QAClB,IAAI;YACF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,cAAM,OAAA,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAhC,CAAgC,CAAE;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/fromIterable.js b/node_modules/rxjs/_esm5/internal/observable/fromIterable.js new file mode 100644 index 00000000..c37371fd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromIterable.js @@ -0,0 +1,16 @@ +/** PURE_IMPORTS_START _Observable,_util_subscribeToIterable,_scheduled_scheduleIterable PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { subscribeToIterable } from '../util/subscribeToIterable'; +import { scheduleIterable } from '../scheduled/scheduleIterable'; +export function fromIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + if (!scheduler) { + return new Observable(subscribeToIterable(input)); + } + else { + return scheduleIterable(input, scheduler); + } +} +//# sourceMappingURL=fromIterable.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map b/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map new file mode 100644 index 00000000..f150bb3e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromIterable.js","sources":["../../../src/internal/observable/fromIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAI,KAAkB,EAAE,SAAyB;IAC3E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC3C;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/fromPromise.js b/node_modules/rxjs/_esm5/internal/observable/fromPromise.js new file mode 100644 index 00000000..a8262165 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromPromise.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START _Observable,_util_subscribeToPromise,_scheduled_schedulePromise PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { subscribeToPromise } from '../util/subscribeToPromise'; +import { schedulePromise } from '../scheduled/schedulePromise'; +export function fromPromise(input, scheduler) { + if (!scheduler) { + return new Observable(subscribeToPromise(input)); + } + else { + return schedulePromise(input, scheduler); + } +} +//# sourceMappingURL=fromPromise.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map b/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map new file mode 100644 index 00000000..d695e5bb --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/fromPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromPromise.js","sources":["../../../src/internal/observable/fromPromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,WAAW,CAAI,KAAqB,EAAE,SAAyB;IAC7E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;SAAM;QACL,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC1C;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/generate.js b/node_modules/rxjs/_esm5/internal/observable/generate.js new file mode 100644 index 00000000..0e8ecb30 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/generate.js @@ -0,0 +1,125 @@ +/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { identity } from '../util/identity'; +import { isScheduler } from '../util/isScheduler'; +export function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { + var resultSelector; + var initialState; + if (arguments.length == 1) { + var options = initialStateOrOptions; + initialState = options.initialState; + condition = options.condition; + iterate = options.iterate; + resultSelector = options.resultSelector || identity; + scheduler = options.scheduler; + } + else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) { + initialState = initialStateOrOptions; + resultSelector = identity; + scheduler = resultSelectorOrObservable; + } + else { + initialState = initialStateOrOptions; + resultSelector = resultSelectorOrObservable; + } + return new Observable(function (subscriber) { + var state = initialState; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + subscriber: subscriber, + iterate: iterate, + condition: condition, + resultSelector: resultSelector, + state: state + }); + } + do { + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + var value = void 0; + try { + value = resultSelector(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } while (true); + return undefined; + }); +} +function dispatch(state) { + var subscriber = state.subscriber, condition = state.condition; + if (subscriber.closed) { + return undefined; + } + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } + else { + state.needIterate = true; + } + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + } + var value; + try { + value = state.resultSelector(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + return undefined; + } + return this.schedule(state); +} +//# sourceMappingURL=generate.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/generate.js.map b/node_modules/rxjs/_esm5/internal/observable/generate.js.map new file mode 100644 index 00000000..05c10dfa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/generate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"generate.js","sources":["../../../src/internal/observable/generate.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/observable/iif.js b/node_modules/rxjs/_esm5/internal/observable/iif.js new file mode 100644 index 00000000..67a4bd92 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/iif.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */ +import { defer } from './defer'; +import { EMPTY } from './empty'; +export function iif(condition, trueResult, falseResult) { + if (trueResult === void 0) { + trueResult = EMPTY; + } + if (falseResult === void 0) { + falseResult = EMPTY; + } + return defer(function () { return condition() ? trueResult : falseResult; }); +} +//# sourceMappingURL=iif.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/iif.js.map b/node_modules/rxjs/_esm5/internal/observable/iif.js.map new file mode 100644 index 00000000..bafa2e28 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/iif.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iif.js","sources":["../../../src/internal/observable/iif.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA2FhC,MAAM,UAAU,GAAG,CACjB,SAAwB,EACxB,UAA4C,EAC5C,WAA6C;IAD7C,2BAAA,EAAA,kBAA4C;IAC5C,4BAAA,EAAA,mBAA6C;IAE7C,OAAO,KAAK,CAAC,cAAM,OAAA,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAtC,CAAsC,CAAC,CAAC;AAC7D,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/interval.js b/node_modules/rxjs/_esm5/internal/observable/interval.js new file mode 100644 index 00000000..c530a022 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/interval.js @@ -0,0 +1,28 @@ +/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +import { isNumeric } from '../util/isNumeric'; +export function interval(period, scheduler) { + if (period === void 0) { + period = 0; + } + if (scheduler === void 0) { + scheduler = async; + } + if (!isNumeric(period) || period < 0) { + period = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + scheduler = async; + } + return new Observable(function (subscriber) { + subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period })); + return subscriber; + }); +} +function dispatch(state) { + var subscriber = state.subscriber, counter = state.counter, period = state.period; + subscriber.next(counter); + this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period); +} +//# sourceMappingURL=interval.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/interval.js.map b/node_modules/rxjs/_esm5/internal/observable/interval.js.map new file mode 100644 index 00000000..8fd0b0ca --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/interval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interval.js","sources":["../../../src/internal/observable/interval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmD9C,MAAM,UAAU,QAAQ,CAAC,MAAU,EACV,SAAgC;IADhC,uBAAA,EAAA,UAAU;IACV,0BAAA,EAAA,iBAAgC;IACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;QACpC,MAAM,GAAG,CAAC,CAAC;KACZ;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1D,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAS,UAAA,UAAU;QACtC,UAAU,CAAC,GAAG,CACZ,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CACzE,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAuC,KAAoB;IAClE,IAAA,6BAAU,EAAE,uBAAO,EAAE,qBAAM,CAAW;IAC9C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,QAAA,EAAE,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/merge.js b/node_modules/rxjs/_esm5/internal/observable/merge.js new file mode 100644 index 00000000..baa8fd3e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/merge.js @@ -0,0 +1,28 @@ +/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { isScheduler } from '../util/isScheduler'; +import { mergeAll } from '../operators/mergeAll'; +import { fromArray } from './fromArray'; +export function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var concurrent = Number.POSITIVE_INFINITY; + var scheduler = null; + var last = observables[observables.length - 1]; + if (isScheduler(last)) { + scheduler = observables.pop(); + if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { + concurrent = observables.pop(); + } + } + else if (typeof last === 'number') { + concurrent = observables.pop(); + } + if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) { + return observables[0]; + } + return mergeAll(concurrent)(fromArray(observables, scheduler)); +} +//# sourceMappingURL=merge.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/merge.js.map b/node_modules/rxjs/_esm5/internal/observable/merge.js.map new file mode 100644 index 00000000..e65dd6ef --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../../src/internal/observable/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAqHxC,MAAM,UAAU,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC/F,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAQ,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,SAAS,GAAkB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;SACxC;KACF;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACnC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KACxC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,UAAU,EAAE;QAC1F,OAAsB,WAAW,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,OAAO,QAAQ,CAAI,UAAU,CAAC,CAAC,SAAS,CAAM,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/never.js b/node_modules/rxjs/_esm5/internal/observable/never.js new file mode 100644 index 00000000..09f7cd0b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/never.js @@ -0,0 +1,8 @@ +/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { noop } from '../util/noop'; +export var NEVER = /*@__PURE__*/ new Observable(noop); +export function never() { + return NEVER; +} +//# sourceMappingURL=never.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/never.js.map b/node_modules/rxjs/_esm5/internal/observable/never.js.map new file mode 100644 index 00000000..a32cf252 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/never.js.map @@ -0,0 +1 @@ +{"version":3,"file":"never.js","sources":["../../../src/internal/observable/never.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAgCpC,MAAM,CAAC,IAAM,KAAK,GAAG,IAAI,UAAU,CAAQ,IAAI,CAAC,CAAC;AAKjD,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/of.js b/node_modules/rxjs/_esm5/internal/observable/of.js new file mode 100644 index 00000000..90787442 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/of.js @@ -0,0 +1,19 @@ +/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */ +import { isScheduler } from '../util/isScheduler'; +import { fromArray } from './fromArray'; +import { scheduleArray } from '../scheduled/scheduleArray'; +export function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args[args.length - 1]; + if (isScheduler(scheduler)) { + args.pop(); + return scheduleArray(args, scheduler); + } + else { + return fromArray(args); + } +} +//# sourceMappingURL=of.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/of.js.map b/node_modules/rxjs/_esm5/internal/observable/of.js.map new file mode 100644 index 00000000..e0b0338b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/of.js.map @@ -0,0 +1 @@ +{"version":3,"file":"of.js","sources":["../../../src/internal/observable/of.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAiG3D,MAAM,UAAU,EAAE;IAAI,cAAiC;SAAjC,UAAiC,EAAjC,qBAAiC,EAAjC,IAAiC;QAAjC,yBAAiC;;IACrD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IACvD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,aAAa,CAAC,IAAW,EAAE,SAAS,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,SAAS,CAAC,IAAW,CAAC,CAAC;KAC/B;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js b/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js new file mode 100644 index 00000000..efa034ec --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js @@ -0,0 +1,27 @@ +/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { from } from './from'; +import { isArray } from '../util/isArray'; +import { EMPTY } from './empty'; +export function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 0) { + return EMPTY; + } + var first = sources[0], remainder = sources.slice(1); + if (sources.length === 1 && isArray(first)) { + return onErrorResumeNext.apply(void 0, first); + } + return new Observable(function (subscriber) { + var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); }; + return from(first).subscribe({ + next: function (value) { subscriber.next(value); }, + error: subNext, + complete: subNext, + }); + }); +} +//# sourceMappingURL=onErrorResumeNext.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map b/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map new file mode 100644 index 00000000..357a8a7e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/observable/onErrorResumeNext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAwEhC,MAAM,UAAU,iBAAiB;IAAO,iBAEqD;SAFrD,UAEqD,EAFrD,qBAEqD,EAFrD,IAEqD;QAFrD,4BAEqD;;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAEO,IAAA,kBAAK,EAAE,4BAAY,CAAa;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,iBAAiB,eAAI,KAAK,EAAE;KACpC;IAED,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,OAAO,GAAG,cAAM,OAAA,UAAU,CAAC,GAAG,CAClC,iBAAiB,eAAI,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CACtD,EAFqB,CAErB,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC3B,IAAI,YAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/pairs.js b/node_modules/rxjs/_esm5/internal/observable/pairs.js new file mode 100644 index 00000000..85d799b8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/pairs.js @@ -0,0 +1,39 @@ +/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +export function pairs(obj, scheduler) { + if (!scheduler) { + return new Observable(function (subscriber) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length && !subscriber.closed; i++) { + var key = keys[i]; + if (obj.hasOwnProperty(key)) { + subscriber.next([key, obj[key]]); + } + } + subscriber.complete(); + }); + } + else { + return new Observable(function (subscriber) { + var keys = Object.keys(obj); + var subscription = new Subscription(); + subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj })); + return subscription; + }); + } +} +export function dispatch(state) { + var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj; + if (!subscriber.closed) { + if (index < keys.length) { + var key = keys[index]; + subscriber.next([key, obj[key]]); + subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj })); + } + else { + subscriber.complete(); + } + } +} +//# sourceMappingURL=pairs.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/pairs.js.map b/node_modules/rxjs/_esm5/internal/observable/pairs.js.map new file mode 100644 index 00000000..d2f93bd5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/pairs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairs.js","sources":["../../../src/internal/observable/pairs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkD/C,MAAM,UAAU,KAAK,CAAI,GAAW,EAAE,SAAyB;IAC7D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC3B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClC;aACF;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,IAAI,UAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CACd,SAAS,CAAC,QAAQ,CACf,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAGD,MAAM,UAAU,QAAQ,CACI,KAAsH;IACxI,IAAA,iBAAI,EAAE,mBAAK,EAAE,6BAAU,EAAE,iCAAY,EAAE,eAAG,CAAW;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;SAC5F;aAAM;YACL,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;KACF;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/partition.js b/node_modules/rxjs/_esm5/internal/observable/partition.js new file mode 100644 index 00000000..7b46b047 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/partition.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */ +import { not } from '../util/not'; +import { subscribeTo } from '../util/subscribeTo'; +import { filter } from '../operators/filter'; +import { Observable } from '../Observable'; +export function partition(source, predicate, thisArg) { + return [ + filter(predicate, thisArg)(new Observable(subscribeTo(source))), + filter(not(predicate, thisArg))(new Observable(subscribeTo(source))) + ]; +} +//# sourceMappingURL=partition.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/partition.js.map b/node_modules/rxjs/_esm5/internal/observable/partition.js.map new file mode 100644 index 00000000..6c8ed222 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../../../src/internal/observable/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAqD3C,MAAM,UAAU,SAAS,CACvB,MAA0B,EAC1B,SAA+C,EAC/C,OAAa;IAEb,OAAO;QACL,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,IAAI,UAAU,CAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7C,CAAC;AACtC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/race.js b/node_modules/rxjs/_esm5/internal/observable/race.js new file mode 100644 index 00000000..51290a0e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/race.js @@ -0,0 +1,78 @@ +/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { isArray } from '../util/isArray'; +import { fromArray } from './fromArray'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + if (observables.length === 1) { + if (isArray(observables[0])) { + observables = observables[0]; + } + else { + return observables[0]; + } + } + return fromArray(observables, undefined).lift(new RaceOperator()); +} +var RaceOperator = /*@__PURE__*/ (function () { + function RaceOperator() { + } + RaceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RaceSubscriber(subscriber)); + }; + return RaceOperator; +}()); +export { RaceOperator }; +var RaceSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(RaceSubscriber, _super); + function RaceSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasFirst = false; + _this.observables = []; + _this.subscriptions = []; + return _this; + } + RaceSubscriber.prototype._next = function (observable) { + this.observables.push(observable); + }; + RaceSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + for (var i = 0; i < len && !this.hasFirst; i++) { + var observable = observables[i]; + var subscription = subscribeToResult(this, observable, undefined, i); + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null; + } + }; + RaceSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + if (!this.hasFirst) { + this.hasFirst = true; + for (var i = 0; i < this.subscriptions.length; i++) { + if (i !== outerIndex) { + var subscription = this.subscriptions[i]; + subscription.unsubscribe(); + this.remove(subscription); + } + } + this.subscriptions = null; + } + this.destination.next(innerValue); + }; + return RaceSubscriber; +}(OuterSubscriber)); +export { RaceSubscriber }; +//# sourceMappingURL=race.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/race.js.map b/node_modules/rxjs/_esm5/internal/observable/race.js.map new file mode 100644 index 00000000..42ff0b67 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../../src/internal/observable/race.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAoD9D,MAAM,UAAU,IAAI;IAAI,qBAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,gCAAsC;;IAG5D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3B,WAAW,GAAG,WAAW,CAAC,CAAC,CAAsB,CAAC;SACnD;aAAM;YACL,OAAO,WAAW,CAAC,CAAC,CAAkB,CAAC;SACxC;KACF;IAED,OAAO,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC;AACvE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;IACH,mBAAC;AAAD,CAAC,AAJD,IAIC;;AAOD;IAAuC,0CAAqB;IAK1D,wBAAY,WAA0B;QAAtC,YACE,kBAAM,WAAW,CAAC,SACnB;QANO,cAAQ,GAAY,KAAK,CAAC;QAC1B,iBAAW,GAAsB,EAAE,CAAC;QACpC,mBAAa,GAAmB,EAAE,CAAC;;IAI3C,CAAC;IAES,8BAAK,GAAf,UAAgB,UAAe;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,kCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;QAE/B,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAE,CAAC;gBAExE,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACvC;gBACD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACxB;YACD,IAAI,CAAC,WAAW,GAAG,IAAK,CAAC;SAC1B;IACH,CAAC;IAED,mCAAU,GAAV,UAAW,WAAc,EAAE,UAAa,EAC7B,UAAkB;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,IAAI,CAAC,KAAK,UAAU,EAAE;oBACpB,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBAEzC,YAAY,CAAC,WAAW,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBAC3B;aACF;YAED,IAAI,CAAC,aAAa,GAAG,IAAK,CAAC;SAC5B;QAED,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IACH,qBAAC;AAAD,CAAC,AApDD,CAAuC,eAAe,GAoDrD"} diff --git a/node_modules/rxjs/_esm5/internal/observable/range.js b/node_modules/rxjs/_esm5/internal/observable/range.js new file mode 100644 index 00000000..3e0184cd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/range.js @@ -0,0 +1,48 @@ +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +export function range(start, count, scheduler) { + if (start === void 0) { + start = 0; + } + return new Observable(function (subscriber) { + if (count === undefined) { + count = start; + start = 0; + } + var index = 0; + var current = start; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + index: index, count: count, start: start, subscriber: subscriber + }); + } + else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(current++); + if (subscriber.closed) { + break; + } + } while (true); + } + return undefined; + }); +} +export function dispatch(state) { + var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; + if (index >= count) { + subscriber.complete(); + return; + } + subscriber.next(start); + if (subscriber.closed) { + return; + } + state.index = index + 1; + state.start = start + 1; + this.schedule(state); +} +//# sourceMappingURL=range.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/range.js.map b/node_modules/rxjs/_esm5/internal/observable/range.js.map new file mode 100644 index 00000000..d36149e9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"range.js","sources":["../../../src/internal/observable/range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAC,KAAiB,EACjB,KAAc,EACd,SAAyB;IAFzB,sBAAA,EAAA,SAAiB;IAGrC,OAAO,IAAI,UAAU,CAAS,UAAA,UAAU;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC;YACd,KAAK,GAAG,CAAC,CAAC;SACX;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrC,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA;aAChC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG;gBACD,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3B,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,MAAM;iBACP;aACF,QAAQ,IAAI,EAAE;SAChB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAGD,MAAM,UAAU,QAAQ,CAA6B,KAAU;IACrD,IAAA,mBAAK,EAAE,mBAAK,EAAE,mBAAK,EAAE,6BAAU,CAAW;IAElD,IAAI,KAAK,IAAI,KAAK,EAAE;QAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO;KACR;IAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/throwError.js b/node_modules/rxjs/_esm5/internal/observable/throwError.js new file mode 100644 index 00000000..aa4196a7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/throwError.js @@ -0,0 +1,15 @@ +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +export function throwError(error, scheduler) { + if (!scheduler) { + return new Observable(function (subscriber) { return subscriber.error(error); }); + } + else { + return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); + } +} +function dispatch(_a) { + var error = _a.error, subscriber = _a.subscriber; + subscriber.error(error); +} +//# sourceMappingURL=throwError.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/throwError.js.map b/node_modules/rxjs/_esm5/internal/observable/throwError.js.map new file mode 100644 index 00000000..ec48b6f3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/throwError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throwError.js","sources":["../../../src/internal/observable/throwError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoE3C,MAAM,UAAU,UAAU,CAAC,KAAU,EAAE,SAAyB;IAC9D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;KAC9D;SAAM;QACL,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAtD,CAAsD,CAAC,CAAC;KAC7F;AACH,CAAC;AAOD,SAAS,QAAQ,CAAC,EAAkC;QAAhC,gBAAK,EAAE,0BAAU;IACnC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/timer.js b/node_modules/rxjs/_esm5/internal/observable/timer.js new file mode 100644 index 00000000..73b8540a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/timer.js @@ -0,0 +1,41 @@ +/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +import { isNumeric } from '../util/isNumeric'; +import { isScheduler } from '../util/isScheduler'; +export function timer(dueTime, periodOrScheduler, scheduler) { + if (dueTime === void 0) { + dueTime = 0; + } + var period = -1; + if (isNumeric(periodOrScheduler)) { + period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); + } + else if (isScheduler(periodOrScheduler)) { + scheduler = periodOrScheduler; + } + if (!isScheduler(scheduler)) { + scheduler = async; + } + return new Observable(function (subscriber) { + var due = isNumeric(dueTime) + ? dueTime + : (+dueTime - scheduler.now()); + return scheduler.schedule(dispatch, due, { + index: 0, period: period, subscriber: subscriber + }); + }); +} +function dispatch(state) { + var index = state.index, period = state.period, subscriber = state.subscriber; + subscriber.next(index); + if (subscriber.closed) { + return; + } + else if (period === -1) { + return subscriber.complete(); + } + state.index = index + 1; + this.schedule(state, period); +} +//# sourceMappingURL=timer.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/timer.js.map b/node_modules/rxjs/_esm5/internal/observable/timer.js.map new file mode 100644 index 00000000..ef5924f2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/timer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timer.js","sources":["../../../src/internal/observable/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAqDlD,MAAM,UAAU,KAAK,CAAC,OAA0B,EAC1B,iBAA0C,EAC1C,SAAyB;IAFzB,wBAAA,EAAA,WAA0B;IAG9C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,IAAI,SAAS,CAAC,iBAAiB,CAAC,EAAE;QAChC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC1E;SAAM,IAAI,WAAW,CAAC,iBAAiB,CAAC,EAAE;QACzC,SAAS,GAAG,iBAAwB,CAAC;KACtC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;QAC3B,SAAS,GAAG,KAAK,CAAC;KACnB;IAED,OAAO,IAAI,UAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,OAAkB;YACrB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,KAAK,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,UAAU,YAAA;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAQD,SAAS,QAAQ,CAAoC,KAAiB;IAC5D,IAAA,mBAAK,EAAE,qBAAM,EAAE,6BAAU,CAAW;IAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;SAAM,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACxB,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/using.js b/node_modules/rxjs/_esm5/internal/observable/using.js new file mode 100644 index 00000000..d65743c9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/using.js @@ -0,0 +1,33 @@ +/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { from } from './from'; +import { EMPTY } from './empty'; +export function using(resourceFactory, observableFactory) { + return new Observable(function (subscriber) { + var resource; + try { + resource = resourceFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var result; + try { + result = observableFactory(resource); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = result ? from(result) : EMPTY; + var subscription = source.subscribe(subscriber); + return function () { + subscription.unsubscribe(); + if (resource) { + resource.unsubscribe(); + } + }; + }); +} +//# sourceMappingURL=using.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/using.js.map b/node_modules/rxjs/_esm5/internal/observable/using.js.map new file mode 100644 index 00000000..e2278474 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/using.js.map @@ -0,0 +1 @@ +{"version":3,"file":"using.js","sources":["../../../src/internal/observable/using.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA8BhC,MAAM,UAAU,KAAK,CAAI,eAA4C,EAC5C,iBAAiF;IACxG,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAI,QAA+B,CAAC;QAEpC,IAAI;YACF,QAAQ,GAAG,eAAe,EAAE,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,MAAiC,CAAC;QACtC,IAAI;YACF,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO;YACL,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,WAAW,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/observable/zip.js b/node_modules/rxjs/_esm5/internal/observable/zip.js new file mode 100644 index 00000000..3093f8b4 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/zip.js @@ -0,0 +1,217 @@ +/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_.._internal_symbol_iterator,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { fromArray } from './fromArray'; +import { isArray } from '../util/isArray'; +import { Subscriber } from '../Subscriber'; +import { iterator as Symbol_iterator } from '../../internal/symbol/iterator'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = observables[observables.length - 1]; + if (typeof resultSelector === 'function') { + observables.pop(); + } + return fromArray(observables, undefined).lift(new ZipOperator(resultSelector)); +} +var ZipOperator = /*@__PURE__*/ (function () { + function ZipOperator(resultSelector) { + this.resultSelector = resultSelector; + } + ZipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); + }; + return ZipOperator; +}()); +export { ZipOperator }; +var ZipSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ZipSubscriber, _super); + function ZipSubscriber(destination, resultSelector, values) { + if (values === void 0) { + values = Object.create(null); + } + var _this = _super.call(this, destination) || this; + _this.resultSelector = resultSelector; + _this.iterators = []; + _this.active = 0; + _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined; + return _this; + } + ZipSubscriber.prototype._next = function (value) { + var iterators = this.iterators; + if (isArray(value)) { + iterators.push(new StaticArrayIterator(value)); + } + else if (typeof value[Symbol_iterator] === 'function') { + iterators.push(new StaticIterator(value[Symbol_iterator]())); + } + else { + iterators.push(new ZipBufferIterator(this.destination, this, value)); + } + }; + ZipSubscriber.prototype._complete = function () { + var iterators = this.iterators; + var len = iterators.length; + this.unsubscribe(); + if (len === 0) { + this.destination.complete(); + return; + } + this.active = len; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (iterator.stillUnsubscribed) { + var destination = this.destination; + destination.add(iterator.subscribe()); + } + else { + this.active--; + } + } + }; + ZipSubscriber.prototype.notifyInactive = function () { + this.active--; + if (this.active === 0) { + this.destination.complete(); + } + }; + ZipSubscriber.prototype.checkIterators = function () { + var iterators = this.iterators; + var len = iterators.length; + var destination = this.destination; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { + return; + } + } + var shouldComplete = false; + var args = []; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + var result = iterator.next(); + if (iterator.hasCompleted()) { + shouldComplete = true; + } + if (result.done) { + destination.complete(); + return; + } + args.push(result.value); + } + if (this.resultSelector) { + this._tryresultSelector(args); + } + else { + destination.next(args); + } + if (shouldComplete) { + destination.complete(); + } + }; + ZipSubscriber.prototype._tryresultSelector = function (args) { + var result; + try { + result = this.resultSelector.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return ZipSubscriber; +}(Subscriber)); +export { ZipSubscriber }; +var StaticIterator = /*@__PURE__*/ (function () { + function StaticIterator(iterator) { + this.iterator = iterator; + this.nextResult = iterator.next(); + } + StaticIterator.prototype.hasValue = function () { + return true; + }; + StaticIterator.prototype.next = function () { + var result = this.nextResult; + this.nextResult = this.iterator.next(); + return result; + }; + StaticIterator.prototype.hasCompleted = function () { + var nextResult = this.nextResult; + return Boolean(nextResult && nextResult.done); + }; + return StaticIterator; +}()); +var StaticArrayIterator = /*@__PURE__*/ (function () { + function StaticArrayIterator(array) { + this.array = array; + this.index = 0; + this.length = 0; + this.length = array.length; + } + StaticArrayIterator.prototype[Symbol_iterator] = function () { + return this; + }; + StaticArrayIterator.prototype.next = function (value) { + var i = this.index++; + var array = this.array; + return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + }; + StaticArrayIterator.prototype.hasValue = function () { + return this.array.length > this.index; + }; + StaticArrayIterator.prototype.hasCompleted = function () { + return this.array.length === this.index; + }; + return StaticArrayIterator; +}()); +var ZipBufferIterator = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ZipBufferIterator, _super); + function ZipBufferIterator(destination, parent, observable) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + _this.observable = observable; + _this.stillUnsubscribed = true; + _this.buffer = []; + _this.isComplete = false; + return _this; + } + ZipBufferIterator.prototype[Symbol_iterator] = function () { + return this; + }; + ZipBufferIterator.prototype.next = function () { + var buffer = this.buffer; + if (buffer.length === 0 && this.isComplete) { + return { value: null, done: true }; + } + else { + return { value: buffer.shift(), done: false }; + } + }; + ZipBufferIterator.prototype.hasValue = function () { + return this.buffer.length > 0; + }; + ZipBufferIterator.prototype.hasCompleted = function () { + return this.buffer.length === 0 && this.isComplete; + }; + ZipBufferIterator.prototype.notifyComplete = function () { + if (this.buffer.length > 0) { + this.isComplete = true; + this.parent.notifyInactive(); + } + else { + this.destination.complete(); + } + }; + ZipBufferIterator.prototype.notifyNext = function (innerValue) { + this.buffer.push(innerValue); + this.parent.checkIterators(); + }; + ZipBufferIterator.prototype.subscribe = function () { + return innerSubscribe(this.observable, new SimpleInnerSubscriber(this)); + }; + return ZipBufferIterator; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=zip.js.map diff --git a/node_modules/rxjs/_esm5/internal/observable/zip.js.map b/node_modules/rxjs/_esm5/internal/observable/zip.js.map new file mode 100644 index 00000000..c03e7bcd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/observable/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/audit.js b/node_modules/rxjs/_esm5/internal/operators/audit.js new file mode 100644 index 00000000..d250af88 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/audit.js @@ -0,0 +1,68 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function audit(durationSelector) { + return function auditOperatorFunction(source) { + return source.lift(new AuditOperator(durationSelector)); + }; +} +var AuditOperator = /*@__PURE__*/ (function () { + function AuditOperator(durationSelector) { + this.durationSelector = durationSelector; + } + AuditOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); + }; + return AuditOperator; +}()); +var AuditSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AuditSubscriber, _super); + function AuditSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + return _this; + } + AuditSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + var duration = void 0; + try { + var durationSelector = this.durationSelector; + duration = durationSelector(value); + } + catch (err) { + return this.destination.error(err); + } + var innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (!innerSubscription || innerSubscription.closed) { + this.clearThrottle(); + } + else { + this.add(this.throttled = innerSubscription); + } + } + }; + AuditSubscriber.prototype.clearThrottle = function () { + var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; + if (throttled) { + this.remove(throttled); + this.throttled = undefined; + throttled.unsubscribe(); + } + if (hasValue) { + this.value = undefined; + this.hasValue = false; + this.destination.next(value); + } + }; + AuditSubscriber.prototype.notifyNext = function () { + this.clearThrottle(); + }; + AuditSubscriber.prototype.notifyComplete = function () { + this.clearThrottle(); + }; + return AuditSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=audit.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/audit.js.map b/node_modules/rxjs/_esm5/internal/operators/audit.js.map new file mode 100644 index 00000000..5bf00972 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sources":["../../../src/internal/operators/audit.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAgDjG,MAAM,UAAU,KAAK,CAAI,gBAA0D;IACjF,OAAO,SAAS,qBAAqB,CAAC,MAAqB;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,uBAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAoC,2CAA2B;IAM7D,yBAAY,WAA0B,EAClB,gBAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,QAAQ,SAAA,CAAC;YACb,IAAI;gBACM,IAAA,wCAAgB,CAAU;gBAClC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;aACrC;YACD,IAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,uCAAa,GAAb;QACQ,IAAA,SAAqC,EAAnC,gBAAK,EAAE,sBAAQ,EAAE,wBAAS,CAAU;QAC5C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,SAAS,CAAC,WAAW,EAAE,CAAC;SACzB;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,oCAAU,GAAV;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,wCAAc,GAAd;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACH,sBAAC;AAAD,CAAC,AApDD,CAAoC,qBAAqB,GAoDxD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/auditTime.js b/node_modules/rxjs/_esm5/internal/operators/auditTime.js new file mode 100644 index 00000000..e8622060 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/auditTime.js @@ -0,0 +1,11 @@ +/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ +import { async } from '../scheduler/async'; +import { audit } from './audit'; +import { timer } from '../observable/timer'; +export function auditTime(duration, scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + return audit(function () { return timer(duration, scheduler); }); +} +//# sourceMappingURL=auditTime.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map b/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map new file mode 100644 index 00000000..318084a8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sources":["../../../src/internal/operators/auditTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAoD5C,MAAM,UAAU,SAAS,CAAI,QAAgB,EAAE,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC7E,OAAO,KAAK,CAAC,cAAM,OAAA,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAA1B,CAA0B,CAAC,CAAC;AACjD,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/buffer.js b/node_modules/rxjs/_esm5/internal/operators/buffer.js new file mode 100644 index 00000000..26e22e7a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/buffer.js @@ -0,0 +1,36 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function buffer(closingNotifier) { + return function bufferOperatorFunction(source) { + return source.lift(new BufferOperator(closingNotifier)); + }; +} +var BufferOperator = /*@__PURE__*/ (function () { + function BufferOperator(closingNotifier) { + this.closingNotifier = closingNotifier; + } + BufferOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); + }; + return BufferOperator; +}()); +var BufferSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(BufferSubscriber, _super); + function BufferSubscriber(destination, closingNotifier) { + var _this = _super.call(this, destination) || this; + _this.buffer = []; + _this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(_this))); + return _this; + } + BufferSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferSubscriber.prototype.notifyNext = function () { + var buffer = this.buffer; + this.buffer = []; + this.destination.next(buffer); + }; + return BufferSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=buffer.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/buffer.js.map b/node_modules/rxjs/_esm5/internal/operators/buffer.js.map new file mode 100644 index 00000000..21bc8fe4 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sources":["../../../src/internal/operators/buffer.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA0CjG,MAAM,UAAU,MAAM,CAAI,eAAgC;IACxD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,wBAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IACpD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,4CAA6B;IAG7D,0BAAY,WAA4B,EAAE,eAAgC;QAA1E,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAQ,EAAE,CAAC;QAIvB,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,qBAAqB,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC;;IAC7E,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,qCAAU,GAAV;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,CAAkC,qBAAqB,GAiBtD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferCount.js b/node_modules/rxjs/_esm5/internal/operators/bufferCount.js new file mode 100644 index 00000000..b882b6ef --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferCount.js @@ -0,0 +1,90 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { + startBufferEvery = null; + } + return function bufferCountOperatorFunction(source) { + return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); + }; +} +var BufferCountOperator = /*@__PURE__*/ (function () { + function BufferCountOperator(bufferSize, startBufferEvery) { + this.bufferSize = bufferSize; + this.startBufferEvery = startBufferEvery; + if (!startBufferEvery || bufferSize === startBufferEvery) { + this.subscriberClass = BufferCountSubscriber; + } + else { + this.subscriberClass = BufferSkipCountSubscriber; + } + } + BufferCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); + }; + return BufferCountOperator; +}()); +var BufferCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(BufferCountSubscriber, _super); + function BufferCountSubscriber(destination, bufferSize) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.buffer = []; + return _this; + } + BufferCountSubscriber.prototype._next = function (value) { + var buffer = this.buffer; + buffer.push(value); + if (buffer.length == this.bufferSize) { + this.destination.next(buffer); + this.buffer = []; + } + }; + BufferCountSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer.length > 0) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + return BufferCountSubscriber; +}(Subscriber)); +var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(BufferSkipCountSubscriber, _super); + function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.startBufferEvery = startBufferEvery; + _this.buffers = []; + _this.count = 0; + return _this; + } + BufferSkipCountSubscriber.prototype._next = function (value) { + var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count; + this.count++; + if (count % startBufferEvery === 0) { + buffers.push([]); + } + for (var i = buffers.length; i--;) { + var buffer = buffers[i]; + buffer.push(value); + if (buffer.length === bufferSize) { + buffers.splice(i, 1); + this.destination.next(buffer); + } + } + }; + BufferSkipCountSubscriber.prototype._complete = function () { + var _a = this, buffers = _a.buffers, destination = _a.destination; + while (buffers.length > 0) { + var buffer = buffers.shift(); + if (buffer.length > 0) { + destination.next(buffer); + } + } + _super.prototype._complete.call(this); + }; + return BufferSkipCountSubscriber; +}(Subscriber)); +//# sourceMappingURL=bufferCount.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map new file mode 100644 index 00000000..0beead03 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sources":["../../../src/internal/operators/bufferCount.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferTime.js b/node_modules/rxjs/_esm5/internal/operators/bufferTime.js new file mode 100644 index 00000000..723d9542 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferTime.js @@ -0,0 +1,148 @@ +/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { async } from '../scheduler/async'; +import { Subscriber } from '../Subscriber'; +import { isScheduler } from '../util/isScheduler'; +export function bufferTime(bufferTimeSpan) { + var length = arguments.length; + var scheduler = async; + if (isScheduler(arguments[arguments.length - 1])) { + scheduler = arguments[arguments.length - 1]; + length--; + } + var bufferCreationInterval = null; + if (length >= 2) { + bufferCreationInterval = arguments[1]; + } + var maxBufferSize = Number.POSITIVE_INFINITY; + if (length >= 3) { + maxBufferSize = arguments[2]; + } + return function bufferTimeOperatorFunction(source) { + return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); + }; +} +var BufferTimeOperator = /*@__PURE__*/ (function () { + function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + this.bufferTimeSpan = bufferTimeSpan; + this.bufferCreationInterval = bufferCreationInterval; + this.maxBufferSize = maxBufferSize; + this.scheduler = scheduler; + } + BufferTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); + }; + return BufferTimeOperator; +}()); +var Context = /*@__PURE__*/ (function () { + function Context() { + this.buffer = []; + } + return Context; +}()); +var BufferTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(BufferTimeSubscriber, _super); + function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.bufferTimeSpan = bufferTimeSpan; + _this.bufferCreationInterval = bufferCreationInterval; + _this.maxBufferSize = maxBufferSize; + _this.scheduler = scheduler; + _this.contexts = []; + var context = _this.openContext(); + _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; + if (_this.timespanOnly) { + var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + else { + var closeState = { subscriber: _this, context: context }; + var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); + } + return _this; + } + BufferTimeSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + var filledBufferContext; + for (var i = 0; i < len; i++) { + var context_1 = contexts[i]; + var buffer = context_1.buffer; + buffer.push(value); + if (buffer.length == this.maxBufferSize) { + filledBufferContext = context_1; + } + } + if (filledBufferContext) { + this.onBufferFull(filledBufferContext); + } + }; + BufferTimeSubscriber.prototype._error = function (err) { + this.contexts.length = 0; + _super.prototype._error.call(this, err); + }; + BufferTimeSubscriber.prototype._complete = function () { + var _a = this, contexts = _a.contexts, destination = _a.destination; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + destination.next(context_2.buffer); + } + _super.prototype._complete.call(this); + }; + BufferTimeSubscriber.prototype._unsubscribe = function () { + this.contexts = null; + }; + BufferTimeSubscriber.prototype.onBufferFull = function (context) { + this.closeContext(context); + var closeAction = context.closeAction; + closeAction.unsubscribe(); + this.remove(closeAction); + if (!this.closed && this.timespanOnly) { + context = this.openContext(); + var bufferTimeSpan = this.bufferTimeSpan; + var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan }; + this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + }; + BufferTimeSubscriber.prototype.openContext = function () { + var context = new Context(); + this.contexts.push(context); + return context; + }; + BufferTimeSubscriber.prototype.closeContext = function (context) { + this.destination.next(context.buffer); + var contexts = this.contexts; + var spliceIndex = contexts ? contexts.indexOf(context) : -1; + if (spliceIndex >= 0) { + contexts.splice(contexts.indexOf(context), 1); + } + }; + return BufferTimeSubscriber; +}(Subscriber)); +function dispatchBufferTimeSpanOnly(state) { + var subscriber = state.subscriber; + var prevContext = state.context; + if (prevContext) { + subscriber.closeContext(prevContext); + } + if (!subscriber.closed) { + state.context = subscriber.openContext(); + state.context.closeAction = this.schedule(state, state.bufferTimeSpan); + } +} +function dispatchBufferCreation(state) { + var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; + var context = subscriber.openContext(); + var action = this; + if (!subscriber.closed) { + subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context })); + action.schedule(state, bufferCreationInterval); + } +} +function dispatchBufferClose(arg) { + var subscriber = arg.subscriber, context = arg.context; + subscriber.closeContext(context); +} +//# sourceMappingURL=bufferTime.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map new file mode 100644 index 00000000..15915439 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sources":["../../../src/internal/operators/bufferTime.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js b/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js new file mode 100644 index 00000000..fa5427d2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js @@ -0,0 +1,106 @@ +/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscription } from '../Subscription'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +export function bufferToggle(openings, closingSelector) { + return function bufferToggleOperatorFunction(source) { + return source.lift(new BufferToggleOperator(openings, closingSelector)); + }; +} +var BufferToggleOperator = /*@__PURE__*/ (function () { + function BufferToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + BufferToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return BufferToggleOperator; +}()); +var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(BufferToggleSubscriber, _super); + function BufferToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(subscribeToResult(_this, openings)); + return _this; + } + BufferToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].buffer.push(value); + } + }; + BufferToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_1 = contexts.shift(); + context_1.subscription.unsubscribe(); + context_1.buffer = null; + context_1.subscription = null; + } + this.contexts = null; + _super.prototype._error.call(this, err); + }; + BufferToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + this.destination.next(context_2.buffer); + context_2.subscription.unsubscribe(); + context_2.buffer = null; + context_2.subscription = null; + } + this.contexts = null; + _super.prototype._complete.call(this); + }; + BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue) { + outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); + }; + BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) { + this.closeBuffer(innerSub.context); + }; + BufferToggleSubscriber.prototype.openBuffer = function (value) { + try { + var closingSelector = this.closingSelector; + var closingNotifier = closingSelector.call(this, value); + if (closingNotifier) { + this.trySubscribe(closingNotifier); + } + } + catch (err) { + this._error(err); + } + }; + BufferToggleSubscriber.prototype.closeBuffer = function (context) { + var contexts = this.contexts; + if (contexts && context) { + var buffer = context.buffer, subscription = context.subscription; + this.destination.next(buffer); + contexts.splice(contexts.indexOf(context), 1); + this.remove(subscription); + subscription.unsubscribe(); + } + }; + BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) { + var contexts = this.contexts; + var buffer = []; + var subscription = new Subscription(); + var context = { buffer: buffer, subscription: subscription }; + contexts.push(context); + var innerSubscription = subscribeToResult(this, closingNotifier, context); + if (!innerSubscription || innerSubscription.closed) { + this.closeBuffer(context); + } + else { + innerSubscription.context = context; + this.add(innerSubscription); + subscription.add(innerSubscription); + } + }; + return BufferToggleSubscriber; +}(OuterSubscriber)); +//# sourceMappingURL=bufferToggle.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map new file mode 100644 index 00000000..7bb3ceee --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sources":["../../../src/internal/operators/bufferToggle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js b/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js new file mode 100644 index 00000000..b07709bd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js @@ -0,0 +1,81 @@ +/** PURE_IMPORTS_START tslib,_Subscription,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscription } from '../Subscription'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function bufferWhen(closingSelector) { + return function (source) { + return source.lift(new BufferWhenOperator(closingSelector)); + }; +} +var BufferWhenOperator = /*@__PURE__*/ (function () { + function BufferWhenOperator(closingSelector) { + this.closingSelector = closingSelector; + } + BufferWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); + }; + return BufferWhenOperator; +}()); +var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(BufferWhenSubscriber, _super); + function BufferWhenSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.closingSelector = closingSelector; + _this.subscribing = false; + _this.openBuffer(); + return _this; + } + BufferWhenSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferWhenSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + BufferWhenSubscriber.prototype._unsubscribe = function () { + this.buffer = undefined; + this.subscribing = false; + }; + BufferWhenSubscriber.prototype.notifyNext = function () { + this.openBuffer(); + }; + BufferWhenSubscriber.prototype.notifyComplete = function () { + if (this.subscribing) { + this.complete(); + } + else { + this.openBuffer(); + } + }; + BufferWhenSubscriber.prototype.openBuffer = function () { + var closingSubscription = this.closingSubscription; + if (closingSubscription) { + this.remove(closingSubscription); + closingSubscription.unsubscribe(); + } + var buffer = this.buffer; + if (this.buffer) { + this.destination.next(buffer); + } + this.buffer = []; + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (err) { + return this.error(err); + } + closingSubscription = new Subscription(); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this))); + this.subscribing = false; + }; + return BufferWhenSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=bufferWhen.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map new file mode 100644 index 00000000..52879f2f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sources":["../../../src/internal/operators/bufferWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/catchError.js b/node_modules/rxjs/_esm5/internal/operators/catchError.js new file mode 100644 index 00000000..8ac70a81 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/catchError.js @@ -0,0 +1,49 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function catchError(selector) { + return function catchErrorOperatorFunction(source) { + var operator = new CatchOperator(selector); + var caught = source.lift(operator); + return (operator.caught = caught); + }; +} +var CatchOperator = /*@__PURE__*/ (function () { + function CatchOperator(selector) { + this.selector = selector; + } + CatchOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); + }; + return CatchOperator; +}()); +var CatchSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(CatchSubscriber, _super); + function CatchSubscriber(destination, selector, caught) { + var _this = _super.call(this, destination) || this; + _this.selector = selector; + _this.caught = caught; + return _this; + } + CatchSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var result = void 0; + try { + result = this.selector(err, this.caught); + } + catch (err2) { + _super.prototype.error.call(this, err2); + return; + } + this._unsubscribeAndRecycle(); + var innerSubscriber = new SimpleInnerSubscriber(this); + this.add(innerSubscriber); + var innerSubscription = innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + this.add(innerSubscription); + } + } + }; + return CatchSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=catchError.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/catchError.js.map b/node_modules/rxjs/_esm5/internal/operators/catchError.js.map new file mode 100644 index 00000000..9535e07c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/catchError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catchError.js","sources":["../../../src/internal/operators/catchError.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAkFjG,MAAM,UAAU,UAAU,CACxB,QAAgD;IAEhD,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,IAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;IAGE,uBAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAoC,2CAA+B;IACjE,yBAAY,WAA4B,EACpB,QAAqE,EACrE,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAA6D;QACrE,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IAOD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,MAAM,SAAK,CAAC;YAChB,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,IAAI,EAAE;gBACb,iBAAM,KAAK,YAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;aACR;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,IAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAIlE,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAoC,qBAAqB,GAiCxD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/combineAll.js b/node_modules/rxjs/_esm5/internal/operators/combineAll.js new file mode 100644 index 00000000..2be83a41 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/combineAll.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */ +import { CombineLatestOperator } from '../observable/combineLatest'; +export function combineAll(project) { + return function (source) { return source.lift(new CombineLatestOperator(project)); }; +} +//# sourceMappingURL=combineAll.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map b/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map new file mode 100644 index 00000000..1105b520 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sources":["../../../src/internal/operators/combineAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAsDpE,MAAM,UAAU,UAAU,CAAO,OAAsC;IACrE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/combineLatest.js b/node_modules/rxjs/_esm5/internal/operators/combineLatest.js new file mode 100644 index 00000000..9718499d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/combineLatest.js @@ -0,0 +1,20 @@ +/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */ +import { isArray } from '../util/isArray'; +import { CombineLatestOperator } from '../observable/combineLatest'; +import { from } from '../observable/from'; +var none = {}; +export function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var project = null; + if (typeof observables[observables.length - 1] === 'function') { + project = observables.pop(); + } + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0].slice(); + } + return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); }; +} +//# sourceMappingURL=combineLatest.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map b/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map new file mode 100644 index 00000000..911b1220 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../../src/internal/operators/combineLatest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAI1C,IAAM,IAAI,GAAG,EAAE,CAAC;AAoChB,MAAM,UAAU,aAAa;IAAO,qBAE+C;SAF/C,UAE+C,EAF/C,qBAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IACjF,IAAI,OAAO,GAAiC,IAAI,CAAC;IACjD,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,EAAE;QAC7D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC3D;IAID,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAS,WAAW,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;KAC7C;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,SAAK,WAAW,EAAE,EAAE,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,EAApF,CAAoF,CAAC;AACzH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/concat.js b/node_modules/rxjs/_esm5/internal/operators/concat.js new file mode 100644 index 00000000..2827f395 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concat.js @@ -0,0 +1,10 @@ +/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */ +import { concat as concatStatic } from '../observable/concat'; +export function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); }; +} +//# sourceMappingURL=concat.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/concat.js.map b/node_modules/rxjs/_esm5/internal/operators/concat.js.map new file mode 100644 index 00000000..32942793 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../../src/internal/operators/concat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA0B/D,MAAM,UAAU,MAAM;IAAO,qBAA2D;SAA3D,UAA2D,EAA3D,qBAA2D,EAA3D,IAA2D;QAA3D,gCAA2D;;IACtF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,gBAAC,MAAM,SAAK,WAAW,GAAE,EAAtD,CAAsD,CAAC;AAC3F,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/concatAll.js b/node_modules/rxjs/_esm5/internal/operators/concatAll.js new file mode 100644 index 00000000..bc3a8033 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concatAll.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */ +import { mergeAll } from './mergeAll'; +export function concatAll() { + return mergeAll(1); +} +//# sourceMappingURL=concatAll.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map b/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map new file mode 100644 index 00000000..9c92ccc7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sources":["../../../src/internal/operators/concatAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgEtC,MAAM,UAAU,SAAS;IACvB,OAAO,QAAQ,CAAI,CAAC,CAAC,CAAC;AACxB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMap.js b/node_modules/rxjs/_esm5/internal/operators/concatMap.js new file mode 100644 index 00000000..16b9e95c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concatMap.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ +import { mergeMap } from './mergeMap'; +export function concatMap(project, resultSelector) { + return mergeMap(project, resultSelector, 1); +} +//# sourceMappingURL=concatMap.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map b/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map new file mode 100644 index 00000000..63a35fa9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sources":["../../../src/internal/operators/concatMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuEtC,MAAM,UAAU,SAAS,CACvB,OAAuC,EACvC,cAA6G;IAE7G,OAAO,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js b/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js new file mode 100644 index 00000000..616264dc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ +import { concatMap } from './concatMap'; +export function concatMapTo(innerObservable, resultSelector) { + return concatMap(function () { return innerObservable; }, resultSelector); +} +//# sourceMappingURL=concatMapTo.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map new file mode 100644 index 00000000..fb2e7222 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sources":["../../../src/internal/operators/concatMapTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmExC,MAAM,UAAU,WAAW,CACzB,eAAkB,EAClB,cAA6G;IAE7G,OAAO,SAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/count.js b/node_modules/rxjs/_esm5/internal/operators/count.js new file mode 100644 index 00000000..122cb3ee --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/count.js @@ -0,0 +1,54 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function count(predicate) { + return function (source) { return source.lift(new CountOperator(predicate, source)); }; +} +var CountOperator = /*@__PURE__*/ (function () { + function CountOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + CountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + }; + return CountOperator; +}()); +var CountSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(CountSubscriber, _super); + function CountSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.count = 0; + _this.index = 0; + return _this; + } + CountSubscriber.prototype._next = function (value) { + if (this.predicate) { + this._tryPredicate(value); + } + else { + this.count++; + } + }; + CountSubscriber.prototype._tryPredicate = function (value) { + var result; + try { + result = this.predicate(value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.count++; + } + }; + CountSubscriber.prototype._complete = function () { + this.destination.next(this.count); + this.destination.complete(); + }; + return CountSubscriber; +}(Subscriber)); +//# sourceMappingURL=count.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/count.js.map b/node_modules/rxjs/_esm5/internal/operators/count.js.map new file mode 100644 index 00000000..0ddc9247 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sources":["../../../src/internal/operators/count.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA6D3C,MAAM,UAAU,KAAK,CAAI,SAAuE;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAjD,CAAiD,CAAC;AACtF,CAAC;AAED;IACE,uBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,2CAAa;IAI5C,yBAAY,WAA6B,EACrB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAClB,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAEO,uCAAa,GAArB,UAAsB,KAAQ;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AArCD,CAAiC,UAAU,GAqC1C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/debounce.js b/node_modules/rxjs/_esm5/internal/operators/debounce.js new file mode 100644 index 00000000..e2cdd0d0 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/debounce.js @@ -0,0 +1,74 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function debounce(durationSelector) { + return function (source) { return source.lift(new DebounceOperator(durationSelector)); }; +} +var DebounceOperator = /*@__PURE__*/ (function () { + function DebounceOperator(durationSelector) { + this.durationSelector = durationSelector; + } + DebounceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); + }; + return DebounceOperator; +}()); +var DebounceSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DebounceSubscriber, _super); + function DebounceSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + return _this; + } + DebounceSubscriber.prototype._next = function (value) { + try { + var result = this.durationSelector.call(this, value); + if (result) { + this._tryNext(value, result); + } + } + catch (err) { + this.destination.error(err); + } + }; + DebounceSubscriber.prototype._complete = function () { + this.emitValue(); + this.destination.complete(); + }; + DebounceSubscriber.prototype._tryNext = function (value, duration) { + var subscription = this.durationSubscription; + this.value = value; + this.hasValue = true; + if (subscription) { + subscription.unsubscribe(); + this.remove(subscription); + } + subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (subscription && !subscription.closed) { + this.add(this.durationSubscription = subscription); + } + }; + DebounceSubscriber.prototype.notifyNext = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + var value = this.value; + var subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = undefined; + subscription.unsubscribe(); + this.remove(subscription); + } + this.value = undefined; + this.hasValue = false; + _super.prototype._next.call(this, value); + } + }; + return DebounceSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=debounce.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/debounce.js.map b/node_modules/rxjs/_esm5/internal/operators/debounce.js.map new file mode 100644 index 00000000..ca125a64 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sources":["../../../src/internal/operators/debounce.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAkDjG,MAAM,UAAU,QAAQ,CAAI,gBAA0D;IACpF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAnD,CAAmD,CAAC;AACxF,CAAC;AAED;IACE,0BAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,uBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAuC,8CAA2B;IAKhE,4BAAY,WAA0B,EAClB,gBAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAG,KAAK,CAAC;;IAMzB,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEvD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;SAC9B;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;IAC/B,CAAC;IAEO,qCAAQ,GAAhB,UAAiB,KAAQ,EAAE,QAAoC;QAC7D,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,YAAY,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,CAAC;SACpD;IACH,CAAC;IAED,uCAAU,GAAV;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,2CAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,sCAAS,GAAT;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC/C,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;gBACtC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAC3B;YAMD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,iBAAM,KAAK,YAAC,KAAM,CAAC,CAAC;SACrB;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AArED,CAAuC,qBAAqB,GAqE3D"} diff --git a/node_modules/rxjs/_esm5/internal/operators/debounceTime.js b/node_modules/rxjs/_esm5/internal/operators/debounceTime.js new file mode 100644 index 00000000..ce18492a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/debounceTime.js @@ -0,0 +1,64 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +export function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; +} +var DebounceTimeOperator = /*@__PURE__*/ (function () { + function DebounceTimeOperator(dueTime, scheduler) { + this.dueTime = dueTime; + this.scheduler = scheduler; + } + DebounceTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); + }; + return DebounceTimeOperator; +}()); +var DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DebounceTimeSubscriber, _super); + function DebounceTimeSubscriber(destination, dueTime, scheduler) { + var _this = _super.call(this, destination) || this; + _this.dueTime = dueTime; + _this.scheduler = scheduler; + _this.debouncedSubscription = null; + _this.lastValue = null; + _this.hasValue = false; + return _this; + } + DebounceTimeSubscriber.prototype._next = function (value) { + this.clearDebounce(); + this.lastValue = value; + this.hasValue = true; + this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); + }; + DebounceTimeSubscriber.prototype._complete = function () { + this.debouncedNext(); + this.destination.complete(); + }; + DebounceTimeSubscriber.prototype.debouncedNext = function () { + this.clearDebounce(); + if (this.hasValue) { + var lastValue = this.lastValue; + this.lastValue = null; + this.hasValue = false; + this.destination.next(lastValue); + } + }; + DebounceTimeSubscriber.prototype.clearDebounce = function () { + var debouncedSubscription = this.debouncedSubscription; + if (debouncedSubscription !== null) { + this.remove(debouncedSubscription); + debouncedSubscription.unsubscribe(); + this.debouncedSubscription = null; + } + }; + return DebounceTimeSubscriber; +}(Subscriber)); +function dispatchNext(subscriber) { + subscriber.debouncedNext(); +} +//# sourceMappingURL=debounceTime.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map b/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map new file mode 100644 index 00000000..b0f304ea --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sources":["../../../src/internal/operators/debounceTime.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAuD3C,MAAM,UAAU,YAAY,CAAI,OAAe,EAAE,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC/E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAzD,CAAyD,CAAC;AAC9F,CAAC;AAED;IACE,8BAAoB,OAAe,EAAU,SAAwB;QAAjD,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAe;IACrE,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,kDAAa;IAKnD,gCAAY,WAA0B,EAClB,OAAe,EACf,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAQ;QACf,eAAS,GAAT,SAAS,CAAe;QANpC,2BAAqB,GAAiB,IAAI,CAAC;QAC3C,eAAS,GAAM,IAAI,CAAC;QACpB,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,8CAAa,GAAb;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACT,IAAA,0BAAS,CAAU;YAM3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,8CAAa,GAArB;QACE,IAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAhDD,CAAwC,UAAU,GAgDjD;AAED,SAAS,YAAY,CAAC,UAAuC;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js b/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js new file mode 100644 index 00000000..3fa86ca4 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js @@ -0,0 +1,39 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function defaultIfEmpty(defaultValue) { + if (defaultValue === void 0) { + defaultValue = null; + } + return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); }; +} +var DefaultIfEmptyOperator = /*@__PURE__*/ (function () { + function DefaultIfEmptyOperator(defaultValue) { + this.defaultValue = defaultValue; + } + DefaultIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); + }; + return DefaultIfEmptyOperator; +}()); +var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DefaultIfEmptySubscriber, _super); + function DefaultIfEmptySubscriber(destination, defaultValue) { + var _this = _super.call(this, destination) || this; + _this.defaultValue = defaultValue; + _this.isEmpty = true; + return _this; + } + DefaultIfEmptySubscriber.prototype._next = function (value) { + this.isEmpty = false; + this.destination.next(value); + }; + DefaultIfEmptySubscriber.prototype._complete = function () { + if (this.isEmpty) { + this.destination.next(this.defaultValue); + } + this.destination.complete(); + }; + return DefaultIfEmptySubscriber; +}(Subscriber)); +//# sourceMappingURL=defaultIfEmpty.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map b/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map new file mode 100644 index 00000000..7cddd3f8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sources":["../../../src/internal/operators/defaultIfEmpty.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA4C3C,MAAM,UAAU,cAAc,CAAO,YAAsB;IAAtB,6BAAA,EAAA,mBAAsB;IACzD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAsB,EAA1E,CAA0E,CAAC;AAC/G,CAAC;AAED;IAEE,gCAAoB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;IACnC,CAAC;IAED,qCAAI,GAAJ,UAAK,UAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAA6C,oDAAa;IAGxD,kCAAY,WAA8B,EAAU,YAAe;QAAnE,YACE,kBAAM,WAAW,CAAC,SACnB;QAFmD,kBAAY,GAAZ,YAAY,CAAG;QAF3D,aAAO,GAAY,IAAI,CAAC;;IAIhC,CAAC;IAES,wCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,4CAAS,GAAnB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,+BAAC;AAAD,CAAC,AAlBD,CAA6C,UAAU,GAkBtD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/delay.js b/node_modules/rxjs/_esm5/internal/operators/delay.js new file mode 100644 index 00000000..c54ee751 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/delay.js @@ -0,0 +1,93 @@ +/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +export function delay(delay, scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + var absoluteDelay = isDate(delay); + var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); + return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; +} +var DelayOperator = /*@__PURE__*/ (function () { + function DelayOperator(delay, scheduler) { + this.delay = delay; + this.scheduler = scheduler; + } + DelayOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); + }; + return DelayOperator; +}()); +var DelaySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DelaySubscriber, _super); + function DelaySubscriber(destination, delay, scheduler) { + var _this = _super.call(this, destination) || this; + _this.delay = delay; + _this.scheduler = scheduler; + _this.queue = []; + _this.active = false; + _this.errored = false; + return _this; + } + DelaySubscriber.dispatch = function (state) { + var source = state.source; + var queue = source.queue; + var scheduler = state.scheduler; + var destination = state.destination; + while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { + queue.shift().notification.observe(destination); + } + if (queue.length > 0) { + var delay_1 = Math.max(0, queue[0].time - scheduler.now()); + this.schedule(state, delay_1); + } + else { + this.unsubscribe(); + source.active = false; + } + }; + DelaySubscriber.prototype._schedule = function (scheduler) { + this.active = true; + var destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + source: this, destination: this.destination, scheduler: scheduler + })); + }; + DelaySubscriber.prototype.scheduleNotification = function (notification) { + if (this.errored === true) { + return; + } + var scheduler = this.scheduler; + var message = new DelayMessage(scheduler.now() + this.delay, notification); + this.queue.push(message); + if (this.active === false) { + this._schedule(scheduler); + } + }; + DelaySubscriber.prototype._next = function (value) { + this.scheduleNotification(Notification.createNext(value)); + }; + DelaySubscriber.prototype._error = function (err) { + this.errored = true; + this.queue = []; + this.destination.error(err); + this.unsubscribe(); + }; + DelaySubscriber.prototype._complete = function () { + this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); + }; + return DelaySubscriber; +}(Subscriber)); +var DelayMessage = /*@__PURE__*/ (function () { + function DelayMessage(time, notification) { + this.time = time; + this.notification = notification; + } + return DelayMessage; +}()); +//# sourceMappingURL=delay.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/delay.js.map b/node_modules/rxjs/_esm5/internal/operators/delay.js.map new file mode 100644 index 00000000..1e955da7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sources":["../../../src/internal/operators/delay.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/delayWhen.js b/node_modules/rxjs/_esm5/internal/operators/delayWhen.js new file mode 100644 index 00000000..b021defe --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/delayWhen.js @@ -0,0 +1,132 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function (source) { + return new SubscriptionDelayObservable(source, subscriptionDelay) + .lift(new DelayWhenOperator(delayDurationSelector)); + }; + } + return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); }; +} +var DelayWhenOperator = /*@__PURE__*/ (function () { + function DelayWhenOperator(delayDurationSelector) { + this.delayDurationSelector = delayDurationSelector; + } + DelayWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); + }; + return DelayWhenOperator; +}()); +var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DelayWhenSubscriber, _super); + function DelayWhenSubscriber(destination, delayDurationSelector) { + var _this = _super.call(this, destination) || this; + _this.delayDurationSelector = delayDurationSelector; + _this.completed = false; + _this.delayNotifierSubscriptions = []; + _this.index = 0; + return _this; + } + DelayWhenSubscriber.prototype.notifyNext = function (outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.destination.next(outerValue); + this.removeSubscription(innerSub); + this.tryComplete(); + }; + DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) { + var value = this.removeSubscription(innerSub); + if (value) { + this.destination.next(value); + } + this.tryComplete(); + }; + DelayWhenSubscriber.prototype._next = function (value) { + var index = this.index++; + try { + var delayNotifier = this.delayDurationSelector(value, index); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); + } + } + catch (err) { + this.destination.error(err); + } + }; + DelayWhenSubscriber.prototype._complete = function () { + this.completed = true; + this.tryComplete(); + this.unsubscribe(); + }; + DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { + subscription.unsubscribe(); + var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + if (subscriptionIdx !== -1) { + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); + } + return subscription.outerValue; + }; + DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { + var notifierSubscription = subscribeToResult(this, delayNotifier, value); + if (notifierSubscription && !notifierSubscription.closed) { + var destination = this.destination; + destination.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + }; + DelayWhenSubscriber.prototype.tryComplete = function () { + if (this.completed && this.delayNotifierSubscriptions.length === 0) { + this.destination.complete(); + } + }; + return DelayWhenSubscriber; +}(OuterSubscriber)); +var SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SubscriptionDelayObservable, _super); + function SubscriptionDelayObservable(source, subscriptionDelay) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subscriptionDelay = subscriptionDelay; + return _this; + } + SubscriptionDelayObservable.prototype._subscribe = function (subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + }; + return SubscriptionDelayObservable; +}(Observable)); +var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SubscriptionDelaySubscriber, _super); + function SubscriptionDelaySubscriber(parent, source) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.source = source; + _this.sourceSubscribed = false; + return _this; + } + SubscriptionDelaySubscriber.prototype._next = function (unused) { + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype._error = function (err) { + this.unsubscribe(); + this.parent.error(err); + }; + SubscriptionDelaySubscriber.prototype._complete = function () { + this.unsubscribe(); + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { + if (!this.sourceSubscribed) { + this.sourceSubscribed = true; + this.unsubscribe(); + this.source.subscribe(this.parent); + } + }; + return SubscriptionDelaySubscriber; +}(Subscriber)); +//# sourceMappingURL=delayWhen.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map new file mode 100644 index 00000000..df44de72 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sources":["../../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/dematerialize.js b/node_modules/rxjs/_esm5/internal/operators/dematerialize.js new file mode 100644 index 00000000..1de64c27 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/dematerialize.js @@ -0,0 +1,27 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function dematerialize() { + return function dematerializeOperatorFunction(source) { + return source.lift(new DeMaterializeOperator()); + }; +} +var DeMaterializeOperator = /*@__PURE__*/ (function () { + function DeMaterializeOperator() { + } + DeMaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); + }; + return DeMaterializeOperator; +}()); +var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DeMaterializeSubscriber, _super); + function DeMaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + DeMaterializeSubscriber.prototype._next = function (value) { + value.observe(this.destination); + }; + return DeMaterializeSubscriber; +}(Subscriber)); +//# sourceMappingURL=dematerialize.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map b/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map new file mode 100644 index 00000000..ec9080aa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sources":["../../../src/internal/operators/dematerialize.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAkD3C,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAS,6BAA6B,CAAC,MAAmC;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,oCAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IACH,4BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAmE,mDAAa;IAC9E,iCAAY,WAA4B;eACtC,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,uCAAK,GAAf,UAAgB,KAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IACH,8BAAC;AAAD,CAAC,AARD,CAAmE,UAAU,GAQ5E"} diff --git a/node_modules/rxjs/_esm5/internal/operators/distinct.js b/node_modules/rxjs/_esm5/internal/operators/distinct.js new file mode 100644 index 00000000..4119529b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/distinct.js @@ -0,0 +1,64 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function distinct(keySelector, flushes) { + return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); }; +} +var DistinctOperator = /*@__PURE__*/ (function () { + function DistinctOperator(keySelector, flushes) { + this.keySelector = keySelector; + this.flushes = flushes; + } + DistinctOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); + }; + return DistinctOperator; +}()); +var DistinctSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DistinctSubscriber, _super); + function DistinctSubscriber(destination, keySelector, flushes) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.values = new Set(); + if (flushes) { + _this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(_this))); + } + return _this; + } + DistinctSubscriber.prototype.notifyNext = function () { + this.values.clear(); + }; + DistinctSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + DistinctSubscriber.prototype._next = function (value) { + if (this.keySelector) { + this._useKeySelector(value); + } + else { + this._finalizeNext(value, value); + } + }; + DistinctSubscriber.prototype._useKeySelector = function (value) { + var key; + var destination = this.destination; + try { + key = this.keySelector(value); + } + catch (err) { + destination.error(err); + return; + } + this._finalizeNext(key, value); + }; + DistinctSubscriber.prototype._finalizeNext = function (key, value) { + var values = this.values; + if (!values.has(key)) { + values.add(key); + this.destination.next(value); + } + }; + return DistinctSubscriber; +}(SimpleOuterSubscriber)); +export { DistinctSubscriber }; +//# sourceMappingURL=distinct.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/distinct.js.map b/node_modules/rxjs/_esm5/internal/operators/distinct.js.map new file mode 100644 index 00000000..36990894 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sources":["../../../src/internal/operators/distinct.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA4DjG,MAAM,UAAU,QAAQ,CAAO,WAA6B,EAC7B,OAAyB;IACtD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAvD,CAAuD,CAAC;AAC5F,CAAC;AAED;IACE,0BAAoB,WAA6B,EAAU,OAAyB;QAAhE,gBAAW,GAAX,WAAW,CAAkB;QAAU,YAAO,GAAP,OAAO,CAAkB;IACpF,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IACH,uBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAA8C,8CAA2B;IAGvE,4BAAY,WAA0B,EAAU,WAA6B,EAAE,OAAyB;QAAxG,YACE,kBAAM,WAAW,CAAC,SAKnB;QAN+C,iBAAW,GAAX,WAAW,CAAkB;QAFrE,YAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAK5B,IAAI,OAAO,EAAE;YACX,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,qBAAqB,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC;SACpE;;IACH,CAAC;IAED,uCAAU,GAAV;QACE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,wCAAW,GAAX,UAAY,KAAU;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,4CAAe,GAAvB,UAAwB,KAAQ;QAC9B,IAAI,GAAM,CAAC;QACH,IAAA,8BAAW,CAAU;QAC7B,IAAI;YACF,GAAG,GAAG,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,0CAAa,GAArB,UAAsB,GAAQ,EAAE,KAAQ;QAC9B,IAAA,oBAAM,CAAU;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAEH,yBAAC;AAAD,CAAC,AA/CD,CAA8C,qBAAqB,GA+ClE"} diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js b/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js new file mode 100644 index 00000000..7f1fd98c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js @@ -0,0 +1,60 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function distinctUntilChanged(compare, keySelector) { + return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; +} +var DistinctUntilChangedOperator = /*@__PURE__*/ (function () { + function DistinctUntilChangedOperator(compare, keySelector) { + this.compare = compare; + this.keySelector = keySelector; + } + DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); + }; + return DistinctUntilChangedOperator; +}()); +var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(DistinctUntilChangedSubscriber, _super); + function DistinctUntilChangedSubscriber(destination, compare, keySelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.hasKey = false; + if (typeof compare === 'function') { + _this.compare = compare; + } + return _this; + } + DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { + return x === y; + }; + DistinctUntilChangedSubscriber.prototype._next = function (value) { + var key; + try { + var keySelector = this.keySelector; + key = keySelector ? keySelector(value) : value; + } + catch (err) { + return this.destination.error(err); + } + var result = false; + if (this.hasKey) { + try { + var compare = this.compare; + result = compare(this.key, key); + } + catch (err) { + return this.destination.error(err); + } + } + else { + this.hasKey = true; + } + if (!result) { + this.key = key; + this.destination.next(value); + } + }; + return DistinctUntilChangedSubscriber; +}(Subscriber)); +//# sourceMappingURL=distinctUntilChanged.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map b/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map new file mode 100644 index 00000000..78254779 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sources":["../../../src/internal/operators/distinctUntilChanged.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8D3C,MAAM,UAAU,oBAAoB,CAAO,OAAiC,EAAE,WAAyB;IACrG,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAO,OAAO,EAAE,WAAW,CAAC,CAAC,EAAzE,CAAyE,CAAC;AAC9G,CAAC;AAED;IACE,sCAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,2CAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;IACH,mCAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAmD,0DAAa;IAI9D,wCAAY,WAA0B,EAC1B,OAAgC,EACxB,WAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAInB;QALmB,iBAAW,GAAX,WAAW,CAAa;QAJpC,YAAM,GAAY,KAAK,CAAC;QAM9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;;IACH,CAAC;IAEO,gDAAO,GAAf,UAAgB,CAAM,EAAE,CAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,8CAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,GAAQ,CAAC;QACb,IAAI;YACM,IAAA,8BAAW,CAAU;YAC7B,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAChD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI;gBACM,IAAA,sBAAO,CAAU;gBACzB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,qCAAC;AAAD,CAAC,AAzCD,CAAmD,UAAU,GAyC5D"} diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js new file mode 100644 index 00000000..fbb0131c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ +import { distinctUntilChanged } from './distinctUntilChanged'; +export function distinctUntilKeyChanged(key, compare) { + return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; }); +} +//# sourceMappingURL=distinctUntilKeyChanged.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000..f5dff6e9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../../src/internal/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA8E9D,MAAM,UAAU,uBAAuB,CAAuB,GAAM,EAAE,OAAuC;IAC3G,OAAO,oBAAoB,CAAC,UAAC,CAAI,EAAE,CAAI,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAArD,CAAqD,CAAC,CAAC;AACrG,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/elementAt.js b/node_modules/rxjs/_esm5/internal/operators/elementAt.js new file mode 100644 index 00000000..edc45948 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/elementAt.js @@ -0,0 +1,18 @@ +/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { filter } from './filter'; +import { throwIfEmpty } from './throwIfEmpty'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { take } from './take'; +export function elementAt(index, defaultValue) { + if (index < 0) { + throw new ArgumentOutOfRangeError(); + } + var hasDefaultValue = arguments.length >= 2; + return function (source) { + return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue + ? defaultIfEmpty(defaultValue) + : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); + }; +} +//# sourceMappingURL=elementAt.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map b/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map new file mode 100644 index 00000000..d9f04a7d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sources":["../../../src/internal/operators/elementAt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkD9B,MAAM,UAAU,SAAS,CAAI,KAAa,EAAE,YAAgB;IAC1D,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,uBAAuB,EAAE,CAAC;KAAE;IACvD,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,KAAK,EAAX,CAAW,CAAC,EAC7B,IAAI,CAAC,CAAC,CAAC,EACP,eAAe;QACb,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,YAAY,CAAC,cAAM,OAAA,IAAI,uBAAuB,EAAE,EAA7B,CAA6B,CAAC,CACtD,EANiC,CAMjC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/endWith.js b/node_modules/rxjs/_esm5/internal/operators/endWith.js new file mode 100644 index 00000000..081f55ab --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/endWith.js @@ -0,0 +1,11 @@ +/** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */ +import { concat } from '../observable/concat'; +import { of } from '../observable/of'; +export function endWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; + } + return function (source) { return concat(source, of.apply(void 0, array)); }; +} +//# sourceMappingURL=endWith.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/endWith.js.map b/node_modules/rxjs/_esm5/internal/operators/endWith.js.map new file mode 100644 index 00000000..8b9f150d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/endWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"endWith.js","sources":["../../../src/internal/operators/endWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AA8DtC,MAAM,UAAU,OAAO;IAAI,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAC3D,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,MAAM,EAAE,EAAE,eAAI,KAAK,EAAmB,EAA7C,CAA6C,CAAC;AAClF,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/every.js b/node_modules/rxjs/_esm5/internal/operators/every.js new file mode 100644 index 00000000..71f04b66 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/every.js @@ -0,0 +1,51 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function every(predicate, thisArg) { + return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); }; +} +var EveryOperator = /*@__PURE__*/ (function () { + function EveryOperator(predicate, thisArg, source) { + this.predicate = predicate; + this.thisArg = thisArg; + this.source = source; + } + EveryOperator.prototype.call = function (observer, source) { + return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); + }; + return EveryOperator; +}()); +var EverySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(EverySubscriber, _super); + function EverySubscriber(destination, predicate, thisArg, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.source = source; + _this.index = 0; + _this.thisArg = thisArg || _this; + return _this; + } + EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { + this.destination.next(everyValueMatch); + this.destination.complete(); + }; + EverySubscriber.prototype._next = function (value) { + var result = false; + try { + result = this.predicate.call(this.thisArg, value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (!result) { + this.notifyComplete(false); + } + }; + EverySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return EverySubscriber; +}(Subscriber)); +//# sourceMappingURL=every.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/every.js.map b/node_modules/rxjs/_esm5/internal/operators/every.js.map new file mode 100644 index 00000000..8e4b3d51 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sources":["../../../src/internal/operators/every.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwB3C,MAAM,UAAU,KAAK,CAAI,SAAsE,EACtE,OAAa;IACpC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAA1D,CAA0D,CAAC;AAC/F,CAAC;AAED;IACE,uBAAoB,SAAsE,EACtE,OAAa,EACb,MAAsB;QAFtB,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAM;QACb,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,QAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAiC,2CAAa;IAG5C,yBAAY,WAA8B,EACtB,SAAsE,EACtE,OAAY,EACZ,MAAsB;QAH1C,YAIE,kBAAM,WAAW,CAAC,SAEnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,aAAO,GAAP,OAAO,CAAK;QACZ,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAOxB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAEO,wCAAc,GAAtB,UAAuB,eAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9E;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAiC,UAAU,GAiC1C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaust.js b/node_modules/rxjs/_esm5/internal/operators/exhaust.js new file mode 100644 index 00000000..0c57d79d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/exhaust.js @@ -0,0 +1,43 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function exhaust() { + return function (source) { return source.lift(new SwitchFirstOperator()); }; +} +var SwitchFirstOperator = /*@__PURE__*/ (function () { + function SwitchFirstOperator() { + } + SwitchFirstOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); + }; + return SwitchFirstOperator; +}()); +var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SwitchFirstSubscriber, _super); + function SwitchFirstSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasCompleted = false; + _this.hasSubscription = false; + return _this; + } + SwitchFirstSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(innerSubscribe(value, new SimpleInnerSubscriber(this))); + } + }; + SwitchFirstSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + }; + SwitchFirstSubscriber.prototype.notifyComplete = function () { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return SwitchFirstSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=exhaust.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map b/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map new file mode 100644 index 00000000..672ecfb2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sources":["../../../src/internal/operators/exhaust.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAiDjG,MAAM,UAAU,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAK,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,iDAA2B;IAIhE,+BAAY,WAA0B;QAAtC,YACE,kBAAM,WAAW,CAAC,SACnB;QALO,kBAAY,GAAY,KAAK,CAAC;QAC9B,qBAAe,GAAY,KAAK,CAAC;;IAIzC,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClE;IACH,CAAC;IAES,yCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IAED,8CAAc,GAAd;QACE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IACH,4BAAC;AAAD,CAAC,AA5BD,CAAuC,qBAAqB,GA4B3D"} diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js b/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js new file mode 100644 index 00000000..f9d7a784 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js @@ -0,0 +1,81 @@ +/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; + } + return function (source) { + return source.lift(new ExhaustMapOperator(project)); + }; +} +var ExhaustMapOperator = /*@__PURE__*/ (function () { + function ExhaustMapOperator(project) { + this.project = project; + } + ExhaustMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); + }; + return ExhaustMapOperator; +}()); +var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ExhaustMapSubscriber, _super); + function ExhaustMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.hasSubscription = false; + _this.hasCompleted = false; + _this.index = 0; + return _this; + } + ExhaustMapSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.tryNext(value); + } + }; + ExhaustMapSubscriber.prototype.tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.hasSubscription = true; + this._innerSub(result); + }; + ExhaustMapSubscriber.prototype._innerSub = function (result) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + ExhaustMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + this.unsubscribe(); + }; + ExhaustMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + ExhaustMapSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + ExhaustMapSubscriber.prototype.notifyComplete = function () { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return ExhaustMapSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=exhaustMap.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map b/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map new file mode 100644 index 00000000..4c0921bb --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sources":["../../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/expand.js b/node_modules/rxjs/_esm5/internal/operators/expand.js new file mode 100644 index 00000000..5db802a9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/expand.js @@ -0,0 +1,99 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function expand(project, concurrent, scheduler) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); }; +} +var ExpandOperator = /*@__PURE__*/ (function () { + function ExpandOperator(project, concurrent, scheduler) { + this.project = project; + this.concurrent = concurrent; + this.scheduler = scheduler; + } + ExpandOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); + }; + return ExpandOperator; +}()); +export { ExpandOperator }; +var ExpandSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ExpandSubscriber, _super); + function ExpandSubscriber(destination, project, concurrent, scheduler) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.scheduler = scheduler; + _this.index = 0; + _this.active = 0; + _this.hasCompleted = false; + if (concurrent < Number.POSITIVE_INFINITY) { + _this.buffer = []; + } + return _this; + } + ExpandSubscriber.dispatch = function (arg) { + var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index; + subscriber.subscribeToProjection(result, value, index); + }; + ExpandSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (destination.closed) { + this._complete(); + return; + } + var index = this.index++; + if (this.active < this.concurrent) { + destination.next(value); + try { + var project = this.project; + var result = project(value, index); + if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } + else { + var state = { subscriber: this, result: result, value: value, index: index }; + var destination_1 = this.destination; + destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + } + } + catch (e) { + destination.error(e); + } + } + else { + this.buffer.push(value); + } + }; + ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { + this.active++; + var destination = this.destination; + destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this))); + }; + ExpandSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + this.unsubscribe(); + }; + ExpandSubscriber.prototype.notifyNext = function (innerValue) { + this._next(innerValue); + }; + ExpandSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer && buffer.length > 0) { + this._next(buffer.shift()); + } + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + }; + return ExpandSubscriber; +}(SimpleOuterSubscriber)); +export { ExpandSubscriber }; +//# sourceMappingURL=expand.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/expand.js.map b/node_modules/rxjs/_esm5/internal/operators/expand.js.map new file mode 100644 index 00000000..364ab165 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sources":["../../../src/internal/operators/expand.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA2DjG,MAAM,UAAU,MAAM,CAAO,OAAwD,EACxD,UAA6C,EAC7C,SAAyB;IADzB,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAExE,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAA/D,CAA+D,CAAC;AACpG,CAAC;AAED;IACE,wBAAoB,OAAwD,EACxD,UAAkB,EAClB,SAAyB;QAFzB,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAgB;IAC7C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3G,CAAC;IACH,qBAAC;AAAD,CAAC,AATD,IASC;;AAcD;IAA4C,4CAA2B;IAMrE,0BAAY,WAA0B,EAClB,OAAwD,EACxD,UAAkB,EAClB,SAAyB;QAH7C,YAIE,kBAAM,WAAW,CAAC,SAInB;QAPmB,aAAO,GAAP,OAAO,CAAiD;QACxD,gBAAU,GAAV,UAAU,CAAQ;QAClB,eAAS,GAAT,SAAS,CAAgB;QARrC,WAAK,GAAW,CAAC,CAAC;QAClB,YAAM,GAAW,CAAC,CAAC;QACnB,kBAAY,GAAY,KAAK,CAAC;QAQpC,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE;YACzC,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SAClB;;IACH,CAAC;IAEc,yBAAQ,GAAvB,UAA8B,GAAsB;QAC3C,IAAA,2BAAU,EAAE,mBAAM,EAAE,iBAAK,EAAE,iBAAK,CAAQ;QAC/C,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAU;QACxB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;SACR;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI;gBACM,IAAA,sBAAO,CAAU;gBACzB,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACnB,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBAClD;qBAAM;oBACL,IAAM,KAAK,GAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAC;oBAC5E,IAAM,aAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;oBACrD,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAoB,gBAAgB,CAAC,QAAe,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;iBACzG;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,WAAW,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;aACvB;SACF;aAAM;YACL,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;IACH,CAAC;IAEO,gDAAqB,GAA7B,UAA8B,MAAW,EAAE,KAAQ,EAAE,KAAa;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa;QACtB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,yCAAc,GAAd;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AA9ED,CAA4C,qBAAqB,GA8EhE"} diff --git a/node_modules/rxjs/_esm5/internal/operators/filter.js b/node_modules/rxjs/_esm5/internal/operators/filter.js new file mode 100644 index 00000000..b442c003 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/filter.js @@ -0,0 +1,43 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function filter(predicate, thisArg) { + return function filterOperatorFunction(source) { + return source.lift(new FilterOperator(predicate, thisArg)); + }; +} +var FilterOperator = /*@__PURE__*/ (function () { + function FilterOperator(predicate, thisArg) { + this.predicate = predicate; + this.thisArg = thisArg; + } + FilterOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); + }; + return FilterOperator; +}()); +var FilterSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(FilterSubscriber, _super); + function FilterSubscriber(destination, predicate, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.count = 0; + return _this; + } + FilterSubscriber.prototype._next = function (value) { + var result; + try { + result = this.predicate.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.destination.next(value); + } + }; + return FilterSubscriber; +}(Subscriber)); +//# sourceMappingURL=filter.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/filter.js.map b/node_modules/rxjs/_esm5/internal/operators/filter.js.map new file mode 100644 index 00000000..5f368bc5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sources":["../../../src/internal/operators/filter.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwD3C,MAAM,UAAU,MAAM,CAAI,SAA+C,EAC/C,OAAa;IACrC,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,wBAAoB,SAA+C,EAC/C,OAAa;QADb,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,4CAAa;IAI7C,0BAAY,WAA0B,EAClB,SAA+C,EAC/C,OAAY;QAFhC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAsC;QAC/C,aAAO,GAAP,OAAO,CAAK;QAJhC,WAAK,GAAW,CAAC,CAAC;;IAMlB,CAAC;IAIS,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAxBD,CAAkC,UAAU,GAwB3C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/finalize.js b/node_modules/rxjs/_esm5/internal/operators/finalize.js new file mode 100644 index 00000000..e863d39d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/finalize.js @@ -0,0 +1,26 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +export function finalize(callback) { + return function (source) { return source.lift(new FinallyOperator(callback)); }; +} +var FinallyOperator = /*@__PURE__*/ (function () { + function FinallyOperator(callback) { + this.callback = callback; + } + FinallyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FinallySubscriber(subscriber, this.callback)); + }; + return FinallyOperator; +}()); +var FinallySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(FinallySubscriber, _super); + function FinallySubscriber(destination, callback) { + var _this = _super.call(this, destination) || this; + _this.add(new Subscription(callback)); + return _this; + } + return FinallySubscriber; +}(Subscriber)); +//# sourceMappingURL=finalize.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/finalize.js.map b/node_modules/rxjs/_esm5/internal/operators/finalize.js.map new file mode 100644 index 00000000..7e4b0b85 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/finalize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finalize.js","sources":["../../../src/internal/operators/finalize.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAY/C,MAAM,UAAU,QAAQ,CAAI,QAAoB;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,EAA1C,CAA0C,CAAC;AAC/E,CAAC;AAED;IACE,yBAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,8BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IACH,sBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAmC,6CAAa;IAC9C,2BAAY,WAA0B,EAAE,QAAoB;QAA5D,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;;IACvC,CAAC;IACH,wBAAC;AAAD,CAAC,AALD,CAAmC,UAAU,GAK5C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/find.js b/node_modules/rxjs/_esm5/internal/operators/find.js new file mode 100644 index 00000000..366e91d5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/find.js @@ -0,0 +1,59 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function find(predicate, thisArg) { + if (typeof predicate !== 'function') { + throw new TypeError('predicate is not a function'); + } + return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); }; +} +var FindValueOperator = /*@__PURE__*/ (function () { + function FindValueOperator(predicate, source, yieldIndex, thisArg) { + this.predicate = predicate; + this.source = source; + this.yieldIndex = yieldIndex; + this.thisArg = thisArg; + } + FindValueOperator.prototype.call = function (observer, source) { + return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); + }; + return FindValueOperator; +}()); +export { FindValueOperator }; +var FindValueSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(FindValueSubscriber, _super); + function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.yieldIndex = yieldIndex; + _this.thisArg = thisArg; + _this.index = 0; + return _this; + } + FindValueSubscriber.prototype.notifyComplete = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + this.unsubscribe(); + }; + FindValueSubscriber.prototype._next = function (value) { + var _a = this, predicate = _a.predicate, thisArg = _a.thisArg; + var index = this.index++; + try { + var result = predicate.call(thisArg || this, value, index, this.source); + if (result) { + this.notifyComplete(this.yieldIndex ? index : value); + } + } + catch (err) { + this.destination.error(err); + } + }; + FindValueSubscriber.prototype._complete = function () { + this.notifyComplete(this.yieldIndex ? -1 : undefined); + }; + return FindValueSubscriber; +}(Subscriber)); +export { FindValueSubscriber }; +//# sourceMappingURL=find.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/find.js.map b/node_modules/rxjs/_esm5/internal/operators/find.js.map new file mode 100644 index 00000000..73280951 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sources":["../../../src/internal/operators/find.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AA8CzC,MAAM,UAAU,IAAI,CAAI,SAAsE,EACtE,OAAa;IACnC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;KACpD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAA8B,EAAlG,CAAkG,CAAC;AACvI,CAAC;AAED;IACE,2BAAoB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAHb,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,gCAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;IACH,wBAAC;AAAD,CAAC,AAVD,IAUC;;AAOD;IAA4C,+CAAa;IAGvD,6BAAY,WAA0B,EAClB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAJjC,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,YAAM,GAAN,MAAM,CAAe;QACrB,gBAAU,GAAV,UAAU,CAAS;QACnB,aAAO,GAAP,OAAO,CAAM;QANzB,WAAK,GAAW,CAAC,CAAC;;IAQ1B,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAU;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QAChB,IAAA,SAA2B,EAA1B,wBAAS,EAAE,oBAAO,CAAS;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,IAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACtD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IACH,0BAAC;AAAD,CAAC,AAnCD,CAA4C,UAAU,GAmCrD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/findIndex.js b/node_modules/rxjs/_esm5/internal/operators/findIndex.js new file mode 100644 index 00000000..536c9491 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/findIndex.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ +import { FindValueOperator } from '../operators/find'; +export function findIndex(predicate, thisArg) { + return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); }; +} +//# sourceMappingURL=findIndex.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map b/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map new file mode 100644 index 00000000..41500acf --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sources":["../../../src/internal/operators/findIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA0CtD,MAAM,UAAU,SAAS,CAAI,SAAsE,EACtE,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAoB,EAAvF,CAAuF,CAAC;AAC5H,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/first.js b/node_modules/rxjs/_esm5/internal/operators/first.js new file mode 100644 index 00000000..4305b8d4 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/first.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ +import { EmptyError } from '../util/EmptyError'; +import { filter } from './filter'; +import { take } from './take'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { throwIfEmpty } from './throwIfEmpty'; +import { identity } from '../util/identity'; +export function first(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); }; +} +//# sourceMappingURL=first.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/first.js.map b/node_modules/rxjs/_esm5/internal/operators/first.js.map new file mode 100644 index 00000000..d43d3960 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sources":["../../../src/internal/operators/first.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuE5C,MAAM,UAAU,KAAK,CACnB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,IAAI,CAAC,CAAC,CAAC,EACP,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/groupBy.js b/node_modules/rxjs/_esm5/internal/operators/groupBy.js new file mode 100644 index 00000000..dba2eded --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/groupBy.js @@ -0,0 +1,182 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +export function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { + return function (source) { + return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); + }; +} +var GroupByOperator = /*@__PURE__*/ (function () { + function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) { + this.keySelector = keySelector; + this.elementSelector = elementSelector; + this.durationSelector = durationSelector; + this.subjectSelector = subjectSelector; + } + GroupByOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); + }; + return GroupByOperator; +}()); +var GroupBySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(GroupBySubscriber, _super); + function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.elementSelector = elementSelector; + _this.durationSelector = durationSelector; + _this.subjectSelector = subjectSelector; + _this.groups = null; + _this.attemptedToUnsubscribe = false; + _this.count = 0; + return _this; + } + GroupBySubscriber.prototype._next = function (value) { + var key; + try { + key = this.keySelector(value); + } + catch (err) { + this.error(err); + return; + } + this._group(value, key); + }; + GroupBySubscriber.prototype._group = function (value, key) { + var groups = this.groups; + if (!groups) { + groups = this.groups = new Map(); + } + var group = groups.get(key); + var element; + if (this.elementSelector) { + try { + element = this.elementSelector(value); + } + catch (err) { + this.error(err); + } + } + else { + element = value; + } + if (!group) { + group = (this.subjectSelector ? this.subjectSelector() : new Subject()); + groups.set(key, group); + var groupedObservable = new GroupedObservable(key, group, this); + this.destination.next(groupedObservable); + if (this.durationSelector) { + var duration = void 0; + try { + duration = this.durationSelector(new GroupedObservable(key, group)); + } + catch (err) { + this.error(err); + return; + } + this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); + } + } + if (!group.closed) { + group.next(element); + } + }; + GroupBySubscriber.prototype._error = function (err) { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.error(err); + }); + groups.clear(); + } + this.destination.error(err); + }; + GroupBySubscriber.prototype._complete = function () { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.complete(); + }); + groups.clear(); + } + this.destination.complete(); + }; + GroupBySubscriber.prototype.removeGroup = function (key) { + this.groups.delete(key); + }; + GroupBySubscriber.prototype.unsubscribe = function () { + if (!this.closed) { + this.attemptedToUnsubscribe = true; + if (this.count === 0) { + _super.prototype.unsubscribe.call(this); + } + } + }; + return GroupBySubscriber; +}(Subscriber)); +var GroupDurationSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(GroupDurationSubscriber, _super); + function GroupDurationSubscriber(key, group, parent) { + var _this = _super.call(this, group) || this; + _this.key = key; + _this.group = group; + _this.parent = parent; + return _this; + } + GroupDurationSubscriber.prototype._next = function (value) { + this.complete(); + }; + GroupDurationSubscriber.prototype._unsubscribe = function () { + var _a = this, parent = _a.parent, key = _a.key; + this.key = this.parent = null; + if (parent) { + parent.removeGroup(key); + } + }; + return GroupDurationSubscriber; +}(Subscriber)); +var GroupedObservable = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(GroupedObservable, _super); + function GroupedObservable(key, groupSubject, refCountSubscription) { + var _this = _super.call(this) || this; + _this.key = key; + _this.groupSubject = groupSubject; + _this.refCountSubscription = refCountSubscription; + return _this; + } + GroupedObservable.prototype._subscribe = function (subscriber) { + var subscription = new Subscription(); + var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject; + if (refCountSubscription && !refCountSubscription.closed) { + subscription.add(new InnerRefCountSubscription(refCountSubscription)); + } + subscription.add(groupSubject.subscribe(subscriber)); + return subscription; + }; + return GroupedObservable; +}(Observable)); +export { GroupedObservable }; +var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(InnerRefCountSubscription, _super); + function InnerRefCountSubscription(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + parent.count++; + return _this; + } + InnerRefCountSubscription.prototype.unsubscribe = function () { + var parent = this.parent; + if (!parent.closed && !this.closed) { + _super.prototype.unsubscribe.call(this); + parent.count -= 1; + if (parent.count === 0 && parent.attemptedToUnsubscribe) { + parent.unsubscribe(); + } + } + }; + return InnerRefCountSubscription; +}(Subscription)); +//# sourceMappingURL=groupBy.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map b/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map new file mode 100644 index 00000000..d726fca1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sources":["../../../src/internal/operators/groupBy.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js b/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js new file mode 100644 index 00000000..978266cb --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js @@ -0,0 +1,26 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function ignoreElements() { + return function ignoreElementsOperatorFunction(source) { + return source.lift(new IgnoreElementsOperator()); + }; +} +var IgnoreElementsOperator = /*@__PURE__*/ (function () { + function IgnoreElementsOperator() { + } + IgnoreElementsOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + }; + return IgnoreElementsOperator; +}()); +var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(IgnoreElementsSubscriber, _super); + function IgnoreElementsSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + IgnoreElementsSubscriber.prototype._next = function (unused) { + }; + return IgnoreElementsSubscriber; +}(Subscriber)); +//# sourceMappingURL=ignoreElements.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map b/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map new file mode 100644 index 00000000..f81484aa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sources":["../../../src/internal/operators/ignoreElements.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8B3C,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,8BAA8B,CAAC,MAAuB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,qCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IACH,6BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAA0C,oDAAa;IAAvD;;IAIA,CAAC;IAHW,wCAAK,GAAf,UAAgB,MAAS;IAEzB,CAAC;IACH,+BAAC;AAAD,CAAC,AAJD,CAA0C,UAAU,GAInD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/index.js b/node_modules/rxjs/_esm5/internal/operators/index.js new file mode 100644 index 00000000..4c082a10 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/index.js @@ -0,0 +1,104 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { audit } from './audit'; +export { auditTime } from './auditTime'; +export { buffer } from './buffer'; +export { bufferCount } from './bufferCount'; +export { bufferTime } from './bufferTime'; +export { bufferToggle } from './bufferToggle'; +export { bufferWhen } from './bufferWhen'; +export { catchError } from './catchError'; +export { combineAll } from './combineAll'; +export { combineLatest } from './combineLatest'; +export { concat } from './concat'; +export { concatAll } from './concatAll'; +export { concatMap } from './concatMap'; +export { concatMapTo } from './concatMapTo'; +export { count } from './count'; +export { debounce } from './debounce'; +export { debounceTime } from './debounceTime'; +export { defaultIfEmpty } from './defaultIfEmpty'; +export { delay } from './delay'; +export { delayWhen } from './delayWhen'; +export { dematerialize } from './dematerialize'; +export { distinct } from './distinct'; +export { distinctUntilChanged } from './distinctUntilChanged'; +export { distinctUntilKeyChanged } from './distinctUntilKeyChanged'; +export { elementAt } from './elementAt'; +export { every } from './every'; +export { exhaust } from './exhaust'; +export { exhaustMap } from './exhaustMap'; +export { expand } from './expand'; +export { filter } from './filter'; +export { finalize } from './finalize'; +export { find } from './find'; +export { findIndex } from './findIndex'; +export { first } from './first'; +export { groupBy } from './groupBy'; +export { ignoreElements } from './ignoreElements'; +export { isEmpty } from './isEmpty'; +export { last } from './last'; +export { map } from './map'; +export { mapTo } from './mapTo'; +export { materialize } from './materialize'; +export { max } from './max'; +export { merge } from './merge'; +export { mergeAll } from './mergeAll'; +export { mergeMap } from './mergeMap'; +export { mergeMap as flatMap } from './mergeMap'; +export { mergeMapTo } from './mergeMapTo'; +export { mergeScan } from './mergeScan'; +export { min } from './min'; +export { multicast } from './multicast'; +export { observeOn } from './observeOn'; +export { onErrorResumeNext } from './onErrorResumeNext'; +export { pairwise } from './pairwise'; +export { partition } from './partition'; +export { pluck } from './pluck'; +export { publish } from './publish'; +export { publishBehavior } from './publishBehavior'; +export { publishLast } from './publishLast'; +export { publishReplay } from './publishReplay'; +export { race } from './race'; +export { reduce } from './reduce'; +export { repeat } from './repeat'; +export { repeatWhen } from './repeatWhen'; +export { retry } from './retry'; +export { retryWhen } from './retryWhen'; +export { refCount } from './refCount'; +export { sample } from './sample'; +export { sampleTime } from './sampleTime'; +export { scan } from './scan'; +export { sequenceEqual } from './sequenceEqual'; +export { share } from './share'; +export { shareReplay } from './shareReplay'; +export { single } from './single'; +export { skip } from './skip'; +export { skipLast } from './skipLast'; +export { skipUntil } from './skipUntil'; +export { skipWhile } from './skipWhile'; +export { startWith } from './startWith'; +export { subscribeOn } from './subscribeOn'; +export { switchAll } from './switchAll'; +export { switchMap } from './switchMap'; +export { switchMapTo } from './switchMapTo'; +export { take } from './take'; +export { takeLast } from './takeLast'; +export { takeUntil } from './takeUntil'; +export { takeWhile } from './takeWhile'; +export { tap } from './tap'; +export { throttle } from './throttle'; +export { throttleTime } from './throttleTime'; +export { timeInterval } from './timeInterval'; +export { timeout } from './timeout'; +export { timeoutWith } from './timeoutWith'; +export { timestamp } from './timestamp'; +export { toArray } from './toArray'; +export { window } from './window'; +export { windowCount } from './windowCount'; +export { windowTime } from './windowTime'; +export { windowToggle } from './windowToggle'; +export { windowWhen } from './windowWhen'; +export { withLatestFrom } from './withLatestFrom'; +export { zip } from './zip'; +export { zipAll } from './zipAll'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/index.js.map b/node_modules/rxjs/_esm5/internal/operators/index.js.map new file mode 100644 index 00000000..9ba5647e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../../src/internal/operators/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/isEmpty.js b/node_modules/rxjs/_esm5/internal/operators/isEmpty.js new file mode 100644 index 00000000..320dfe71 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/isEmpty.js @@ -0,0 +1,33 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function isEmpty() { + return function (source) { return source.lift(new IsEmptyOperator()); }; +} +var IsEmptyOperator = /*@__PURE__*/ (function () { + function IsEmptyOperator() { + } + IsEmptyOperator.prototype.call = function (observer, source) { + return source.subscribe(new IsEmptySubscriber(observer)); + }; + return IsEmptyOperator; +}()); +var IsEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(IsEmptySubscriber, _super); + function IsEmptySubscriber(destination) { + return _super.call(this, destination) || this; + } + IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) { + var destination = this.destination; + destination.next(isEmpty); + destination.complete(); + }; + IsEmptySubscriber.prototype._next = function (value) { + this.notifyComplete(false); + }; + IsEmptySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return IsEmptySubscriber; +}(Subscriber)); +//# sourceMappingURL=isEmpty.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map b/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map new file mode 100644 index 00000000..4cd3a669 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sources":["../../../src/internal/operators/isEmpty.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgE3C,MAAM,UAAU,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,EAAlC,CAAkC,CAAC;AACvE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,8BAAI,GAAJ,UAAM,QAA6B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAgC,6CAAe;IAC7C,2BAAY,WAAgC;eAC1C,kBAAM,WAAW,CAAC;IACpB,CAAC;IAEO,0CAAc,GAAtB,UAAuB,OAAgB;QACrC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,iCAAK,GAAf,UAAgB,KAAc;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,qCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,wBAAC;AAAD,CAAC,AAnBD,CAAgC,UAAU,GAmBzC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/last.js b/node_modules/rxjs/_esm5/internal/operators/last.js new file mode 100644 index 00000000..2d5d8514 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/last.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ +import { EmptyError } from '../util/EmptyError'; +import { filter } from './filter'; +import { takeLast } from './takeLast'; +import { throwIfEmpty } from './throwIfEmpty'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { identity } from '../util/identity'; +export function last(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); }; +} +//# sourceMappingURL=last.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/last.js.map b/node_modules/rxjs/_esm5/internal/operators/last.js.map new file mode 100644 index 00000000..c4fa2b8f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sources":["../../../src/internal/operators/last.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAkC5C,MAAM,UAAU,IAAI,CAClB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAChE,QAAQ,CAAC,CAAC,CAAC,EACX,eAAe,CAAC,CAAC,CAAC,cAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,cAAM,OAAA,IAAI,UAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/map.js b/node_modules/rxjs/_esm5/internal/operators/map.js new file mode 100644 index 00000000..803b6b57 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/map.js @@ -0,0 +1,45 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function map(project, thisArg) { + return function mapOperation(source) { + if (typeof project !== 'function') { + throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); + } + return source.lift(new MapOperator(project, thisArg)); + }; +} +var MapOperator = /*@__PURE__*/ (function () { + function MapOperator(project, thisArg) { + this.project = project; + this.thisArg = thisArg; + } + MapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); + }; + return MapOperator; +}()); +export { MapOperator }; +var MapSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(MapSubscriber, _super); + function MapSubscriber(destination, project, thisArg) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.count = 0; + _this.thisArg = thisArg || _this; + return _this; + } + MapSubscriber.prototype._next = function (value) { + var result; + try { + result = this.project.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return MapSubscriber; +}(Subscriber)); +//# sourceMappingURL=map.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/map.js.map b/node_modules/rxjs/_esm5/internal/operators/map.js.map new file mode 100644 index 00000000..7b59f9af --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sources":["../../../src/internal/operators/map.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2C3C,MAAM,UAAU,GAAG,CAAO,OAAuC,EAAE,OAAa;IAC9E,OAAO,SAAS,YAAY,CAAC,MAAqB;QAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,qBAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,0BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,kBAAC;AAAD,CAAC,AAPD,IAOC;;AAOD;IAAkC,yCAAa;IAI7C,uBAAY,WAA0B,EAClB,OAAuC,EAC/C,OAAY;QAFxB,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,aAAO,GAAP,OAAO,CAAgC;QAJ3D,WAAK,GAAW,CAAC,CAAC;QAOhB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAIS,6BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAS,CAAC;QACd,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,oBAAC;AAAD,CAAC,AAvBD,CAAkC,UAAU,GAuB3C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/mapTo.js b/node_modules/rxjs/_esm5/internal/operators/mapTo.js new file mode 100644 index 00000000..3a92b456 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mapTo.js @@ -0,0 +1,28 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function mapTo(value) { + return function (source) { return source.lift(new MapToOperator(value)); }; +} +var MapToOperator = /*@__PURE__*/ (function () { + function MapToOperator(value) { + this.value = value; + } + MapToOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapToSubscriber(subscriber, this.value)); + }; + return MapToOperator; +}()); +var MapToSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(MapToSubscriber, _super); + function MapToSubscriber(destination, value) { + var _this = _super.call(this, destination) || this; + _this.value = value; + return _this; + } + MapToSubscriber.prototype._next = function (x) { + this.destination.next(this.value); + }; + return MapToSubscriber; +}(Subscriber)); +//# sourceMappingURL=mapTo.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map new file mode 100644 index 00000000..8818dbcb --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sources":["../../../src/internal/operators/mapTo.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoC3C,MAAM,UAAU,KAAK,CAAO,KAAQ;IAClC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC;AAED;IAIE,uBAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IACH,oBAAC;AAAD,CAAC,AAXD,IAWC;AAOD;IAAoC,2CAAa;IAI/C,yBAAY,WAA0B,EAAE,KAAQ;QAAhD,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;IACrB,CAAC;IAES,+BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACH,sBAAC;AAAD,CAAC,AAZD,CAAoC,UAAU,GAY7C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/materialize.js b/node_modules/rxjs/_esm5/internal/operators/materialize.js new file mode 100644 index 00000000..6371b5cc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/materialize.js @@ -0,0 +1,38 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +export function materialize() { + return function materializeOperatorFunction(source) { + return source.lift(new MaterializeOperator()); + }; +} +var MaterializeOperator = /*@__PURE__*/ (function () { + function MaterializeOperator() { + } + MaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MaterializeSubscriber(subscriber)); + }; + return MaterializeOperator; +}()); +var MaterializeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(MaterializeSubscriber, _super); + function MaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + MaterializeSubscriber.prototype._next = function (value) { + this.destination.next(Notification.createNext(value)); + }; + MaterializeSubscriber.prototype._error = function (err) { + var destination = this.destination; + destination.next(Notification.createError(err)); + destination.complete(); + }; + MaterializeSubscriber.prototype._complete = function () { + var destination = this.destination; + destination.next(Notification.createComplete()); + destination.complete(); + }; + return MaterializeSubscriber; +}(Subscriber)); +//# sourceMappingURL=materialize.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/materialize.js.map b/node_modules/rxjs/_esm5/internal/operators/materialize.js.map new file mode 100644 index 00000000..9c6c16c6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sources":["../../../src/internal/operators/materialize.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqD/C,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAuC,EAAE,MAAW;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,iDAAa;IAClD,+BAAY,WAAwC;eAClD,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,sCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,yCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,4BAAC;AAAD,CAAC,AApBD,CAAuC,UAAU,GAoBhD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/max.js b/node_modules/rxjs/_esm5/internal/operators/max.js new file mode 100644 index 00000000..f9bac9d6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/max.js @@ -0,0 +1,9 @@ +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +import { reduce } from './reduce'; +export function max(comparer) { + var max = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) > 0 ? x : y; } + : function (x, y) { return x > y ? x : y; }; + return reduce(max); +} +//# sourceMappingURL=max.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/max.js.map b/node_modules/rxjs/_esm5/internal/operators/max.js.map new file mode 100644 index 00000000..77e7d72f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sources":["../../../src/internal/operators/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAgDlC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/merge.js b/node_modules/rxjs/_esm5/internal/operators/merge.js new file mode 100644 index 00000000..1db8d08b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/merge.js @@ -0,0 +1,10 @@ +/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */ +import { merge as mergeStatic } from '../observable/merge'; +export function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); }; +} +//# sourceMappingURL=merge.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/merge.js.map b/node_modules/rxjs/_esm5/internal/operators/merge.js.map new file mode 100644 index 00000000..5df9381a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../../src/internal/operators/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsC3D,MAAM,UAAU,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,gBAAC,MAAM,SAAK,WAAW,GAAE,EAArD,CAAqD,CAAC;AAC1F,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeAll.js b/node_modules/rxjs/_esm5/internal/operators/mergeAll.js new file mode 100644 index 00000000..da695799 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeAll.js @@ -0,0 +1,10 @@ +/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */ +import { mergeMap } from './mergeMap'; +import { identity } from '../util/identity'; +export function mergeAll(concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + return mergeMap(identity, concurrent); +} +//# sourceMappingURL=mergeAll.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map new file mode 100644 index 00000000..43e5690d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sources":["../../../src/internal/operators/mergeAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA6D5C,MAAM,UAAU,QAAQ,CAAI,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IACvE,OAAO,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMap.js b/node_modules/rxjs/_esm5/internal/operators/mergeMap.js new file mode 100644 index 00000000..b7d295ad --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeMap.js @@ -0,0 +1,101 @@ +/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; + } + else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; +} +var MergeMapOperator = /*@__PURE__*/ (function () { + function MergeMapOperator(project, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + this.project = project; + this.concurrent = concurrent; + } + MergeMapOperator.prototype.call = function (observer, source) { + return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); + }; + return MergeMapOperator; +}()); +export { MergeMapOperator }; +var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(MergeMapSubscriber, _super); + function MergeMapSubscriber(destination, project, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeMapSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + this._tryNext(value); + } + else { + this.buffer.push(value); + } + }; + MergeMapSubscriber.prototype._tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.active++; + this._innerSub(result); + }; + MergeMapSubscriber.prototype._innerSub = function (ish) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + MergeMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete(); + } + this.unsubscribe(); + }; + MergeMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + MergeMapSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); + } + }; + return MergeMapSubscriber; +}(SimpleOuterSubscriber)); +export { MergeMapSubscriber }; +export var flatMap = mergeMap; +//# sourceMappingURL=mergeMap.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map new file mode 100644 index 00000000..e3402335 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sources":["../../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgEjG,MAAM,UAAU,QAAQ,CACtB,OAAuC,EACvC,cAAwH,EACxH,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QAExC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,QAAQ,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACzC,GAAG,CAAC,UAAC,CAAM,EAAE,EAAU,IAAK,OAAA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAA3B,CAA2B,CAAC,CACzD,EAFkB,CAElB,EAAE,UAAU,CAAC,CACf,EAJiC,CAIjC,CAAC;KACH;SAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QAC7C,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAED;IACE,0BAAoB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAD7C,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAmC;IACjE,CAAC;IAED,+BAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CACxC,CAAC,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;;AAOD;IAA8C,8CAA2B;IAMvE,4BAAY,WAA0B,EAClB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAFjE,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAiD;QACxD,gBAAU,GAAV,UAAU,CAAmC;QAPzD,kBAAY,GAAY,KAAK,CAAC;QAC9B,YAAM,GAAQ,EAAE,CAAC;QACjB,YAAM,GAAW,CAAC,CAAC;QACjB,WAAK,GAAW,CAAC,CAAC;;IAM5B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAES,qCAAQ,GAAlB,UAAmB,KAAQ;QACzB,IAAI,MAA0B,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO;SACR;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAEO,sCAAS,GAAjB,UAAkB,GAAuB;QACvC,IAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjC,IAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAI/D,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACpC;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,uCAAU,GAAV,UAAW,UAAa;QACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,2CAAc,GAAd;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAG,CAAC,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAnED,CAA8C,qBAAqB,GAmElE;;AAKD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js b/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js new file mode 100644 index 00000000..9c898d50 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js @@ -0,0 +1,15 @@ +/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ +import { mergeMap } from './mergeMap'; +export function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + if (typeof resultSelector === 'function') { + return mergeMap(function () { return innerObservable; }, resultSelector, concurrent); + } + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return mergeMap(function () { return innerObservable; }, concurrent); +} +//# sourceMappingURL=mergeMapTo.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map new file mode 100644 index 00000000..5041d0cc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sources":["../../../src/internal/operators/mergeMapTo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiDtC,MAAM,UAAU,UAAU,CACxB,eAAkB,EAClB,cAAwH,EACxH,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,QAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;KACpE;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,QAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeScan.js b/node_modules/rxjs/_esm5/internal/operators/mergeScan.js new file mode 100644 index 00000000..7a814aeb --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeScan.js @@ -0,0 +1,96 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); }; +} +var MergeScanOperator = /*@__PURE__*/ (function () { + function MergeScanOperator(accumulator, seed, concurrent) { + this.accumulator = accumulator; + this.seed = seed; + this.concurrent = concurrent; + } + MergeScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); + }; + return MergeScanOperator; +}()); +export { MergeScanOperator }; +var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(MergeScanSubscriber, _super); + function MergeScanSubscriber(destination, accumulator, acc, concurrent) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this.acc = acc; + _this.concurrent = concurrent; + _this.hasValue = false; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeScanSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + var index = this.index++; + var destination = this.destination; + var ish = void 0; + try { + var accumulator = this.accumulator; + ish = accumulator(this.acc, value, index); + } + catch (e) { + return destination.error(e); + } + this.active++; + this._innerSub(ish); + } + else { + this.buffer.push(value); + } + }; + MergeScanSubscriber.prototype._innerSub = function (ish) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + MergeScanSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + this.unsubscribe(); + }; + MergeScanSubscriber.prototype.notifyNext = function (innerValue) { + var destination = this.destination; + this.acc = innerValue; + this.hasValue = true; + destination.next(innerValue); + }; + MergeScanSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + }; + return MergeScanSubscriber; +}(SimpleOuterSubscriber)); +export { MergeScanSubscriber }; +//# sourceMappingURL=mergeScan.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map b/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map new file mode 100644 index 00000000..60a8645b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sources":["../../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/min.js b/node_modules/rxjs/_esm5/internal/operators/min.js new file mode 100644 index 00000000..cbd3c6a3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/min.js @@ -0,0 +1,9 @@ +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +import { reduce } from './reduce'; +export function min(comparer) { + var min = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) < 0 ? x : y; } + : function (x, y) { return x < y ? x : y; }; + return reduce(min); +} +//# sourceMappingURL=min.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/min.js.map b/node_modules/rxjs/_esm5/internal/operators/min.js.map new file mode 100644 index 00000000..c62a9342 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sources":["../../../src/internal/operators/min.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AA+ClC,MAAM,UAAU,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/multicast.js b/node_modules/rxjs/_esm5/internal/operators/multicast.js new file mode 100644 index 00000000..531728bd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/multicast.js @@ -0,0 +1,38 @@ +/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */ +import { connectableObservableDescriptor } from '../observable/ConnectableObservable'; +export function multicast(subjectOrSubjectFactory, selector) { + return function multicastOperatorFunction(source) { + var subjectFactory; + if (typeof subjectOrSubjectFactory === 'function') { + subjectFactory = subjectOrSubjectFactory; + } + else { + subjectFactory = function subjectFactory() { + return subjectOrSubjectFactory; + }; + } + if (typeof selector === 'function') { + return source.lift(new MulticastOperator(subjectFactory, selector)); + } + var connectable = Object.create(source, connectableObservableDescriptor); + connectable.source = source; + connectable.subjectFactory = subjectFactory; + return connectable; + }; +} +var MulticastOperator = /*@__PURE__*/ (function () { + function MulticastOperator(subjectFactory, selector) { + this.subjectFactory = subjectFactory; + this.selector = selector; + } + MulticastOperator.prototype.call = function (subscriber, source) { + var selector = this.selector; + var subject = this.subjectFactory(); + var subscription = selector(subject).subscribe(subscriber); + subscription.add(source.subscribe(subject)); + return subscription; + }; + return MulticastOperator; +}()); +export { MulticastOperator }; +//# sourceMappingURL=multicast.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/multicast.js.map b/node_modules/rxjs/_esm5/internal/operators/multicast.js.map new file mode 100644 index 00000000..27e4bc99 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sources":["../../../src/internal/operators/multicast.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AA6B7G,MAAM,UAAU,SAAS,CAAO,uBAAwD,EACxD,QAAmD;IACjF,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE;YACjD,cAAc,GAAqB,uBAAuB,CAAC;SAC5D;aAAM;YACL,cAAc,GAAG,SAAS,cAAc;gBACtC,OAAmB,uBAAuB,CAAC;YAC7C,CAAC,CAAC;SACH;QAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrE;QAED,IAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAChF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;QAE5C,OAAkC,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,cAAgC,EAChC,QAAkD;QADlD,mBAAc,GAAd,cAAc,CAAkB;QAChC,aAAQ,GAAR,QAAQ,CAA0C;IACtE,CAAC;IACD,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACjC,IAAA,wBAAQ,CAAU;QAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,wBAAC;AAAD,CAAC,AAXD,IAWC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/observeOn.js b/node_modules/rxjs/_esm5/internal/operators/observeOn.js new file mode 100644 index 00000000..a5ad11f8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/observeOn.js @@ -0,0 +1,69 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +export function observeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return function observeOnOperatorFunction(source) { + return source.lift(new ObserveOnOperator(scheduler, delay)); + }; +} +var ObserveOnOperator = /*@__PURE__*/ (function () { + function ObserveOnOperator(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + this.scheduler = scheduler; + this.delay = delay; + } + ObserveOnOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + }; + return ObserveOnOperator; +}()); +export { ObserveOnOperator }; +var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ObserveOnSubscriber, _super); + function ObserveOnSubscriber(destination, scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + var _this = _super.call(this, destination) || this; + _this.scheduler = scheduler; + _this.delay = delay; + return _this; + } + ObserveOnSubscriber.dispatch = function (arg) { + var notification = arg.notification, destination = arg.destination; + notification.observe(destination); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { + var destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + }; + ObserveOnSubscriber.prototype._next = function (value) { + this.scheduleMessage(Notification.createNext(value)); + }; + ObserveOnSubscriber.prototype._error = function (err) { + this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype._complete = function () { + this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); + }; + return ObserveOnSubscriber; +}(Subscriber)); +export { ObserveOnSubscriber }; +var ObserveOnMessage = /*@__PURE__*/ (function () { + function ObserveOnMessage(notification, destination) { + this.notification = notification; + this.destination = destination; + } + return ObserveOnMessage; +}()); +export { ObserveOnMessage }; +//# sourceMappingURL=observeOn.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map b/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map new file mode 100644 index 00000000..c41d515f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sources":["../../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAuD/C,MAAM,UAAU,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;;AAOD;IAA4C,+CAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAA4C,UAAU,GAoCrD;;AAED;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js b/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js new file mode 100644 index 00000000..898fa3de --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js @@ -0,0 +1,76 @@ +/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { from } from '../observable/from'; +import { isArray } from '../util/isArray'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function onErrorResumeNext() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; + } + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); }; +} +export function onErrorResumeNextStatic() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; + } + var source = undefined; + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + source = nextSources.shift(); + return from(source).lift(new OnErrorResumeNextOperator(nextSources)); +} +var OnErrorResumeNextOperator = /*@__PURE__*/ (function () { + function OnErrorResumeNextOperator(nextSources) { + this.nextSources = nextSources; + } + OnErrorResumeNextOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); + }; + return OnErrorResumeNextOperator; +}()); +var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(OnErrorResumeNextSubscriber, _super); + function OnErrorResumeNextSubscriber(destination, nextSources) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.nextSources = nextSources; + return _this; + } + OnErrorResumeNextSubscriber.prototype.notifyError = function () { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype.notifyComplete = function () { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype._error = function (err) { + this.subscribeToNextSource(); + this.unsubscribe(); + }; + OnErrorResumeNextSubscriber.prototype._complete = function () { + this.subscribeToNextSource(); + this.unsubscribe(); + }; + OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { + var next = this.nextSources.shift(); + if (!!next) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(next, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + else { + this.destination.complete(); + } + }; + return OnErrorResumeNextSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=onErrorResumeNext.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map b/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map new file mode 100644 index 00000000..6c36518b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/pairwise.js b/node_modules/rxjs/_esm5/internal/operators/pairwise.js new file mode 100644 index 00000000..50b742b0 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/pairwise.js @@ -0,0 +1,37 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function pairwise() { + return function (source) { return source.lift(new PairwiseOperator()); }; +} +var PairwiseOperator = /*@__PURE__*/ (function () { + function PairwiseOperator() { + } + PairwiseOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new PairwiseSubscriber(subscriber)); + }; + return PairwiseOperator; +}()); +var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(PairwiseSubscriber, _super); + function PairwiseSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasPrev = false; + return _this; + } + PairwiseSubscriber.prototype._next = function (value) { + var pair; + if (this.hasPrev) { + pair = [this.prev, value]; + } + else { + this.hasPrev = true; + } + this.prev = value; + if (pair) { + this.destination.next(pair); + } + }; + return PairwiseSubscriber; +}(Subscriber)); +//# sourceMappingURL=pairwise.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map b/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map new file mode 100644 index 00000000..b22c5630 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sources":["../../../src/internal/operators/pairwise.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA8C3C,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAnC,CAAmC,CAAC;AACxE,CAAC;AAED;IAAA;IAIA,CAAC;IAHC,+BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAoC,8CAAa;IAI/C,4BAAY,WAA+B;QAA3C,YACE,kBAAM,WAAW,CAAC,SACnB;QAJO,aAAO,GAAY,KAAK,CAAC;;IAIjC,CAAC;IAED,kCAAK,GAAL,UAAM,KAAQ;QACZ,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAvBD,CAAoC,UAAU,GAuB7C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/partition.js b/node_modules/rxjs/_esm5/internal/operators/partition.js new file mode 100644 index 00000000..5dce311e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/partition.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */ +import { not } from '../util/not'; +import { filter } from './filter'; +export function partition(predicate, thisArg) { + return function (source) { + return [ + filter(predicate, thisArg)(source), + filter(not(predicate, thisArg))(source) + ]; + }; +} +//# sourceMappingURL=partition.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/partition.js.map b/node_modules/rxjs/_esm5/internal/operators/partition.js.map new file mode 100644 index 00000000..510790b7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../../../src/internal/operators/partition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoDlC,MAAM,UAAU,SAAS,CAAI,SAA+C,EAC/C,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA;QAChC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,MAAM,CAAC;KACb,EAHD,CAGC,CAAC;AACtC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/pluck.js b/node_modules/rxjs/_esm5/internal/operators/pluck.js new file mode 100644 index 00000000..4fca18d0 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/pluck.js @@ -0,0 +1,30 @@ +/** PURE_IMPORTS_START _map PURE_IMPORTS_END */ +import { map } from './map'; +export function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error('list of properties cannot be empty.'); + } + return function (source) { return map(plucker(properties, length))(source); }; +} +function plucker(props, length) { + var mapper = function (x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp != null ? currentProp[props[i]] : undefined; + if (p !== void 0) { + currentProp = p; + } + else { + return undefined; + } + } + return currentProp; + }; + return mapper; +} +//# sourceMappingURL=pluck.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/pluck.js.map b/node_modules/rxjs/_esm5/internal/operators/pluck.js.map new file mode 100644 index 00000000..d9dcec94 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sources":["../../../src/internal/operators/pluck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA6C5B,MAAM,UAAU,KAAK;IAAO,oBAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,+BAAuB;;IACjD,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAa,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC;AAED,SAAS,OAAO,CAAC,KAAe,EAAE,MAAc;IAC9C,IAAM,MAAM,GAAG,UAAC,CAAS;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAM,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;gBAChB,WAAW,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/publish.js b/node_modules/rxjs/_esm5/internal/operators/publish.js new file mode 100644 index 00000000..34e283c5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publish.js @@ -0,0 +1,9 @@ +/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ +import { Subject } from '../Subject'; +import { multicast } from './multicast'; +export function publish(selector) { + return selector ? + multicast(function () { return new Subject(); }, selector) : + multicast(new Subject()); +} +//# sourceMappingURL=publish.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/publish.js.map b/node_modules/rxjs/_esm5/internal/operators/publish.js.map new file mode 100644 index 00000000..7a5f0942 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sources":["../../../src/internal/operators/publish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA4DxC,MAAM,UAAU,OAAO,CAAO,QAAiC;IAC7D,OAAO,QAAQ,CAAC,CAAC;QACf,SAAS,CAAC,cAAM,OAAA,IAAI,OAAO,EAAK,EAAhB,CAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,SAAS,CAAC,IAAI,OAAO,EAAK,CAAC,CAAC;AAChC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js b/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js new file mode 100644 index 00000000..ce55a7f3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js @@ -0,0 +1,7 @@ +/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ +import { BehaviorSubject } from '../BehaviorSubject'; +import { multicast } from './multicast'; +export function publishBehavior(value) { + return function (source) { return multicast(new BehaviorSubject(value))(source); }; +} +//# sourceMappingURL=publishBehavior.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map b/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map new file mode 100644 index 00000000..00aedd1c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sources":["../../../src/internal/operators/publishBehavior.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC,MAAM,UAAU,eAAe,CAAI,KAAQ;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAS,CAAC,IAAI,eAAe,CAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,EAA5E,CAA4E,CAAC;AACjH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/publishLast.js b/node_modules/rxjs/_esm5/internal/operators/publishLast.js new file mode 100644 index 00000000..93ec13ed --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publishLast.js @@ -0,0 +1,7 @@ +/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ +import { AsyncSubject } from '../AsyncSubject'; +import { multicast } from './multicast'; +export function publishLast() { + return function (source) { return multicast(new AsyncSubject())(source); }; +} +//# sourceMappingURL=publishLast.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map b/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map new file mode 100644 index 00000000..4b63d00d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sources":["../../../src/internal/operators/publishLast.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8DxC,MAAM,UAAU,WAAW;IACzB,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAS,CAAC,IAAI,YAAY,EAAK,CAAC,CAAC,MAAM,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/publishReplay.js b/node_modules/rxjs/_esm5/internal/operators/publishReplay.js new file mode 100644 index 00000000..9dfb138d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publishReplay.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ +import { ReplaySubject } from '../ReplaySubject'; +import { multicast } from './multicast'; +export function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { + if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { + scheduler = selectorOrScheduler; + } + var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; + var subject = new ReplaySubject(bufferSize, windowTime, scheduler); + return function (source) { return multicast(function () { return subject; }, selector)(source); }; +} +//# sourceMappingURL=publishReplay.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map b/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map new file mode 100644 index 00000000..74f7dcd3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sources":["../../../src/internal/operators/publishReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,MAAM,UAAU,aAAa,CAAO,UAAmB,EACnB,UAAmB,EACnB,mBAA4D,EAC5D,SAAyB;IAE3D,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QACpE,SAAS,GAAG,mBAAmB,CAAC;KACjC;IAED,IAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,IAAM,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAS,CAAC,cAAM,OAAA,OAAO,EAAP,CAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6B,EAAtE,CAAsE,CAAC;AAC3G,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/race.js b/node_modules/rxjs/_esm5/internal/operators/race.js new file mode 100644 index 00000000..5168c210 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/race.js @@ -0,0 +1,16 @@ +/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */ +import { isArray } from '../util/isArray'; +import { race as raceStatic } from '../observable/race'; +export function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function raceOperatorFunction(source) { + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0]; + } + return source.lift.call(raceStatic.apply(void 0, [source].concat(observables))); + }; +} +//# sourceMappingURL=race.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/race.js.map b/node_modules/rxjs/_esm5/internal/operators/race.js.map new file mode 100644 index 00000000..27b66a6a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../../src/internal/operators/race.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBxD,MAAM,UAAU,IAAI;IAAI,qBAAmD;SAAnD,UAAmD,EAAnD,qBAAmD,EAAnD,IAAmD;QAAnD,gCAAmD;;IACzE,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QAGxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAAoB,CAAC;SACjD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,gBAAC,MAAM,SAAM,WAA+B,GAAE,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/reduce.js b/node_modules/rxjs/_esm5/internal/operators/reduce.js new file mode 100644 index 00000000..ffd0e000 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/reduce.js @@ -0,0 +1,16 @@ +/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ +import { scan } from './scan'; +import { takeLast } from './takeLast'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { pipe } from '../util/pipe'; +export function reduce(accumulator, seed) { + if (arguments.length >= 2) { + return function reduceOperatorFunctionWithSeed(source) { + return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source); + }; + } + return function reduceOperatorFunction(source) { + return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source); + }; +} +//# sourceMappingURL=reduce.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/reduce.js.map b/node_modules/rxjs/_esm5/internal/operators/reduce.js.map new file mode 100644 index 00000000..b8e0bc57 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sources":["../../../src/internal/operators/reduce.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AA2DpC,MAAM,UAAU,MAAM,CAAO,WAA4D,EAAE,IAAY;IAMrG,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,IAAI,CACT,IAAI,CAAW,UAAC,GAAG,EAAE,KAAK,EAAE,KAAK,IAAK,OAAA,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAlC,CAAkC,CAAC,EACzE,QAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/refCount.js b/node_modules/rxjs/_esm5/internal/operators/refCount.js new file mode 100644 index 00000000..f4c6b6a7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/refCount.js @@ -0,0 +1,58 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function refCount() { + return function refCountOperatorFunction(source) { + return source.lift(new RefCountOperator(source)); + }; +} +var RefCountOperator = /*@__PURE__*/ (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; + } + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + }; + return RefCountOperator; +}()); +var RefCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; +}(Subscriber)); +//# sourceMappingURL=refCount.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/refCount.js.map b/node_modules/rxjs/_esm5/internal/operators/refCount.js.map new file mode 100644 index 00000000..bd534ca9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/refCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refCount.js","sources":["../../../src/internal/operators/refCount.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2D3C,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,wBAAwB,CAAC,MAAgC;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAgC,CAAC;AACnC,CAAC;AAED;IACE,0BAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QAEjC,IAAA,8BAAW,CAAU;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SACvD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,IAiBC;AAED;IAAoC,8CAAa;IAI/C,4BAAY,WAA0B,EAClB,WAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IAES,yCAAY,GAAtB;QAEU,IAAA,8BAAW,CAAU;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAM,QAAQ,GAAU,WAAY,CAAC,SAAS,CAAC;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAEM,WAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QA0BO,IAAA,4BAAU,CAAU;QAC5B,IAAM,gBAAgB,GAAU,WAAY,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,KAAK,UAAU,CAAC,EAAE;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AA9DD,CAAoC,UAAU,GA8D7C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/repeat.js b/node_modules/rxjs/_esm5/internal/operators/repeat.js new file mode 100644 index 00000000..7b21c640 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/repeat.js @@ -0,0 +1,53 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { empty } from '../observable/empty'; +export function repeat(count) { + if (count === void 0) { + count = -1; + } + return function (source) { + if (count === 0) { + return empty(); + } + else if (count < 0) { + return source.lift(new RepeatOperator(-1, source)); + } + else { + return source.lift(new RepeatOperator(count - 1, source)); + } + }; +} +var RepeatOperator = /*@__PURE__*/ (function () { + function RepeatOperator(count, source) { + this.count = count; + this.source = source; + } + RepeatOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + }; + return RepeatOperator; +}()); +var RepeatSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(RepeatSubscriber, _super); + function RepeatSubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RepeatSubscriber.prototype.complete = function () { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.complete.call(this); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RepeatSubscriber; +}(Subscriber)); +//# sourceMappingURL=repeat.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/repeat.js.map b/node_modules/rxjs/_esm5/internal/operators/repeat.js.map new file mode 100644 index 00000000..f3efd031 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sources":["../../../src/internal/operators/repeat.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA2D5C,MAAM,UAAU,MAAM,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IAC1C,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,wBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,qBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAkC,4CAAa;IAC7C,0BAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,mCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,QAAQ,WAAE,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,CAAkC,UAAU,GAiB3C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js b/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js new file mode 100644 index 00000000..096cd8e4 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js @@ -0,0 +1,82 @@ +/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from '../Subject'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function repeatWhen(notifier) { + return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; +} +var RepeatWhenOperator = /*@__PURE__*/ (function () { + function RepeatWhenOperator(notifier) { + this.notifier = notifier; + } + RepeatWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); + }; + return RepeatWhenOperator; +}()); +var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(RepeatWhenSubscriber, _super); + function RepeatWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + _this.sourceIsBeingSubscribedTo = true; + return _this; + } + RepeatWhenSubscriber.prototype.notifyNext = function () { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); + }; + RepeatWhenSubscriber.prototype.notifyComplete = function () { + if (this.sourceIsBeingSubscribedTo === false) { + return _super.prototype.complete.call(this); + } + }; + RepeatWhenSubscriber.prototype.complete = function () { + this.sourceIsBeingSubscribedTo = false; + if (!this.isStopped) { + if (!this.retries) { + this.subscribeToRetries(); + } + if (!this.retriesSubscription || this.retriesSubscription.closed) { + return _super.prototype.complete.call(this); + } + this._unsubscribeAndRecycle(); + this.notifications.next(undefined); + } + }; + RepeatWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; + if (notifications) { + notifications.unsubscribe(); + this.notifications = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + }; + RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + _super.prototype._unsubscribeAndRecycle.call(this); + this._unsubscribe = _unsubscribe; + return this; + }; + RepeatWhenSubscriber.prototype.subscribeToRetries = function () { + this.notifications = new Subject(); + var retries; + try { + var notifier = this.notifier; + retries = notifier(this.notifications); + } + catch (e) { + return _super.prototype.complete.call(this); + } + this.retries = retries; + this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + }; + return RepeatWhenSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=repeatWhen.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map new file mode 100644 index 00000000..2b9f11cc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sources":["../../../src/internal/operators/repeatWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/retry.js b/node_modules/rxjs/_esm5/internal/operators/retry.js new file mode 100644 index 00000000..854f94cc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/retry.js @@ -0,0 +1,42 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function retry(count) { + if (count === void 0) { + count = -1; + } + return function (source) { return source.lift(new RetryOperator(count, source)); }; +} +var RetryOperator = /*@__PURE__*/ (function () { + function RetryOperator(count, source) { + this.count = count; + this.source = source; + } + RetryOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); + }; + return RetryOperator; +}()); +var RetrySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(RetrySubscriber, _super); + function RetrySubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RetrySubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.error.call(this, err); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RetrySubscriber; +}(Subscriber)); +//# sourceMappingURL=retry.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/retry.js.map b/node_modules/rxjs/_esm5/internal/operators/retry.js.map new file mode 100644 index 00000000..0c6331c9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sources":["../../../src/internal/operators/retry.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,KAAK,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAED;IACE,uBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,2CAAa;IAC5C,yBAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,KAAK,YAAC,GAAG,CAAC,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjBD,CAAiC,UAAU,GAiB1C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/retryWhen.js b/node_modules/rxjs/_esm5/internal/operators/retryWhen.js new file mode 100644 index 00000000..ac3a5e9e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/retryWhen.js @@ -0,0 +1,74 @@ +/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from '../Subject'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function retryWhen(notifier) { + return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); }; +} +var RetryWhenOperator = /*@__PURE__*/ (function () { + function RetryWhenOperator(notifier, source) { + this.notifier = notifier; + this.source = source; + } + RetryWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); + }; + return RetryWhenOperator; +}()); +var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(RetryWhenSubscriber, _super); + function RetryWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + return _this; + } + RetryWhenSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var errors = this.errors; + var retries = this.retries; + var retriesSubscription = this.retriesSubscription; + if (!retries) { + errors = new Subject(); + try { + var notifier = this.notifier; + retries = notifier(errors); + } + catch (e) { + return _super.prototype.error.call(this, e); + } + retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + } + else { + this.errors = undefined; + this.retriesSubscription = undefined; + } + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + errors.next(err); + } + }; + RetryWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription; + if (errors) { + errors.unsubscribe(); + this.errors = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + }; + RetryWhenSubscriber.prototype.notifyNext = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + this._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + this.source.subscribe(this); + }; + return RetryWhenSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=retryWhen.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map new file mode 100644 index 00000000..f0b20627 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sources":["../../../src/internal/operators/retryWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/sample.js b/node_modules/rxjs/_esm5/internal/operators/sample.js new file mode 100644 index 00000000..4648cb99 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/sample.js @@ -0,0 +1,44 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function sample(notifier) { + return function (source) { return source.lift(new SampleOperator(notifier)); }; +} +var SampleOperator = /*@__PURE__*/ (function () { + function SampleOperator(notifier) { + this.notifier = notifier; + } + SampleOperator.prototype.call = function (subscriber, source) { + var sampleSubscriber = new SampleSubscriber(subscriber); + var subscription = source.subscribe(sampleSubscriber); + subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber))); + return subscription; + }; + return SampleOperator; +}()); +var SampleSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SampleSubscriber, _super); + function SampleSubscriber() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.hasValue = false; + return _this; + } + SampleSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + }; + SampleSubscriber.prototype.notifyNext = function () { + this.emitValue(); + }; + SampleSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + SampleSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.value); + } + }; + return SampleSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=sample.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/sample.js.map b/node_modules/rxjs/_esm5/internal/operators/sample.js.map new file mode 100644 index 00000000..c5b04fef --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sources":["../../../src/internal/operators/sample.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA0CjG,MAAM,UAAU,MAAM,CAAI,QAAyB;IACjD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAED;IACE,wBAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7F,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,qBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAqC,4CAA2B;IAAhE;QAAA,qEAuBC;QArBS,cAAQ,GAAY,KAAK,CAAC;;IAqBpC,CAAC;IAnBW,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,qCAAU,GAAV;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,yCAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,oCAAS,GAAT;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;SACrC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAvBD,CAAqC,qBAAqB,GAuBzD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/sampleTime.js b/node_modules/rxjs/_esm5/internal/operators/sampleTime.js new file mode 100644 index 00000000..06bef93d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/sampleTime.js @@ -0,0 +1,48 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +export function sampleTime(period, scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); }; +} +var SampleTimeOperator = /*@__PURE__*/ (function () { + function SampleTimeOperator(period, scheduler) { + this.period = period; + this.scheduler = scheduler; + } + SampleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); + }; + return SampleTimeOperator; +}()); +var SampleTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SampleTimeSubscriber, _super); + function SampleTimeSubscriber(destination, period, scheduler) { + var _this = _super.call(this, destination) || this; + _this.period = period; + _this.scheduler = scheduler; + _this.hasValue = false; + _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period })); + return _this; + } + SampleTimeSubscriber.prototype._next = function (value) { + this.lastValue = value; + this.hasValue = true; + }; + SampleTimeSubscriber.prototype.notifyNext = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.lastValue); + } + }; + return SampleTimeSubscriber; +}(Subscriber)); +function dispatchNotification(state) { + var subscriber = state.subscriber, period = state.period; + subscriber.notifyNext(); + this.schedule(state, period); +} +//# sourceMappingURL=sampleTime.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map b/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map new file mode 100644 index 00000000..bcdb4eb9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sources":["../../../src/internal/operators/sampleTime.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA6C3C,MAAM,UAAU,UAAU,CAAI,MAAc,EAAE,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC5E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAED;IACE,4BAAoB,MAAc,EACd,SAAwB;QADxB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,iCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;IACH,yBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAsC,gDAAa;IAIjD,8BAAY,WAA0B,EAClB,MAAc,EACd,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,YAAM,GAAN,MAAM,CAAQ;QACd,eAAS,GAAT,SAAS,CAAe;QAJ5C,cAAQ,GAAY,KAAK,CAAC;QAMxB,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAI,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC,CAAC;;IAC3F,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,yCAAU,GAAV;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,AAtBD,CAAsC,UAAU,GAsB/C;AAED,SAAS,oBAAoB,CAAgC,KAAU;IAC/D,IAAA,6BAAU,EAAE,qBAAM,CAAW;IACnC,UAAU,CAAC,UAAU,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/scan.js b/node_modules/rxjs/_esm5/internal/operators/scan.js new file mode 100644 index 00000000..be7e7682 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/scan.js @@ -0,0 +1,71 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function scan(accumulator, seed) { + var hasSeed = false; + if (arguments.length >= 2) { + hasSeed = true; + } + return function scanOperatorFunction(source) { + return source.lift(new ScanOperator(accumulator, seed, hasSeed)); + }; +} +var ScanOperator = /*@__PURE__*/ (function () { + function ScanOperator(accumulator, seed, hasSeed) { + if (hasSeed === void 0) { + hasSeed = false; + } + this.accumulator = accumulator; + this.seed = seed; + this.hasSeed = hasSeed; + } + ScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); + }; + return ScanOperator; +}()); +var ScanSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ScanSubscriber, _super); + function ScanSubscriber(destination, accumulator, _seed, hasSeed) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this._seed = _seed; + _this.hasSeed = hasSeed; + _this.index = 0; + return _this; + } + Object.defineProperty(ScanSubscriber.prototype, "seed", { + get: function () { + return this._seed; + }, + set: function (value) { + this.hasSeed = true; + this._seed = value; + }, + enumerable: true, + configurable: true + }); + ScanSubscriber.prototype._next = function (value) { + if (!this.hasSeed) { + this.seed = value; + this.destination.next(value); + } + else { + return this._tryNext(value); + } + }; + ScanSubscriber.prototype._tryNext = function (value) { + var index = this.index++; + var result; + try { + result = this.accumulator(this.seed, value, index); + } + catch (err) { + this.destination.error(err); + } + this.seed = result; + this.destination.next(result); + }; + return ScanSubscriber; +}(Subscriber)); +//# sourceMappingURL=scan.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/scan.js.map b/node_modules/rxjs/_esm5/internal/operators/scan.js.map new file mode 100644 index 00000000..f3543eaa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sources":["../../../src/internal/operators/scan.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoD3C,MAAM,UAAU,IAAI,CAAO,WAAmD,EAAE,IAAY;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAC;IAMpB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,sBAAoB,WAAmD,EAAU,IAAY,EAAU,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAA3G,gBAAW,GAAX,WAAW,CAAwC;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEnI,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrG,CAAC;IACH,mBAAC;AAAD,CAAC,AAND,IAMC;AAOD;IAAmC,0CAAa;IAY9C,wBAAY,WAA0B,EAAU,WAAmD,EAAU,KAAY,EACrG,OAAgB;QADpC,YAEE,kBAAM,WAAW,CAAC,SACnB;QAH+C,iBAAW,GAAX,WAAW,CAAwC;QAAU,WAAK,GAAL,KAAK,CAAO;QACrG,aAAO,GAAP,OAAO,CAAS;QAZ5B,WAAK,GAAW,CAAC,CAAC;;IAc1B,CAAC;IAZD,sBAAI,gCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAY;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OALA;IAYS,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,iCAAQ,GAAhB,UAAiB,KAAQ;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,qBAAC;AAAD,CAAC,AArCD,CAAmC,UAAU,GAqC5C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js b/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js new file mode 100644 index 00000000..f22b97cc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js @@ -0,0 +1,110 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function sequenceEqual(compareTo, comparator) { + return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); }; +} +var SequenceEqualOperator = /*@__PURE__*/ (function () { + function SequenceEqualOperator(compareTo, comparator) { + this.compareTo = compareTo; + this.comparator = comparator; + } + SequenceEqualOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator)); + }; + return SequenceEqualOperator; +}()); +export { SequenceEqualOperator }; +var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SequenceEqualSubscriber, _super); + function SequenceEqualSubscriber(destination, compareTo, comparator) { + var _this = _super.call(this, destination) || this; + _this.compareTo = compareTo; + _this.comparator = comparator; + _this._a = []; + _this._b = []; + _this._oneComplete = false; + _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); + return _this; + } + SequenceEqualSubscriber.prototype._next = function (value) { + if (this._oneComplete && this._b.length === 0) { + this.emit(false); + } + else { + this._a.push(value); + this.checkValues(); + } + }; + SequenceEqualSubscriber.prototype._complete = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + this.unsubscribe(); + }; + SequenceEqualSubscriber.prototype.checkValues = function () { + var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator; + while (_a.length > 0 && _b.length > 0) { + var a = _a.shift(); + var b = _b.shift(); + var areEqual = false; + try { + areEqual = comparator ? comparator(a, b) : a === b; + } + catch (e) { + this.destination.error(e); + } + if (!areEqual) { + this.emit(false); + } + } + }; + SequenceEqualSubscriber.prototype.emit = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + }; + SequenceEqualSubscriber.prototype.nextB = function (value) { + if (this._oneComplete && this._a.length === 0) { + this.emit(false); + } + else { + this._b.push(value); + this.checkValues(); + } + }; + SequenceEqualSubscriber.prototype.completeB = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; + return SequenceEqualSubscriber; +}(Subscriber)); +export { SequenceEqualSubscriber }; +var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SequenceEqualCompareToSubscriber, _super); + function SequenceEqualCompareToSubscriber(destination, parent) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + return _this; + } + SequenceEqualCompareToSubscriber.prototype._next = function (value) { + this.parent.nextB(value); + }; + SequenceEqualCompareToSubscriber.prototype._error = function (err) { + this.parent.error(err); + this.unsubscribe(); + }; + SequenceEqualCompareToSubscriber.prototype._complete = function () { + this.parent.completeB(); + this.unsubscribe(); + }; + return SequenceEqualCompareToSubscriber; +}(Subscriber)); +//# sourceMappingURL=sequenceEqual.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map b/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map new file mode 100644 index 00000000..e0edce7f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sources":["../../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/share.js b/node_modules/rxjs/_esm5/internal/operators/share.js new file mode 100644 index 00000000..45863eb8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/share.js @@ -0,0 +1,11 @@ +/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ +import { multicast } from './multicast'; +import { refCount } from './refCount'; +import { Subject } from '../Subject'; +function shareSubjectFactory() { + return new Subject(); +} +export function share() { + return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); }; +} +//# sourceMappingURL=share.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/share.js.map b/node_modules/rxjs/_esm5/internal/operators/share.js.map new file mode 100644 index 00000000..8946dd60 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sources":["../../../src/internal/operators/share.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,SAAS,mBAAmB;IAC1B,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC;AAcD,MAAM,UAAU,KAAK;IACnB,OAAO,UAAC,MAAqB,IAAK,OAAA,QAAQ,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAkB,EAAnE,CAAmE,CAAC;AACxG,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/shareReplay.js b/node_modules/rxjs/_esm5/internal/operators/shareReplay.js new file mode 100644 index 00000000..d71dd490 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/shareReplay.js @@ -0,0 +1,59 @@ +/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */ +import { ReplaySubject } from '../ReplaySubject'; +export function shareReplay(configOrBufferSize, windowTime, scheduler) { + var config; + if (configOrBufferSize && typeof configOrBufferSize === 'object') { + config = configOrBufferSize; + } + else { + config = { + bufferSize: configOrBufferSize, + windowTime: windowTime, + refCount: false, + scheduler: scheduler + }; + } + return function (source) { return source.lift(shareReplayOperator(config)); }; +} +function shareReplayOperator(_a) { + var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler; + var subject; + var refCount = 0; + var subscription; + var hasError = false; + var isComplete = false; + return function shareReplayOperation(source) { + refCount++; + var innerSub; + if (!subject || hasError) { + hasError = false; + subject = new ReplaySubject(bufferSize, windowTime, scheduler); + innerSub = subject.subscribe(this); + subscription = source.subscribe({ + next: function (value) { subject.next(value); }, + error: function (err) { + hasError = true; + subject.error(err); + }, + complete: function () { + isComplete = true; + subscription = undefined; + subject.complete(); + }, + }); + } + else { + innerSub = subject.subscribe(this); + } + this.add(function () { + refCount--; + innerSub.unsubscribe(); + if (subscription && !isComplete && useRefCount && refCount === 0) { + subscription.unsubscribe(); + subscription = undefined; + subject = undefined; + } + }); + }; +} +//# sourceMappingURL=shareReplay.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map b/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map new file mode 100644 index 00000000..c1b592ad --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sources":["../../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2DjD,MAAM,UAAU,WAAW,CACzB,kBAA+C,EAC/C,UAAmB,EACnB,SAAyB;IAEzB,IAAI,MAAyB,CAAC;IAC9B,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAChE,MAAM,GAAG,kBAAuC,CAAC;KAClD;SAAM;QACL,MAAM,GAAG;YACP,UAAU,EAAE,kBAAwC;YACpD,UAAU,YAAA;YACV,QAAQ,EAAE,KAAK;YACf,SAAS,WAAA;SACV,CAAC;KACH;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAAI,EAKZ;QAJlB,kBAAqC,EAArC,0DAAqC,EACrC,kBAAqC,EAArC,0DAAqC,EACrC,yBAAqB,EACrB,wBAAS;IAET,IAAI,OAAqC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,QAAsB,CAAC;QAC3B,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,aAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,YAAY,GAAG,SAAS,CAAC;oBACzB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;aAAM;YACL,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,GAAG,CAAC;YACP,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChE,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/single.js b/node_modules/rxjs/_esm5/internal/operators/single.js new file mode 100644 index 00000000..35de1270 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/single.js @@ -0,0 +1,68 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; +export function single(predicate) { + return function (source) { return source.lift(new SingleOperator(predicate, source)); }; +} +var SingleOperator = /*@__PURE__*/ (function () { + function SingleOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + SingleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); + }; + return SingleOperator; +}()); +var SingleSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SingleSubscriber, _super); + function SingleSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.seenValue = false; + _this.index = 0; + return _this; + } + SingleSubscriber.prototype.applySingleValue = function (value) { + if (this.seenValue) { + this.destination.error('Sequence contains more than one element'); + } + else { + this.seenValue = true; + this.singleValue = value; + } + }; + SingleSubscriber.prototype._next = function (value) { + var index = this.index++; + if (this.predicate) { + this.tryNext(value, index); + } + else { + this.applySingleValue(value); + } + }; + SingleSubscriber.prototype.tryNext = function (value, index) { + try { + if (this.predicate(value, index, this.source)) { + this.applySingleValue(value); + } + } + catch (err) { + this.destination.error(err); + } + }; + SingleSubscriber.prototype._complete = function () { + var destination = this.destination; + if (this.index > 0) { + destination.next(this.seenValue ? this.singleValue : undefined); + destination.complete(); + } + else { + destination.error(new EmptyError); + } + }; + return SingleSubscriber; +}(Subscriber)); +//# sourceMappingURL=single.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/single.js.map b/node_modules/rxjs/_esm5/internal/operators/single.js.map new file mode 100644 index 00000000..3d87a32a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sources":["../../../src/internal/operators/single.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkDhD,MAAM,UAAU,MAAM,CAAI,SAAuE;IAC/F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAlD,CAAkD,CAAC;AACvF,CAAC;AAED;IACE,wBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,4CAAa;IAK7C,0BAAY,WAAwB,EAChB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QANlC,eAAS,GAAY,KAAK,CAAC;QAE3B,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAEO,2CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEO,kCAAO,GAAf,UAAgB,KAAQ,EAAE,KAAa;QACrC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,oCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;aAAM;YACL,WAAW,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;SACnC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAlDD,CAAkC,UAAU,GAkD3C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/skip.js b/node_modules/rxjs/_esm5/internal/operators/skip.js new file mode 100644 index 00000000..9fe4263f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skip.js @@ -0,0 +1,31 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function skip(count) { + return function (source) { return source.lift(new SkipOperator(count)); }; +} +var SkipOperator = /*@__PURE__*/ (function () { + function SkipOperator(total) { + this.total = total; + } + SkipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipSubscriber(subscriber, this.total)); + }; + return SkipOperator; +}()); +var SkipSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SkipSubscriber, _super); + function SkipSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + SkipSubscriber.prototype._next = function (x) { + if (++this.count > this.total) { + this.destination.next(x); + } + }; + return SkipSubscriber; +}(Subscriber)); +//# sourceMappingURL=skip.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/skip.js.map b/node_modules/rxjs/_esm5/internal/operators/skip.js.map new file mode 100644 index 00000000..812cbead --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sources":["../../../src/internal/operators/skip.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAApC,CAAoC,CAAC;AACzE,CAAC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAgC,0CAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAF7D,WAAK,GAAW,CAAC,CAAC;;IAIlB,CAAC;IAES,8BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,CAAgC,UAAU,GAYzC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/skipLast.js b/node_modules/rxjs/_esm5/internal/operators/skipLast.js new file mode 100644 index 00000000..ab9f1421 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skipLast.js @@ -0,0 +1,50 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +export function skipLast(count) { + return function (source) { return source.lift(new SkipLastOperator(count)); }; +} +var SkipLastOperator = /*@__PURE__*/ (function () { + function SkipLastOperator(_skipCount) { + this._skipCount = _skipCount; + if (this._skipCount < 0) { + throw new ArgumentOutOfRangeError; + } + } + SkipLastOperator.prototype.call = function (subscriber, source) { + if (this._skipCount === 0) { + return source.subscribe(new Subscriber(subscriber)); + } + else { + return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); + } + }; + return SkipLastOperator; +}()); +var SkipLastSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SkipLastSubscriber, _super); + function SkipLastSubscriber(destination, _skipCount) { + var _this = _super.call(this, destination) || this; + _this._skipCount = _skipCount; + _this._count = 0; + _this._ring = new Array(_skipCount); + return _this; + } + SkipLastSubscriber.prototype._next = function (value) { + var skipCount = this._skipCount; + var count = this._count++; + if (count < skipCount) { + this._ring[count] = value; + } + else { + var currentIndex = count % skipCount; + var ring = this._ring; + var oldValue = ring[currentIndex]; + ring[currentIndex] = value; + this.destination.next(oldValue); + } + }; + return SkipLastSubscriber; +}(Subscriber)); +//# sourceMappingURL=skipLast.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map b/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map new file mode 100644 index 00000000..bf337d31 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sources":["../../../src/internal/operators/skipLast.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AA0C1E,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAED;IACE,0BAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAGzB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAhBD,IAgBC;AAOD;IAAoC,8CAAa;IAI/C,4BAAY,WAA0B,EAAU,UAAkB;QAAlE,YACE,kBAAM,WAAW,CAAC,SAEnB;QAH+C,gBAAU,GAAV,UAAU,CAAQ;QAF1D,YAAM,GAAW,CAAC,CAAC;QAIzB,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAI,UAAU,CAAC,CAAC;;IACxC,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SAC3B;aAAM;YACL,IAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;YACvC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAxBD,CAAoC,UAAU,GAwB7C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/skipUntil.js b/node_modules/rxjs/_esm5/internal/operators/skipUntil.js new file mode 100644 index 00000000..b5a7447d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skipUntil.js @@ -0,0 +1,46 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function skipUntil(notifier) { + return function (source) { return source.lift(new SkipUntilOperator(notifier)); }; +} +var SkipUntilOperator = /*@__PURE__*/ (function () { + function SkipUntilOperator(notifier) { + this.notifier = notifier; + } + SkipUntilOperator.prototype.call = function (destination, source) { + return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); + }; + return SkipUntilOperator; +}()); +var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SkipUntilSubscriber, _super); + function SkipUntilSubscriber(destination, notifier) { + var _this = _super.call(this, destination) || this; + _this.hasValue = false; + var innerSubscriber = new SimpleInnerSubscriber(_this); + _this.add(innerSubscriber); + _this.innerSubscription = innerSubscriber; + var innerSubscription = innerSubscribe(notifier, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + _this.add(innerSubscription); + _this.innerSubscription = innerSubscription; + } + return _this; + } + SkipUntilSubscriber.prototype._next = function (value) { + if (this.hasValue) { + _super.prototype._next.call(this, value); + } + }; + SkipUntilSubscriber.prototype.notifyNext = function () { + this.hasValue = true; + if (this.innerSubscription) { + this.innerSubscription.unsubscribe(); + } + }; + SkipUntilSubscriber.prototype.notifyComplete = function () { + }; + return SkipUntilSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=skipUntil.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map b/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map new file mode 100644 index 00000000..cee535ca --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sources":["../../../src/internal/operators/skipUntil.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAyCjG,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,WAA0B,EAAE,MAAW;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,+CAA2B;IAKjE,6BAAY,WAA0B,EAAE,QAA8B;QAAtE,YACE,kBAAM,WAAW,CAAC,SAYnB;QAhBO,cAAQ,GAAY,KAAK,CAAC;QAKhC,IAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,KAAI,CAAC,CAAC;QACxD,KAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,KAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QACzC,IAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAIpE,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,KAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;;IACH,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,wCAAU,GAAV;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACtC;IACH,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAAwC,qBAAqB,GAoC5D"} diff --git a/node_modules/rxjs/_esm5/internal/operators/skipWhile.js b/node_modules/rxjs/_esm5/internal/operators/skipWhile.js new file mode 100644 index 00000000..ab0ee015 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skipWhile.js @@ -0,0 +1,45 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function skipWhile(predicate) { + return function (source) { return source.lift(new SkipWhileOperator(predicate)); }; +} +var SkipWhileOperator = /*@__PURE__*/ (function () { + function SkipWhileOperator(predicate) { + this.predicate = predicate; + } + SkipWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); + }; + return SkipWhileOperator; +}()); +var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SkipWhileSubscriber, _super); + function SkipWhileSubscriber(destination, predicate) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.skipping = true; + _this.index = 0; + return _this; + } + SkipWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (this.skipping) { + this.tryCallPredicate(value); + } + if (!this.skipping) { + destination.next(value); + } + }; + SkipWhileSubscriber.prototype.tryCallPredicate = function (value) { + try { + var result = this.predicate(value, this.index++); + this.skipping = Boolean(result); + } + catch (err) { + this.destination.error(err); + } + }; + return SkipWhileSubscriber; +}(Subscriber)); +//# sourceMappingURL=skipWhile.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map b/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map new file mode 100644 index 00000000..90f3f040 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sources":["../../../src/internal/operators/skipWhile.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,MAAM,UAAU,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,+CAAa;IAIhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAJ3D,cAAQ,GAAY,IAAI,CAAC;QACzB,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,UAAU,GA4B9C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/startWith.js b/node_modules/rxjs/_esm5/internal/operators/startWith.js new file mode 100644 index 00000000..fd531b82 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/startWith.js @@ -0,0 +1,18 @@ +/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */ +import { concat } from '../observable/concat'; +import { isScheduler } from '../util/isScheduler'; +export function startWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; + } + var scheduler = array[array.length - 1]; + if (isScheduler(scheduler)) { + array.pop(); + return function (source) { return concat(array, source, scheduler); }; + } + else { + return function (source) { return concat(array, source); }; + } +} +//# sourceMappingURL=startWith.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/startWith.js.map b/node_modules/rxjs/_esm5/internal/operators/startWith.js.map new file mode 100644 index 00000000..f8afec09 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sources":["../../../src/internal/operators/startWith.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiElD,MAAM,UAAU,SAAS;IAAO,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAChE,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IAC3D,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;QAE1B,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,KAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAvC,CAAuC,CAAC;KAC3E;SAAM;QACL,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,KAAY,EAAE,MAAM,CAAC,EAA5B,CAA4B,CAAC;KAChE;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js b/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js new file mode 100644 index 00000000..891ab166 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js @@ -0,0 +1,21 @@ +/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ +import { SubscribeOnObservable } from '../observable/SubscribeOnObservable'; +export function subscribeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return function subscribeOnOperatorFunction(source) { + return source.lift(new SubscribeOnOperator(scheduler, delay)); + }; +} +var SubscribeOnOperator = /*@__PURE__*/ (function () { + function SubscribeOnOperator(scheduler, delay) { + this.scheduler = scheduler; + this.delay = delay; + } + SubscribeOnOperator.prototype.call = function (subscriber, source) { + return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber); + }; + return SubscribeOnOperator; +}()); +//# sourceMappingURL=subscribeOn.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map b/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map new file mode 100644 index 00000000..7f7ed37c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sources":["../../../src/internal/operators/subscribeOn.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AA6C5E,MAAM,UAAU,WAAW,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACxE,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAED;IACE,6BAAoB,SAAwB,EACxB,KAAa;QADb,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IACD,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,IAAI,qBAAqB,CAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CACnC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IACH,0BAAC;AAAD,CAAC,AATD,IASC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/switchAll.js b/node_modules/rxjs/_esm5/internal/operators/switchAll.js new file mode 100644 index 00000000..ae104cfd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/switchAll.js @@ -0,0 +1,7 @@ +/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ +import { switchMap } from './switchMap'; +import { identity } from '../util/identity'; +export function switchAll() { + return switchMap(identity); +} +//# sourceMappingURL=switchAll.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map b/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map new file mode 100644 index 00000000..643e89db --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/switchAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchAll.js","sources":["../../../src/internal/operators/switchAll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA4D5C,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMap.js b/node_modules/rxjs/_esm5/internal/operators/switchMap.js new file mode 100644 index 00000000..05e1469c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/switchMap.js @@ -0,0 +1,75 @@ +/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; +export function switchMap(project, resultSelector) { + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; + } + return function (source) { return source.lift(new SwitchMapOperator(project)); }; +} +var SwitchMapOperator = /*@__PURE__*/ (function () { + function SwitchMapOperator(project) { + this.project = project; + } + SwitchMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + }; + return SwitchMapOperator; +}()); +var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(SwitchMapSubscriber, _super); + function SwitchMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.index = 0; + return _this; + } + SwitchMapSubscriber.prototype._next = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (error) { + this.destination.error(error); + return; + } + this._innerSub(result); + }; + SwitchMapSubscriber.prototype._innerSub = function (result) { + var innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + this.innerSubscription = innerSubscribe(result, innerSubscriber); + if (this.innerSubscription !== innerSubscriber) { + destination.add(this.innerSubscription); + } + }; + SwitchMapSubscriber.prototype._complete = function () { + var innerSubscription = this.innerSubscription; + if (!innerSubscription || innerSubscription.closed) { + _super.prototype._complete.call(this); + } + this.unsubscribe(); + }; + SwitchMapSubscriber.prototype._unsubscribe = function () { + this.innerSubscription = undefined; + }; + SwitchMapSubscriber.prototype.notifyComplete = function () { + this.innerSubscription = undefined; + if (this.isStopped) { + _super.prototype._complete.call(this); + } + }; + SwitchMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + return SwitchMapSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=switchMap.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map b/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map new file mode 100644 index 00000000..94c44d39 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sources":["../../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js b/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js new file mode 100644 index 00000000..19e1251c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ +import { switchMap } from './switchMap'; +export function switchMapTo(innerObservable, resultSelector) { + return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; }); +} +//# sourceMappingURL=switchMapTo.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map b/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map new file mode 100644 index 00000000..ff19da63 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sources":["../../../src/internal/operators/switchMapTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkDxC,MAAM,UAAU,WAAW,CACzB,eAAmC,EACnC,cAA4F;IAE5F,OAAO,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,CAAC,CAAC;AAC9G,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/take.js b/node_modules/rxjs/_esm5/internal/operators/take.js new file mode 100644 index 00000000..879122be --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/take.js @@ -0,0 +1,49 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { empty } from '../observable/empty'; +export function take(count) { + return function (source) { + if (count === 0) { + return empty(); + } + else { + return source.lift(new TakeOperator(count)); + } + }; +} +var TakeOperator = /*@__PURE__*/ (function () { + function TakeOperator(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + TakeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeSubscriber(subscriber, this.total)); + }; + return TakeOperator; +}()); +var TakeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(TakeSubscriber, _super); + function TakeSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + TakeSubscriber.prototype._next = function (value) { + var total = this.total; + var count = ++this.count; + if (count <= total) { + this.destination.next(value); + if (count === total) { + this.destination.complete(); + this.unsubscribe(); + } + } + }; + return TakeSubscriber; +}(Subscriber)); +//# sourceMappingURL=take.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/take.js.map b/node_modules/rxjs/_esm5/internal/operators/take.js.map new file mode 100644 index 00000000..ea5a2ed5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sources":["../../../src/internal/operators/take.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAkD5C,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAgC,0CAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAFrD,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAlBD,CAAgC,UAAU,GAkBzC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/takeLast.js b/node_modules/rxjs/_esm5/internal/operators/takeLast.js new file mode 100644 index 00000000..d5d26586 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/takeLast.js @@ -0,0 +1,64 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { empty } from '../observable/empty'; +export function takeLast(count) { + return function takeLastOperatorFunction(source) { + if (count === 0) { + return empty(); + } + else { + return source.lift(new TakeLastOperator(count)); + } + }; +} +var TakeLastOperator = /*@__PURE__*/ (function () { + function TakeLastOperator(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + TakeLastOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + }; + return TakeLastOperator; +}()); +var TakeLastSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(TakeLastSubscriber, _super); + function TakeLastSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.ring = new Array(); + _this.count = 0; + return _this; + } + TakeLastSubscriber.prototype._next = function (value) { + var ring = this.ring; + var total = this.total; + var count = this.count++; + if (ring.length < total) { + ring.push(value); + } + else { + var index = count % total; + ring[index] = value; + } + }; + TakeLastSubscriber.prototype._complete = function () { + var destination = this.destination; + var count = this.count; + if (count > 0) { + var total = this.count >= this.total ? this.total : this.count; + var ring = this.ring; + for (var i = 0; i < total; i++) { + var idx = (count++) % total; + destination.next(ring[idx]); + } + } + destination.complete(); + }; + return TakeLastSubscriber; +}(Subscriber)); +//# sourceMappingURL=takeLast.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map b/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map new file mode 100644 index 00000000..d3a5486e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sources":["../../../src/internal/operators/takeLast.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA8C5C,MAAM,UAAU,QAAQ,CAAI,KAAa;IACvC,OAAO,SAAS,wBAAwB,CAAC,MAAqB;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,KAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AAED;IACE,0BAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,uBAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAoC,8CAAa;IAI/C,4BAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAHrD,UAAI,GAAa,IAAI,KAAK,EAAE,CAAC;QAC7B,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM;YACL,IAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,IAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,yBAAC;AAAD,CAAC,AArCD,CAAoC,UAAU,GAqC7C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/takeUntil.js b/node_modules/rxjs/_esm5/internal/operators/takeUntil.js new file mode 100644 index 00000000..38399f3e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/takeUntil.js @@ -0,0 +1,37 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe'; +export function takeUntil(notifier) { + return function (source) { return source.lift(new TakeUntilOperator(notifier)); }; +} +var TakeUntilOperator = /*@__PURE__*/ (function () { + function TakeUntilOperator(notifier) { + this.notifier = notifier; + } + TakeUntilOperator.prototype.call = function (subscriber, source) { + var takeUntilSubscriber = new TakeUntilSubscriber(subscriber); + var notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber)); + if (notifierSubscription && !takeUntilSubscriber.seenValue) { + takeUntilSubscriber.add(notifierSubscription); + return source.subscribe(takeUntilSubscriber); + } + return takeUntilSubscriber; + }; + return TakeUntilOperator; +}()); +var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(TakeUntilSubscriber, _super); + function TakeUntilSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.seenValue = false; + return _this; + } + TakeUntilSubscriber.prototype.notifyNext = function () { + this.seenValue = true; + this.complete(); + }; + TakeUntilSubscriber.prototype.notifyComplete = function () { + }; + return TakeUntilSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=takeUntil.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map b/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map new file mode 100644 index 00000000..4a96d2b1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sources":["../../../src/internal/operators/takeUntil.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA0CjG,MAAM,UAAU,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAM,oBAAoB,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC3G,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YAC1D,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SAC9C;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACH,wBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAwC,+CAA2B;IAGjE,6BAAY,WAA4B;QAAxC,YACE,kBAAM,WAAW,CAAC,SACnB;QAJD,eAAS,GAAG,KAAK,CAAC;;IAIlB,CAAC;IAED,wCAAU,GAAV;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AAfD,CAAwC,qBAAqB,GAe5D"} diff --git a/node_modules/rxjs/_esm5/internal/operators/takeWhile.js b/node_modules/rxjs/_esm5/internal/operators/takeWhile.js new file mode 100644 index 00000000..0d7ed524 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/takeWhile.js @@ -0,0 +1,57 @@ +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +export function takeWhile(predicate, inclusive) { + if (inclusive === void 0) { + inclusive = false; + } + return function (source) { + return source.lift(new TakeWhileOperator(predicate, inclusive)); + }; +} +var TakeWhileOperator = /*@__PURE__*/ (function () { + function TakeWhileOperator(predicate, inclusive) { + this.predicate = predicate; + this.inclusive = inclusive; + } + TakeWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive)); + }; + return TakeWhileOperator; +}()); +var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(TakeWhileSubscriber, _super); + function TakeWhileSubscriber(destination, predicate, inclusive) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.inclusive = inclusive; + _this.index = 0; + return _this; + } + TakeWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + var result; + try { + result = this.predicate(value, this.index++); + } + catch (err) { + destination.error(err); + return; + } + this.nextOrComplete(value, result); + }; + TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) { + var destination = this.destination; + if (Boolean(predicateResult)) { + destination.next(value); + } + else { + if (this.inclusive) { + destination.next(value); + } + destination.complete(); + } + }; + return TakeWhileSubscriber; +}(Subscriber)); +//# sourceMappingURL=takeWhile.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map b/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map new file mode 100644 index 00000000..e9085ff1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sources":["../../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmD3C,MAAM,UAAU,SAAS,CACrB,SAA+C,EAC/C,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IACnB,OAAO,UAAC,MAAqB;QAClB,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAAxD,CAAwD,CAAC;AACtE,CAAC;AAED;IACE,2BACY,SAA+C,EAC/C,SAAkB;QADlB,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;IAAG,CAAC;IAElC,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CACnB,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACH,wBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAqC,+CAAa;IAGhD,6BACI,WAA0B,EAClB,SAA+C,EAC/C,SAAkB;QAH9B,YAIE,kBAAM,WAAW,CAAC,SACnB;QAHW,eAAS,GAAT,SAAS,CAAsC;QAC/C,eAAS,GAAT,SAAS,CAAS;QALtB,WAAK,GAAW,CAAC,CAAC;;IAO1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AAjCD,CAAqC,UAAU,GAiC9C"} diff --git a/node_modules/rxjs/_esm5/internal/operators/tap.js b/node_modules/rxjs/_esm5/internal/operators/tap.js new file mode 100644 index 00000000..19ab564c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/tap.js @@ -0,0 +1,75 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { noop } from '../util/noop'; +import { isFunction } from '../util/isFunction'; +export function tap(nextOrObserver, error, complete) { + return function tapOperatorFunction(source) { + return source.lift(new DoOperator(nextOrObserver, error, complete)); + }; +} +var DoOperator = /*@__PURE__*/ (function () { + function DoOperator(nextOrObserver, error, complete) { + this.nextOrObserver = nextOrObserver; + this.error = error; + this.complete = complete; + } + DoOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + }; + return DoOperator; +}()); +var TapSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(TapSubscriber, _super); + function TapSubscriber(destination, observerOrNext, error, complete) { + var _this = _super.call(this, destination) || this; + _this._tapNext = noop; + _this._tapError = noop; + _this._tapComplete = noop; + _this._tapError = error || noop; + _this._tapComplete = complete || noop; + if (isFunction(observerOrNext)) { + _this._context = _this; + _this._tapNext = observerOrNext; + } + else if (observerOrNext) { + _this._context = observerOrNext; + _this._tapNext = observerOrNext.next || noop; + _this._tapError = observerOrNext.error || noop; + _this._tapComplete = observerOrNext.complete || noop; + } + return _this; + } + TapSubscriber.prototype._next = function (value) { + try { + this._tapNext.call(this._context, value); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(value); + }; + TapSubscriber.prototype._error = function (err) { + try { + this._tapError.call(this._context, err); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.error(err); + }; + TapSubscriber.prototype._complete = function () { + try { + this._tapComplete.call(this._context); + } + catch (err) { + this.destination.error(err); + return; + } + return this.destination.complete(); + }; + return TapSubscriber; +}(Subscriber)); +//# sourceMappingURL=tap.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/tap.js.map b/node_modules/rxjs/_esm5/internal/operators/tap.js.map new file mode 100644 index 00000000..499d6da9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/tap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tap.js","sources":["../../../src/internal/operators/tap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/throttle.js b/node_modules/rxjs/_esm5/internal/operators/throttle.js new file mode 100644 index 00000000..a347274e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/throttle.js @@ -0,0 +1,90 @@ +/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export var defaultThrottleConfig = { + leading: true, + trailing: false +}; +export function throttle(durationSelector, config) { + if (config === void 0) { + config = defaultThrottleConfig; + } + return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); }; +} +var ThrottleOperator = /*@__PURE__*/ (function () { + function ThrottleOperator(durationSelector, leading, trailing) { + this.durationSelector = durationSelector; + this.leading = leading; + this.trailing = trailing; + } + ThrottleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); + }; + return ThrottleOperator; +}()); +var ThrottleSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ThrottleSubscriber, _super); + function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.durationSelector = durationSelector; + _this._leading = _leading; + _this._trailing = _trailing; + _this._hasValue = false; + return _this; + } + ThrottleSubscriber.prototype._next = function (value) { + this._hasValue = true; + this._sendValue = value; + if (!this._throttled) { + if (this._leading) { + this.send(); + } + else { + this.throttle(value); + } + } + }; + ThrottleSubscriber.prototype.send = function () { + var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue; + if (_hasValue) { + this.destination.next(_sendValue); + this.throttle(_sendValue); + } + this._hasValue = false; + this._sendValue = undefined; + }; + ThrottleSubscriber.prototype.throttle = function (value) { + var duration = this.tryDurationSelector(value); + if (!!duration) { + this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this))); + } + }; + ThrottleSubscriber.prototype.tryDurationSelector = function (value) { + try { + return this.durationSelector(value); + } + catch (err) { + this.destination.error(err); + return null; + } + }; + ThrottleSubscriber.prototype.throttlingDone = function () { + var _a = this, _throttled = _a._throttled, _trailing = _a._trailing; + if (_throttled) { + _throttled.unsubscribe(); + } + this._throttled = undefined; + if (_trailing) { + this.send(); + } + }; + ThrottleSubscriber.prototype.notifyNext = function () { + this.throttlingDone(); + }; + ThrottleSubscriber.prototype.notifyComplete = function () { + this.throttlingDone(); + }; + return ThrottleSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=throttle.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/throttle.js.map b/node_modules/rxjs/_esm5/internal/operators/throttle.js.map new file mode 100644 index 00000000..38eda576 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sources":["../../../src/internal/operators/throttle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/throttleTime.js b/node_modules/rxjs/_esm5/internal/operators/throttleTime.js new file mode 100644 index 00000000..78a228a6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/throttleTime.js @@ -0,0 +1,85 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +import { defaultThrottleConfig } from './throttle'; +export function throttleTime(duration, scheduler, config) { + if (scheduler === void 0) { + scheduler = async; + } + if (config === void 0) { + config = defaultThrottleConfig; + } + return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); }; +} +var ThrottleTimeOperator = /*@__PURE__*/ (function () { + function ThrottleTimeOperator(duration, scheduler, leading, trailing) { + this.duration = duration; + this.scheduler = scheduler; + this.leading = leading; + this.trailing = trailing; + } + ThrottleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); + }; + return ThrottleTimeOperator; +}()); +var ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ThrottleTimeSubscriber, _super); + function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) { + var _this = _super.call(this, destination) || this; + _this.duration = duration; + _this.scheduler = scheduler; + _this.leading = leading; + _this.trailing = trailing; + _this._hasTrailingValue = false; + _this._trailingValue = null; + return _this; + } + ThrottleTimeSubscriber.prototype._next = function (value) { + if (this.throttled) { + if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + else { + this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this })); + if (this.leading) { + this.destination.next(value); + } + else if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + }; + ThrottleTimeSubscriber.prototype._complete = function () { + if (this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this.destination.complete(); + } + else { + this.destination.complete(); + } + }; + ThrottleTimeSubscriber.prototype.clearThrottle = function () { + var throttled = this.throttled; + if (throttled) { + if (this.trailing && this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + throttled.unsubscribe(); + this.remove(throttled); + this.throttled = null; + } + }; + return ThrottleTimeSubscriber; +}(Subscriber)); +function dispatchNext(arg) { + var subscriber = arg.subscriber; + subscriber.clearThrottle(); +} +//# sourceMappingURL=throttleTime.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map b/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map new file mode 100644 index 00000000..bf5a868b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sources":["../../../src/internal/operators/throttleTime.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js b/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js new file mode 100644 index 00000000..61e9716b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js @@ -0,0 +1,54 @@ +/** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { EmptyError } from '../util/EmptyError'; +import { Subscriber } from '../Subscriber'; +export function throwIfEmpty(errorFactory) { + if (errorFactory === void 0) { + errorFactory = defaultErrorFactory; + } + return function (source) { + return source.lift(new ThrowIfEmptyOperator(errorFactory)); + }; +} +var ThrowIfEmptyOperator = /*@__PURE__*/ (function () { + function ThrowIfEmptyOperator(errorFactory) { + this.errorFactory = errorFactory; + } + ThrowIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); + }; + return ThrowIfEmptyOperator; +}()); +var ThrowIfEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ThrowIfEmptySubscriber, _super); + function ThrowIfEmptySubscriber(destination, errorFactory) { + var _this = _super.call(this, destination) || this; + _this.errorFactory = errorFactory; + _this.hasValue = false; + return _this; + } + ThrowIfEmptySubscriber.prototype._next = function (value) { + this.hasValue = true; + this.destination.next(value); + }; + ThrowIfEmptySubscriber.prototype._complete = function () { + if (!this.hasValue) { + var err = void 0; + try { + err = this.errorFactory(); + } + catch (e) { + err = e; + } + this.destination.error(err); + } + else { + return this.destination.complete(); + } + }; + return ThrowIfEmptySubscriber; +}(Subscriber)); +function defaultErrorFactory() { + return new EmptyError(); +} +//# sourceMappingURL=throwIfEmpty.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map b/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map new file mode 100644 index 00000000..9e6c83c8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throwIfEmpty.js","sources":["../../../src/internal/operators/throwIfEmpty.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiC3C,MAAM,UAAU,YAAY,CAAK,YAA+C;IAA/C,6BAAA,EAAA,kCAA+C;IAC9E,OAAO,UAAC,MAAqB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,8BAAoB,YAAuB;QAAvB,iBAAY,GAAZ,YAAY,CAAW;IAC3C,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAwC,kDAAa;IAGnD,gCAAY,WAA0B,EAAU,YAAuB;QAAvE,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,kBAAY,GAAZ,YAAY,CAAW;QAF/D,cAAQ,GAAY,KAAK,CAAC;;IAIlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,GAAG,SAAK,CAAC;YACb,IAAI;gBACF,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SACtC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAzBD,CAAwC,UAAU,GAyBjD;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/timeInterval.js b/node_modules/rxjs/_esm5/internal/operators/timeInterval.js new file mode 100644 index 00000000..f2190b6d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timeInterval.js @@ -0,0 +1,30 @@ +/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ +import { async } from '../scheduler/async'; +import { scan } from './scan'; +import { defer } from '../observable/defer'; +import { map } from './map'; +export function timeInterval(scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + return function (source) { + return defer(function () { + return source.pipe(scan(function (_a, value) { + var current = _a.current; + return ({ value: value, current: scheduler.now(), last: current }); + }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) { + var current = _a.current, last = _a.last, value = _a.value; + return new TimeInterval(value, current - last); + })); + }); + }; +} +var TimeInterval = /*@__PURE__*/ (function () { + function TimeInterval(value, interval) { + this.value = value; + this.interval = interval; + } + return TimeInterval; +}()); +export { TimeInterval }; +//# sourceMappingURL=timeInterval.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map b/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map new file mode 100644 index 00000000..08d9db89 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sources":["../../../src/internal/operators/timeInterval.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA+C5B,MAAM,UAAU,YAAY,CAAI,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC9D,OAAO,UAAC,MAAqB,IAAK,OAAA,KAAK,CAAC;QACtC,OAAO,MAAM,CAAC,IAAI,CAEhB,IAAI,CACF,UAAC,EAAW,EAAE,KAAK;gBAAhB,oBAAO;YAAc,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAApD,CAAoD,EAC5E,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAG,IAAI,EAAE,SAAS,EAAE,CAC1D,EACR,GAAG,CAAuB,UAAC,EAAwB;gBAAtB,oBAAO,EAAE,cAAI,EAAE,gBAAK;YAAO,OAAA,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;QAAvC,CAAuC,CAAC,CACjG,CAAC;IACJ,CAAC,CAAC,EATgC,CAShC,CAAC;AACL,CAAC;AAQD;IACE,sBAAmB,KAAQ,EAAS,QAAgB;QAAjC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAC1D,mBAAC;AAAD,CAAC,AAFD,IAEC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/timeout.js b/node_modules/rxjs/_esm5/internal/operators/timeout.js new file mode 100644 index 00000000..47bbebc2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timeout.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ +import { async } from '../scheduler/async'; +import { TimeoutError } from '../util/TimeoutError'; +import { timeoutWith } from './timeoutWith'; +import { throwError } from '../observable/throwError'; +export function timeout(due, scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + return timeoutWith(due, throwError(new TimeoutError()), scheduler); +} +//# sourceMappingURL=timeout.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/timeout.js.map b/node_modules/rxjs/_esm5/internal/operators/timeout.js.map new file mode 100644 index 00000000..a67d267e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sources":["../../../src/internal/operators/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAgFtD,MAAM,UAAU,OAAO,CAAI,GAAkB,EAClB,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IACzD,OAAO,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js b/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js new file mode 100644 index 00000000..87763aa8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js @@ -0,0 +1,66 @@ +/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function timeoutWith(due, withObservable, scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + return function (source) { + var absoluteTimeout = isDate(due); + var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); + }; +} +var TimeoutWithOperator = /*@__PURE__*/ (function () { + function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { + this.waitFor = waitFor; + this.absoluteTimeout = absoluteTimeout; + this.withObservable = withObservable; + this.scheduler = scheduler; + } + TimeoutWithOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); + }; + return TimeoutWithOperator; +}()); +var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(TimeoutWithSubscriber, _super); + function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { + var _this = _super.call(this, destination) || this; + _this.absoluteTimeout = absoluteTimeout; + _this.waitFor = waitFor; + _this.withObservable = withObservable; + _this.scheduler = scheduler; + _this.scheduleTimeout(); + return _this; + } + TimeoutWithSubscriber.dispatchTimeout = function (subscriber) { + var withObservable = subscriber.withObservable; + subscriber._unsubscribeAndRecycle(); + subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber))); + }; + TimeoutWithSubscriber.prototype.scheduleTimeout = function () { + var action = this.action; + if (action) { + this.action = action.schedule(this, this.waitFor); + } + else { + this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); + } + }; + TimeoutWithSubscriber.prototype._next = function (value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + _super.prototype._next.call(this, value); + }; + TimeoutWithSubscriber.prototype._unsubscribe = function () { + this.action = undefined; + this.scheduler = null; + this.withObservable = null; + }; + return TimeoutWithSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=timeoutWith.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map b/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map new file mode 100644 index 00000000..9aed57c1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sources":["../../../src/internal/operators/timeoutWith.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/timestamp.js b/node_modules/rxjs/_esm5/internal/operators/timestamp.js new file mode 100644 index 00000000..693f8910 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timestamp.js @@ -0,0 +1,18 @@ +/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */ +import { async } from '../scheduler/async'; +import { map } from './map'; +export function timestamp(scheduler) { + if (scheduler === void 0) { + scheduler = async; + } + return map(function (value) { return new Timestamp(value, scheduler.now()); }); +} +var Timestamp = /*@__PURE__*/ (function () { + function Timestamp(value, timestamp) { + this.value = value; + this.timestamp = timestamp; + } + return Timestamp; +}()); +export { Timestamp }; +//# sourceMappingURL=timestamp.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map b/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map new file mode 100644 index 00000000..c09bcac9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sources":["../../../src/internal/operators/timestamp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAoC5B,MAAM,UAAU,SAAS,CAAI,SAAgC;IAAhC,0BAAA,EAAA,iBAAgC;IAC3D,OAAO,GAAG,CAAC,UAAC,KAAQ,IAAK,OAAA,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAArC,CAAqC,CAAC,CAAC;AAElE,CAAC;AAED;IACE,mBAAmB,KAAQ,EAAS,SAAiB;QAAlC,UAAK,GAAL,KAAK,CAAG;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;IACH,gBAAC;AAAD,CAAC,AAHD,IAGC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/toArray.js b/node_modules/rxjs/_esm5/internal/operators/toArray.js new file mode 100644 index 00000000..7e10933f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/toArray.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +import { reduce } from './reduce'; +function toArrayReducer(arr, item, index) { + if (index === 0) { + return [item]; + } + arr.push(item); + return arr; +} +export function toArray() { + return reduce(toArrayReducer, []); +} +//# sourceMappingURL=toArray.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/toArray.js.map b/node_modules/rxjs/_esm5/internal/operators/toArray.js.map new file mode 100644 index 00000000..c129b66b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sources":["../../../src/internal/operators/toArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,SAAS,cAAc,CAAI,GAAQ,EAAE,IAAO,EAAE,KAAa;IACzD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAiCD,MAAM,UAAU,OAAO;IACrB,OAAO,MAAM,CAAC,cAAc,EAAE,EAAS,CAAC,CAAC;AAC3C,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/window.js b/node_modules/rxjs/_esm5/internal/operators/window.js new file mode 100644 index 00000000..e1109b31 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/window.js @@ -0,0 +1,66 @@ +/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from '../Subject'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; +export function window(windowBoundaries) { + return function windowOperatorFunction(source) { + return source.lift(new WindowOperator(windowBoundaries)); + }; +} +var WindowOperator = /*@__PURE__*/ (function () { + function WindowOperator(windowBoundaries) { + this.windowBoundaries = windowBoundaries; + } + WindowOperator.prototype.call = function (subscriber, source) { + var windowSubscriber = new WindowSubscriber(subscriber); + var sourceSubscription = source.subscribe(windowSubscriber); + if (!sourceSubscription.closed) { + windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber))); + } + return sourceSubscription; + }; + return WindowOperator; +}()); +var WindowSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(WindowSubscriber, _super); + function WindowSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.window = new Subject(); + destination.next(_this.window); + return _this; + } + WindowSubscriber.prototype.notifyNext = function () { + this.openWindow(); + }; + WindowSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function () { + this._complete(); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + }; + WindowSubscriber.prototype._unsubscribe = function () { + this.window = null; + }; + WindowSubscriber.prototype.openWindow = function () { + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var destination = this.destination; + var newWindow = this.window = new Subject(); + destination.next(newWindow); + }; + return WindowSubscriber; +}(SimpleOuterSubscriber)); +//# sourceMappingURL=window.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/window.js.map b/node_modules/rxjs/_esm5/internal/operators/window.js.map new file mode 100644 index 00000000..89924d61 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sources":["../../../src/internal/operators/window.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AA6CjG,MAAM,UAAU,MAAM,CAAI,gBAAiC;IACzD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED;IAEE,wBAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IACrD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAqC,EAAE,MAAW;QACrD,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC1G;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACH,qBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAkC,4CAA6B;IAI7D,0BAAY,WAAsC;QAAlD,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAe,IAAI,OAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;;IAChC,CAAC;IAED,qCAAU,GAAV;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,sCAAW,GAAX,UAAY,KAAU;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,yCAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,iCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;IAC/B,CAAC;IAGD,uCAAY,GAAZ;QACE,IAAI,CAAC,MAAM,GAAG,IAAK,CAAC;IACtB,CAAC;IAEO,qCAAU,GAAlB;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;QACjD,WAAW,CAAC,IAAK,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACH,uBAAC;AAAD,CAAC,AAjDD,CAAkC,qBAAqB,GAiDtD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/windowCount.js b/node_modules/rxjs/_esm5/internal/operators/windowCount.js new file mode 100644 index 00000000..c8b0068f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowCount.js @@ -0,0 +1,78 @@ +/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscriber } from '../Subscriber'; +import { Subject } from '../Subject'; +export function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { + startWindowEvery = 0; + } + return function windowCountOperatorFunction(source) { + return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); + }; +} +var WindowCountOperator = /*@__PURE__*/ (function () { + function WindowCountOperator(windowSize, startWindowEvery) { + this.windowSize = windowSize; + this.startWindowEvery = startWindowEvery; + } + WindowCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + }; + return WindowCountOperator; +}()); +var WindowCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(WindowCountSubscriber, _super); + function WindowCountSubscriber(destination, windowSize, startWindowEvery) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowSize = windowSize; + _this.startWindowEvery = startWindowEvery; + _this.windows = [new Subject()]; + _this.count = 0; + destination.next(_this.windows[0]); + return _this; + } + WindowCountSubscriber.prototype._next = function (value) { + var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; + var destination = this.destination; + var windowSize = this.windowSize; + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len && !this.closed; i++) { + windows[i].next(value); + } + var c = this.count - windowSize + 1; + if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { + windows.shift().complete(); + } + if (++this.count % startWindowEvery === 0 && !this.closed) { + var window_1 = new Subject(); + windows.push(window_1); + destination.next(window_1); + } + }; + WindowCountSubscriber.prototype._error = function (err) { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().error(err); + } + } + this.destination.error(err); + }; + WindowCountSubscriber.prototype._complete = function () { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().complete(); + } + } + this.destination.complete(); + }; + WindowCountSubscriber.prototype._unsubscribe = function () { + this.count = 0; + this.windows = null; + }; + return WindowCountSubscriber; +}(Subscriber)); +//# sourceMappingURL=windowCount.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map b/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map new file mode 100644 index 00000000..918887cc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sources":["../../../src/internal/operators/windowCount.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/windowTime.js b/node_modules/rxjs/_esm5/internal/operators/windowTime.js new file mode 100644 index 00000000..05f460df --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowTime.js @@ -0,0 +1,155 @@ +/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from '../Subject'; +import { async } from '../scheduler/async'; +import { Subscriber } from '../Subscriber'; +import { isNumeric } from '../util/isNumeric'; +import { isScheduler } from '../util/isScheduler'; +export function windowTime(windowTimeSpan) { + var scheduler = async; + var windowCreationInterval = null; + var maxWindowSize = Number.POSITIVE_INFINITY; + if (isScheduler(arguments[3])) { + scheduler = arguments[3]; + } + if (isScheduler(arguments[2])) { + scheduler = arguments[2]; + } + else if (isNumeric(arguments[2])) { + maxWindowSize = Number(arguments[2]); + } + if (isScheduler(arguments[1])) { + scheduler = arguments[1]; + } + else if (isNumeric(arguments[1])) { + windowCreationInterval = Number(arguments[1]); + } + return function windowTimeOperatorFunction(source) { + return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); + }; +} +var WindowTimeOperator = /*@__PURE__*/ (function () { + function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + this.windowTimeSpan = windowTimeSpan; + this.windowCreationInterval = windowCreationInterval; + this.maxWindowSize = maxWindowSize; + this.scheduler = scheduler; + } + WindowTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); + }; + return WindowTimeOperator; +}()); +var CountedSubject = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(CountedSubject, _super); + function CountedSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._numberOfNextedValues = 0; + return _this; + } + CountedSubject.prototype.next = function (value) { + this._numberOfNextedValues++; + _super.prototype.next.call(this, value); + }; + Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", { + get: function () { + return this._numberOfNextedValues; + }, + enumerable: true, + configurable: true + }); + return CountedSubject; +}(Subject)); +var WindowTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(WindowTimeSubscriber, _super); + function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowTimeSpan = windowTimeSpan; + _this.windowCreationInterval = windowCreationInterval; + _this.maxWindowSize = maxWindowSize; + _this.scheduler = scheduler; + _this.windows = []; + var window = _this.openWindow(); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + var closeState = { subscriber: _this, window: window, context: null }; + var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); + } + else { + var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan }; + _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); + } + return _this; + } + WindowTimeSubscriber.prototype._next = function (value) { + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len; i++) { + var window_1 = windows[i]; + if (!window_1.closed) { + window_1.next(value); + if (window_1.numberOfNextedValues >= this.maxWindowSize) { + this.closeWindow(window_1); + } + } + } + }; + WindowTimeSubscriber.prototype._error = function (err) { + var windows = this.windows; + while (windows.length > 0) { + windows.shift().error(err); + } + this.destination.error(err); + }; + WindowTimeSubscriber.prototype._complete = function () { + var windows = this.windows; + while (windows.length > 0) { + var window_2 = windows.shift(); + if (!window_2.closed) { + window_2.complete(); + } + } + this.destination.complete(); + }; + WindowTimeSubscriber.prototype.openWindow = function () { + var window = new CountedSubject(); + this.windows.push(window); + var destination = this.destination; + destination.next(window); + return window; + }; + WindowTimeSubscriber.prototype.closeWindow = function (window) { + window.complete(); + var windows = this.windows; + windows.splice(windows.indexOf(window), 1); + }; + return WindowTimeSubscriber; +}(Subscriber)); +function dispatchWindowTimeSpanOnly(state) { + var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; + if (window) { + subscriber.closeWindow(window); + } + state.window = subscriber.openWindow(); + this.schedule(state, windowTimeSpan); +} +function dispatchWindowCreation(state) { + var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; + var window = subscriber.openWindow(); + var action = this; + var context = { action: action, subscription: null }; + var timeSpanState = { subscriber: subscriber, window: window, context: context }; + context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); + action.add(context.subscription); + action.schedule(state, windowCreationInterval); +} +function dispatchWindowClose(state) { + var subscriber = state.subscriber, window = state.window, context = state.context; + if (context && context.action && context.subscription) { + context.action.remove(context.subscription); + } + subscriber.closeWindow(window); +} +//# sourceMappingURL=windowTime.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map b/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map new file mode 100644 index 00000000..be4c2ea3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sources":["../../../src/internal/operators/windowTime.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/windowToggle.js b/node_modules/rxjs/_esm5/internal/operators/windowToggle.js new file mode 100644 index 00000000..0387d973 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowToggle.js @@ -0,0 +1,129 @@ +/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function windowToggle(openings, closingSelector) { + return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); }; +} +var WindowToggleOperator = /*@__PURE__*/ (function () { + function WindowToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + WindowToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return WindowToggleOperator; +}()); +var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(WindowToggleSubscriber, _super); + function WindowToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.openings = openings; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings)); + return _this; + } + WindowToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + if (contexts) { + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].window.next(value); + } + } + }; + WindowToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_1 = contexts[index]; + context_1.window.error(err); + context_1.subscription.unsubscribe(); + } + } + _super.prototype._error.call(this, err); + }; + WindowToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_2 = contexts[index]; + context_2.window.complete(); + context_2.subscription.unsubscribe(); + } + } + _super.prototype._complete.call(this); + }; + WindowToggleSubscriber.prototype._unsubscribe = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_3 = contexts[index]; + context_3.window.unsubscribe(); + context_3.subscription.unsubscribe(); + } + } + }; + WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (outerValue === this.openings) { + var closingNotifier = void 0; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(innerValue); + } + catch (e) { + return this.error(e); + } + var window_1 = new Subject(); + var subscription = new Subscription(); + var context_4 = { window: window_1, subscription: subscription }; + this.contexts.push(context_4); + var innerSubscription = subscribeToResult(this, closingNotifier, context_4); + if (innerSubscription.closed) { + this.closeWindow(this.contexts.length - 1); + } + else { + innerSubscription.context = context_4; + subscription.add(innerSubscription); + } + this.destination.next(window_1); + } + else { + this.closeWindow(this.contexts.indexOf(outerValue)); + } + }; + WindowToggleSubscriber.prototype.notifyError = function (err) { + this.error(err); + }; + WindowToggleSubscriber.prototype.notifyComplete = function (inner) { + if (inner !== this.openSubscription) { + this.closeWindow(this.contexts.indexOf(inner.context)); + } + }; + WindowToggleSubscriber.prototype.closeWindow = function (index) { + if (index === -1) { + return; + } + var contexts = this.contexts; + var context = contexts[index]; + var window = context.window, subscription = context.subscription; + contexts.splice(index, 1); + window.complete(); + subscription.unsubscribe(); + }; + return WindowToggleSubscriber; +}(OuterSubscriber)); +//# sourceMappingURL=windowToggle.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map b/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map new file mode 100644 index 00000000..b0a3b6e5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sources":["../../../src/internal/operators/windowToggle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/windowWhen.js b/node_modules/rxjs/_esm5/internal/operators/windowWhen.js new file mode 100644 index 00000000..25515fcc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowWhen.js @@ -0,0 +1,84 @@ +/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from '../Subject'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function windowWhen(closingSelector) { + return function windowWhenOperatorFunction(source) { + return source.lift(new WindowOperator(closingSelector)); + }; +} +var WindowOperator = /*@__PURE__*/ (function () { + function WindowOperator(closingSelector) { + this.closingSelector = closingSelector; + } + WindowOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector)); + }; + return WindowOperator; +}()); +var WindowSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(WindowSubscriber, _super); + function WindowSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.closingSelector = closingSelector; + _this.openWindow(); + return _this; + } + WindowSubscriber.prototype.notifyNext = function (_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function (innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype.unsubscribeClosingNotification = function () { + if (this.closingNotification) { + this.closingNotification.unsubscribe(); + } + }; + WindowSubscriber.prototype.openWindow = function (innerSub) { + if (innerSub === void 0) { + innerSub = null; + } + if (innerSub) { + this.remove(innerSub); + innerSub.unsubscribe(); + } + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var window = this.window = new Subject(); + this.destination.next(window); + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (e) { + this.destination.error(e); + this.window.error(e); + return; + } + this.add(this.closingNotification = subscribeToResult(this, closingNotifier)); + }; + return WindowSubscriber; +}(OuterSubscriber)); +//# sourceMappingURL=windowWhen.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map b/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map new file mode 100644 index 00000000..af2cda1e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sources":["../../../src/internal/operators/windowWhen.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAgD9D,MAAM,UAAU,UAAU,CAAI,eAAsC;IAClE,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED;IACE,wBAAoB,eAAsC;QAAtC,oBAAe,GAAf,eAAe,CAAuB;IAC1D,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAqC,EAAE,MAAW;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;IACH,qBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAkC,4CAAuB;IAIvD,0BAAsB,WAAsC,EACxC,eAAsC;QAD1D,YAEE,kBAAM,WAAW,CAAC,SAEnB;QAJqB,iBAAW,GAAX,WAAW,CAA2B;QACxC,qBAAe,GAAf,eAAe,CAAuB;QAExD,KAAI,CAAC,UAAU,EAAE,CAAC;;IACpB,CAAC;IAED,qCAAU,GAAV,UAAW,WAAc,EAAE,WAAgB,EAChC,WAAmB,EAAE,WAAmB,EACxC,QAAiC;QAC1C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,sCAAW,GAAX,UAAY,KAAU;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,yCAAc,GAAd,UAAe,QAAiC;QAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAES,iCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACxC,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,MAAO,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACxC,CAAC;IAEO,yDAA8B,GAAtC;QACE,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SACxC;IACH,CAAC;IAEO,qCAAU,GAAlB,UAAmB,QAA+C;QAA/C,yBAAA,EAAA,eAA+C;QAChE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtB,QAAQ,CAAC,WAAW,EAAE,CAAC;SACxB;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAK,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,eAAe,CAAC;QACpB,IAAI;YACM,IAAA,sCAAe,CAAU;YACjC,eAAe,GAAG,eAAe,EAAE,CAAC;SACrC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO;SACR;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAChF,CAAC;IACH,uBAAC;AAAD,CAAC,AAvED,CAAkC,eAAe,GAuEhD"} diff --git a/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js b/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js new file mode 100644 index 00000000..2ed41300 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js @@ -0,0 +1,83 @@ +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { OuterSubscriber } from '../OuterSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +export function withLatestFrom() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return function (source) { + var project; + if (typeof args[args.length - 1] === 'function') { + project = args.pop(); + } + var observables = args; + return source.lift(new WithLatestFromOperator(observables, project)); + }; +} +var WithLatestFromOperator = /*@__PURE__*/ (function () { + function WithLatestFromOperator(observables, project) { + this.observables = observables; + this.project = project; + } + WithLatestFromOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + }; + return WithLatestFromOperator; +}()); +var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(WithLatestFromSubscriber, _super); + function WithLatestFromSubscriber(destination, observables, project) { + var _this = _super.call(this, destination) || this; + _this.observables = observables; + _this.project = project; + _this.toRespond = []; + var len = observables.length; + _this.values = new Array(len); + for (var i = 0; i < len; i++) { + _this.toRespond.push(i); + } + for (var i = 0; i < len; i++) { + var observable = observables[i]; + _this.add(subscribeToResult(_this, observable, undefined, i)); + } + return _this; + } + WithLatestFromSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + this.values[outerIndex] = innerValue; + var toRespond = this.toRespond; + if (toRespond.length > 0) { + var found = toRespond.indexOf(outerIndex); + if (found !== -1) { + toRespond.splice(found, 1); + } + } + }; + WithLatestFromSubscriber.prototype.notifyComplete = function () { + }; + WithLatestFromSubscriber.prototype._next = function (value) { + if (this.toRespond.length === 0) { + var args = [value].concat(this.values); + if (this.project) { + this._tryProject(args); + } + else { + this.destination.next(args); + } + } + }; + WithLatestFromSubscriber.prototype._tryProject = function (args) { + var result; + try { + result = this.project.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return WithLatestFromSubscriber; +}(OuterSubscriber)); +//# sourceMappingURL=withLatestFrom.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map b/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map new file mode 100644 index 00000000..c4e373f7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sources":["../../../src/internal/operators/withLatestFrom.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/operators/zip.js b/node_modules/rxjs/_esm5/internal/operators/zip.js new file mode 100644 index 00000000..9d79bce2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/zip.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ +import { zip as zipStatic } from '../observable/zip'; +export function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function zipOperatorFunction(source) { + return source.lift.call(zipStatic.apply(void 0, [source].concat(observables))); + }; +} +//# sourceMappingURL=zip.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/zip.js.map b/node_modules/rxjs/_esm5/internal/operators/zip.js.map new file mode 100644 index 00000000..baa09efa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../../src/internal/operators/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsCrD,MAAM,UAAU,GAAG;IAAO,qBAA4E;SAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;QAA5E,gCAA4E;;IACpG,OAAO,SAAS,mBAAmB,CAAC,MAAqB;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,gBAAI,MAAM,SAAK,WAAW,GAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/operators/zipAll.js b/node_modules/rxjs/_esm5/internal/operators/zipAll.js new file mode 100644 index 00000000..cc58dd21 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/zipAll.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ +import { ZipOperator } from '../observable/zip'; +export function zipAll(project) { + return function (source) { return source.lift(new ZipOperator(project)); }; +} +//# sourceMappingURL=zipAll.js.map diff --git a/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map b/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map new file mode 100644 index 00000000..e0919fdd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/operators/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sources":["../../../src/internal/operators/zipAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,MAAM,UAAU,MAAM,CAAO,OAAsC;IACjE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js new file mode 100644 index 00000000..b9807565 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js @@ -0,0 +1,21 @@ +/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +export function scheduleArray(input, scheduler) { + return new Observable(function (subscriber) { + var sub = new Subscription(); + var i = 0; + sub.add(scheduler.schedule(function () { + if (i === input.length) { + subscriber.complete(); + return; + } + subscriber.next(input[i++]); + if (!subscriber.closed) { + sub.add(this.schedule()); + } + })); + return sub; + }); +} +//# sourceMappingURL=scheduleArray.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map new file mode 100644 index 00000000..2a01c6cc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleArray.js","sources":["../../../src/internal/scheduled/scheduleArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,aAAa,CAAI,KAAmB,EAAE,SAAwB;IAC5E,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;gBACtB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;aACR;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js new file mode 100644 index 00000000..c199cc9a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js @@ -0,0 +1,46 @@ +/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +export function scheduleIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + return new Observable(function (subscriber) { + var sub = new Subscription(); + var iterator; + sub.add(function () { + if (iterator && typeof iterator.return === 'function') { + iterator.return(); + } + }); + sub.add(scheduler.schedule(function () { + iterator = input[Symbol_iterator](); + sub.add(scheduler.schedule(function () { + if (subscriber.closed) { + return; + } + var value; + var done; + try { + var result = iterator.next(); + value = result.value; + done = result.done; + } + catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } + else { + subscriber.next(value); + this.schedule(); + } + })); + })); + return sub; + }); +} +//# sourceMappingURL=scheduleIterable.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map new file mode 100644 index 00000000..1c1d88b8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleIterable.js","sources":["../../../src/internal/scheduled/scheduleIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,UAAU,gBAAgB,CAAI,KAAkB,EAAE,SAAwB;IAC9E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,QAAqB,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC;YAEN,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;gBACrD,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,OAAO;iBACR;gBACD,IAAI,KAAQ,CAAC;gBACb,IAAI,IAAa,CAAC;gBAClB,IAAI;oBACF,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;iBACpB;gBAAC,OAAO,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO;iBACR;gBACD,IAAI,IAAI,EAAE;oBACR,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js new file mode 100644 index 00000000..226f596a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js @@ -0,0 +1,19 @@ +/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { observable as Symbol_observable } from '../symbol/observable'; +export function scheduleObservable(input, scheduler) { + return new Observable(function (subscriber) { + var sub = new Subscription(); + sub.add(scheduler.schedule(function () { + var observable = input[Symbol_observable](); + sub.add(observable.subscribe({ + next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, + error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, + complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, + })); + })); + return sub; + }); +} +//# sourceMappingURL=scheduleObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map new file mode 100644 index 00000000..0fd99fbe --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleObservable.js","sources":["../../../src/internal/scheduled/scheduleObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,kBAAkB,CAAI,KAA2B,EAAE,SAAwB;IACzF,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAM,UAAU,GAAoB,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,IAAI,YAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAtB,CAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,KAAK,YAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,QAAQ,gBAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js b/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js new file mode 100644 index 00000000..e2f79e3d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js @@ -0,0 +1,20 @@ +/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +export function schedulePromise(input, scheduler) { + return new Observable(function (subscriber) { + var sub = new Subscription(); + sub.add(scheduler.schedule(function () { + return input.then(function (value) { + sub.add(scheduler.schedule(function () { + subscriber.next(value); + sub.add(scheduler.schedule(function () { return subscriber.complete(); })); + })); + }, function (err) { + sub.add(scheduler.schedule(function () { return subscriber.error(err); })); + }); + })); + return sub; + }); +} +//# sourceMappingURL=schedulePromise.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map b/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map new file mode 100644 index 00000000..98fc42fe --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"schedulePromise.js","sources":["../../../src/internal/scheduled/schedulePromise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAI,KAAqB,EAAE,SAAwB;IAChF,OAAO,IAAI,UAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,KAAK,CAAC,IAAI,CACzC,UAAA,KAAK;YACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,EACD,UAAA,GAAG;YACD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;QAC3D,CAAC,CACF,EAVgC,CAUhC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js b/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js new file mode 100644 index 00000000..52845751 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js @@ -0,0 +1,27 @@ +/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */ +import { scheduleObservable } from './scheduleObservable'; +import { schedulePromise } from './schedulePromise'; +import { scheduleArray } from './scheduleArray'; +import { scheduleIterable } from './scheduleIterable'; +import { isInteropObservable } from '../util/isInteropObservable'; +import { isPromise } from '../util/isPromise'; +import { isArrayLike } from '../util/isArrayLike'; +import { isIterable } from '../util/isIterable'; +export function scheduled(input, scheduler) { + if (input != null) { + if (isInteropObservable(input)) { + return scheduleObservable(input, scheduler); + } + else if (isPromise(input)) { + return schedulePromise(input, scheduler); + } + else if (isArrayLike(input)) { + return scheduleArray(input, scheduler); + } + else if (isIterable(input) || typeof input === 'string') { + return scheduleIterable(input, scheduler); + } + } + throw new TypeError((input !== null && typeof input || input) + ' is not observable'); +} +//# sourceMappingURL=scheduled.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map b/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map new file mode 100644 index 00000000..d4e76f87 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduled/scheduled.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduled.js","sources":["../../../src/internal/scheduled/scheduled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAahD,MAAM,UAAU,SAAS,CAAI,KAAyB,EAAE,SAAwB;IAC9E,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7C;aAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACxC;aAAO,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC1D,OAAO,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC3C;KACF;IAED,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACxF,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/Action.js b/node_modules/rxjs/_esm5/internal/scheduler/Action.js new file mode 100644 index 00000000..5b40fd5c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/Action.js @@ -0,0 +1,18 @@ +/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subscription } from '../Subscription'; +var Action = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(Action, _super); + function Action(scheduler, work) { + return _super.call(this) || this; + } + Action.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + return this; + }; + return Action; +}(Subscription)); +export { Action }; +//# sourceMappingURL=Action.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map b/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map new file mode 100644 index 00000000..92fdd5c2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/Action.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Action.js","sources":["../../../src/internal/scheduler/Action.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAiB/C;IAA+B,kCAAY;IACzC,gBAAY,SAAoB,EAAE,IAAmD;eACnF,iBAAO;IACT,CAAC;IAWM,yBAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACH,aAAC;AAAD,CAAC,AAjBD,CAA+B,YAAY,GAiB1C"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js new file mode 100644 index 00000000..09f436d6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js @@ -0,0 +1,38 @@ +/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { AsyncAction } from './AsyncAction'; +var AnimationFrameAction = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AnimationFrameAction, _super); + function AnimationFrameAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); })); + }; + AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AnimationFrameAction; +}(AsyncAction)); +export { AnimationFrameAction }; +//# sourceMappingURL=AnimationFrameAction.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map new file mode 100644 index 00000000..98fa65a8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameAction.js","sources":["../../../src/internal/scheduler/AnimationFrameAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C;IAA6C,gDAAc;IAEzD,8BAAsB,SAAkC,EAClC,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAyB;QAClC,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAEtF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAqB,CACxE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;IAClC,CAAC;IACS,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAItF,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,2BAAC;AAAD,CAAC,AArCD,CAA6C,WAAW,GAqCvD"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js new file mode 100644 index 00000000..3aed0855 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js @@ -0,0 +1,33 @@ +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { AsyncScheduler } from './AsyncScheduler'; +var AnimationFrameScheduler = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AnimationFrameScheduler, _super); + function AnimationFrameScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AnimationFrameScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler; +}(AsyncScheduler)); +export { AnimationFrameScheduler }; +//# sourceMappingURL=AnimationFrameScheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map new file mode 100644 index 00000000..06f7b0f1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameScheduler.js","sources":["../../../src/internal/scheduler/AnimationFrameScheduler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;IAA6C,mDAAc;IAA3D;;IA2BA,CAAC;IA1BQ,uCAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,8BAAC;AAAD,CAAC,AA3BD,CAA6C,cAAc,GA2B1D"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js b/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js new file mode 100644 index 00000000..3e49e0bb --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js @@ -0,0 +1,39 @@ +/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Immediate } from '../util/Immediate'; +import { AsyncAction } from './AsyncAction'; +var AsapAction = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AsapAction, _super); + function AsapAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null))); + }; + AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + Immediate.clearImmediate(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AsapAction; +}(AsyncAction)); +export { AsapAction }; +//# sourceMappingURL=AsapAction.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map new file mode 100644 index 00000000..74b829a5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapAction.js","sources":["../../../src/internal/scheduler/AsapAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C;IAAmC,sCAAc;IAE/C,oBAAsB,SAAwB,EACxB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAe;QACxB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAE5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CACzE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtC,CAAC,CAAC;IACL,CAAC;IACS,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI5E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,iBAAC;AAAD,CAAC,AAtCD,CAAmC,WAAW,GAsC7C"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js new file mode 100644 index 00000000..f13565c7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js @@ -0,0 +1,33 @@ +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { AsyncScheduler } from './AsyncScheduler'; +var AsapScheduler = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AsapScheduler, _super); + function AsapScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AsapScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler; +}(AsyncScheduler)); +export { AsapScheduler }; +//# sourceMappingURL=AsapScheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map new file mode 100644 index 00000000..f2c9159c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapScheduler.js","sources":["../../../src/internal/scheduler/AsapScheduler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;IAAmC,yCAAc;IAAjD;;IA2BA,CAAC;IA1BQ,6BAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AA3BD,CAAmC,cAAc,GA2BhD"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js b/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js new file mode 100644 index 00000000..035fcaaa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js @@ -0,0 +1,95 @@ +/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Action } from './Action'; +var AsyncAction = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AsyncAction, _super); + function AsyncAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; + return _this; + } + AsyncAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + if (this.closed) { + return this; + } + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; + }; + AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + return setInterval(scheduler.flush.bind(scheduler, this), delay); + }; + AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && this.delay === delay && this.pending === false) { + return id; + } + clearInterval(id); + return undefined; + }; + AsyncAction.prototype.execute = function (state, delay) { + if (this.closed) { + return new Error('executing a cancelled action'); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } + else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + }; + AsyncAction.prototype._execute = function (state, delay) { + var errored = false; + var errorValue = undefined; + try { + this.work(state); + } + catch (e) { + errored = true; + errorValue = !!e && e || new Error(e); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + }; + AsyncAction.prototype._unsubscribe = function () { + var id = this.id; + var scheduler = this.scheduler; + var actions = scheduler.actions; + var index = actions.indexOf(this); + this.work = null; + this.state = null; + this.pending = false; + this.scheduler = null; + if (index !== -1) { + actions.splice(index, 1); + } + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + }; + return AsyncAction; +}(Action)); +export { AsyncAction }; +//# sourceMappingURL=AsyncAction.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map new file mode 100644 index 00000000..2adefe51 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncAction.js","sources":["../../../src/internal/scheduler/AsyncAction.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js new file mode 100644 index 00000000..e4a372c8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js @@ -0,0 +1,58 @@ +/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Scheduler } from '../Scheduler'; +var AsyncScheduler = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(AsyncScheduler, _super); + function AsyncScheduler(SchedulerAction, now) { + if (now === void 0) { + now = Scheduler.now; + } + var _this = _super.call(this, SchedulerAction, function () { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { + return AsyncScheduler.delegate.now(); + } + else { + return now(); + } + }) || this; + _this.actions = []; + _this.active = false; + _this.scheduled = undefined; + return _this; + } + AsyncScheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { + delay = 0; + } + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.schedule(work, delay, state); + } + else { + return _super.prototype.schedule.call(this, work, delay, state); + } + }; + AsyncScheduler.prototype.flush = function (action) { + var actions = this.actions; + if (this.active) { + actions.push(action); + return; + } + var error; + this.active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this.active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsyncScheduler; +}(Scheduler)); +export { AsyncScheduler }; +//# sourceMappingURL=AsyncScheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map new file mode 100644 index 00000000..f314809b --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncScheduler.js","sources":["../../../src/internal/scheduler/AsyncScheduler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC;IAAoC,0CAAS;IAmB3C,wBAAY,eAA8B,EAC9B,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,SAAS,CAAC,GAAG;QAD7C,YAEE,kBAAM,eAAe,EAAE;YACrB,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,KAAI,EAAE;gBAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACtC;iBAAM;gBACL,OAAO,GAAG,EAAE,CAAC;aACd;QACH,CAAC,CAAC,SACH;QA1BM,aAAO,GAA4B,EAAE,CAAC;QAOtC,YAAM,GAAY,KAAK,CAAC;QAQxB,eAAS,GAAQ,SAAS,CAAC;;IAWlC,CAAC;IAEM,iCAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,iBAAM,QAAQ,YAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;IACH,CAAC;IAEM,8BAAK,GAAZ,UAAa,MAAwB;QAE5B,IAAA,sBAAO,CAAS;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO;SACR;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjED,CAAoC,SAAS,GAiE5C"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js b/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js new file mode 100644 index 00000000..e18406d0 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js @@ -0,0 +1,41 @@ +/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { AsyncAction } from './AsyncAction'; +var QueueAction = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(QueueAction, _super); + function QueueAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + QueueAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction.prototype.execute = function (state, delay) { + return (delay > 0 || this.closed) ? + _super.prototype.execute.call(this, state, delay) : + this._execute(state, delay); + }; + QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + return scheduler.flush(this); + }; + return QueueAction; +}(AsyncAction)); +export { QueueAction }; +//# sourceMappingURL=QueueAction.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map b/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map new file mode 100644 index 00000000..541a53dd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueAction.js","sources":["../../../src/internal/scheduler/QueueAction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C;IAAoC,uCAAc;IAEhD,qBAAsB,SAAyB,EACzB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAgB;QACzB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAEM,8BAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,iBAAM,QAAQ,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAO,GAAd,UAAe,KAAQ,EAAE,KAAa;QACpC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,iBAAM,OAAO,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,oCAAc,GAAxB,UAAyB,SAAyB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI7E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACH,kBAAC;AAAD,CAAC,AAjCD,CAAoC,WAAW,GAiC9C"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js new file mode 100644 index 00000000..6dca70f5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { AsyncScheduler } from './AsyncScheduler'; +var QueueScheduler = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(QueueScheduler, _super); + function QueueScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + return QueueScheduler; +}(AsyncScheduler)); +export { QueueScheduler }; +//# sourceMappingURL=QueueScheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map new file mode 100644 index 00000000..ff548cda --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueScheduler.js","sources":["../../../src/internal/scheduler/QueueScheduler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;IAAoC,0CAAc;IAAlD;;IACA,CAAC;IAAD,qBAAC;AAAD,CAAC,AADD,CAAoC,cAAc,GACjD"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js b/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js new file mode 100644 index 00000000..37ee7f3c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js @@ -0,0 +1,110 @@ +/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; +var VirtualTimeScheduler = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(VirtualTimeScheduler, _super); + function VirtualTimeScheduler(SchedulerAction, maxFrames) { + if (SchedulerAction === void 0) { + SchedulerAction = VirtualAction; + } + if (maxFrames === void 0) { + maxFrames = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + VirtualTimeScheduler.prototype.flush = function () { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error, action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + VirtualTimeScheduler.frameTimeFactor = 10; + return VirtualTimeScheduler; +}(AsyncScheduler)); +export { VirtualTimeScheduler }; +var VirtualAction = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(VirtualAction, _super); + function VirtualAction(scheduler, work, index) { + if (index === void 0) { + index = scheduler.index += 1; + } + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; + return _this; + } + VirtualAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; + } + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + }; + VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction.sortActions); + return true; + }; + VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + return undefined; + }; + VirtualAction.prototype._execute = function (state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } + }; + VirtualAction.sortActions = function (a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } + else if (a.index > b.index) { + return 1; + } + else { + return -1; + } + } + else if (a.delay > b.delay) { + return 1; + } + else { + return -1; + } + }; + return VirtualAction; +}(AsyncAction)); +export { VirtualAction }; +//# sourceMappingURL=VirtualTimeScheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map b/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map new file mode 100644 index 00000000..9e308243 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"VirtualTimeScheduler.js","sources":["../../../src/internal/scheduler/VirtualTimeScheduler.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js b/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js new file mode 100644 index 00000000..0c79bfee --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */ +import { AnimationFrameAction } from './AnimationFrameAction'; +import { AnimationFrameScheduler } from './AnimationFrameScheduler'; +export var animationFrameScheduler = /*@__PURE__*/ new AnimationFrameScheduler(AnimationFrameAction); +export var animationFrame = animationFrameScheduler; +//# sourceMappingURL=animationFrame.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map b/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map new file mode 100644 index 00000000..f7f673a7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js.map @@ -0,0 +1 @@ +{"version":3,"file":"animationFrame.js","sources":["../../../src/internal/scheduler/animationFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAiCpE,MAAM,CAAC,IAAM,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;AAKzF,MAAM,CAAC,IAAM,cAAc,GAAG,uBAAuB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/asap.js b/node_modules/rxjs/_esm5/internal/scheduler/asap.js new file mode 100644 index 00000000..f8179190 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/asap.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */ +import { AsapAction } from './AsapAction'; +import { AsapScheduler } from './AsapScheduler'; +export var asapScheduler = /*@__PURE__*/ new AsapScheduler(AsapAction); +export var asap = asapScheduler; +//# sourceMappingURL=asap.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map b/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map new file mode 100644 index 00000000..d50bfb2a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/asap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"asap.js","sources":["../../../src/internal/scheduler/asap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAoChD,MAAM,CAAC,IAAM,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;AAK3D,MAAM,CAAC,IAAM,IAAI,GAAG,aAAa,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/async.js b/node_modules/rxjs/_esm5/internal/scheduler/async.js new file mode 100644 index 00000000..1788c64a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/async.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; +export var asyncScheduler = /*@__PURE__*/ new AsyncScheduler(AsyncAction); +export var async = asyncScheduler; +//# sourceMappingURL=async.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/async.js.map b/node_modules/rxjs/_esm5/internal/scheduler/async.js.map new file mode 100644 index 00000000..58e41a78 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/async.js.map @@ -0,0 +1 @@ +{"version":3,"file":"async.js","sources":["../../../src/internal/scheduler/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAgDlD,MAAM,CAAC,IAAM,cAAc,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;AAK9D,MAAM,CAAC,IAAM,KAAK,GAAG,cAAc,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/scheduler/queue.js b/node_modules/rxjs/_esm5/internal/scheduler/queue.js new file mode 100644 index 00000000..4a58c4ae --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/queue.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */ +import { QueueAction } from './QueueAction'; +import { QueueScheduler } from './QueueScheduler'; +export var queueScheduler = /*@__PURE__*/ new QueueScheduler(QueueAction); +export var queue = queueScheduler; +//# sourceMappingURL=queue.js.map diff --git a/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map b/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map new file mode 100644 index 00000000..6c98375d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/scheduler/queue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue.js","sources":["../../../src/internal/scheduler/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAgElD,MAAM,CAAC,IAAM,cAAc,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;AAK9D,MAAM,CAAC,IAAM,KAAK,GAAG,cAAc,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/symbol/iterator.js b/node_modules/rxjs/_esm5/internal/symbol/iterator.js new file mode 100644 index 00000000..30341cda --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/symbol/iterator.js @@ -0,0 +1,10 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function getSymbolIterator() { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator'; + } + return Symbol.iterator; +} +export var iterator = /*@__PURE__*/ getSymbolIterator(); +export var $$iterator = iterator; +//# sourceMappingURL=iterator.js.map diff --git a/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map b/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map new file mode 100644 index 00000000..82313311 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/symbol/iterator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iterator.js","sources":["../../../src/internal/symbol/iterator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpD,OAAO,YAAmB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,IAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;AAK5C,MAAM,CAAC,IAAM,UAAU,GAAG,QAAQ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/symbol/observable.js b/node_modules/rxjs/_esm5/internal/symbol/observable.js new file mode 100644 index 00000000..6eb96a30 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/symbol/observable.js @@ -0,0 +1,3 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })(); +//# sourceMappingURL=observable.js.map diff --git a/node_modules/rxjs/_esm5/internal/symbol/observable.js.map b/node_modules/rxjs/_esm5/internal/symbol/observable.js.map new file mode 100644 index 00000000..863bc627 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/symbol/observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observable.js","sources":["../../../src/internal/symbol/observable.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,IAAM,UAAU,GAAG,CAAC,cAAM,OAAA,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,EAAnE,CAAmE,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js b/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js new file mode 100644 index 00000000..dcf762fd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js @@ -0,0 +1,8 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export var rxSubscriber = /*@__PURE__*/ (function () { + return typeof Symbol === 'function' + ? /*@__PURE__*/ Symbol('rxSubscriber') + : '@@rxSubscriber_' + /*@__PURE__*/ Math.random(); +})(); +export var $$rxSubscriber = rxSubscriber; +//# sourceMappingURL=rxSubscriber.js.map diff --git a/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map b/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map new file mode 100644 index 00000000..a68fff58 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rxSubscriber.js","sources":["../../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,IAAM,YAAY,GAAG,CAAC;IAC3B,OAAA,OAAO,MAAM,KAAK,UAAU;QAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE;AAFrC,CAEqC,CAAC,EAAE,CAAC;AAK3C,MAAM,CAAC,IAAM,cAAc,GAAG,YAAY,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js b/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js new file mode 100644 index 00000000..9ff1ef64 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js @@ -0,0 +1,39 @@ +/** PURE_IMPORTS_START tslib,_Observable,_Subscription,_SubscriptionLoggable,_util_applyMixins PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +var ColdObservable = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(ColdObservable, _super); + function ColdObservable(messages, scheduler) { + var _this = _super.call(this, function (subscriber) { + var observable = this; + var index = observable.logSubscribedFrame(); + var subscription = new Subscription(); + subscription.add(new Subscription(function () { + observable.logUnsubscribedFrame(index); + })); + observable.scheduleMessages(subscriber); + return subscription; + }) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + ColdObservable.prototype.scheduleMessages = function (subscriber) { + var messagesLength = this.messages.length; + for (var i = 0; i < messagesLength; i++) { + var message = this.messages[i]; + subscriber.add(this.scheduler.schedule(function (_a) { + var message = _a.message, subscriber = _a.subscriber; + message.notification.observe(subscriber); + }, message.frame, { message: message, subscriber: subscriber })); + } + }; + return ColdObservable; +}(Observable)); +export { ColdObservable }; +/*@__PURE__*/ applyMixins(ColdObservable, [SubscriptionLoggable]); +//# sourceMappingURL=ColdObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map b/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map new file mode 100644 index 00000000..d02429e6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/ColdObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColdObservable.js","sources":["../../../src/internal/testing/ColdObservable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD;IAAuC,0CAAa;IAMlD,wBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,kBAAM,UAA+B,UAA2B;YAC9D,IAAM,UAAU,GAAsB,IAAW,CAAC;YAClD,IAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;gBAChC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,SAEH;QAbkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAiB3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAED,yCAAgB,GAAhB,UAAiB,UAA2B;QAC1C,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAC,EAAuB;oBAArB,oBAAO,EAAE,0BAAU;gBAAS,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,EAChG,OAAO,CAAC,KAAK,EACb,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,CAAC,CAC3B,CAAC;SACH;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAhCD,CAAuC,UAAU,GAgChD;;AACD,WAAW,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/testing/HotObservable.js b/node_modules/rxjs/_esm5/internal/testing/HotObservable.js new file mode 100644 index 00000000..1e4aac52 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/HotObservable.js @@ -0,0 +1,40 @@ +/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_SubscriptionLoggable,_util_applyMixins PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +var HotObservable = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(HotObservable, _super); + function HotObservable(messages, scheduler) { + var _this = _super.call(this) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + HotObservable.prototype._subscribe = function (subscriber) { + var subject = this; + var index = subject.logSubscribedFrame(); + var subscription = new Subscription(); + subscription.add(new Subscription(function () { + subject.logUnsubscribedFrame(index); + })); + subscription.add(_super.prototype._subscribe.call(this, subscriber)); + return subscription; + }; + HotObservable.prototype.setup = function () { + var subject = this; + var messagesLength = subject.messages.length; + for (var i = 0; i < messagesLength; i++) { + (function () { + var message = subject.messages[i]; + subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame); + })(); + } + }; + return HotObservable; +}(Subject)); +export { HotObservable }; +/*@__PURE__*/ applyMixins(HotObservable, [SubscriptionLoggable]); +//# sourceMappingURL=HotObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map b/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map new file mode 100644 index 00000000..e0f3293e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/HotObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HotObservable.js","sources":["../../../src/internal/testing/HotObservable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOlD;IAAsC,yCAAU;IAM9C,uBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,iBAAO,SAER;QAJkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAQ3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAGD,kCAAU,GAAV,UAAW,UAA2B;QACpC,IAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,IAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;YAChC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,GAAG,CAAC,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6BAAK,GAAL;QACE,IAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,CAAC;gBACC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAElC,OAAO,CAAC,SAAS,CAAC,QAAQ,CACxB,cAAQ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,KAAK,CACd,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;SACN;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAvCD,CAAsC,OAAO,GAuC5C;;AACD,WAAW,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js new file mode 100644 index 00000000..2d5ea3b7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js @@ -0,0 +1,12 @@ +var SubscriptionLog = /*@__PURE__*/ (function () { + function SubscriptionLog(subscribedFrame, unsubscribedFrame) { + if (unsubscribedFrame === void 0) { + unsubscribedFrame = Number.POSITIVE_INFINITY; + } + this.subscribedFrame = subscribedFrame; + this.unsubscribedFrame = unsubscribedFrame; + } + return SubscriptionLog; +}()); +export { SubscriptionLog }; +//# sourceMappingURL=SubscriptionLog.js.map diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map new file mode 100644 index 00000000..0eb029d3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLog.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLog.js","sources":["../../../src/internal/testing/SubscriptionLog.ts"],"names":[],"mappings":"AAAA;IACE,yBAAmB,eAAuB,EACvB,iBAAoD;QAApD,kCAAA,EAAA,oBAA4B,MAAM,CAAC,iBAAiB;QADpD,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmC;IACvE,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC"} diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js new file mode 100644 index 00000000..41bdb9ed --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js @@ -0,0 +1,19 @@ +/** PURE_IMPORTS_START _SubscriptionLog PURE_IMPORTS_END */ +import { SubscriptionLog } from './SubscriptionLog'; +var SubscriptionLoggable = /*@__PURE__*/ (function () { + function SubscriptionLoggable() { + this.subscriptions = []; + } + SubscriptionLoggable.prototype.logSubscribedFrame = function () { + this.subscriptions.push(new SubscriptionLog(this.scheduler.now())); + return this.subscriptions.length - 1; + }; + SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) { + var subscriptionLogs = this.subscriptions; + var oldSubscriptionLog = subscriptionLogs[index]; + subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now()); + }; + return SubscriptionLoggable; +}()); +export { SubscriptionLoggable }; +//# sourceMappingURL=SubscriptionLoggable.js.map diff --git a/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map new file mode 100644 index 00000000..d41652d4 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/SubscriptionLoggable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLoggable.js","sources":["../../../src/internal/testing/SubscriptionLoggable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;IAAA;QACS,kBAAa,GAAsB,EAAE,CAAC;IAgB/C,CAAC;IAbC,iDAAkB,GAAlB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,mDAAoB,GAApB,UAAqB,KAAa;QAChC,IAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,eAAe,CAC3C,kBAAkB,CAAC,eAAe,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,AAjBD,IAiBC"} diff --git a/node_modules/rxjs/_esm5/internal/testing/TestMessage.js b/node_modules/rxjs/_esm5/internal/testing/TestMessage.js new file mode 100644 index 00000000..711064f8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/TestMessage.js @@ -0,0 +1 @@ +//# sourceMappingURL=TestMessage.js.map diff --git a/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map b/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map new file mode 100644 index 00000000..b19facd5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/TestMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestMessage.js","sources":["../../../src/internal/testing/TestMessage.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js b/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js new file mode 100644 index 00000000..04c69759 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js @@ -0,0 +1,359 @@ +/** PURE_IMPORTS_START tslib,_Observable,_Notification,_ColdObservable,_HotObservable,_SubscriptionLog,_scheduler_VirtualTimeScheduler,_scheduler_AsyncScheduler PURE_IMPORTS_END */ +import * as tslib_1 from "tslib"; +import { Observable } from '../Observable'; +import { Notification } from '../Notification'; +import { ColdObservable } from './ColdObservable'; +import { HotObservable } from './HotObservable'; +import { SubscriptionLog } from './SubscriptionLog'; +import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler'; +import { AsyncScheduler } from '../scheduler/AsyncScheduler'; +var defaultMaxFrame = 750; +var TestScheduler = /*@__PURE__*/ (function (_super) { + tslib_1.__extends(TestScheduler, _super); + function TestScheduler(assertDeepEqual) { + var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this; + _this.assertDeepEqual = assertDeepEqual; + _this.hotObservables = []; + _this.coldObservables = []; + _this.flushTests = []; + _this.runMode = false; + return _this; + } + TestScheduler.prototype.createTime = function (marbles) { + var indexOf = marbles.indexOf('|'); + if (indexOf === -1) { + throw new Error('marble diagram for time should have a completion marker "|"'); + } + return indexOf * TestScheduler.frameTimeFactor; + }; + TestScheduler.prototype.createColdObservable = function (marbles, values, error) { + if (marbles.indexOf('^') !== -1) { + throw new Error('cold observable cannot have subscription offset "^"'); + } + if (marbles.indexOf('!') !== -1) { + throw new Error('cold observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var cold = new ColdObservable(messages, this); + this.coldObservables.push(cold); + return cold; + }; + TestScheduler.prototype.createHotObservable = function (marbles, values, error) { + if (marbles.indexOf('!') !== -1) { + throw new Error('hot observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var subject = new HotObservable(messages, this); + this.hotObservables.push(subject); + return subject; + }; + TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) { + var _this = this; + var messages = []; + observable.subscribe(function (value) { + messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) }); + }, function (err) { + messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) }); + }, function () { + messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() }); + }); + return messages; + }; + TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) { + var _this = this; + if (subscriptionMarbles === void 0) { + subscriptionMarbles = null; + } + var actual = []; + var flushTest = { actual: actual, ready: false }; + var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode); + var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ? + 0 : subscriptionParsed.subscribedFrame; + var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame; + var subscription; + this.schedule(function () { + subscription = observable.subscribe(function (x) { + var value = x; + if (x instanceof Observable) { + value = _this.materializeInnerObservable(value, _this.frame); + } + actual.push({ frame: _this.frame, notification: Notification.createNext(value) }); + }, function (err) { + actual.push({ frame: _this.frame, notification: Notification.createError(err) }); + }, function () { + actual.push({ frame: _this.frame, notification: Notification.createComplete() }); + }); + }, subscriptionFrame); + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame); + } + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marbles, values, errorValue) { + flushTest.ready = true; + flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode); + } + }; + }; + TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) { + var flushTest = { actual: actualSubscriptionLogs, ready: false }; + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marbles) { + var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles; + flushTest.ready = true; + flushTest.expected = marblesArray.map(function (marbles) { + return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode); + }); + } + }; + }; + TestScheduler.prototype.flush = function () { + var _this = this; + var hotObservables = this.hotObservables; + while (hotObservables.length > 0) { + hotObservables.shift().setup(); + } + _super.prototype.flush.call(this); + this.flushTests = this.flushTests.filter(function (test) { + if (test.ready) { + _this.assertDeepEqual(test.actual, test.expected); + return false; + } + return true; + }); + }; + TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) { + var _this = this; + if (runMode === void 0) { + runMode = false; + } + if (typeof marbles !== 'string') { + return new SubscriptionLog(Number.POSITIVE_INFINITY); + } + var len = marbles.length; + var groupStart = -1; + var subscriptionFrame = Number.POSITIVE_INFINITY; + var unsubscriptionFrame = Number.POSITIVE_INFINITY; + var frame = 0; + var _loop_1 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '^': + if (subscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + subscriptionFrame = groupStart > -1 ? groupStart : frame; + advanceFrameBy(1); + break; + case '!': + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + unsubscriptionFrame = groupStart > -1 ? groupStart : frame; + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + var buffer = marbles.slice(i); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_1.frameTimeFactor); + break; + } + } + } + throw new Error('there can only be \'^\' and \'!\' markers in a ' + + 'subscription marble diagram. Found instead \'' + c + '\'.'); + } + frame = nextFrame; + out_i_1 = i; + }; + var this_1 = this, out_i_1; + for (var i = 0; i < len; i++) { + _loop_1(i); + i = out_i_1; + } + if (unsubscriptionFrame < 0) { + return new SubscriptionLog(subscriptionFrame); + } + else { + return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame); + } + }; + TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) { + var _this = this; + if (materializeInnerObservables === void 0) { + materializeInnerObservables = false; + } + if (runMode === void 0) { + runMode = false; + } + if (marbles.indexOf('!') !== -1) { + throw new Error('conventional marble diagrams cannot have the ' + + 'unsubscription marker "!"'); + } + var len = marbles.length; + var testMessages = []; + var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^'); + var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor); + var getValue = typeof values !== 'object' ? + function (x) { return x; } : + function (x) { + if (materializeInnerObservables && values[x] instanceof ColdObservable) { + return values[x].messages; + } + return values[x]; + }; + var groupStart = -1; + var _loop_2 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var notification = void 0; + var c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '|': + notification = Notification.createComplete(); + advanceFrameBy(1); + break; + case '^': + advanceFrameBy(1); + break; + case '#': + notification = Notification.createError(errorValue || 'error'); + advanceFrameBy(1); + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + var buffer = marbles.slice(i); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_2.frameTimeFactor); + break; + } + } + } + notification = Notification.createNext(getValue(c)); + advanceFrameBy(1); + break; + } + if (notification) { + testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification }); + } + frame = nextFrame; + out_i_2 = i; + }; + var this_2 = this, out_i_2; + for (var i = 0; i < len; i++) { + _loop_2(i); + i = out_i_2; + } + return testMessages; + }; + TestScheduler.prototype.run = function (callback) { + var prevFrameTimeFactor = TestScheduler.frameTimeFactor; + var prevMaxFrames = this.maxFrames; + TestScheduler.frameTimeFactor = 1; + this.maxFrames = Number.POSITIVE_INFINITY; + this.runMode = true; + AsyncScheduler.delegate = this; + var helpers = { + cold: this.createColdObservable.bind(this), + hot: this.createHotObservable.bind(this), + flush: this.flush.bind(this), + expectObservable: this.expectObservable.bind(this), + expectSubscriptions: this.expectSubscriptions.bind(this), + }; + try { + var ret = callback(helpers); + this.flush(); + return ret; + } + finally { + TestScheduler.frameTimeFactor = prevFrameTimeFactor; + this.maxFrames = prevMaxFrames; + this.runMode = false; + AsyncScheduler.delegate = undefined; + } + }; + return TestScheduler; +}(VirtualTimeScheduler)); +export { TestScheduler }; +//# sourceMappingURL=TestScheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map b/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map new file mode 100644 index 00000000..2ef52017 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/testing/TestScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestScheduler.js","sources":["../../../src/internal/testing/TestScheduler.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/internal/types.js b/node_modules/rxjs/_esm5/internal/types.js new file mode 100644 index 00000000..c62542c3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/types.js @@ -0,0 +1 @@ +//# sourceMappingURL=types.js.map diff --git a/node_modules/rxjs/_esm5/internal/types.js.map b/node_modules/rxjs/_esm5/internal/types.js.map new file mode 100644 index 00000000..607b9924 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sources":["../../src/internal/types.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js new file mode 100644 index 00000000..401828bc --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () { + function ArgumentOutOfRangeErrorImpl() { + Error.call(this); + this.message = 'argument out of range'; + this.name = 'ArgumentOutOfRangeError'; + return this; + } + ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return ArgumentOutOfRangeErrorImpl; +})(); +export var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl; +//# sourceMappingURL=ArgumentOutOfRangeError.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map new file mode 100644 index 00000000..bc3c755a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../../../src/internal/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":"AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,IAAM,uBAAuB,GAAgC,2BAAkC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/EmptyError.js b/node_modules/rxjs/_esm5/internal/util/EmptyError.js new file mode 100644 index 00000000..cca489d9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/EmptyError.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var EmptyErrorImpl = /*@__PURE__*/ (function () { + function EmptyErrorImpl() { + Error.call(this); + this.message = 'no elements in sequence'; + this.name = 'EmptyError'; + return this; + } + EmptyErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return EmptyErrorImpl; +})(); +export var EmptyError = EmptyErrorImpl; +//# sourceMappingURL=EmptyError.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map b/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map new file mode 100644 index 00000000..70117cfa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/EmptyError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EmptyError.js","sources":["../../../src/internal/util/EmptyError.ts"],"names":[],"mappings":"AAOA,IAAM,cAAc,GAAG,CAAC;IACtB,SAAS,cAAc;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC,EAAE,CAAC;AAYL,MAAM,CAAC,IAAM,UAAU,GAAmB,cAAqB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/Immediate.js b/node_modules/rxjs/_esm5/internal/util/Immediate.js new file mode 100644 index 00000000..9d79b645 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/Immediate.js @@ -0,0 +1,28 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var nextHandle = 1; +var RESOLVED = /*@__PURE__*/ (function () { return /*@__PURE__*/ Promise.resolve(); })(); +var activeHandles = {}; +function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; +} +export var Immediate = { + setImmediate: function (cb) { + var handle = nextHandle++; + activeHandles[handle] = true; + RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); }); + return handle; + }, + clearImmediate: function (handle) { + findAndClearHandle(handle); + }, +}; +export var TestTools = { + pending: function () { + return Object.keys(activeHandles).length; + } +}; +//# sourceMappingURL=Immediate.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/Immediate.js.map b/node_modules/rxjs/_esm5/internal/util/Immediate.js.map new file mode 100644 index 00000000..dee1d43c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/Immediate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Immediate.js","sources":["../../../src/internal/util/Immediate.ts"],"names":[],"mappings":"AAAA,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAM,QAAQ,GAAG,CAAC,cAAM,OAAA,OAAO,CAAC,OAAO,EAAE,EAAjB,CAAiB,CAAC,EAAE,CAAC;AAC7C,IAAM,aAAa,GAA2B,EAAE,CAAC;AAOjD,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,IAAI,aAAa,EAAE;QAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,MAAM,CAAC,IAAM,SAAS,GAAG;IACvB,YAAY,EAAZ,UAAa,EAAc;QACzB,IAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,cAAM,OAAA,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAlC,CAAkC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,EAAd,UAAe,MAAc;QAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAKF,MAAM,CAAC,IAAM,SAAS,GAAG;IACvB,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;CACF,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js b/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js new file mode 100644 index 00000000..3b333986 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () { + function ObjectUnsubscribedErrorImpl() { + Error.call(this); + this.message = 'object unsubscribed'; + this.name = 'ObjectUnsubscribedError'; + return this; + } + ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return ObjectUnsubscribedErrorImpl; +})(); +export var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; +//# sourceMappingURL=ObjectUnsubscribedError.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map new file mode 100644 index 00000000..0e7d3af3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../../../src/internal/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":"AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAWL,MAAM,CAAC,IAAM,uBAAuB,GAAgC,2BAAkC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/TimeoutError.js b/node_modules/rxjs/_esm5/internal/util/TimeoutError.js new file mode 100644 index 00000000..3740348d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/TimeoutError.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var TimeoutErrorImpl = /*@__PURE__*/ (function () { + function TimeoutErrorImpl() { + Error.call(this); + this.message = 'Timeout has occurred'; + this.name = 'TimeoutError'; + return this; + } + TimeoutErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return TimeoutErrorImpl; +})(); +export var TimeoutError = TimeoutErrorImpl; +//# sourceMappingURL=TimeoutError.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map b/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map new file mode 100644 index 00000000..4dafca35 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/TimeoutError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TimeoutError.js","sources":["../../../src/internal/util/TimeoutError.ts"],"names":[],"mappings":"AAOA,IAAM,gBAAgB,GAAG,CAAC;IACxB,SAAS,gBAAgB;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC,EAAE,CAAC;AASL,MAAM,CAAC,IAAM,YAAY,GAAqB,gBAAuB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js b/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js new file mode 100644 index 00000000..76345fec --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js @@ -0,0 +1,15 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var UnsubscriptionErrorImpl = /*@__PURE__*/ (function () { + function UnsubscriptionErrorImpl(errors) { + Error.call(this); + this.message = errors ? + errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : ''; + this.name = 'UnsubscriptionError'; + this.errors = errors; + return this; + } + UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return UnsubscriptionErrorImpl; +})(); +export var UnsubscriptionError = UnsubscriptionErrorImpl; +//# sourceMappingURL=UnsubscriptionError.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map b/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map new file mode 100644 index 00000000..02a0b742 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsubscriptionError.js","sources":["../../../src/internal/util/UnsubscriptionError.ts"],"names":[],"mappings":"AAQA,IAAM,uBAAuB,GAAG,CAAC;IAC/B,SAAS,uBAAuB,CAAY,MAAa;QACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,iDACpB,MAAM,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAG,CAAC,GAAG,CAAC,UAAK,GAAG,CAAC,QAAQ,EAAI,EAA7B,CAA6B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC,EAAE,CAAC;AAML,MAAM,CAAC,IAAM,mBAAmB,GAA4B,uBAA8B,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/applyMixins.js b/node_modules/rxjs/_esm5/internal/util/applyMixins.js new file mode 100644 index 00000000..69cfe790 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/applyMixins.js @@ -0,0 +1,12 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function applyMixins(derivedCtor, baseCtors) { + for (var i = 0, len = baseCtors.length; i < len; i++) { + var baseCtor = baseCtors[i]; + var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype); + for (var j = 0, len2 = propertyKeys.length; j < len2; j++) { + var name_1 = propertyKeys[j]; + derivedCtor.prototype[name_1] = baseCtor.prototype[name_1]; + } + } +} +//# sourceMappingURL=applyMixins.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map b/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map new file mode 100644 index 00000000..f4dde039 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/applyMixins.js.map @@ -0,0 +1 @@ +{"version":3,"file":"applyMixins.js","sources":["../../../src/internal/util/applyMixins.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,WAAgB,EAAE,SAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACpD,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YACzD,IAAM,MAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,MAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAI,CAAC,CAAC;SACxD;KACF;AACH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/canReportError.js b/node_modules/rxjs/_esm5/internal/util/canReportError.js new file mode 100644 index 00000000..954fc15f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/canReportError.js @@ -0,0 +1,18 @@ +/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */ +import { Subscriber } from '../Subscriber'; +export function canReportError(observer) { + while (observer) { + var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; + if (closed_1 || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; +} +//# sourceMappingURL=canReportError.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/canReportError.js.map b/node_modules/rxjs/_esm5/internal/util/canReportError.js.map new file mode 100644 index 00000000..62742ce8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/canReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"canReportError.js","sources":["../../../src/internal/util/canReportError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C,MAAM,UAAU,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACT,IAAA,aAAoD,EAAlD,oBAAM,EAAE,4BAAW,EAAE,wBAAS,CAAqB;QAC3D,IAAI,QAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,UAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/errorObject.js b/node_modules/rxjs/_esm5/internal/util/errorObject.js new file mode 100644 index 00000000..b6dc75bd --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/errorObject.js @@ -0,0 +1,3 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export var errorObject = { e: {} }; +//# sourceMappingURL=errorObject.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/errorObject.js.map b/node_modules/rxjs/_esm5/internal/util/errorObject.js.map new file mode 100644 index 00000000..58aacd1c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/errorObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"errorObject.js","sources":["../../../src/internal/util/errorObject.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,IAAM,WAAW,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/hostReportError.js b/node_modules/rxjs/_esm5/internal/util/hostReportError.js new file mode 100644 index 00000000..6b1d7229 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/hostReportError.js @@ -0,0 +1,5 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function hostReportError(err) { + setTimeout(function () { throw err; }, 0); +} +//# sourceMappingURL=hostReportError.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map b/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map new file mode 100644 index 00000000..6e705e98 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/hostReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hostReportError.js","sources":["../../../src/internal/util/hostReportError.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,eAAe,CAAC,GAAQ;IACtC,UAAU,CAAC,cAAQ,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/identity.js b/node_modules/rxjs/_esm5/internal/util/identity.js new file mode 100644 index 00000000..e40f4233 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/identity.js @@ -0,0 +1,5 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function identity(x) { + return x; +} +//# sourceMappingURL=identity.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/identity.js.map b/node_modules/rxjs/_esm5/internal/util/identity.js.map new file mode 100644 index 00000000..3173922c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/identity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"identity.js","sources":["../../../src/internal/util/identity.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isArray.js b/node_modules/rxjs/_esm5/internal/util/isArray.js new file mode 100644 index 00000000..52ce6a30 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isArray.js @@ -0,0 +1,3 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })(); +//# sourceMappingURL=isArray.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isArray.js.map b/node_modules/rxjs/_esm5/internal/util/isArray.js.map new file mode 100644 index 00000000..39e072f0 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArray.js","sources":["../../../src/internal/util/isArray.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,CAAC,cAAM,OAAA,KAAK,CAAC,OAAO,IAAI,CAAC,UAAI,CAAM,IAAe,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAjC,CAAiC,CAAC,EAA7E,CAA6E,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isArrayLike.js b/node_modules/rxjs/_esm5/internal/util/isArrayLike.js new file mode 100644 index 00000000..770234e5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isArrayLike.js @@ -0,0 +1,3 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); +//# sourceMappingURL=isArrayLike.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map b/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map new file mode 100644 index 00000000..72e46a45 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isArrayLike.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArrayLike.js","sources":["../../../src/internal/util/isArrayLike.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG,CAAC,UAAI,CAAM,IAAwB,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,EAA5D,CAA4D,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isDate.js b/node_modules/rxjs/_esm5/internal/util/isDate.js new file mode 100644 index 00000000..d9ef2a3f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isDate.js @@ -0,0 +1,5 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function isDate(value) { + return value instanceof Date && !isNaN(+value); +} +//# sourceMappingURL=isDate.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isDate.js.map b/node_modules/rxjs/_esm5/internal/util/isDate.js.map new file mode 100644 index 00000000..69589198 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isDate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isDate.js","sources":["../../../src/internal/util/isDate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isFunction.js b/node_modules/rxjs/_esm5/internal/util/isFunction.js new file mode 100644 index 00000000..09c5a259 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isFunction.js @@ -0,0 +1,5 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function isFunction(x) { + return typeof x === 'function'; +} +//# sourceMappingURL=isFunction.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isFunction.js.map b/node_modules/rxjs/_esm5/internal/util/isFunction.js.map new file mode 100644 index 00000000..3774b955 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isFunction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isFunction.js","sources":["../../../src/internal/util/isFunction.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,CAAM;IAC/B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACjC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js b/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js new file mode 100644 index 00000000..ed0dab0e --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ +import { observable as Symbol_observable } from '../symbol/observable'; +export function isInteropObservable(input) { + return input && typeof input[Symbol_observable] === 'function'; +} +//# sourceMappingURL=isInteropObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map b/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map new file mode 100644 index 00000000..88264210 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isInteropObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isInteropObservable.js","sources":["../../../src/internal/util/isInteropObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,UAAU,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,UAAU,CAAC;AACjE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isIterable.js b/node_modules/rxjs/_esm5/internal/util/isIterable.js new file mode 100644 index 00000000..d1b7c1e1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isIterable.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ +import { iterator as Symbol_iterator } from '../symbol/iterator'; +export function isIterable(input) { + return input && typeof input[Symbol_iterator] === 'function'; +} +//# sourceMappingURL=isIterable.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isIterable.js.map b/node_modules/rxjs/_esm5/internal/util/isIterable.js.map new file mode 100644 index 00000000..3ff5f6ef --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isIterable.js","sources":["../../../src/internal/util/isIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,UAAU,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,UAAU,CAAC;AAC/D,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isNumeric.js b/node_modules/rxjs/_esm5/internal/util/isNumeric.js new file mode 100644 index 00000000..eb21f1fa --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isNumeric.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */ +import { isArray } from './isArray'; +export function isNumeric(val) { + return !isArray(val) && (val - parseFloat(val) + 1) >= 0; +} +//# sourceMappingURL=isNumeric.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map b/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map new file mode 100644 index 00000000..b5954be6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isNumeric.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isNumeric.js","sources":["../../../src/internal/util/isNumeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,SAAS,CAAC,GAAQ;IAKhC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isObject.js b/node_modules/rxjs/_esm5/internal/util/isObject.js new file mode 100644 index 00000000..709a8a71 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isObject.js @@ -0,0 +1,5 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function isObject(x) { + return x !== null && typeof x === 'object'; +} +//# sourceMappingURL=isObject.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isObject.js.map b/node_modules/rxjs/_esm5/internal/util/isObject.js.map new file mode 100644 index 00000000..f942bed3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObject.js","sources":["../../../src/internal/util/isObject.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,CAAM;IAC7B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC7C,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isObservable.js b/node_modules/rxjs/_esm5/internal/util/isObservable.js new file mode 100644 index 00000000..af8b987d --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isObservable.js @@ -0,0 +1,6 @@ +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +import { Observable } from '../Observable'; +export function isObservable(obj) { + return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); +} +//# sourceMappingURL=isObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isObservable.js.map b/node_modules/rxjs/_esm5/internal/util/isObservable.js.map new file mode 100644 index 00000000..fa08bc7f --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObservable.js","sources":["../../../src/internal/util/isObservable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,MAAM,UAAU,YAAY,CAAI,GAAQ;IACtC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,UAAU,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC;AACzH,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isPromise.js b/node_modules/rxjs/_esm5/internal/util/isPromise.js new file mode 100644 index 00000000..d5c579b8 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isPromise.js @@ -0,0 +1,5 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function isPromise(value) { + return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; +} +//# sourceMappingURL=isPromise.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isPromise.js.map b/node_modules/rxjs/_esm5/internal/util/isPromise.js.map new file mode 100644 index 00000000..dcd975c3 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isPromise.js","sources":["../../../src/internal/util/isPromise.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAa,KAAM,CAAC,SAAS,KAAK,UAAU,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9G,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/isScheduler.js b/node_modules/rxjs/_esm5/internal/util/isScheduler.js new file mode 100644 index 00000000..f5218beb --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isScheduler.js @@ -0,0 +1,5 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function isScheduler(value) { + return value && typeof value.schedule === 'function'; +} +//# sourceMappingURL=isScheduler.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map b/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map new file mode 100644 index 00000000..75c4ecac --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/isScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isScheduler.js","sources":["../../../src/internal/util/isScheduler.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAU;IACpC,OAAO,KAAK,IAAI,OAAa,KAAM,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC9D,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/noop.js b/node_modules/rxjs/_esm5/internal/util/noop.js new file mode 100644 index 00000000..65de19c6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/noop.js @@ -0,0 +1,3 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function noop() { } +//# sourceMappingURL=noop.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/noop.js.map b/node_modules/rxjs/_esm5/internal/util/noop.js.map new file mode 100644 index 00000000..5d245d86 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/noop.js.map @@ -0,0 +1 @@ +{"version":3,"file":"noop.js","sources":["../../../src/internal/util/noop.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,IAAI,KAAK,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/not.js b/node_modules/rxjs/_esm5/internal/util/not.js new file mode 100644 index 00000000..a77962e5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/not.js @@ -0,0 +1,10 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export function not(pred, thisArg) { + function notPred() { + return !(notPred.pred.apply(notPred.thisArg, arguments)); + } + notPred.pred = pred; + notPred.thisArg = thisArg; + return notPred; +} +//# sourceMappingURL=not.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/not.js.map b/node_modules/rxjs/_esm5/internal/util/not.js.map new file mode 100644 index 00000000..c74adc52 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/not.js.map @@ -0,0 +1 @@ +{"version":3,"file":"not.js","sources":["../../../src/internal/util/not.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,OAAY;IAC9C,SAAS,OAAO;QACd,OAAO,CAAC,CAAQ,OAAQ,CAAC,IAAI,CAAC,KAAK,CAAQ,OAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACM,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,OAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/pipe.js b/node_modules/rxjs/_esm5/internal/util/pipe.js new file mode 100644 index 00000000..1829846c --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/pipe.js @@ -0,0 +1,21 @@ +/** PURE_IMPORTS_START _identity PURE_IMPORTS_END */ +import { identity } from './identity'; +export function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; + } + return pipeFromArray(fns); +} +export function pipeFromArray(fns) { + if (fns.length === 0) { + return identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce(function (prev, fn) { return fn(prev); }, input); + }; +} +//# sourceMappingURL=pipe.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/pipe.js.map b/node_modules/rxjs/_esm5/internal/util/pipe.js.map new file mode 100644 index 00000000..23bcdb94 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/pipe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pipe.js","sources":["../../../src/internal/util/pipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiBtC,MAAM,UAAU,IAAI;IAAC,aAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,wBAAsC;;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAGD,MAAM,UAAU,aAAa,CAAO,GAA+B;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,QAAmC,CAAC;KAC5C;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/root.js b/node_modules/rxjs/_esm5/internal/util/root.js new file mode 100644 index 00000000..48b2a874 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/root.js @@ -0,0 +1,13 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var __window = typeof window !== 'undefined' && window; +var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && + self instanceof WorkerGlobalScope && self; +var __global = typeof global !== 'undefined' && global; +var _root = __window || __global || __self; +/*@__PURE__*/ (function () { + if (!_root) { + throw /*@__PURE__*/ new Error('RxJS could not find any global context (window, self, global)'); + } +})(); +export { _root as root }; +//# sourceMappingURL=root.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/root.js.map b/node_modules/rxjs/_esm5/internal/util/root.js.map new file mode 100644 index 00000000..29b8a5f2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"root.js","sources":["../../../src/internal/util/root.ts"],"names":[],"mappings":"AAeA,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,MAAM,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,iBAAiB,KAAK,WAAW;IAClF,IAAI,YAAY,iBAAiB,IAAI,IAAI,CAAC;AAC9C,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,KAAK,GAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC;AAKlD,CAAC;IACC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;KAClF;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeTo.js b/node_modules/rxjs/_esm5/internal/util/subscribeTo.js new file mode 100644 index 00000000..f18d25e5 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeTo.js @@ -0,0 +1,31 @@ +/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */ +import { subscribeToArray } from './subscribeToArray'; +import { subscribeToPromise } from './subscribeToPromise'; +import { subscribeToIterable } from './subscribeToIterable'; +import { subscribeToObservable } from './subscribeToObservable'; +import { isArrayLike } from './isArrayLike'; +import { isPromise } from './isPromise'; +import { isObject } from './isObject'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +import { observable as Symbol_observable } from '../symbol/observable'; +export var subscribeTo = function (result) { + if (!!result && typeof result[Symbol_observable] === 'function') { + return subscribeToObservable(result); + } + else if (isArrayLike(result)) { + return subscribeToArray(result); + } + else if (isPromise(result)) { + return subscribeToPromise(result); + } + else if (!!result && typeof result[Symbol_iterator] === 'function') { + return subscribeToIterable(result); + } + else { + var value = isObject(result) ? 'an invalid object' : "'" + result + "'"; + var msg = "You provided " + value + " where a stream was expected." + + ' You can provide an Observable, Promise, Array, or Iterable.'; + throw new TypeError(msg); + } +}; +//# sourceMappingURL=subscribeTo.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map new file mode 100644 index 00000000..d4ceec14 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeTo.js","sources":["../../../src/internal/util/subscribeTo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIvE,MAAM,CAAC,IAAM,WAAW,GAAG,UAAI,MAA0B;IACvD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,EAAE;QAC/D,OAAO,qBAAqB,CAAC,MAAa,CAAC,CAAC;KAC7C;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACjC;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,kBAAkB,CAAC,MAAsB,CAAC,CAAC;KACnD;SAAM,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,CAAC,KAAK,UAAU,EAAE;QACpE,OAAO,mBAAmB,CAAC,MAAa,CAAC,CAAC;KAC3C;SAAM;QACL,IAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAI,MAAM,MAAG,CAAC;QACrE,IAAM,GAAG,GAAG,kBAAgB,KAAK,kCAA+B;cAC5D,8DAA8D,CAAC;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js b/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js new file mode 100644 index 00000000..1c457189 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js @@ -0,0 +1,10 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export var subscribeToArray = function (array) { + return function (subscriber) { + for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); + }; +}; +//# sourceMappingURL=subscribeToArray.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map new file mode 100644 index 00000000..72d912b7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToArray.js","sources":["../../../src/internal/util/subscribeToArray.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAI,KAAmB,IAAK,OAAA,UAAC,UAAyB;IACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,EAL2D,CAK3D,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js b/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js new file mode 100644 index 00000000..5a744fe9 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js @@ -0,0 +1,34 @@ +/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ +import { iterator as Symbol_iterator } from '../symbol/iterator'; +export var subscribeToIterable = function (iterable) { + return function (subscriber) { + var iterator = iterable[Symbol_iterator](); + do { + var item = void 0; + try { + item = iterator.next(); + } + catch (err) { + subscriber.error(err); + return subscriber; + } + if (item.done) { + subscriber.complete(); + break; + } + subscriber.next(item.value); + if (subscriber.closed) { + break; + } + } while (true); + if (typeof iterator.return === 'function') { + subscriber.add(function () { + if (iterator.return) { + iterator.return(); + } + }); + } + return subscriber; + }; +}; +//# sourceMappingURL=subscribeToIterable.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map new file mode 100644 index 00000000..5316ce12 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToIterable.js","sources":["../../../src/internal/util/subscribeToIterable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAI,QAAqB,IAAK,OAAA,UAAC,UAAyB;IACzF,IAAM,QAAQ,GAAI,QAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;IAEtD,GAAG;QACD,IAAI,IAAI,SAAmB,CAAC;QAC5B,IAAI;YACF,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,UAAU,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM;SACP;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,MAAM;SACP;KACF,QAAQ,IAAI,EAAE;IAGf,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;QACzC,UAAU,CAAC,GAAG,CAAC;YACb,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,EA/BgE,CA+BhE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js b/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js new file mode 100644 index 00000000..1a04dfc1 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js @@ -0,0 +1,14 @@ +/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ +import { observable as Symbol_observable } from '../symbol/observable'; +export var subscribeToObservable = function (obj) { + return function (subscriber) { + var obs = obj[Symbol_observable](); + if (typeof obs.subscribe !== 'function') { + throw new TypeError('Provided object does not correctly implement Symbol.observable'); + } + else { + return obs.subscribe(subscriber); + } + }; +}; +//# sourceMappingURL=subscribeToObservable.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map new file mode 100644 index 00000000..13f88490 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToObservable.js","sources":["../../../src/internal/util/subscribeToObservable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAOvE,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAI,GAAQ,IAAK,OAAA,UAAC,UAAyB;IAC9E,IAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;QAEvC,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;KACvF;SAAM;QACL,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAClC;AACH,CAAC,EARqD,CAQrD,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js b/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js new file mode 100644 index 00000000..1a01bbe7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js @@ -0,0 +1,15 @@ +/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */ +import { hostReportError } from './hostReportError'; +export var subscribeToPromise = function (promise) { + return function (subscriber) { + promise.then(function (value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function (err) { return subscriber.error(err); }) + .then(null, hostReportError); + return subscriber; + }; +}; +//# sourceMappingURL=subscribeToPromise.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map new file mode 100644 index 00000000..8271a7e2 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToPromise.js","sources":["../../../src/internal/util/subscribeToPromise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAI,OAAuB,IAAK,OAAA,UAAC,UAAyB;IAC1F,OAAO,CAAC,IAAI,CACV,UAAC,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC,EACD,UAAC,GAAQ,IAAK,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CACpC;SACA,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC,EAZiE,CAYjE,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js b/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js new file mode 100644 index 00000000..73b36ebf --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js @@ -0,0 +1,17 @@ +/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */ +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeTo } from './subscribeTo'; +import { Observable } from '../Observable'; +export function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) { + if (innerSubscriber === void 0) { + innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); + } + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber); +} +//# sourceMappingURL=subscribeToResult.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map b/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map new file mode 100644 index 00000000..5a5239c7 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/subscribeToResult.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToResult.js","sources":["../../../src/internal/util/subscribeToResult.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiB3C,MAAM,UAAU,iBAAiB,CAC/B,eAAsC,EACtC,MAAW,EACX,UAAc,EACd,UAAmB,EACnB,eAA6F;IAA7F,gCAAA,EAAA,sBAAqC,eAAe,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC;IAE7F,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,YAAY,UAAU,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAiB,CAAC;AAC9D,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/toSubscriber.js b/node_modules/rxjs/_esm5/internal/util/toSubscriber.js new file mode 100644 index 00000000..b61db35a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/toSubscriber.js @@ -0,0 +1,19 @@ +/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */ +import { Subscriber } from '../Subscriber'; +import { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber'; +import { empty as emptyObserver } from '../Observer'; +export function toSubscriber(nextOrObserver, error, complete) { + if (nextOrObserver) { + if (nextOrObserver instanceof Subscriber) { + return nextOrObserver; + } + if (nextOrObserver[rxSubscriberSymbol]) { + return nextOrObserver[rxSubscriberSymbol](); + } + } + if (!nextOrObserver && !error && !complete) { + return new Subscriber(emptyObserver); + } + return new Subscriber(nextOrObserver, error, complete); +} +//# sourceMappingURL=toSubscriber.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map b/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map new file mode 100644 index 00000000..5f6c7a9a --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/toSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toSubscriber.js","sources":["../../../src/internal/util/toSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,UAAU,YAAY,CAC1B,cAA0D,EAC1D,KAA4B,EAC5B,QAAqB;IAErB,IAAI,cAAc,EAAE;QAClB,IAAI,cAAc,YAAY,UAAU,EAAE;YACxC,OAAwB,cAAe,CAAC;SACzC;QAED,IAAI,cAAc,CAAC,kBAAkB,CAAC,EAAE;YACtC,OAAO,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC;SAC7C;KACF;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC1C,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;KACtC;IAED,OAAO,IAAI,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC"} diff --git a/node_modules/rxjs/_esm5/internal/util/tryCatch.js b/node_modules/rxjs/_esm5/internal/util/tryCatch.js new file mode 100644 index 00000000..d49095d6 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/tryCatch.js @@ -0,0 +1,21 @@ +/** PURE_IMPORTS_START _errorObject PURE_IMPORTS_END */ +import { errorObject } from './errorObject'; +var tryCatchTarget; +function tryCatcher() { + errorObject.e = undefined; + try { + return tryCatchTarget.apply(this, arguments); + } + catch (e) { + errorObject.e = e; + return errorObject; + } + finally { + tryCatchTarget = undefined; + } +} +export function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} +//# sourceMappingURL=tryCatch.js.map diff --git a/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map b/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map new file mode 100644 index 00000000..f6852996 --- /dev/null +++ b/node_modules/rxjs/_esm5/internal/util/tryCatch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tryCatch.js","sources":["../../../src/internal/util/tryCatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,IAAI,cAAwB,CAAC;AAE7B,SAAS,UAAU;IACjB,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1B,IAAI;QACF,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACV,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,WAAW,CAAC;KACpB;YAAS;QACR,cAAc,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAqB,EAAK;IAChD,cAAc,GAAG,EAAE,CAAC;IACpB,OAAY,UAAU,CAAC;AACzB,CAAC"} diff --git a/node_modules/rxjs/_esm5/operators/index.js b/node_modules/rxjs/_esm5/operators/index.js new file mode 100644 index 00000000..2dbb32a7 --- /dev/null +++ b/node_modules/rxjs/_esm5/operators/index.js @@ -0,0 +1,105 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { audit } from '../internal/operators/audit'; +export { auditTime } from '../internal/operators/auditTime'; +export { buffer } from '../internal/operators/buffer'; +export { bufferCount } from '../internal/operators/bufferCount'; +export { bufferTime } from '../internal/operators/bufferTime'; +export { bufferToggle } from '../internal/operators/bufferToggle'; +export { bufferWhen } from '../internal/operators/bufferWhen'; +export { catchError } from '../internal/operators/catchError'; +export { combineAll } from '../internal/operators/combineAll'; +export { combineLatest } from '../internal/operators/combineLatest'; +export { concat } from '../internal/operators/concat'; +export { concatAll } from '../internal/operators/concatAll'; +export { concatMap } from '../internal/operators/concatMap'; +export { concatMapTo } from '../internal/operators/concatMapTo'; +export { count } from '../internal/operators/count'; +export { debounce } from '../internal/operators/debounce'; +export { debounceTime } from '../internal/operators/debounceTime'; +export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty'; +export { delay } from '../internal/operators/delay'; +export { delayWhen } from '../internal/operators/delayWhen'; +export { dematerialize } from '../internal/operators/dematerialize'; +export { distinct } from '../internal/operators/distinct'; +export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged'; +export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged'; +export { elementAt } from '../internal/operators/elementAt'; +export { endWith } from '../internal/operators/endWith'; +export { every } from '../internal/operators/every'; +export { exhaust } from '../internal/operators/exhaust'; +export { exhaustMap } from '../internal/operators/exhaustMap'; +export { expand } from '../internal/operators/expand'; +export { filter } from '../internal/operators/filter'; +export { finalize } from '../internal/operators/finalize'; +export { find } from '../internal/operators/find'; +export { findIndex } from '../internal/operators/findIndex'; +export { first } from '../internal/operators/first'; +export { groupBy } from '../internal/operators/groupBy'; +export { ignoreElements } from '../internal/operators/ignoreElements'; +export { isEmpty } from '../internal/operators/isEmpty'; +export { last } from '../internal/operators/last'; +export { map } from '../internal/operators/map'; +export { mapTo } from '../internal/operators/mapTo'; +export { materialize } from '../internal/operators/materialize'; +export { max } from '../internal/operators/max'; +export { merge } from '../internal/operators/merge'; +export { mergeAll } from '../internal/operators/mergeAll'; +export { mergeMap, flatMap } from '../internal/operators/mergeMap'; +export { mergeMapTo } from '../internal/operators/mergeMapTo'; +export { mergeScan } from '../internal/operators/mergeScan'; +export { min } from '../internal/operators/min'; +export { multicast } from '../internal/operators/multicast'; +export { observeOn } from '../internal/operators/observeOn'; +export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext'; +export { pairwise } from '../internal/operators/pairwise'; +export { partition } from '../internal/operators/partition'; +export { pluck } from '../internal/operators/pluck'; +export { publish } from '../internal/operators/publish'; +export { publishBehavior } from '../internal/operators/publishBehavior'; +export { publishLast } from '../internal/operators/publishLast'; +export { publishReplay } from '../internal/operators/publishReplay'; +export { race } from '../internal/operators/race'; +export { reduce } from '../internal/operators/reduce'; +export { repeat } from '../internal/operators/repeat'; +export { repeatWhen } from '../internal/operators/repeatWhen'; +export { retry } from '../internal/operators/retry'; +export { retryWhen } from '../internal/operators/retryWhen'; +export { refCount } from '../internal/operators/refCount'; +export { sample } from '../internal/operators/sample'; +export { sampleTime } from '../internal/operators/sampleTime'; +export { scan } from '../internal/operators/scan'; +export { sequenceEqual } from '../internal/operators/sequenceEqual'; +export { share } from '../internal/operators/share'; +export { shareReplay } from '../internal/operators/shareReplay'; +export { single } from '../internal/operators/single'; +export { skip } from '../internal/operators/skip'; +export { skipLast } from '../internal/operators/skipLast'; +export { skipUntil } from '../internal/operators/skipUntil'; +export { skipWhile } from '../internal/operators/skipWhile'; +export { startWith } from '../internal/operators/startWith'; +export { subscribeOn } from '../internal/operators/subscribeOn'; +export { switchAll } from '../internal/operators/switchAll'; +export { switchMap } from '../internal/operators/switchMap'; +export { switchMapTo } from '../internal/operators/switchMapTo'; +export { take } from '../internal/operators/take'; +export { takeLast } from '../internal/operators/takeLast'; +export { takeUntil } from '../internal/operators/takeUntil'; +export { takeWhile } from '../internal/operators/takeWhile'; +export { tap } from '../internal/operators/tap'; +export { throttle } from '../internal/operators/throttle'; +export { throttleTime } from '../internal/operators/throttleTime'; +export { throwIfEmpty } from '../internal/operators/throwIfEmpty'; +export { timeInterval } from '../internal/operators/timeInterval'; +export { timeout } from '../internal/operators/timeout'; +export { timeoutWith } from '../internal/operators/timeoutWith'; +export { timestamp } from '../internal/operators/timestamp'; +export { toArray } from '../internal/operators/toArray'; +export { window } from '../internal/operators/window'; +export { windowCount } from '../internal/operators/windowCount'; +export { windowTime } from '../internal/operators/windowTime'; +export { windowToggle } from '../internal/operators/windowToggle'; +export { windowWhen } from '../internal/operators/windowWhen'; +export { withLatestFrom } from '../internal/operators/withLatestFrom'; +export { zip } from '../internal/operators/zip'; +export { zipAll } from '../internal/operators/zipAll'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/operators/index.js.map b/node_modules/rxjs/_esm5/operators/index.js.map new file mode 100644 index 00000000..484b550c --- /dev/null +++ b/node_modules/rxjs/_esm5/operators/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/operators/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/_esm5/path-mapping.js b/node_modules/rxjs/_esm5/path-mapping.js new file mode 100644 index 00000000..2fc15a13 --- /dev/null +++ b/node_modules/rxjs/_esm5/path-mapping.js @@ -0,0 +1,453 @@ + +"use strict" + +var path = require('path'); +var dir = path.resolve(__dirname); + +module.exports = function() { + return { + "rxjs/util/tryCatch": "rxjs-compat/_esm5/util/tryCatch", + "rxjs/util/toSubscriber": "rxjs-compat/_esm5/util/toSubscriber", + "rxjs/util/subscribeToResult": "rxjs-compat/_esm5/util/subscribeToResult", + "rxjs/util/subscribeToPromise": "rxjs-compat/_esm5/util/subscribeToPromise", + "rxjs/util/subscribeToObservable": "rxjs-compat/_esm5/util/subscribeToObservable", + "rxjs/util/subscribeToIterable": "rxjs-compat/_esm5/util/subscribeToIterable", + "rxjs/util/subscribeToArray": "rxjs-compat/_esm5/util/subscribeToArray", + "rxjs/util/subscribeTo": "rxjs-compat/_esm5/util/subscribeTo", + "rxjs/util/root": "rxjs-compat/_esm5/util/root", + "rxjs/util/pipe": "rxjs-compat/_esm5/util/pipe", + "rxjs/util/not": "rxjs-compat/_esm5/util/not", + "rxjs/util/noop": "rxjs-compat/_esm5/util/noop", + "rxjs/util/isScheduler": "rxjs-compat/_esm5/util/isScheduler", + "rxjs/util/isPromise": "rxjs-compat/_esm5/util/isPromise", + "rxjs/util/isObservable": "rxjs-compat/_esm5/util/isObservable", + "rxjs/util/isObject": "rxjs-compat/_esm5/util/isObject", + "rxjs/util/isNumeric": "rxjs-compat/_esm5/util/isNumeric", + "rxjs/util/isIterable": "rxjs-compat/_esm5/util/isIterable", + "rxjs/util/isFunction": "rxjs-compat/_esm5/util/isFunction", + "rxjs/util/isDate": "rxjs-compat/_esm5/util/isDate", + "rxjs/util/isArrayLike": "rxjs-compat/_esm5/util/isArrayLike", + "rxjs/util/isArray": "rxjs-compat/_esm5/util/isArray", + "rxjs/util/identity": "rxjs-compat/_esm5/util/identity", + "rxjs/util/hostReportError": "rxjs-compat/_esm5/util/hostReportError", + "rxjs/util/errorObject": "rxjs-compat/_esm5/util/errorObject", + "rxjs/util/applyMixins": "rxjs-compat/_esm5/util/applyMixins", + "rxjs/util/UnsubscriptionError": "rxjs-compat/_esm5/util/UnsubscriptionError", + "rxjs/util/TimeoutError": "rxjs-compat/_esm5/util/TimeoutError", + "rxjs/util/ObjectUnsubscribedError": "rxjs-compat/_esm5/util/ObjectUnsubscribedError", + "rxjs/util/Immediate": "rxjs-compat/_esm5/util/Immediate", + "rxjs/util/EmptyError": "rxjs-compat/_esm5/util/EmptyError", + "rxjs/util/ArgumentOutOfRangeError": "rxjs-compat/_esm5/util/ArgumentOutOfRangeError", + "rxjs/symbol/rxSubscriber": "rxjs-compat/_esm5/symbol/rxSubscriber", + "rxjs/symbol/observable": "rxjs-compat/_esm5/symbol/observable", + "rxjs/symbol/iterator": "rxjs-compat/_esm5/symbol/iterator", + "rxjs/scheduler/queue": "rxjs-compat/_esm5/scheduler/queue", + "rxjs/scheduler/async": "rxjs-compat/_esm5/scheduler/async", + "rxjs/scheduler/asap": "rxjs-compat/_esm5/scheduler/asap", + "rxjs/scheduler/animationFrame": "rxjs-compat/_esm5/scheduler/animationFrame", + "rxjs/operators/zipAll": "rxjs-compat/_esm5/operators/zipAll", + "rxjs/operators/zip": "rxjs-compat/_esm5/operators/zip", + "rxjs/operators/withLatestFrom": "rxjs-compat/_esm5/operators/withLatestFrom", + "rxjs/operators/windowWhen": "rxjs-compat/_esm5/operators/windowWhen", + "rxjs/operators/windowToggle": "rxjs-compat/_esm5/operators/windowToggle", + "rxjs/operators/windowTime": "rxjs-compat/_esm5/operators/windowTime", + "rxjs/operators/windowCount": "rxjs-compat/_esm5/operators/windowCount", + "rxjs/operators/window": "rxjs-compat/_esm5/operators/window", + "rxjs/operators/toArray": "rxjs-compat/_esm5/operators/toArray", + "rxjs/operators/timestamp": "rxjs-compat/_esm5/operators/timestamp", + "rxjs/operators/timeoutWith": "rxjs-compat/_esm5/operators/timeoutWith", + "rxjs/operators/timeout": "rxjs-compat/_esm5/operators/timeout", + "rxjs/operators/timeInterval": "rxjs-compat/_esm5/operators/timeInterval", + "rxjs/operators/throwIfEmpty": "rxjs-compat/_esm5/operators/throwIfEmpty", + "rxjs/operators/throttleTime": "rxjs-compat/_esm5/operators/throttleTime", + "rxjs/operators/throttle": "rxjs-compat/_esm5/operators/throttle", + "rxjs/operators/tap": "rxjs-compat/_esm5/operators/tap", + "rxjs/operators/takeWhile": "rxjs-compat/_esm5/operators/takeWhile", + "rxjs/operators/takeUntil": "rxjs-compat/_esm5/operators/takeUntil", + "rxjs/operators/takeLast": "rxjs-compat/_esm5/operators/takeLast", + "rxjs/operators/take": "rxjs-compat/_esm5/operators/take", + "rxjs/operators/switchMapTo": "rxjs-compat/_esm5/operators/switchMapTo", + "rxjs/operators/switchMap": "rxjs-compat/_esm5/operators/switchMap", + "rxjs/operators/switchAll": "rxjs-compat/_esm5/operators/switchAll", + "rxjs/operators/subscribeOn": "rxjs-compat/_esm5/operators/subscribeOn", + "rxjs/operators/startWith": "rxjs-compat/_esm5/operators/startWith", + "rxjs/operators/skipWhile": "rxjs-compat/_esm5/operators/skipWhile", + "rxjs/operators/skipUntil": "rxjs-compat/_esm5/operators/skipUntil", + "rxjs/operators/skipLast": "rxjs-compat/_esm5/operators/skipLast", + "rxjs/operators/skip": "rxjs-compat/_esm5/operators/skip", + "rxjs/operators/single": "rxjs-compat/_esm5/operators/single", + "rxjs/operators/shareReplay": "rxjs-compat/_esm5/operators/shareReplay", + "rxjs/operators/share": "rxjs-compat/_esm5/operators/share", + "rxjs/operators/sequenceEqual": "rxjs-compat/_esm5/operators/sequenceEqual", + "rxjs/operators/scan": "rxjs-compat/_esm5/operators/scan", + "rxjs/operators/sampleTime": "rxjs-compat/_esm5/operators/sampleTime", + "rxjs/operators/sample": "rxjs-compat/_esm5/operators/sample", + "rxjs/operators/retryWhen": "rxjs-compat/_esm5/operators/retryWhen", + "rxjs/operators/retry": "rxjs-compat/_esm5/operators/retry", + "rxjs/operators/repeatWhen": "rxjs-compat/_esm5/operators/repeatWhen", + "rxjs/operators/repeat": "rxjs-compat/_esm5/operators/repeat", + "rxjs/operators/refCount": "rxjs-compat/_esm5/operators/refCount", + "rxjs/operators/reduce": "rxjs-compat/_esm5/operators/reduce", + "rxjs/operators/race": "rxjs-compat/_esm5/operators/race", + "rxjs/operators/publishReplay": "rxjs-compat/_esm5/operators/publishReplay", + "rxjs/operators/publishLast": "rxjs-compat/_esm5/operators/publishLast", + "rxjs/operators/publishBehavior": "rxjs-compat/_esm5/operators/publishBehavior", + "rxjs/operators/publish": "rxjs-compat/_esm5/operators/publish", + "rxjs/operators/pluck": "rxjs-compat/_esm5/operators/pluck", + "rxjs/operators/partition": "rxjs-compat/_esm5/operators/partition", + "rxjs/operators/pairwise": "rxjs-compat/_esm5/operators/pairwise", + "rxjs/operators/onErrorResumeNext": "rxjs-compat/_esm5/operators/onErrorResumeNext", + "rxjs/operators/observeOn": "rxjs-compat/_esm5/operators/observeOn", + "rxjs/operators/multicast": "rxjs-compat/_esm5/operators/multicast", + "rxjs/operators/min": "rxjs-compat/_esm5/operators/min", + "rxjs/operators/mergeScan": "rxjs-compat/_esm5/operators/mergeScan", + "rxjs/operators/mergeMapTo": "rxjs-compat/_esm5/operators/mergeMapTo", + "rxjs/operators/mergeMap": "rxjs-compat/_esm5/operators/mergeMap", + "rxjs/operators/mergeAll": "rxjs-compat/_esm5/operators/mergeAll", + "rxjs/operators/merge": "rxjs-compat/_esm5/operators/merge", + "rxjs/operators/max": "rxjs-compat/_esm5/operators/max", + "rxjs/operators/materialize": "rxjs-compat/_esm5/operators/materialize", + "rxjs/operators/mapTo": "rxjs-compat/_esm5/operators/mapTo", + "rxjs/operators/map": "rxjs-compat/_esm5/operators/map", + "rxjs/operators/last": "rxjs-compat/_esm5/operators/last", + "rxjs/operators/isEmpty": "rxjs-compat/_esm5/operators/isEmpty", + "rxjs/operators/ignoreElements": "rxjs-compat/_esm5/operators/ignoreElements", + "rxjs/operators/groupBy": "rxjs-compat/_esm5/operators/groupBy", + "rxjs/operators/first": "rxjs-compat/_esm5/operators/first", + "rxjs/operators/findIndex": "rxjs-compat/_esm5/operators/findIndex", + "rxjs/operators/find": "rxjs-compat/_esm5/operators/find", + "rxjs/operators/finalize": "rxjs-compat/_esm5/operators/finalize", + "rxjs/operators/filter": "rxjs-compat/_esm5/operators/filter", + "rxjs/operators/expand": "rxjs-compat/_esm5/operators/expand", + "rxjs/operators/exhaustMap": "rxjs-compat/_esm5/operators/exhaustMap", + "rxjs/operators/exhaust": "rxjs-compat/_esm5/operators/exhaust", + "rxjs/operators/every": "rxjs-compat/_esm5/operators/every", + "rxjs/operators/elementAt": "rxjs-compat/_esm5/operators/elementAt", + "rxjs/operators/distinctUntilKeyChanged": "rxjs-compat/_esm5/operators/distinctUntilKeyChanged", + "rxjs/operators/distinctUntilChanged": "rxjs-compat/_esm5/operators/distinctUntilChanged", + "rxjs/operators/distinct": "rxjs-compat/_esm5/operators/distinct", + "rxjs/operators/dematerialize": "rxjs-compat/_esm5/operators/dematerialize", + "rxjs/operators/delayWhen": "rxjs-compat/_esm5/operators/delayWhen", + "rxjs/operators/delay": "rxjs-compat/_esm5/operators/delay", + "rxjs/operators/defaultIfEmpty": "rxjs-compat/_esm5/operators/defaultIfEmpty", + "rxjs/operators/debounceTime": "rxjs-compat/_esm5/operators/debounceTime", + "rxjs/operators/debounce": "rxjs-compat/_esm5/operators/debounce", + "rxjs/operators/count": "rxjs-compat/_esm5/operators/count", + "rxjs/operators/concatMapTo": "rxjs-compat/_esm5/operators/concatMapTo", + "rxjs/operators/concatMap": "rxjs-compat/_esm5/operators/concatMap", + "rxjs/operators/concatAll": "rxjs-compat/_esm5/operators/concatAll", + "rxjs/operators/concat": "rxjs-compat/_esm5/operators/concat", + "rxjs/operators/combineLatest": "rxjs-compat/_esm5/operators/combineLatest", + "rxjs/operators/combineAll": "rxjs-compat/_esm5/operators/combineAll", + "rxjs/operators/catchError": "rxjs-compat/_esm5/operators/catchError", + "rxjs/operators/bufferWhen": "rxjs-compat/_esm5/operators/bufferWhen", + "rxjs/operators/bufferToggle": "rxjs-compat/_esm5/operators/bufferToggle", + "rxjs/operators/bufferTime": "rxjs-compat/_esm5/operators/bufferTime", + "rxjs/operators/bufferCount": "rxjs-compat/_esm5/operators/bufferCount", + "rxjs/operators/buffer": "rxjs-compat/_esm5/operators/buffer", + "rxjs/operators/auditTime": "rxjs-compat/_esm5/operators/auditTime", + "rxjs/operators/audit": "rxjs-compat/_esm5/operators/audit", + "rxjs/operator/zipAll": "rxjs-compat/_esm5/operator/zipAll", + "rxjs/operator/zip": "rxjs-compat/_esm5/operator/zip", + "rxjs/operator/withLatestFrom": "rxjs-compat/_esm5/operator/withLatestFrom", + "rxjs/operator/windowWhen": "rxjs-compat/_esm5/operator/windowWhen", + "rxjs/operator/windowToggle": "rxjs-compat/_esm5/operator/windowToggle", + "rxjs/operator/windowTime": "rxjs-compat/_esm5/operator/windowTime", + "rxjs/operator/windowCount": "rxjs-compat/_esm5/operator/windowCount", + "rxjs/operator/window": "rxjs-compat/_esm5/operator/window", + "rxjs/operator/toPromise": "rxjs-compat/_esm5/operator/toPromise", + "rxjs/operator/toArray": "rxjs-compat/_esm5/operator/toArray", + "rxjs/operator/timestamp": "rxjs-compat/_esm5/operator/timestamp", + "rxjs/operator/timeoutWith": "rxjs-compat/_esm5/operator/timeoutWith", + "rxjs/operator/timeout": "rxjs-compat/_esm5/operator/timeout", + "rxjs/operator/timeInterval": "rxjs-compat/_esm5/operator/timeInterval", + "rxjs/operator/throttleTime": "rxjs-compat/_esm5/operator/throttleTime", + "rxjs/operator/throttle": "rxjs-compat/_esm5/operator/throttle", + "rxjs/operator/takeWhile": "rxjs-compat/_esm5/operator/takeWhile", + "rxjs/operator/takeUntil": "rxjs-compat/_esm5/operator/takeUntil", + "rxjs/operator/takeLast": "rxjs-compat/_esm5/operator/takeLast", + "rxjs/operator/take": "rxjs-compat/_esm5/operator/take", + "rxjs/operator/switchMapTo": "rxjs-compat/_esm5/operator/switchMapTo", + "rxjs/operator/switchMap": "rxjs-compat/_esm5/operator/switchMap", + "rxjs/operator/switch": "rxjs-compat/_esm5/operator/switch", + "rxjs/operator/subscribeOn": "rxjs-compat/_esm5/operator/subscribeOn", + "rxjs/operator/startWith": "rxjs-compat/_esm5/operator/startWith", + "rxjs/operator/skipWhile": "rxjs-compat/_esm5/operator/skipWhile", + "rxjs/operator/skipUntil": "rxjs-compat/_esm5/operator/skipUntil", + "rxjs/operator/skipLast": "rxjs-compat/_esm5/operator/skipLast", + "rxjs/operator/skip": "rxjs-compat/_esm5/operator/skip", + "rxjs/operator/single": "rxjs-compat/_esm5/operator/single", + "rxjs/operator/shareReplay": "rxjs-compat/_esm5/operator/shareReplay", + "rxjs/operator/share": "rxjs-compat/_esm5/operator/share", + "rxjs/operator/sequenceEqual": "rxjs-compat/_esm5/operator/sequenceEqual", + "rxjs/operator/scan": "rxjs-compat/_esm5/operator/scan", + "rxjs/operator/sampleTime": "rxjs-compat/_esm5/operator/sampleTime", + "rxjs/operator/sample": "rxjs-compat/_esm5/operator/sample", + "rxjs/operator/retryWhen": "rxjs-compat/_esm5/operator/retryWhen", + "rxjs/operator/retry": "rxjs-compat/_esm5/operator/retry", + "rxjs/operator/repeatWhen": "rxjs-compat/_esm5/operator/repeatWhen", + "rxjs/operator/repeat": "rxjs-compat/_esm5/operator/repeat", + "rxjs/operator/reduce": "rxjs-compat/_esm5/operator/reduce", + "rxjs/operator/race": "rxjs-compat/_esm5/operator/race", + "rxjs/operator/publishReplay": "rxjs-compat/_esm5/operator/publishReplay", + "rxjs/operator/publishLast": "rxjs-compat/_esm5/operator/publishLast", + "rxjs/operator/publishBehavior": "rxjs-compat/_esm5/operator/publishBehavior", + "rxjs/operator/publish": "rxjs-compat/_esm5/operator/publish", + "rxjs/operator/pluck": "rxjs-compat/_esm5/operator/pluck", + "rxjs/operator/partition": "rxjs-compat/_esm5/operator/partition", + "rxjs/operator/pairwise": "rxjs-compat/_esm5/operator/pairwise", + "rxjs/operator/onErrorResumeNext": "rxjs-compat/_esm5/operator/onErrorResumeNext", + "rxjs/operator/observeOn": "rxjs-compat/_esm5/operator/observeOn", + "rxjs/operator/multicast": "rxjs-compat/_esm5/operator/multicast", + "rxjs/operator/min": "rxjs-compat/_esm5/operator/min", + "rxjs/operator/mergeScan": "rxjs-compat/_esm5/operator/mergeScan", + "rxjs/operator/mergeMapTo": "rxjs-compat/_esm5/operator/mergeMapTo", + "rxjs/operator/mergeMap": "rxjs-compat/_esm5/operator/mergeMap", + "rxjs/operator/mergeAll": "rxjs-compat/_esm5/operator/mergeAll", + "rxjs/operator/merge": "rxjs-compat/_esm5/operator/merge", + "rxjs/operator/max": "rxjs-compat/_esm5/operator/max", + "rxjs/operator/materialize": "rxjs-compat/_esm5/operator/materialize", + "rxjs/operator/mapTo": "rxjs-compat/_esm5/operator/mapTo", + "rxjs/operator/map": "rxjs-compat/_esm5/operator/map", + "rxjs/operator/let": "rxjs-compat/_esm5/operator/let", + "rxjs/operator/last": "rxjs-compat/_esm5/operator/last", + "rxjs/operator/isEmpty": "rxjs-compat/_esm5/operator/isEmpty", + "rxjs/operator/ignoreElements": "rxjs-compat/_esm5/operator/ignoreElements", + "rxjs/operator/groupBy": "rxjs-compat/_esm5/operator/groupBy", + "rxjs/operator/first": "rxjs-compat/_esm5/operator/first", + "rxjs/operator/findIndex": "rxjs-compat/_esm5/operator/findIndex", + "rxjs/operator/find": "rxjs-compat/_esm5/operator/find", + "rxjs/operator/finally": "rxjs-compat/_esm5/operator/finally", + "rxjs/operator/filter": "rxjs-compat/_esm5/operator/filter", + "rxjs/operator/expand": "rxjs-compat/_esm5/operator/expand", + "rxjs/operator/exhaustMap": "rxjs-compat/_esm5/operator/exhaustMap", + "rxjs/operator/exhaust": "rxjs-compat/_esm5/operator/exhaust", + "rxjs/operator/every": "rxjs-compat/_esm5/operator/every", + "rxjs/operator/elementAt": "rxjs-compat/_esm5/operator/elementAt", + "rxjs/operator/do": "rxjs-compat/_esm5/operator/do", + "rxjs/operator/distinctUntilKeyChanged": "rxjs-compat/_esm5/operator/distinctUntilKeyChanged", + "rxjs/operator/distinctUntilChanged": "rxjs-compat/_esm5/operator/distinctUntilChanged", + "rxjs/operator/distinct": "rxjs-compat/_esm5/operator/distinct", + "rxjs/operator/dematerialize": "rxjs-compat/_esm5/operator/dematerialize", + "rxjs/operator/delayWhen": "rxjs-compat/_esm5/operator/delayWhen", + "rxjs/operator/delay": "rxjs-compat/_esm5/operator/delay", + "rxjs/operator/defaultIfEmpty": "rxjs-compat/_esm5/operator/defaultIfEmpty", + "rxjs/operator/debounceTime": "rxjs-compat/_esm5/operator/debounceTime", + "rxjs/operator/debounce": "rxjs-compat/_esm5/operator/debounce", + "rxjs/operator/count": "rxjs-compat/_esm5/operator/count", + "rxjs/operator/concatMapTo": "rxjs-compat/_esm5/operator/concatMapTo", + "rxjs/operator/concatMap": "rxjs-compat/_esm5/operator/concatMap", + "rxjs/operator/concatAll": "rxjs-compat/_esm5/operator/concatAll", + "rxjs/operator/concat": "rxjs-compat/_esm5/operator/concat", + "rxjs/operator/combineLatest": "rxjs-compat/_esm5/operator/combineLatest", + "rxjs/operator/combineAll": "rxjs-compat/_esm5/operator/combineAll", + "rxjs/operator/catch": "rxjs-compat/_esm5/operator/catch", + "rxjs/operator/bufferWhen": "rxjs-compat/_esm5/operator/bufferWhen", + "rxjs/operator/bufferToggle": "rxjs-compat/_esm5/operator/bufferToggle", + "rxjs/operator/bufferTime": "rxjs-compat/_esm5/operator/bufferTime", + "rxjs/operator/bufferCount": "rxjs-compat/_esm5/operator/bufferCount", + "rxjs/operator/buffer": "rxjs-compat/_esm5/operator/buffer", + "rxjs/operator/auditTime": "rxjs-compat/_esm5/operator/auditTime", + "rxjs/operator/audit": "rxjs-compat/_esm5/operator/audit", + "rxjs/observable/zip": "rxjs-compat/_esm5/observable/zip", + "rxjs/observable/using": "rxjs-compat/_esm5/observable/using", + "rxjs/observable/timer": "rxjs-compat/_esm5/observable/timer", + "rxjs/observable/throw": "rxjs-compat/_esm5/observable/throw", + "rxjs/observable/range": "rxjs-compat/_esm5/observable/range", + "rxjs/observable/race": "rxjs-compat/_esm5/observable/race", + "rxjs/observable/pairs": "rxjs-compat/_esm5/observable/pairs", + "rxjs/observable/onErrorResumeNext": "rxjs-compat/_esm5/observable/onErrorResumeNext", + "rxjs/observable/of": "rxjs-compat/_esm5/observable/of", + "rxjs/observable/never": "rxjs-compat/_esm5/observable/never", + "rxjs/observable/merge": "rxjs-compat/_esm5/observable/merge", + "rxjs/observable/interval": "rxjs-compat/_esm5/observable/interval", + "rxjs/observable/if": "rxjs-compat/_esm5/observable/if", + "rxjs/observable/generate": "rxjs-compat/_esm5/observable/generate", + "rxjs/observable/fromPromise": "rxjs-compat/_esm5/observable/fromPromise", + "rxjs/observable/fromIterable": "rxjs-compat/_esm5/observable/fromIterable", + "rxjs/observable/fromEventPattern": "rxjs-compat/_esm5/observable/fromEventPattern", + "rxjs/observable/fromEvent": "rxjs-compat/_esm5/observable/fromEvent", + "rxjs/observable/fromArray": "rxjs-compat/_esm5/observable/fromArray", + "rxjs/observable/from": "rxjs-compat/_esm5/observable/from", + "rxjs/observable/forkJoin": "rxjs-compat/_esm5/observable/forkJoin", + "rxjs/observable/empty": "rxjs-compat/_esm5/observable/empty", + "rxjs/observable/dom/webSocket": "rxjs-compat/_esm5/observable/dom/webSocket", + "rxjs/observable/dom/ajax": "rxjs-compat/_esm5/observable/dom/ajax", + "rxjs/observable/dom/WebSocketSubject": "rxjs-compat/_esm5/observable/dom/WebSocketSubject", + "rxjs/observable/dom/AjaxObservable": "rxjs-compat/_esm5/observable/dom/AjaxObservable", + "rxjs/observable/defer": "rxjs-compat/_esm5/observable/defer", + "rxjs/observable/concat": "rxjs-compat/_esm5/observable/concat", + "rxjs/observable/combineLatest": "rxjs-compat/_esm5/observable/combineLatest", + "rxjs/observable/bindNodeCallback": "rxjs-compat/_esm5/observable/bindNodeCallback", + "rxjs/observable/bindCallback": "rxjs-compat/_esm5/observable/bindCallback", + "rxjs/observable/UsingObservable": "rxjs-compat/_esm5/observable/UsingObservable", + "rxjs/observable/TimerObservable": "rxjs-compat/_esm5/observable/TimerObservable", + "rxjs/observable/SubscribeOnObservable": "rxjs-compat/_esm5/observable/SubscribeOnObservable", + "rxjs/observable/ScalarObservable": "rxjs-compat/_esm5/observable/ScalarObservable", + "rxjs/observable/RangeObservable": "rxjs-compat/_esm5/observable/RangeObservable", + "rxjs/observable/PromiseObservable": "rxjs-compat/_esm5/observable/PromiseObservable", + "rxjs/observable/PairsObservable": "rxjs-compat/_esm5/observable/PairsObservable", + "rxjs/observable/NeverObservable": "rxjs-compat/_esm5/observable/NeverObservable", + "rxjs/observable/IteratorObservable": "rxjs-compat/_esm5/observable/IteratorObservable", + "rxjs/observable/IntervalObservable": "rxjs-compat/_esm5/observable/IntervalObservable", + "rxjs/observable/IfObservable": "rxjs-compat/_esm5/observable/IfObservable", + "rxjs/observable/GenerateObservable": "rxjs-compat/_esm5/observable/GenerateObservable", + "rxjs/observable/FromObservable": "rxjs-compat/_esm5/observable/FromObservable", + "rxjs/observable/FromEventPatternObservable": "rxjs-compat/_esm5/observable/FromEventPatternObservable", + "rxjs/observable/FromEventObservable": "rxjs-compat/_esm5/observable/FromEventObservable", + "rxjs/observable/ForkJoinObservable": "rxjs-compat/_esm5/observable/ForkJoinObservable", + "rxjs/observable/ErrorObservable": "rxjs-compat/_esm5/observable/ErrorObservable", + "rxjs/observable/EmptyObservable": "rxjs-compat/_esm5/observable/EmptyObservable", + "rxjs/observable/DeferObservable": "rxjs-compat/_esm5/observable/DeferObservable", + "rxjs/observable/ConnectableObservable": "rxjs-compat/_esm5/observable/ConnectableObservable", + "rxjs/observable/BoundNodeCallbackObservable": "rxjs-compat/_esm5/observable/BoundNodeCallbackObservable", + "rxjs/observable/BoundCallbackObservable": "rxjs-compat/_esm5/observable/BoundCallbackObservable", + "rxjs/observable/ArrayObservable": "rxjs-compat/_esm5/observable/ArrayObservable", + "rxjs/observable/ArrayLikeObservable": "rxjs-compat/_esm5/observable/ArrayLikeObservable", + "rxjs/interfaces": "rxjs-compat/_esm5/interfaces", + "rxjs/add/operator/zipAll": "rxjs-compat/_esm5/add/operator/zipAll", + "rxjs/add/operator/zip": "rxjs-compat/_esm5/add/operator/zip", + "rxjs/add/operator/withLatestFrom": "rxjs-compat/_esm5/add/operator/withLatestFrom", + "rxjs/add/operator/windowWhen": "rxjs-compat/_esm5/add/operator/windowWhen", + "rxjs/add/operator/windowToggle": "rxjs-compat/_esm5/add/operator/windowToggle", + "rxjs/add/operator/windowTime": "rxjs-compat/_esm5/add/operator/windowTime", + "rxjs/add/operator/windowCount": "rxjs-compat/_esm5/add/operator/windowCount", + "rxjs/add/operator/window": "rxjs-compat/_esm5/add/operator/window", + "rxjs/add/operator/toPromise": "rxjs-compat/_esm5/add/operator/toPromise", + "rxjs/add/operator/toArray": "rxjs-compat/_esm5/add/operator/toArray", + "rxjs/add/operator/timestamp": "rxjs-compat/_esm5/add/operator/timestamp", + "rxjs/add/operator/timeoutWith": "rxjs-compat/_esm5/add/operator/timeoutWith", + "rxjs/add/operator/timeout": "rxjs-compat/_esm5/add/operator/timeout", + "rxjs/add/operator/timeInterval": "rxjs-compat/_esm5/add/operator/timeInterval", + "rxjs/add/operator/throttleTime": "rxjs-compat/_esm5/add/operator/throttleTime", + "rxjs/add/operator/throttle": "rxjs-compat/_esm5/add/operator/throttle", + "rxjs/add/operator/takeWhile": "rxjs-compat/_esm5/add/operator/takeWhile", + "rxjs/add/operator/takeUntil": "rxjs-compat/_esm5/add/operator/takeUntil", + "rxjs/add/operator/takeLast": "rxjs-compat/_esm5/add/operator/takeLast", + "rxjs/add/operator/take": "rxjs-compat/_esm5/add/operator/take", + "rxjs/add/operator/switchMapTo": "rxjs-compat/_esm5/add/operator/switchMapTo", + "rxjs/add/operator/switchMap": "rxjs-compat/_esm5/add/operator/switchMap", + "rxjs/add/operator/switch": "rxjs-compat/_esm5/add/operator/switch", + "rxjs/add/operator/subscribeOn": "rxjs-compat/_esm5/add/operator/subscribeOn", + "rxjs/add/operator/startWith": "rxjs-compat/_esm5/add/operator/startWith", + "rxjs/add/operator/skipWhile": "rxjs-compat/_esm5/add/operator/skipWhile", + "rxjs/add/operator/skipUntil": "rxjs-compat/_esm5/add/operator/skipUntil", + "rxjs/add/operator/skipLast": "rxjs-compat/_esm5/add/operator/skipLast", + "rxjs/add/operator/skip": "rxjs-compat/_esm5/add/operator/skip", + "rxjs/add/operator/single": "rxjs-compat/_esm5/add/operator/single", + "rxjs/add/operator/shareReplay": "rxjs-compat/_esm5/add/operator/shareReplay", + "rxjs/add/operator/share": "rxjs-compat/_esm5/add/operator/share", + "rxjs/add/operator/sequenceEqual": "rxjs-compat/_esm5/add/operator/sequenceEqual", + "rxjs/add/operator/scan": "rxjs-compat/_esm5/add/operator/scan", + "rxjs/add/operator/sampleTime": "rxjs-compat/_esm5/add/operator/sampleTime", + "rxjs/add/operator/sample": "rxjs-compat/_esm5/add/operator/sample", + "rxjs/add/operator/retryWhen": "rxjs-compat/_esm5/add/operator/retryWhen", + "rxjs/add/operator/retry": "rxjs-compat/_esm5/add/operator/retry", + "rxjs/add/operator/repeatWhen": "rxjs-compat/_esm5/add/operator/repeatWhen", + "rxjs/add/operator/repeat": "rxjs-compat/_esm5/add/operator/repeat", + "rxjs/add/operator/reduce": "rxjs-compat/_esm5/add/operator/reduce", + "rxjs/add/operator/race": "rxjs-compat/_esm5/add/operator/race", + "rxjs/add/operator/publishReplay": "rxjs-compat/_esm5/add/operator/publishReplay", + "rxjs/add/operator/publishLast": "rxjs-compat/_esm5/add/operator/publishLast", + "rxjs/add/operator/publishBehavior": "rxjs-compat/_esm5/add/operator/publishBehavior", + "rxjs/add/operator/publish": "rxjs-compat/_esm5/add/operator/publish", + "rxjs/add/operator/pluck": "rxjs-compat/_esm5/add/operator/pluck", + "rxjs/add/operator/partition": "rxjs-compat/_esm5/add/operator/partition", + "rxjs/add/operator/pairwise": "rxjs-compat/_esm5/add/operator/pairwise", + "rxjs/add/operator/onErrorResumeNext": "rxjs-compat/_esm5/add/operator/onErrorResumeNext", + "rxjs/add/operator/observeOn": "rxjs-compat/_esm5/add/operator/observeOn", + "rxjs/add/operator/multicast": "rxjs-compat/_esm5/add/operator/multicast", + "rxjs/add/operator/min": "rxjs-compat/_esm5/add/operator/min", + "rxjs/add/operator/mergeScan": "rxjs-compat/_esm5/add/operator/mergeScan", + "rxjs/add/operator/mergeMapTo": "rxjs-compat/_esm5/add/operator/mergeMapTo", + "rxjs/add/operator/mergeMap": "rxjs-compat/_esm5/add/operator/mergeMap", + "rxjs/add/operator/mergeAll": "rxjs-compat/_esm5/add/operator/mergeAll", + "rxjs/add/operator/merge": "rxjs-compat/_esm5/add/operator/merge", + "rxjs/add/operator/max": "rxjs-compat/_esm5/add/operator/max", + "rxjs/add/operator/materialize": "rxjs-compat/_esm5/add/operator/materialize", + "rxjs/add/operator/mapTo": "rxjs-compat/_esm5/add/operator/mapTo", + "rxjs/add/operator/map": "rxjs-compat/_esm5/add/operator/map", + "rxjs/add/operator/let": "rxjs-compat/_esm5/add/operator/let", + "rxjs/add/operator/last": "rxjs-compat/_esm5/add/operator/last", + "rxjs/add/operator/isEmpty": "rxjs-compat/_esm5/add/operator/isEmpty", + "rxjs/add/operator/ignoreElements": "rxjs-compat/_esm5/add/operator/ignoreElements", + "rxjs/add/operator/groupBy": "rxjs-compat/_esm5/add/operator/groupBy", + "rxjs/add/operator/first": "rxjs-compat/_esm5/add/operator/first", + "rxjs/add/operator/findIndex": "rxjs-compat/_esm5/add/operator/findIndex", + "rxjs/add/operator/find": "rxjs-compat/_esm5/add/operator/find", + "rxjs/add/operator/finally": "rxjs-compat/_esm5/add/operator/finally", + "rxjs/add/operator/filter": "rxjs-compat/_esm5/add/operator/filter", + "rxjs/add/operator/expand": "rxjs-compat/_esm5/add/operator/expand", + "rxjs/add/operator/exhaustMap": "rxjs-compat/_esm5/add/operator/exhaustMap", + "rxjs/add/operator/exhaust": "rxjs-compat/_esm5/add/operator/exhaust", + "rxjs/add/operator/every": "rxjs-compat/_esm5/add/operator/every", + "rxjs/add/operator/elementAt": "rxjs-compat/_esm5/add/operator/elementAt", + "rxjs/add/operator/do": "rxjs-compat/_esm5/add/operator/do", + "rxjs/add/operator/distinctUntilKeyChanged": "rxjs-compat/_esm5/add/operator/distinctUntilKeyChanged", + "rxjs/add/operator/distinctUntilChanged": "rxjs-compat/_esm5/add/operator/distinctUntilChanged", + "rxjs/add/operator/distinct": "rxjs-compat/_esm5/add/operator/distinct", + "rxjs/add/operator/dematerialize": "rxjs-compat/_esm5/add/operator/dematerialize", + "rxjs/add/operator/delayWhen": "rxjs-compat/_esm5/add/operator/delayWhen", + "rxjs/add/operator/delay": "rxjs-compat/_esm5/add/operator/delay", + "rxjs/add/operator/defaultIfEmpty": "rxjs-compat/_esm5/add/operator/defaultIfEmpty", + "rxjs/add/operator/debounceTime": "rxjs-compat/_esm5/add/operator/debounceTime", + "rxjs/add/operator/debounce": "rxjs-compat/_esm5/add/operator/debounce", + "rxjs/add/operator/count": "rxjs-compat/_esm5/add/operator/count", + "rxjs/add/operator/concatMapTo": "rxjs-compat/_esm5/add/operator/concatMapTo", + "rxjs/add/operator/concatMap": "rxjs-compat/_esm5/add/operator/concatMap", + "rxjs/add/operator/concatAll": "rxjs-compat/_esm5/add/operator/concatAll", + "rxjs/add/operator/concat": "rxjs-compat/_esm5/add/operator/concat", + "rxjs/add/operator/combineLatest": "rxjs-compat/_esm5/add/operator/combineLatest", + "rxjs/add/operator/combineAll": "rxjs-compat/_esm5/add/operator/combineAll", + "rxjs/add/operator/catch": "rxjs-compat/_esm5/add/operator/catch", + "rxjs/add/operator/bufferWhen": "rxjs-compat/_esm5/add/operator/bufferWhen", + "rxjs/add/operator/bufferToggle": "rxjs-compat/_esm5/add/operator/bufferToggle", + "rxjs/add/operator/bufferTime": "rxjs-compat/_esm5/add/operator/bufferTime", + "rxjs/add/operator/bufferCount": "rxjs-compat/_esm5/add/operator/bufferCount", + "rxjs/add/operator/buffer": "rxjs-compat/_esm5/add/operator/buffer", + "rxjs/add/operator/auditTime": "rxjs-compat/_esm5/add/operator/auditTime", + "rxjs/add/operator/audit": "rxjs-compat/_esm5/add/operator/audit", + "rxjs/add/observable/zip": "rxjs-compat/_esm5/add/observable/zip", + "rxjs/add/observable/using": "rxjs-compat/_esm5/add/observable/using", + "rxjs/add/observable/timer": "rxjs-compat/_esm5/add/observable/timer", + "rxjs/add/observable/throw": "rxjs-compat/_esm5/add/observable/throw", + "rxjs/add/observable/range": "rxjs-compat/_esm5/add/observable/range", + "rxjs/add/observable/race": "rxjs-compat/_esm5/add/observable/race", + "rxjs/add/observable/pairs": "rxjs-compat/_esm5/add/observable/pairs", + "rxjs/add/observable/onErrorResumeNext": "rxjs-compat/_esm5/add/observable/onErrorResumeNext", + "rxjs/add/observable/of": "rxjs-compat/_esm5/add/observable/of", + "rxjs/add/observable/never": "rxjs-compat/_esm5/add/observable/never", + "rxjs/add/observable/merge": "rxjs-compat/_esm5/add/observable/merge", + "rxjs/add/observable/interval": "rxjs-compat/_esm5/add/observable/interval", + "rxjs/add/observable/if": "rxjs-compat/_esm5/add/observable/if", + "rxjs/add/observable/generate": "rxjs-compat/_esm5/add/observable/generate", + "rxjs/add/observable/fromPromise": "rxjs-compat/_esm5/add/observable/fromPromise", + "rxjs/add/observable/fromEventPattern": "rxjs-compat/_esm5/add/observable/fromEventPattern", + "rxjs/add/observable/fromEvent": "rxjs-compat/_esm5/add/observable/fromEvent", + "rxjs/add/observable/from": "rxjs-compat/_esm5/add/observable/from", + "rxjs/add/observable/forkJoin": "rxjs-compat/_esm5/add/observable/forkJoin", + "rxjs/add/observable/empty": "rxjs-compat/_esm5/add/observable/empty", + "rxjs/add/observable/dom/webSocket": "rxjs-compat/_esm5/add/observable/dom/webSocket", + "rxjs/add/observable/dom/ajax": "rxjs-compat/_esm5/add/observable/dom/ajax", + "rxjs/add/observable/defer": "rxjs-compat/_esm5/add/observable/defer", + "rxjs/add/observable/concat": "rxjs-compat/_esm5/add/observable/concat", + "rxjs/add/observable/combineLatest": "rxjs-compat/_esm5/add/observable/combineLatest", + "rxjs/add/observable/bindNodeCallback": "rxjs-compat/_esm5/add/observable/bindNodeCallback", + "rxjs/add/observable/bindCallback": "rxjs-compat/_esm5/add/observable/bindCallback", + "rxjs/Subscription": "rxjs-compat/_esm5/Subscription", + "rxjs/Subscriber": "rxjs-compat/_esm5/Subscriber", + "rxjs/SubjectSubscription": "rxjs-compat/_esm5/SubjectSubscription", + "rxjs/Subject": "rxjs-compat/_esm5/Subject", + "rxjs/Scheduler": "rxjs-compat/_esm5/Scheduler", + "rxjs/Rx": "rxjs-compat/_esm5/Rx", + "rxjs/ReplaySubject": "rxjs-compat/_esm5/ReplaySubject", + "rxjs/OuterSubscriber": "rxjs-compat/_esm5/OuterSubscriber", + "rxjs/Operator": "rxjs-compat/_esm5/Operator", + "rxjs/Observer": "rxjs-compat/_esm5/Observer", + "rxjs/Observable": "rxjs-compat/_esm5/Observable", + "rxjs/Notification": "rxjs-compat/_esm5/Notification", + "rxjs/InnerSubscriber": "rxjs-compat/_esm5/InnerSubscriber", + "rxjs/BehaviorSubject": "rxjs-compat/_esm5/BehaviorSubject", + "rxjs/AsyncSubject": "rxjs-compat/_esm5/AsyncSubject" +}; +} diff --git a/node_modules/rxjs/_esm5/testing/index.js b/node_modules/rxjs/_esm5/testing/index.js new file mode 100644 index 00000000..856db3bd --- /dev/null +++ b/node_modules/rxjs/_esm5/testing/index.js @@ -0,0 +1,3 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { TestScheduler } from '../internal/testing/TestScheduler'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/testing/index.js.map b/node_modules/rxjs/_esm5/testing/index.js.map new file mode 100644 index 00000000..68824056 --- /dev/null +++ b/node_modules/rxjs/_esm5/testing/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"} diff --git a/node_modules/rxjs/_esm5/webSocket/index.js b/node_modules/rxjs/_esm5/webSocket/index.js new file mode 100644 index 00000000..edf01049 --- /dev/null +++ b/node_modules/rxjs/_esm5/webSocket/index.js @@ -0,0 +1,4 @@ +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +export { webSocket as webSocket } from '../internal/observable/dom/webSocket'; +export { WebSocketSubject } from '../internal/observable/dom/WebSocketSubject'; +//# sourceMappingURL=index.js.map diff --git a/node_modules/rxjs/_esm5/webSocket/index.js.map b/node_modules/rxjs/_esm5/webSocket/index.js.map new file mode 100644 index 00000000..599e9a70 --- /dev/null +++ b/node_modules/rxjs/_esm5/webSocket/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/webSocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAA0B,MAAM,6CAA6C,CAAC"} diff --git a/node_modules/rxjs/add/observable/bindCallback.d.ts b/node_modules/rxjs/add/observable/bindCallback.d.ts new file mode 100644 index 00000000..7926a093 --- /dev/null +++ b/node_modules/rxjs/add/observable/bindCallback.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/bindCallback'; diff --git a/node_modules/rxjs/add/observable/bindCallback.js b/node_modules/rxjs/add/observable/bindCallback.js new file mode 100644 index 00000000..c76db00a --- /dev/null +++ b/node_modules/rxjs/add/observable/bindCallback.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/bindCallback"); +//# sourceMappingURL=bindCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/bindCallback.js.map b/node_modules/rxjs/add/observable/bindCallback.js.map new file mode 100644 index 00000000..5d433709 --- /dev/null +++ b/node_modules/rxjs/add/observable/bindCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindCallback.js","sources":["../../src/add/observable/bindCallback.ts"],"names":[],"mappings":";;AAAA,mDAAiD"} diff --git a/node_modules/rxjs/add/observable/bindNodeCallback.d.ts b/node_modules/rxjs/add/observable/bindNodeCallback.d.ts new file mode 100644 index 00000000..049f9a7c --- /dev/null +++ b/node_modules/rxjs/add/observable/bindNodeCallback.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/bindNodeCallback'; diff --git a/node_modules/rxjs/add/observable/bindNodeCallback.js b/node_modules/rxjs/add/observable/bindNodeCallback.js new file mode 100644 index 00000000..b3e2a758 --- /dev/null +++ b/node_modules/rxjs/add/observable/bindNodeCallback.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/bindNodeCallback"); +//# sourceMappingURL=bindNodeCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/bindNodeCallback.js.map b/node_modules/rxjs/add/observable/bindNodeCallback.js.map new file mode 100644 index 00000000..a0ee5590 --- /dev/null +++ b/node_modules/rxjs/add/observable/bindNodeCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindNodeCallback.js","sources":["../../src/add/observable/bindNodeCallback.ts"],"names":[],"mappings":";;AAAA,uDAAqD"} diff --git a/node_modules/rxjs/add/observable/combineLatest.d.ts b/node_modules/rxjs/add/observable/combineLatest.d.ts new file mode 100644 index 00000000..7163d7a9 --- /dev/null +++ b/node_modules/rxjs/add/observable/combineLatest.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/combineLatest'; diff --git a/node_modules/rxjs/add/observable/combineLatest.js b/node_modules/rxjs/add/observable/combineLatest.js new file mode 100644 index 00000000..db16f571 --- /dev/null +++ b/node_modules/rxjs/add/observable/combineLatest.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/combineLatest"); +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/combineLatest.js.map b/node_modules/rxjs/add/observable/combineLatest.js.map new file mode 100644 index 00000000..302f4ff9 --- /dev/null +++ b/node_modules/rxjs/add/observable/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../src/add/observable/combineLatest.ts"],"names":[],"mappings":";;AAAA,oDAAkD"} diff --git a/node_modules/rxjs/add/observable/concat.d.ts b/node_modules/rxjs/add/observable/concat.d.ts new file mode 100644 index 00000000..b392cb2e --- /dev/null +++ b/node_modules/rxjs/add/observable/concat.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/concat'; diff --git a/node_modules/rxjs/add/observable/concat.js b/node_modules/rxjs/add/observable/concat.js new file mode 100644 index 00000000..aeca6cab --- /dev/null +++ b/node_modules/rxjs/add/observable/concat.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/concat"); +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/concat.js.map b/node_modules/rxjs/add/observable/concat.js.map new file mode 100644 index 00000000..ad0e2118 --- /dev/null +++ b/node_modules/rxjs/add/observable/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../src/add/observable/concat.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/observable/defer.d.ts b/node_modules/rxjs/add/observable/defer.d.ts new file mode 100644 index 00000000..b4e29662 --- /dev/null +++ b/node_modules/rxjs/add/observable/defer.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/defer'; diff --git a/node_modules/rxjs/add/observable/defer.js b/node_modules/rxjs/add/observable/defer.js new file mode 100644 index 00000000..11b55d9d --- /dev/null +++ b/node_modules/rxjs/add/observable/defer.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/defer"); +//# sourceMappingURL=defer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/defer.js.map b/node_modules/rxjs/add/observable/defer.js.map new file mode 100644 index 00000000..60c6edc0 --- /dev/null +++ b/node_modules/rxjs/add/observable/defer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defer.js","sources":["../../src/add/observable/defer.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/dom/ajax.d.ts b/node_modules/rxjs/add/observable/dom/ajax.d.ts new file mode 100644 index 00000000..2b32efef --- /dev/null +++ b/node_modules/rxjs/add/observable/dom/ajax.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/dom/ajax'; diff --git a/node_modules/rxjs/add/observable/dom/ajax.js b/node_modules/rxjs/add/observable/dom/ajax.js new file mode 100644 index 00000000..744ffd2b --- /dev/null +++ b/node_modules/rxjs/add/observable/dom/ajax.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/dom/ajax"); +//# sourceMappingURL=ajax.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/dom/ajax.js.map b/node_modules/rxjs/add/observable/dom/ajax.js.map new file mode 100644 index 00000000..969c2993 --- /dev/null +++ b/node_modules/rxjs/add/observable/dom/ajax.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.js","sources":["../../../src/add/observable/dom/ajax.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/observable/dom/webSocket.d.ts b/node_modules/rxjs/add/observable/dom/webSocket.d.ts new file mode 100644 index 00000000..bc5d3f32 --- /dev/null +++ b/node_modules/rxjs/add/observable/dom/webSocket.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/dom/webSocket'; diff --git a/node_modules/rxjs/add/observable/dom/webSocket.js b/node_modules/rxjs/add/observable/dom/webSocket.js new file mode 100644 index 00000000..29eb2c01 --- /dev/null +++ b/node_modules/rxjs/add/observable/dom/webSocket.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/dom/webSocket"); +//# sourceMappingURL=webSocket.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/dom/webSocket.js.map b/node_modules/rxjs/add/observable/dom/webSocket.js.map new file mode 100644 index 00000000..c31b8fef --- /dev/null +++ b/node_modules/rxjs/add/observable/dom/webSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webSocket.js","sources":["../../../src/add/observable/dom/webSocket.ts"],"names":[],"mappings":";;AAAA,oDAAkD"} diff --git a/node_modules/rxjs/add/observable/empty.d.ts b/node_modules/rxjs/add/observable/empty.d.ts new file mode 100644 index 00000000..d261ad7f --- /dev/null +++ b/node_modules/rxjs/add/observable/empty.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/empty'; diff --git a/node_modules/rxjs/add/observable/empty.js b/node_modules/rxjs/add/observable/empty.js new file mode 100644 index 00000000..582d5b73 --- /dev/null +++ b/node_modules/rxjs/add/observable/empty.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/empty"); +//# sourceMappingURL=empty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/empty.js.map b/node_modules/rxjs/add/observable/empty.js.map new file mode 100644 index 00000000..68623e48 --- /dev/null +++ b/node_modules/rxjs/add/observable/empty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"empty.js","sources":["../../src/add/observable/empty.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/forkJoin.d.ts b/node_modules/rxjs/add/observable/forkJoin.d.ts new file mode 100644 index 00000000..2a581e29 --- /dev/null +++ b/node_modules/rxjs/add/observable/forkJoin.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/forkJoin'; diff --git a/node_modules/rxjs/add/observable/forkJoin.js b/node_modules/rxjs/add/observable/forkJoin.js new file mode 100644 index 00000000..053a095b --- /dev/null +++ b/node_modules/rxjs/add/observable/forkJoin.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/forkJoin"); +//# sourceMappingURL=forkJoin.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/forkJoin.js.map b/node_modules/rxjs/add/observable/forkJoin.js.map new file mode 100644 index 00000000..f6e1d876 --- /dev/null +++ b/node_modules/rxjs/add/observable/forkJoin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forkJoin.js","sources":["../../src/add/observable/forkJoin.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/observable/from.d.ts b/node_modules/rxjs/add/observable/from.d.ts new file mode 100644 index 00000000..06572d87 --- /dev/null +++ b/node_modules/rxjs/add/observable/from.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/from'; diff --git a/node_modules/rxjs/add/observable/from.js b/node_modules/rxjs/add/observable/from.js new file mode 100644 index 00000000..65051769 --- /dev/null +++ b/node_modules/rxjs/add/observable/from.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/from"); +//# sourceMappingURL=from.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/from.js.map b/node_modules/rxjs/add/observable/from.js.map new file mode 100644 index 00000000..369039a3 --- /dev/null +++ b/node_modules/rxjs/add/observable/from.js.map @@ -0,0 +1 @@ +{"version":3,"file":"from.js","sources":["../../src/add/observable/from.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/observable/fromEvent.d.ts b/node_modules/rxjs/add/observable/fromEvent.d.ts new file mode 100644 index 00000000..0d6e05b3 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromEvent.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/fromEvent'; diff --git a/node_modules/rxjs/add/observable/fromEvent.js b/node_modules/rxjs/add/observable/fromEvent.js new file mode 100644 index 00000000..75321cb7 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromEvent.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/fromEvent"); +//# sourceMappingURL=fromEvent.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/fromEvent.js.map b/node_modules/rxjs/add/observable/fromEvent.js.map new file mode 100644 index 00000000..f931c432 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromEvent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEvent.js","sources":["../../src/add/observable/fromEvent.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/observable/fromEventPattern.d.ts b/node_modules/rxjs/add/observable/fromEventPattern.d.ts new file mode 100644 index 00000000..c7241f86 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromEventPattern.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/fromEventPattern'; diff --git a/node_modules/rxjs/add/observable/fromEventPattern.js b/node_modules/rxjs/add/observable/fromEventPattern.js new file mode 100644 index 00000000..58fbfa5f --- /dev/null +++ b/node_modules/rxjs/add/observable/fromEventPattern.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/fromEventPattern"); +//# sourceMappingURL=fromEventPattern.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/fromEventPattern.js.map b/node_modules/rxjs/add/observable/fromEventPattern.js.map new file mode 100644 index 00000000..ad181b93 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromEventPattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEventPattern.js","sources":["../../src/add/observable/fromEventPattern.ts"],"names":[],"mappings":";;AAAA,uDAAqD"} diff --git a/node_modules/rxjs/add/observable/fromPromise.d.ts b/node_modules/rxjs/add/observable/fromPromise.d.ts new file mode 100644 index 00000000..c2622426 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromPromise.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/fromPromise'; diff --git a/node_modules/rxjs/add/observable/fromPromise.js b/node_modules/rxjs/add/observable/fromPromise.js new file mode 100644 index 00000000..418055c5 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromPromise.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/fromPromise"); +//# sourceMappingURL=fromPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/fromPromise.js.map b/node_modules/rxjs/add/observable/fromPromise.js.map new file mode 100644 index 00000000..91ea3207 --- /dev/null +++ b/node_modules/rxjs/add/observable/fromPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromPromise.js","sources":["../../src/add/observable/fromPromise.ts"],"names":[],"mappings":";;AAAA,kDAAgD"} diff --git a/node_modules/rxjs/add/observable/generate.d.ts b/node_modules/rxjs/add/observable/generate.d.ts new file mode 100644 index 00000000..3203a9b6 --- /dev/null +++ b/node_modules/rxjs/add/observable/generate.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/generate'; diff --git a/node_modules/rxjs/add/observable/generate.js b/node_modules/rxjs/add/observable/generate.js new file mode 100644 index 00000000..65bb024b --- /dev/null +++ b/node_modules/rxjs/add/observable/generate.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/generate"); +//# sourceMappingURL=generate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/generate.js.map b/node_modules/rxjs/add/observable/generate.js.map new file mode 100644 index 00000000..9c228e4c --- /dev/null +++ b/node_modules/rxjs/add/observable/generate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"generate.js","sources":["../../src/add/observable/generate.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/observable/if.d.ts b/node_modules/rxjs/add/observable/if.d.ts new file mode 100644 index 00000000..5767d74c --- /dev/null +++ b/node_modules/rxjs/add/observable/if.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/if'; diff --git a/node_modules/rxjs/add/observable/if.js b/node_modules/rxjs/add/observable/if.js new file mode 100644 index 00000000..3942d95d --- /dev/null +++ b/node_modules/rxjs/add/observable/if.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/if"); +//# sourceMappingURL=if.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/if.js.map b/node_modules/rxjs/add/observable/if.js.map new file mode 100644 index 00000000..583456eb --- /dev/null +++ b/node_modules/rxjs/add/observable/if.js.map @@ -0,0 +1 @@ +{"version":3,"file":"if.js","sources":["../../src/add/observable/if.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/observable/interval.d.ts b/node_modules/rxjs/add/observable/interval.d.ts new file mode 100644 index 00000000..6cd2b31d --- /dev/null +++ b/node_modules/rxjs/add/observable/interval.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/interval'; diff --git a/node_modules/rxjs/add/observable/interval.js b/node_modules/rxjs/add/observable/interval.js new file mode 100644 index 00000000..522be153 --- /dev/null +++ b/node_modules/rxjs/add/observable/interval.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/interval"); +//# sourceMappingURL=interval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/interval.js.map b/node_modules/rxjs/add/observable/interval.js.map new file mode 100644 index 00000000..6bfd3450 --- /dev/null +++ b/node_modules/rxjs/add/observable/interval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interval.js","sources":["../../src/add/observable/interval.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/observable/merge.d.ts b/node_modules/rxjs/add/observable/merge.d.ts new file mode 100644 index 00000000..7a111a5d --- /dev/null +++ b/node_modules/rxjs/add/observable/merge.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/merge'; diff --git a/node_modules/rxjs/add/observable/merge.js b/node_modules/rxjs/add/observable/merge.js new file mode 100644 index 00000000..bbc2ca90 --- /dev/null +++ b/node_modules/rxjs/add/observable/merge.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/merge"); +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/merge.js.map b/node_modules/rxjs/add/observable/merge.js.map new file mode 100644 index 00000000..ca95870f --- /dev/null +++ b/node_modules/rxjs/add/observable/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../src/add/observable/merge.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/never.d.ts b/node_modules/rxjs/add/observable/never.d.ts new file mode 100644 index 00000000..4c464d09 --- /dev/null +++ b/node_modules/rxjs/add/observable/never.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/never'; diff --git a/node_modules/rxjs/add/observable/never.js b/node_modules/rxjs/add/observable/never.js new file mode 100644 index 00000000..955e5bab --- /dev/null +++ b/node_modules/rxjs/add/observable/never.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/never"); +//# sourceMappingURL=never.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/never.js.map b/node_modules/rxjs/add/observable/never.js.map new file mode 100644 index 00000000..fc70b641 --- /dev/null +++ b/node_modules/rxjs/add/observable/never.js.map @@ -0,0 +1 @@ +{"version":3,"file":"never.js","sources":["../../src/add/observable/never.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/of.d.ts b/node_modules/rxjs/add/observable/of.d.ts new file mode 100644 index 00000000..c0720f6a --- /dev/null +++ b/node_modules/rxjs/add/observable/of.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/of'; diff --git a/node_modules/rxjs/add/observable/of.js b/node_modules/rxjs/add/observable/of.js new file mode 100644 index 00000000..bcb264c8 --- /dev/null +++ b/node_modules/rxjs/add/observable/of.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/of"); +//# sourceMappingURL=of.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/of.js.map b/node_modules/rxjs/add/observable/of.js.map new file mode 100644 index 00000000..c018612b --- /dev/null +++ b/node_modules/rxjs/add/observable/of.js.map @@ -0,0 +1 @@ +{"version":3,"file":"of.js","sources":["../../src/add/observable/of.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts b/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts new file mode 100644 index 00000000..80a4d91a --- /dev/null +++ b/node_modules/rxjs/add/observable/onErrorResumeNext.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/onErrorResumeNext'; diff --git a/node_modules/rxjs/add/observable/onErrorResumeNext.js b/node_modules/rxjs/add/observable/onErrorResumeNext.js new file mode 100644 index 00000000..fb765a9a --- /dev/null +++ b/node_modules/rxjs/add/observable/onErrorResumeNext.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/onErrorResumeNext"); +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/onErrorResumeNext.js.map b/node_modules/rxjs/add/observable/onErrorResumeNext.js.map new file mode 100644 index 00000000..13a90e76 --- /dev/null +++ b/node_modules/rxjs/add/observable/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/add/observable/onErrorResumeNext.ts"],"names":[],"mappings":";;AAAA,wDAAsD"} diff --git a/node_modules/rxjs/add/observable/pairs.d.ts b/node_modules/rxjs/add/observable/pairs.d.ts new file mode 100644 index 00000000..3af25b6b --- /dev/null +++ b/node_modules/rxjs/add/observable/pairs.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/pairs'; diff --git a/node_modules/rxjs/add/observable/pairs.js b/node_modules/rxjs/add/observable/pairs.js new file mode 100644 index 00000000..ba16ba42 --- /dev/null +++ b/node_modules/rxjs/add/observable/pairs.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/pairs"); +//# sourceMappingURL=pairs.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/pairs.js.map b/node_modules/rxjs/add/observable/pairs.js.map new file mode 100644 index 00000000..d7e01503 --- /dev/null +++ b/node_modules/rxjs/add/observable/pairs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairs.js","sources":["../../src/add/observable/pairs.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/race.d.ts b/node_modules/rxjs/add/observable/race.d.ts new file mode 100644 index 00000000..9b45c4e3 --- /dev/null +++ b/node_modules/rxjs/add/observable/race.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/race'; diff --git a/node_modules/rxjs/add/observable/race.js b/node_modules/rxjs/add/observable/race.js new file mode 100644 index 00000000..691cbe44 --- /dev/null +++ b/node_modules/rxjs/add/observable/race.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/race"); +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/race.js.map b/node_modules/rxjs/add/observable/race.js.map new file mode 100644 index 00000000..8a185cb5 --- /dev/null +++ b/node_modules/rxjs/add/observable/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../src/add/observable/race.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/observable/range.d.ts b/node_modules/rxjs/add/observable/range.d.ts new file mode 100644 index 00000000..2ae274ed --- /dev/null +++ b/node_modules/rxjs/add/observable/range.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/range'; diff --git a/node_modules/rxjs/add/observable/range.js b/node_modules/rxjs/add/observable/range.js new file mode 100644 index 00000000..39d2f573 --- /dev/null +++ b/node_modules/rxjs/add/observable/range.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/range"); +//# sourceMappingURL=range.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/range.js.map b/node_modules/rxjs/add/observable/range.js.map new file mode 100644 index 00000000..c4c1e3be --- /dev/null +++ b/node_modules/rxjs/add/observable/range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"range.js","sources":["../../src/add/observable/range.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/throw.d.ts b/node_modules/rxjs/add/observable/throw.d.ts new file mode 100644 index 00000000..7405653d --- /dev/null +++ b/node_modules/rxjs/add/observable/throw.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/throw'; diff --git a/node_modules/rxjs/add/observable/throw.js b/node_modules/rxjs/add/observable/throw.js new file mode 100644 index 00000000..21b48853 --- /dev/null +++ b/node_modules/rxjs/add/observable/throw.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/throw"); +//# sourceMappingURL=throw.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/throw.js.map b/node_modules/rxjs/add/observable/throw.js.map new file mode 100644 index 00000000..af86d3f8 --- /dev/null +++ b/node_modules/rxjs/add/observable/throw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throw.js","sources":["../../src/add/observable/throw.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/timer.d.ts b/node_modules/rxjs/add/observable/timer.d.ts new file mode 100644 index 00000000..60e2f9b4 --- /dev/null +++ b/node_modules/rxjs/add/observable/timer.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/timer'; diff --git a/node_modules/rxjs/add/observable/timer.js b/node_modules/rxjs/add/observable/timer.js new file mode 100644 index 00000000..39403e4e --- /dev/null +++ b/node_modules/rxjs/add/observable/timer.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/timer"); +//# sourceMappingURL=timer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/timer.js.map b/node_modules/rxjs/add/observable/timer.js.map new file mode 100644 index 00000000..4f6a8e74 --- /dev/null +++ b/node_modules/rxjs/add/observable/timer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timer.js","sources":["../../src/add/observable/timer.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/using.d.ts b/node_modules/rxjs/add/observable/using.d.ts new file mode 100644 index 00000000..c7ac49a4 --- /dev/null +++ b/node_modules/rxjs/add/observable/using.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/using'; diff --git a/node_modules/rxjs/add/observable/using.js b/node_modules/rxjs/add/observable/using.js new file mode 100644 index 00000000..d387fef0 --- /dev/null +++ b/node_modules/rxjs/add/observable/using.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/using"); +//# sourceMappingURL=using.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/using.js.map b/node_modules/rxjs/add/observable/using.js.map new file mode 100644 index 00000000..23b5fb67 --- /dev/null +++ b/node_modules/rxjs/add/observable/using.js.map @@ -0,0 +1 @@ +{"version":3,"file":"using.js","sources":["../../src/add/observable/using.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/observable/zip.d.ts b/node_modules/rxjs/add/observable/zip.d.ts new file mode 100644 index 00000000..5c720416 --- /dev/null +++ b/node_modules/rxjs/add/observable/zip.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/zip'; diff --git a/node_modules/rxjs/add/observable/zip.js b/node_modules/rxjs/add/observable/zip.js new file mode 100644 index 00000000..8d9ceee2 --- /dev/null +++ b/node_modules/rxjs/add/observable/zip.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/observable/zip"); +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/observable/zip.js.map b/node_modules/rxjs/add/observable/zip.js.map new file mode 100644 index 00000000..979d4b8c --- /dev/null +++ b/node_modules/rxjs/add/observable/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../src/add/observable/zip.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/audit.d.ts b/node_modules/rxjs/add/operator/audit.d.ts new file mode 100644 index 00000000..a3eb5a4b --- /dev/null +++ b/node_modules/rxjs/add/operator/audit.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/audit'; diff --git a/node_modules/rxjs/add/operator/audit.js b/node_modules/rxjs/add/operator/audit.js new file mode 100644 index 00000000..c76b3822 --- /dev/null +++ b/node_modules/rxjs/add/operator/audit.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/audit"); +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/audit.js.map b/node_modules/rxjs/add/operator/audit.js.map new file mode 100644 index 00000000..16b4fd0b --- /dev/null +++ b/node_modules/rxjs/add/operator/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sources":["../../src/add/operator/audit.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/auditTime.d.ts b/node_modules/rxjs/add/operator/auditTime.d.ts new file mode 100644 index 00000000..41f68da2 --- /dev/null +++ b/node_modules/rxjs/add/operator/auditTime.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/auditTime'; diff --git a/node_modules/rxjs/add/operator/auditTime.js b/node_modules/rxjs/add/operator/auditTime.js new file mode 100644 index 00000000..480f95c3 --- /dev/null +++ b/node_modules/rxjs/add/operator/auditTime.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/auditTime"); +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/auditTime.js.map b/node_modules/rxjs/add/operator/auditTime.js.map new file mode 100644 index 00000000..aa604d7f --- /dev/null +++ b/node_modules/rxjs/add/operator/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sources":["../../src/add/operator/auditTime.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/buffer.d.ts b/node_modules/rxjs/add/operator/buffer.d.ts new file mode 100644 index 00000000..b501cae1 --- /dev/null +++ b/node_modules/rxjs/add/operator/buffer.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/buffer'; diff --git a/node_modules/rxjs/add/operator/buffer.js b/node_modules/rxjs/add/operator/buffer.js new file mode 100644 index 00000000..68872bbd --- /dev/null +++ b/node_modules/rxjs/add/operator/buffer.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/buffer"); +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/buffer.js.map b/node_modules/rxjs/add/operator/buffer.js.map new file mode 100644 index 00000000..76dbd495 --- /dev/null +++ b/node_modules/rxjs/add/operator/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sources":["../../src/add/operator/buffer.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/bufferCount.d.ts b/node_modules/rxjs/add/operator/bufferCount.d.ts new file mode 100644 index 00000000..96237e56 --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferCount.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferCount'; diff --git a/node_modules/rxjs/add/operator/bufferCount.js b/node_modules/rxjs/add/operator/bufferCount.js new file mode 100644 index 00000000..9c7c5d7f --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferCount.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/bufferCount"); +//# sourceMappingURL=bufferCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/bufferCount.js.map b/node_modules/rxjs/add/operator/bufferCount.js.map new file mode 100644 index 00000000..c9a5c6f4 --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sources":["../../src/add/operator/bufferCount.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/bufferTime.d.ts b/node_modules/rxjs/add/operator/bufferTime.d.ts new file mode 100644 index 00000000..abd78ab8 --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferTime.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferTime'; diff --git a/node_modules/rxjs/add/operator/bufferTime.js b/node_modules/rxjs/add/operator/bufferTime.js new file mode 100644 index 00000000..7ed332ad --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferTime.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/bufferTime"); +//# sourceMappingURL=bufferTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/bufferTime.js.map b/node_modules/rxjs/add/operator/bufferTime.js.map new file mode 100644 index 00000000..4d6990c3 --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sources":["../../src/add/operator/bufferTime.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/bufferToggle.d.ts b/node_modules/rxjs/add/operator/bufferToggle.d.ts new file mode 100644 index 00000000..2dbdf86e --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferToggle.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferToggle'; diff --git a/node_modules/rxjs/add/operator/bufferToggle.js b/node_modules/rxjs/add/operator/bufferToggle.js new file mode 100644 index 00000000..d6d5a24b --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferToggle.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/bufferToggle"); +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/bufferToggle.js.map b/node_modules/rxjs/add/operator/bufferToggle.js.map new file mode 100644 index 00000000..20cd73bd --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sources":["../../src/add/operator/bufferToggle.ts"],"names":[],"mappings":";;AAAA,iDAA+C"} diff --git a/node_modules/rxjs/add/operator/bufferWhen.d.ts b/node_modules/rxjs/add/operator/bufferWhen.d.ts new file mode 100644 index 00000000..4ad636f8 --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferWhen.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferWhen'; diff --git a/node_modules/rxjs/add/operator/bufferWhen.js b/node_modules/rxjs/add/operator/bufferWhen.js new file mode 100644 index 00000000..0c53f4e3 --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferWhen.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/bufferWhen"); +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/bufferWhen.js.map b/node_modules/rxjs/add/operator/bufferWhen.js.map new file mode 100644 index 00000000..8c8ee88d --- /dev/null +++ b/node_modules/rxjs/add/operator/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sources":["../../src/add/operator/bufferWhen.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/catch.d.ts b/node_modules/rxjs/add/operator/catch.d.ts new file mode 100644 index 00000000..316a29ee --- /dev/null +++ b/node_modules/rxjs/add/operator/catch.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/catch'; diff --git a/node_modules/rxjs/add/operator/catch.js b/node_modules/rxjs/add/operator/catch.js new file mode 100644 index 00000000..92202915 --- /dev/null +++ b/node_modules/rxjs/add/operator/catch.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/catch"); +//# sourceMappingURL=catch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/catch.js.map b/node_modules/rxjs/add/operator/catch.js.map new file mode 100644 index 00000000..09d0bd97 --- /dev/null +++ b/node_modules/rxjs/add/operator/catch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catch.js","sources":["../../src/add/operator/catch.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/combineAll.d.ts b/node_modules/rxjs/add/operator/combineAll.d.ts new file mode 100644 index 00000000..0cf4be81 --- /dev/null +++ b/node_modules/rxjs/add/operator/combineAll.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/combineAll'; diff --git a/node_modules/rxjs/add/operator/combineAll.js b/node_modules/rxjs/add/operator/combineAll.js new file mode 100644 index 00000000..5b5317db --- /dev/null +++ b/node_modules/rxjs/add/operator/combineAll.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/combineAll"); +//# sourceMappingURL=combineAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/combineAll.js.map b/node_modules/rxjs/add/operator/combineAll.js.map new file mode 100644 index 00000000..0721014c --- /dev/null +++ b/node_modules/rxjs/add/operator/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sources":["../../src/add/operator/combineAll.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/combineLatest.d.ts b/node_modules/rxjs/add/operator/combineLatest.d.ts new file mode 100644 index 00000000..88333e72 --- /dev/null +++ b/node_modules/rxjs/add/operator/combineLatest.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/combineLatest'; diff --git a/node_modules/rxjs/add/operator/combineLatest.js b/node_modules/rxjs/add/operator/combineLatest.js new file mode 100644 index 00000000..bbdfce8c --- /dev/null +++ b/node_modules/rxjs/add/operator/combineLatest.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/combineLatest"); +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/combineLatest.js.map b/node_modules/rxjs/add/operator/combineLatest.js.map new file mode 100644 index 00000000..d6f48f81 --- /dev/null +++ b/node_modules/rxjs/add/operator/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../src/add/operator/combineLatest.ts"],"names":[],"mappings":";;AAAA,kDAAgD"} diff --git a/node_modules/rxjs/add/operator/concat.d.ts b/node_modules/rxjs/add/operator/concat.d.ts new file mode 100644 index 00000000..c743a6b4 --- /dev/null +++ b/node_modules/rxjs/add/operator/concat.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concat'; diff --git a/node_modules/rxjs/add/operator/concat.js b/node_modules/rxjs/add/operator/concat.js new file mode 100644 index 00000000..e65246e4 --- /dev/null +++ b/node_modules/rxjs/add/operator/concat.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/concat"); +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/concat.js.map b/node_modules/rxjs/add/operator/concat.js.map new file mode 100644 index 00000000..7ccae34a --- /dev/null +++ b/node_modules/rxjs/add/operator/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../src/add/operator/concat.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/concatAll.d.ts b/node_modules/rxjs/add/operator/concatAll.d.ts new file mode 100644 index 00000000..cf9157fd --- /dev/null +++ b/node_modules/rxjs/add/operator/concatAll.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concatAll'; diff --git a/node_modules/rxjs/add/operator/concatAll.js b/node_modules/rxjs/add/operator/concatAll.js new file mode 100644 index 00000000..da7ee187 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatAll.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/concatAll"); +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/concatAll.js.map b/node_modules/rxjs/add/operator/concatAll.js.map new file mode 100644 index 00000000..8eaafd80 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sources":["../../src/add/operator/concatAll.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/concatMap.d.ts b/node_modules/rxjs/add/operator/concatMap.d.ts new file mode 100644 index 00000000..dadc7220 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatMap.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concatMap'; diff --git a/node_modules/rxjs/add/operator/concatMap.js b/node_modules/rxjs/add/operator/concatMap.js new file mode 100644 index 00000000..9d98af94 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatMap.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/concatMap"); +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/concatMap.js.map b/node_modules/rxjs/add/operator/concatMap.js.map new file mode 100644 index 00000000..752de449 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sources":["../../src/add/operator/concatMap.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/concatMapTo.d.ts b/node_modules/rxjs/add/operator/concatMapTo.d.ts new file mode 100644 index 00000000..9a843a60 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatMapTo.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concatMapTo'; diff --git a/node_modules/rxjs/add/operator/concatMapTo.js b/node_modules/rxjs/add/operator/concatMapTo.js new file mode 100644 index 00000000..6698aef3 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatMapTo.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/concatMapTo"); +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/concatMapTo.js.map b/node_modules/rxjs/add/operator/concatMapTo.js.map new file mode 100644 index 00000000..fb73ad65 --- /dev/null +++ b/node_modules/rxjs/add/operator/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sources":["../../src/add/operator/concatMapTo.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/count.d.ts b/node_modules/rxjs/add/operator/count.d.ts new file mode 100644 index 00000000..85c68323 --- /dev/null +++ b/node_modules/rxjs/add/operator/count.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/count'; diff --git a/node_modules/rxjs/add/operator/count.js b/node_modules/rxjs/add/operator/count.js new file mode 100644 index 00000000..6957cf5c --- /dev/null +++ b/node_modules/rxjs/add/operator/count.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/count"); +//# sourceMappingURL=count.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/count.js.map b/node_modules/rxjs/add/operator/count.js.map new file mode 100644 index 00000000..ace114c4 --- /dev/null +++ b/node_modules/rxjs/add/operator/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sources":["../../src/add/operator/count.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/debounce.d.ts b/node_modules/rxjs/add/operator/debounce.d.ts new file mode 100644 index 00000000..e5ff5dbd --- /dev/null +++ b/node_modules/rxjs/add/operator/debounce.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/debounce'; diff --git a/node_modules/rxjs/add/operator/debounce.js b/node_modules/rxjs/add/operator/debounce.js new file mode 100644 index 00000000..a1d7f17e --- /dev/null +++ b/node_modules/rxjs/add/operator/debounce.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/debounce"); +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/debounce.js.map b/node_modules/rxjs/add/operator/debounce.js.map new file mode 100644 index 00000000..89ad4ebd --- /dev/null +++ b/node_modules/rxjs/add/operator/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sources":["../../src/add/operator/debounce.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/debounceTime.d.ts b/node_modules/rxjs/add/operator/debounceTime.d.ts new file mode 100644 index 00000000..8ffedf91 --- /dev/null +++ b/node_modules/rxjs/add/operator/debounceTime.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/debounceTime'; diff --git a/node_modules/rxjs/add/operator/debounceTime.js b/node_modules/rxjs/add/operator/debounceTime.js new file mode 100644 index 00000000..9a66c53f --- /dev/null +++ b/node_modules/rxjs/add/operator/debounceTime.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/debounceTime"); +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/debounceTime.js.map b/node_modules/rxjs/add/operator/debounceTime.js.map new file mode 100644 index 00000000..cdbad984 --- /dev/null +++ b/node_modules/rxjs/add/operator/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sources":["../../src/add/operator/debounceTime.ts"],"names":[],"mappings":";;AAAA,iDAA+C"} diff --git a/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts b/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts new file mode 100644 index 00000000..d8e00700 --- /dev/null +++ b/node_modules/rxjs/add/operator/defaultIfEmpty.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/defaultIfEmpty'; diff --git a/node_modules/rxjs/add/operator/defaultIfEmpty.js b/node_modules/rxjs/add/operator/defaultIfEmpty.js new file mode 100644 index 00000000..8f79694c --- /dev/null +++ b/node_modules/rxjs/add/operator/defaultIfEmpty.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/defaultIfEmpty"); +//# sourceMappingURL=defaultIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/defaultIfEmpty.js.map b/node_modules/rxjs/add/operator/defaultIfEmpty.js.map new file mode 100644 index 00000000..3a5147e6 --- /dev/null +++ b/node_modules/rxjs/add/operator/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sources":["../../src/add/operator/defaultIfEmpty.ts"],"names":[],"mappings":";;AAAA,mDAAiD"} diff --git a/node_modules/rxjs/add/operator/delay.d.ts b/node_modules/rxjs/add/operator/delay.d.ts new file mode 100644 index 00000000..96d20172 --- /dev/null +++ b/node_modules/rxjs/add/operator/delay.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/delay'; diff --git a/node_modules/rxjs/add/operator/delay.js b/node_modules/rxjs/add/operator/delay.js new file mode 100644 index 00000000..5828c65e --- /dev/null +++ b/node_modules/rxjs/add/operator/delay.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/delay"); +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/delay.js.map b/node_modules/rxjs/add/operator/delay.js.map new file mode 100644 index 00000000..cd27763d --- /dev/null +++ b/node_modules/rxjs/add/operator/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sources":["../../src/add/operator/delay.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/delayWhen.d.ts b/node_modules/rxjs/add/operator/delayWhen.d.ts new file mode 100644 index 00000000..a50cebb0 --- /dev/null +++ b/node_modules/rxjs/add/operator/delayWhen.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/delayWhen'; diff --git a/node_modules/rxjs/add/operator/delayWhen.js b/node_modules/rxjs/add/operator/delayWhen.js new file mode 100644 index 00000000..9e5b7582 --- /dev/null +++ b/node_modules/rxjs/add/operator/delayWhen.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/delayWhen"); +//# sourceMappingURL=delayWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/delayWhen.js.map b/node_modules/rxjs/add/operator/delayWhen.js.map new file mode 100644 index 00000000..0ab069ac --- /dev/null +++ b/node_modules/rxjs/add/operator/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sources":["../../src/add/operator/delayWhen.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/dematerialize.d.ts b/node_modules/rxjs/add/operator/dematerialize.d.ts new file mode 100644 index 00000000..18f368b9 --- /dev/null +++ b/node_modules/rxjs/add/operator/dematerialize.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/dematerialize'; diff --git a/node_modules/rxjs/add/operator/dematerialize.js b/node_modules/rxjs/add/operator/dematerialize.js new file mode 100644 index 00000000..933d925b --- /dev/null +++ b/node_modules/rxjs/add/operator/dematerialize.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/dematerialize"); +//# sourceMappingURL=dematerialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/dematerialize.js.map b/node_modules/rxjs/add/operator/dematerialize.js.map new file mode 100644 index 00000000..5ba22f8a --- /dev/null +++ b/node_modules/rxjs/add/operator/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sources":["../../src/add/operator/dematerialize.ts"],"names":[],"mappings":";;AAAA,kDAAgD"} diff --git a/node_modules/rxjs/add/operator/distinct.d.ts b/node_modules/rxjs/add/operator/distinct.d.ts new file mode 100644 index 00000000..330f8f9a --- /dev/null +++ b/node_modules/rxjs/add/operator/distinct.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/distinct'; diff --git a/node_modules/rxjs/add/operator/distinct.js b/node_modules/rxjs/add/operator/distinct.js new file mode 100644 index 00000000..0ba3bac5 --- /dev/null +++ b/node_modules/rxjs/add/operator/distinct.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/distinct"); +//# sourceMappingURL=distinct.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/distinct.js.map b/node_modules/rxjs/add/operator/distinct.js.map new file mode 100644 index 00000000..d4196d06 --- /dev/null +++ b/node_modules/rxjs/add/operator/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sources":["../../src/add/operator/distinct.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts b/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts new file mode 100644 index 00000000..8273e9e8 --- /dev/null +++ b/node_modules/rxjs/add/operator/distinctUntilChanged.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/distinctUntilChanged'; diff --git a/node_modules/rxjs/add/operator/distinctUntilChanged.js b/node_modules/rxjs/add/operator/distinctUntilChanged.js new file mode 100644 index 00000000..a08c77a5 --- /dev/null +++ b/node_modules/rxjs/add/operator/distinctUntilChanged.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/distinctUntilChanged"); +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/distinctUntilChanged.js.map b/node_modules/rxjs/add/operator/distinctUntilChanged.js.map new file mode 100644 index 00000000..7c0cc23a --- /dev/null +++ b/node_modules/rxjs/add/operator/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sources":["../../src/add/operator/distinctUntilChanged.ts"],"names":[],"mappings":";;AAAA,yDAAuD"} diff --git a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts new file mode 100644 index 00000000..f556b829 --- /dev/null +++ b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/distinctUntilKeyChanged'; diff --git a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js new file mode 100644 index 00000000..f48243a7 --- /dev/null +++ b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/distinctUntilKeyChanged"); +//# sourceMappingURL=distinctUntilKeyChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000..10931c89 --- /dev/null +++ b/node_modules/rxjs/add/operator/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../src/add/operator/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;AAAA,4DAA0D"} diff --git a/node_modules/rxjs/add/operator/do.d.ts b/node_modules/rxjs/add/operator/do.d.ts new file mode 100644 index 00000000..9eee7cd5 --- /dev/null +++ b/node_modules/rxjs/add/operator/do.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/do'; diff --git a/node_modules/rxjs/add/operator/do.js b/node_modules/rxjs/add/operator/do.js new file mode 100644 index 00000000..caf51742 --- /dev/null +++ b/node_modules/rxjs/add/operator/do.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/do"); +//# sourceMappingURL=do.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/do.js.map b/node_modules/rxjs/add/operator/do.js.map new file mode 100644 index 00000000..0e0eda07 --- /dev/null +++ b/node_modules/rxjs/add/operator/do.js.map @@ -0,0 +1 @@ +{"version":3,"file":"do.js","sources":["../../src/add/operator/do.ts"],"names":[],"mappings":";;AAAA,uCAAqC"} diff --git a/node_modules/rxjs/add/operator/elementAt.d.ts b/node_modules/rxjs/add/operator/elementAt.d.ts new file mode 100644 index 00000000..8fe8f29a --- /dev/null +++ b/node_modules/rxjs/add/operator/elementAt.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/elementAt'; diff --git a/node_modules/rxjs/add/operator/elementAt.js b/node_modules/rxjs/add/operator/elementAt.js new file mode 100644 index 00000000..49f837dc --- /dev/null +++ b/node_modules/rxjs/add/operator/elementAt.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/elementAt"); +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/elementAt.js.map b/node_modules/rxjs/add/operator/elementAt.js.map new file mode 100644 index 00000000..5075eb51 --- /dev/null +++ b/node_modules/rxjs/add/operator/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sources":["../../src/add/operator/elementAt.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/every.d.ts b/node_modules/rxjs/add/operator/every.d.ts new file mode 100644 index 00000000..789d3c14 --- /dev/null +++ b/node_modules/rxjs/add/operator/every.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/every'; diff --git a/node_modules/rxjs/add/operator/every.js b/node_modules/rxjs/add/operator/every.js new file mode 100644 index 00000000..5726e813 --- /dev/null +++ b/node_modules/rxjs/add/operator/every.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/every"); +//# sourceMappingURL=every.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/every.js.map b/node_modules/rxjs/add/operator/every.js.map new file mode 100644 index 00000000..4aecfac4 --- /dev/null +++ b/node_modules/rxjs/add/operator/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sources":["../../src/add/operator/every.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/exhaust.d.ts b/node_modules/rxjs/add/operator/exhaust.d.ts new file mode 100644 index 00000000..d0cae896 --- /dev/null +++ b/node_modules/rxjs/add/operator/exhaust.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/exhaust'; diff --git a/node_modules/rxjs/add/operator/exhaust.js b/node_modules/rxjs/add/operator/exhaust.js new file mode 100644 index 00000000..961de7cd --- /dev/null +++ b/node_modules/rxjs/add/operator/exhaust.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/exhaust"); +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/exhaust.js.map b/node_modules/rxjs/add/operator/exhaust.js.map new file mode 100644 index 00000000..c6398774 --- /dev/null +++ b/node_modules/rxjs/add/operator/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sources":["../../src/add/operator/exhaust.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/operator/exhaustMap.d.ts b/node_modules/rxjs/add/operator/exhaustMap.d.ts new file mode 100644 index 00000000..6e231be4 --- /dev/null +++ b/node_modules/rxjs/add/operator/exhaustMap.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/exhaustMap'; diff --git a/node_modules/rxjs/add/operator/exhaustMap.js b/node_modules/rxjs/add/operator/exhaustMap.js new file mode 100644 index 00000000..c00bae30 --- /dev/null +++ b/node_modules/rxjs/add/operator/exhaustMap.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/exhaustMap"); +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/exhaustMap.js.map b/node_modules/rxjs/add/operator/exhaustMap.js.map new file mode 100644 index 00000000..ee84018c --- /dev/null +++ b/node_modules/rxjs/add/operator/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sources":["../../src/add/operator/exhaustMap.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/expand.d.ts b/node_modules/rxjs/add/operator/expand.d.ts new file mode 100644 index 00000000..035ea496 --- /dev/null +++ b/node_modules/rxjs/add/operator/expand.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/expand'; diff --git a/node_modules/rxjs/add/operator/expand.js b/node_modules/rxjs/add/operator/expand.js new file mode 100644 index 00000000..1a5e5f18 --- /dev/null +++ b/node_modules/rxjs/add/operator/expand.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/expand"); +//# sourceMappingURL=expand.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/expand.js.map b/node_modules/rxjs/add/operator/expand.js.map new file mode 100644 index 00000000..6ffe1cfa --- /dev/null +++ b/node_modules/rxjs/add/operator/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sources":["../../src/add/operator/expand.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/filter.d.ts b/node_modules/rxjs/add/operator/filter.d.ts new file mode 100644 index 00000000..1cfe74a7 --- /dev/null +++ b/node_modules/rxjs/add/operator/filter.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/filter'; diff --git a/node_modules/rxjs/add/operator/filter.js b/node_modules/rxjs/add/operator/filter.js new file mode 100644 index 00000000..fdceab33 --- /dev/null +++ b/node_modules/rxjs/add/operator/filter.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/filter"); +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/filter.js.map b/node_modules/rxjs/add/operator/filter.js.map new file mode 100644 index 00000000..d1576dc8 --- /dev/null +++ b/node_modules/rxjs/add/operator/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sources":["../../src/add/operator/filter.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/finally.d.ts b/node_modules/rxjs/add/operator/finally.d.ts new file mode 100644 index 00000000..7db9d996 --- /dev/null +++ b/node_modules/rxjs/add/operator/finally.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/finally'; diff --git a/node_modules/rxjs/add/operator/finally.js b/node_modules/rxjs/add/operator/finally.js new file mode 100644 index 00000000..6e921a76 --- /dev/null +++ b/node_modules/rxjs/add/operator/finally.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/finally"); +//# sourceMappingURL=finally.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/finally.js.map b/node_modules/rxjs/add/operator/finally.js.map new file mode 100644 index 00000000..a864c863 --- /dev/null +++ b/node_modules/rxjs/add/operator/finally.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finally.js","sources":["../../src/add/operator/finally.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/operator/find.d.ts b/node_modules/rxjs/add/operator/find.d.ts new file mode 100644 index 00000000..2255ba45 --- /dev/null +++ b/node_modules/rxjs/add/operator/find.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/find'; diff --git a/node_modules/rxjs/add/operator/find.js b/node_modules/rxjs/add/operator/find.js new file mode 100644 index 00000000..91d31bab --- /dev/null +++ b/node_modules/rxjs/add/operator/find.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/find"); +//# sourceMappingURL=find.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/find.js.map b/node_modules/rxjs/add/operator/find.js.map new file mode 100644 index 00000000..c23f16bd --- /dev/null +++ b/node_modules/rxjs/add/operator/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sources":["../../src/add/operator/find.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/operator/findIndex.d.ts b/node_modules/rxjs/add/operator/findIndex.d.ts new file mode 100644 index 00000000..8d984696 --- /dev/null +++ b/node_modules/rxjs/add/operator/findIndex.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/findIndex'; diff --git a/node_modules/rxjs/add/operator/findIndex.js b/node_modules/rxjs/add/operator/findIndex.js new file mode 100644 index 00000000..a3982d8f --- /dev/null +++ b/node_modules/rxjs/add/operator/findIndex.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/findIndex"); +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/findIndex.js.map b/node_modules/rxjs/add/operator/findIndex.js.map new file mode 100644 index 00000000..fce0f581 --- /dev/null +++ b/node_modules/rxjs/add/operator/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sources":["../../src/add/operator/findIndex.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/first.d.ts b/node_modules/rxjs/add/operator/first.d.ts new file mode 100644 index 00000000..b12264fc --- /dev/null +++ b/node_modules/rxjs/add/operator/first.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/first'; diff --git a/node_modules/rxjs/add/operator/first.js b/node_modules/rxjs/add/operator/first.js new file mode 100644 index 00000000..14e9c807 --- /dev/null +++ b/node_modules/rxjs/add/operator/first.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/first"); +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/first.js.map b/node_modules/rxjs/add/operator/first.js.map new file mode 100644 index 00000000..0a63f44b --- /dev/null +++ b/node_modules/rxjs/add/operator/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sources":["../../src/add/operator/first.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/groupBy.d.ts b/node_modules/rxjs/add/operator/groupBy.d.ts new file mode 100644 index 00000000..932d1f46 --- /dev/null +++ b/node_modules/rxjs/add/operator/groupBy.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/groupBy'; diff --git a/node_modules/rxjs/add/operator/groupBy.js b/node_modules/rxjs/add/operator/groupBy.js new file mode 100644 index 00000000..4c79ff1d --- /dev/null +++ b/node_modules/rxjs/add/operator/groupBy.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/groupBy"); +//# sourceMappingURL=groupBy.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/groupBy.js.map b/node_modules/rxjs/add/operator/groupBy.js.map new file mode 100644 index 00000000..9701dabe --- /dev/null +++ b/node_modules/rxjs/add/operator/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sources":["../../src/add/operator/groupBy.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/operator/ignoreElements.d.ts b/node_modules/rxjs/add/operator/ignoreElements.d.ts new file mode 100644 index 00000000..28b04ba0 --- /dev/null +++ b/node_modules/rxjs/add/operator/ignoreElements.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/ignoreElements'; diff --git a/node_modules/rxjs/add/operator/ignoreElements.js b/node_modules/rxjs/add/operator/ignoreElements.js new file mode 100644 index 00000000..08cf5158 --- /dev/null +++ b/node_modules/rxjs/add/operator/ignoreElements.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/ignoreElements"); +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/ignoreElements.js.map b/node_modules/rxjs/add/operator/ignoreElements.js.map new file mode 100644 index 00000000..2acf913a --- /dev/null +++ b/node_modules/rxjs/add/operator/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sources":["../../src/add/operator/ignoreElements.ts"],"names":[],"mappings":";;AAAA,mDAAiD"} diff --git a/node_modules/rxjs/add/operator/isEmpty.d.ts b/node_modules/rxjs/add/operator/isEmpty.d.ts new file mode 100644 index 00000000..b84aaa9f --- /dev/null +++ b/node_modules/rxjs/add/operator/isEmpty.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/isEmpty'; diff --git a/node_modules/rxjs/add/operator/isEmpty.js b/node_modules/rxjs/add/operator/isEmpty.js new file mode 100644 index 00000000..730a52f8 --- /dev/null +++ b/node_modules/rxjs/add/operator/isEmpty.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/isEmpty"); +//# sourceMappingURL=isEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/isEmpty.js.map b/node_modules/rxjs/add/operator/isEmpty.js.map new file mode 100644 index 00000000..27ce72a2 --- /dev/null +++ b/node_modules/rxjs/add/operator/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sources":["../../src/add/operator/isEmpty.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/operator/last.d.ts b/node_modules/rxjs/add/operator/last.d.ts new file mode 100644 index 00000000..0b222df5 --- /dev/null +++ b/node_modules/rxjs/add/operator/last.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/last'; diff --git a/node_modules/rxjs/add/operator/last.js b/node_modules/rxjs/add/operator/last.js new file mode 100644 index 00000000..b1d158c3 --- /dev/null +++ b/node_modules/rxjs/add/operator/last.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/last"); +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/last.js.map b/node_modules/rxjs/add/operator/last.js.map new file mode 100644 index 00000000..70f3e2ed --- /dev/null +++ b/node_modules/rxjs/add/operator/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sources":["../../src/add/operator/last.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/operator/let.d.ts b/node_modules/rxjs/add/operator/let.d.ts new file mode 100644 index 00000000..5b920151 --- /dev/null +++ b/node_modules/rxjs/add/operator/let.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/let'; diff --git a/node_modules/rxjs/add/operator/let.js b/node_modules/rxjs/add/operator/let.js new file mode 100644 index 00000000..2a289f2d --- /dev/null +++ b/node_modules/rxjs/add/operator/let.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/let"); +//# sourceMappingURL=let.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/let.js.map b/node_modules/rxjs/add/operator/let.js.map new file mode 100644 index 00000000..f43757b9 --- /dev/null +++ b/node_modules/rxjs/add/operator/let.js.map @@ -0,0 +1 @@ +{"version":3,"file":"let.js","sources":["../../src/add/operator/let.ts"],"names":[],"mappings":";;AAAA,wCAAsC"} diff --git a/node_modules/rxjs/add/operator/map.d.ts b/node_modules/rxjs/add/operator/map.d.ts new file mode 100644 index 00000000..e9f2a7f4 --- /dev/null +++ b/node_modules/rxjs/add/operator/map.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/map'; diff --git a/node_modules/rxjs/add/operator/map.js b/node_modules/rxjs/add/operator/map.js new file mode 100644 index 00000000..91060b42 --- /dev/null +++ b/node_modules/rxjs/add/operator/map.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/map"); +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/map.js.map b/node_modules/rxjs/add/operator/map.js.map new file mode 100644 index 00000000..945bd41a --- /dev/null +++ b/node_modules/rxjs/add/operator/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sources":["../../src/add/operator/map.ts"],"names":[],"mappings":";;AAAA,wCAAsC"} diff --git a/node_modules/rxjs/add/operator/mapTo.d.ts b/node_modules/rxjs/add/operator/mapTo.d.ts new file mode 100644 index 00000000..a49f787c --- /dev/null +++ b/node_modules/rxjs/add/operator/mapTo.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mapTo'; diff --git a/node_modules/rxjs/add/operator/mapTo.js b/node_modules/rxjs/add/operator/mapTo.js new file mode 100644 index 00000000..5d24be4a --- /dev/null +++ b/node_modules/rxjs/add/operator/mapTo.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/mapTo"); +//# sourceMappingURL=mapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/mapTo.js.map b/node_modules/rxjs/add/operator/mapTo.js.map new file mode 100644 index 00000000..e0b6b777 --- /dev/null +++ b/node_modules/rxjs/add/operator/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sources":["../../src/add/operator/mapTo.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/materialize.d.ts b/node_modules/rxjs/add/operator/materialize.d.ts new file mode 100644 index 00000000..e7731991 --- /dev/null +++ b/node_modules/rxjs/add/operator/materialize.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/materialize'; diff --git a/node_modules/rxjs/add/operator/materialize.js b/node_modules/rxjs/add/operator/materialize.js new file mode 100644 index 00000000..8e14b7ec --- /dev/null +++ b/node_modules/rxjs/add/operator/materialize.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/materialize"); +//# sourceMappingURL=materialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/materialize.js.map b/node_modules/rxjs/add/operator/materialize.js.map new file mode 100644 index 00000000..0efd7013 --- /dev/null +++ b/node_modules/rxjs/add/operator/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sources":["../../src/add/operator/materialize.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/max.d.ts b/node_modules/rxjs/add/operator/max.d.ts new file mode 100644 index 00000000..c66f7aea --- /dev/null +++ b/node_modules/rxjs/add/operator/max.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/max'; diff --git a/node_modules/rxjs/add/operator/max.js b/node_modules/rxjs/add/operator/max.js new file mode 100644 index 00000000..56b58241 --- /dev/null +++ b/node_modules/rxjs/add/operator/max.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/max"); +//# sourceMappingURL=max.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/max.js.map b/node_modules/rxjs/add/operator/max.js.map new file mode 100644 index 00000000..7b0277ec --- /dev/null +++ b/node_modules/rxjs/add/operator/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sources":["../../src/add/operator/max.ts"],"names":[],"mappings":";;AAAA,wCAAsC"} diff --git a/node_modules/rxjs/add/operator/merge.d.ts b/node_modules/rxjs/add/operator/merge.d.ts new file mode 100644 index 00000000..dfa5c463 --- /dev/null +++ b/node_modules/rxjs/add/operator/merge.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/merge'; diff --git a/node_modules/rxjs/add/operator/merge.js b/node_modules/rxjs/add/operator/merge.js new file mode 100644 index 00000000..10f11d56 --- /dev/null +++ b/node_modules/rxjs/add/operator/merge.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/merge"); +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/merge.js.map b/node_modules/rxjs/add/operator/merge.js.map new file mode 100644 index 00000000..ceb86035 --- /dev/null +++ b/node_modules/rxjs/add/operator/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../src/add/operator/merge.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/mergeAll.d.ts b/node_modules/rxjs/add/operator/mergeAll.d.ts new file mode 100644 index 00000000..06cdc4fa --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeAll.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeAll'; diff --git a/node_modules/rxjs/add/operator/mergeAll.js b/node_modules/rxjs/add/operator/mergeAll.js new file mode 100644 index 00000000..02b8b759 --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeAll.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/mergeAll"); +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/mergeAll.js.map b/node_modules/rxjs/add/operator/mergeAll.js.map new file mode 100644 index 00000000..9ec784ae --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sources":["../../src/add/operator/mergeAll.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/mergeMap.d.ts b/node_modules/rxjs/add/operator/mergeMap.d.ts new file mode 100644 index 00000000..d8ec3cc4 --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeMap.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeMap'; diff --git a/node_modules/rxjs/add/operator/mergeMap.js b/node_modules/rxjs/add/operator/mergeMap.js new file mode 100644 index 00000000..e550a31c --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeMap.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/mergeMap"); +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/mergeMap.js.map b/node_modules/rxjs/add/operator/mergeMap.js.map new file mode 100644 index 00000000..bdefc212 --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sources":["../../src/add/operator/mergeMap.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/mergeMapTo.d.ts b/node_modules/rxjs/add/operator/mergeMapTo.d.ts new file mode 100644 index 00000000..0d8e15fb --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeMapTo.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeMapTo'; diff --git a/node_modules/rxjs/add/operator/mergeMapTo.js b/node_modules/rxjs/add/operator/mergeMapTo.js new file mode 100644 index 00000000..30f39e20 --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeMapTo.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/mergeMapTo"); +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/mergeMapTo.js.map b/node_modules/rxjs/add/operator/mergeMapTo.js.map new file mode 100644 index 00000000..c741663c --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sources":["../../src/add/operator/mergeMapTo.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/mergeScan.d.ts b/node_modules/rxjs/add/operator/mergeScan.d.ts new file mode 100644 index 00000000..17c5fcc1 --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeScan.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeScan'; diff --git a/node_modules/rxjs/add/operator/mergeScan.js b/node_modules/rxjs/add/operator/mergeScan.js new file mode 100644 index 00000000..9be36cd1 --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeScan.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/mergeScan"); +//# sourceMappingURL=mergeScan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/mergeScan.js.map b/node_modules/rxjs/add/operator/mergeScan.js.map new file mode 100644 index 00000000..b6e3a2fb --- /dev/null +++ b/node_modules/rxjs/add/operator/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sources":["../../src/add/operator/mergeScan.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/min.d.ts b/node_modules/rxjs/add/operator/min.d.ts new file mode 100644 index 00000000..5fa91d52 --- /dev/null +++ b/node_modules/rxjs/add/operator/min.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/min'; diff --git a/node_modules/rxjs/add/operator/min.js b/node_modules/rxjs/add/operator/min.js new file mode 100644 index 00000000..d23db81d --- /dev/null +++ b/node_modules/rxjs/add/operator/min.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/min"); +//# sourceMappingURL=min.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/min.js.map b/node_modules/rxjs/add/operator/min.js.map new file mode 100644 index 00000000..88fbc15c --- /dev/null +++ b/node_modules/rxjs/add/operator/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sources":["../../src/add/operator/min.ts"],"names":[],"mappings":";;AAAA,wCAAsC"} diff --git a/node_modules/rxjs/add/operator/multicast.d.ts b/node_modules/rxjs/add/operator/multicast.d.ts new file mode 100644 index 00000000..03b0670b --- /dev/null +++ b/node_modules/rxjs/add/operator/multicast.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/multicast'; diff --git a/node_modules/rxjs/add/operator/multicast.js b/node_modules/rxjs/add/operator/multicast.js new file mode 100644 index 00000000..2f7c199b --- /dev/null +++ b/node_modules/rxjs/add/operator/multicast.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/multicast"); +//# sourceMappingURL=multicast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/multicast.js.map b/node_modules/rxjs/add/operator/multicast.js.map new file mode 100644 index 00000000..accd0a81 --- /dev/null +++ b/node_modules/rxjs/add/operator/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sources":["../../src/add/operator/multicast.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/observeOn.d.ts b/node_modules/rxjs/add/operator/observeOn.d.ts new file mode 100644 index 00000000..4ade0859 --- /dev/null +++ b/node_modules/rxjs/add/operator/observeOn.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/observeOn'; diff --git a/node_modules/rxjs/add/operator/observeOn.js b/node_modules/rxjs/add/operator/observeOn.js new file mode 100644 index 00000000..1eb8c75d --- /dev/null +++ b/node_modules/rxjs/add/operator/observeOn.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/observeOn"); +//# sourceMappingURL=observeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/observeOn.js.map b/node_modules/rxjs/add/operator/observeOn.js.map new file mode 100644 index 00000000..82b95281 --- /dev/null +++ b/node_modules/rxjs/add/operator/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sources":["../../src/add/operator/observeOn.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts b/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts new file mode 100644 index 00000000..0d2aa976 --- /dev/null +++ b/node_modules/rxjs/add/operator/onErrorResumeNext.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/onErrorResumeNext'; diff --git a/node_modules/rxjs/add/operator/onErrorResumeNext.js b/node_modules/rxjs/add/operator/onErrorResumeNext.js new file mode 100644 index 00000000..1cdca287 --- /dev/null +++ b/node_modules/rxjs/add/operator/onErrorResumeNext.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/onErrorResumeNext"); +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/onErrorResumeNext.js.map b/node_modules/rxjs/add/operator/onErrorResumeNext.js.map new file mode 100644 index 00000000..9f4c34c6 --- /dev/null +++ b/node_modules/rxjs/add/operator/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/add/operator/onErrorResumeNext.ts"],"names":[],"mappings":";;AAAA,sDAAoD"} diff --git a/node_modules/rxjs/add/operator/pairwise.d.ts b/node_modules/rxjs/add/operator/pairwise.d.ts new file mode 100644 index 00000000..2930fd30 --- /dev/null +++ b/node_modules/rxjs/add/operator/pairwise.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/pairwise'; diff --git a/node_modules/rxjs/add/operator/pairwise.js b/node_modules/rxjs/add/operator/pairwise.js new file mode 100644 index 00000000..a458db36 --- /dev/null +++ b/node_modules/rxjs/add/operator/pairwise.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/pairwise"); +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/pairwise.js.map b/node_modules/rxjs/add/operator/pairwise.js.map new file mode 100644 index 00000000..f52406e5 --- /dev/null +++ b/node_modules/rxjs/add/operator/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sources":["../../src/add/operator/pairwise.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/partition.d.ts b/node_modules/rxjs/add/operator/partition.d.ts new file mode 100644 index 00000000..7b8c869f --- /dev/null +++ b/node_modules/rxjs/add/operator/partition.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/partition'; diff --git a/node_modules/rxjs/add/operator/partition.js b/node_modules/rxjs/add/operator/partition.js new file mode 100644 index 00000000..a85b37a2 --- /dev/null +++ b/node_modules/rxjs/add/operator/partition.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/partition"); +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/partition.js.map b/node_modules/rxjs/add/operator/partition.js.map new file mode 100644 index 00000000..cdd4dcbb --- /dev/null +++ b/node_modules/rxjs/add/operator/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../../src/add/operator/partition.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/pluck.d.ts b/node_modules/rxjs/add/operator/pluck.d.ts new file mode 100644 index 00000000..0af0f3b6 --- /dev/null +++ b/node_modules/rxjs/add/operator/pluck.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/pluck'; diff --git a/node_modules/rxjs/add/operator/pluck.js b/node_modules/rxjs/add/operator/pluck.js new file mode 100644 index 00000000..87e2b9dc --- /dev/null +++ b/node_modules/rxjs/add/operator/pluck.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/pluck"); +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/pluck.js.map b/node_modules/rxjs/add/operator/pluck.js.map new file mode 100644 index 00000000..4f8da480 --- /dev/null +++ b/node_modules/rxjs/add/operator/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sources":["../../src/add/operator/pluck.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/publish.d.ts b/node_modules/rxjs/add/operator/publish.d.ts new file mode 100644 index 00000000..b7198cc9 --- /dev/null +++ b/node_modules/rxjs/add/operator/publish.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publish'; diff --git a/node_modules/rxjs/add/operator/publish.js b/node_modules/rxjs/add/operator/publish.js new file mode 100644 index 00000000..68a62ebe --- /dev/null +++ b/node_modules/rxjs/add/operator/publish.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/publish"); +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/publish.js.map b/node_modules/rxjs/add/operator/publish.js.map new file mode 100644 index 00000000..1ebb5a37 --- /dev/null +++ b/node_modules/rxjs/add/operator/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sources":["../../src/add/operator/publish.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/operator/publishBehavior.d.ts b/node_modules/rxjs/add/operator/publishBehavior.d.ts new file mode 100644 index 00000000..3bc5e01a --- /dev/null +++ b/node_modules/rxjs/add/operator/publishBehavior.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publishBehavior'; diff --git a/node_modules/rxjs/add/operator/publishBehavior.js b/node_modules/rxjs/add/operator/publishBehavior.js new file mode 100644 index 00000000..3667cb76 --- /dev/null +++ b/node_modules/rxjs/add/operator/publishBehavior.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/publishBehavior"); +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/publishBehavior.js.map b/node_modules/rxjs/add/operator/publishBehavior.js.map new file mode 100644 index 00000000..ac4949b2 --- /dev/null +++ b/node_modules/rxjs/add/operator/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sources":["../../src/add/operator/publishBehavior.ts"],"names":[],"mappings":";;AAAA,oDAAkD"} diff --git a/node_modules/rxjs/add/operator/publishLast.d.ts b/node_modules/rxjs/add/operator/publishLast.d.ts new file mode 100644 index 00000000..243d07cf --- /dev/null +++ b/node_modules/rxjs/add/operator/publishLast.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publishLast'; diff --git a/node_modules/rxjs/add/operator/publishLast.js b/node_modules/rxjs/add/operator/publishLast.js new file mode 100644 index 00000000..6f85bbd7 --- /dev/null +++ b/node_modules/rxjs/add/operator/publishLast.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/publishLast"); +//# sourceMappingURL=publishLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/publishLast.js.map b/node_modules/rxjs/add/operator/publishLast.js.map new file mode 100644 index 00000000..a1e6ec73 --- /dev/null +++ b/node_modules/rxjs/add/operator/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sources":["../../src/add/operator/publishLast.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/publishReplay.d.ts b/node_modules/rxjs/add/operator/publishReplay.d.ts new file mode 100644 index 00000000..06bc9223 --- /dev/null +++ b/node_modules/rxjs/add/operator/publishReplay.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publishReplay'; diff --git a/node_modules/rxjs/add/operator/publishReplay.js b/node_modules/rxjs/add/operator/publishReplay.js new file mode 100644 index 00000000..85777769 --- /dev/null +++ b/node_modules/rxjs/add/operator/publishReplay.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/publishReplay"); +//# sourceMappingURL=publishReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/publishReplay.js.map b/node_modules/rxjs/add/operator/publishReplay.js.map new file mode 100644 index 00000000..eb44e12c --- /dev/null +++ b/node_modules/rxjs/add/operator/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sources":["../../src/add/operator/publishReplay.ts"],"names":[],"mappings":";;AAAA,kDAAgD"} diff --git a/node_modules/rxjs/add/operator/race.d.ts b/node_modules/rxjs/add/operator/race.d.ts new file mode 100644 index 00000000..b1134669 --- /dev/null +++ b/node_modules/rxjs/add/operator/race.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/race'; diff --git a/node_modules/rxjs/add/operator/race.js b/node_modules/rxjs/add/operator/race.js new file mode 100644 index 00000000..f139329e --- /dev/null +++ b/node_modules/rxjs/add/operator/race.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/race"); +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/race.js.map b/node_modules/rxjs/add/operator/race.js.map new file mode 100644 index 00000000..bb48aad3 --- /dev/null +++ b/node_modules/rxjs/add/operator/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../src/add/operator/race.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/operator/reduce.d.ts b/node_modules/rxjs/add/operator/reduce.d.ts new file mode 100644 index 00000000..c8db530e --- /dev/null +++ b/node_modules/rxjs/add/operator/reduce.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/reduce'; diff --git a/node_modules/rxjs/add/operator/reduce.js b/node_modules/rxjs/add/operator/reduce.js new file mode 100644 index 00000000..d278e1d8 --- /dev/null +++ b/node_modules/rxjs/add/operator/reduce.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/reduce"); +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/reduce.js.map b/node_modules/rxjs/add/operator/reduce.js.map new file mode 100644 index 00000000..6f632040 --- /dev/null +++ b/node_modules/rxjs/add/operator/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sources":["../../src/add/operator/reduce.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/repeat.d.ts b/node_modules/rxjs/add/operator/repeat.d.ts new file mode 100644 index 00000000..4290613b --- /dev/null +++ b/node_modules/rxjs/add/operator/repeat.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/repeat'; diff --git a/node_modules/rxjs/add/operator/repeat.js b/node_modules/rxjs/add/operator/repeat.js new file mode 100644 index 00000000..7376df47 --- /dev/null +++ b/node_modules/rxjs/add/operator/repeat.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/repeat"); +//# sourceMappingURL=repeat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/repeat.js.map b/node_modules/rxjs/add/operator/repeat.js.map new file mode 100644 index 00000000..8efab1f1 --- /dev/null +++ b/node_modules/rxjs/add/operator/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sources":["../../src/add/operator/repeat.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/repeatWhen.d.ts b/node_modules/rxjs/add/operator/repeatWhen.d.ts new file mode 100644 index 00000000..ca5471a3 --- /dev/null +++ b/node_modules/rxjs/add/operator/repeatWhen.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/repeatWhen'; diff --git a/node_modules/rxjs/add/operator/repeatWhen.js b/node_modules/rxjs/add/operator/repeatWhen.js new file mode 100644 index 00000000..4a23d60c --- /dev/null +++ b/node_modules/rxjs/add/operator/repeatWhen.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/repeatWhen"); +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/repeatWhen.js.map b/node_modules/rxjs/add/operator/repeatWhen.js.map new file mode 100644 index 00000000..53b67c38 --- /dev/null +++ b/node_modules/rxjs/add/operator/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sources":["../../src/add/operator/repeatWhen.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/retry.d.ts b/node_modules/rxjs/add/operator/retry.d.ts new file mode 100644 index 00000000..fb9316b3 --- /dev/null +++ b/node_modules/rxjs/add/operator/retry.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/retry'; diff --git a/node_modules/rxjs/add/operator/retry.js b/node_modules/rxjs/add/operator/retry.js new file mode 100644 index 00000000..c00fa98c --- /dev/null +++ b/node_modules/rxjs/add/operator/retry.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/retry"); +//# sourceMappingURL=retry.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/retry.js.map b/node_modules/rxjs/add/operator/retry.js.map new file mode 100644 index 00000000..bde602fe --- /dev/null +++ b/node_modules/rxjs/add/operator/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sources":["../../src/add/operator/retry.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/retryWhen.d.ts b/node_modules/rxjs/add/operator/retryWhen.d.ts new file mode 100644 index 00000000..c4553374 --- /dev/null +++ b/node_modules/rxjs/add/operator/retryWhen.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/retryWhen'; diff --git a/node_modules/rxjs/add/operator/retryWhen.js b/node_modules/rxjs/add/operator/retryWhen.js new file mode 100644 index 00000000..689a9578 --- /dev/null +++ b/node_modules/rxjs/add/operator/retryWhen.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/retryWhen"); +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/retryWhen.js.map b/node_modules/rxjs/add/operator/retryWhen.js.map new file mode 100644 index 00000000..33406349 --- /dev/null +++ b/node_modules/rxjs/add/operator/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sources":["../../src/add/operator/retryWhen.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/sample.d.ts b/node_modules/rxjs/add/operator/sample.d.ts new file mode 100644 index 00000000..441255f3 --- /dev/null +++ b/node_modules/rxjs/add/operator/sample.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/sample'; diff --git a/node_modules/rxjs/add/operator/sample.js b/node_modules/rxjs/add/operator/sample.js new file mode 100644 index 00000000..1318150c --- /dev/null +++ b/node_modules/rxjs/add/operator/sample.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/sample"); +//# sourceMappingURL=sample.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/sample.js.map b/node_modules/rxjs/add/operator/sample.js.map new file mode 100644 index 00000000..48d52ee6 --- /dev/null +++ b/node_modules/rxjs/add/operator/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sources":["../../src/add/operator/sample.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/sampleTime.d.ts b/node_modules/rxjs/add/operator/sampleTime.d.ts new file mode 100644 index 00000000..153d8b01 --- /dev/null +++ b/node_modules/rxjs/add/operator/sampleTime.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/sampleTime'; diff --git a/node_modules/rxjs/add/operator/sampleTime.js b/node_modules/rxjs/add/operator/sampleTime.js new file mode 100644 index 00000000..3296e687 --- /dev/null +++ b/node_modules/rxjs/add/operator/sampleTime.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/sampleTime"); +//# sourceMappingURL=sampleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/sampleTime.js.map b/node_modules/rxjs/add/operator/sampleTime.js.map new file mode 100644 index 00000000..97740743 --- /dev/null +++ b/node_modules/rxjs/add/operator/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sources":["../../src/add/operator/sampleTime.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/scan.d.ts b/node_modules/rxjs/add/operator/scan.d.ts new file mode 100644 index 00000000..baf81625 --- /dev/null +++ b/node_modules/rxjs/add/operator/scan.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/scan'; diff --git a/node_modules/rxjs/add/operator/scan.js b/node_modules/rxjs/add/operator/scan.js new file mode 100644 index 00000000..e2186c0f --- /dev/null +++ b/node_modules/rxjs/add/operator/scan.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/scan"); +//# sourceMappingURL=scan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/scan.js.map b/node_modules/rxjs/add/operator/scan.js.map new file mode 100644 index 00000000..75fbc7af --- /dev/null +++ b/node_modules/rxjs/add/operator/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sources":["../../src/add/operator/scan.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/operator/sequenceEqual.d.ts b/node_modules/rxjs/add/operator/sequenceEqual.d.ts new file mode 100644 index 00000000..f47a31dc --- /dev/null +++ b/node_modules/rxjs/add/operator/sequenceEqual.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/sequenceEqual'; diff --git a/node_modules/rxjs/add/operator/sequenceEqual.js b/node_modules/rxjs/add/operator/sequenceEqual.js new file mode 100644 index 00000000..009d8bd9 --- /dev/null +++ b/node_modules/rxjs/add/operator/sequenceEqual.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/sequenceEqual"); +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/sequenceEqual.js.map b/node_modules/rxjs/add/operator/sequenceEqual.js.map new file mode 100644 index 00000000..5f0a05c0 --- /dev/null +++ b/node_modules/rxjs/add/operator/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sources":["../../src/add/operator/sequenceEqual.ts"],"names":[],"mappings":";;AAAA,kDAAgD"} diff --git a/node_modules/rxjs/add/operator/share.d.ts b/node_modules/rxjs/add/operator/share.d.ts new file mode 100644 index 00000000..6db65af4 --- /dev/null +++ b/node_modules/rxjs/add/operator/share.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/share'; diff --git a/node_modules/rxjs/add/operator/share.js b/node_modules/rxjs/add/operator/share.js new file mode 100644 index 00000000..a77a301c --- /dev/null +++ b/node_modules/rxjs/add/operator/share.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/share"); +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/share.js.map b/node_modules/rxjs/add/operator/share.js.map new file mode 100644 index 00000000..d3612c27 --- /dev/null +++ b/node_modules/rxjs/add/operator/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sources":["../../src/add/operator/share.ts"],"names":[],"mappings":";;AAAA,0CAAwC"} diff --git a/node_modules/rxjs/add/operator/shareReplay.d.ts b/node_modules/rxjs/add/operator/shareReplay.d.ts new file mode 100644 index 00000000..7f31ff4b --- /dev/null +++ b/node_modules/rxjs/add/operator/shareReplay.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/shareReplay'; diff --git a/node_modules/rxjs/add/operator/shareReplay.js b/node_modules/rxjs/add/operator/shareReplay.js new file mode 100644 index 00000000..a5492b98 --- /dev/null +++ b/node_modules/rxjs/add/operator/shareReplay.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/shareReplay"); +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/shareReplay.js.map b/node_modules/rxjs/add/operator/shareReplay.js.map new file mode 100644 index 00000000..a0ccd1af --- /dev/null +++ b/node_modules/rxjs/add/operator/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sources":["../../src/add/operator/shareReplay.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/single.d.ts b/node_modules/rxjs/add/operator/single.d.ts new file mode 100644 index 00000000..d35b3cd6 --- /dev/null +++ b/node_modules/rxjs/add/operator/single.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/single'; diff --git a/node_modules/rxjs/add/operator/single.js b/node_modules/rxjs/add/operator/single.js new file mode 100644 index 00000000..e8c6eda2 --- /dev/null +++ b/node_modules/rxjs/add/operator/single.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/single"); +//# sourceMappingURL=single.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/single.js.map b/node_modules/rxjs/add/operator/single.js.map new file mode 100644 index 00000000..8bac0377 --- /dev/null +++ b/node_modules/rxjs/add/operator/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sources":["../../src/add/operator/single.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/skip.d.ts b/node_modules/rxjs/add/operator/skip.d.ts new file mode 100644 index 00000000..1456f1e5 --- /dev/null +++ b/node_modules/rxjs/add/operator/skip.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skip'; diff --git a/node_modules/rxjs/add/operator/skip.js b/node_modules/rxjs/add/operator/skip.js new file mode 100644 index 00000000..6fe5c69d --- /dev/null +++ b/node_modules/rxjs/add/operator/skip.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/skip"); +//# sourceMappingURL=skip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/skip.js.map b/node_modules/rxjs/add/operator/skip.js.map new file mode 100644 index 00000000..02ae65da --- /dev/null +++ b/node_modules/rxjs/add/operator/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sources":["../../src/add/operator/skip.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/operator/skipLast.d.ts b/node_modules/rxjs/add/operator/skipLast.d.ts new file mode 100644 index 00000000..0c432c9c --- /dev/null +++ b/node_modules/rxjs/add/operator/skipLast.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skipLast'; diff --git a/node_modules/rxjs/add/operator/skipLast.js b/node_modules/rxjs/add/operator/skipLast.js new file mode 100644 index 00000000..f27a5857 --- /dev/null +++ b/node_modules/rxjs/add/operator/skipLast.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/skipLast"); +//# sourceMappingURL=skipLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/skipLast.js.map b/node_modules/rxjs/add/operator/skipLast.js.map new file mode 100644 index 00000000..02475f1c --- /dev/null +++ b/node_modules/rxjs/add/operator/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sources":["../../src/add/operator/skipLast.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/skipUntil.d.ts b/node_modules/rxjs/add/operator/skipUntil.d.ts new file mode 100644 index 00000000..21ea6b2b --- /dev/null +++ b/node_modules/rxjs/add/operator/skipUntil.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skipUntil'; diff --git a/node_modules/rxjs/add/operator/skipUntil.js b/node_modules/rxjs/add/operator/skipUntil.js new file mode 100644 index 00000000..69c0389f --- /dev/null +++ b/node_modules/rxjs/add/operator/skipUntil.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/skipUntil"); +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/skipUntil.js.map b/node_modules/rxjs/add/operator/skipUntil.js.map new file mode 100644 index 00000000..f0a19cc5 --- /dev/null +++ b/node_modules/rxjs/add/operator/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sources":["../../src/add/operator/skipUntil.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/skipWhile.d.ts b/node_modules/rxjs/add/operator/skipWhile.d.ts new file mode 100644 index 00000000..496218b0 --- /dev/null +++ b/node_modules/rxjs/add/operator/skipWhile.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skipWhile'; diff --git a/node_modules/rxjs/add/operator/skipWhile.js b/node_modules/rxjs/add/operator/skipWhile.js new file mode 100644 index 00000000..093c352c --- /dev/null +++ b/node_modules/rxjs/add/operator/skipWhile.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/skipWhile"); +//# sourceMappingURL=skipWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/skipWhile.js.map b/node_modules/rxjs/add/operator/skipWhile.js.map new file mode 100644 index 00000000..5e076c99 --- /dev/null +++ b/node_modules/rxjs/add/operator/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sources":["../../src/add/operator/skipWhile.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/startWith.d.ts b/node_modules/rxjs/add/operator/startWith.d.ts new file mode 100644 index 00000000..9c9e670e --- /dev/null +++ b/node_modules/rxjs/add/operator/startWith.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/startWith'; diff --git a/node_modules/rxjs/add/operator/startWith.js b/node_modules/rxjs/add/operator/startWith.js new file mode 100644 index 00000000..cce240d8 --- /dev/null +++ b/node_modules/rxjs/add/operator/startWith.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/startWith"); +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/startWith.js.map b/node_modules/rxjs/add/operator/startWith.js.map new file mode 100644 index 00000000..db9e74e3 --- /dev/null +++ b/node_modules/rxjs/add/operator/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sources":["../../src/add/operator/startWith.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/subscribeOn.d.ts b/node_modules/rxjs/add/operator/subscribeOn.d.ts new file mode 100644 index 00000000..a1b5d6d4 --- /dev/null +++ b/node_modules/rxjs/add/operator/subscribeOn.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/subscribeOn'; diff --git a/node_modules/rxjs/add/operator/subscribeOn.js b/node_modules/rxjs/add/operator/subscribeOn.js new file mode 100644 index 00000000..003a9ea4 --- /dev/null +++ b/node_modules/rxjs/add/operator/subscribeOn.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/subscribeOn"); +//# sourceMappingURL=subscribeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/subscribeOn.js.map b/node_modules/rxjs/add/operator/subscribeOn.js.map new file mode 100644 index 00000000..546ffb89 --- /dev/null +++ b/node_modules/rxjs/add/operator/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sources":["../../src/add/operator/subscribeOn.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/switch.d.ts b/node_modules/rxjs/add/operator/switch.d.ts new file mode 100644 index 00000000..d2d3f48e --- /dev/null +++ b/node_modules/rxjs/add/operator/switch.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/switch'; diff --git a/node_modules/rxjs/add/operator/switch.js b/node_modules/rxjs/add/operator/switch.js new file mode 100644 index 00000000..8da50a1e --- /dev/null +++ b/node_modules/rxjs/add/operator/switch.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/switch"); +//# sourceMappingURL=switch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/switch.js.map b/node_modules/rxjs/add/operator/switch.js.map new file mode 100644 index 00000000..e291bac4 --- /dev/null +++ b/node_modules/rxjs/add/operator/switch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switch.js","sources":["../../src/add/operator/switch.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/switchMap.d.ts b/node_modules/rxjs/add/operator/switchMap.d.ts new file mode 100644 index 00000000..b1dfdfa1 --- /dev/null +++ b/node_modules/rxjs/add/operator/switchMap.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/switchMap'; diff --git a/node_modules/rxjs/add/operator/switchMap.js b/node_modules/rxjs/add/operator/switchMap.js new file mode 100644 index 00000000..f9ac611c --- /dev/null +++ b/node_modules/rxjs/add/operator/switchMap.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/switchMap"); +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/switchMap.js.map b/node_modules/rxjs/add/operator/switchMap.js.map new file mode 100644 index 00000000..1d9bb0bf --- /dev/null +++ b/node_modules/rxjs/add/operator/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sources":["../../src/add/operator/switchMap.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/switchMapTo.d.ts b/node_modules/rxjs/add/operator/switchMapTo.d.ts new file mode 100644 index 00000000..320b8443 --- /dev/null +++ b/node_modules/rxjs/add/operator/switchMapTo.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/switchMapTo'; diff --git a/node_modules/rxjs/add/operator/switchMapTo.js b/node_modules/rxjs/add/operator/switchMapTo.js new file mode 100644 index 00000000..cc5cb933 --- /dev/null +++ b/node_modules/rxjs/add/operator/switchMapTo.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/switchMapTo"); +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/switchMapTo.js.map b/node_modules/rxjs/add/operator/switchMapTo.js.map new file mode 100644 index 00000000..62d7c106 --- /dev/null +++ b/node_modules/rxjs/add/operator/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sources":["../../src/add/operator/switchMapTo.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/take.d.ts b/node_modules/rxjs/add/operator/take.d.ts new file mode 100644 index 00000000..08c3bcb2 --- /dev/null +++ b/node_modules/rxjs/add/operator/take.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/take'; diff --git a/node_modules/rxjs/add/operator/take.js b/node_modules/rxjs/add/operator/take.js new file mode 100644 index 00000000..aac062c3 --- /dev/null +++ b/node_modules/rxjs/add/operator/take.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/take"); +//# sourceMappingURL=take.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/take.js.map b/node_modules/rxjs/add/operator/take.js.map new file mode 100644 index 00000000..27166318 --- /dev/null +++ b/node_modules/rxjs/add/operator/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sources":["../../src/add/operator/take.ts"],"names":[],"mappings":";;AAAA,yCAAuC"} diff --git a/node_modules/rxjs/add/operator/takeLast.d.ts b/node_modules/rxjs/add/operator/takeLast.d.ts new file mode 100644 index 00000000..13d0816c --- /dev/null +++ b/node_modules/rxjs/add/operator/takeLast.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/takeLast'; diff --git a/node_modules/rxjs/add/operator/takeLast.js b/node_modules/rxjs/add/operator/takeLast.js new file mode 100644 index 00000000..9da93fca --- /dev/null +++ b/node_modules/rxjs/add/operator/takeLast.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/takeLast"); +//# sourceMappingURL=takeLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/takeLast.js.map b/node_modules/rxjs/add/operator/takeLast.js.map new file mode 100644 index 00000000..b3c0b7fd --- /dev/null +++ b/node_modules/rxjs/add/operator/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sources":["../../src/add/operator/takeLast.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/takeUntil.d.ts b/node_modules/rxjs/add/operator/takeUntil.d.ts new file mode 100644 index 00000000..78c8e553 --- /dev/null +++ b/node_modules/rxjs/add/operator/takeUntil.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/takeUntil'; diff --git a/node_modules/rxjs/add/operator/takeUntil.js b/node_modules/rxjs/add/operator/takeUntil.js new file mode 100644 index 00000000..f69102cd --- /dev/null +++ b/node_modules/rxjs/add/operator/takeUntil.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/takeUntil"); +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/takeUntil.js.map b/node_modules/rxjs/add/operator/takeUntil.js.map new file mode 100644 index 00000000..a9ab1f1d --- /dev/null +++ b/node_modules/rxjs/add/operator/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sources":["../../src/add/operator/takeUntil.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/takeWhile.d.ts b/node_modules/rxjs/add/operator/takeWhile.d.ts new file mode 100644 index 00000000..06ff1740 --- /dev/null +++ b/node_modules/rxjs/add/operator/takeWhile.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/takeWhile'; diff --git a/node_modules/rxjs/add/operator/takeWhile.js b/node_modules/rxjs/add/operator/takeWhile.js new file mode 100644 index 00000000..84d37ea5 --- /dev/null +++ b/node_modules/rxjs/add/operator/takeWhile.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/takeWhile"); +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/takeWhile.js.map b/node_modules/rxjs/add/operator/takeWhile.js.map new file mode 100644 index 00000000..291ca397 --- /dev/null +++ b/node_modules/rxjs/add/operator/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sources":["../../src/add/operator/takeWhile.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/throttle.d.ts b/node_modules/rxjs/add/operator/throttle.d.ts new file mode 100644 index 00000000..825457b9 --- /dev/null +++ b/node_modules/rxjs/add/operator/throttle.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/throttle'; diff --git a/node_modules/rxjs/add/operator/throttle.js b/node_modules/rxjs/add/operator/throttle.js new file mode 100644 index 00000000..4ff4d7f0 --- /dev/null +++ b/node_modules/rxjs/add/operator/throttle.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/throttle"); +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/throttle.js.map b/node_modules/rxjs/add/operator/throttle.js.map new file mode 100644 index 00000000..fb643caf --- /dev/null +++ b/node_modules/rxjs/add/operator/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sources":["../../src/add/operator/throttle.ts"],"names":[],"mappings":";;AAAA,6CAA2C"} diff --git a/node_modules/rxjs/add/operator/throttleTime.d.ts b/node_modules/rxjs/add/operator/throttleTime.d.ts new file mode 100644 index 00000000..c683297a --- /dev/null +++ b/node_modules/rxjs/add/operator/throttleTime.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/throttleTime'; diff --git a/node_modules/rxjs/add/operator/throttleTime.js b/node_modules/rxjs/add/operator/throttleTime.js new file mode 100644 index 00000000..4cb8a2b4 --- /dev/null +++ b/node_modules/rxjs/add/operator/throttleTime.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/throttleTime"); +//# sourceMappingURL=throttleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/throttleTime.js.map b/node_modules/rxjs/add/operator/throttleTime.js.map new file mode 100644 index 00000000..e6a434e0 --- /dev/null +++ b/node_modules/rxjs/add/operator/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sources":["../../src/add/operator/throttleTime.ts"],"names":[],"mappings":";;AAAA,iDAA+C"} diff --git a/node_modules/rxjs/add/operator/timeInterval.d.ts b/node_modules/rxjs/add/operator/timeInterval.d.ts new file mode 100644 index 00000000..198a616a --- /dev/null +++ b/node_modules/rxjs/add/operator/timeInterval.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timeInterval'; diff --git a/node_modules/rxjs/add/operator/timeInterval.js b/node_modules/rxjs/add/operator/timeInterval.js new file mode 100644 index 00000000..fae6799e --- /dev/null +++ b/node_modules/rxjs/add/operator/timeInterval.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/timeInterval"); +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/timeInterval.js.map b/node_modules/rxjs/add/operator/timeInterval.js.map new file mode 100644 index 00000000..39a60772 --- /dev/null +++ b/node_modules/rxjs/add/operator/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sources":["../../src/add/operator/timeInterval.ts"],"names":[],"mappings":";;AAAA,iDAA+C"} diff --git a/node_modules/rxjs/add/operator/timeout.d.ts b/node_modules/rxjs/add/operator/timeout.d.ts new file mode 100644 index 00000000..2a69ffdc --- /dev/null +++ b/node_modules/rxjs/add/operator/timeout.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timeout'; diff --git a/node_modules/rxjs/add/operator/timeout.js b/node_modules/rxjs/add/operator/timeout.js new file mode 100644 index 00000000..5263dcc2 --- /dev/null +++ b/node_modules/rxjs/add/operator/timeout.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/timeout"); +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/timeout.js.map b/node_modules/rxjs/add/operator/timeout.js.map new file mode 100644 index 00000000..b9cd549a --- /dev/null +++ b/node_modules/rxjs/add/operator/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sources":["../../src/add/operator/timeout.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/operator/timeoutWith.d.ts b/node_modules/rxjs/add/operator/timeoutWith.d.ts new file mode 100644 index 00000000..cd4ec44d --- /dev/null +++ b/node_modules/rxjs/add/operator/timeoutWith.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timeoutWith'; diff --git a/node_modules/rxjs/add/operator/timeoutWith.js b/node_modules/rxjs/add/operator/timeoutWith.js new file mode 100644 index 00000000..d68cb340 --- /dev/null +++ b/node_modules/rxjs/add/operator/timeoutWith.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/timeoutWith"); +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/timeoutWith.js.map b/node_modules/rxjs/add/operator/timeoutWith.js.map new file mode 100644 index 00000000..c4f7107e --- /dev/null +++ b/node_modules/rxjs/add/operator/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sources":["../../src/add/operator/timeoutWith.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/timestamp.d.ts b/node_modules/rxjs/add/operator/timestamp.d.ts new file mode 100644 index 00000000..16402c81 --- /dev/null +++ b/node_modules/rxjs/add/operator/timestamp.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timestamp'; diff --git a/node_modules/rxjs/add/operator/timestamp.js b/node_modules/rxjs/add/operator/timestamp.js new file mode 100644 index 00000000..7cda577d --- /dev/null +++ b/node_modules/rxjs/add/operator/timestamp.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/timestamp"); +//# sourceMappingURL=timestamp.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/timestamp.js.map b/node_modules/rxjs/add/operator/timestamp.js.map new file mode 100644 index 00000000..add67593 --- /dev/null +++ b/node_modules/rxjs/add/operator/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sources":["../../src/add/operator/timestamp.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/toArray.d.ts b/node_modules/rxjs/add/operator/toArray.d.ts new file mode 100644 index 00000000..a0f1a4fc --- /dev/null +++ b/node_modules/rxjs/add/operator/toArray.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/toArray'; diff --git a/node_modules/rxjs/add/operator/toArray.js b/node_modules/rxjs/add/operator/toArray.js new file mode 100644 index 00000000..e7c81073 --- /dev/null +++ b/node_modules/rxjs/add/operator/toArray.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/toArray"); +//# sourceMappingURL=toArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/toArray.js.map b/node_modules/rxjs/add/operator/toArray.js.map new file mode 100644 index 00000000..03776908 --- /dev/null +++ b/node_modules/rxjs/add/operator/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sources":["../../src/add/operator/toArray.ts"],"names":[],"mappings":";;AAAA,4CAA0C"} diff --git a/node_modules/rxjs/add/operator/toPromise.d.ts b/node_modules/rxjs/add/operator/toPromise.d.ts new file mode 100644 index 00000000..cc7b16e2 --- /dev/null +++ b/node_modules/rxjs/add/operator/toPromise.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/toPromise'; diff --git a/node_modules/rxjs/add/operator/toPromise.js b/node_modules/rxjs/add/operator/toPromise.js new file mode 100644 index 00000000..c7cb12b3 --- /dev/null +++ b/node_modules/rxjs/add/operator/toPromise.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/toPromise"); +//# sourceMappingURL=toPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/toPromise.js.map b/node_modules/rxjs/add/operator/toPromise.js.map new file mode 100644 index 00000000..cfa4eb4c --- /dev/null +++ b/node_modules/rxjs/add/operator/toPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toPromise.js","sources":["../../src/add/operator/toPromise.ts"],"names":[],"mappings":";;AAAA,8CAA4C"} diff --git a/node_modules/rxjs/add/operator/window.d.ts b/node_modules/rxjs/add/operator/window.d.ts new file mode 100644 index 00000000..450c41f2 --- /dev/null +++ b/node_modules/rxjs/add/operator/window.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/window'; diff --git a/node_modules/rxjs/add/operator/window.js b/node_modules/rxjs/add/operator/window.js new file mode 100644 index 00000000..656fce3e --- /dev/null +++ b/node_modules/rxjs/add/operator/window.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/window"); +//# sourceMappingURL=window.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/window.js.map b/node_modules/rxjs/add/operator/window.js.map new file mode 100644 index 00000000..1bf33da1 --- /dev/null +++ b/node_modules/rxjs/add/operator/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sources":["../../src/add/operator/window.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/add/operator/windowCount.d.ts b/node_modules/rxjs/add/operator/windowCount.d.ts new file mode 100644 index 00000000..da7eccfe --- /dev/null +++ b/node_modules/rxjs/add/operator/windowCount.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowCount'; diff --git a/node_modules/rxjs/add/operator/windowCount.js b/node_modules/rxjs/add/operator/windowCount.js new file mode 100644 index 00000000..1018e223 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowCount.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/windowCount"); +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/windowCount.js.map b/node_modules/rxjs/add/operator/windowCount.js.map new file mode 100644 index 00000000..5e80c7a6 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sources":["../../src/add/operator/windowCount.ts"],"names":[],"mappings":";;AAAA,gDAA8C"} diff --git a/node_modules/rxjs/add/operator/windowTime.d.ts b/node_modules/rxjs/add/operator/windowTime.d.ts new file mode 100644 index 00000000..1d82ec67 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowTime.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowTime'; diff --git a/node_modules/rxjs/add/operator/windowTime.js b/node_modules/rxjs/add/operator/windowTime.js new file mode 100644 index 00000000..091a9aef --- /dev/null +++ b/node_modules/rxjs/add/operator/windowTime.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/windowTime"); +//# sourceMappingURL=windowTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/windowTime.js.map b/node_modules/rxjs/add/operator/windowTime.js.map new file mode 100644 index 00000000..067b8789 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sources":["../../src/add/operator/windowTime.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/windowToggle.d.ts b/node_modules/rxjs/add/operator/windowToggle.d.ts new file mode 100644 index 00000000..9ed25dfb --- /dev/null +++ b/node_modules/rxjs/add/operator/windowToggle.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowToggle'; diff --git a/node_modules/rxjs/add/operator/windowToggle.js b/node_modules/rxjs/add/operator/windowToggle.js new file mode 100644 index 00000000..d84082f8 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowToggle.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/windowToggle"); +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/windowToggle.js.map b/node_modules/rxjs/add/operator/windowToggle.js.map new file mode 100644 index 00000000..a2197f2b --- /dev/null +++ b/node_modules/rxjs/add/operator/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sources":["../../src/add/operator/windowToggle.ts"],"names":[],"mappings":";;AAAA,iDAA+C"} diff --git a/node_modules/rxjs/add/operator/windowWhen.d.ts b/node_modules/rxjs/add/operator/windowWhen.d.ts new file mode 100644 index 00000000..f5d85640 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowWhen.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowWhen'; diff --git a/node_modules/rxjs/add/operator/windowWhen.js b/node_modules/rxjs/add/operator/windowWhen.js new file mode 100644 index 00000000..f647f9b9 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowWhen.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/windowWhen"); +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/windowWhen.js.map b/node_modules/rxjs/add/operator/windowWhen.js.map new file mode 100644 index 00000000..419601b3 --- /dev/null +++ b/node_modules/rxjs/add/operator/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sources":["../../src/add/operator/windowWhen.ts"],"names":[],"mappings":";;AAAA,+CAA6C"} diff --git a/node_modules/rxjs/add/operator/withLatestFrom.d.ts b/node_modules/rxjs/add/operator/withLatestFrom.d.ts new file mode 100644 index 00000000..9f715749 --- /dev/null +++ b/node_modules/rxjs/add/operator/withLatestFrom.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/withLatestFrom'; diff --git a/node_modules/rxjs/add/operator/withLatestFrom.js b/node_modules/rxjs/add/operator/withLatestFrom.js new file mode 100644 index 00000000..548babdc --- /dev/null +++ b/node_modules/rxjs/add/operator/withLatestFrom.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/withLatestFrom"); +//# sourceMappingURL=withLatestFrom.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/withLatestFrom.js.map b/node_modules/rxjs/add/operator/withLatestFrom.js.map new file mode 100644 index 00000000..af5df331 --- /dev/null +++ b/node_modules/rxjs/add/operator/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sources":["../../src/add/operator/withLatestFrom.ts"],"names":[],"mappings":";;AAAA,mDAAiD"} diff --git a/node_modules/rxjs/add/operator/zip.d.ts b/node_modules/rxjs/add/operator/zip.d.ts new file mode 100644 index 00000000..414202af --- /dev/null +++ b/node_modules/rxjs/add/operator/zip.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/zip'; diff --git a/node_modules/rxjs/add/operator/zip.js b/node_modules/rxjs/add/operator/zip.js new file mode 100644 index 00000000..368d4fa6 --- /dev/null +++ b/node_modules/rxjs/add/operator/zip.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/zip"); +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/zip.js.map b/node_modules/rxjs/add/operator/zip.js.map new file mode 100644 index 00000000..c2472f9a --- /dev/null +++ b/node_modules/rxjs/add/operator/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../src/add/operator/zip.ts"],"names":[],"mappings":";;AAAA,wCAAsC"} diff --git a/node_modules/rxjs/add/operator/zipAll.d.ts b/node_modules/rxjs/add/operator/zipAll.d.ts new file mode 100644 index 00000000..cf8877f0 --- /dev/null +++ b/node_modules/rxjs/add/operator/zipAll.d.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/zipAll'; diff --git a/node_modules/rxjs/add/operator/zipAll.js b/node_modules/rxjs/add/operator/zipAll.js new file mode 100644 index 00000000..70cdb3e4 --- /dev/null +++ b/node_modules/rxjs/add/operator/zipAll.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("rxjs-compat/add/operator/zipAll"); +//# sourceMappingURL=zipAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/add/operator/zipAll.js.map b/node_modules/rxjs/add/operator/zipAll.js.map new file mode 100644 index 00000000..dcd81ab9 --- /dev/null +++ b/node_modules/rxjs/add/operator/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sources":["../../src/add/operator/zipAll.ts"],"names":[],"mappings":";;AAAA,2CAAyC"} diff --git a/node_modules/rxjs/ajax/index.d.ts b/node_modules/rxjs/ajax/index.d.ts new file mode 100644 index 00000000..73cb0cc8 --- /dev/null +++ b/node_modules/rxjs/ajax/index.d.ts @@ -0,0 +1,2 @@ +export { ajax } from '../internal/observable/dom/ajax'; +export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; diff --git a/node_modules/rxjs/ajax/index.js b/node_modules/rxjs/ajax/index.js new file mode 100644 index 00000000..93c809fa --- /dev/null +++ b/node_modules/rxjs/ajax/index.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ajax_1 = require("../internal/observable/dom/ajax"); +exports.ajax = ajax_1.ajax; +var AjaxObservable_1 = require("../internal/observable/dom/AjaxObservable"); +exports.AjaxResponse = AjaxObservable_1.AjaxResponse; +exports.AjaxError = AjaxObservable_1.AjaxError; +exports.AjaxTimeoutError = AjaxObservable_1.AjaxTimeoutError; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/ajax/index.js.map b/node_modules/rxjs/ajax/index.js.map new file mode 100644 index 00000000..e3636d16 --- /dev/null +++ b/node_modules/rxjs/ajax/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/ajax/index.ts"],"names":[],"mappings":";;AAAA,wDAAuD;AAA9C,sBAAA,IAAI,CAAA;AACb,4EAAmH;AAA7F,wCAAA,YAAY,CAAA;AAAE,qCAAA,SAAS,CAAA;AAAE,4CAAA,gBAAgB,CAAA"} diff --git a/node_modules/rxjs/ajax/package.json b/node_modules/rxjs/ajax/package.json new file mode 100644 index 00000000..898cd05d --- /dev/null +++ b/node_modules/rxjs/ajax/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/ajax", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/ajax/index.js", + "es2015": "../_esm2015/ajax/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/bundles/rxjs.umd.js b/node_modules/rxjs/bundles/rxjs.umd.js new file mode 100644 index 00000000..0aed7542 --- /dev/null +++ b/node_modules/rxjs/bundles/rxjs.umd.js @@ -0,0 +1,9420 @@ +/** + @license + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + 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. + + + **/ +/** + @license + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + 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. + + + **/ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define('rxjs', ['exports'], factory) : + (factory((global.rxjs = {}))); +}(this, (function (exports) { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + 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 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + /* global Reflect, Promise */ + + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + + function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + + var __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + + function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) + t[p[i]] = s[p[i]]; + return t; + } + + function isFunction(x) { + return typeof x === 'function'; + } + + var _enable_super_gross_mode_that_will_cause_bad_things = false; + var config = { + Promise: undefined, + set useDeprecatedSynchronousErrorHandling(value) { + if (value) { + var error = new Error(); + console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); + } + else if (_enable_super_gross_mode_that_will_cause_bad_things) { + console.log('RxJS: Back to a better error behavior. Thank you. <3'); + } + _enable_super_gross_mode_that_will_cause_bad_things = value; + }, + get useDeprecatedSynchronousErrorHandling() { + return _enable_super_gross_mode_that_will_cause_bad_things; + }, + }; + + function hostReportError(err) { + setTimeout(function () { throw err; }, 0); + } + + var empty = { + closed: true, + next: function (value) { }, + error: function (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError(err); + } + }, + complete: function () { } + }; + + var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })(); + + function isObject(x) { + return x !== null && typeof x === 'object'; + } + + var UnsubscriptionErrorImpl = (function () { + function UnsubscriptionErrorImpl(errors) { + Error.call(this); + this.message = errors ? + errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : ''; + this.name = 'UnsubscriptionError'; + this.errors = errors; + return this; + } + UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype); + return UnsubscriptionErrorImpl; + })(); + var UnsubscriptionError = UnsubscriptionErrorImpl; + + var Subscription = (function () { + function Subscription(unsubscribe) { + this.closed = false; + this._parentOrParents = null; + this._subscriptions = null; + if (unsubscribe) { + this._ctorUnsubscribe = true; + this._unsubscribe = unsubscribe; + } + } + Subscription.prototype.unsubscribe = function () { + var errors; + if (this.closed) { + return; + } + var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; + this.closed = true; + this._parentOrParents = null; + this._subscriptions = null; + if (_parentOrParents instanceof Subscription) { + _parentOrParents.remove(this); + } + else if (_parentOrParents !== null) { + for (var index = 0; index < _parentOrParents.length; ++index) { + var parent_1 = _parentOrParents[index]; + parent_1.remove(this); + } + } + if (isFunction(_unsubscribe)) { + if (_ctorUnsubscribe) { + this._unsubscribe = undefined; + } + try { + _unsubscribe.call(this); + } + catch (e) { + errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; + } + } + if (isArray(_subscriptions)) { + var index = -1; + var len = _subscriptions.length; + while (++index < len) { + var sub = _subscriptions[index]; + if (isObject(sub)) { + try { + sub.unsubscribe(); + } + catch (e) { + errors = errors || []; + if (e instanceof UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); + } + else { + errors.push(e); + } + } + } + } + } + if (errors) { + throw new UnsubscriptionError(errors); + } + }; + Subscription.prototype.add = function (teardown) { + var subscription = teardown; + if (!teardown) { + return Subscription.EMPTY; + } + switch (typeof teardown) { + case 'function': + subscription = new Subscription(teardown); + case 'object': + if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { + return subscription; + } + else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } + else if (!(subscription instanceof Subscription)) { + var tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: { + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + } + var _parentOrParents = subscription._parentOrParents; + if (_parentOrParents === null) { + subscription._parentOrParents = this; + } + else if (_parentOrParents instanceof Subscription) { + if (_parentOrParents === this) { + return subscription; + } + subscription._parentOrParents = [_parentOrParents, this]; + } + else if (_parentOrParents.indexOf(this) === -1) { + _parentOrParents.push(this); + } + else { + return subscription; + } + var subscriptions = this._subscriptions; + if (subscriptions === null) { + this._subscriptions = [subscription]; + } + else { + subscriptions.push(subscription); + } + return subscription; + }; + Subscription.prototype.remove = function (subscription) { + var subscriptions = this._subscriptions; + if (subscriptions) { + var subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + }; + Subscription.EMPTY = (function (empty) { + empty.closed = true; + return empty; + }(new Subscription())); + return Subscription; + }()); + function flattenUnsubscriptionErrors(errors) { + return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []); + } + + var rxSubscriber = (function () { + return typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random(); + })(); + + var Subscriber = (function (_super) { + __extends(Subscriber, _super); + function Subscriber(destinationOrNext, error, complete) { + var _this = _super.call(this) || this; + _this.syncErrorValue = null; + _this.syncErrorThrown = false; + _this.syncErrorThrowable = false; + _this.isStopped = false; + switch (arguments.length) { + case 0: + _this.destination = empty; + break; + case 1: + if (!destinationOrNext) { + _this.destination = empty; + break; + } + if (typeof destinationOrNext === 'object') { + if (destinationOrNext instanceof Subscriber) { + _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + _this.destination = destinationOrNext; + destinationOrNext.add(_this); + } + else { + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext); + } + break; + } + default: + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete); + break; + } + return _this; + } + Subscriber.prototype[rxSubscriber] = function () { return this; }; + Subscriber.create = function (next, error, complete) { + var subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + }; + Subscriber.prototype.next = function (value) { + if (!this.isStopped) { + this._next(value); + } + }; + Subscriber.prototype.error = function (err) { + if (!this.isStopped) { + this.isStopped = true; + this._error(err); + } + }; + Subscriber.prototype.complete = function () { + if (!this.isStopped) { + this.isStopped = true; + this._complete(); + } + }; + Subscriber.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + }; + Subscriber.prototype._next = function (value) { + this.destination.next(value); + }; + Subscriber.prototype._error = function (err) { + this.destination.error(err); + this.unsubscribe(); + }; + Subscriber.prototype._complete = function () { + this.destination.complete(); + this.unsubscribe(); + }; + Subscriber.prototype._unsubscribeAndRecycle = function () { + var _parentOrParents = this._parentOrParents; + this._parentOrParents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parentOrParents = _parentOrParents; + return this; + }; + return Subscriber; + }(Subscription)); + var SafeSubscriber = (function (_super) { + __extends(SafeSubscriber, _super); + function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { + var _this = _super.call(this) || this; + _this._parentSubscriber = _parentSubscriber; + var next; + var context = _this; + if (isFunction(observerOrNext)) { + next = observerOrNext; + } + else if (observerOrNext) { + next = observerOrNext.next; + error = observerOrNext.error; + complete = observerOrNext.complete; + if (observerOrNext !== empty) { + context = Object.create(observerOrNext); + if (isFunction(context.unsubscribe)) { + _this.add(context.unsubscribe.bind(context)); + } + context.unsubscribe = _this.unsubscribe.bind(_this); + } + } + _this._context = context; + _this._next = next; + _this._error = error; + _this._complete = complete; + return _this; + } + SafeSubscriber.prototype.next = function (value) { + if (!this.isStopped && this._next) { + var _parentSubscriber = this._parentSubscriber; + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._next, value); + } + else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling; + if (this._error) { + if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } + else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + if (useDeprecatedSynchronousErrorHandling) { + throw err; + } + hostReportError(err); + } + else { + if (useDeprecatedSynchronousErrorHandling) { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + } + else { + hostReportError(err); + } + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.complete = function () { + var _this = this; + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + if (this._complete) { + var wrappedComplete = function () { return _this._complete.call(_this._context); }; + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(wrappedComplete); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, wrappedComplete); + this.unsubscribe(); + } + } + else { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) { + try { + fn.call(this._context, value); + } + catch (err) { + this.unsubscribe(); + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError(err); + } + } + }; + SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { + if (!config.useDeprecatedSynchronousErrorHandling) { + throw new Error('bad call'); + } + try { + fn.call(this._context, value); + } + catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + else { + hostReportError(err); + return true; + } + } + return false; + }; + SafeSubscriber.prototype._unsubscribe = function () { + var _parentSubscriber = this._parentSubscriber; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + }; + return SafeSubscriber; + }(Subscriber)); + + function canReportError(observer) { + while (observer) { + var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; + if (closed_1 || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; + } + + function toSubscriber(nextOrObserver, error, complete) { + if (nextOrObserver) { + if (nextOrObserver instanceof Subscriber) { + return nextOrObserver; + } + if (nextOrObserver[rxSubscriber]) { + return nextOrObserver[rxSubscriber](); + } + } + if (!nextOrObserver && !error && !complete) { + return new Subscriber(empty); + } + return new Subscriber(nextOrObserver, error, complete); + } + + var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })(); + + function identity(x) { + return x; + } + + function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; + } + return pipeFromArray(fns); + } + function pipeFromArray(fns) { + if (fns.length === 0) { + return identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce(function (prev, fn) { return fn(prev); }, input); + }; + } + + var Observable = (function () { + function Observable(subscribe) { + this._isScalar = false; + if (subscribe) { + this._subscribe = subscribe; + } + } + Observable.prototype.lift = function (operator) { + var observable$$1 = new Observable(); + observable$$1.source = this; + observable$$1.operator = operator; + return observable$$1; + }; + Observable.prototype.subscribe = function (observerOrNext, error, complete) { + var operator = this.operator; + var sink = toSubscriber(observerOrNext, error, complete); + if (operator) { + sink.add(operator.call(sink, this.source)); + } + else { + sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink)); + } + if (config.useDeprecatedSynchronousErrorHandling) { + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } + } + } + return sink; + }; + Observable.prototype._trySubscribe = function (sink) { + try { + return this._subscribe(sink); + } + catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + } + if (canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } + } + }; + Observable.prototype.forEach = function (next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var subscription; + subscription = _this.subscribe(function (value) { + try { + next(value); + } + catch (err) { + reject(err); + if (subscription) { + subscription.unsubscribe(); + } + } + }, reject, resolve); + }); + }; + Observable.prototype._subscribe = function (subscriber) { + var source = this.source; + return source && source.subscribe(subscriber); + }; + Observable.prototype[observable] = function () { + return this; + }; + Observable.prototype.pipe = function () { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + if (operations.length === 0) { + return this; + } + return pipeFromArray(operations)(this); + }; + Observable.prototype.toPromise = function (promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var value; + _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); + }); + }; + Observable.create = function (subscribe) { + return new Observable(subscribe); + }; + return Observable; + }()); + function getPromiseCtor(promiseCtor) { + if (!promiseCtor) { + promiseCtor = config.Promise || Promise; + } + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + return promiseCtor; + } + + var ObjectUnsubscribedErrorImpl = (function () { + function ObjectUnsubscribedErrorImpl() { + Error.call(this); + this.message = 'object unsubscribed'; + this.name = 'ObjectUnsubscribedError'; + return this; + } + ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype); + return ObjectUnsubscribedErrorImpl; + })(); + var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; + + var SubjectSubscription = (function (_super) { + __extends(SubjectSubscription, _super); + function SubjectSubscription(subject, subscriber) { + var _this = _super.call(this) || this; + _this.subject = subject; + _this.subscriber = subscriber; + _this.closed = false; + return _this; + } + SubjectSubscription.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.closed = true; + var subject = this.subject; + var observers = subject.observers; + this.subject = null; + if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { + return; + } + var subscriberIndex = observers.indexOf(this.subscriber); + if (subscriberIndex !== -1) { + observers.splice(subscriberIndex, 1); + } + }; + return SubjectSubscription; + }(Subscription)); + + var SubjectSubscriber = (function (_super) { + __extends(SubjectSubscriber, _super); + function SubjectSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + return _this; + } + return SubjectSubscriber; + }(Subscriber)); + var Subject = (function (_super) { + __extends(Subject, _super); + function Subject() { + var _this = _super.call(this) || this; + _this.observers = []; + _this.closed = false; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject.prototype[rxSubscriber] = function () { + return new SubjectSubscriber(this); + }; + Subject.prototype.lift = function (operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject.prototype.next = function (value) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + if (!this.isStopped) { + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].next(value); + } + } + }; + Subject.prototype.error = function (err) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.hasError = true; + this.thrownError = err; + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].error(err); + } + this.observers.length = 0; + }; + Subject.prototype.complete = function () { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].complete(); + } + this.observers.length = 0; + }; + Subject.prototype.unsubscribe = function () { + this.isStopped = true; + this.closed = true; + this.observers = null; + }; + Subject.prototype._trySubscribe = function (subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else { + return _super.prototype._trySubscribe.call(this, subscriber); + } + }; + Subject.prototype._subscribe = function (subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } + else if (this.isStopped) { + subscriber.complete(); + return Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + return new SubjectSubscription(this, subscriber); + } + }; + Subject.prototype.asObservable = function () { + var observable = new Observable(); + observable.source = this; + return observable; + }; + Subject.create = function (destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject; + }(Observable)); + var AnonymousSubject = (function (_super) { + __extends(AnonymousSubject, _super); + function AnonymousSubject(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject.prototype.next = function (value) { + var destination = this.destination; + if (destination && destination.next) { + destination.next(value); + } + }; + AnonymousSubject.prototype.error = function (err) { + var destination = this.destination; + if (destination && destination.error) { + this.destination.error(err); + } + }; + AnonymousSubject.prototype.complete = function () { + var destination = this.destination; + if (destination && destination.complete) { + this.destination.complete(); + } + }; + AnonymousSubject.prototype._subscribe = function (subscriber) { + var source = this.source; + if (source) { + return this.source.subscribe(subscriber); + } + else { + return Subscription.EMPTY; + } + }; + return AnonymousSubject; + }(Subject)); + + function refCount() { + return function refCountOperatorFunction(source) { + return source.lift(new RefCountOperator(source)); + }; + } + var RefCountOperator = (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; + } + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + }; + return RefCountOperator; + }()); + var RefCountSubscriber = (function (_super) { + __extends(RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; + }(Subscriber)); + + var ConnectableObservable = (function (_super) { + __extends(ConnectableObservable, _super); + function ConnectableObservable(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._refCount = 0; + _this._isComplete = false; + return _this; + } + ConnectableObservable.prototype._subscribe = function (subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable.prototype.getSubject = function () { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable.prototype.connect = function () { + var connection = this._connection; + if (!connection) { + this._isComplete = false; + connection = this._connection = new Subscription(); + connection.add(this.source + .subscribe(new ConnectableSubscriber(this.getSubject(), this))); + if (connection.closed) { + this._connection = null; + connection = Subscription.EMPTY; + } + } + return connection; + }; + ConnectableObservable.prototype.refCount = function () { + return refCount()(this); + }; + return ConnectableObservable; + }(Observable)); + var connectableObservableDescriptor = (function () { + var connectableProto = ConnectableObservable.prototype; + return { + operator: { value: null }, + _refCount: { value: 0, writable: true }, + _subject: { value: null, writable: true }, + _connection: { value: null, writable: true }, + _subscribe: { value: connectableProto._subscribe }, + _isComplete: { value: connectableProto._isComplete, writable: true }, + getSubject: { value: connectableProto.getSubject }, + connect: { value: connectableProto.connect }, + refCount: { value: connectableProto.refCount } + }; + })(); + var ConnectableSubscriber = (function (_super) { + __extends(ConnectableSubscriber, _super); + function ConnectableSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + ConnectableSubscriber.prototype._error = function (err) { + this._unsubscribe(); + _super.prototype._error.call(this, err); + }; + ConnectableSubscriber.prototype._complete = function () { + this.connectable._isComplete = true; + this._unsubscribe(); + _super.prototype._complete.call(this); + }; + ConnectableSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (connectable) { + this.connectable = null; + var connection = connectable._connection; + connectable._refCount = 0; + connectable._subject = null; + connectable._connection = null; + if (connection) { + connection.unsubscribe(); + } + } + }; + return ConnectableSubscriber; + }(SubjectSubscriber)); + var RefCountSubscriber$1 = (function (_super) { + __extends(RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount$$1 = connectable._refCount; + if (refCount$$1 <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount$$1 - 1; + if (refCount$$1 > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; + }(Subscriber)); + + function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { + return function (source) { + return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); + }; + } + var GroupByOperator = (function () { + function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) { + this.keySelector = keySelector; + this.elementSelector = elementSelector; + this.durationSelector = durationSelector; + this.subjectSelector = subjectSelector; + } + GroupByOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); + }; + return GroupByOperator; + }()); + var GroupBySubscriber = (function (_super) { + __extends(GroupBySubscriber, _super); + function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.elementSelector = elementSelector; + _this.durationSelector = durationSelector; + _this.subjectSelector = subjectSelector; + _this.groups = null; + _this.attemptedToUnsubscribe = false; + _this.count = 0; + return _this; + } + GroupBySubscriber.prototype._next = function (value) { + var key; + try { + key = this.keySelector(value); + } + catch (err) { + this.error(err); + return; + } + this._group(value, key); + }; + GroupBySubscriber.prototype._group = function (value, key) { + var groups = this.groups; + if (!groups) { + groups = this.groups = new Map(); + } + var group = groups.get(key); + var element; + if (this.elementSelector) { + try { + element = this.elementSelector(value); + } + catch (err) { + this.error(err); + } + } + else { + element = value; + } + if (!group) { + group = (this.subjectSelector ? this.subjectSelector() : new Subject()); + groups.set(key, group); + var groupedObservable = new GroupedObservable(key, group, this); + this.destination.next(groupedObservable); + if (this.durationSelector) { + var duration = void 0; + try { + duration = this.durationSelector(new GroupedObservable(key, group)); + } + catch (err) { + this.error(err); + return; + } + this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); + } + } + if (!group.closed) { + group.next(element); + } + }; + GroupBySubscriber.prototype._error = function (err) { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.error(err); + }); + groups.clear(); + } + this.destination.error(err); + }; + GroupBySubscriber.prototype._complete = function () { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.complete(); + }); + groups.clear(); + } + this.destination.complete(); + }; + GroupBySubscriber.prototype.removeGroup = function (key) { + this.groups.delete(key); + }; + GroupBySubscriber.prototype.unsubscribe = function () { + if (!this.closed) { + this.attemptedToUnsubscribe = true; + if (this.count === 0) { + _super.prototype.unsubscribe.call(this); + } + } + }; + return GroupBySubscriber; + }(Subscriber)); + var GroupDurationSubscriber = (function (_super) { + __extends(GroupDurationSubscriber, _super); + function GroupDurationSubscriber(key, group, parent) { + var _this = _super.call(this, group) || this; + _this.key = key; + _this.group = group; + _this.parent = parent; + return _this; + } + GroupDurationSubscriber.prototype._next = function (value) { + this.complete(); + }; + GroupDurationSubscriber.prototype._unsubscribe = function () { + var _a = this, parent = _a.parent, key = _a.key; + this.key = this.parent = null; + if (parent) { + parent.removeGroup(key); + } + }; + return GroupDurationSubscriber; + }(Subscriber)); + var GroupedObservable = (function (_super) { + __extends(GroupedObservable, _super); + function GroupedObservable(key, groupSubject, refCountSubscription) { + var _this = _super.call(this) || this; + _this.key = key; + _this.groupSubject = groupSubject; + _this.refCountSubscription = refCountSubscription; + return _this; + } + GroupedObservable.prototype._subscribe = function (subscriber) { + var subscription = new Subscription(); + var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject; + if (refCountSubscription && !refCountSubscription.closed) { + subscription.add(new InnerRefCountSubscription(refCountSubscription)); + } + subscription.add(groupSubject.subscribe(subscriber)); + return subscription; + }; + return GroupedObservable; + }(Observable)); + var InnerRefCountSubscription = (function (_super) { + __extends(InnerRefCountSubscription, _super); + function InnerRefCountSubscription(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + parent.count++; + return _this; + } + InnerRefCountSubscription.prototype.unsubscribe = function () { + var parent = this.parent; + if (!parent.closed && !this.closed) { + _super.prototype.unsubscribe.call(this); + parent.count -= 1; + if (parent.count === 0 && parent.attemptedToUnsubscribe) { + parent.unsubscribe(); + } + } + }; + return InnerRefCountSubscription; + }(Subscription)); + + var BehaviorSubject = (function (_super) { + __extends(BehaviorSubject, _super); + function BehaviorSubject(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject.prototype, "value", { + get: function () { + return this.getValue(); + }, + enumerable: true, + configurable: true + }); + BehaviorSubject.prototype._subscribe = function (subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + if (subscription && !subscription.closed) { + subscriber.next(this._value); + } + return subscription; + }; + BehaviorSubject.prototype.getValue = function () { + if (this.hasError) { + throw this.thrownError; + } + else if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else { + return this._value; + } + }; + BehaviorSubject.prototype.next = function (value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject; + }(Subject)); + + var Action = (function (_super) { + __extends(Action, _super); + function Action(scheduler, work) { + return _super.call(this) || this; + } + Action.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + return this; + }; + return Action; + }(Subscription)); + + var AsyncAction = (function (_super) { + __extends(AsyncAction, _super); + function AsyncAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; + return _this; + } + AsyncAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (this.closed) { + return this; + } + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; + }; + AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + return setInterval(scheduler.flush.bind(scheduler, this), delay); + }; + AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && this.delay === delay && this.pending === false) { + return id; + } + clearInterval(id); + return undefined; + }; + AsyncAction.prototype.execute = function (state, delay) { + if (this.closed) { + return new Error('executing a cancelled action'); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } + else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + }; + AsyncAction.prototype._execute = function (state, delay) { + var errored = false; + var errorValue = undefined; + try { + this.work(state); + } + catch (e) { + errored = true; + errorValue = !!e && e || new Error(e); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + }; + AsyncAction.prototype._unsubscribe = function () { + var id = this.id; + var scheduler = this.scheduler; + var actions = scheduler.actions; + var index = actions.indexOf(this); + this.work = null; + this.state = null; + this.pending = false; + this.scheduler = null; + if (index !== -1) { + actions.splice(index, 1); + } + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + }; + return AsyncAction; + }(Action)); + + var QueueAction = (function (_super) { + __extends(QueueAction, _super); + function QueueAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + QueueAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction.prototype.execute = function (state, delay) { + return (delay > 0 || this.closed) ? + _super.prototype.execute.call(this, state, delay) : + this._execute(state, delay); + }; + QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + return scheduler.flush(this); + }; + return QueueAction; + }(AsyncAction)); + + var Scheduler = (function () { + function Scheduler(SchedulerAction, now) { + if (now === void 0) { now = Scheduler.now; } + this.SchedulerAction = SchedulerAction; + this.now = now; + } + Scheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { delay = 0; } + return new this.SchedulerAction(this, work).schedule(state, delay); + }; + Scheduler.now = function () { return Date.now(); }; + return Scheduler; + }()); + + var AsyncScheduler = (function (_super) { + __extends(AsyncScheduler, _super); + function AsyncScheduler(SchedulerAction, now) { + if (now === void 0) { now = Scheduler.now; } + var _this = _super.call(this, SchedulerAction, function () { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { + return AsyncScheduler.delegate.now(); + } + else { + return now(); + } + }) || this; + _this.actions = []; + _this.active = false; + _this.scheduled = undefined; + return _this; + } + AsyncScheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { delay = 0; } + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.schedule(work, delay, state); + } + else { + return _super.prototype.schedule.call(this, work, delay, state); + } + }; + AsyncScheduler.prototype.flush = function (action) { + var actions = this.actions; + if (this.active) { + actions.push(action); + return; + } + var error; + this.active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this.active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsyncScheduler; + }(Scheduler)); + + var QueueScheduler = (function (_super) { + __extends(QueueScheduler, _super); + function QueueScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + return QueueScheduler; + }(AsyncScheduler)); + + var queueScheduler = new QueueScheduler(QueueAction); + var queue = queueScheduler; + + var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); }); + function empty$1(scheduler) { + return scheduler ? emptyScheduled(scheduler) : EMPTY; + } + function emptyScheduled(scheduler) { + return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); + } + + function isScheduler(value) { + return value && typeof value.schedule === 'function'; + } + + var subscribeToArray = function (array) { return function (subscriber) { + for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); + }; }; + + function scheduleArray(input, scheduler) { + return new Observable(function (subscriber) { + var sub = new Subscription(); + var i = 0; + sub.add(scheduler.schedule(function () { + if (i === input.length) { + subscriber.complete(); + return; + } + subscriber.next(input[i++]); + if (!subscriber.closed) { + sub.add(this.schedule()); + } + })); + return sub; + }); + } + + function fromArray(input, scheduler) { + if (!scheduler) { + return new Observable(subscribeToArray(input)); + } + else { + return scheduleArray(input, scheduler); + } + } + + function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args[args.length - 1]; + if (isScheduler(scheduler)) { + args.pop(); + return scheduleArray(args, scheduler); + } + else { + return fromArray(args); + } + } + + function throwError(error, scheduler) { + if (!scheduler) { + return new Observable(function (subscriber) { return subscriber.error(error); }); + } + else { + return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); + } + } + function dispatch(_a) { + var error = _a.error, subscriber = _a.subscriber; + subscriber.error(error); + } + + (function (NotificationKind) { + NotificationKind["NEXT"] = "N"; + NotificationKind["ERROR"] = "E"; + NotificationKind["COMPLETE"] = "C"; + })(exports.NotificationKind || (exports.NotificationKind = {})); + var Notification = (function () { + function Notification(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + Notification.prototype.observe = function (observer) { + switch (this.kind) { + case 'N': + return observer.next && observer.next(this.value); + case 'E': + return observer.error && observer.error(this.error); + case 'C': + return observer.complete && observer.complete(); + } + }; + Notification.prototype.do = function (next, error, complete) { + var kind = this.kind; + switch (kind) { + case 'N': + return next && next(this.value); + case 'E': + return error && error(this.error); + case 'C': + return complete && complete(); + } + }; + Notification.prototype.accept = function (nextOrObserver, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + }; + Notification.prototype.toObservable = function () { + var kind = this.kind; + switch (kind) { + case 'N': + return of(this.value); + case 'E': + return throwError(this.error); + case 'C': + return empty$1(); + } + throw new Error('unexpected notification kind value'); + }; + Notification.createNext = function (value) { + if (typeof value !== 'undefined') { + return new Notification('N', value); + } + return Notification.undefinedValueNotification; + }; + Notification.createError = function (err) { + return new Notification('E', undefined, err); + }; + Notification.createComplete = function () { + return Notification.completeNotification; + }; + Notification.completeNotification = new Notification('C'); + Notification.undefinedValueNotification = new Notification('N', undefined); + return Notification; + }()); + + function observeOn(scheduler, delay) { + if (delay === void 0) { delay = 0; } + return function observeOnOperatorFunction(source) { + return source.lift(new ObserveOnOperator(scheduler, delay)); + }; + } + var ObserveOnOperator = (function () { + function ObserveOnOperator(scheduler, delay) { + if (delay === void 0) { delay = 0; } + this.scheduler = scheduler; + this.delay = delay; + } + ObserveOnOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + }; + return ObserveOnOperator; + }()); + var ObserveOnSubscriber = (function (_super) { + __extends(ObserveOnSubscriber, _super); + function ObserveOnSubscriber(destination, scheduler, delay) { + if (delay === void 0) { delay = 0; } + var _this = _super.call(this, destination) || this; + _this.scheduler = scheduler; + _this.delay = delay; + return _this; + } + ObserveOnSubscriber.dispatch = function (arg) { + var notification = arg.notification, destination = arg.destination; + notification.observe(destination); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { + var destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + }; + ObserveOnSubscriber.prototype._next = function (value) { + this.scheduleMessage(Notification.createNext(value)); + }; + ObserveOnSubscriber.prototype._error = function (err) { + this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype._complete = function () { + this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); + }; + return ObserveOnSubscriber; + }(Subscriber)); + var ObserveOnMessage = (function () { + function ObserveOnMessage(notification, destination) { + this.notification = notification; + this.destination = destination; + } + return ObserveOnMessage; + }()); + + var ReplaySubject = (function (_super) { + __extends(ReplaySubject, _super); + function ReplaySubject(bufferSize, windowTime, scheduler) { + if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; } + if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; } + var _this = _super.call(this) || this; + _this.scheduler = scheduler; + _this._events = []; + _this._infiniteTimeWindow = false; + _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + _this._windowTime = windowTime < 1 ? 1 : windowTime; + if (windowTime === Number.POSITIVE_INFINITY) { + _this._infiniteTimeWindow = true; + _this.next = _this.nextInfiniteTimeWindow; + } + else { + _this.next = _this.nextTimeWindow; + } + return _this; + } + ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { + if (!this.isStopped) { + var _events = this._events; + _events.push(value); + if (_events.length > this._bufferSize) { + _events.shift(); + } + } + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype.nextTimeWindow = function (value) { + if (!this.isStopped) { + this._events.push(new ReplayEvent(this._getNow(), value)); + this._trimBufferThenGetEvents(); + } + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype._subscribe = function (subscriber) { + var _infiniteTimeWindow = this._infiniteTimeWindow; + var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); + var scheduler = this.scheduler; + var len = _events.length; + var subscription; + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + else if (this.isStopped || this.hasError) { + subscription = Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + subscription = new SubjectSubscription(this, subscriber); + } + if (scheduler) { + subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler)); + } + if (_infiniteTimeWindow) { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i]); + } + } + else { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i].value); + } + } + if (this.hasError) { + subscriber.error(this.thrownError); + } + else if (this.isStopped) { + subscriber.complete(); + } + return subscription; + }; + ReplaySubject.prototype._getNow = function () { + return (this.scheduler || queue).now(); + }; + ReplaySubject.prototype._trimBufferThenGetEvents = function () { + var now = this._getNow(); + var _bufferSize = this._bufferSize; + var _windowTime = this._windowTime; + var _events = this._events; + var eventsCount = _events.length; + var spliceCount = 0; + while (spliceCount < eventsCount) { + if ((now - _events[spliceCount].time) < _windowTime) { + break; + } + spliceCount++; + } + if (eventsCount > _bufferSize) { + spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); + } + if (spliceCount > 0) { + _events.splice(0, spliceCount); + } + return _events; + }; + return ReplaySubject; + }(Subject)); + var ReplayEvent = (function () { + function ReplayEvent(time, value) { + this.time = time; + this.value = value; + } + return ReplayEvent; + }()); + + var AsyncSubject = (function (_super) { + __extends(AsyncSubject, _super); + function AsyncSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.value = null; + _this.hasNext = false; + _this.hasCompleted = false; + return _this; + } + AsyncSubject.prototype._subscribe = function (subscriber) { + if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } + else if (this.hasCompleted && this.hasNext) { + subscriber.next(this.value); + subscriber.complete(); + return Subscription.EMPTY; + } + return _super.prototype._subscribe.call(this, subscriber); + }; + AsyncSubject.prototype.next = function (value) { + if (!this.hasCompleted) { + this.value = value; + this.hasNext = true; + } + }; + AsyncSubject.prototype.error = function (error) { + if (!this.hasCompleted) { + _super.prototype.error.call(this, error); + } + }; + AsyncSubject.prototype.complete = function () { + this.hasCompleted = true; + if (this.hasNext) { + _super.prototype.next.call(this, this.value); + } + _super.prototype.complete.call(this); + }; + return AsyncSubject; + }(Subject)); + + var nextHandle = 1; + var RESOLVED = (function () { return Promise.resolve(); })(); + var activeHandles = {}; + function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; + } + var Immediate = { + setImmediate: function (cb) { + var handle = nextHandle++; + activeHandles[handle] = true; + RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); }); + return handle; + }, + clearImmediate: function (handle) { + findAndClearHandle(handle); + }, + }; + + var AsapAction = (function (_super) { + __extends(AsapAction, _super); + function AsapAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null))); + }; + AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + Immediate.clearImmediate(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AsapAction; + }(AsyncAction)); + + var AsapScheduler = (function (_super) { + __extends(AsapScheduler, _super); + function AsapScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AsapScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler; + }(AsyncScheduler)); + + var asapScheduler = new AsapScheduler(AsapAction); + var asap = asapScheduler; + + var asyncScheduler = new AsyncScheduler(AsyncAction); + var async = asyncScheduler; + + var AnimationFrameAction = (function (_super) { + __extends(AnimationFrameAction, _super); + function AnimationFrameAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); })); + }; + AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AnimationFrameAction; + }(AsyncAction)); + + var AnimationFrameScheduler = (function (_super) { + __extends(AnimationFrameScheduler, _super); + function AnimationFrameScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AnimationFrameScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler; + }(AsyncScheduler)); + + var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction); + var animationFrame = animationFrameScheduler; + + var VirtualTimeScheduler = (function (_super) { + __extends(VirtualTimeScheduler, _super); + function VirtualTimeScheduler(SchedulerAction, maxFrames) { + if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; } + if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; } + var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + VirtualTimeScheduler.prototype.flush = function () { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error, action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + VirtualTimeScheduler.frameTimeFactor = 10; + return VirtualTimeScheduler; + }(AsyncScheduler)); + var VirtualAction = (function (_super) { + __extends(VirtualAction, _super); + function VirtualAction(scheduler, work, index) { + if (index === void 0) { index = scheduler.index += 1; } + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; + return _this; + } + VirtualAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + }; + VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction.sortActions); + return true; + }; + VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + return undefined; + }; + VirtualAction.prototype._execute = function (state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } + }; + VirtualAction.sortActions = function (a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } + else if (a.index > b.index) { + return 1; + } + else { + return -1; + } + } + else if (a.delay > b.delay) { + return 1; + } + else { + return -1; + } + }; + return VirtualAction; + }(AsyncAction)); + + function noop() { } + + function isObservable(obj) { + return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); + } + + var ArgumentOutOfRangeErrorImpl = (function () { + function ArgumentOutOfRangeErrorImpl() { + Error.call(this); + this.message = 'argument out of range'; + this.name = 'ArgumentOutOfRangeError'; + return this; + } + ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype); + return ArgumentOutOfRangeErrorImpl; + })(); + var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl; + + var EmptyErrorImpl = (function () { + function EmptyErrorImpl() { + Error.call(this); + this.message = 'no elements in sequence'; + this.name = 'EmptyError'; + return this; + } + EmptyErrorImpl.prototype = Object.create(Error.prototype); + return EmptyErrorImpl; + })(); + var EmptyError = EmptyErrorImpl; + + var TimeoutErrorImpl = (function () { + function TimeoutErrorImpl() { + Error.call(this); + this.message = 'Timeout has occurred'; + this.name = 'TimeoutError'; + return this; + } + TimeoutErrorImpl.prototype = Object.create(Error.prototype); + return TimeoutErrorImpl; + })(); + var TimeoutError = TimeoutErrorImpl; + + function map(project, thisArg) { + return function mapOperation(source) { + if (typeof project !== 'function') { + throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); + } + return source.lift(new MapOperator(project, thisArg)); + }; + } + var MapOperator = (function () { + function MapOperator(project, thisArg) { + this.project = project; + this.thisArg = thisArg; + } + MapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); + }; + return MapOperator; + }()); + var MapSubscriber = (function (_super) { + __extends(MapSubscriber, _super); + function MapSubscriber(destination, project, thisArg) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.count = 0; + _this.thisArg = thisArg || _this; + return _this; + } + MapSubscriber.prototype._next = function (value) { + var result; + try { + result = this.project.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return MapSubscriber; + }(Subscriber)); + + function bindCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var context = this; + var subject; + var params = { + context: context, + subject: subject, + callbackFunc: callbackFunc, + scheduler: scheduler, + }; + return new Observable(function (subscriber) { + if (!scheduler) { + if (!subject) { + subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + var state = { + args: args, subscriber: subscriber, params: params, + }; + return scheduler.schedule(dispatch$1, 0, state); + } + }); + }; + } + function dispatch$1(state) { + var _this = this; + var args = state.args, subscriber = state.subscriber, params = state.params; + var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + subject.error(err); + } + } + this.add(subject.subscribe(subscriber)); + } + function dispatchNext(state) { + var value = state.value, subject = state.subject; + subject.next(value); + subject.complete(); + } + + function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var params = { + subject: undefined, + args: args, + callbackFunc: callbackFunc, + scheduler: scheduler, + context: this, + }; + return new Observable(function (subscriber) { + var context = params.context; + var subject = params.subject; + if (!scheduler) { + if (!subject) { + subject = params.subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + subject.error(err); + return; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(dispatch$2, 0, { params: params, subscriber: subscriber, context: context }); + } + }); + }; + } + function dispatch$2(state) { + var _this = this; + var params = state.params, subscriber = state.subscriber, context = state.context; + var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + _this.add(scheduler.schedule(dispatchError$1, 0, { err: err, subject: subject })); + } + else { + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext$1, 0, { value: value, subject: subject })); + } + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + this.add(scheduler.schedule(dispatchError$1, 0, { err: err, subject: subject })); + } + } + this.add(subject.subscribe(subscriber)); + } + function dispatchNext$1(arg) { + var value = arg.value, subject = arg.subject; + subject.next(value); + subject.complete(); + } + function dispatchError$1(arg) { + var err = arg.err, subject = arg.subject; + subject.error(err); + } + + var OuterSubscriber = (function (_super) { + __extends(OuterSubscriber, _super); + function OuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + OuterSubscriber.prototype.notifyError = function (error, innerSub) { + this.destination.error(error); + }; + OuterSubscriber.prototype.notifyComplete = function (innerSub) { + this.destination.complete(); + }; + return OuterSubscriber; + }(Subscriber)); + + var InnerSubscriber = (function (_super) { + __extends(InnerSubscriber, _super); + function InnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + _this.index = 0; + return _this; + } + InnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); + }; + InnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error, this); + this.unsubscribe(); + }; + InnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); + }; + return InnerSubscriber; + }(Subscriber)); + + var subscribeToPromise = function (promise) { return function (subscriber) { + promise.then(function (value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function (err) { return subscriber.error(err); }) + .then(null, hostReportError); + return subscriber; + }; }; + + function getSymbolIterator() { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator'; + } + return Symbol.iterator; + } + var iterator = getSymbolIterator(); + + var subscribeToIterable = function (iterable) { return function (subscriber) { + var iterator$$1 = iterable[iterator](); + do { + var item = void 0; + try { + item = iterator$$1.next(); + } + catch (err) { + subscriber.error(err); + return subscriber; + } + if (item.done) { + subscriber.complete(); + break; + } + subscriber.next(item.value); + if (subscriber.closed) { + break; + } + } while (true); + if (typeof iterator$$1.return === 'function') { + subscriber.add(function () { + if (iterator$$1.return) { + iterator$$1.return(); + } + }); + } + return subscriber; + }; }; + + var subscribeToObservable = function (obj) { return function (subscriber) { + var obs = obj[observable](); + if (typeof obs.subscribe !== 'function') { + throw new TypeError('Provided object does not correctly implement Symbol.observable'); + } + else { + return obs.subscribe(subscriber); + } + }; }; + + var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); + + function isPromise(value) { + return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; + } + + var subscribeTo = function (result) { + if (!!result && typeof result[observable] === 'function') { + return subscribeToObservable(result); + } + else if (isArrayLike(result)) { + return subscribeToArray(result); + } + else if (isPromise(result)) { + return subscribeToPromise(result); + } + else if (!!result && typeof result[iterator] === 'function') { + return subscribeToIterable(result); + } + else { + var value = isObject(result) ? 'an invalid object' : "'" + result + "'"; + var msg = "You provided " + value + " where a stream was expected." + + ' You can provide an Observable, Promise, Array, or Iterable.'; + throw new TypeError(msg); + } + }; + + function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) { + if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); } + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber); + } + + var NONE = {}; + function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = undefined; + var scheduler = undefined; + if (isScheduler(observables[observables.length - 1])) { + scheduler = observables.pop(); + } + if (typeof observables[observables.length - 1] === 'function') { + resultSelector = observables.pop(); + } + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0]; + } + return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); + } + var CombineLatestOperator = (function () { + function CombineLatestOperator(resultSelector) { + this.resultSelector = resultSelector; + } + CombineLatestOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); + }; + return CombineLatestOperator; + }()); + var CombineLatestSubscriber = (function (_super) { + __extends(CombineLatestSubscriber, _super); + function CombineLatestSubscriber(destination, resultSelector) { + var _this = _super.call(this, destination) || this; + _this.resultSelector = resultSelector; + _this.active = 0; + _this.values = []; + _this.observables = []; + return _this; + } + CombineLatestSubscriber.prototype._next = function (observable) { + this.values.push(NONE); + this.observables.push(observable); + }; + CombineLatestSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + this.active = len; + this.toRespond = len; + for (var i = 0; i < len; i++) { + var observable = observables[i]; + this.add(subscribeToResult(this, observable, undefined, i)); + } + } + }; + CombineLatestSubscriber.prototype.notifyComplete = function (unused) { + if ((this.active -= 1) === 0) { + this.destination.complete(); + } + }; + CombineLatestSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + var values = this.values; + var oldVal = values[outerIndex]; + var toRespond = !this.toRespond + ? 0 + : oldVal === NONE ? --this.toRespond : this.toRespond; + values[outerIndex] = innerValue; + if (toRespond === 0) { + if (this.resultSelector) { + this._tryResultSelector(values); + } + else { + this.destination.next(values.slice()); + } + } + }; + CombineLatestSubscriber.prototype._tryResultSelector = function (values) { + var result; + try { + result = this.resultSelector.apply(this, values); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return CombineLatestSubscriber; + }(OuterSubscriber)); + + function scheduleObservable(input, scheduler) { + return new Observable(function (subscriber) { + var sub = new Subscription(); + sub.add(scheduler.schedule(function () { + var observable$$1 = input[observable](); + sub.add(observable$$1.subscribe({ + next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, + error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, + complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, + })); + })); + return sub; + }); + } + + function schedulePromise(input, scheduler) { + return new Observable(function (subscriber) { + var sub = new Subscription(); + sub.add(scheduler.schedule(function () { return input.then(function (value) { + sub.add(scheduler.schedule(function () { + subscriber.next(value); + sub.add(scheduler.schedule(function () { return subscriber.complete(); })); + })); + }, function (err) { + sub.add(scheduler.schedule(function () { return subscriber.error(err); })); + }); })); + return sub; + }); + } + + function scheduleIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + return new Observable(function (subscriber) { + var sub = new Subscription(); + var iterator$$1; + sub.add(function () { + if (iterator$$1 && typeof iterator$$1.return === 'function') { + iterator$$1.return(); + } + }); + sub.add(scheduler.schedule(function () { + iterator$$1 = input[iterator](); + sub.add(scheduler.schedule(function () { + if (subscriber.closed) { + return; + } + var value; + var done; + try { + var result = iterator$$1.next(); + value = result.value; + done = result.done; + } + catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } + else { + subscriber.next(value); + this.schedule(); + } + })); + })); + return sub; + }); + } + + function isInteropObservable(input) { + return input && typeof input[observable] === 'function'; + } + + function isIterable(input) { + return input && typeof input[iterator] === 'function'; + } + + function scheduled(input, scheduler) { + if (input != null) { + if (isInteropObservable(input)) { + return scheduleObservable(input, scheduler); + } + else if (isPromise(input)) { + return schedulePromise(input, scheduler); + } + else if (isArrayLike(input)) { + return scheduleArray(input, scheduler); + } + else if (isIterable(input) || typeof input === 'string') { + return scheduleIterable(input, scheduler); + } + } + throw new TypeError((input !== null && typeof input || input) + ' is not observable'); + } + + function from(input, scheduler) { + if (!scheduler) { + if (input instanceof Observable) { + return input; + } + return new Observable(subscribeTo(input)); + } + else { + return scheduled(input, scheduler); + } + } + + var SimpleInnerSubscriber = (function (_super) { + __extends(SimpleInnerSubscriber, _super); + function SimpleInnerSubscriber(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + return _this; + } + SimpleInnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(value); + }; + SimpleInnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error); + this.unsubscribe(); + }; + SimpleInnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(); + this.unsubscribe(); + }; + return SimpleInnerSubscriber; + }(Subscriber)); + var ComplexInnerSubscriber = (function (_super) { + __extends(ComplexInnerSubscriber, _super); + function ComplexInnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + return _this; + } + ComplexInnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this); + }; + ComplexInnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error); + this.unsubscribe(); + }; + ComplexInnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); + }; + return ComplexInnerSubscriber; + }(Subscriber)); + var SimpleOuterSubscriber = (function (_super) { + __extends(SimpleOuterSubscriber, _super); + function SimpleOuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + SimpleOuterSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + SimpleOuterSubscriber.prototype.notifyComplete = function () { + this.destination.complete(); + }; + return SimpleOuterSubscriber; + }(Subscriber)); + var ComplexOuterSubscriber = (function (_super) { + __extends(ComplexOuterSubscriber, _super); + function ComplexOuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) { + this.destination.next(innerValue); + }; + ComplexOuterSubscriber.prototype.notifyError = function (error) { + this.destination.error(error); + }; + ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) { + this.destination.complete(); + }; + return ComplexOuterSubscriber; + }(Subscriber)); + function innerSubscribe(result, innerSubscriber) { + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber); + } + + function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; + } + else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; + } + var MergeMapOperator = (function () { + function MergeMapOperator(project, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + this.project = project; + this.concurrent = concurrent; + } + MergeMapOperator.prototype.call = function (observer, source) { + return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); + }; + return MergeMapOperator; + }()); + var MergeMapSubscriber = (function (_super) { + __extends(MergeMapSubscriber, _super); + function MergeMapSubscriber(destination, project, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeMapSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + this._tryNext(value); + } + else { + this.buffer.push(value); + } + }; + MergeMapSubscriber.prototype._tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.active++; + this._innerSub(result); + }; + MergeMapSubscriber.prototype._innerSub = function (ish) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + MergeMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete(); + } + this.unsubscribe(); + }; + MergeMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + MergeMapSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); + } + }; + return MergeMapSubscriber; + }(SimpleOuterSubscriber)); + var flatMap = mergeMap; + + function mergeAll(concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + return mergeMap(identity, concurrent); + } + + function concatAll() { + return mergeAll(1); + } + + function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return concatAll()(of.apply(void 0, observables)); + } + + function defer(observableFactory) { + return new Observable(function (subscriber) { + var input; + try { + input = observableFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = input ? from(input) : empty$1(); + return source.subscribe(subscriber); + }); + } + + function forkJoin() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 1) { + var first_1 = sources[0]; + if (isArray(first_1)) { + return forkJoinInternal(first_1, null); + } + if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) { + var keys = Object.keys(first_1); + return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys); + } + } + if (typeof sources[sources.length - 1] === 'function') { + var resultSelector_1 = sources.pop(); + sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources; + return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); })); + } + return forkJoinInternal(sources, null); + } + function forkJoinInternal(sources, keys) { + return new Observable(function (subscriber) { + var len = sources.length; + if (len === 0) { + subscriber.complete(); + return; + } + var values = new Array(len); + var completed = 0; + var emitted = 0; + var _loop_1 = function (i) { + var source = from(sources[i]); + var hasValue = false; + subscriber.add(source.subscribe({ + next: function (value) { + if (!hasValue) { + hasValue = true; + emitted++; + } + values[i] = value; + }, + error: function (err) { return subscriber.error(err); }, + complete: function () { + completed++; + if (completed === len || !hasValue) { + if (emitted === len) { + subscriber.next(keys ? + keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) : + values); + } + subscriber.complete(); + } + } + })); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + }); + } + + function fromEvent(target, eventName, options, resultSelector) { + if (isFunction(options)) { + resultSelector = options; + options = undefined; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new Observable(function (subscriber) { + function handler(e) { + if (arguments.length > 1) { + subscriber.next(Array.prototype.slice.call(arguments)); + } + else { + subscriber.next(e); + } + } + setupSubscription(target, eventName, handler, subscriber, options); + }); + } + function setupSubscription(sourceObj, eventName, handler, subscriber, options) { + var unsubscribe; + if (isEventTarget(sourceObj)) { + var source_1 = sourceObj; + sourceObj.addEventListener(eventName, handler, options); + unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); }; + } + else if (isJQueryStyleEventEmitter(sourceObj)) { + var source_2 = sourceObj; + sourceObj.on(eventName, handler); + unsubscribe = function () { return source_2.off(eventName, handler); }; + } + else if (isNodeStyleEventEmitter(sourceObj)) { + var source_3 = sourceObj; + sourceObj.addListener(eventName, handler); + unsubscribe = function () { return source_3.removeListener(eventName, handler); }; + } + else if (sourceObj && sourceObj.length) { + for (var i = 0, len = sourceObj.length; i < len; i++) { + setupSubscription(sourceObj[i], eventName, handler, subscriber, options); + } + } + else { + throw new TypeError('Invalid event target'); + } + subscriber.add(unsubscribe); + } + function isNodeStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; + } + function isJQueryStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; + } + function isEventTarget(sourceObj) { + return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; + } + + function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new Observable(function (subscriber) { + var handler = function () { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }; + var retValue; + try { + retValue = addHandler(handler); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!isFunction(removeHandler)) { + return undefined; + } + return function () { return removeHandler(handler, retValue); }; + }); + } + + function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { + var resultSelector; + var initialState; + if (arguments.length == 1) { + var options = initialStateOrOptions; + initialState = options.initialState; + condition = options.condition; + iterate = options.iterate; + resultSelector = options.resultSelector || identity; + scheduler = options.scheduler; + } + else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) { + initialState = initialStateOrOptions; + resultSelector = identity; + scheduler = resultSelectorOrObservable; + } + else { + initialState = initialStateOrOptions; + resultSelector = resultSelectorOrObservable; + } + return new Observable(function (subscriber) { + var state = initialState; + if (scheduler) { + return scheduler.schedule(dispatch$3, 0, { + subscriber: subscriber, + iterate: iterate, + condition: condition, + resultSelector: resultSelector, + state: state + }); + } + do { + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + var value = void 0; + try { + value = resultSelector(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } while (true); + return undefined; + }); + } + function dispatch$3(state) { + var subscriber = state.subscriber, condition = state.condition; + if (subscriber.closed) { + return undefined; + } + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } + else { + state.needIterate = true; + } + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + } + var value; + try { + value = state.resultSelector(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + return undefined; + } + return this.schedule(state); + } + + function iif(condition, trueResult, falseResult) { + if (trueResult === void 0) { trueResult = EMPTY; } + if (falseResult === void 0) { falseResult = EMPTY; } + return defer(function () { return condition() ? trueResult : falseResult; }); + } + + function isNumeric(val) { + return !isArray(val) && (val - parseFloat(val) + 1) >= 0; + } + + function interval(period, scheduler) { + if (period === void 0) { period = 0; } + if (scheduler === void 0) { scheduler = async; } + if (!isNumeric(period) || period < 0) { + period = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + scheduler = async; + } + return new Observable(function (subscriber) { + subscriber.add(scheduler.schedule(dispatch$4, period, { subscriber: subscriber, counter: 0, period: period })); + return subscriber; + }); + } + function dispatch$4(state) { + var subscriber = state.subscriber, counter = state.counter, period = state.period; + subscriber.next(counter); + this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period); + } + + function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var concurrent = Number.POSITIVE_INFINITY; + var scheduler = null; + var last = observables[observables.length - 1]; + if (isScheduler(last)) { + scheduler = observables.pop(); + if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { + concurrent = observables.pop(); + } + } + else if (typeof last === 'number') { + concurrent = observables.pop(); + } + if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) { + return observables[0]; + } + return mergeAll(concurrent)(fromArray(observables, scheduler)); + } + + var NEVER = new Observable(noop); + function never() { + return NEVER; + } + + function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 0) { + return EMPTY; + } + var first = sources[0], remainder = sources.slice(1); + if (sources.length === 1 && isArray(first)) { + return onErrorResumeNext.apply(void 0, first); + } + return new Observable(function (subscriber) { + var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); }; + return from(first).subscribe({ + next: function (value) { subscriber.next(value); }, + error: subNext, + complete: subNext, + }); + }); + } + + function pairs(obj, scheduler) { + if (!scheduler) { + return new Observable(function (subscriber) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length && !subscriber.closed; i++) { + var key = keys[i]; + if (obj.hasOwnProperty(key)) { + subscriber.next([key, obj[key]]); + } + } + subscriber.complete(); + }); + } + else { + return new Observable(function (subscriber) { + var keys = Object.keys(obj); + var subscription = new Subscription(); + subscription.add(scheduler.schedule(dispatch$5, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj })); + return subscription; + }); + } + } + function dispatch$5(state) { + var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj; + if (!subscriber.closed) { + if (index < keys.length) { + var key = keys[index]; + subscriber.next([key, obj[key]]); + subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj })); + } + else { + subscriber.complete(); + } + } + } + + function not(pred, thisArg) { + function notPred() { + return !(notPred.pred.apply(notPred.thisArg, arguments)); + } + notPred.pred = pred; + notPred.thisArg = thisArg; + return notPred; + } + + function filter(predicate, thisArg) { + return function filterOperatorFunction(source) { + return source.lift(new FilterOperator(predicate, thisArg)); + }; + } + var FilterOperator = (function () { + function FilterOperator(predicate, thisArg) { + this.predicate = predicate; + this.thisArg = thisArg; + } + FilterOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); + }; + return FilterOperator; + }()); + var FilterSubscriber = (function (_super) { + __extends(FilterSubscriber, _super); + function FilterSubscriber(destination, predicate, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.count = 0; + return _this; + } + FilterSubscriber.prototype._next = function (value) { + var result; + try { + result = this.predicate.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.destination.next(value); + } + }; + return FilterSubscriber; + }(Subscriber)); + + function partition(source, predicate, thisArg) { + return [ + filter(predicate, thisArg)(new Observable(subscribeTo(source))), + filter(not(predicate, thisArg))(new Observable(subscribeTo(source))) + ]; + } + + function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + if (observables.length === 1) { + if (isArray(observables[0])) { + observables = observables[0]; + } + else { + return observables[0]; + } + } + return fromArray(observables, undefined).lift(new RaceOperator()); + } + var RaceOperator = (function () { + function RaceOperator() { + } + RaceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RaceSubscriber(subscriber)); + }; + return RaceOperator; + }()); + var RaceSubscriber = (function (_super) { + __extends(RaceSubscriber, _super); + function RaceSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasFirst = false; + _this.observables = []; + _this.subscriptions = []; + return _this; + } + RaceSubscriber.prototype._next = function (observable) { + this.observables.push(observable); + }; + RaceSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + for (var i = 0; i < len && !this.hasFirst; i++) { + var observable = observables[i]; + var subscription = subscribeToResult(this, observable, undefined, i); + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null; + } + }; + RaceSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + if (!this.hasFirst) { + this.hasFirst = true; + for (var i = 0; i < this.subscriptions.length; i++) { + if (i !== outerIndex) { + var subscription = this.subscriptions[i]; + subscription.unsubscribe(); + this.remove(subscription); + } + } + this.subscriptions = null; + } + this.destination.next(innerValue); + }; + return RaceSubscriber; + }(OuterSubscriber)); + + function range(start, count, scheduler) { + if (start === void 0) { start = 0; } + return new Observable(function (subscriber) { + if (count === undefined) { + count = start; + start = 0; + } + var index = 0; + var current = start; + if (scheduler) { + return scheduler.schedule(dispatch$6, 0, { + index: index, count: count, start: start, subscriber: subscriber + }); + } + else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(current++); + if (subscriber.closed) { + break; + } + } while (true); + } + return undefined; + }); + } + function dispatch$6(state) { + var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; + if (index >= count) { + subscriber.complete(); + return; + } + subscriber.next(start); + if (subscriber.closed) { + return; + } + state.index = index + 1; + state.start = start + 1; + this.schedule(state); + } + + function timer(dueTime, periodOrScheduler, scheduler) { + if (dueTime === void 0) { dueTime = 0; } + var period = -1; + if (isNumeric(periodOrScheduler)) { + period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); + } + else if (isScheduler(periodOrScheduler)) { + scheduler = periodOrScheduler; + } + if (!isScheduler(scheduler)) { + scheduler = async; + } + return new Observable(function (subscriber) { + var due = isNumeric(dueTime) + ? dueTime + : (+dueTime - scheduler.now()); + return scheduler.schedule(dispatch$7, due, { + index: 0, period: period, subscriber: subscriber + }); + }); + } + function dispatch$7(state) { + var index = state.index, period = state.period, subscriber = state.subscriber; + subscriber.next(index); + if (subscriber.closed) { + return; + } + else if (period === -1) { + return subscriber.complete(); + } + state.index = index + 1; + this.schedule(state, period); + } + + function using(resourceFactory, observableFactory) { + return new Observable(function (subscriber) { + var resource; + try { + resource = resourceFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var result; + try { + result = observableFactory(resource); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = result ? from(result) : EMPTY; + var subscription = source.subscribe(subscriber); + return function () { + subscription.unsubscribe(); + if (resource) { + resource.unsubscribe(); + } + }; + }); + } + + function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = observables[observables.length - 1]; + if (typeof resultSelector === 'function') { + observables.pop(); + } + return fromArray(observables, undefined).lift(new ZipOperator(resultSelector)); + } + var ZipOperator = (function () { + function ZipOperator(resultSelector) { + this.resultSelector = resultSelector; + } + ZipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); + }; + return ZipOperator; + }()); + var ZipSubscriber = (function (_super) { + __extends(ZipSubscriber, _super); + function ZipSubscriber(destination, resultSelector, values) { + if (values === void 0) { values = Object.create(null); } + var _this = _super.call(this, destination) || this; + _this.resultSelector = resultSelector; + _this.iterators = []; + _this.active = 0; + _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined; + return _this; + } + ZipSubscriber.prototype._next = function (value) { + var iterators = this.iterators; + if (isArray(value)) { + iterators.push(new StaticArrayIterator(value)); + } + else if (typeof value[iterator] === 'function') { + iterators.push(new StaticIterator(value[iterator]())); + } + else { + iterators.push(new ZipBufferIterator(this.destination, this, value)); + } + }; + ZipSubscriber.prototype._complete = function () { + var iterators = this.iterators; + var len = iterators.length; + this.unsubscribe(); + if (len === 0) { + this.destination.complete(); + return; + } + this.active = len; + for (var i = 0; i < len; i++) { + var iterator$$1 = iterators[i]; + if (iterator$$1.stillUnsubscribed) { + var destination = this.destination; + destination.add(iterator$$1.subscribe()); + } + else { + this.active--; + } + } + }; + ZipSubscriber.prototype.notifyInactive = function () { + this.active--; + if (this.active === 0) { + this.destination.complete(); + } + }; + ZipSubscriber.prototype.checkIterators = function () { + var iterators = this.iterators; + var len = iterators.length; + var destination = this.destination; + for (var i = 0; i < len; i++) { + var iterator$$1 = iterators[i]; + if (typeof iterator$$1.hasValue === 'function' && !iterator$$1.hasValue()) { + return; + } + } + var shouldComplete = false; + var args = []; + for (var i = 0; i < len; i++) { + var iterator$$1 = iterators[i]; + var result = iterator$$1.next(); + if (iterator$$1.hasCompleted()) { + shouldComplete = true; + } + if (result.done) { + destination.complete(); + return; + } + args.push(result.value); + } + if (this.resultSelector) { + this._tryresultSelector(args); + } + else { + destination.next(args); + } + if (shouldComplete) { + destination.complete(); + } + }; + ZipSubscriber.prototype._tryresultSelector = function (args) { + var result; + try { + result = this.resultSelector.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return ZipSubscriber; + }(Subscriber)); + var StaticIterator = (function () { + function StaticIterator(iterator$$1) { + this.iterator = iterator$$1; + this.nextResult = iterator$$1.next(); + } + StaticIterator.prototype.hasValue = function () { + return true; + }; + StaticIterator.prototype.next = function () { + var result = this.nextResult; + this.nextResult = this.iterator.next(); + return result; + }; + StaticIterator.prototype.hasCompleted = function () { + var nextResult = this.nextResult; + return Boolean(nextResult && nextResult.done); + }; + return StaticIterator; + }()); + var StaticArrayIterator = (function () { + function StaticArrayIterator(array) { + this.array = array; + this.index = 0; + this.length = 0; + this.length = array.length; + } + StaticArrayIterator.prototype[iterator] = function () { + return this; + }; + StaticArrayIterator.prototype.next = function (value) { + var i = this.index++; + var array = this.array; + return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + }; + StaticArrayIterator.prototype.hasValue = function () { + return this.array.length > this.index; + }; + StaticArrayIterator.prototype.hasCompleted = function () { + return this.array.length === this.index; + }; + return StaticArrayIterator; + }()); + var ZipBufferIterator = (function (_super) { + __extends(ZipBufferIterator, _super); + function ZipBufferIterator(destination, parent, observable) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + _this.observable = observable; + _this.stillUnsubscribed = true; + _this.buffer = []; + _this.isComplete = false; + return _this; + } + ZipBufferIterator.prototype[iterator] = function () { + return this; + }; + ZipBufferIterator.prototype.next = function () { + var buffer = this.buffer; + if (buffer.length === 0 && this.isComplete) { + return { value: null, done: true }; + } + else { + return { value: buffer.shift(), done: false }; + } + }; + ZipBufferIterator.prototype.hasValue = function () { + return this.buffer.length > 0; + }; + ZipBufferIterator.prototype.hasCompleted = function () { + return this.buffer.length === 0 && this.isComplete; + }; + ZipBufferIterator.prototype.notifyComplete = function () { + if (this.buffer.length > 0) { + this.isComplete = true; + this.parent.notifyInactive(); + } + else { + this.destination.complete(); + } + }; + ZipBufferIterator.prototype.notifyNext = function (innerValue) { + this.buffer.push(innerValue); + this.parent.checkIterators(); + }; + ZipBufferIterator.prototype.subscribe = function () { + return innerSubscribe(this.observable, new SimpleInnerSubscriber(this)); + }; + return ZipBufferIterator; + }(SimpleOuterSubscriber)); + + function audit(durationSelector) { + return function auditOperatorFunction(source) { + return source.lift(new AuditOperator(durationSelector)); + }; + } + var AuditOperator = (function () { + function AuditOperator(durationSelector) { + this.durationSelector = durationSelector; + } + AuditOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); + }; + return AuditOperator; + }()); + var AuditSubscriber = (function (_super) { + __extends(AuditSubscriber, _super); + function AuditSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + return _this; + } + AuditSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + var duration = void 0; + try { + var durationSelector = this.durationSelector; + duration = durationSelector(value); + } + catch (err) { + return this.destination.error(err); + } + var innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (!innerSubscription || innerSubscription.closed) { + this.clearThrottle(); + } + else { + this.add(this.throttled = innerSubscription); + } + } + }; + AuditSubscriber.prototype.clearThrottle = function () { + var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; + if (throttled) { + this.remove(throttled); + this.throttled = undefined; + throttled.unsubscribe(); + } + if (hasValue) { + this.value = undefined; + this.hasValue = false; + this.destination.next(value); + } + }; + AuditSubscriber.prototype.notifyNext = function () { + this.clearThrottle(); + }; + AuditSubscriber.prototype.notifyComplete = function () { + this.clearThrottle(); + }; + return AuditSubscriber; + }(SimpleOuterSubscriber)); + + function auditTime(duration, scheduler) { + if (scheduler === void 0) { scheduler = async; } + return audit(function () { return timer(duration, scheduler); }); + } + + function buffer(closingNotifier) { + return function bufferOperatorFunction(source) { + return source.lift(new BufferOperator(closingNotifier)); + }; + } + var BufferOperator = (function () { + function BufferOperator(closingNotifier) { + this.closingNotifier = closingNotifier; + } + BufferOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); + }; + return BufferOperator; + }()); + var BufferSubscriber = (function (_super) { + __extends(BufferSubscriber, _super); + function BufferSubscriber(destination, closingNotifier) { + var _this = _super.call(this, destination) || this; + _this.buffer = []; + _this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(_this))); + return _this; + } + BufferSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferSubscriber.prototype.notifyNext = function () { + var buffer = this.buffer; + this.buffer = []; + this.destination.next(buffer); + }; + return BufferSubscriber; + }(SimpleOuterSubscriber)); + + function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { startBufferEvery = null; } + return function bufferCountOperatorFunction(source) { + return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); + }; + } + var BufferCountOperator = (function () { + function BufferCountOperator(bufferSize, startBufferEvery) { + this.bufferSize = bufferSize; + this.startBufferEvery = startBufferEvery; + if (!startBufferEvery || bufferSize === startBufferEvery) { + this.subscriberClass = BufferCountSubscriber; + } + else { + this.subscriberClass = BufferSkipCountSubscriber; + } + } + BufferCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); + }; + return BufferCountOperator; + }()); + var BufferCountSubscriber = (function (_super) { + __extends(BufferCountSubscriber, _super); + function BufferCountSubscriber(destination, bufferSize) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.buffer = []; + return _this; + } + BufferCountSubscriber.prototype._next = function (value) { + var buffer = this.buffer; + buffer.push(value); + if (buffer.length == this.bufferSize) { + this.destination.next(buffer); + this.buffer = []; + } + }; + BufferCountSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer.length > 0) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + return BufferCountSubscriber; + }(Subscriber)); + var BufferSkipCountSubscriber = (function (_super) { + __extends(BufferSkipCountSubscriber, _super); + function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.startBufferEvery = startBufferEvery; + _this.buffers = []; + _this.count = 0; + return _this; + } + BufferSkipCountSubscriber.prototype._next = function (value) { + var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count; + this.count++; + if (count % startBufferEvery === 0) { + buffers.push([]); + } + for (var i = buffers.length; i--;) { + var buffer = buffers[i]; + buffer.push(value); + if (buffer.length === bufferSize) { + buffers.splice(i, 1); + this.destination.next(buffer); + } + } + }; + BufferSkipCountSubscriber.prototype._complete = function () { + var _a = this, buffers = _a.buffers, destination = _a.destination; + while (buffers.length > 0) { + var buffer = buffers.shift(); + if (buffer.length > 0) { + destination.next(buffer); + } + } + _super.prototype._complete.call(this); + }; + return BufferSkipCountSubscriber; + }(Subscriber)); + + function bufferTime(bufferTimeSpan) { + var length = arguments.length; + var scheduler = async; + if (isScheduler(arguments[arguments.length - 1])) { + scheduler = arguments[arguments.length - 1]; + length--; + } + var bufferCreationInterval = null; + if (length >= 2) { + bufferCreationInterval = arguments[1]; + } + var maxBufferSize = Number.POSITIVE_INFINITY; + if (length >= 3) { + maxBufferSize = arguments[2]; + } + return function bufferTimeOperatorFunction(source) { + return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); + }; + } + var BufferTimeOperator = (function () { + function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + this.bufferTimeSpan = bufferTimeSpan; + this.bufferCreationInterval = bufferCreationInterval; + this.maxBufferSize = maxBufferSize; + this.scheduler = scheduler; + } + BufferTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); + }; + return BufferTimeOperator; + }()); + var Context = (function () { + function Context() { + this.buffer = []; + } + return Context; + }()); + var BufferTimeSubscriber = (function (_super) { + __extends(BufferTimeSubscriber, _super); + function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.bufferTimeSpan = bufferTimeSpan; + _this.bufferCreationInterval = bufferCreationInterval; + _this.maxBufferSize = maxBufferSize; + _this.scheduler = scheduler; + _this.contexts = []; + var context = _this.openContext(); + _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; + if (_this.timespanOnly) { + var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + else { + var closeState = { subscriber: _this, context: context }; + var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); + } + return _this; + } + BufferTimeSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + var filledBufferContext; + for (var i = 0; i < len; i++) { + var context_1 = contexts[i]; + var buffer = context_1.buffer; + buffer.push(value); + if (buffer.length == this.maxBufferSize) { + filledBufferContext = context_1; + } + } + if (filledBufferContext) { + this.onBufferFull(filledBufferContext); + } + }; + BufferTimeSubscriber.prototype._error = function (err) { + this.contexts.length = 0; + _super.prototype._error.call(this, err); + }; + BufferTimeSubscriber.prototype._complete = function () { + var _a = this, contexts = _a.contexts, destination = _a.destination; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + destination.next(context_2.buffer); + } + _super.prototype._complete.call(this); + }; + BufferTimeSubscriber.prototype._unsubscribe = function () { + this.contexts = null; + }; + BufferTimeSubscriber.prototype.onBufferFull = function (context) { + this.closeContext(context); + var closeAction = context.closeAction; + closeAction.unsubscribe(); + this.remove(closeAction); + if (!this.closed && this.timespanOnly) { + context = this.openContext(); + var bufferTimeSpan = this.bufferTimeSpan; + var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan }; + this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + }; + BufferTimeSubscriber.prototype.openContext = function () { + var context = new Context(); + this.contexts.push(context); + return context; + }; + BufferTimeSubscriber.prototype.closeContext = function (context) { + this.destination.next(context.buffer); + var contexts = this.contexts; + var spliceIndex = contexts ? contexts.indexOf(context) : -1; + if (spliceIndex >= 0) { + contexts.splice(contexts.indexOf(context), 1); + } + }; + return BufferTimeSubscriber; + }(Subscriber)); + function dispatchBufferTimeSpanOnly(state) { + var subscriber = state.subscriber; + var prevContext = state.context; + if (prevContext) { + subscriber.closeContext(prevContext); + } + if (!subscriber.closed) { + state.context = subscriber.openContext(); + state.context.closeAction = this.schedule(state, state.bufferTimeSpan); + } + } + function dispatchBufferCreation(state) { + var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; + var context = subscriber.openContext(); + var action = this; + if (!subscriber.closed) { + subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context })); + action.schedule(state, bufferCreationInterval); + } + } + function dispatchBufferClose(arg) { + var subscriber = arg.subscriber, context = arg.context; + subscriber.closeContext(context); + } + + function bufferToggle(openings, closingSelector) { + return function bufferToggleOperatorFunction(source) { + return source.lift(new BufferToggleOperator(openings, closingSelector)); + }; + } + var BufferToggleOperator = (function () { + function BufferToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + BufferToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return BufferToggleOperator; + }()); + var BufferToggleSubscriber = (function (_super) { + __extends(BufferToggleSubscriber, _super); + function BufferToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(subscribeToResult(_this, openings)); + return _this; + } + BufferToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].buffer.push(value); + } + }; + BufferToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_1 = contexts.shift(); + context_1.subscription.unsubscribe(); + context_1.buffer = null; + context_1.subscription = null; + } + this.contexts = null; + _super.prototype._error.call(this, err); + }; + BufferToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + this.destination.next(context_2.buffer); + context_2.subscription.unsubscribe(); + context_2.buffer = null; + context_2.subscription = null; + } + this.contexts = null; + _super.prototype._complete.call(this); + }; + BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue) { + outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); + }; + BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) { + this.closeBuffer(innerSub.context); + }; + BufferToggleSubscriber.prototype.openBuffer = function (value) { + try { + var closingSelector = this.closingSelector; + var closingNotifier = closingSelector.call(this, value); + if (closingNotifier) { + this.trySubscribe(closingNotifier); + } + } + catch (err) { + this._error(err); + } + }; + BufferToggleSubscriber.prototype.closeBuffer = function (context) { + var contexts = this.contexts; + if (contexts && context) { + var buffer = context.buffer, subscription = context.subscription; + this.destination.next(buffer); + contexts.splice(contexts.indexOf(context), 1); + this.remove(subscription); + subscription.unsubscribe(); + } + }; + BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) { + var contexts = this.contexts; + var buffer = []; + var subscription = new Subscription(); + var context = { buffer: buffer, subscription: subscription }; + contexts.push(context); + var innerSubscription = subscribeToResult(this, closingNotifier, context); + if (!innerSubscription || innerSubscription.closed) { + this.closeBuffer(context); + } + else { + innerSubscription.context = context; + this.add(innerSubscription); + subscription.add(innerSubscription); + } + }; + return BufferToggleSubscriber; + }(OuterSubscriber)); + + function bufferWhen(closingSelector) { + return function (source) { + return source.lift(new BufferWhenOperator(closingSelector)); + }; + } + var BufferWhenOperator = (function () { + function BufferWhenOperator(closingSelector) { + this.closingSelector = closingSelector; + } + BufferWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); + }; + return BufferWhenOperator; + }()); + var BufferWhenSubscriber = (function (_super) { + __extends(BufferWhenSubscriber, _super); + function BufferWhenSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.closingSelector = closingSelector; + _this.subscribing = false; + _this.openBuffer(); + return _this; + } + BufferWhenSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferWhenSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + BufferWhenSubscriber.prototype._unsubscribe = function () { + this.buffer = undefined; + this.subscribing = false; + }; + BufferWhenSubscriber.prototype.notifyNext = function () { + this.openBuffer(); + }; + BufferWhenSubscriber.prototype.notifyComplete = function () { + if (this.subscribing) { + this.complete(); + } + else { + this.openBuffer(); + } + }; + BufferWhenSubscriber.prototype.openBuffer = function () { + var closingSubscription = this.closingSubscription; + if (closingSubscription) { + this.remove(closingSubscription); + closingSubscription.unsubscribe(); + } + var buffer = this.buffer; + if (this.buffer) { + this.destination.next(buffer); + } + this.buffer = []; + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (err) { + return this.error(err); + } + closingSubscription = new Subscription(); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this))); + this.subscribing = false; + }; + return BufferWhenSubscriber; + }(SimpleOuterSubscriber)); + + function catchError(selector) { + return function catchErrorOperatorFunction(source) { + var operator = new CatchOperator(selector); + var caught = source.lift(operator); + return (operator.caught = caught); + }; + } + var CatchOperator = (function () { + function CatchOperator(selector) { + this.selector = selector; + } + CatchOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); + }; + return CatchOperator; + }()); + var CatchSubscriber = (function (_super) { + __extends(CatchSubscriber, _super); + function CatchSubscriber(destination, selector, caught) { + var _this = _super.call(this, destination) || this; + _this.selector = selector; + _this.caught = caught; + return _this; + } + CatchSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var result = void 0; + try { + result = this.selector(err, this.caught); + } + catch (err2) { + _super.prototype.error.call(this, err2); + return; + } + this._unsubscribeAndRecycle(); + var innerSubscriber = new SimpleInnerSubscriber(this); + this.add(innerSubscriber); + var innerSubscription = innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + this.add(innerSubscription); + } + } + }; + return CatchSubscriber; + }(SimpleOuterSubscriber)); + + function combineAll(project) { + return function (source) { return source.lift(new CombineLatestOperator(project)); }; + } + + function combineLatest$1() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var project = null; + if (typeof observables[observables.length - 1] === 'function') { + project = observables.pop(); + } + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0].slice(); + } + return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); }; + } + + function concat$1() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(concat.apply(void 0, [source].concat(observables))); }; + } + + function concatMap(project, resultSelector) { + return mergeMap(project, resultSelector, 1); + } + + function concatMapTo(innerObservable, resultSelector) { + return concatMap(function () { return innerObservable; }, resultSelector); + } + + function count(predicate) { + return function (source) { return source.lift(new CountOperator(predicate, source)); }; + } + var CountOperator = (function () { + function CountOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + CountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + }; + return CountOperator; + }()); + var CountSubscriber = (function (_super) { + __extends(CountSubscriber, _super); + function CountSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.count = 0; + _this.index = 0; + return _this; + } + CountSubscriber.prototype._next = function (value) { + if (this.predicate) { + this._tryPredicate(value); + } + else { + this.count++; + } + }; + CountSubscriber.prototype._tryPredicate = function (value) { + var result; + try { + result = this.predicate(value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.count++; + } + }; + CountSubscriber.prototype._complete = function () { + this.destination.next(this.count); + this.destination.complete(); + }; + return CountSubscriber; + }(Subscriber)); + + function debounce(durationSelector) { + return function (source) { return source.lift(new DebounceOperator(durationSelector)); }; + } + var DebounceOperator = (function () { + function DebounceOperator(durationSelector) { + this.durationSelector = durationSelector; + } + DebounceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); + }; + return DebounceOperator; + }()); + var DebounceSubscriber = (function (_super) { + __extends(DebounceSubscriber, _super); + function DebounceSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + return _this; + } + DebounceSubscriber.prototype._next = function (value) { + try { + var result = this.durationSelector.call(this, value); + if (result) { + this._tryNext(value, result); + } + } + catch (err) { + this.destination.error(err); + } + }; + DebounceSubscriber.prototype._complete = function () { + this.emitValue(); + this.destination.complete(); + }; + DebounceSubscriber.prototype._tryNext = function (value, duration) { + var subscription = this.durationSubscription; + this.value = value; + this.hasValue = true; + if (subscription) { + subscription.unsubscribe(); + this.remove(subscription); + } + subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (subscription && !subscription.closed) { + this.add(this.durationSubscription = subscription); + } + }; + DebounceSubscriber.prototype.notifyNext = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + var value = this.value; + var subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = undefined; + subscription.unsubscribe(); + this.remove(subscription); + } + this.value = undefined; + this.hasValue = false; + _super.prototype._next.call(this, value); + } + }; + return DebounceSubscriber; + }(SimpleOuterSubscriber)); + + function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { scheduler = async; } + return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; + } + var DebounceTimeOperator = (function () { + function DebounceTimeOperator(dueTime, scheduler) { + this.dueTime = dueTime; + this.scheduler = scheduler; + } + DebounceTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); + }; + return DebounceTimeOperator; + }()); + var DebounceTimeSubscriber = (function (_super) { + __extends(DebounceTimeSubscriber, _super); + function DebounceTimeSubscriber(destination, dueTime, scheduler) { + var _this = _super.call(this, destination) || this; + _this.dueTime = dueTime; + _this.scheduler = scheduler; + _this.debouncedSubscription = null; + _this.lastValue = null; + _this.hasValue = false; + return _this; + } + DebounceTimeSubscriber.prototype._next = function (value) { + this.clearDebounce(); + this.lastValue = value; + this.hasValue = true; + this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext$2, this.dueTime, this)); + }; + DebounceTimeSubscriber.prototype._complete = function () { + this.debouncedNext(); + this.destination.complete(); + }; + DebounceTimeSubscriber.prototype.debouncedNext = function () { + this.clearDebounce(); + if (this.hasValue) { + var lastValue = this.lastValue; + this.lastValue = null; + this.hasValue = false; + this.destination.next(lastValue); + } + }; + DebounceTimeSubscriber.prototype.clearDebounce = function () { + var debouncedSubscription = this.debouncedSubscription; + if (debouncedSubscription !== null) { + this.remove(debouncedSubscription); + debouncedSubscription.unsubscribe(); + this.debouncedSubscription = null; + } + }; + return DebounceTimeSubscriber; + }(Subscriber)); + function dispatchNext$2(subscriber) { + subscriber.debouncedNext(); + } + + function defaultIfEmpty(defaultValue) { + if (defaultValue === void 0) { defaultValue = null; } + return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); }; + } + var DefaultIfEmptyOperator = (function () { + function DefaultIfEmptyOperator(defaultValue) { + this.defaultValue = defaultValue; + } + DefaultIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); + }; + return DefaultIfEmptyOperator; + }()); + var DefaultIfEmptySubscriber = (function (_super) { + __extends(DefaultIfEmptySubscriber, _super); + function DefaultIfEmptySubscriber(destination, defaultValue) { + var _this = _super.call(this, destination) || this; + _this.defaultValue = defaultValue; + _this.isEmpty = true; + return _this; + } + DefaultIfEmptySubscriber.prototype._next = function (value) { + this.isEmpty = false; + this.destination.next(value); + }; + DefaultIfEmptySubscriber.prototype._complete = function () { + if (this.isEmpty) { + this.destination.next(this.defaultValue); + } + this.destination.complete(); + }; + return DefaultIfEmptySubscriber; + }(Subscriber)); + + function isDate(value) { + return value instanceof Date && !isNaN(+value); + } + + function delay(delay, scheduler) { + if (scheduler === void 0) { scheduler = async; } + var absoluteDelay = isDate(delay); + var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); + return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; + } + var DelayOperator = (function () { + function DelayOperator(delay, scheduler) { + this.delay = delay; + this.scheduler = scheduler; + } + DelayOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); + }; + return DelayOperator; + }()); + var DelaySubscriber = (function (_super) { + __extends(DelaySubscriber, _super); + function DelaySubscriber(destination, delay, scheduler) { + var _this = _super.call(this, destination) || this; + _this.delay = delay; + _this.scheduler = scheduler; + _this.queue = []; + _this.active = false; + _this.errored = false; + return _this; + } + DelaySubscriber.dispatch = function (state) { + var source = state.source; + var queue = source.queue; + var scheduler = state.scheduler; + var destination = state.destination; + while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { + queue.shift().notification.observe(destination); + } + if (queue.length > 0) { + var delay_1 = Math.max(0, queue[0].time - scheduler.now()); + this.schedule(state, delay_1); + } + else { + this.unsubscribe(); + source.active = false; + } + }; + DelaySubscriber.prototype._schedule = function (scheduler) { + this.active = true; + var destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + source: this, destination: this.destination, scheduler: scheduler + })); + }; + DelaySubscriber.prototype.scheduleNotification = function (notification) { + if (this.errored === true) { + return; + } + var scheduler = this.scheduler; + var message = new DelayMessage(scheduler.now() + this.delay, notification); + this.queue.push(message); + if (this.active === false) { + this._schedule(scheduler); + } + }; + DelaySubscriber.prototype._next = function (value) { + this.scheduleNotification(Notification.createNext(value)); + }; + DelaySubscriber.prototype._error = function (err) { + this.errored = true; + this.queue = []; + this.destination.error(err); + this.unsubscribe(); + }; + DelaySubscriber.prototype._complete = function () { + this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); + }; + return DelaySubscriber; + }(Subscriber)); + var DelayMessage = (function () { + function DelayMessage(time, notification) { + this.time = time; + this.notification = notification; + } + return DelayMessage; + }()); + + function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function (source) { + return new SubscriptionDelayObservable(source, subscriptionDelay) + .lift(new DelayWhenOperator(delayDurationSelector)); + }; + } + return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); }; + } + var DelayWhenOperator = (function () { + function DelayWhenOperator(delayDurationSelector) { + this.delayDurationSelector = delayDurationSelector; + } + DelayWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); + }; + return DelayWhenOperator; + }()); + var DelayWhenSubscriber = (function (_super) { + __extends(DelayWhenSubscriber, _super); + function DelayWhenSubscriber(destination, delayDurationSelector) { + var _this = _super.call(this, destination) || this; + _this.delayDurationSelector = delayDurationSelector; + _this.completed = false; + _this.delayNotifierSubscriptions = []; + _this.index = 0; + return _this; + } + DelayWhenSubscriber.prototype.notifyNext = function (outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.destination.next(outerValue); + this.removeSubscription(innerSub); + this.tryComplete(); + }; + DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) { + var value = this.removeSubscription(innerSub); + if (value) { + this.destination.next(value); + } + this.tryComplete(); + }; + DelayWhenSubscriber.prototype._next = function (value) { + var index = this.index++; + try { + var delayNotifier = this.delayDurationSelector(value, index); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); + } + } + catch (err) { + this.destination.error(err); + } + }; + DelayWhenSubscriber.prototype._complete = function () { + this.completed = true; + this.tryComplete(); + this.unsubscribe(); + }; + DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { + subscription.unsubscribe(); + var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + if (subscriptionIdx !== -1) { + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); + } + return subscription.outerValue; + }; + DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { + var notifierSubscription = subscribeToResult(this, delayNotifier, value); + if (notifierSubscription && !notifierSubscription.closed) { + var destination = this.destination; + destination.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + }; + DelayWhenSubscriber.prototype.tryComplete = function () { + if (this.completed && this.delayNotifierSubscriptions.length === 0) { + this.destination.complete(); + } + }; + return DelayWhenSubscriber; + }(OuterSubscriber)); + var SubscriptionDelayObservable = (function (_super) { + __extends(SubscriptionDelayObservable, _super); + function SubscriptionDelayObservable(source, subscriptionDelay) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subscriptionDelay = subscriptionDelay; + return _this; + } + SubscriptionDelayObservable.prototype._subscribe = function (subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + }; + return SubscriptionDelayObservable; + }(Observable)); + var SubscriptionDelaySubscriber = (function (_super) { + __extends(SubscriptionDelaySubscriber, _super); + function SubscriptionDelaySubscriber(parent, source) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.source = source; + _this.sourceSubscribed = false; + return _this; + } + SubscriptionDelaySubscriber.prototype._next = function (unused) { + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype._error = function (err) { + this.unsubscribe(); + this.parent.error(err); + }; + SubscriptionDelaySubscriber.prototype._complete = function () { + this.unsubscribe(); + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { + if (!this.sourceSubscribed) { + this.sourceSubscribed = true; + this.unsubscribe(); + this.source.subscribe(this.parent); + } + }; + return SubscriptionDelaySubscriber; + }(Subscriber)); + + function dematerialize() { + return function dematerializeOperatorFunction(source) { + return source.lift(new DeMaterializeOperator()); + }; + } + var DeMaterializeOperator = (function () { + function DeMaterializeOperator() { + } + DeMaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); + }; + return DeMaterializeOperator; + }()); + var DeMaterializeSubscriber = (function (_super) { + __extends(DeMaterializeSubscriber, _super); + function DeMaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + DeMaterializeSubscriber.prototype._next = function (value) { + value.observe(this.destination); + }; + return DeMaterializeSubscriber; + }(Subscriber)); + + function distinct(keySelector, flushes) { + return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); }; + } + var DistinctOperator = (function () { + function DistinctOperator(keySelector, flushes) { + this.keySelector = keySelector; + this.flushes = flushes; + } + DistinctOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); + }; + return DistinctOperator; + }()); + var DistinctSubscriber = (function (_super) { + __extends(DistinctSubscriber, _super); + function DistinctSubscriber(destination, keySelector, flushes) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.values = new Set(); + if (flushes) { + _this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(_this))); + } + return _this; + } + DistinctSubscriber.prototype.notifyNext = function () { + this.values.clear(); + }; + DistinctSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + DistinctSubscriber.prototype._next = function (value) { + if (this.keySelector) { + this._useKeySelector(value); + } + else { + this._finalizeNext(value, value); + } + }; + DistinctSubscriber.prototype._useKeySelector = function (value) { + var key; + var destination = this.destination; + try { + key = this.keySelector(value); + } + catch (err) { + destination.error(err); + return; + } + this._finalizeNext(key, value); + }; + DistinctSubscriber.prototype._finalizeNext = function (key, value) { + var values = this.values; + if (!values.has(key)) { + values.add(key); + this.destination.next(value); + } + }; + return DistinctSubscriber; + }(SimpleOuterSubscriber)); + + function distinctUntilChanged(compare, keySelector) { + return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; + } + var DistinctUntilChangedOperator = (function () { + function DistinctUntilChangedOperator(compare, keySelector) { + this.compare = compare; + this.keySelector = keySelector; + } + DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); + }; + return DistinctUntilChangedOperator; + }()); + var DistinctUntilChangedSubscriber = (function (_super) { + __extends(DistinctUntilChangedSubscriber, _super); + function DistinctUntilChangedSubscriber(destination, compare, keySelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.hasKey = false; + if (typeof compare === 'function') { + _this.compare = compare; + } + return _this; + } + DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { + return x === y; + }; + DistinctUntilChangedSubscriber.prototype._next = function (value) { + var key; + try { + var keySelector = this.keySelector; + key = keySelector ? keySelector(value) : value; + } + catch (err) { + return this.destination.error(err); + } + var result = false; + if (this.hasKey) { + try { + var compare = this.compare; + result = compare(this.key, key); + } + catch (err) { + return this.destination.error(err); + } + } + else { + this.hasKey = true; + } + if (!result) { + this.key = key; + this.destination.next(value); + } + }; + return DistinctUntilChangedSubscriber; + }(Subscriber)); + + function distinctUntilKeyChanged(key, compare) { + return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; }); + } + + function throwIfEmpty(errorFactory) { + if (errorFactory === void 0) { errorFactory = defaultErrorFactory; } + return function (source) { + return source.lift(new ThrowIfEmptyOperator(errorFactory)); + }; + } + var ThrowIfEmptyOperator = (function () { + function ThrowIfEmptyOperator(errorFactory) { + this.errorFactory = errorFactory; + } + ThrowIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); + }; + return ThrowIfEmptyOperator; + }()); + var ThrowIfEmptySubscriber = (function (_super) { + __extends(ThrowIfEmptySubscriber, _super); + function ThrowIfEmptySubscriber(destination, errorFactory) { + var _this = _super.call(this, destination) || this; + _this.errorFactory = errorFactory; + _this.hasValue = false; + return _this; + } + ThrowIfEmptySubscriber.prototype._next = function (value) { + this.hasValue = true; + this.destination.next(value); + }; + ThrowIfEmptySubscriber.prototype._complete = function () { + if (!this.hasValue) { + var err = void 0; + try { + err = this.errorFactory(); + } + catch (e) { + err = e; + } + this.destination.error(err); + } + else { + return this.destination.complete(); + } + }; + return ThrowIfEmptySubscriber; + }(Subscriber)); + function defaultErrorFactory() { + return new EmptyError(); + } + + function take(count) { + return function (source) { + if (count === 0) { + return empty$1(); + } + else { + return source.lift(new TakeOperator(count)); + } + }; + } + var TakeOperator = (function () { + function TakeOperator(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + TakeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeSubscriber(subscriber, this.total)); + }; + return TakeOperator; + }()); + var TakeSubscriber = (function (_super) { + __extends(TakeSubscriber, _super); + function TakeSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + TakeSubscriber.prototype._next = function (value) { + var total = this.total; + var count = ++this.count; + if (count <= total) { + this.destination.next(value); + if (count === total) { + this.destination.complete(); + this.unsubscribe(); + } + } + }; + return TakeSubscriber; + }(Subscriber)); + + function elementAt(index, defaultValue) { + if (index < 0) { + throw new ArgumentOutOfRangeError(); + } + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue + ? defaultIfEmpty(defaultValue) + : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); }; + } + + function endWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; + } + return function (source) { return concat(source, of.apply(void 0, array)); }; + } + + function every(predicate, thisArg) { + return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); }; + } + var EveryOperator = (function () { + function EveryOperator(predicate, thisArg, source) { + this.predicate = predicate; + this.thisArg = thisArg; + this.source = source; + } + EveryOperator.prototype.call = function (observer, source) { + return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); + }; + return EveryOperator; + }()); + var EverySubscriber = (function (_super) { + __extends(EverySubscriber, _super); + function EverySubscriber(destination, predicate, thisArg, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.source = source; + _this.index = 0; + _this.thisArg = thisArg || _this; + return _this; + } + EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { + this.destination.next(everyValueMatch); + this.destination.complete(); + }; + EverySubscriber.prototype._next = function (value) { + var result = false; + try { + result = this.predicate.call(this.thisArg, value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (!result) { + this.notifyComplete(false); + } + }; + EverySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return EverySubscriber; + }(Subscriber)); + + function exhaust() { + return function (source) { return source.lift(new SwitchFirstOperator()); }; + } + var SwitchFirstOperator = (function () { + function SwitchFirstOperator() { + } + SwitchFirstOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); + }; + return SwitchFirstOperator; + }()); + var SwitchFirstSubscriber = (function (_super) { + __extends(SwitchFirstSubscriber, _super); + function SwitchFirstSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasCompleted = false; + _this.hasSubscription = false; + return _this; + } + SwitchFirstSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(innerSubscribe(value, new SimpleInnerSubscriber(this))); + } + }; + SwitchFirstSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + }; + SwitchFirstSubscriber.prototype.notifyComplete = function () { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return SwitchFirstSubscriber; + }(SimpleOuterSubscriber)); + + function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; + } + return function (source) { + return source.lift(new ExhaustMapOperator(project)); + }; + } + var ExhaustMapOperator = (function () { + function ExhaustMapOperator(project) { + this.project = project; + } + ExhaustMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); + }; + return ExhaustMapOperator; + }()); + var ExhaustMapSubscriber = (function (_super) { + __extends(ExhaustMapSubscriber, _super); + function ExhaustMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.hasSubscription = false; + _this.hasCompleted = false; + _this.index = 0; + return _this; + } + ExhaustMapSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.tryNext(value); + } + }; + ExhaustMapSubscriber.prototype.tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.hasSubscription = true; + this._innerSub(result); + }; + ExhaustMapSubscriber.prototype._innerSub = function (result) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + ExhaustMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + this.unsubscribe(); + }; + ExhaustMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + ExhaustMapSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + ExhaustMapSubscriber.prototype.notifyComplete = function () { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return ExhaustMapSubscriber; + }(SimpleOuterSubscriber)); + + function expand(project, concurrent, scheduler) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); }; + } + var ExpandOperator = (function () { + function ExpandOperator(project, concurrent, scheduler) { + this.project = project; + this.concurrent = concurrent; + this.scheduler = scheduler; + } + ExpandOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); + }; + return ExpandOperator; + }()); + var ExpandSubscriber = (function (_super) { + __extends(ExpandSubscriber, _super); + function ExpandSubscriber(destination, project, concurrent, scheduler) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.scheduler = scheduler; + _this.index = 0; + _this.active = 0; + _this.hasCompleted = false; + if (concurrent < Number.POSITIVE_INFINITY) { + _this.buffer = []; + } + return _this; + } + ExpandSubscriber.dispatch = function (arg) { + var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index; + subscriber.subscribeToProjection(result, value, index); + }; + ExpandSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (destination.closed) { + this._complete(); + return; + } + var index = this.index++; + if (this.active < this.concurrent) { + destination.next(value); + try { + var project = this.project; + var result = project(value, index); + if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } + else { + var state = { subscriber: this, result: result, value: value, index: index }; + var destination_1 = this.destination; + destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + } + } + catch (e) { + destination.error(e); + } + } + else { + this.buffer.push(value); + } + }; + ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { + this.active++; + var destination = this.destination; + destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this))); + }; + ExpandSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + this.unsubscribe(); + }; + ExpandSubscriber.prototype.notifyNext = function (innerValue) { + this._next(innerValue); + }; + ExpandSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer && buffer.length > 0) { + this._next(buffer.shift()); + } + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + }; + return ExpandSubscriber; + }(SimpleOuterSubscriber)); + + function finalize(callback) { + return function (source) { return source.lift(new FinallyOperator(callback)); }; + } + var FinallyOperator = (function () { + function FinallyOperator(callback) { + this.callback = callback; + } + FinallyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FinallySubscriber(subscriber, this.callback)); + }; + return FinallyOperator; + }()); + var FinallySubscriber = (function (_super) { + __extends(FinallySubscriber, _super); + function FinallySubscriber(destination, callback) { + var _this = _super.call(this, destination) || this; + _this.add(new Subscription(callback)); + return _this; + } + return FinallySubscriber; + }(Subscriber)); + + function find(predicate, thisArg) { + if (typeof predicate !== 'function') { + throw new TypeError('predicate is not a function'); + } + return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); }; + } + var FindValueOperator = (function () { + function FindValueOperator(predicate, source, yieldIndex, thisArg) { + this.predicate = predicate; + this.source = source; + this.yieldIndex = yieldIndex; + this.thisArg = thisArg; + } + FindValueOperator.prototype.call = function (observer, source) { + return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); + }; + return FindValueOperator; + }()); + var FindValueSubscriber = (function (_super) { + __extends(FindValueSubscriber, _super); + function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.yieldIndex = yieldIndex; + _this.thisArg = thisArg; + _this.index = 0; + return _this; + } + FindValueSubscriber.prototype.notifyComplete = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + this.unsubscribe(); + }; + FindValueSubscriber.prototype._next = function (value) { + var _a = this, predicate = _a.predicate, thisArg = _a.thisArg; + var index = this.index++; + try { + var result = predicate.call(thisArg || this, value, index, this.source); + if (result) { + this.notifyComplete(this.yieldIndex ? index : value); + } + } + catch (err) { + this.destination.error(err); + } + }; + FindValueSubscriber.prototype._complete = function () { + this.notifyComplete(this.yieldIndex ? -1 : undefined); + }; + return FindValueSubscriber; + }(Subscriber)); + + function findIndex(predicate, thisArg) { + return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); }; + } + + function first(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); }; + } + + function ignoreElements() { + return function ignoreElementsOperatorFunction(source) { + return source.lift(new IgnoreElementsOperator()); + }; + } + var IgnoreElementsOperator = (function () { + function IgnoreElementsOperator() { + } + IgnoreElementsOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + }; + return IgnoreElementsOperator; + }()); + var IgnoreElementsSubscriber = (function (_super) { + __extends(IgnoreElementsSubscriber, _super); + function IgnoreElementsSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + IgnoreElementsSubscriber.prototype._next = function (unused) { + }; + return IgnoreElementsSubscriber; + }(Subscriber)); + + function isEmpty() { + return function (source) { return source.lift(new IsEmptyOperator()); }; + } + var IsEmptyOperator = (function () { + function IsEmptyOperator() { + } + IsEmptyOperator.prototype.call = function (observer, source) { + return source.subscribe(new IsEmptySubscriber(observer)); + }; + return IsEmptyOperator; + }()); + var IsEmptySubscriber = (function (_super) { + __extends(IsEmptySubscriber, _super); + function IsEmptySubscriber(destination) { + return _super.call(this, destination) || this; + } + IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) { + var destination = this.destination; + destination.next(isEmpty); + destination.complete(); + }; + IsEmptySubscriber.prototype._next = function (value) { + this.notifyComplete(false); + }; + IsEmptySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return IsEmptySubscriber; + }(Subscriber)); + + function takeLast(count) { + return function takeLastOperatorFunction(source) { + if (count === 0) { + return empty$1(); + } + else { + return source.lift(new TakeLastOperator(count)); + } + }; + } + var TakeLastOperator = (function () { + function TakeLastOperator(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + TakeLastOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + }; + return TakeLastOperator; + }()); + var TakeLastSubscriber = (function (_super) { + __extends(TakeLastSubscriber, _super); + function TakeLastSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.ring = new Array(); + _this.count = 0; + return _this; + } + TakeLastSubscriber.prototype._next = function (value) { + var ring = this.ring; + var total = this.total; + var count = this.count++; + if (ring.length < total) { + ring.push(value); + } + else { + var index = count % total; + ring[index] = value; + } + }; + TakeLastSubscriber.prototype._complete = function () { + var destination = this.destination; + var count = this.count; + if (count > 0) { + var total = this.count >= this.total ? this.total : this.count; + var ring = this.ring; + for (var i = 0; i < total; i++) { + var idx = (count++) % total; + destination.next(ring[idx]); + } + } + destination.complete(); + }; + return TakeLastSubscriber; + }(Subscriber)); + + function last(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); }; + } + + function mapTo(value) { + return function (source) { return source.lift(new MapToOperator(value)); }; + } + var MapToOperator = (function () { + function MapToOperator(value) { + this.value = value; + } + MapToOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapToSubscriber(subscriber, this.value)); + }; + return MapToOperator; + }()); + var MapToSubscriber = (function (_super) { + __extends(MapToSubscriber, _super); + function MapToSubscriber(destination, value) { + var _this = _super.call(this, destination) || this; + _this.value = value; + return _this; + } + MapToSubscriber.prototype._next = function (x) { + this.destination.next(this.value); + }; + return MapToSubscriber; + }(Subscriber)); + + function materialize() { + return function materializeOperatorFunction(source) { + return source.lift(new MaterializeOperator()); + }; + } + var MaterializeOperator = (function () { + function MaterializeOperator() { + } + MaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MaterializeSubscriber(subscriber)); + }; + return MaterializeOperator; + }()); + var MaterializeSubscriber = (function (_super) { + __extends(MaterializeSubscriber, _super); + function MaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + MaterializeSubscriber.prototype._next = function (value) { + this.destination.next(Notification.createNext(value)); + }; + MaterializeSubscriber.prototype._error = function (err) { + var destination = this.destination; + destination.next(Notification.createError(err)); + destination.complete(); + }; + MaterializeSubscriber.prototype._complete = function () { + var destination = this.destination; + destination.next(Notification.createComplete()); + destination.complete(); + }; + return MaterializeSubscriber; + }(Subscriber)); + + function scan(accumulator, seed) { + var hasSeed = false; + if (arguments.length >= 2) { + hasSeed = true; + } + return function scanOperatorFunction(source) { + return source.lift(new ScanOperator(accumulator, seed, hasSeed)); + }; + } + var ScanOperator = (function () { + function ScanOperator(accumulator, seed, hasSeed) { + if (hasSeed === void 0) { hasSeed = false; } + this.accumulator = accumulator; + this.seed = seed; + this.hasSeed = hasSeed; + } + ScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); + }; + return ScanOperator; + }()); + var ScanSubscriber = (function (_super) { + __extends(ScanSubscriber, _super); + function ScanSubscriber(destination, accumulator, _seed, hasSeed) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this._seed = _seed; + _this.hasSeed = hasSeed; + _this.index = 0; + return _this; + } + Object.defineProperty(ScanSubscriber.prototype, "seed", { + get: function () { + return this._seed; + }, + set: function (value) { + this.hasSeed = true; + this._seed = value; + }, + enumerable: true, + configurable: true + }); + ScanSubscriber.prototype._next = function (value) { + if (!this.hasSeed) { + this.seed = value; + this.destination.next(value); + } + else { + return this._tryNext(value); + } + }; + ScanSubscriber.prototype._tryNext = function (value) { + var index = this.index++; + var result; + try { + result = this.accumulator(this.seed, value, index); + } + catch (err) { + this.destination.error(err); + } + this.seed = result; + this.destination.next(result); + }; + return ScanSubscriber; + }(Subscriber)); + + function reduce(accumulator, seed) { + if (arguments.length >= 2) { + return function reduceOperatorFunctionWithSeed(source) { + return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source); + }; + } + return function reduceOperatorFunction(source) { + return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source); + }; + } + + function max(comparer) { + var max = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) > 0 ? x : y; } + : function (x, y) { return x > y ? x : y; }; + return reduce(max); + } + + function merge$1() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(merge.apply(void 0, [source].concat(observables))); }; + } + + function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + if (typeof resultSelector === 'function') { + return mergeMap(function () { return innerObservable; }, resultSelector, concurrent); + } + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return mergeMap(function () { return innerObservable; }, concurrent); + } + + function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); }; + } + var MergeScanOperator = (function () { + function MergeScanOperator(accumulator, seed, concurrent) { + this.accumulator = accumulator; + this.seed = seed; + this.concurrent = concurrent; + } + MergeScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); + }; + return MergeScanOperator; + }()); + var MergeScanSubscriber = (function (_super) { + __extends(MergeScanSubscriber, _super); + function MergeScanSubscriber(destination, accumulator, acc, concurrent) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this.acc = acc; + _this.concurrent = concurrent; + _this.hasValue = false; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeScanSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + var index = this.index++; + var destination = this.destination; + var ish = void 0; + try { + var accumulator = this.accumulator; + ish = accumulator(this.acc, value, index); + } + catch (e) { + return destination.error(e); + } + this.active++; + this._innerSub(ish); + } + else { + this.buffer.push(value); + } + }; + MergeScanSubscriber.prototype._innerSub = function (ish) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + MergeScanSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + this.unsubscribe(); + }; + MergeScanSubscriber.prototype.notifyNext = function (innerValue) { + var destination = this.destination; + this.acc = innerValue; + this.hasValue = true; + destination.next(innerValue); + }; + MergeScanSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + }; + return MergeScanSubscriber; + }(SimpleOuterSubscriber)); + + function min(comparer) { + var min = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) < 0 ? x : y; } + : function (x, y) { return x < y ? x : y; }; + return reduce(min); + } + + function multicast(subjectOrSubjectFactory, selector) { + return function multicastOperatorFunction(source) { + var subjectFactory; + if (typeof subjectOrSubjectFactory === 'function') { + subjectFactory = subjectOrSubjectFactory; + } + else { + subjectFactory = function subjectFactory() { + return subjectOrSubjectFactory; + }; + } + if (typeof selector === 'function') { + return source.lift(new MulticastOperator(subjectFactory, selector)); + } + var connectable = Object.create(source, connectableObservableDescriptor); + connectable.source = source; + connectable.subjectFactory = subjectFactory; + return connectable; + }; + } + var MulticastOperator = (function () { + function MulticastOperator(subjectFactory, selector) { + this.subjectFactory = subjectFactory; + this.selector = selector; + } + MulticastOperator.prototype.call = function (subscriber, source) { + var selector = this.selector; + var subject = this.subjectFactory(); + var subscription = selector(subject).subscribe(subscriber); + subscription.add(source.subscribe(subject)); + return subscription; + }; + return MulticastOperator; + }()); + + function onErrorResumeNext$1() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; + } + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); }; + } + var OnErrorResumeNextOperator = (function () { + function OnErrorResumeNextOperator(nextSources) { + this.nextSources = nextSources; + } + OnErrorResumeNextOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); + }; + return OnErrorResumeNextOperator; + }()); + var OnErrorResumeNextSubscriber = (function (_super) { + __extends(OnErrorResumeNextSubscriber, _super); + function OnErrorResumeNextSubscriber(destination, nextSources) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.nextSources = nextSources; + return _this; + } + OnErrorResumeNextSubscriber.prototype.notifyError = function () { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype.notifyComplete = function () { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype._error = function (err) { + this.subscribeToNextSource(); + this.unsubscribe(); + }; + OnErrorResumeNextSubscriber.prototype._complete = function () { + this.subscribeToNextSource(); + this.unsubscribe(); + }; + OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { + var next = this.nextSources.shift(); + if (!!next) { + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe(next, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + else { + this.destination.complete(); + } + }; + return OnErrorResumeNextSubscriber; + }(SimpleOuterSubscriber)); + + function pairwise() { + return function (source) { return source.lift(new PairwiseOperator()); }; + } + var PairwiseOperator = (function () { + function PairwiseOperator() { + } + PairwiseOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new PairwiseSubscriber(subscriber)); + }; + return PairwiseOperator; + }()); + var PairwiseSubscriber = (function (_super) { + __extends(PairwiseSubscriber, _super); + function PairwiseSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasPrev = false; + return _this; + } + PairwiseSubscriber.prototype._next = function (value) { + var pair; + if (this.hasPrev) { + pair = [this.prev, value]; + } + else { + this.hasPrev = true; + } + this.prev = value; + if (pair) { + this.destination.next(pair); + } + }; + return PairwiseSubscriber; + }(Subscriber)); + + function partition$1(predicate, thisArg) { + return function (source) { return [ + filter(predicate, thisArg)(source), + filter(not(predicate, thisArg))(source) + ]; }; + } + + function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error('list of properties cannot be empty.'); + } + return function (source) { return map(plucker(properties, length))(source); }; + } + function plucker(props, length) { + var mapper = function (x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp != null ? currentProp[props[i]] : undefined; + if (p !== void 0) { + currentProp = p; + } + else { + return undefined; + } + } + return currentProp; + }; + return mapper; + } + + function publish(selector) { + return selector ? + multicast(function () { return new Subject(); }, selector) : + multicast(new Subject()); + } + + function publishBehavior(value) { + return function (source) { return multicast(new BehaviorSubject(value))(source); }; + } + + function publishLast() { + return function (source) { return multicast(new AsyncSubject())(source); }; + } + + function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { + if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { + scheduler = selectorOrScheduler; + } + var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; + var subject = new ReplaySubject(bufferSize, windowTime, scheduler); + return function (source) { return multicast(function () { return subject; }, selector)(source); }; + } + + function race$1() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function raceOperatorFunction(source) { + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0]; + } + return source.lift.call(race.apply(void 0, [source].concat(observables))); + }; + } + + function repeat(count) { + if (count === void 0) { count = -1; } + return function (source) { + if (count === 0) { + return empty$1(); + } + else if (count < 0) { + return source.lift(new RepeatOperator(-1, source)); + } + else { + return source.lift(new RepeatOperator(count - 1, source)); + } + }; + } + var RepeatOperator = (function () { + function RepeatOperator(count, source) { + this.count = count; + this.source = source; + } + RepeatOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + }; + return RepeatOperator; + }()); + var RepeatSubscriber = (function (_super) { + __extends(RepeatSubscriber, _super); + function RepeatSubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RepeatSubscriber.prototype.complete = function () { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.complete.call(this); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RepeatSubscriber; + }(Subscriber)); + + function repeatWhen(notifier) { + return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; + } + var RepeatWhenOperator = (function () { + function RepeatWhenOperator(notifier) { + this.notifier = notifier; + } + RepeatWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); + }; + return RepeatWhenOperator; + }()); + var RepeatWhenSubscriber = (function (_super) { + __extends(RepeatWhenSubscriber, _super); + function RepeatWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + _this.sourceIsBeingSubscribedTo = true; + return _this; + } + RepeatWhenSubscriber.prototype.notifyNext = function () { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); + }; + RepeatWhenSubscriber.prototype.notifyComplete = function () { + if (this.sourceIsBeingSubscribedTo === false) { + return _super.prototype.complete.call(this); + } + }; + RepeatWhenSubscriber.prototype.complete = function () { + this.sourceIsBeingSubscribedTo = false; + if (!this.isStopped) { + if (!this.retries) { + this.subscribeToRetries(); + } + if (!this.retriesSubscription || this.retriesSubscription.closed) { + return _super.prototype.complete.call(this); + } + this._unsubscribeAndRecycle(); + this.notifications.next(undefined); + } + }; + RepeatWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; + if (notifications) { + notifications.unsubscribe(); + this.notifications = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + }; + RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + _super.prototype._unsubscribeAndRecycle.call(this); + this._unsubscribe = _unsubscribe; + return this; + }; + RepeatWhenSubscriber.prototype.subscribeToRetries = function () { + this.notifications = new Subject(); + var retries; + try { + var notifier = this.notifier; + retries = notifier(this.notifications); + } + catch (e) { + return _super.prototype.complete.call(this); + } + this.retries = retries; + this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + }; + return RepeatWhenSubscriber; + }(SimpleOuterSubscriber)); + + function retry(count) { + if (count === void 0) { count = -1; } + return function (source) { return source.lift(new RetryOperator(count, source)); }; + } + var RetryOperator = (function () { + function RetryOperator(count, source) { + this.count = count; + this.source = source; + } + RetryOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); + }; + return RetryOperator; + }()); + var RetrySubscriber = (function (_super) { + __extends(RetrySubscriber, _super); + function RetrySubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RetrySubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.error.call(this, err); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RetrySubscriber; + }(Subscriber)); + + function retryWhen(notifier) { + return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); }; + } + var RetryWhenOperator = (function () { + function RetryWhenOperator(notifier, source) { + this.notifier = notifier; + this.source = source; + } + RetryWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); + }; + return RetryWhenOperator; + }()); + var RetryWhenSubscriber = (function (_super) { + __extends(RetryWhenSubscriber, _super); + function RetryWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + return _this; + } + RetryWhenSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var errors = this.errors; + var retries = this.retries; + var retriesSubscription = this.retriesSubscription; + if (!retries) { + errors = new Subject(); + try { + var notifier = this.notifier; + retries = notifier(errors); + } + catch (e) { + return _super.prototype.error.call(this, e); + } + retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + } + else { + this.errors = undefined; + this.retriesSubscription = undefined; + } + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + errors.next(err); + } + }; + RetryWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription; + if (errors) { + errors.unsubscribe(); + this.errors = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + }; + RetryWhenSubscriber.prototype.notifyNext = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + this._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + this.source.subscribe(this); + }; + return RetryWhenSubscriber; + }(SimpleOuterSubscriber)); + + function sample(notifier) { + return function (source) { return source.lift(new SampleOperator(notifier)); }; + } + var SampleOperator = (function () { + function SampleOperator(notifier) { + this.notifier = notifier; + } + SampleOperator.prototype.call = function (subscriber, source) { + var sampleSubscriber = new SampleSubscriber(subscriber); + var subscription = source.subscribe(sampleSubscriber); + subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber))); + return subscription; + }; + return SampleOperator; + }()); + var SampleSubscriber = (function (_super) { + __extends(SampleSubscriber, _super); + function SampleSubscriber() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.hasValue = false; + return _this; + } + SampleSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + }; + SampleSubscriber.prototype.notifyNext = function () { + this.emitValue(); + }; + SampleSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + SampleSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.value); + } + }; + return SampleSubscriber; + }(SimpleOuterSubscriber)); + + function sampleTime(period, scheduler) { + if (scheduler === void 0) { scheduler = async; } + return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); }; + } + var SampleTimeOperator = (function () { + function SampleTimeOperator(period, scheduler) { + this.period = period; + this.scheduler = scheduler; + } + SampleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); + }; + return SampleTimeOperator; + }()); + var SampleTimeSubscriber = (function (_super) { + __extends(SampleTimeSubscriber, _super); + function SampleTimeSubscriber(destination, period, scheduler) { + var _this = _super.call(this, destination) || this; + _this.period = period; + _this.scheduler = scheduler; + _this.hasValue = false; + _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period })); + return _this; + } + SampleTimeSubscriber.prototype._next = function (value) { + this.lastValue = value; + this.hasValue = true; + }; + SampleTimeSubscriber.prototype.notifyNext = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.lastValue); + } + }; + return SampleTimeSubscriber; + }(Subscriber)); + function dispatchNotification(state) { + var subscriber = state.subscriber, period = state.period; + subscriber.notifyNext(); + this.schedule(state, period); + } + + function sequenceEqual(compareTo, comparator) { + return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); }; + } + var SequenceEqualOperator = (function () { + function SequenceEqualOperator(compareTo, comparator) { + this.compareTo = compareTo; + this.comparator = comparator; + } + SequenceEqualOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator)); + }; + return SequenceEqualOperator; + }()); + var SequenceEqualSubscriber = (function (_super) { + __extends(SequenceEqualSubscriber, _super); + function SequenceEqualSubscriber(destination, compareTo, comparator) { + var _this = _super.call(this, destination) || this; + _this.compareTo = compareTo; + _this.comparator = comparator; + _this._a = []; + _this._b = []; + _this._oneComplete = false; + _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); + return _this; + } + SequenceEqualSubscriber.prototype._next = function (value) { + if (this._oneComplete && this._b.length === 0) { + this.emit(false); + } + else { + this._a.push(value); + this.checkValues(); + } + }; + SequenceEqualSubscriber.prototype._complete = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + this.unsubscribe(); + }; + SequenceEqualSubscriber.prototype.checkValues = function () { + var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator; + while (_a.length > 0 && _b.length > 0) { + var a = _a.shift(); + var b = _b.shift(); + var areEqual = false; + try { + areEqual = comparator ? comparator(a, b) : a === b; + } + catch (e) { + this.destination.error(e); + } + if (!areEqual) { + this.emit(false); + } + } + }; + SequenceEqualSubscriber.prototype.emit = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + }; + SequenceEqualSubscriber.prototype.nextB = function (value) { + if (this._oneComplete && this._a.length === 0) { + this.emit(false); + } + else { + this._b.push(value); + this.checkValues(); + } + }; + SequenceEqualSubscriber.prototype.completeB = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; + return SequenceEqualSubscriber; + }(Subscriber)); + var SequenceEqualCompareToSubscriber = (function (_super) { + __extends(SequenceEqualCompareToSubscriber, _super); + function SequenceEqualCompareToSubscriber(destination, parent) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + return _this; + } + SequenceEqualCompareToSubscriber.prototype._next = function (value) { + this.parent.nextB(value); + }; + SequenceEqualCompareToSubscriber.prototype._error = function (err) { + this.parent.error(err); + this.unsubscribe(); + }; + SequenceEqualCompareToSubscriber.prototype._complete = function () { + this.parent.completeB(); + this.unsubscribe(); + }; + return SequenceEqualCompareToSubscriber; + }(Subscriber)); + + function shareSubjectFactory() { + return new Subject(); + } + function share() { + return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); }; + } + + function shareReplay(configOrBufferSize, windowTime, scheduler) { + var config; + if (configOrBufferSize && typeof configOrBufferSize === 'object') { + config = configOrBufferSize; + } + else { + config = { + bufferSize: configOrBufferSize, + windowTime: windowTime, + refCount: false, + scheduler: scheduler + }; + } + return function (source) { return source.lift(shareReplayOperator(config)); }; + } + function shareReplayOperator(_a) { + var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler; + var subject; + var refCount = 0; + var subscription; + var hasError = false; + var isComplete = false; + return function shareReplayOperation(source) { + refCount++; + var innerSub; + if (!subject || hasError) { + hasError = false; + subject = new ReplaySubject(bufferSize, windowTime, scheduler); + innerSub = subject.subscribe(this); + subscription = source.subscribe({ + next: function (value) { subject.next(value); }, + error: function (err) { + hasError = true; + subject.error(err); + }, + complete: function () { + isComplete = true; + subscription = undefined; + subject.complete(); + }, + }); + } + else { + innerSub = subject.subscribe(this); + } + this.add(function () { + refCount--; + innerSub.unsubscribe(); + if (subscription && !isComplete && useRefCount && refCount === 0) { + subscription.unsubscribe(); + subscription = undefined; + subject = undefined; + } + }); + }; + } + + function single(predicate) { + return function (source) { return source.lift(new SingleOperator(predicate, source)); }; + } + var SingleOperator = (function () { + function SingleOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + SingleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); + }; + return SingleOperator; + }()); + var SingleSubscriber = (function (_super) { + __extends(SingleSubscriber, _super); + function SingleSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.seenValue = false; + _this.index = 0; + return _this; + } + SingleSubscriber.prototype.applySingleValue = function (value) { + if (this.seenValue) { + this.destination.error('Sequence contains more than one element'); + } + else { + this.seenValue = true; + this.singleValue = value; + } + }; + SingleSubscriber.prototype._next = function (value) { + var index = this.index++; + if (this.predicate) { + this.tryNext(value, index); + } + else { + this.applySingleValue(value); + } + }; + SingleSubscriber.prototype.tryNext = function (value, index) { + try { + if (this.predicate(value, index, this.source)) { + this.applySingleValue(value); + } + } + catch (err) { + this.destination.error(err); + } + }; + SingleSubscriber.prototype._complete = function () { + var destination = this.destination; + if (this.index > 0) { + destination.next(this.seenValue ? this.singleValue : undefined); + destination.complete(); + } + else { + destination.error(new EmptyError); + } + }; + return SingleSubscriber; + }(Subscriber)); + + function skip(count) { + return function (source) { return source.lift(new SkipOperator(count)); }; + } + var SkipOperator = (function () { + function SkipOperator(total) { + this.total = total; + } + SkipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipSubscriber(subscriber, this.total)); + }; + return SkipOperator; + }()); + var SkipSubscriber = (function (_super) { + __extends(SkipSubscriber, _super); + function SkipSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + SkipSubscriber.prototype._next = function (x) { + if (++this.count > this.total) { + this.destination.next(x); + } + }; + return SkipSubscriber; + }(Subscriber)); + + function skipLast(count) { + return function (source) { return source.lift(new SkipLastOperator(count)); }; + } + var SkipLastOperator = (function () { + function SkipLastOperator(_skipCount) { + this._skipCount = _skipCount; + if (this._skipCount < 0) { + throw new ArgumentOutOfRangeError; + } + } + SkipLastOperator.prototype.call = function (subscriber, source) { + if (this._skipCount === 0) { + return source.subscribe(new Subscriber(subscriber)); + } + else { + return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); + } + }; + return SkipLastOperator; + }()); + var SkipLastSubscriber = (function (_super) { + __extends(SkipLastSubscriber, _super); + function SkipLastSubscriber(destination, _skipCount) { + var _this = _super.call(this, destination) || this; + _this._skipCount = _skipCount; + _this._count = 0; + _this._ring = new Array(_skipCount); + return _this; + } + SkipLastSubscriber.prototype._next = function (value) { + var skipCount = this._skipCount; + var count = this._count++; + if (count < skipCount) { + this._ring[count] = value; + } + else { + var currentIndex = count % skipCount; + var ring = this._ring; + var oldValue = ring[currentIndex]; + ring[currentIndex] = value; + this.destination.next(oldValue); + } + }; + return SkipLastSubscriber; + }(Subscriber)); + + function skipUntil(notifier) { + return function (source) { return source.lift(new SkipUntilOperator(notifier)); }; + } + var SkipUntilOperator = (function () { + function SkipUntilOperator(notifier) { + this.notifier = notifier; + } + SkipUntilOperator.prototype.call = function (destination, source) { + return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); + }; + return SkipUntilOperator; + }()); + var SkipUntilSubscriber = (function (_super) { + __extends(SkipUntilSubscriber, _super); + function SkipUntilSubscriber(destination, notifier) { + var _this = _super.call(this, destination) || this; + _this.hasValue = false; + var innerSubscriber = new SimpleInnerSubscriber(_this); + _this.add(innerSubscriber); + _this.innerSubscription = innerSubscriber; + var innerSubscription = innerSubscribe(notifier, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + _this.add(innerSubscription); + _this.innerSubscription = innerSubscription; + } + return _this; + } + SkipUntilSubscriber.prototype._next = function (value) { + if (this.hasValue) { + _super.prototype._next.call(this, value); + } + }; + SkipUntilSubscriber.prototype.notifyNext = function () { + this.hasValue = true; + if (this.innerSubscription) { + this.innerSubscription.unsubscribe(); + } + }; + SkipUntilSubscriber.prototype.notifyComplete = function () { + }; + return SkipUntilSubscriber; + }(SimpleOuterSubscriber)); + + function skipWhile(predicate) { + return function (source) { return source.lift(new SkipWhileOperator(predicate)); }; + } + var SkipWhileOperator = (function () { + function SkipWhileOperator(predicate) { + this.predicate = predicate; + } + SkipWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); + }; + return SkipWhileOperator; + }()); + var SkipWhileSubscriber = (function (_super) { + __extends(SkipWhileSubscriber, _super); + function SkipWhileSubscriber(destination, predicate) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.skipping = true; + _this.index = 0; + return _this; + } + SkipWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (this.skipping) { + this.tryCallPredicate(value); + } + if (!this.skipping) { + destination.next(value); + } + }; + SkipWhileSubscriber.prototype.tryCallPredicate = function (value) { + try { + var result = this.predicate(value, this.index++); + this.skipping = Boolean(result); + } + catch (err) { + this.destination.error(err); + } + }; + return SkipWhileSubscriber; + }(Subscriber)); + + function startWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; + } + var scheduler = array[array.length - 1]; + if (isScheduler(scheduler)) { + array.pop(); + return function (source) { return concat(array, source, scheduler); }; + } + else { + return function (source) { return concat(array, source); }; + } + } + + var SubscribeOnObservable = (function (_super) { + __extends(SubscribeOnObservable, _super); + function SubscribeOnObservable(source, delayTime, scheduler) { + if (delayTime === void 0) { delayTime = 0; } + if (scheduler === void 0) { scheduler = asap; } + var _this = _super.call(this) || this; + _this.source = source; + _this.delayTime = delayTime; + _this.scheduler = scheduler; + if (!isNumeric(delayTime) || delayTime < 0) { + _this.delayTime = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + _this.scheduler = asap; + } + return _this; + } + SubscribeOnObservable.create = function (source, delay, scheduler) { + if (delay === void 0) { delay = 0; } + if (scheduler === void 0) { scheduler = asap; } + return new SubscribeOnObservable(source, delay, scheduler); + }; + SubscribeOnObservable.dispatch = function (arg) { + var source = arg.source, subscriber = arg.subscriber; + return this.add(source.subscribe(subscriber)); + }; + SubscribeOnObservable.prototype._subscribe = function (subscriber) { + var delay = this.delayTime; + var source = this.source; + var scheduler = this.scheduler; + return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { + source: source, subscriber: subscriber + }); + }; + return SubscribeOnObservable; + }(Observable)); + + function subscribeOn(scheduler, delay) { + if (delay === void 0) { delay = 0; } + return function subscribeOnOperatorFunction(source) { + return source.lift(new SubscribeOnOperator(scheduler, delay)); + }; + } + var SubscribeOnOperator = (function () { + function SubscribeOnOperator(scheduler, delay) { + this.scheduler = scheduler; + this.delay = delay; + } + SubscribeOnOperator.prototype.call = function (subscriber, source) { + return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber); + }; + return SubscribeOnOperator; + }()); + + function switchMap(project, resultSelector) { + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; + } + return function (source) { return source.lift(new SwitchMapOperator(project)); }; + } + var SwitchMapOperator = (function () { + function SwitchMapOperator(project) { + this.project = project; + } + SwitchMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + }; + return SwitchMapOperator; + }()); + var SwitchMapSubscriber = (function (_super) { + __extends(SwitchMapSubscriber, _super); + function SwitchMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.index = 0; + return _this; + } + SwitchMapSubscriber.prototype._next = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (error) { + this.destination.error(error); + return; + } + this._innerSub(result); + }; + SwitchMapSubscriber.prototype._innerSub = function (result) { + var innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + var innerSubscriber = new SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + this.innerSubscription = innerSubscribe(result, innerSubscriber); + if (this.innerSubscription !== innerSubscriber) { + destination.add(this.innerSubscription); + } + }; + SwitchMapSubscriber.prototype._complete = function () { + var innerSubscription = this.innerSubscription; + if (!innerSubscription || innerSubscription.closed) { + _super.prototype._complete.call(this); + } + this.unsubscribe(); + }; + SwitchMapSubscriber.prototype._unsubscribe = function () { + this.innerSubscription = undefined; + }; + SwitchMapSubscriber.prototype.notifyComplete = function () { + this.innerSubscription = undefined; + if (this.isStopped) { + _super.prototype._complete.call(this); + } + }; + SwitchMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + return SwitchMapSubscriber; + }(SimpleOuterSubscriber)); + + function switchAll() { + return switchMap(identity); + } + + function switchMapTo(innerObservable, resultSelector) { + return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; }); + } + + function takeUntil(notifier) { + return function (source) { return source.lift(new TakeUntilOperator(notifier)); }; + } + var TakeUntilOperator = (function () { + function TakeUntilOperator(notifier) { + this.notifier = notifier; + } + TakeUntilOperator.prototype.call = function (subscriber, source) { + var takeUntilSubscriber = new TakeUntilSubscriber(subscriber); + var notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber)); + if (notifierSubscription && !takeUntilSubscriber.seenValue) { + takeUntilSubscriber.add(notifierSubscription); + return source.subscribe(takeUntilSubscriber); + } + return takeUntilSubscriber; + }; + return TakeUntilOperator; + }()); + var TakeUntilSubscriber = (function (_super) { + __extends(TakeUntilSubscriber, _super); + function TakeUntilSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.seenValue = false; + return _this; + } + TakeUntilSubscriber.prototype.notifyNext = function () { + this.seenValue = true; + this.complete(); + }; + TakeUntilSubscriber.prototype.notifyComplete = function () { + }; + return TakeUntilSubscriber; + }(SimpleOuterSubscriber)); + + function takeWhile(predicate, inclusive) { + if (inclusive === void 0) { inclusive = false; } + return function (source) { + return source.lift(new TakeWhileOperator(predicate, inclusive)); + }; + } + var TakeWhileOperator = (function () { + function TakeWhileOperator(predicate, inclusive) { + this.predicate = predicate; + this.inclusive = inclusive; + } + TakeWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive)); + }; + return TakeWhileOperator; + }()); + var TakeWhileSubscriber = (function (_super) { + __extends(TakeWhileSubscriber, _super); + function TakeWhileSubscriber(destination, predicate, inclusive) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.inclusive = inclusive; + _this.index = 0; + return _this; + } + TakeWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + var result; + try { + result = this.predicate(value, this.index++); + } + catch (err) { + destination.error(err); + return; + } + this.nextOrComplete(value, result); + }; + TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) { + var destination = this.destination; + if (Boolean(predicateResult)) { + destination.next(value); + } + else { + if (this.inclusive) { + destination.next(value); + } + destination.complete(); + } + }; + return TakeWhileSubscriber; + }(Subscriber)); + + function tap(nextOrObserver, error, complete) { + return function tapOperatorFunction(source) { + return source.lift(new DoOperator(nextOrObserver, error, complete)); + }; + } + var DoOperator = (function () { + function DoOperator(nextOrObserver, error, complete) { + this.nextOrObserver = nextOrObserver; + this.error = error; + this.complete = complete; + } + DoOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + }; + return DoOperator; + }()); + var TapSubscriber = (function (_super) { + __extends(TapSubscriber, _super); + function TapSubscriber(destination, observerOrNext, error, complete) { + var _this = _super.call(this, destination) || this; + _this._tapNext = noop; + _this._tapError = noop; + _this._tapComplete = noop; + _this._tapError = error || noop; + _this._tapComplete = complete || noop; + if (isFunction(observerOrNext)) { + _this._context = _this; + _this._tapNext = observerOrNext; + } + else if (observerOrNext) { + _this._context = observerOrNext; + _this._tapNext = observerOrNext.next || noop; + _this._tapError = observerOrNext.error || noop; + _this._tapComplete = observerOrNext.complete || noop; + } + return _this; + } + TapSubscriber.prototype._next = function (value) { + try { + this._tapNext.call(this._context, value); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(value); + }; + TapSubscriber.prototype._error = function (err) { + try { + this._tapError.call(this._context, err); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.error(err); + }; + TapSubscriber.prototype._complete = function () { + try { + this._tapComplete.call(this._context); + } + catch (err) { + this.destination.error(err); + return; + } + return this.destination.complete(); + }; + return TapSubscriber; + }(Subscriber)); + + var defaultThrottleConfig = { + leading: true, + trailing: false + }; + function throttle(durationSelector, config) { + if (config === void 0) { config = defaultThrottleConfig; } + return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); }; + } + var ThrottleOperator = (function () { + function ThrottleOperator(durationSelector, leading, trailing) { + this.durationSelector = durationSelector; + this.leading = leading; + this.trailing = trailing; + } + ThrottleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); + }; + return ThrottleOperator; + }()); + var ThrottleSubscriber = (function (_super) { + __extends(ThrottleSubscriber, _super); + function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.durationSelector = durationSelector; + _this._leading = _leading; + _this._trailing = _trailing; + _this._hasValue = false; + return _this; + } + ThrottleSubscriber.prototype._next = function (value) { + this._hasValue = true; + this._sendValue = value; + if (!this._throttled) { + if (this._leading) { + this.send(); + } + else { + this.throttle(value); + } + } + }; + ThrottleSubscriber.prototype.send = function () { + var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue; + if (_hasValue) { + this.destination.next(_sendValue); + this.throttle(_sendValue); + } + this._hasValue = false; + this._sendValue = undefined; + }; + ThrottleSubscriber.prototype.throttle = function (value) { + var duration = this.tryDurationSelector(value); + if (!!duration) { + this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this))); + } + }; + ThrottleSubscriber.prototype.tryDurationSelector = function (value) { + try { + return this.durationSelector(value); + } + catch (err) { + this.destination.error(err); + return null; + } + }; + ThrottleSubscriber.prototype.throttlingDone = function () { + var _a = this, _throttled = _a._throttled, _trailing = _a._trailing; + if (_throttled) { + _throttled.unsubscribe(); + } + this._throttled = undefined; + if (_trailing) { + this.send(); + } + }; + ThrottleSubscriber.prototype.notifyNext = function () { + this.throttlingDone(); + }; + ThrottleSubscriber.prototype.notifyComplete = function () { + this.throttlingDone(); + }; + return ThrottleSubscriber; + }(SimpleOuterSubscriber)); + + function throttleTime(duration, scheduler, config) { + if (scheduler === void 0) { scheduler = async; } + if (config === void 0) { config = defaultThrottleConfig; } + return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); }; + } + var ThrottleTimeOperator = (function () { + function ThrottleTimeOperator(duration, scheduler, leading, trailing) { + this.duration = duration; + this.scheduler = scheduler; + this.leading = leading; + this.trailing = trailing; + } + ThrottleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); + }; + return ThrottleTimeOperator; + }()); + var ThrottleTimeSubscriber = (function (_super) { + __extends(ThrottleTimeSubscriber, _super); + function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) { + var _this = _super.call(this, destination) || this; + _this.duration = duration; + _this.scheduler = scheduler; + _this.leading = leading; + _this.trailing = trailing; + _this._hasTrailingValue = false; + _this._trailingValue = null; + return _this; + } + ThrottleTimeSubscriber.prototype._next = function (value) { + if (this.throttled) { + if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + else { + this.add(this.throttled = this.scheduler.schedule(dispatchNext$3, this.duration, { subscriber: this })); + if (this.leading) { + this.destination.next(value); + } + else if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + }; + ThrottleTimeSubscriber.prototype._complete = function () { + if (this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this.destination.complete(); + } + else { + this.destination.complete(); + } + }; + ThrottleTimeSubscriber.prototype.clearThrottle = function () { + var throttled = this.throttled; + if (throttled) { + if (this.trailing && this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + throttled.unsubscribe(); + this.remove(throttled); + this.throttled = null; + } + }; + return ThrottleTimeSubscriber; + }(Subscriber)); + function dispatchNext$3(arg) { + var subscriber = arg.subscriber; + subscriber.clearThrottle(); + } + + function timeInterval(scheduler) { + if (scheduler === void 0) { scheduler = async; } + return function (source) { return defer(function () { + return source.pipe(scan(function (_a, value) { + var current = _a.current; + return ({ value: value, current: scheduler.now(), last: current }); + }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) { + var current = _a.current, last = _a.last, value = _a.value; + return new TimeInterval(value, current - last); + })); + }); }; + } + var TimeInterval = (function () { + function TimeInterval(value, interval) { + this.value = value; + this.interval = interval; + } + return TimeInterval; + }()); + + function timeoutWith(due, withObservable, scheduler) { + if (scheduler === void 0) { scheduler = async; } + return function (source) { + var absoluteTimeout = isDate(due); + var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); + }; + } + var TimeoutWithOperator = (function () { + function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { + this.waitFor = waitFor; + this.absoluteTimeout = absoluteTimeout; + this.withObservable = withObservable; + this.scheduler = scheduler; + } + TimeoutWithOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); + }; + return TimeoutWithOperator; + }()); + var TimeoutWithSubscriber = (function (_super) { + __extends(TimeoutWithSubscriber, _super); + function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { + var _this = _super.call(this, destination) || this; + _this.absoluteTimeout = absoluteTimeout; + _this.waitFor = waitFor; + _this.withObservable = withObservable; + _this.scheduler = scheduler; + _this.scheduleTimeout(); + return _this; + } + TimeoutWithSubscriber.dispatchTimeout = function (subscriber) { + var withObservable = subscriber.withObservable; + subscriber._unsubscribeAndRecycle(); + subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber))); + }; + TimeoutWithSubscriber.prototype.scheduleTimeout = function () { + var action = this.action; + if (action) { + this.action = action.schedule(this, this.waitFor); + } + else { + this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); + } + }; + TimeoutWithSubscriber.prototype._next = function (value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + _super.prototype._next.call(this, value); + }; + TimeoutWithSubscriber.prototype._unsubscribe = function () { + this.action = undefined; + this.scheduler = null; + this.withObservable = null; + }; + return TimeoutWithSubscriber; + }(SimpleOuterSubscriber)); + + function timeout(due, scheduler) { + if (scheduler === void 0) { scheduler = async; } + return timeoutWith(due, throwError(new TimeoutError()), scheduler); + } + + function timestamp(scheduler) { + if (scheduler === void 0) { scheduler = async; } + return map(function (value) { return new Timestamp(value, scheduler.now()); }); + } + var Timestamp = (function () { + function Timestamp(value, timestamp) { + this.value = value; + this.timestamp = timestamp; + } + return Timestamp; + }()); + + function toArrayReducer(arr, item, index) { + if (index === 0) { + return [item]; + } + arr.push(item); + return arr; + } + function toArray() { + return reduce(toArrayReducer, []); + } + + function window$1(windowBoundaries) { + return function windowOperatorFunction(source) { + return source.lift(new WindowOperator(windowBoundaries)); + }; + } + var WindowOperator = (function () { + function WindowOperator(windowBoundaries) { + this.windowBoundaries = windowBoundaries; + } + WindowOperator.prototype.call = function (subscriber, source) { + var windowSubscriber = new WindowSubscriber(subscriber); + var sourceSubscription = source.subscribe(windowSubscriber); + if (!sourceSubscription.closed) { + windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber))); + } + return sourceSubscription; + }; + return WindowOperator; + }()); + var WindowSubscriber = (function (_super) { + __extends(WindowSubscriber, _super); + function WindowSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.window = new Subject(); + destination.next(_this.window); + return _this; + } + WindowSubscriber.prototype.notifyNext = function () { + this.openWindow(); + }; + WindowSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function () { + this._complete(); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + }; + WindowSubscriber.prototype._unsubscribe = function () { + this.window = null; + }; + WindowSubscriber.prototype.openWindow = function () { + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var destination = this.destination; + var newWindow = this.window = new Subject(); + destination.next(newWindow); + }; + return WindowSubscriber; + }(SimpleOuterSubscriber)); + + function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { startWindowEvery = 0; } + return function windowCountOperatorFunction(source) { + return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); + }; + } + var WindowCountOperator = (function () { + function WindowCountOperator(windowSize, startWindowEvery) { + this.windowSize = windowSize; + this.startWindowEvery = startWindowEvery; + } + WindowCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + }; + return WindowCountOperator; + }()); + var WindowCountSubscriber = (function (_super) { + __extends(WindowCountSubscriber, _super); + function WindowCountSubscriber(destination, windowSize, startWindowEvery) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowSize = windowSize; + _this.startWindowEvery = startWindowEvery; + _this.windows = [new Subject()]; + _this.count = 0; + destination.next(_this.windows[0]); + return _this; + } + WindowCountSubscriber.prototype._next = function (value) { + var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; + var destination = this.destination; + var windowSize = this.windowSize; + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len && !this.closed; i++) { + windows[i].next(value); + } + var c = this.count - windowSize + 1; + if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { + windows.shift().complete(); + } + if (++this.count % startWindowEvery === 0 && !this.closed) { + var window_1 = new Subject(); + windows.push(window_1); + destination.next(window_1); + } + }; + WindowCountSubscriber.prototype._error = function (err) { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().error(err); + } + } + this.destination.error(err); + }; + WindowCountSubscriber.prototype._complete = function () { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().complete(); + } + } + this.destination.complete(); + }; + WindowCountSubscriber.prototype._unsubscribe = function () { + this.count = 0; + this.windows = null; + }; + return WindowCountSubscriber; + }(Subscriber)); + + function windowTime(windowTimeSpan) { + var scheduler = async; + var windowCreationInterval = null; + var maxWindowSize = Number.POSITIVE_INFINITY; + if (isScheduler(arguments[3])) { + scheduler = arguments[3]; + } + if (isScheduler(arguments[2])) { + scheduler = arguments[2]; + } + else if (isNumeric(arguments[2])) { + maxWindowSize = Number(arguments[2]); + } + if (isScheduler(arguments[1])) { + scheduler = arguments[1]; + } + else if (isNumeric(arguments[1])) { + windowCreationInterval = Number(arguments[1]); + } + return function windowTimeOperatorFunction(source) { + return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); + }; + } + var WindowTimeOperator = (function () { + function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + this.windowTimeSpan = windowTimeSpan; + this.windowCreationInterval = windowCreationInterval; + this.maxWindowSize = maxWindowSize; + this.scheduler = scheduler; + } + WindowTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); + }; + return WindowTimeOperator; + }()); + var CountedSubject = (function (_super) { + __extends(CountedSubject, _super); + function CountedSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._numberOfNextedValues = 0; + return _this; + } + CountedSubject.prototype.next = function (value) { + this._numberOfNextedValues++; + _super.prototype.next.call(this, value); + }; + Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", { + get: function () { + return this._numberOfNextedValues; + }, + enumerable: true, + configurable: true + }); + return CountedSubject; + }(Subject)); + var WindowTimeSubscriber = (function (_super) { + __extends(WindowTimeSubscriber, _super); + function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowTimeSpan = windowTimeSpan; + _this.windowCreationInterval = windowCreationInterval; + _this.maxWindowSize = maxWindowSize; + _this.scheduler = scheduler; + _this.windows = []; + var window = _this.openWindow(); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + var closeState = { subscriber: _this, window: window, context: null }; + var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); + } + else { + var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan }; + _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); + } + return _this; + } + WindowTimeSubscriber.prototype._next = function (value) { + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len; i++) { + var window_1 = windows[i]; + if (!window_1.closed) { + window_1.next(value); + if (window_1.numberOfNextedValues >= this.maxWindowSize) { + this.closeWindow(window_1); + } + } + } + }; + WindowTimeSubscriber.prototype._error = function (err) { + var windows = this.windows; + while (windows.length > 0) { + windows.shift().error(err); + } + this.destination.error(err); + }; + WindowTimeSubscriber.prototype._complete = function () { + var windows = this.windows; + while (windows.length > 0) { + var window_2 = windows.shift(); + if (!window_2.closed) { + window_2.complete(); + } + } + this.destination.complete(); + }; + WindowTimeSubscriber.prototype.openWindow = function () { + var window = new CountedSubject(); + this.windows.push(window); + var destination = this.destination; + destination.next(window); + return window; + }; + WindowTimeSubscriber.prototype.closeWindow = function (window) { + window.complete(); + var windows = this.windows; + windows.splice(windows.indexOf(window), 1); + }; + return WindowTimeSubscriber; + }(Subscriber)); + function dispatchWindowTimeSpanOnly(state) { + var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; + if (window) { + subscriber.closeWindow(window); + } + state.window = subscriber.openWindow(); + this.schedule(state, windowTimeSpan); + } + function dispatchWindowCreation(state) { + var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; + var window = subscriber.openWindow(); + var action = this; + var context = { action: action, subscription: null }; + var timeSpanState = { subscriber: subscriber, window: window, context: context }; + context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); + action.add(context.subscription); + action.schedule(state, windowCreationInterval); + } + function dispatchWindowClose(state) { + var subscriber = state.subscriber, window = state.window, context = state.context; + if (context && context.action && context.subscription) { + context.action.remove(context.subscription); + } + subscriber.closeWindow(window); + } + + function windowToggle(openings, closingSelector) { + return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); }; + } + var WindowToggleOperator = (function () { + function WindowToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + WindowToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return WindowToggleOperator; + }()); + var WindowToggleSubscriber = (function (_super) { + __extends(WindowToggleSubscriber, _super); + function WindowToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.openings = openings; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings)); + return _this; + } + WindowToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + if (contexts) { + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].window.next(value); + } + } + }; + WindowToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_1 = contexts[index]; + context_1.window.error(err); + context_1.subscription.unsubscribe(); + } + } + _super.prototype._error.call(this, err); + }; + WindowToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_2 = contexts[index]; + context_2.window.complete(); + context_2.subscription.unsubscribe(); + } + } + _super.prototype._complete.call(this); + }; + WindowToggleSubscriber.prototype._unsubscribe = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_3 = contexts[index]; + context_3.window.unsubscribe(); + context_3.subscription.unsubscribe(); + } + } + }; + WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (outerValue === this.openings) { + var closingNotifier = void 0; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(innerValue); + } + catch (e) { + return this.error(e); + } + var window_1 = new Subject(); + var subscription = new Subscription(); + var context_4 = { window: window_1, subscription: subscription }; + this.contexts.push(context_4); + var innerSubscription = subscribeToResult(this, closingNotifier, context_4); + if (innerSubscription.closed) { + this.closeWindow(this.contexts.length - 1); + } + else { + innerSubscription.context = context_4; + subscription.add(innerSubscription); + } + this.destination.next(window_1); + } + else { + this.closeWindow(this.contexts.indexOf(outerValue)); + } + }; + WindowToggleSubscriber.prototype.notifyError = function (err) { + this.error(err); + }; + WindowToggleSubscriber.prototype.notifyComplete = function (inner) { + if (inner !== this.openSubscription) { + this.closeWindow(this.contexts.indexOf(inner.context)); + } + }; + WindowToggleSubscriber.prototype.closeWindow = function (index) { + if (index === -1) { + return; + } + var contexts = this.contexts; + var context = contexts[index]; + var window = context.window, subscription = context.subscription; + contexts.splice(index, 1); + window.complete(); + subscription.unsubscribe(); + }; + return WindowToggleSubscriber; + }(OuterSubscriber)); + + function windowWhen(closingSelector) { + return function windowWhenOperatorFunction(source) { + return source.lift(new WindowOperator$1(closingSelector)); + }; + } + var WindowOperator$1 = (function () { + function WindowOperator(closingSelector) { + this.closingSelector = closingSelector; + } + WindowOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowSubscriber$1(subscriber, this.closingSelector)); + }; + return WindowOperator; + }()); + var WindowSubscriber$1 = (function (_super) { + __extends(WindowSubscriber, _super); + function WindowSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.closingSelector = closingSelector; + _this.openWindow(); + return _this; + } + WindowSubscriber.prototype.notifyNext = function (_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function (innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype.unsubscribeClosingNotification = function () { + if (this.closingNotification) { + this.closingNotification.unsubscribe(); + } + }; + WindowSubscriber.prototype.openWindow = function (innerSub) { + if (innerSub === void 0) { innerSub = null; } + if (innerSub) { + this.remove(innerSub); + innerSub.unsubscribe(); + } + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var window = this.window = new Subject(); + this.destination.next(window); + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (e) { + this.destination.error(e); + this.window.error(e); + return; + } + this.add(this.closingNotification = subscribeToResult(this, closingNotifier)); + }; + return WindowSubscriber; + }(OuterSubscriber)); + + function withLatestFrom() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return function (source) { + var project; + if (typeof args[args.length - 1] === 'function') { + project = args.pop(); + } + var observables = args; + return source.lift(new WithLatestFromOperator(observables, project)); + }; + } + var WithLatestFromOperator = (function () { + function WithLatestFromOperator(observables, project) { + this.observables = observables; + this.project = project; + } + WithLatestFromOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + }; + return WithLatestFromOperator; + }()); + var WithLatestFromSubscriber = (function (_super) { + __extends(WithLatestFromSubscriber, _super); + function WithLatestFromSubscriber(destination, observables, project) { + var _this = _super.call(this, destination) || this; + _this.observables = observables; + _this.project = project; + _this.toRespond = []; + var len = observables.length; + _this.values = new Array(len); + for (var i = 0; i < len; i++) { + _this.toRespond.push(i); + } + for (var i = 0; i < len; i++) { + var observable = observables[i]; + _this.add(subscribeToResult(_this, observable, undefined, i)); + } + return _this; + } + WithLatestFromSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + this.values[outerIndex] = innerValue; + var toRespond = this.toRespond; + if (toRespond.length > 0) { + var found = toRespond.indexOf(outerIndex); + if (found !== -1) { + toRespond.splice(found, 1); + } + } + }; + WithLatestFromSubscriber.prototype.notifyComplete = function () { + }; + WithLatestFromSubscriber.prototype._next = function (value) { + if (this.toRespond.length === 0) { + var args = [value].concat(this.values); + if (this.project) { + this._tryProject(args); + } + else { + this.destination.next(args); + } + } + }; + WithLatestFromSubscriber.prototype._tryProject = function (args) { + var result; + try { + result = this.project.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return WithLatestFromSubscriber; + }(OuterSubscriber)); + + function zip$1() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function zipOperatorFunction(source) { + return source.lift.call(zip.apply(void 0, [source].concat(observables))); + }; + } + + function zipAll(project) { + return function (source) { return source.lift(new ZipOperator(project)); }; + } + + + + var _operators = /*#__PURE__*/Object.freeze({ + audit: audit, + auditTime: auditTime, + buffer: buffer, + bufferCount: bufferCount, + bufferTime: bufferTime, + bufferToggle: bufferToggle, + bufferWhen: bufferWhen, + catchError: catchError, + combineAll: combineAll, + combineLatest: combineLatest$1, + concat: concat$1, + concatAll: concatAll, + concatMap: concatMap, + concatMapTo: concatMapTo, + count: count, + debounce: debounce, + debounceTime: debounceTime, + defaultIfEmpty: defaultIfEmpty, + delay: delay, + delayWhen: delayWhen, + dematerialize: dematerialize, + distinct: distinct, + distinctUntilChanged: distinctUntilChanged, + distinctUntilKeyChanged: distinctUntilKeyChanged, + elementAt: elementAt, + endWith: endWith, + every: every, + exhaust: exhaust, + exhaustMap: exhaustMap, + expand: expand, + filter: filter, + finalize: finalize, + find: find, + findIndex: findIndex, + first: first, + groupBy: groupBy, + ignoreElements: ignoreElements, + isEmpty: isEmpty, + last: last, + map: map, + mapTo: mapTo, + materialize: materialize, + max: max, + merge: merge$1, + mergeAll: mergeAll, + mergeMap: mergeMap, + flatMap: flatMap, + mergeMapTo: mergeMapTo, + mergeScan: mergeScan, + min: min, + multicast: multicast, + observeOn: observeOn, + onErrorResumeNext: onErrorResumeNext$1, + pairwise: pairwise, + partition: partition$1, + pluck: pluck, + publish: publish, + publishBehavior: publishBehavior, + publishLast: publishLast, + publishReplay: publishReplay, + race: race$1, + reduce: reduce, + repeat: repeat, + repeatWhen: repeatWhen, + retry: retry, + retryWhen: retryWhen, + refCount: refCount, + sample: sample, + sampleTime: sampleTime, + scan: scan, + sequenceEqual: sequenceEqual, + share: share, + shareReplay: shareReplay, + single: single, + skip: skip, + skipLast: skipLast, + skipUntil: skipUntil, + skipWhile: skipWhile, + startWith: startWith, + subscribeOn: subscribeOn, + switchAll: switchAll, + switchMap: switchMap, + switchMapTo: switchMapTo, + take: take, + takeLast: takeLast, + takeUntil: takeUntil, + takeWhile: takeWhile, + tap: tap, + throttle: throttle, + throttleTime: throttleTime, + throwIfEmpty: throwIfEmpty, + timeInterval: timeInterval, + timeout: timeout, + timeoutWith: timeoutWith, + timestamp: timestamp, + toArray: toArray, + window: window$1, + windowCount: windowCount, + windowTime: windowTime, + windowToggle: windowToggle, + windowWhen: windowWhen, + withLatestFrom: withLatestFrom, + zip: zip$1, + zipAll: zipAll + }); + + var SubscriptionLog = (function () { + function SubscriptionLog(subscribedFrame, unsubscribedFrame) { + if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; } + this.subscribedFrame = subscribedFrame; + this.unsubscribedFrame = unsubscribedFrame; + } + return SubscriptionLog; + }()); + + var SubscriptionLoggable = (function () { + function SubscriptionLoggable() { + this.subscriptions = []; + } + SubscriptionLoggable.prototype.logSubscribedFrame = function () { + this.subscriptions.push(new SubscriptionLog(this.scheduler.now())); + return this.subscriptions.length - 1; + }; + SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) { + var subscriptionLogs = this.subscriptions; + var oldSubscriptionLog = subscriptionLogs[index]; + subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now()); + }; + return SubscriptionLoggable; + }()); + + function applyMixins(derivedCtor, baseCtors) { + for (var i = 0, len = baseCtors.length; i < len; i++) { + var baseCtor = baseCtors[i]; + var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype); + for (var j = 0, len2 = propertyKeys.length; j < len2; j++) { + var name_1 = propertyKeys[j]; + derivedCtor.prototype[name_1] = baseCtor.prototype[name_1]; + } + } + } + + var ColdObservable = (function (_super) { + __extends(ColdObservable, _super); + function ColdObservable(messages, scheduler) { + var _this = _super.call(this, function (subscriber) { + var observable = this; + var index = observable.logSubscribedFrame(); + var subscription = new Subscription(); + subscription.add(new Subscription(function () { + observable.logUnsubscribedFrame(index); + })); + observable.scheduleMessages(subscriber); + return subscription; + }) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + ColdObservable.prototype.scheduleMessages = function (subscriber) { + var messagesLength = this.messages.length; + for (var i = 0; i < messagesLength; i++) { + var message = this.messages[i]; + subscriber.add(this.scheduler.schedule(function (_a) { + var message = _a.message, subscriber = _a.subscriber; + message.notification.observe(subscriber); + }, message.frame, { message: message, subscriber: subscriber })); + } + }; + return ColdObservable; + }(Observable)); + applyMixins(ColdObservable, [SubscriptionLoggable]); + + var HotObservable = (function (_super) { + __extends(HotObservable, _super); + function HotObservable(messages, scheduler) { + var _this = _super.call(this) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + HotObservable.prototype._subscribe = function (subscriber) { + var subject = this; + var index = subject.logSubscribedFrame(); + var subscription = new Subscription(); + subscription.add(new Subscription(function () { + subject.logUnsubscribedFrame(index); + })); + subscription.add(_super.prototype._subscribe.call(this, subscriber)); + return subscription; + }; + HotObservable.prototype.setup = function () { + var subject = this; + var messagesLength = subject.messages.length; + for (var i = 0; i < messagesLength; i++) { + (function () { + var message = subject.messages[i]; + subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame); + })(); + } + }; + return HotObservable; + }(Subject)); + applyMixins(HotObservable, [SubscriptionLoggable]); + + var defaultMaxFrame = 750; + var TestScheduler = (function (_super) { + __extends(TestScheduler, _super); + function TestScheduler(assertDeepEqual) { + var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this; + _this.assertDeepEqual = assertDeepEqual; + _this.hotObservables = []; + _this.coldObservables = []; + _this.flushTests = []; + _this.runMode = false; + return _this; + } + TestScheduler.prototype.createTime = function (marbles) { + var indexOf = marbles.indexOf('|'); + if (indexOf === -1) { + throw new Error('marble diagram for time should have a completion marker "|"'); + } + return indexOf * TestScheduler.frameTimeFactor; + }; + TestScheduler.prototype.createColdObservable = function (marbles, values, error) { + if (marbles.indexOf('^') !== -1) { + throw new Error('cold observable cannot have subscription offset "^"'); + } + if (marbles.indexOf('!') !== -1) { + throw new Error('cold observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var cold = new ColdObservable(messages, this); + this.coldObservables.push(cold); + return cold; + }; + TestScheduler.prototype.createHotObservable = function (marbles, values, error) { + if (marbles.indexOf('!') !== -1) { + throw new Error('hot observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var subject = new HotObservable(messages, this); + this.hotObservables.push(subject); + return subject; + }; + TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) { + var _this = this; + var messages = []; + observable.subscribe(function (value) { + messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) }); + }, function (err) { + messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) }); + }, function () { + messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() }); + }); + return messages; + }; + TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) { + var _this = this; + if (subscriptionMarbles === void 0) { subscriptionMarbles = null; } + var actual = []; + var flushTest = { actual: actual, ready: false }; + var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode); + var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ? + 0 : subscriptionParsed.subscribedFrame; + var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame; + var subscription; + this.schedule(function () { + subscription = observable.subscribe(function (x) { + var value = x; + if (x instanceof Observable) { + value = _this.materializeInnerObservable(value, _this.frame); + } + actual.push({ frame: _this.frame, notification: Notification.createNext(value) }); + }, function (err) { + actual.push({ frame: _this.frame, notification: Notification.createError(err) }); + }, function () { + actual.push({ frame: _this.frame, notification: Notification.createComplete() }); + }); + }, subscriptionFrame); + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame); + } + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marbles, values, errorValue) { + flushTest.ready = true; + flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode); + } + }; + }; + TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) { + var flushTest = { actual: actualSubscriptionLogs, ready: false }; + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marbles) { + var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles; + flushTest.ready = true; + flushTest.expected = marblesArray.map(function (marbles) { + return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode); + }); + } + }; + }; + TestScheduler.prototype.flush = function () { + var _this = this; + var hotObservables = this.hotObservables; + while (hotObservables.length > 0) { + hotObservables.shift().setup(); + } + _super.prototype.flush.call(this); + this.flushTests = this.flushTests.filter(function (test) { + if (test.ready) { + _this.assertDeepEqual(test.actual, test.expected); + return false; + } + return true; + }); + }; + TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) { + var _this = this; + if (runMode === void 0) { runMode = false; } + if (typeof marbles !== 'string') { + return new SubscriptionLog(Number.POSITIVE_INFINITY); + } + var len = marbles.length; + var groupStart = -1; + var subscriptionFrame = Number.POSITIVE_INFINITY; + var unsubscriptionFrame = Number.POSITIVE_INFINITY; + var frame = 0; + var _loop_1 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '^': + if (subscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + subscriptionFrame = groupStart > -1 ? groupStart : frame; + advanceFrameBy(1); + break; + case '!': + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + unsubscriptionFrame = groupStart > -1 ? groupStart : frame; + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + var buffer = marbles.slice(i); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_1.frameTimeFactor); + break; + } + } + } + throw new Error('there can only be \'^\' and \'!\' markers in a ' + + 'subscription marble diagram. Found instead \'' + c + '\'.'); + } + frame = nextFrame; + out_i_1 = i; + }; + var this_1 = this, out_i_1; + for (var i = 0; i < len; i++) { + _loop_1(i); + i = out_i_1; + } + if (unsubscriptionFrame < 0) { + return new SubscriptionLog(subscriptionFrame); + } + else { + return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame); + } + }; + TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) { + var _this = this; + if (materializeInnerObservables === void 0) { materializeInnerObservables = false; } + if (runMode === void 0) { runMode = false; } + if (marbles.indexOf('!') !== -1) { + throw new Error('conventional marble diagrams cannot have the ' + + 'unsubscription marker "!"'); + } + var len = marbles.length; + var testMessages = []; + var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^'); + var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor); + var getValue = typeof values !== 'object' ? + function (x) { return x; } : + function (x) { + if (materializeInnerObservables && values[x] instanceof ColdObservable) { + return values[x].messages; + } + return values[x]; + }; + var groupStart = -1; + var _loop_2 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var notification = void 0; + var c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '|': + notification = Notification.createComplete(); + advanceFrameBy(1); + break; + case '^': + advanceFrameBy(1); + break; + case '#': + notification = Notification.createError(errorValue || 'error'); + advanceFrameBy(1); + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + var buffer = marbles.slice(i); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_2.frameTimeFactor); + break; + } + } + } + notification = Notification.createNext(getValue(c)); + advanceFrameBy(1); + break; + } + if (notification) { + testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification }); + } + frame = nextFrame; + out_i_2 = i; + }; + var this_2 = this, out_i_2; + for (var i = 0; i < len; i++) { + _loop_2(i); + i = out_i_2; + } + return testMessages; + }; + TestScheduler.prototype.run = function (callback) { + var prevFrameTimeFactor = TestScheduler.frameTimeFactor; + var prevMaxFrames = this.maxFrames; + TestScheduler.frameTimeFactor = 1; + this.maxFrames = Number.POSITIVE_INFINITY; + this.runMode = true; + AsyncScheduler.delegate = this; + var helpers = { + cold: this.createColdObservable.bind(this), + hot: this.createHotObservable.bind(this), + flush: this.flush.bind(this), + expectObservable: this.expectObservable.bind(this), + expectSubscriptions: this.expectSubscriptions.bind(this), + }; + try { + var ret = callback(helpers); + this.flush(); + return ret; + } + finally { + TestScheduler.frameTimeFactor = prevFrameTimeFactor; + this.maxFrames = prevMaxFrames; + this.runMode = false; + AsyncScheduler.delegate = undefined; + } + }; + return TestScheduler; + }(VirtualTimeScheduler)); + + + + var _testing = /*#__PURE__*/Object.freeze({ + TestScheduler: TestScheduler + }); + + var __window = typeof window !== 'undefined' && window; + var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && + self instanceof WorkerGlobalScope && self; + var __global = typeof global !== 'undefined' && global; + var _root = __window || __global || __self; + (function () { + if (!_root) { + throw new Error('RxJS could not find any global context (window, self, global)'); + } + })(); + + function getCORSRequest() { + if (_root.XMLHttpRequest) { + return new _root.XMLHttpRequest(); + } + else if (!!_root.XDomainRequest) { + return new _root.XDomainRequest(); + } + else { + throw new Error('CORS is not supported by your browser'); + } + } + function getXMLHttpRequest() { + if (_root.XMLHttpRequest) { + return new _root.XMLHttpRequest(); + } + else { + var progId = void 0; + try { + var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; + for (var i = 0; i < 3; i++) { + try { + progId = progIds[i]; + if (new _root.ActiveXObject(progId)) { + break; + } + } + catch (e) { + } + } + return new _root.ActiveXObject(progId); + } + catch (e) { + throw new Error('XMLHttpRequest is not supported by your browser'); + } + } + } + function ajaxGet(url, headers) { + if (headers === void 0) { headers = null; } + return new AjaxObservable({ method: 'GET', url: url, headers: headers }); + } + function ajaxPost(url, body, headers) { + return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers }); + } + function ajaxDelete(url, headers) { + return new AjaxObservable({ method: 'DELETE', url: url, headers: headers }); + } + function ajaxPut(url, body, headers) { + return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers }); + } + function ajaxPatch(url, body, headers) { + return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers }); + } + var mapResponse = map(function (x, index) { return x.response; }); + function ajaxGetJSON(url, headers) { + return mapResponse(new AjaxObservable({ + method: 'GET', + url: url, + responseType: 'json', + headers: headers + })); + } + var AjaxObservable = (function (_super) { + __extends(AjaxObservable, _super); + function AjaxObservable(urlOrRequest) { + var _this = _super.call(this) || this; + var request = { + async: true, + createXHR: function () { + return this.crossDomain ? getCORSRequest() : getXMLHttpRequest(); + }, + crossDomain: true, + withCredentials: false, + headers: {}, + method: 'GET', + responseType: 'json', + timeout: 0 + }; + if (typeof urlOrRequest === 'string') { + request.url = urlOrRequest; + } + else { + for (var prop in urlOrRequest) { + if (urlOrRequest.hasOwnProperty(prop)) { + request[prop] = urlOrRequest[prop]; + } + } + } + _this.request = request; + return _this; + } + AjaxObservable.prototype._subscribe = function (subscriber) { + return new AjaxSubscriber(subscriber, this.request); + }; + AjaxObservable.create = (function () { + var create = function (urlOrRequest) { + return new AjaxObservable(urlOrRequest); + }; + create.get = ajaxGet; + create.post = ajaxPost; + create.delete = ajaxDelete; + create.put = ajaxPut; + create.patch = ajaxPatch; + create.getJSON = ajaxGetJSON; + return create; + })(); + return AjaxObservable; + }(Observable)); + var AjaxSubscriber = (function (_super) { + __extends(AjaxSubscriber, _super); + function AjaxSubscriber(destination, request) { + var _this = _super.call(this, destination) || this; + _this.request = request; + _this.done = false; + var headers = request.headers = request.headers || {}; + if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) { + headers['X-Requested-With'] = 'XMLHttpRequest'; + } + var contentTypeHeader = _this.getHeader(headers, 'Content-Type'); + if (!contentTypeHeader && !(_root.FormData && request.body instanceof _root.FormData) && typeof request.body !== 'undefined') { + headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + } + request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type')); + _this.send(); + return _this; + } + AjaxSubscriber.prototype.next = function (e) { + this.done = true; + var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination; + var result; + try { + result = new AjaxResponse(e, xhr, request); + } + catch (err) { + return destination.error(err); + } + destination.next(result); + }; + AjaxSubscriber.prototype.send = function () { + var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body; + try { + var xhr = this.xhr = request.createXHR(); + this.setupEvents(xhr, request); + if (user) { + xhr.open(method, url, async, user, password); + } + else { + xhr.open(method, url, async); + } + if (async) { + xhr.timeout = request.timeout; + xhr.responseType = request.responseType; + } + if ('withCredentials' in xhr) { + xhr.withCredentials = !!request.withCredentials; + } + this.setHeaders(xhr, headers); + if (body) { + xhr.send(body); + } + else { + xhr.send(); + } + } + catch (err) { + this.error(err); + } + }; + AjaxSubscriber.prototype.serializeBody = function (body, contentType) { + if (!body || typeof body === 'string') { + return body; + } + else if (_root.FormData && body instanceof _root.FormData) { + return body; + } + if (contentType) { + var splitIndex = contentType.indexOf(';'); + if (splitIndex !== -1) { + contentType = contentType.substring(0, splitIndex); + } + } + switch (contentType) { + case 'application/x-www-form-urlencoded': + return Object.keys(body).map(function (key) { return encodeURIComponent(key) + "=" + encodeURIComponent(body[key]); }).join('&'); + case 'application/json': + return JSON.stringify(body); + default: + return body; + } + }; + AjaxSubscriber.prototype.setHeaders = function (xhr, headers) { + for (var key in headers) { + if (headers.hasOwnProperty(key)) { + xhr.setRequestHeader(key, headers[key]); + } + } + }; + AjaxSubscriber.prototype.getHeader = function (headers, headerName) { + for (var key in headers) { + if (key.toLowerCase() === headerName.toLowerCase()) { + return headers[key]; + } + } + return undefined; + }; + AjaxSubscriber.prototype.setupEvents = function (xhr, request) { + var progressSubscriber = request.progressSubscriber; + function xhrTimeout(e) { + var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request; + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error; + try { + error = new AjaxTimeoutError(this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + xhr.ontimeout = xhrTimeout; + xhrTimeout.request = request; + xhrTimeout.subscriber = this; + xhrTimeout.progressSubscriber = progressSubscriber; + if (xhr.upload && 'withCredentials' in xhr) { + if (progressSubscriber) { + var xhrProgress_1; + xhrProgress_1 = function (e) { + var progressSubscriber = xhrProgress_1.progressSubscriber; + progressSubscriber.next(e); + }; + if (_root.XDomainRequest) { + xhr.onprogress = xhrProgress_1; + } + else { + xhr.upload.onprogress = xhrProgress_1; + } + xhrProgress_1.progressSubscriber = progressSubscriber; + } + var xhrError_1; + xhrError_1 = function (e) { + var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request; + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error; + try { + error = new AjaxError('ajax error', this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + }; + xhr.onerror = xhrError_1; + xhrError_1.request = request; + xhrError_1.subscriber = this; + xhrError_1.progressSubscriber = progressSubscriber; + } + function xhrReadyStateChange(e) { + return; + } + xhr.onreadystatechange = xhrReadyStateChange; + xhrReadyStateChange.subscriber = this; + xhrReadyStateChange.progressSubscriber = progressSubscriber; + xhrReadyStateChange.request = request; + function xhrLoad(e) { + var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request; + if (this.readyState === 4) { + var status_1 = this.status === 1223 ? 204 : this.status; + var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response); + if (status_1 === 0) { + status_1 = response ? 200 : 0; + } + if (status_1 < 400) { + if (progressSubscriber) { + progressSubscriber.complete(); + } + subscriber.next(e); + subscriber.complete(); + } + else { + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error = void 0; + try { + error = new AjaxError('ajax error ' + status_1, this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + } + } + xhr.onload = xhrLoad; + xhrLoad.subscriber = this; + xhrLoad.progressSubscriber = progressSubscriber; + xhrLoad.request = request; + }; + AjaxSubscriber.prototype.unsubscribe = function () { + var _a = this, done = _a.done, xhr = _a.xhr; + if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') { + xhr.abort(); + } + _super.prototype.unsubscribe.call(this); + }; + return AjaxSubscriber; + }(Subscriber)); + var AjaxResponse = (function () { + function AjaxResponse(originalEvent, xhr, request) { + this.originalEvent = originalEvent; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + } + return AjaxResponse; + }()); + var AjaxErrorImpl = (function () { + function AjaxErrorImpl(message, xhr, request) { + Error.call(this); + this.message = message; + this.name = 'AjaxError'; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + return this; + } + AjaxErrorImpl.prototype = Object.create(Error.prototype); + return AjaxErrorImpl; + })(); + var AjaxError = AjaxErrorImpl; + function parseJson(xhr) { + if ('response' in xhr) { + return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null'); + } + else { + return JSON.parse(xhr.responseText || 'null'); + } + } + function parseXhrResponse(responseType, xhr) { + switch (responseType) { + case 'json': + return parseJson(xhr); + case 'xml': + return xhr.responseXML; + case 'text': + default: + return ('response' in xhr) ? xhr.response : xhr.responseText; + } + } + function AjaxTimeoutErrorImpl(xhr, request) { + AjaxError.call(this, 'ajax timeout', xhr, request); + this.name = 'AjaxTimeoutError'; + return this; + } + var AjaxTimeoutError = AjaxTimeoutErrorImpl; + + var ajax = (function () { return AjaxObservable.create; })(); + + + + var _ajax = /*#__PURE__*/Object.freeze({ + ajax: ajax, + AjaxResponse: AjaxResponse, + AjaxError: AjaxError, + AjaxTimeoutError: AjaxTimeoutError + }); + + var DEFAULT_WEBSOCKET_CONFIG = { + url: '', + deserializer: function (e) { return JSON.parse(e.data); }, + serializer: function (value) { return JSON.stringify(value); }, + }; + var WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }'; + var WebSocketSubject = (function (_super) { + __extends(WebSocketSubject, _super); + function WebSocketSubject(urlConfigOrSource, destination) { + var _this = _super.call(this) || this; + if (urlConfigOrSource instanceof Observable) { + _this.destination = destination; + _this.source = urlConfigOrSource; + } + else { + var config = _this._config = __assign({}, DEFAULT_WEBSOCKET_CONFIG); + _this._output = new Subject(); + if (typeof urlConfigOrSource === 'string') { + config.url = urlConfigOrSource; + } + else { + for (var key in urlConfigOrSource) { + if (urlConfigOrSource.hasOwnProperty(key)) { + config[key] = urlConfigOrSource[key]; + } + } + } + if (!config.WebSocketCtor && WebSocket) { + config.WebSocketCtor = WebSocket; + } + else if (!config.WebSocketCtor) { + throw new Error('no WebSocket constructor can be found'); + } + _this.destination = new ReplaySubject(); + } + return _this; + } + WebSocketSubject.prototype.lift = function (operator) { + var sock = new WebSocketSubject(this._config, this.destination); + sock.operator = operator; + sock.source = this; + return sock; + }; + WebSocketSubject.prototype._resetState = function () { + this._socket = null; + if (!this.source) { + this.destination = new ReplaySubject(); + } + this._output = new Subject(); + }; + WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) { + var self = this; + return new Observable(function (observer) { + try { + self.next(subMsg()); + } + catch (err) { + observer.error(err); + } + var subscription = self.subscribe(function (x) { + try { + if (messageFilter(x)) { + observer.next(x); + } + } + catch (err) { + observer.error(err); + } + }, function (err) { return observer.error(err); }, function () { return observer.complete(); }); + return function () { + try { + self.next(unsubMsg()); + } + catch (err) { + observer.error(err); + } + subscription.unsubscribe(); + }; + }); + }; + WebSocketSubject.prototype._connectSocket = function () { + var _this = this; + var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType; + var observer = this._output; + var socket = null; + try { + socket = protocol ? + new WebSocketCtor(url, protocol) : + new WebSocketCtor(url); + this._socket = socket; + if (binaryType) { + this._socket.binaryType = binaryType; + } + } + catch (e) { + observer.error(e); + return; + } + var subscription = new Subscription(function () { + _this._socket = null; + if (socket && socket.readyState === 1) { + socket.close(); + } + }); + socket.onopen = function (e) { + var _socket = _this._socket; + if (!_socket) { + socket.close(); + _this._resetState(); + return; + } + var openObserver = _this._config.openObserver; + if (openObserver) { + openObserver.next(e); + } + var queue = _this.destination; + _this.destination = Subscriber.create(function (x) { + if (socket.readyState === 1) { + try { + var serializer = _this._config.serializer; + socket.send(serializer(x)); + } + catch (e) { + _this.destination.error(e); + } + } + }, function (e) { + var closingObserver = _this._config.closingObserver; + if (closingObserver) { + closingObserver.next(undefined); + } + if (e && e.code) { + socket.close(e.code, e.reason); + } + else { + observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT)); + } + _this._resetState(); + }, function () { + var closingObserver = _this._config.closingObserver; + if (closingObserver) { + closingObserver.next(undefined); + } + socket.close(); + _this._resetState(); + }); + if (queue && queue instanceof ReplaySubject) { + subscription.add(queue.subscribe(_this.destination)); + } + }; + socket.onerror = function (e) { + _this._resetState(); + observer.error(e); + }; + socket.onclose = function (e) { + _this._resetState(); + var closeObserver = _this._config.closeObserver; + if (closeObserver) { + closeObserver.next(e); + } + if (e.wasClean) { + observer.complete(); + } + else { + observer.error(e); + } + }; + socket.onmessage = function (e) { + try { + var deserializer = _this._config.deserializer; + observer.next(deserializer(e)); + } + catch (err) { + observer.error(err); + } + }; + }; + WebSocketSubject.prototype._subscribe = function (subscriber) { + var _this = this; + var source = this.source; + if (source) { + return source.subscribe(subscriber); + } + if (!this._socket) { + this._connectSocket(); + } + this._output.subscribe(subscriber); + subscriber.add(function () { + var _socket = _this._socket; + if (_this._output.observers.length === 0) { + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + _this._resetState(); + } + }); + return subscriber; + }; + WebSocketSubject.prototype.unsubscribe = function () { + var _socket = this._socket; + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + this._resetState(); + _super.prototype.unsubscribe.call(this); + }; + return WebSocketSubject; + }(AnonymousSubject)); + + function webSocket(urlConfigOrSource) { + return new WebSocketSubject(urlConfigOrSource); + } + + + + var _webSocket = /*#__PURE__*/Object.freeze({ + webSocket: webSocket, + WebSocketSubject: WebSocketSubject + }); + + function fromFetch(input, initWithSelector) { + if (initWithSelector === void 0) { initWithSelector = {}; } + var selector = initWithSelector.selector, init = __rest(initWithSelector, ["selector"]); + return new Observable(function (subscriber) { + var controller = new AbortController(); + var signal = controller.signal; + var abortable = true; + var unsubscribed = false; + var subscription = new Subscription(); + subscription.add(function () { + unsubscribed = true; + if (abortable) { + controller.abort(); + } + }); + var perSubscriberInit; + if (init) { + if (init.signal) { + if (init.signal.aborted) { + controller.abort(); + } + else { + var outerSignal_1 = init.signal; + var outerSignalHandler_1 = function () { + if (!signal.aborted) { + controller.abort(); + } + }; + outerSignal_1.addEventListener('abort', outerSignalHandler_1); + subscription.add(function () { return outerSignal_1.removeEventListener('abort', outerSignalHandler_1); }); + } + } + perSubscriberInit = __assign({}, init, { signal: signal }); + } + else { + perSubscriberInit = { signal: signal }; + } + fetch(input, perSubscriberInit).then(function (response) { + if (selector) { + subscription.add(from(selector(response)).subscribe(function (value) { return subscriber.next(value); }, function (err) { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }, function () { + abortable = false; + subscriber.complete(); + })); + } + else { + abortable = false; + subscriber.next(response); + subscriber.complete(); + } + }).catch(function (err) { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }); + return subscription; + }); + } + + + + var _fetch = /*#__PURE__*/Object.freeze({ + fromFetch: fromFetch + }); + + var operators = _operators; + var testing = _testing; + var ajax$1 = _ajax; + var webSocket$1 = _webSocket; + var fetch$1 = _fetch; + + exports.operators = operators; + exports.testing = testing; + exports.ajax = ajax$1; + exports.webSocket = webSocket$1; + exports.fetch = fetch$1; + exports.Observable = Observable; + exports.ConnectableObservable = ConnectableObservable; + exports.GroupedObservable = GroupedObservable; + exports.observable = observable; + exports.Subject = Subject; + exports.BehaviorSubject = BehaviorSubject; + exports.ReplaySubject = ReplaySubject; + exports.AsyncSubject = AsyncSubject; + exports.asap = asap; + exports.asapScheduler = asapScheduler; + exports.async = async; + exports.asyncScheduler = asyncScheduler; + exports.queue = queue; + exports.queueScheduler = queueScheduler; + exports.animationFrame = animationFrame; + exports.animationFrameScheduler = animationFrameScheduler; + exports.VirtualTimeScheduler = VirtualTimeScheduler; + exports.VirtualAction = VirtualAction; + exports.Scheduler = Scheduler; + exports.Subscription = Subscription; + exports.Subscriber = Subscriber; + exports.Notification = Notification; + exports.pipe = pipe; + exports.noop = noop; + exports.identity = identity; + exports.isObservable = isObservable; + exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError; + exports.EmptyError = EmptyError; + exports.ObjectUnsubscribedError = ObjectUnsubscribedError; + exports.UnsubscriptionError = UnsubscriptionError; + exports.TimeoutError = TimeoutError; + exports.bindCallback = bindCallback; + exports.bindNodeCallback = bindNodeCallback; + exports.combineLatest = combineLatest; + exports.concat = concat; + exports.defer = defer; + exports.empty = empty$1; + exports.forkJoin = forkJoin; + exports.from = from; + exports.fromEvent = fromEvent; + exports.fromEventPattern = fromEventPattern; + exports.generate = generate; + exports.iif = iif; + exports.interval = interval; + exports.merge = merge; + exports.never = never; + exports.of = of; + exports.onErrorResumeNext = onErrorResumeNext; + exports.pairs = pairs; + exports.partition = partition; + exports.race = race; + exports.range = range; + exports.throwError = throwError; + exports.timer = timer; + exports.using = using; + exports.zip = zip; + exports.scheduled = scheduled; + exports.EMPTY = EMPTY; + exports.NEVER = NEVER; + exports.config = config; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); + +//# sourceMappingURL=rxjs.umd.js.map + diff --git a/node_modules/rxjs/bundles/rxjs.umd.js.map b/node_modules/rxjs/bundles/rxjs.umd.js.map new file mode 100644 index 00000000..158be39b --- /dev/null +++ b/node_modules/rxjs/bundles/rxjs.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"umd.js","sources":["../tslib/tslib.es6.js","../dist/esm5_for_rollup/internal/util/isFunction.js","../dist/esm5_for_rollup/internal/config.js","../dist/esm5_for_rollup/internal/util/hostReportError.js","../dist/esm5_for_rollup/internal/Observer.js","../dist/esm5_for_rollup/internal/util/isArray.js","../dist/esm5_for_rollup/internal/util/isObject.js","../dist/esm5_for_rollup/internal/util/UnsubscriptionError.js","../dist/esm5_for_rollup/internal/Subscription.js","../dist/esm5_for_rollup/internal/symbol/rxSubscriber.js","../dist/esm5_for_rollup/internal/Subscriber.js","../dist/esm5_for_rollup/internal/util/canReportError.js","../dist/esm5_for_rollup/internal/util/toSubscriber.js","../dist/esm5_for_rollup/internal/symbol/observable.js","../dist/esm5_for_rollup/internal/util/identity.js","../dist/esm5_for_rollup/internal/util/pipe.js","../dist/esm5_for_rollup/internal/Observable.js","../dist/esm5_for_rollup/internal/util/ObjectUnsubscribedError.js","../dist/esm5_for_rollup/internal/SubjectSubscription.js","../dist/esm5_for_rollup/internal/Subject.js","../dist/esm5_for_rollup/internal/operators/refCount.js","../dist/esm5_for_rollup/internal/observable/ConnectableObservable.js","../dist/esm5_for_rollup/internal/operators/groupBy.js","../dist/esm5_for_rollup/internal/BehaviorSubject.js","../dist/esm5_for_rollup/internal/scheduler/Action.js","../dist/esm5_for_rollup/internal/scheduler/AsyncAction.js","../dist/esm5_for_rollup/internal/scheduler/QueueAction.js","../dist/esm5_for_rollup/internal/Scheduler.js","../dist/esm5_for_rollup/internal/scheduler/AsyncScheduler.js","../dist/esm5_for_rollup/internal/scheduler/QueueScheduler.js","../dist/esm5_for_rollup/internal/scheduler/queue.js","../dist/esm5_for_rollup/internal/observable/empty.js","../dist/esm5_for_rollup/internal/util/isScheduler.js","../dist/esm5_for_rollup/internal/util/subscribeToArray.js","../dist/esm5_for_rollup/internal/scheduled/scheduleArray.js","../dist/esm5_for_rollup/internal/observable/fromArray.js","../dist/esm5_for_rollup/internal/observable/of.js","../dist/esm5_for_rollup/internal/observable/throwError.js","../dist/esm5_for_rollup/internal/Notification.js","../dist/esm5_for_rollup/internal/operators/observeOn.js","../dist/esm5_for_rollup/internal/ReplaySubject.js","../dist/esm5_for_rollup/internal/AsyncSubject.js","../dist/esm5_for_rollup/internal/util/Immediate.js","../dist/esm5_for_rollup/internal/scheduler/AsapAction.js","../dist/esm5_for_rollup/internal/scheduler/AsapScheduler.js","../dist/esm5_for_rollup/internal/scheduler/asap.js","../dist/esm5_for_rollup/internal/scheduler/async.js","../dist/esm5_for_rollup/internal/scheduler/AnimationFrameAction.js","../dist/esm5_for_rollup/internal/scheduler/AnimationFrameScheduler.js","../dist/esm5_for_rollup/internal/scheduler/animationFrame.js","../dist/esm5_for_rollup/internal/scheduler/VirtualTimeScheduler.js","../dist/esm5_for_rollup/internal/util/noop.js","../dist/esm5_for_rollup/internal/util/isObservable.js","../dist/esm5_for_rollup/internal/util/ArgumentOutOfRangeError.js","../dist/esm5_for_rollup/internal/util/EmptyError.js","../dist/esm5_for_rollup/internal/util/TimeoutError.js","../dist/esm5_for_rollup/internal/operators/map.js","../dist/esm5_for_rollup/internal/observable/bindCallback.js","../dist/esm5_for_rollup/internal/observable/bindNodeCallback.js","../dist/esm5_for_rollup/internal/OuterSubscriber.js","../dist/esm5_for_rollup/internal/InnerSubscriber.js","../dist/esm5_for_rollup/internal/util/subscribeToPromise.js","../dist/esm5_for_rollup/internal/symbol/iterator.js","../dist/esm5_for_rollup/internal/util/subscribeToIterable.js","../dist/esm5_for_rollup/internal/util/subscribeToObservable.js","../dist/esm5_for_rollup/internal/util/isArrayLike.js","../dist/esm5_for_rollup/internal/util/isPromise.js","../dist/esm5_for_rollup/internal/util/subscribeTo.js","../dist/esm5_for_rollup/internal/util/subscribeToResult.js","../dist/esm5_for_rollup/internal/observable/combineLatest.js","../dist/esm5_for_rollup/internal/scheduled/scheduleObservable.js","../dist/esm5_for_rollup/internal/scheduled/schedulePromise.js","../dist/esm5_for_rollup/internal/scheduled/scheduleIterable.js","../dist/esm5_for_rollup/internal/util/isInteropObservable.js","../dist/esm5_for_rollup/internal/util/isIterable.js","../dist/esm5_for_rollup/internal/scheduled/scheduled.js","../dist/esm5_for_rollup/internal/observable/from.js","../dist/esm5_for_rollup/internal/innerSubscribe.js","../dist/esm5_for_rollup/internal/operators/mergeMap.js","../dist/esm5_for_rollup/internal/operators/mergeAll.js","../dist/esm5_for_rollup/internal/operators/concatAll.js","../dist/esm5_for_rollup/internal/observable/concat.js","../dist/esm5_for_rollup/internal/observable/defer.js","../dist/esm5_for_rollup/internal/observable/forkJoin.js","../dist/esm5_for_rollup/internal/observable/fromEvent.js","../dist/esm5_for_rollup/internal/observable/fromEventPattern.js","../dist/esm5_for_rollup/internal/observable/generate.js","../dist/esm5_for_rollup/internal/observable/iif.js","../dist/esm5_for_rollup/internal/util/isNumeric.js","../dist/esm5_for_rollup/internal/observable/interval.js","../dist/esm5_for_rollup/internal/observable/merge.js","../dist/esm5_for_rollup/internal/observable/never.js","../dist/esm5_for_rollup/internal/observable/onErrorResumeNext.js","../dist/esm5_for_rollup/internal/observable/pairs.js","../dist/esm5_for_rollup/internal/util/not.js","../dist/esm5_for_rollup/internal/operators/filter.js","../dist/esm5_for_rollup/internal/observable/partition.js","../dist/esm5_for_rollup/internal/observable/race.js","../dist/esm5_for_rollup/internal/observable/range.js","../dist/esm5_for_rollup/internal/observable/timer.js","../dist/esm5_for_rollup/internal/observable/using.js","../dist/esm5_for_rollup/internal/observable/zip.js","../dist/esm5_for_rollup/internal/operators/audit.js","../dist/esm5_for_rollup/internal/operators/auditTime.js","../dist/esm5_for_rollup/internal/operators/buffer.js","../dist/esm5_for_rollup/internal/operators/bufferCount.js","../dist/esm5_for_rollup/internal/operators/bufferTime.js","../dist/esm5_for_rollup/internal/operators/bufferToggle.js","../dist/esm5_for_rollup/internal/operators/bufferWhen.js","../dist/esm5_for_rollup/internal/operators/catchError.js","../dist/esm5_for_rollup/internal/operators/combineAll.js","../dist/esm5_for_rollup/internal/operators/combineLatest.js","../dist/esm5_for_rollup/internal/operators/concat.js","../dist/esm5_for_rollup/internal/operators/concatMap.js","../dist/esm5_for_rollup/internal/operators/concatMapTo.js","../dist/esm5_for_rollup/internal/operators/count.js","../dist/esm5_for_rollup/internal/operators/debounce.js","../dist/esm5_for_rollup/internal/operators/debounceTime.js","../dist/esm5_for_rollup/internal/operators/defaultIfEmpty.js","../dist/esm5_for_rollup/internal/util/isDate.js","../dist/esm5_for_rollup/internal/operators/delay.js","../dist/esm5_for_rollup/internal/operators/delayWhen.js","../dist/esm5_for_rollup/internal/operators/dematerialize.js","../dist/esm5_for_rollup/internal/operators/distinct.js","../dist/esm5_for_rollup/internal/operators/distinctUntilChanged.js","../dist/esm5_for_rollup/internal/operators/distinctUntilKeyChanged.js","../dist/esm5_for_rollup/internal/operators/throwIfEmpty.js","../dist/esm5_for_rollup/internal/operators/take.js","../dist/esm5_for_rollup/internal/operators/elementAt.js","../dist/esm5_for_rollup/internal/operators/endWith.js","../dist/esm5_for_rollup/internal/operators/every.js","../dist/esm5_for_rollup/internal/operators/exhaust.js","../dist/esm5_for_rollup/internal/operators/exhaustMap.js","../dist/esm5_for_rollup/internal/operators/expand.js","../dist/esm5_for_rollup/internal/operators/finalize.js","../dist/esm5_for_rollup/internal/operators/find.js","../dist/esm5_for_rollup/internal/operators/findIndex.js","../dist/esm5_for_rollup/internal/operators/first.js","../dist/esm5_for_rollup/internal/operators/ignoreElements.js","../dist/esm5_for_rollup/internal/operators/isEmpty.js","../dist/esm5_for_rollup/internal/operators/takeLast.js","../dist/esm5_for_rollup/internal/operators/last.js","../dist/esm5_for_rollup/internal/operators/mapTo.js","../dist/esm5_for_rollup/internal/operators/materialize.js","../dist/esm5_for_rollup/internal/operators/scan.js","../dist/esm5_for_rollup/internal/operators/reduce.js","../dist/esm5_for_rollup/internal/operators/max.js","../dist/esm5_for_rollup/internal/operators/merge.js","../dist/esm5_for_rollup/internal/operators/mergeMapTo.js","../dist/esm5_for_rollup/internal/operators/mergeScan.js","../dist/esm5_for_rollup/internal/operators/min.js","../dist/esm5_for_rollup/internal/operators/multicast.js","../dist/esm5_for_rollup/internal/operators/onErrorResumeNext.js","../dist/esm5_for_rollup/internal/operators/pairwise.js","../dist/esm5_for_rollup/internal/operators/partition.js","../dist/esm5_for_rollup/internal/operators/pluck.js","../dist/esm5_for_rollup/internal/operators/publish.js","../dist/esm5_for_rollup/internal/operators/publishBehavior.js","../dist/esm5_for_rollup/internal/operators/publishLast.js","../dist/esm5_for_rollup/internal/operators/publishReplay.js","../dist/esm5_for_rollup/internal/operators/race.js","../dist/esm5_for_rollup/internal/operators/repeat.js","../dist/esm5_for_rollup/internal/operators/repeatWhen.js","../dist/esm5_for_rollup/internal/operators/retry.js","../dist/esm5_for_rollup/internal/operators/retryWhen.js","../dist/esm5_for_rollup/internal/operators/sample.js","../dist/esm5_for_rollup/internal/operators/sampleTime.js","../dist/esm5_for_rollup/internal/operators/sequenceEqual.js","../dist/esm5_for_rollup/internal/operators/share.js","../dist/esm5_for_rollup/internal/operators/shareReplay.js","../dist/esm5_for_rollup/internal/operators/single.js","../dist/esm5_for_rollup/internal/operators/skip.js","../dist/esm5_for_rollup/internal/operators/skipLast.js","../dist/esm5_for_rollup/internal/operators/skipUntil.js","../dist/esm5_for_rollup/internal/operators/skipWhile.js","../dist/esm5_for_rollup/internal/operators/startWith.js","../dist/esm5_for_rollup/internal/observable/SubscribeOnObservable.js","../dist/esm5_for_rollup/internal/operators/subscribeOn.js","../dist/esm5_for_rollup/internal/operators/switchMap.js","../dist/esm5_for_rollup/internal/operators/switchAll.js","../dist/esm5_for_rollup/internal/operators/switchMapTo.js","../dist/esm5_for_rollup/internal/operators/takeUntil.js","../dist/esm5_for_rollup/internal/operators/takeWhile.js","../dist/esm5_for_rollup/internal/operators/tap.js","../dist/esm5_for_rollup/internal/operators/throttle.js","../dist/esm5_for_rollup/internal/operators/throttleTime.js","../dist/esm5_for_rollup/internal/operators/timeInterval.js","../dist/esm5_for_rollup/internal/operators/timeoutWith.js","../dist/esm5_for_rollup/internal/operators/timeout.js","../dist/esm5_for_rollup/internal/operators/timestamp.js","../dist/esm5_for_rollup/internal/operators/toArray.js","../dist/esm5_for_rollup/internal/operators/window.js","../dist/esm5_for_rollup/internal/operators/windowCount.js","../dist/esm5_for_rollup/internal/operators/windowTime.js","../dist/esm5_for_rollup/internal/operators/windowToggle.js","../dist/esm5_for_rollup/internal/operators/windowWhen.js","../dist/esm5_for_rollup/internal/operators/withLatestFrom.js","../dist/esm5_for_rollup/internal/operators/zip.js","../dist/esm5_for_rollup/internal/operators/zipAll.js","../dist/esm5_for_rollup/internal/testing/SubscriptionLog.js","../dist/esm5_for_rollup/internal/testing/SubscriptionLoggable.js","../dist/esm5_for_rollup/internal/util/applyMixins.js","../dist/esm5_for_rollup/internal/testing/ColdObservable.js","../dist/esm5_for_rollup/internal/testing/HotObservable.js","../dist/esm5_for_rollup/internal/testing/TestScheduler.js","../dist/esm5_for_rollup/internal/util/root.js","../dist/esm5_for_rollup/internal/observable/dom/AjaxObservable.js","../dist/esm5_for_rollup/internal/observable/dom/ajax.js","../dist/esm5_for_rollup/internal/observable/dom/WebSocketSubject.js","../dist/esm5_for_rollup/internal/observable/dom/webSocket.js","../dist/esm5_for_rollup/internal/observable/dom/fetch.js","../dist/esm5_for_rollup/internal/umd.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","export function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","export var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","var UnsubscriptionErrorImpl = (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","export var rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","export var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","var ObjectUnsubscribedErrorImpl = (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = (function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nvar ConnectableSubscriber = (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n tslib_1.__extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = (function (_super) {\n tslib_1.__extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = (function (_super) {\n tslib_1.__extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = (function (_super) {\n tslib_1.__extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","var Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queueScheduler = new QueueScheduler(QueueAction);\nexport var queue = queueScheduler;\n//# sourceMappingURL=queue.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n if (!this.isStopped) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nvar AsyncSubject = (function (_super) {\n tslib_1.__extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","var nextHandle = 1;\nvar RESOLVED = (function () { return Promise.resolve(); })();\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nexport var TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map","import * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = (function (_super) {\n tslib_1.__extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n tslib_1.__extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asapScheduler = new AsapScheduler(AsapAction);\nexport var asap = asapScheduler;\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\nexport var animationFrame = animationFrameScheduler;\n//# sourceMappingURL=animationFrame.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n tslib_1.__extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n tslib_1.__extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = scheduler.index += 1; }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map","var ArgumentOutOfRangeErrorImpl = (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","var EmptyErrorImpl = (function () {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nexport var EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map","var TimeoutErrorImpl = (function () {\n function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n }\n TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n return TimeoutErrorImpl;\n})();\nexport var TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: subject,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new Observable(function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new Observable(function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = void 0;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = undefined;\n var scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nvar SimpleInnerSubscriber = (function (_super) {\n tslib_1.__extends(SimpleInnerSubscriber, _super);\n function SimpleInnerSubscriber(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n return _this;\n }\n SimpleInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(value);\n };\n SimpleInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n SimpleInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete();\n this.unsubscribe();\n };\n return SimpleInnerSubscriber;\n}(Subscriber));\nexport { SimpleInnerSubscriber };\nvar ComplexInnerSubscriber = (function (_super) {\n tslib_1.__extends(ComplexInnerSubscriber, _super);\n function ComplexInnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n return _this;\n }\n ComplexInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n };\n ComplexInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n ComplexInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return ComplexInnerSubscriber;\n}(Subscriber));\nexport { ComplexInnerSubscriber };\nvar SimpleOuterSubscriber = (function (_super) {\n tslib_1.__extends(SimpleOuterSubscriber, _super);\n function SimpleOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n SimpleOuterSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n SimpleOuterSubscriber.prototype.notifyComplete = function () {\n this.destination.complete();\n };\n return SimpleOuterSubscriber;\n}(Subscriber));\nexport { SimpleOuterSubscriber };\nvar ComplexOuterSubscriber = (function (_super) {\n tslib_1.__extends(ComplexOuterSubscriber, _super);\n function ComplexOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n };\n ComplexOuterSubscriber.prototype.notifyError = function (error) {\n this.destination.error(error);\n };\n ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) {\n this.destination.complete();\n };\n return ComplexOuterSubscriber;\n}(Subscriber));\nexport { ComplexOuterSubscriber };\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=innerSubscribe.js.map","import * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(SimpleOuterSubscriber));\nexport { MergeMapSubscriber };\nexport var flatMap = mergeMap;\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 1) {\n var first_1 = sources[0];\n if (isArray(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(function (subscriber) {\n var len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n var _loop_1 = function (i) {\n var source = from(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function (value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: function (err) { return subscriber.error(err); },\n complete: function () {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = (function () { return Object.prototype.toString; })();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity;\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions;\n resultSelector = identity;\n scheduler = resultSelectorOrObservable;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrObservable;\n }\n return new Observable(function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = EMPTY; }\n if (falseResult === void 0) { falseResult = EMPTY; }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = async; }\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new Observable(function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return from(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new Subscription();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nexport function dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map","export function not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { Observable } from '../Observable';\nexport function partition(source, predicate, thisArg) {\n return [\n filter(predicate, thisArg)(new Observable(subscribeTo(source))),\n filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))\n ];\n}\n//# sourceMappingURL=partition.js.map","import * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = (function (_super) {\n tslib_1.__extends(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = subscribeToResult(this, observable, undefined, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map","import { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n if (start === void 0) { start = 0; }\n return new Observable(function (subscriber) {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nexport function dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n var period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n var due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n return new Observable(function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? from(result) : EMPTY;\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map","import * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\nexport { ZipOperator };\nvar ZipSubscriber = (function (_super) {\n tslib_1.__extends(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) { values = Object.create(null); }\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe());\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(Subscriber));\nexport { ZipSubscriber };\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return Boolean(nextResult && nextResult.done);\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n tslib_1.__extends(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (innerValue) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function () {\n return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n };\n return ZipBufferIterator;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=zip.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n tslib_1.__extends(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = void 0;\n try {\n var durationSelector = this.durationSelector;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n var innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = undefined;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = undefined;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function () {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=audit.js.map","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n tslib_1.__extends(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(_this)));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function () {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=buffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n tslib_1.__extends(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n tslib_1.__extends(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(subscribeToResult(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new Subscription();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = subscribeToResult(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n tslib_1.__extends(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = undefined;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function () {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (err) {\n return this.error(err);\n }\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this)));\n this.subscribing = false;\n };\n return BufferWhenSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n tslib_1.__extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n var innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n return CatchSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map","import { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map","import { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n tslib_1.__extends(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n tslib_1.__extends(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = undefined;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = undefined;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=debounce.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n tslib_1.__extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n tslib_1.__extends(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = (function (_super) {\n tslib_1.__extends(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = (function (_super) {\n tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n tslib_1.__extends(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n tslib_1.__extends(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(_this)));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function () {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(SimpleOuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n }\n catch (err) {\n return this.destination.error(err);\n }\n var result = false;\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n }\n catch (err) {\n return this.destination.error(err);\n }\n }\n else {\n this.hasKey = true;\n }\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import * as tslib_1 from \"tslib\";\nimport { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return function (source) {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nvar ThrowIfEmptyOperator = (function () {\n function ThrowIfEmptyOperator(errorFactory) {\n this.errorFactory = errorFactory;\n }\n ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n };\n return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = (function (_super) {\n tslib_1.__extends(ThrowIfEmptySubscriber, _super);\n function ThrowIfEmptySubscriber(destination, errorFactory) {\n var _this = _super.call(this, destination) || this;\n _this.errorFactory = errorFactory;\n _this.hasValue = false;\n return _this;\n }\n ThrowIfEmptySubscriber.prototype._next = function (value) {\n this.hasValue = true;\n this.destination.next(value);\n };\n ThrowIfEmptySubscriber.prototype._complete = function () {\n if (!this.hasValue) {\n var err = void 0;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n };\n return ThrowIfEmptySubscriber;\n}(Subscriber));\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); };\n}\n//# sourceMappingURL=elementAt.js.map","import { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) { return concat(source, of.apply(void 0, array)); };\n}\n//# sourceMappingURL=endWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n tslib_1.__extends(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n tslib_1.__extends(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(innerSubscribe(value, new SimpleInnerSubscriber(this)));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function () {\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=exhaust.js.map","import * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhaustMapOperator(project));\n };\n}\nvar ExhaustMapOperator = (function () {\n function ExhaustMapOperator(project) {\n this.project = project;\n }\n ExhaustMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n tslib_1.__extends(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function () {\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = (function (_super) {\n tslib_1.__extends(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n try {\n var project = this.project;\n var result = project(value, index);\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n catch (e) {\n destination.error(e);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this)));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (innerValue) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(SimpleOuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = (function (_super) {\n tslib_1.__extends(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map","import { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n tslib_1.__extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n tslib_1.__extends(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n tslib_1.__extends(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n tslib_1.__extends(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(Notification.createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nexport function max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return reduce(max);\n}\n//# sourceMappingURL=max.js.map","import { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map","import { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = (function (_super) {\n tslib_1.__extends(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var destination = this.destination;\n var ish = void 0;\n try {\n var accumulator = this.accumulator;\n ish = accumulator(this.acc, value, index);\n }\n catch (e) {\n return destination.error(e);\n }\n this.active++;\n this._innerSub(ish);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (innerValue) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(SimpleOuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nexport function min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return reduce(min);\n}\n//# sourceMappingURL=min.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = undefined;\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return from(source).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function () {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function () {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (!!next) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(next, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n tslib_1.__extends(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n var pair;\n if (this.hasPrev) {\n pair = [this.prev, value];\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n if (pair) {\n this.destination.next(pair);\n }\n };\n return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map","import { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return function (source) { return [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg))(source)\n ]; };\n}\n//# sourceMappingURL=partition.js.map","import { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp != null ? currentProp[props[i]] : undefined;\n if (p !== void 0) {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map","import { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n return selector ?\n multicast(function () { return new Subject(); }, selector) :\n multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map","import { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map","import { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map","import { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=race.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n if (count === void 0) { count = -1; }\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n tslib_1.__extends(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n tslib_1.__extends(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function () {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function () {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next(undefined);\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = undefined;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n this.retries = undefined;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new Subject();\n var retries;\n try {\n var notifier = this.notifier;\n retries = notifier(this.notifications);\n }\n catch (e) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n };\n return RepeatWhenSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n if (count === void 0) { count = -1; }\n return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = (function () {\n function RetryOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n tslib_1.__extends(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n tslib_1.__extends(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new Subject();\n try {\n var notifier = this.notifier;\n retries = notifier(errors);\n }\n catch (e) {\n return _super.prototype.error.call(this, e);\n }\n retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n }\n else {\n this.errors = undefined;\n this.retriesSubscription = undefined;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = undefined;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n this.retries = undefined;\n };\n RetryWhenSubscriber.prototype.notifyNext = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber)));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n tslib_1.__extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=sample.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n tslib_1.__extends(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function sequenceEqual(compareTo, comparator) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = (function () {\n function SequenceEqualOperator(compareTo, comparator) {\n this.compareTo = compareTo;\n this.comparator = comparator;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n };\n return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparator) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparator = comparator;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n }\n catch (e) {\n this.destination.error(e);\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n var innerSub;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n innerSub = subject.subscribe(this);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n else {\n innerSub = subject.subscribe(this);\n }\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n//# sourceMappingURL=shareReplay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n tslib_1.__extends(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new EmptyError);\n }\n };\n return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new Subscriber(subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n tslib_1.__extends(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n tslib_1.__extends(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new SimpleInnerSubscriber(_this);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n var innerSubscription = innerSubscribe(notifier, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n _this.add(innerSubscription);\n _this.innerSubscription = innerSubscription;\n }\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function () {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n tslib_1.__extends(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return function (source) { return concat(array, source, scheduler); };\n }\n else {\n return function (source) { return concat(array, source); };\n }\n}\n//# sourceMappingURL=startWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = (function (_super) {\n tslib_1.__extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!isNumeric(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = asap;\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map","import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = undefined;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function () {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function () {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\nvar TakeWhileOperator = (function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = undefined;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (!!duration) {\n this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this)));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = undefined;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function () {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = async; }\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map","import { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return defer(function () {\n return source.pipe(scan(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n }); };\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) {\n var absoluteTimeout = isDate(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n tslib_1.__extends(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber)));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = undefined;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map","import { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map","import { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map","import { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber)));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new Subject();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function () {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function () {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new Subject();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(SimpleOuterSubscriber));\n//# sourceMappingURL=window.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n tslib_1.__extends(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new Subject()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new Subject();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n var scheduler = async;\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (isNumeric(arguments[2])) {\n maxWindowSize = Number(arguments[2]);\n }\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (isNumeric(arguments[1])) {\n windowCreationInterval = Number(arguments[1]);\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n tslib_1.__extends(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = (function (_super) {\n tslib_1.__extends(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowTimeSpan = windowTimeSpan;\n _this.windowCreationInterval = windowCreationInterval;\n _this.maxWindowSize = maxWindowSize;\n _this.scheduler = scheduler;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n var window_2 = windows.shift();\n if (!window_2.closed) {\n window_2.complete();\n }\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n window.complete();\n var windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n };\n return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n tslib_1.__extends(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingNotifier = void 0;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector(innerValue);\n }\n catch (e) {\n return this.error(e);\n }\n var window_1 = new Subject();\n var subscription = new Subscription();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) { innerSub = null; }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new Subject();\n this.destination.next(window);\n var closingNotifier;\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n }\n catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, undefined, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=zip.js.map","import { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map","var SubscriptionLog = (function () {\n function SubscriptionLog(subscribedFrame, unsubscribedFrame) {\n if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }\n this.subscribedFrame = subscribedFrame;\n this.unsubscribedFrame = unsubscribedFrame;\n }\n return SubscriptionLog;\n}());\nexport { SubscriptionLog };\n//# sourceMappingURL=SubscriptionLog.js.map","import { SubscriptionLog } from './SubscriptionLog';\nvar SubscriptionLoggable = (function () {\n function SubscriptionLoggable() {\n this.subscriptions = [];\n }\n SubscriptionLoggable.prototype.logSubscribedFrame = function () {\n this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));\n return this.subscriptions.length - 1;\n };\n SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {\n var subscriptionLogs = this.subscriptions;\n var oldSubscriptionLog = subscriptionLogs[index];\n subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());\n };\n return SubscriptionLoggable;\n}());\nexport { SubscriptionLoggable };\n//# sourceMappingURL=SubscriptionLoggable.js.map","export function applyMixins(derivedCtor, baseCtors) {\n for (var i = 0, len = baseCtors.length; i < len; i++) {\n var baseCtor = baseCtors[i];\n var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {\n var name_1 = propertyKeys[j];\n derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];\n }\n }\n}\n//# sourceMappingURL=applyMixins.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar ColdObservable = (function (_super) {\n tslib_1.__extends(ColdObservable, _super);\n function ColdObservable(messages, scheduler) {\n var _this = _super.call(this, function (subscriber) {\n var observable = this;\n var index = observable.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n observable.logUnsubscribedFrame(index);\n }));\n observable.scheduleMessages(subscriber);\n return subscription;\n }) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n ColdObservable.prototype.scheduleMessages = function (subscriber) {\n var messagesLength = this.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n var message = this.messages[i];\n subscriber.add(this.scheduler.schedule(function (_a) {\n var message = _a.message, subscriber = _a.subscriber;\n message.notification.observe(subscriber);\n }, message.frame, { message: message, subscriber: subscriber }));\n }\n };\n return ColdObservable;\n}(Observable));\nexport { ColdObservable };\napplyMixins(ColdObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=ColdObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar HotObservable = (function (_super) {\n tslib_1.__extends(HotObservable, _super);\n function HotObservable(messages, scheduler) {\n var _this = _super.call(this) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n HotObservable.prototype._subscribe = function (subscriber) {\n var subject = this;\n var index = subject.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n subject.logUnsubscribedFrame(index);\n }));\n subscription.add(_super.prototype._subscribe.call(this, subscriber));\n return subscription;\n };\n HotObservable.prototype.setup = function () {\n var subject = this;\n var messagesLength = subject.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n (function () {\n var message = subject.messages[i];\n subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);\n })();\n }\n };\n return HotObservable;\n}(Subject));\nexport { HotObservable };\napplyMixins(HotObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=HotObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Notification } from '../Notification';\nimport { ColdObservable } from './ColdObservable';\nimport { HotObservable } from './HotObservable';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';\nimport { AsyncScheduler } from '../scheduler/AsyncScheduler';\nvar defaultMaxFrame = 750;\nvar TestScheduler = (function (_super) {\n tslib_1.__extends(TestScheduler, _super);\n function TestScheduler(assertDeepEqual) {\n var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;\n _this.assertDeepEqual = assertDeepEqual;\n _this.hotObservables = [];\n _this.coldObservables = [];\n _this.flushTests = [];\n _this.runMode = false;\n return _this;\n }\n TestScheduler.prototype.createTime = function (marbles) {\n var indexOf = marbles.indexOf('|');\n if (indexOf === -1) {\n throw new Error('marble diagram for time should have a completion marker \"|\"');\n }\n return indexOf * TestScheduler.frameTimeFactor;\n };\n TestScheduler.prototype.createColdObservable = function (marbles, values, error) {\n if (marbles.indexOf('^') !== -1) {\n throw new Error('cold observable cannot have subscription offset \"^\"');\n }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('cold observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var cold = new ColdObservable(messages, this);\n this.coldObservables.push(cold);\n return cold;\n };\n TestScheduler.prototype.createHotObservable = function (marbles, values, error) {\n if (marbles.indexOf('!') !== -1) {\n throw new Error('hot observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var subject = new HotObservable(messages, this);\n this.hotObservables.push(subject);\n return subject;\n };\n TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {\n var _this = this;\n var messages = [];\n observable.subscribe(function (value) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });\n }, function (err) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });\n }, function () {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });\n });\n return messages;\n };\n TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {\n var _this = this;\n if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }\n var actual = [];\n var flushTest = { actual: actual, ready: false };\n var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);\n var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?\n 0 : subscriptionParsed.subscribedFrame;\n var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;\n var subscription;\n this.schedule(function () {\n subscription = observable.subscribe(function (x) {\n var value = x;\n if (x instanceof Observable) {\n value = _this.materializeInnerObservable(value, _this.frame);\n }\n actual.push({ frame: _this.frame, notification: Notification.createNext(value) });\n }, function (err) {\n actual.push({ frame: _this.frame, notification: Notification.createError(err) });\n }, function () {\n actual.push({ frame: _this.frame, notification: Notification.createComplete() });\n });\n }, subscriptionFrame);\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);\n }\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles, values, errorValue) {\n flushTest.ready = true;\n flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);\n }\n };\n };\n TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {\n var flushTest = { actual: actualSubscriptionLogs, ready: false };\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles) {\n var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;\n flushTest.ready = true;\n flushTest.expected = marblesArray.map(function (marbles) {\n return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);\n });\n }\n };\n };\n TestScheduler.prototype.flush = function () {\n var _this = this;\n var hotObservables = this.hotObservables;\n while (hotObservables.length > 0) {\n hotObservables.shift().setup();\n }\n _super.prototype.flush.call(this);\n this.flushTests = this.flushTests.filter(function (test) {\n if (test.ready) {\n _this.assertDeepEqual(test.actual, test.expected);\n return false;\n }\n return true;\n });\n };\n TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {\n var _this = this;\n if (runMode === void 0) { runMode = false; }\n if (typeof marbles !== 'string') {\n return new SubscriptionLog(Number.POSITIVE_INFINITY);\n }\n var len = marbles.length;\n var groupStart = -1;\n var subscriptionFrame = Number.POSITIVE_INFINITY;\n var unsubscriptionFrame = Number.POSITIVE_INFINITY;\n var frame = 0;\n var _loop_1 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '^':\n if (subscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n subscriptionFrame = groupStart > -1 ? groupStart : frame;\n advanceFrameBy(1);\n break;\n case '!':\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n unsubscriptionFrame = groupStart > -1 ? groupStart : frame;\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_1.frameTimeFactor);\n break;\n }\n }\n }\n throw new Error('there can only be \\'^\\' and \\'!\\' markers in a ' +\n 'subscription marble diagram. Found instead \\'' + c + '\\'.');\n }\n frame = nextFrame;\n out_i_1 = i;\n };\n var this_1 = this, out_i_1;\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n if (unsubscriptionFrame < 0) {\n return new SubscriptionLog(subscriptionFrame);\n }\n else {\n return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);\n }\n };\n TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {\n var _this = this;\n if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }\n if (runMode === void 0) { runMode = false; }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('conventional marble diagrams cannot have the ' +\n 'unsubscription marker \"!\"');\n }\n var len = marbles.length;\n var testMessages = [];\n var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');\n var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);\n var getValue = typeof values !== 'object' ?\n function (x) { return x; } :\n function (x) {\n if (materializeInnerObservables && values[x] instanceof ColdObservable) {\n return values[x].messages;\n }\n return values[x];\n };\n var groupStart = -1;\n var _loop_2 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var notification = void 0;\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '|':\n notification = Notification.createComplete();\n advanceFrameBy(1);\n break;\n case '^':\n advanceFrameBy(1);\n break;\n case '#':\n notification = Notification.createError(errorValue || 'error');\n advanceFrameBy(1);\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_2.frameTimeFactor);\n break;\n }\n }\n }\n notification = Notification.createNext(getValue(c));\n advanceFrameBy(1);\n break;\n }\n if (notification) {\n testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });\n }\n frame = nextFrame;\n out_i_2 = i;\n };\n var this_2 = this, out_i_2;\n for (var i = 0; i < len; i++) {\n _loop_2(i);\n i = out_i_2;\n }\n return testMessages;\n };\n TestScheduler.prototype.run = function (callback) {\n var prevFrameTimeFactor = TestScheduler.frameTimeFactor;\n var prevMaxFrames = this.maxFrames;\n TestScheduler.frameTimeFactor = 1;\n this.maxFrames = Number.POSITIVE_INFINITY;\n this.runMode = true;\n AsyncScheduler.delegate = this;\n var helpers = {\n cold: this.createColdObservable.bind(this),\n hot: this.createHotObservable.bind(this),\n flush: this.flush.bind(this),\n expectObservable: this.expectObservable.bind(this),\n expectSubscriptions: this.expectSubscriptions.bind(this),\n };\n try {\n var ret = callback(helpers);\n this.flush();\n return ret;\n }\n finally {\n TestScheduler.frameTimeFactor = prevFrameTimeFactor;\n this.maxFrames = prevMaxFrames;\n this.runMode = false;\n AsyncScheduler.delegate = undefined;\n }\n };\n return TestScheduler;\n}(VirtualTimeScheduler));\nexport { TestScheduler };\n//# sourceMappingURL=TestScheduler.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","import * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n if (headers === void 0) { headers = null; }\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n tslib_1.__extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n tslib_1.__extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var result;\n try {\n result = new AjaxResponse(e, xhr, request);\n }\n catch (err) {\n return destination.error(err);\n }\n destination.next(result);\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n try {\n var xhr = this.xhr = request.createXHR();\n this.setupEvents(xhr, request);\n if (user) {\n xhr.open(method, url, async, user, password);\n }\n else {\n xhr.open(method, url, async);\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n if (body) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n }\n catch (err) {\n this.error(err);\n }\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n for (var key in headers) {\n if (key.toLowerCase() === headerName.toLowerCase()) {\n return headers[key];\n }\n }\n return undefined;\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxTimeoutError(this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error;\n try {\n error = new AjaxError('ajax error', this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var error = void 0;\n try {\n error = new AjaxError('ajax error ' + status_1, this, request);\n }\n catch (err) {\n error = err;\n }\n subscriber.error(error);\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = (function () {\n function AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n }\n AjaxErrorImpl.prototype = Object.create(Error.prototype);\n return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return parseJson(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { ReplaySubject } from '../../ReplaySubject';\nvar DEFAULT_WEBSOCKET_CONFIG = {\n url: '',\n deserializer: function (e) { return JSON.parse(e.data); },\n serializer: function (value) { return JSON.stringify(value); },\n};\nvar WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';\nvar WebSocketSubject = (function (_super) {\n tslib_1.__extends(WebSocketSubject, _super);\n function WebSocketSubject(urlConfigOrSource, destination) {\n var _this = _super.call(this) || this;\n if (urlConfigOrSource instanceof Observable) {\n _this.destination = destination;\n _this.source = urlConfigOrSource;\n }\n else {\n var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG);\n _this._output = new Subject();\n if (typeof urlConfigOrSource === 'string') {\n config.url = urlConfigOrSource;\n }\n else {\n for (var key in urlConfigOrSource) {\n if (urlConfigOrSource.hasOwnProperty(key)) {\n config[key] = urlConfigOrSource[key];\n }\n }\n }\n if (!config.WebSocketCtor && WebSocket) {\n config.WebSocketCtor = WebSocket;\n }\n else if (!config.WebSocketCtor) {\n throw new Error('no WebSocket constructor can be found');\n }\n _this.destination = new ReplaySubject();\n }\n return _this;\n }\n WebSocketSubject.prototype.lift = function (operator) {\n var sock = new WebSocketSubject(this._config, this.destination);\n sock.operator = operator;\n sock.source = this;\n return sock;\n };\n WebSocketSubject.prototype._resetState = function () {\n this._socket = null;\n if (!this.source) {\n this.destination = new ReplaySubject();\n }\n this._output = new Subject();\n };\n WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {\n var self = this;\n return new Observable(function (observer) {\n try {\n self.next(subMsg());\n }\n catch (err) {\n observer.error(err);\n }\n var subscription = self.subscribe(function (x) {\n try {\n if (messageFilter(x)) {\n observer.next(x);\n }\n }\n catch (err) {\n observer.error(err);\n }\n }, function (err) { return observer.error(err); }, function () { return observer.complete(); });\n return function () {\n try {\n self.next(unsubMsg());\n }\n catch (err) {\n observer.error(err);\n }\n subscription.unsubscribe();\n };\n });\n };\n WebSocketSubject.prototype._connectSocket = function () {\n var _this = this;\n var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;\n var observer = this._output;\n var socket = null;\n try {\n socket = protocol ?\n new WebSocketCtor(url, protocol) :\n new WebSocketCtor(url);\n this._socket = socket;\n if (binaryType) {\n this._socket.binaryType = binaryType;\n }\n }\n catch (e) {\n observer.error(e);\n return;\n }\n var subscription = new Subscription(function () {\n _this._socket = null;\n if (socket && socket.readyState === 1) {\n socket.close();\n }\n });\n socket.onopen = function (e) {\n var _socket = _this._socket;\n if (!_socket) {\n socket.close();\n _this._resetState();\n return;\n }\n var openObserver = _this._config.openObserver;\n if (openObserver) {\n openObserver.next(e);\n }\n var queue = _this.destination;\n _this.destination = Subscriber.create(function (x) {\n if (socket.readyState === 1) {\n try {\n var serializer = _this._config.serializer;\n socket.send(serializer(x));\n }\n catch (e) {\n _this.destination.error(e);\n }\n }\n }, function (e) {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n if (e && e.code) {\n socket.close(e.code, e.reason);\n }\n else {\n observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));\n }\n _this._resetState();\n }, function () {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n socket.close();\n _this._resetState();\n });\n if (queue && queue instanceof ReplaySubject) {\n subscription.add(queue.subscribe(_this.destination));\n }\n };\n socket.onerror = function (e) {\n _this._resetState();\n observer.error(e);\n };\n socket.onclose = function (e) {\n _this._resetState();\n var closeObserver = _this._config.closeObserver;\n if (closeObserver) {\n closeObserver.next(e);\n }\n if (e.wasClean) {\n observer.complete();\n }\n else {\n observer.error(e);\n }\n };\n socket.onmessage = function (e) {\n try {\n var deserializer = _this._config.deserializer;\n observer.next(deserializer(e));\n }\n catch (err) {\n observer.error(err);\n }\n };\n };\n WebSocketSubject.prototype._subscribe = function (subscriber) {\n var _this = this;\n var source = this.source;\n if (source) {\n return source.subscribe(subscriber);\n }\n if (!this._socket) {\n this._connectSocket();\n }\n this._output.subscribe(subscriber);\n subscriber.add(function () {\n var _socket = _this._socket;\n if (_this._output.observers.length === 0) {\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n }\n _this._resetState();\n }\n });\n return subscriber;\n };\n WebSocketSubject.prototype.unsubscribe = function () {\n var _socket = this._socket;\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n }\n this._resetState();\n _super.prototype.unsubscribe.call(this);\n };\n return WebSocketSubject;\n}(AnonymousSubject));\nexport { WebSocketSubject };\n//# sourceMappingURL=WebSocketSubject.js.map","import { WebSocketSubject } from './WebSocketSubject';\nexport function webSocket(urlConfigOrSource) {\n return new WebSocketSubject(urlConfigOrSource);\n}\n//# sourceMappingURL=webSocket.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { from } from '../../observable/from';\nexport function fromFetch(input, initWithSelector) {\n if (initWithSelector === void 0) { initWithSelector = {}; }\n var selector = initWithSelector.selector, init = tslib_1.__rest(initWithSelector, [\"selector\"]);\n return new Observable(function (subscriber) {\n var controller = new AbortController();\n var signal = controller.signal;\n var abortable = true;\n var unsubscribed = false;\n var subscription = new Subscription();\n subscription.add(function () {\n unsubscribed = true;\n if (abortable) {\n controller.abort();\n }\n });\n var perSubscriberInit;\n if (init) {\n if (init.signal) {\n if (init.signal.aborted) {\n controller.abort();\n }\n else {\n var outerSignal_1 = init.signal;\n var outerSignalHandler_1 = function () {\n if (!signal.aborted) {\n controller.abort();\n }\n };\n outerSignal_1.addEventListener('abort', outerSignalHandler_1);\n subscription.add(function () { return outerSignal_1.removeEventListener('abort', outerSignalHandler_1); });\n }\n }\n perSubscriberInit = tslib_1.__assign({}, init, { signal: signal });\n }\n else {\n perSubscriberInit = { signal: signal };\n }\n fetch(input, perSubscriberInit).then(function (response) {\n if (selector) {\n subscription.add(from(selector(response)).subscribe(function (value) { return subscriber.next(value); }, function (err) {\n abortable = false;\n if (!unsubscribed) {\n subscriber.error(err);\n }\n }, function () {\n abortable = false;\n subscriber.complete();\n }));\n }\n else {\n abortable = false;\n subscriber.next(response);\n subscriber.complete();\n }\n }).catch(function (err) {\n abortable = false;\n if (!unsubscribed) {\n subscriber.error(err);\n }\n });\n return subscription;\n });\n}\n//# sourceMappingURL=fetch.js.map","export * from '../index';\nimport * as _operators from '../operators/index';\nexport var operators = _operators;\nimport * as _testing from '../testing/index';\nexport var testing = _testing;\nimport * as _ajax from '../ajax/index';\nexport var ajax = _ajax;\nimport * as _webSocket from '../webSocket/index';\nexport var webSocket = _webSocket;\nimport * as _fetch from '../fetch/index';\nexport var fetch = _fetch;\n//# sourceMappingURL=umd.js.map"],"names":["tslib_1.__extends","emptyObserver","rxSubscriberSymbol","observable","Symbol_observable","higherOrderRefCount","RefCountSubscriber","refCount","empty","NotificationKind","dispatch","dispatchError","dispatchNext","iterator","Symbol_iterator","combineLatest","concat","concatStatic","merge","mergeStatic","onErrorResumeNext","partition","race","raceStatic","window","WindowOperator","WindowSubscriber","zip","zipStatic","root","tslib_1.__assign","tslib_1.__rest","ajax","webSocket","fetch"],"mappings":"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"} diff --git a/node_modules/rxjs/bundles/rxjs.umd.min.js b/node_modules/rxjs/bundles/rxjs.umd.min.js new file mode 100644 index 00000000..8f0288ef --- /dev/null +++ b/node_modules/rxjs/bundles/rxjs.umd.min.js @@ -0,0 +1,272 @@ +/** + @license + Apache License 2.0 https://github.com/ReactiveX/RxJS/blob/master/LICENSE.txt + **/ +/** + @license + Apache License 2.0 https://github.com/ReactiveX/RxJS/blob/master/LICENSE.txt + **/ +/* + ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + 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 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. +*****************************************************************************/ +(function(k,h){"object"===typeof exports&&"undefined"!==typeof module?h(exports):"function"===typeof define&&define.amd?define("rxjs",["exports"],h):h(k.rxjs={})})(this,function(k){function h(c,a){function b(){this.constructor=c}Pb(c,a);c.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}function Qb(c,a){var b={},d;for(d in c)Object.prototype.hasOwnProperty.call(c,d)&&0>a.indexOf(d)&&(b[d]=c[d]);if(null!=c&&"function"===typeof Object.getOwnPropertySymbols){var e=0;for(d=Object.getOwnPropertySymbols(c);e< +d.length;e++)0>a.indexOf(d[e])&&(b[d[e]]=c[d[e]])}return b}function R(c){return"function"===typeof c}function S(c){setTimeout(function(){throw c;},0)}function ua(c){return null!==c&&"object"===typeof c}function Oa(c){return c.reduce(function(a,b){return a.concat(b instanceof aa?b.errors:b)},[])}function va(c){for(;c;){var a=c.destination,b=c.isStopped;if(c.closed||b)return!1;c=a&&a instanceof m?a:null}return!0}function I(c){return c}function wa(){for(var c=[],a=0;a=b.length?b[0]:b);g.complete()}]))}catch(L){va(g)?g.error(L):console.warn(L)}}return g.subscribe(d)})}}function Vb(c){var a=this,b=c.args,d=c.subscriber;c=c.params;var e=c.callbackFunc,f=c.context,g=c.scheduler,l=c.subject;if(!l){l=c.subject=new V;try{e.apply(f, +b.concat([function(){for(var b=[],c=0;c=b.length?b[0]:b,subject:l}))}]))}catch(t){l.error(t)}}this.add(l.subscribe(d))}function Wb(c){var a=c.subject;a.next(c.value);a.complete()}function Ua(c,a,b){if(a)if(B(a))b=a;else return function(){for(var d=[],e=0;e=b.length?b[0]:b),g.complete())}]))}catch(L){va(g)?g.error(L):console.warn(L)}}return g.subscribe(d)})}}function Xb(c){var a=this,b=c.params,d=c.subscriber; +c=c.context;var e=b.callbackFunc,f=b.args,g=b.scheduler,l=b.subject;if(!l){l=b.subject=new V;try{e.apply(c,f.concat([function(){for(var b=[],c=0;c=b.length?b[0]:b,subject:l}))}]))}catch(t){this.add(g.schedule(Va,0,{err:t,subject:l}))}}this.add(l.subscribe(d))}function Yb(c){var a=c.subject;a.next(c.value);a.complete()}function Va(c){c.subject.error(c.err)}function Wa(c){return!!c&& +"function"!==typeof c.subscribe&&"function"===typeof c.then}function G(c,a,b,d,e){void 0===e&&(e=new Zb(c,b,d));if(!e.closed)return a instanceof n?a.subscribe(e):ca(a)(e)}function $b(c,a){return new n(function(b){var d=new p;d.add(a.schedule(function(){var e=c[W]();d.add(e.subscribe({next:function(c){d.add(a.schedule(function(){return b.next(c)}))},error:function(c){d.add(a.schedule(function(){return b.error(c)}))},complete:function(){d.add(a.schedule(function(){return b.complete()}))}}))}));return d})} +function ac(c,a){return new n(function(b){var d=new p;d.add(a.schedule(function(){return c.then(function(c){d.add(a.schedule(function(){b.next(c);d.add(a.schedule(function(){return b.complete()}))}))},function(c){d.add(a.schedule(function(){return b.error(c)}))})}));return d})}function bc(c,a){if(!c)throw Error("Iterable cannot be null");return new n(function(b){var d=new p,e;d.add(function(){e&&"function"===typeof e.return&&e.return()});d.add(a.schedule(function(){e=c[H]();d.add(a.schedule(function(){if(!b.closed){var a, +c;try{var d=e.next();a=d.value;c=d.done}catch(t){b.error(t);return}c?b.complete():(b.next(a),this.schedule())}}))}));return d})}function Xa(c,a){if(null!=c){if(c&&"function"===typeof c[W])return $b(c,a);if(Wa(c))return ac(c,a);if(Ya(c))return ya(c,a);if(c&&"function"===typeof c[H]||"string"===typeof c)return bc(c,a)}throw new TypeError((null!==c&&typeof c||c)+" is not observable");}function F(c,a){return a?Xa(c,a):c instanceof n?c:new n(ca(c))}function v(c,a){if(!a.closed)return c instanceof n?c.subscribe(a): +ca(c)(a)}function M(c,a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);if("function"===typeof a)return function(d){return d.pipe(M(function(b,d){return F(c(b,d)).pipe(C(function(c,e){return a(b,c,d,e)}))},b))};"number"===typeof a&&(b=a);return function(a){return a.lift(new cc(c,b))}}function Ba(c){void 0===c&&(c=Number.POSITIVE_INFINITY);return M(I,c)}function Za(){return Ba(1)}function da(){for(var c=[],a=0;a=c.count?d.complete():(d.next(a),d.closed||(c.index=b+1,c.start=a+1,this.schedule(c)))}function fb(c,a,b){void 0===c&&(c=0);var d=-1;X(a)?d=1>Number(a)&&1||Number(a):B(a)&&(b=a);B(b)||(b= +z);return new n(function(a){var e=X(c)?c:+c-b.now();return b.schedule(mc,e,{index:0,period:d,subscriber:a})})}function mc(c){var a=c.index,b=c.period,d=c.subscriber;d.next(a);if(!d.closed){if(-1===b)return d.complete();c.index=a+1;this.schedule(c,b)}}function gb(){for(var c=[],a=0;a=a?this.connection=null:(b._refCount=a-1,1=a?this.connection=null:(b._refCount=a-1,1b?1:b;d._windowTime=1>a?1:a;a===Number.POSITIVE_INFINITY?(d._infiniteTimeWindow=!0,d.next=d.nextInfiniteTimeWindow):d.next=d.nextTimeWindow;return d}h(a,c);a.prototype.nextInfiniteTimeWindow=function(b){if(!this.isStopped){var a=this._events;a.push(b); +a.length>this._bufferSize&&a.shift()}c.prototype.next.call(this,b)};a.prototype.nextTimeWindow=function(b){this.isStopped||(this._events.push(new $c(this._getNow(),b)),this._trimBufferThenGetEvents());c.prototype.next.call(this,b)};a.prototype._subscribe=function(b){var a=this._infiniteTimeWindow,c=a?this._events:this._trimBufferThenGetEvents(),f=this.scheduler,g=c.length,l;if(this.closed)throw new K;this.isStopped||this.hasError?l=p.EMPTY:(this.observers.push(b),l=new ub(this,b));f&&b.add(b=new yb(b, +f));if(a)for(a=0;aa&&(l=Math.max(l,g-a));0a.index?1:-1:b.delay>a.delay?1:-1};return a}(ha),Z=function(){function c(){Error.call(this);this.message="argument out of range";this.name="ArgumentOutOfRangeError";return this}c.prototype=Object.create(Error.prototype);return c}(),fa=function(){function c(){Error.call(this); +this.message="no elements in sequence";this.name="EmptyError";return this}c.prototype=Object.create(Error.prototype);return c}(),Db=function(){function c(){Error.call(this);this.message="Timeout has occurred";this.name="TimeoutError";return this}c.prototype=Object.create(Error.prototype);return c}(),Ub=function(){function c(a,b){this.project=a;this.thisArg=b}c.prototype.call=function(a,b){return b.subscribe(new ed(a,this.project,this.thisArg))};return c}(),ed=function(c){function a(b,a,e){b=c.call(this, +b)||this;b.project=a;b.count=0;b.thisArg=e||b;return b}h(a,c);a.prototype._next=function(b){var a;try{a=this.project.call(this.thisArg,b,this.count++)}catch(e){this.destination.error(e);return}this.destination.next(a)};return a}(m),Q=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}h(a,c);a.prototype.notifyNext=function(b,a,c,f,g){this.destination.next(a)};a.prototype.notifyError=function(b,a){this.destination.error(b)};a.prototype.notifyComplete=function(b){this.destination.complete()}; +return a}(m),Zb=function(c){function a(b,a,e){var d=c.call(this)||this;d.parent=b;d.outerValue=a;d.outerIndex=e;d.index=0;return d}h(a,c);a.prototype._next=function(b){this.parent.notifyNext(this.outerValue,b,this.outerIndex,this.index++,this)};a.prototype._error=function(b){this.parent.notifyError(b,this);this.unsubscribe()};a.prototype._complete=function(){this.parent.notifyComplete(this);this.unsubscribe()};return a}(m),fd=function(c){return function(a){c.then(function(b){a.closed||(a.next(b), +a.complete())},function(b){return a.error(b)}).then(null,S);return a}},H;H="function"===typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";var gd=function(c){return function(a){var b=c[H]();do{var d=void 0;try{d=b.next()}catch(e){return a.error(e),a}if(d.done){a.complete();break}a.next(d.value);if(a.closed)break}while(1);"function"===typeof b.return&&a.add(function(){b.return&&b.return()});return a}},hd=function(c){return function(a){var b=c[W]();if("function"!==typeof b.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable"); +return b.subscribe(a)}},Ya=function(c){return c&&"number"===typeof c.length&&"function"!==typeof c},ca=function(c){if(c&&"function"===typeof c[W])return hd(c);if(Ya(c))return Ra(c);if(Wa(c))return fd(c);if(c&&"function"===typeof c[H])return gd(c);c=ua(c)?"an invalid object":"'"+c+"'";throw new TypeError("You provided "+c+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.");},Eb={},La=function(){function c(a){this.resultSelector=a}c.prototype.call=function(a, +b){return b.subscribe(new id(a,this.resultSelector))};return c}(),id=function(c){function a(b,a){b=c.call(this,b)||this;b.resultSelector=a;b.active=0;b.values=[];b.observables=[];return b}h(a,c);a.prototype._next=function(b){this.values.push(Eb);this.observables.push(b)};a.prototype._complete=function(){var b=this.observables,a=b.length;if(0===a)this.destination.complete();else{this.toRespond=this.active=a;for(var c=0;cthis.index};c.prototype.hasCompleted=function(){return this.array.length=== +this.index};return c}(),pd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.parent=a;b.observable=e;b.stillUnsubscribed=!0;b.buffer=[];b.isComplete=!1;return b}h(a,c);a.prototype[H]=function(){return this};a.prototype.next=function(){var b=this.buffer;return 0===b.length&&this.isComplete?{value:null,done:!0}:{value:b.shift(),done:!1}};a.prototype.hasValue=function(){return 0e;if(b.timespanOnly)b.add(f.closeAction=g.schedule(jb,a,{subscriber:b,context:f,bufferTimeSpan:a}));else{var d={bufferTimeSpan:a,bufferCreationInterval:e,subscriber:b,scheduler:g};b.add(f.closeAction=g.schedule(kb,a,{subscriber:b,context:f}));b.add(g.schedule(oc,e,d))}return b}h(a,c);a.prototype._next=function(b){for(var a=this.contexts,c=a.length,f,g=0;g=c[0].time-f.now();)c.shift().notification.observe(g);0this.total)throw new Z; +}c.prototype.call=function(a,b){return b.subscribe(new Yd(a,this.total))};return c}(),Yd=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.count=0;return b}h(a,c);a.prototype._next=function(b){var a=this.total,c=++this.count;c<=a&&(this.destination.next(b),c===a&&(this.destination.complete(),this.unsubscribe()))};return a}(m),$d=function(){function c(a,b,c){this.predicate=a;this.thisArg=b;this.source=c}c.prototype.call=function(a,b){return b.subscribe(new Zd(a,this.predicate,this.thisArg, +this.source))};return c}(),Zd=function(c){function a(b,a,e,f){b=c.call(this,b)||this;b.predicate=a;b.thisArg=e;b.source=f;b.index=0;b.thisArg=e||b;return b}h(a,c);a.prototype.notifyComplete=function(b){this.destination.next(b);this.destination.complete()};a.prototype._next=function(b){var a=!1;try{a=this.predicate.call(this.thisArg,b,this.index++,this.source)}catch(e){this.destination.error(e);return}a||this.notifyComplete(!1)};a.prototype._complete=function(){this.notifyComplete(!0)};return a}(m), +be=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new ae(a))};return c}(),ae=function(c){function a(b){b=c.call(this,b)||this;b.hasCompleted=!1;b.hasSubscription=!1;return b}h(a,c);a.prototype._next=function(b){this.hasSubscription||(this.hasSubscription=!0,this.add(v(b,new u(this))))};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};a.prototype.notifyComplete=function(){this.hasSubscription=!1;this.hasCompleted&& +this.destination.complete()};return a}(r),vc=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new ce(a,this.project))};return c}(),ce=function(c){function a(b,a){b=c.call(this,b)||this;b.project=a;b.hasSubscription=!1;b.hasCompleted=!1;b.index=0;return b}h(a,c);a.prototype._next=function(b){this.hasSubscription||this.tryNext(b)};a.prototype.tryNext=function(b){var a,c=this.index++;try{a=this.project(b,c)}catch(f){this.destination.error(f);return}this.hasSubscription= +!0;this._innerSub(a)};a.prototype._innerSub=function(b){var a=new u(this),c=this.destination;c.add(a);b=v(b,a);b!==a&&c.add(b)};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete();this.unsubscribe()};a.prototype.notifyNext=function(b){this.destination.next(b)};a.prototype.notifyError=function(b){this.destination.error(b)};a.prototype.notifyComplete=function(){this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(r),ee= +function(){function c(a,b,c){this.project=a;this.concurrent=b;this.scheduler=c}c.prototype.call=function(a,b){return b.subscribe(new de(a,this.project,this.concurrent,this.scheduler))};return c}(),de=function(c){function a(b,a,e,f){b=c.call(this,b)||this;b.project=a;b.concurrent=e;b.scheduler=f;b.index=0;b.active=0;b.hasCompleted=!1;ethis.total)throw new Z;}c.prototype.call=function(a,b){return b.subscribe(new me(a, +this.total))};return c}(),me=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.ring=[];b.count=0;return b}h(a,c);a.prototype._next=function(b){var a=this.ring,c=this.total,f=this.count++;a.length=this.total?this.total:this.count,f=this.ring,g=0;gthis.total&&this.destination.next(b)};return a}(m),Re=function(){function c(a){this._skipCount=a;if(0>this._skipCount)throw new Z;}c.prototype.call=function(a,b){return 0===this._skipCount?b.subscribe(new m(a)):b.subscribe(new Qe(a,this._skipCount))};return c}(),Qe=function(c){function a(b,a){b=c.call(this,b)||this;b._skipCount=a;b._count=0;b._ring=Array(a);return b}h(a,c);a.prototype._next=function(b){var a= +this._skipCount,c=this._count++;if(cd)b.delayTime=0;e&&"function"===typeof e.schedule||(b.scheduler=ia);return b}h(a,c);a.create=function(b,c,e){void 0===c&&(c=0);void 0===e&&(e=ia);return new a(b,c,e)};a.dispatch=function(a){return this.add(a.source.subscribe(a.subscriber))}; +a.prototype._subscribe=function(b){return this.scheduler.schedule(a.dispatch,this.delayTime,{source:this.source,subscriber:b})};return a}(n),Xe=function(){function c(a,b){this.scheduler=a;this.delay=b}c.prototype.call=function(a,b){return(new We(b,this.delay,this.scheduler)).subscribe(a)};return c}(),Ec=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new Ye(a,this.project))};return c}(),Ye=function(c){function a(a,d){a=c.call(this,a)||this;a.project=d;a.index= +0;return a}h(a,c);a.prototype._next=function(a){var b,c=this.index++;try{b=this.project(a,c)}catch(f){this.destination.error(f);return}this._innerSub(b)};a.prototype._innerSub=function(a){var b=this.innerSubscription;b&&b.unsubscribe();var b=new u(this),c=this.destination;c.add(b);this.innerSubscription=v(a,b);this.innerSubscription!==b&&c.add(this.innerSubscription)};a.prototype._complete=function(){var a=this.innerSubscription;a&&!a.closed||c.prototype._complete.call(this);this.unsubscribe()};a.prototype._unsubscribe= +function(){this.innerSubscription=void 0};a.prototype.notifyComplete=function(){this.innerSubscription=void 0;this.isStopped&&c.prototype._complete.call(this)};a.prototype.notifyNext=function(a){this.destination.next(a)};return a}(r),$e=function(){function c(a){this.notifier=a}c.prototype.call=function(a,b){a=new Ze(a);var c=v(this.notifier,new u(a));return c&&!a.seenValue?(a.add(c),b.subscribe(a)):a};return c}(),Ze=function(c){function a(a){a=c.call(this,a)||this;a.seenValue=!1;return a}h(a,c);a.prototype.notifyNext= +function(){this.seenValue=!0;this.complete()};a.prototype.notifyComplete=function(){};return a}(r),bf=function(){function c(a,b){this.predicate=a;this.inclusive=b}c.prototype.call=function(a,b){return b.subscribe(new af(a,this.predicate,this.inclusive))};return c}(),af=function(c){function a(a,d,e){a=c.call(this,a)||this;a.predicate=d;a.inclusive=e;a.index=0;return a}h(a,c);a.prototype._next=function(a){var b=this.destination,c;try{c=this.predicate(a,this.index++)}catch(f){b.error(f);return}this.nextOrComplete(a, +c)};a.prototype.nextOrComplete=function(a,c){var b=this.destination;c?b.next(a):(this.inclusive&&b.next(a),b.complete())};return a}(m),df=function(){function c(a,b,c){this.nextOrObserver=a;this.error=b;this.complete=c}c.prototype.call=function(a,b){return b.subscribe(new cf(a,this.nextOrObserver,this.error,this.complete))};return c}(),cf=function(c){function a(a,d,e,f){a=c.call(this,a)||this;a._tapNext=E;a._tapError=E;a._tapComplete=E;a._tapError=e||E;a._tapComplete=f||E;R(d)?(a._context=a,a._tapNext= +d):d&&(a._context=d,a._tapNext=d.next||E,a._tapError=d.error||E,a._tapComplete=d.complete||E);return a}h(a,c);a.prototype._next=function(a){try{this._tapNext.call(this._context,a)}catch(d){this.destination.error(d);return}this.destination.next(a)};a.prototype._error=function(a){try{this._tapError.call(this._context,a)}catch(d){this.destination.error(d);return}this.destination.error(a)};a.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(b){this.destination.error(b);return}return this.destination.complete()}; +return a}(m),Jb={leading:!0,trailing:!1},ff=function(){function c(a,b,c){this.durationSelector=a;this.leading=b;this.trailing=c}c.prototype.call=function(a,b){return b.subscribe(new ef(a,this.durationSelector,this.leading,this.trailing))};return c}(),ef=function(c){function a(a,d,e,f){var b=c.call(this,a)||this;b.destination=a;b.durationSelector=d;b._leading=e;b._trailing=f;b._hasValue=!1;return b}h(a,c);a.prototype._next=function(a){this._hasValue=!0;this._sendValue=a;this._throttled||(this._leading? +this.send():this.throttle(a))};a.prototype.send=function(){var a=this._sendValue;this._hasValue&&(this.destination.next(a),this.throttle(a));this._hasValue=!1;this._sendValue=void 0};a.prototype.throttle=function(a){(a=this.tryDurationSelector(a))&&this.add(this._throttled=v(a,new u(this)))};a.prototype.tryDurationSelector=function(a){try{return this.durationSelector(a)}catch(d){return this.destination.error(d),null}};a.prototype.throttlingDone=function(){var a=this._throttled,c=this._trailing;a&& +a.unsubscribe();this._throttled=void 0;c&&this.send()};a.prototype.notifyNext=function(){this.throttlingDone()};a.prototype.notifyComplete=function(){this.throttlingDone()};return a}(r),hf=function(){function c(a,b,c,e){this.duration=a;this.scheduler=b;this.leading=c;this.trailing=e}c.prototype.call=function(a,b){return b.subscribe(new gf(a,this.duration,this.scheduler,this.leading,this.trailing))};return c}(),gf=function(c){function a(a,d,e,f,g){a=c.call(this,a)||this;a.duration=d;a.scheduler=e; +a.leading=f;a.trailing=g;a._hasTrailingValue=!1;a._trailingValue=null;return a}h(a,c);a.prototype._next=function(a){this.throttled?this.trailing&&(this._trailingValue=a,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(Fc,this.duration,{subscriber:this})),this.leading?this.destination.next(a):this.trailing&&(this._trailingValue=a,this._hasTrailingValue=!0))};a.prototype._complete=function(){this._hasTrailingValue&&this.destination.next(this._trailingValue);this.destination.complete()}; +a.prototype.clearThrottle=function(){var a=this.throttled;a&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),a.unsubscribe(),this.remove(a),this.throttled=null)};return a}(m),jf=function(){return function(c,a){this.value=c;this.interval=a}}(),Gc=function(){function c(a,b,c,e){this.waitFor=a;this.absoluteTimeout=b;this.withObservable=c;this.scheduler=e}c.prototype.call=function(a,b){return b.subscribe(new kf(a, +this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))};return c}(),kf=function(c){function a(a,d,e,f,g){a=c.call(this,a)||this;a.absoluteTimeout=d;a.waitFor=e;a.withObservable=f;a.scheduler=g;a.scheduleTimeout();return a}h(a,c);a.dispatchTimeout=function(a){var b=a.withObservable;a._unsubscribeAndRecycle();a.add(v(b,new u(a)))};a.prototype.scheduleTimeout=function(){var b=this.action;b?this.action=b.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(a.dispatchTimeout, +this.waitFor,this))};a.prototype._next=function(a){this.absoluteTimeout||this.scheduleTimeout();c.prototype._next.call(this,a)};a.prototype._unsubscribe=function(){this.action=void 0;this.withObservable=this.scheduler=null};return a}(r),lf=function(){return function(c,a){this.value=c;this.timestamp=a}}(),nf=function(){function c(a){this.windowBoundaries=a}c.prototype.call=function(a,b){a=new mf(a);b=b.subscribe(a);b.closed||a.add(v(this.windowBoundaries,new u(a)));return b};return c}(),mf=function(c){function a(a){var b= +c.call(this,a)||this;b.window=new w;a.next(b.window);return b}h(a,c);a.prototype.notifyNext=function(){this.openWindow()};a.prototype.notifyError=function(a){this._error(a)};a.prototype.notifyComplete=function(){this._complete()};a.prototype._next=function(a){this.window.next(a)};a.prototype._error=function(a){this.window.error(a);this.destination.error(a)};a.prototype._complete=function(){this.window.complete();this.destination.complete()};a.prototype._unsubscribe=function(){this.window=null};a.prototype.openWindow= +function(){var a=this.window;a&&a.complete();var a=this.destination,c=this.window=new w;a.next(c)};return a}(r),pf=function(){function c(a,b){this.windowSize=a;this.startWindowEvery=b}c.prototype.call=function(a,b){return b.subscribe(new of(a,this.windowSize,this.startWindowEvery))};return c}(),of=function(c){function a(a,d,e){var b=c.call(this,a)||this;b.destination=a;b.windowSize=d;b.startWindowEvery=e;b.windows=[new w];b.count=0;a.next(b.windows[0]);return b}h(a,c);a.prototype._next=function(a){for(var b= +0=this.maxWindowSize&&this.closeWindow(g))}};a.prototype._error=function(a){for(var b=this.windows;0c)throw new Z;var b=2<=arguments.length;return function(d){return d.pipe(J(function(a,b){return b===c}),Ea(1),b?ea(a):na(function(){return new Z}))}},endWith:function(){for(var c=[],a=0;a(a||0)?Number.POSITIVE_INFINITY:a;return function(d){return d.lift(new ee(c,a,b))}},filter:J,finalize:function(c){return function(a){return a.lift(new ge(c))}},find:function(c,a){if("function"!==typeof c)throw new TypeError("predicate is not a function");return function(b){return b.lift(new Hb(c,b,!1,a))}},findIndex:function(c,a){return function(b){return b.lift(new Hb(c,b,!0,a))}},first:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?J(function(a, +b){return c(a,b,d)}):I,Ea(1),b?ea(a):na(function(){return new fa}))}},groupBy:function(c,a,b,d){return function(e){return e.lift(new Uc(c,a,b,d))}},ignoreElements:function(){return function(c){return c.lift(new je)}},isEmpty:function(){return function(c){return c.lift(new le)}},last:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?J(function(a,b){return c(a,b,d)}):I,oa(1),b?ea(a):na(function(){return new fa}))}},map:C,mapTo:function(c){return function(a){return a.lift(new oe(c))}}, +materialize:function(){return function(c){return c.lift(new qe)}},max:function(c){return qa("function"===typeof c?function(a,b){return 0b?a:b})},merge:function(){for(var c=[],a=0;ac(a,b)?a:b}:function(a,b){return ac?a.lift(new Ib(-1,a)):a.lift(new Ib(c-1,a))}},repeatWhen:function(c){return function(a){return a.lift(new Ae(c))}}, +retry:function(c){void 0===c&&(c=-1);return function(a){return a.lift(new Ce(c,a))}},retryWhen:function(c){return function(a){return a.lift(new Ee(c,a))}},refCount:xa,sample:function(c){return function(a){return a.lift(new Ge(c))}},sampleTime:function(c,a){void 0===a&&(a=z);return function(b){return b.lift(new Ie(c,a))}},scan:pa,sequenceEqual:function(c,a){return function(b){return b.lift(new Ke(c,a))}},share:function(){return function(c){return xa()(N(Cc)(c))}},shareReplay:function(c,a,b){var d; +d=c&&"object"===typeof c?c:{bufferSize:c,windowTime:a,refCount:!1,scheduler:b};return function(a){return a.lift(Dc(d))}},single:function(c){return function(a){return a.lift(new Ne(c,a))}},skip:function(c){return function(a){return a.lift(new Pe(c))}},skipLast:function(c){return function(a){return a.lift(new Re(c))}},skipUntil:function(c){return function(a){return a.lift(new Te(c))}},skipWhile:function(c){return function(a){return a.lift(new Ve(c))}},startWith:function(){for(var c=[],a=0;ak?new ja(h):new ja(h,k)};a.parseMarbles=function(a, +c,e,f,g){var b=this;void 0===f&&(f=!1);void 0===g&&(g=!1);if(-1!==a.indexOf("!"))throw Error('conventional marble diagrams cannot have the unsubscription marker "!"');for(var d=a.length,h=[],k=g?a.replace(/^[ ]+/,"").indexOf("^"):a.indexOf("^"),m=-1===k?0:k*-this.frameTimeFactor,n="object"!==typeof c?function(a){return a}:function(a){return f&&c[a]instanceof Ma?c[a].messages:c[a]},p=-1,k=function(c){var d=m,f=function(a){d+=a*b.frameTimeFactor},l=void 0,k=a[c];switch(k){case " ":g||f(1);break;case "-":f(1); +break;case "(":p=m;f(1);break;case ")":p=-1;f(1);break;case "|":l=x.createComplete();f(1);break;case "^":f(1);break;case "#":l=x.createError(e||"error");f(1);break;default:if(g&&k.match(/^[0-9]$/)&&(0===c||" "===a[c-1])){var t=a.slice(c).match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);if(t){c+=t[0].length-1;var k=parseFloat(t[1]),q=void 0;switch(t[2]){case "ms":q=k;break;case "s":q=1E3*k;break;case "m":q=6E4*k}f(q/v.frameTimeFactor);break}}l=x.createNext(n(k));f(1)}l&&h.push({frame:-1d;d++)try{b=c[d];new A.ActiveXObject(b);break}catch(q){}a=new A.ActiveXObject(b)}catch(q){throw Error("XMLHttpRequest is not supported by your browser");}}return a},crossDomain:!0,withCredentials:!1, +headers:{},method:"GET",responseType:"json",timeout:0};if("string"===typeof a)e.url=a;else for(var f in a)a.hasOwnProperty(f)&&(e[f]=a[f]);b.request=e;return b}h(a,c);a.prototype._subscribe=function(a){return new Ff(a,this.request)};a.create=function(){var b=function(b){return new a(b)};b.get=Kc;b.post=Lc;b.delete=Mc;b.put=Nc;b.patch=Oc;b.getJSON=Pc;return b}();return a}(n),Ff=function(c){function a(a,d){a=c.call(this,a)||this;a.request=d;a.done=!1;var b=d.headers=d.headers||{};d.crossDomain||a.getHeader(b, +"X-Requested-With")||(b["X-Requested-With"]="XMLHttpRequest");a.getHeader(b,"Content-Type")||A.FormData&&d.body instanceof A.FormData||"undefined"===typeof d.body||(b["Content-Type"]="application/x-www-form-urlencoded; charset\x3dUTF-8");d.body=a.serializeBody(d.body,a.getHeader(d.headers,"Content-Type"));a.send();return a}h(a,c);a.prototype.next=function(a){this.done=!0;var b=this.xhr,c=this.request,f=this.destination,g;try{g=new Mb(a,b,c)}catch(l){return f.error(l)}f.next(g)};a.prototype.send=function(){var a= +this.request,c=this.request,e=c.user,f=c.method,g=c.url,h=c.async,k=c.password,m=c.headers,c=c.body;try{var q=this.xhr=a.createXHR();this.setupEvents(q,a);e?q.open(f,g,h,e,k):q.open(f,g,h);h&&(q.timeout=a.timeout,q.responseType=a.responseType);"withCredentials"in q&&(q.withCredentials=!!a.withCredentials);this.setHeaders(q,m);c?q.send(c):q.send()}catch(dc){this.error(dc)}};a.prototype.serializeBody=function(a,c){if(!a||"string"===typeof a||A.FormData&&a instanceof A.FormData)return a;if(c){var b= +c.indexOf(";");-1!==b&&(c=c.substring(0,b))}switch(c){case "application/x-www-form-urlencoded":return Object.keys(a).map(function(b){return encodeURIComponent(b)+"\x3d"+encodeURIComponent(a[b])}).join("\x26");case "application/json":return JSON.stringify(a);default:return a}};a.prototype.setHeaders=function(a,c){for(var b in c)c.hasOwnProperty(b)&&a.setRequestHeader(b,c[b])};a.prototype.getHeader=function(a,c){for(var b in a)if(b.toLowerCase()===c.toLowerCase())return a[b]};a.prototype.setupEvents= +function(a,c){function b(a){var c=b.subscriber,d=b.progressSubscriber,e=b.request;d&&d.error(a);var f;try{f=new Nb(this,e)}catch(Na){f=Na}c.error(f)}function d(a){}function g(a){var b=g.subscriber,c=g.progressSubscriber,d=g.request;if(4===this.readyState){var e=1223===this.status?204:this.status,f="text"===this.responseType?this.response||this.responseText:this.response;0===e&&(e=f?200:0);if(400>e)c&&c.complete(),b.next(a),b.complete();else{c&&c.error(a);a=void 0;try{a=new ta("ajax error "+e,this, +d)}catch(Af){a=Af}b.error(a)}}}var h=c.progressSubscriber;a.ontimeout=b;b.request=c;b.subscriber=this;b.progressSubscriber=h;if(a.upload&&"withCredentials"in a){if(h){var k;k=function(a){k.progressSubscriber.next(a)};A.XDomainRequest?a.onprogress=k:a.upload.onprogress=k;k.progressSubscriber=h}var m;m=function(a){var b=m.progressSubscriber,c=m.subscriber,d=m.request;b&&b.error(a);var e;try{e=new ta("ajax error",this,d)}catch(Na){e=Na}c.error(e)};a.onerror=m;m.request=c;m.subscriber=this;m.progressSubscriber= +h}a.onreadystatechange=d;d.subscriber=this;d.progressSubscriber=h;d.request=c;a.onload=g;g.subscriber=this;g.progressSubscriber=h;g.request=c};a.prototype.unsubscribe=function(){var a=this.xhr;!this.done&&a&&4!==a.readyState&&"function"===typeof a.abort&&a.abort();c.prototype.unsubscribe.call(this)};return a}(m),Mb=function(){return function(c,a,b){this.originalEvent=c;this.xhr=a;this.request=b;this.status=a.status;this.responseType=a.responseType||b.responseType;this.response=rb(this.responseType, +a)}}(),ta=function(){function c(a,b,c){Error.call(this);this.message=a;this.name="AjaxError";this.xhr=b;this.request=c;this.status=b.status;this.responseType=b.responseType||c.responseType;this.response=rb(this.responseType,b);return this}c.prototype=Object.create(Error.prototype);return c}(),Nb=function(c,a){ta.call(this,"ajax timeout",c,a);this.name="AjaxTimeoutError";return this},Gf=Object.freeze({ajax:O.create,AjaxResponse:Mb,AjaxError:ta,AjaxTimeoutError:Nb}),Hf={url:"",deserializer:function(c){return JSON.parse(c.data)}, +serializer:function(c){return JSON.stringify(c)}},Ob=function(c){function a(a,d){var b=c.call(this)||this;if(a instanceof n)b.destination=d,b.source=a;else{d=b._config=sb({},Hf);b._output=new w;if("string"===typeof a)d.url=a;else for(var f in a)a.hasOwnProperty(f)&&(d[f]=a[f]);if(!d.WebSocketCtor&&WebSocket)d.WebSocketCtor=WebSocket;else if(!d.WebSocketCtor)throw Error("no WebSocket constructor can be found");b.destination=new Y}return b}h(a,c);a.prototype.lift=function(b){var c=new a(this._config, +this.destination);c.operator=b;c.source=this;return c};a.prototype._resetState=function(){this._socket=null;this.source||(this.destination=new Y);this._output=new w};a.prototype.multiplex=function(a,c,e){var b=this;return new n(function(d){try{b.next(a())}catch(t){d.error(t)}var f=b.subscribe(function(a){try{e(a)&&d.next(a)}catch(L){d.error(L)}},function(a){return d.error(a)},function(){return d.complete()});return function(){try{b.next(c())}catch(t){d.error(t)}f.unsubscribe()}})};a.prototype._connectSocket= +function(){var a=this,c=this._config,e=c.WebSocketCtor,f=c.protocol,g=c.url,c=c.binaryType,h=this._output,k=null;try{this._socket=k=f?new e(g,f):new e(g),c&&(this._socket.binaryType=c)}catch(q){h.error(q);return}var n=new p(function(){a._socket=null;k&&1===k.readyState&&k.close()});k.onopen=function(b){if(a._socket){var c=a._config.openObserver;c&&c.next(b);b=a.destination;a.destination=m.create(function(b){if(1===k.readyState)try{var c=a._config.serializer;k.send(c(b))}catch(fc){a.destination.error(fc)}}, +function(b){var c=a._config.closingObserver;c&&c.next(void 0);b&&b.code?k.close(b.code,b.reason):h.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }"));a._resetState()},function(){var b=a._config.closingObserver;b&&b.next(void 0);k.close();a._resetState()});b&&b instanceof Y&&n.add(b.subscribe(a.destination))}else k.close(),a._resetState()};k.onerror=function(b){a._resetState();h.error(b)};k.onclose= +function(b){a._resetState();var c=a._config.closeObserver;c&&c.next(b);b.wasClean?h.complete():h.error(b)};k.onmessage=function(b){try{var c=a._config.deserializer;h.next(c(b))}catch(ec){h.error(ec)}}};a.prototype._subscribe=function(a){var b=this,c=this.source;if(c)return c.subscribe(a);this._socket||this._connectSocket();this._output.subscribe(a);a.add(function(){var a=b._socket;0===b._output.observers.length&&(a&&1===a.readyState&&a.close(),b._resetState())});return a};a.prototype.unsubscribe= +function(){var a=this._socket;a&&1===a.readyState&&a.close();this._resetState();c.prototype.unsubscribe.call(this)};return a}(Ga),If=Object.freeze({webSocket:function(c){return new Ob(c)},WebSocketSubject:Ob}),Jf=Object.freeze({fromFetch:function(c,a){void 0===a&&(a={});var b=a.selector,d=Qb(a,["selector"]);return new n(function(a){var e=new AbortController,g=e.signal,h=!0,k=!1,m=new p;m.add(function(){k=!0;h&&e.abort()});var n;if(d){if(d.signal)if(d.signal.aborted)e.abort();else{var r=d.signal,u= +function(){g.aborted||e.abort()};r.addEventListener("abort",u);m.add(function(){return r.removeEventListener("abort",u)})}n=sb({},d,{signal:g})}else n={signal:g};fetch(c,n).then(function(c){b?m.add(F(b(c)).subscribe(function(b){return a.next(b)},function(b){h=!1;k||a.error(b)},function(){h=!1;a.complete()})):(h=!1,a.next(c),a.complete())}).catch(function(b){h=!1;k||a.error(b)});return m})}});k.operators=zf;k.testing=Cf;k.ajax=Gf;k.webSocket=If;k.fetch=Jf;k.Observable=n;k.ConnectableObservable=wb; +k.GroupedObservable=Ha;k.observable=W;k.Subject=w;k.BehaviorSubject=xb;k.ReplaySubject=Y;k.AsyncSubject=V;k.asap=ia;k.asapScheduler=ia;k.async=z;k.asyncScheduler=Ab;k.queue=Ja;k.queueScheduler=Ja;k.animationFrame=Bb;k.animationFrameScheduler=Bb;k.VirtualTimeScheduler=Cb;k.VirtualAction=Ka;k.Scheduler=Ia;k.Subscription=p;k.Subscriber=m;k.Notification=x;k.pipe=wa;k.noop=E;k.identity=I;k.isObservable=function(c){return!!c&&(c instanceof n||"function"===typeof c.lift&&"function"===typeof c.subscribe)}; +k.ArgumentOutOfRangeError=Z;k.EmptyError=fa;k.ObjectUnsubscribedError=K;k.UnsubscriptionError=aa;k.TimeoutError=Db;k.bindCallback=Ta;k.bindNodeCallback=Ua;k.combineLatest=function(){for(var c=[],a=0;ac)c=0;a&&"function"===typeof a.schedule||(a=z);return new n(function(b){b.add(a.schedule(hc,c,{subscriber:b,counter:0,period:c}));return b})};k.merge=cb;k.never=function(){return Fb};k.of=ka;k.onErrorResumeNext=Da;k.pairs=function(c,a){return a?new n(function(b){var d=Object.keys(c),e=new p;e.add(a.schedule(ic,0,{keys:d,index:0,subscriber:b,subscription:e,obj:c}));return e}):new n(function(a){for(var b=Object.keys(c),e=0;e=a){d.complete();break}d.next(f++);if(d.closed)break}while(1)})};k.throwError=za;k.timer=fb;k.using=function(c,a){return new n(function(b){var d;try{d=c()}catch(g){b.error(g); +return}var e;try{e=a(d)}catch(g){b.error(g);return}var f=(e?F(e):U).subscribe(b);return function(){f.unsubscribe();d&&d.unsubscribe()}})};k.zip=gb;k.scheduled=Xa;k.EMPTY=U;k.NEVER=Fb;k.config=D;Object.defineProperty(k,"__esModule",{value:!0})}); +//# sourceMappingURL=rxjs.umd.min.js.map + diff --git a/node_modules/rxjs/bundles/rxjs.umd.min.js.map b/node_modules/rxjs/bundles/rxjs.umd.min.js.map new file mode 100644 index 00000000..3cd7a190 --- /dev/null +++ b/node_modules/rxjs/bundles/rxjs.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"","lineCount":262,"mappings":"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","sources":["../Input_0"],"names":["global","factory","exports","module","define","amd","rxjs","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","__rest","s","e","t","p","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","isFunction","x","hostReportError","err","setTimeout","isObject","flattenUnsubscriptionErrors","errors","reduce","errs","concat","UnsubscriptionError","canReportError","observer","destination","_a","isStopped","closed","Subscriber","identity","pipe","fns","_i","arguments","pipeFromArray","piped","input","prev","fn","getPromiseCtor","promiseCtor","config","Promise","Error","refCount","refCountOperatorFunction","source","lift","RefCountOperator","empty$1","scheduler","emptyScheduled","EMPTY","Observable","subscriber","schedule","complete","isScheduler","value","scheduleArray","sub","Subscription","add","next","fromArray","subscribeToArray","of","args","pop","throwError","error","dispatch","findAndClearHandle","handle","activeHandles","noop","map","project","thisArg","mapOperation","TypeError","MapOperator","bindCallback","callbackFunc","resultSelector","apply","isArray","context","subject","params","dispatch$1","state","AsyncSubject","handler","innerArgs","console","warn","subscribe","_this","dispatchNext","bindNodeCallback","undefined","dispatch$2","shift","dispatchError$1","dispatchNext$1","arg","isPromise","then","subscribeToResult","outerSubscriber","result","outerValue","outerIndex","innerSubscriber","InnerSubscriber","subscribeTo","scheduleObservable","observable$$1","observable","schedulePromise","scheduleIterable","iterator$$1","return","iterator","done","scheduled","isArrayLike","from","innerSubscribe","mergeMap","concurrent","Number","POSITIVE_INFINITY","a","ii","MergeMapOperator","mergeAll","concatAll","observables","defer","observableFactory","forkJoinInternal","sources","keys","len","values","Array","completed","emitted","_loop_1","hasValue","key","fromEvent","target","eventName","options","setupSubscription","slice","sourceObj","unsubscribe","addEventListener","removeEventListener","on","off","addListener","removeListener","fromEventPattern","addHandler","removeHandler","retValue","dispatch$3","condition","needIterate","iterate","conditionResult","isNumeric","val","parseFloat","dispatch$4","counter","period","merge","last","onErrorResumeNext","first","remainder","subNext","dispatch$5","index","subscription","obj","not","pred","notPred","filter","predicate","filterOperatorFunction","FilterOperator","race","RaceOperator","dispatch$6","start","count","timer","dueTime","periodOrScheduler","async","due","now","dispatch$7","zip","ZipOperator","audit","durationSelector","auditOperatorFunction","AuditOperator","dispatchBufferTimeSpanOnly","prevContext","closeContext","openContext","closeAction","bufferTimeSpan","dispatchBufferCreation","bufferCreationInterval","dispatchBufferClose","action","concatMap","dispatchNext$2","debouncedNext","defaultIfEmpty","defaultValue","DefaultIfEmptyOperator","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","throwIfEmpty","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","EmptyError","take","TakeOperator","exhaustMap","ExhaustMapOperator","takeLast","takeLastOperatorFunction","TakeLastOperator","scan","accumulator","seed","hasSeed","scanOperatorFunction","ScanOperator","reduceOperatorFunctionWithSeed","reduceOperatorFunction","acc","multicast","subjectOrSubjectFactory","selector","multicastOperatorFunction","subjectFactory","MulticastOperator","connectable","connectableObservableDescriptor","plucker","props","mapper","currentProp","dispatchNotification","notifyNext","shareSubjectFactory","Subject","shareReplayOperator","_b","bufferSize","_c","windowTime","useRefCount","hasError","isComplete","shareReplayOperation","innerSub","ReplaySubject","switchMap","SwitchMapOperator","dispatchNext$3","clearThrottle","timeoutWith","withObservable","absoluteTimeout","Date","isNaN","waitFor","Math","abs","TimeoutWithOperator","toArrayReducer","arr","item","push","dispatchWindowTimeSpanOnly","windowTimeSpan","window","closeWindow","openWindow","dispatchWindowCreation","windowCreationInterval","dispatchWindowClose","timeSpanState","remove","applyMixins","derivedCtor","baseCtors","baseCtor","propertyKeys","getOwnPropertyNames","j","len2","name_1","ajaxGet","url","headers","AjaxObservable","method","ajaxPost","body","ajaxDelete","ajaxPut","ajaxPatch","ajaxGetJSON","mapResponse","responseType","parseXhrResponse","xhr","response","JSON","parse","responseText","responseXML","setPrototypeOf","__proto__","__assign","assign","n","_enable_super_gross_mode_that_will_cause_bad_things","useDeprecatedSynchronousErrorHandling","stack","log","empty","UnsubscriptionErrorImpl","message","toString","join","name","_subscriptions","_parentOrParents","_ctorUnsubscribe","_unsubscribe","Subscription.prototype.unsubscribe","parent_1","Subscription.prototype.add","teardown","tmp","subscriptions","Subscription.prototype.remove","subscriptionIndex","splice","rxSubscriber","Symbol","random","_super","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","SafeSubscriber","Subscriber.create","Subscriber.prototype.next","_next","Subscriber.prototype.error","_error","Subscriber.prototype.complete","_complete","Subscriber.prototype.unsubscribe","Subscriber.prototype._next","Subscriber.prototype._error","Subscriber.prototype._complete","_unsubscribeAndRecycle","Subscriber.prototype._unsubscribeAndRecycle","_parentSubscriber","observerOrNext","bind","_context","SafeSubscriber.prototype.next","__tryOrSetError","__tryOrUnsub","SafeSubscriber.prototype.error","SafeSubscriber.prototype.complete","wrappedComplete","SafeSubscriber.prototype.__tryOrUnsub","SafeSubscriber.prototype.__tryOrSetError","parent","SafeSubscriber.prototype._unsubscribe","_isScalar","_subscribe","Observable.prototype.lift","operator","Observable.prototype.subscribe","sink","_trySubscribe","Observable.prototype._trySubscribe","forEach","Observable.prototype.forEach","resolve","reject","Observable.prototype._subscribe","Observable.prototype.pipe","operations","toPromise","Observable.prototype.toPromise","Observable.create","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","SubjectSubscription.prototype.unsubscribe","observers","subscriberIndex","SubjectSubscriber","thrownError","Subject.prototype.lift","AnonymousSubject","Subject.prototype.next","copy","Subject.prototype.error","Subject.prototype.complete","Subject.prototype.unsubscribe","Subject.prototype._trySubscribe","Subject.prototype._subscribe","asObservable","Subject.prototype.asObservable","Subject.create","AnonymousSubject.prototype.next","AnonymousSubject.prototype.error","AnonymousSubject.prototype.complete","AnonymousSubject.prototype._subscribe","RefCountOperator.prototype.call","_refCount","refCounter","RefCountSubscriber","connection","connect","RefCountSubscriber.prototype._unsubscribe","sharedConnection","_connection","ConnectableObservable","_isComplete","ConnectableObservable.prototype._subscribe","getSubject","ConnectableObservable.prototype.getSubject","_subject","ConnectableObservable.prototype.connect","ConnectableSubscriber","ConnectableObservable.prototype.refCount","connectableProto","writable","ConnectableSubscriber.prototype._error","ConnectableSubscriber.prototype._complete","ConnectableSubscriber.prototype._unsubscribe","refCount$$1","GroupByOperator","elementSelector","subjectSelector","GroupByOperator.prototype.call","GroupBySubscriber","groups","attemptedToUnsubscribe","GroupBySubscriber.prototype._next","_group","GroupBySubscriber.prototype._group","Map","group","get","element","set","groupedObservable","GroupedObservable","duration","GroupDurationSubscriber","GroupBySubscriber.prototype._error","clear","GroupBySubscriber.prototype._complete","removeGroup","GroupBySubscriber.prototype.removeGroup","delete","GroupBySubscriber.prototype.unsubscribe","GroupDurationSubscriber.prototype._next","GroupDurationSubscriber.prototype._unsubscribe","groupSubject","refCountSubscription","GroupedObservable.prototype._subscribe","InnerRefCountSubscription","InnerRefCountSubscription.prototype.unsubscribe","BehaviorSubject","_value","defineProperty","getValue","enumerable","configurable","BehaviorSubject.prototype._subscribe","BehaviorSubject.prototype.getValue","BehaviorSubject.prototype.next","AsyncAction","work","pending","AsyncAction.prototype.schedule","delay","id","recycleAsyncId","requestAsyncId","AsyncAction.prototype.requestAsyncId","setInterval","flush","AsyncAction.prototype.recycleAsyncId","clearInterval","execute","AsyncAction.prototype.execute","_execute","AsyncAction.prototype._execute","errored","errorValue","AsyncAction.prototype._unsubscribe","actions","Action","Action.prototype.schedule","QueueAction","QueueAction.prototype.schedule","QueueAction.prototype.execute","QueueAction.prototype.requestAsyncId","Scheduler","SchedulerAction","Scheduler.prototype.schedule","Scheduler.now","AsyncScheduler","delegate","active","AsyncScheduler.prototype.schedule","AsyncScheduler.prototype.flush","queueScheduler","QueueScheduler","array","NotificationKind","Notification","kind","observe","Notification.prototype.observe","do","Notification.prototype.do","accept","Notification.prototype.accept","nextOrObserver","toObservable","Notification.prototype.toObservable","createNext","Notification.createNext","undefinedValueNotification","createError","Notification.createError","createComplete","Notification.createComplete","completeNotification","ObserveOnOperator","ObserveOnOperator.prototype.call","ObserveOnSubscriber","ObserveOnSubscriber.dispatch","notification","scheduleMessage","ObserveOnSubscriber.prototype.scheduleMessage","ObserveOnMessage","ObserveOnSubscriber.prototype._next","ObserveOnSubscriber.prototype._error","ObserveOnSubscriber.prototype._complete","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplaySubject.prototype.nextInfiniteTimeWindow","ReplaySubject.prototype.nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","ReplaySubject.prototype._subscribe","ReplaySubject.prototype._getNow","ReplaySubject.prototype._trimBufferThenGetEvents","eventsCount","spliceCount","time","max","hasNext","hasCompleted","AsyncSubject.prototype._subscribe","AsyncSubject.prototype.next","AsyncSubject.prototype.error","AsyncSubject.prototype.complete","nextHandle","RESOLVED","Immediate","setImmediate","cb","clearImmediate","AsapAction","AsapAction.prototype.requestAsyncId","AsapAction.prototype.recycleAsyncId","asapScheduler","AsapScheduler","AsapScheduler.prototype.flush","asyncScheduler","AnimationFrameAction","AnimationFrameAction.prototype.requestAsyncId","requestAnimationFrame","AnimationFrameAction.prototype.recycleAsyncId","cancelAnimationFrame","animationFrameScheduler","AnimationFrameScheduler","AnimationFrameScheduler.prototype.flush","VirtualTimeScheduler","maxFrames","VirtualAction","frame","VirtualTimeScheduler.prototype.flush","frameTimeFactor","VirtualAction.prototype.schedule","VirtualAction.prototype.requestAsyncId","sort","sortActions","VirtualAction.prototype.recycleAsyncId","VirtualAction.prototype._execute","VirtualAction.sortActions","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","EmptyErrorImpl","TimeoutError","TimeoutErrorImpl","MapOperator.prototype.call","MapSubscriber","MapSubscriber.prototype._next","OuterSubscriber","OuterSubscriber.prototype.notifyNext","innerValue","innerIndex","notifyError","OuterSubscriber.prototype.notifyError","notifyComplete","OuterSubscriber.prototype.notifyComplete","InnerSubscriber.prototype._next","InnerSubscriber.prototype._error","InnerSubscriber.prototype._complete","subscribeToPromise","promise","subscribeToIterable","iterable","subscribeToObservable","obs","NONE","CombineLatestOperator","CombineLatestOperator.prototype.call","CombineLatestSubscriber","CombineLatestSubscriber.prototype._next","CombineLatestSubscriber.prototype._complete","toRespond","CombineLatestSubscriber.prototype.notifyComplete","unused","CombineLatestSubscriber.prototype.notifyNext","_outerValue","oldVal","_tryResultSelector","CombineLatestSubscriber.prototype._tryResultSelector","SimpleInnerSubscriber","SimpleInnerSubscriber.prototype._next","SimpleInnerSubscriber.prototype._error","SimpleInnerSubscriber.prototype._complete","ComplexInnerSubscriber","ComplexInnerSubscriber.prototype._next","ComplexInnerSubscriber.prototype._error","ComplexInnerSubscriber.prototype._complete","SimpleOuterSubscriber","SimpleOuterSubscriber.prototype.notifyNext","SimpleOuterSubscriber.prototype.notifyError","SimpleOuterSubscriber.prototype.notifyComplete","ComplexOuterSubscriber","ComplexOuterSubscriber.prototype.notifyNext","_outerIndex","_innerSub","ComplexOuterSubscriber.prototype.notifyError","ComplexOuterSubscriber.prototype.notifyComplete","MergeMapOperator.prototype.call","MergeMapSubscriber","buffer","MergeMapSubscriber.prototype._next","_tryNext","MergeMapSubscriber.prototype._tryNext","MergeMapSubscriber.prototype._innerSub","ish","innerSubscription","MergeMapSubscriber.prototype._complete","MergeMapSubscriber.prototype.notifyNext","MergeMapSubscriber.prototype.notifyComplete","NEVER","FilterOperator.prototype.call","FilterSubscriber","FilterSubscriber.prototype._next","RaceOperator.prototype.call","RaceSubscriber","hasFirst","RaceSubscriber.prototype._next","RaceSubscriber.prototype._complete","RaceSubscriber.prototype.notifyNext","ZipOperator.prototype.call","ZipSubscriber","iterators","ZipSubscriber.prototype._next","StaticArrayIterator","StaticIterator","ZipBufferIterator","ZipSubscriber.prototype._complete","stillUnsubscribed","notifyInactive","ZipSubscriber.prototype.notifyInactive","checkIterators","ZipSubscriber.prototype.checkIterators","shouldComplete","_tryresultSelector","ZipSubscriber.prototype._tryresultSelector","nextResult","StaticIterator.prototype.hasValue","StaticIterator.prototype.next","StaticIterator.prototype.hasCompleted","StaticArrayIterator.prototype.next","StaticArrayIterator.prototype.hasValue","StaticArrayIterator.prototype.hasCompleted","ZipBufferIterator.prototype.next","ZipBufferIterator.prototype.hasValue","ZipBufferIterator.prototype.hasCompleted","ZipBufferIterator.prototype.notifyComplete","ZipBufferIterator.prototype.notifyNext","ZipBufferIterator.prototype.subscribe","AuditOperator.prototype.call","AuditSubscriber","AuditSubscriber.prototype._next","throttled","AuditSubscriber.prototype.clearThrottle","AuditSubscriber.prototype.notifyNext","AuditSubscriber.prototype.notifyComplete","BufferOperator","closingNotifier","BufferOperator.prototype.call","BufferSubscriber","BufferSubscriber.prototype._next","BufferSubscriber.prototype.notifyNext","BufferCountOperator","startBufferEvery","subscriberClass","BufferSkipCountSubscriber","BufferCountSubscriber","BufferCountOperator.prototype.call","BufferCountSubscriber.prototype._next","BufferCountSubscriber.prototype._complete","buffers","BufferSkipCountSubscriber.prototype._next","BufferSkipCountSubscriber.prototype._complete","BufferTimeOperator","maxBufferSize","BufferTimeOperator.prototype.call","BufferTimeSubscriber","Context","contexts","timespanOnly","timeSpanOnlyState","creationState","closeState","BufferTimeSubscriber.prototype._next","filledBufferContext","context_1","onBufferFull","BufferTimeSubscriber.prototype._error","BufferTimeSubscriber.prototype._complete","context_2","BufferTimeSubscriber.prototype._unsubscribe","BufferTimeSubscriber.prototype.onBufferFull","BufferTimeSubscriber.prototype.openContext","BufferTimeSubscriber.prototype.closeContext","spliceIndex","BufferToggleOperator","openings","closingSelector","BufferToggleOperator.prototype.call","BufferToggleSubscriber","BufferToggleSubscriber.prototype._next","BufferToggleSubscriber.prototype._error","BufferToggleSubscriber.prototype._complete","BufferToggleSubscriber.prototype.notifyNext","closeBuffer","openBuffer","BufferToggleSubscriber.prototype.notifyComplete","BufferToggleSubscriber.prototype.openBuffer","trySubscribe","BufferToggleSubscriber.prototype.closeBuffer","BufferToggleSubscriber.prototype.trySubscribe","BufferWhenOperator","BufferWhenOperator.prototype.call","BufferWhenSubscriber","subscribing","BufferWhenSubscriber.prototype._next","BufferWhenSubscriber.prototype._complete","BufferWhenSubscriber.prototype._unsubscribe","BufferWhenSubscriber.prototype.notifyNext","BufferWhenSubscriber.prototype.notifyComplete","BufferWhenSubscriber.prototype.openBuffer","closingSubscription","CatchOperator","CatchOperator.prototype.call","CatchSubscriber","caught","CatchSubscriber.prototype.error","err2","CountOperator","CountOperator.prototype.call","CountSubscriber","CountSubscriber.prototype._next","_tryPredicate","CountSubscriber.prototype._tryPredicate","CountSubscriber.prototype._complete","DebounceOperator","DebounceOperator.prototype.call","DebounceSubscriber","DebounceSubscriber.prototype._next","DebounceSubscriber.prototype._complete","emitValue","DebounceSubscriber.prototype._tryNext","durationSubscription","DebounceSubscriber.prototype.notifyNext","DebounceSubscriber.prototype.notifyComplete","DebounceSubscriber.prototype.emitValue","DebounceTimeOperator","DebounceTimeOperator.prototype.call","DebounceTimeSubscriber","debouncedSubscription","lastValue","DebounceTimeSubscriber.prototype._next","clearDebounce","DebounceTimeSubscriber.prototype._complete","DebounceTimeSubscriber.prototype.debouncedNext","DebounceTimeSubscriber.prototype.clearDebounce","DefaultIfEmptyOperator.prototype.call","DefaultIfEmptySubscriber","isEmpty","DefaultIfEmptySubscriber.prototype._next","DefaultIfEmptySubscriber.prototype._complete","DelayOperator","DelayOperator.prototype.call","DelaySubscriber","queue","DelaySubscriber.dispatch","delay_1","_schedule","DelaySubscriber.prototype._schedule","scheduleNotification","DelaySubscriber.prototype.scheduleNotification","DelayMessage","DelaySubscriber.prototype._next","DelaySubscriber.prototype._error","DelaySubscriber.prototype._complete","DelayWhenOperator","delayDurationSelector","DelayWhenOperator.prototype.call","DelayWhenSubscriber","delayNotifierSubscriptions","DelayWhenSubscriber.prototype.notifyNext","_innerValue","_innerIndex","removeSubscription","tryComplete","DelayWhenSubscriber.prototype.notifyError","DelayWhenSubscriber.prototype.notifyComplete","DelayWhenSubscriber.prototype._next","delayNotifier","tryDelay","DelayWhenSubscriber.prototype._complete","DelayWhenSubscriber.prototype.removeSubscription","subscriptionIdx","DelayWhenSubscriber.prototype.tryDelay","notifierSubscription","DelayWhenSubscriber.prototype.tryComplete","SubscriptionDelayObservable","subscriptionDelay","SubscriptionDelayObservable.prototype._subscribe","SubscriptionDelaySubscriber","sourceSubscribed","SubscriptionDelaySubscriber.prototype._next","subscribeToSource","SubscriptionDelaySubscriber.prototype._error","SubscriptionDelaySubscriber.prototype._complete","SubscriptionDelaySubscriber.prototype.subscribeToSource","DeMaterializeOperator","DeMaterializeOperator.prototype.call","DeMaterializeSubscriber","DeMaterializeSubscriber.prototype._next","DistinctOperator","flushes","DistinctOperator.prototype.call","DistinctSubscriber","Set","DistinctSubscriber.prototype.notifyNext","DistinctSubscriber.prototype.notifyError","DistinctSubscriber.prototype._next","_useKeySelector","_finalizeNext","DistinctSubscriber.prototype._useKeySelector","DistinctSubscriber.prototype._finalizeNext","has","DistinctUntilChangedOperator.prototype.call","DistinctUntilChangedSubscriber","hasKey","DistinctUntilChangedSubscriber.prototype.compare","y","DistinctUntilChangedSubscriber.prototype._next","ThrowIfEmptyOperator.prototype.call","ThrowIfEmptySubscriber","ThrowIfEmptySubscriber.prototype._next","ThrowIfEmptySubscriber.prototype._complete","total","TakeOperator.prototype.call","TakeSubscriber","TakeSubscriber.prototype._next","EveryOperator","EveryOperator.prototype.call","EverySubscriber","EverySubscriber.prototype.notifyComplete","everyValueMatch","EverySubscriber.prototype._next","EverySubscriber.prototype._complete","SwitchFirstOperator","SwitchFirstOperator.prototype.call","SwitchFirstSubscriber","hasSubscription","SwitchFirstSubscriber.prototype._next","SwitchFirstSubscriber.prototype._complete","SwitchFirstSubscriber.prototype.notifyComplete","ExhaustMapOperator.prototype.call","ExhaustMapSubscriber","ExhaustMapSubscriber.prototype._next","tryNext","ExhaustMapSubscriber.prototype.tryNext","ExhaustMapSubscriber.prototype._innerSub","ExhaustMapSubscriber.prototype._complete","ExhaustMapSubscriber.prototype.notifyNext","ExhaustMapSubscriber.prototype.notifyError","ExhaustMapSubscriber.prototype.notifyComplete","ExpandOperator","ExpandOperator.prototype.call","ExpandSubscriber","ExpandSubscriber.dispatch","subscribeToProjection","ExpandSubscriber.prototype._next","ExpandSubscriber.prototype.subscribeToProjection","ExpandSubscriber.prototype._complete","ExpandSubscriber.prototype.notifyNext","ExpandSubscriber.prototype.notifyComplete","FinallyOperator","callback","FinallyOperator.prototype.call","FinallySubscriber","FindValueOperator","yieldIndex","FindValueOperator.prototype.call","FindValueSubscriber","FindValueSubscriber.prototype.notifyComplete","FindValueSubscriber.prototype._next","FindValueSubscriber.prototype._complete","IgnoreElementsOperator","IgnoreElementsOperator.prototype.call","IgnoreElementsSubscriber","IgnoreElementsSubscriber.prototype._next","IsEmptyOperator","IsEmptyOperator.prototype.call","IsEmptySubscriber","IsEmptySubscriber.prototype.notifyComplete","IsEmptySubscriber.prototype._next","IsEmptySubscriber.prototype._complete","TakeLastOperator.prototype.call","TakeLastSubscriber","ring","TakeLastSubscriber.prototype._next","TakeLastSubscriber.prototype._complete","idx","MapToOperator","MapToOperator.prototype.call","MapToSubscriber","MapToSubscriber.prototype._next","MaterializeOperator","MaterializeOperator.prototype.call","MaterializeSubscriber","MaterializeSubscriber.prototype._next","MaterializeSubscriber.prototype._error","MaterializeSubscriber.prototype._complete","ScanOperator.prototype.call","ScanSubscriber","_seed","ScanSubscriber.prototype._next","ScanSubscriber.prototype._tryNext","MergeScanOperator","MergeScanOperator.prototype.call","MergeScanSubscriber","MergeScanSubscriber.prototype._next","MergeScanSubscriber.prototype._innerSub","MergeScanSubscriber.prototype._complete","MergeScanSubscriber.prototype.notifyNext","MergeScanSubscriber.prototype.notifyComplete","MulticastOperator.prototype.call","OnErrorResumeNextOperator","nextSources","OnErrorResumeNextOperator.prototype.call","OnErrorResumeNextSubscriber","OnErrorResumeNextSubscriber.prototype.notifyError","subscribeToNextSource","OnErrorResumeNextSubscriber.prototype.notifyComplete","OnErrorResumeNextSubscriber.prototype._error","OnErrorResumeNextSubscriber.prototype._complete","OnErrorResumeNextSubscriber.prototype.subscribeToNextSource","PairwiseOperator","PairwiseOperator.prototype.call","PairwiseSubscriber","hasPrev","PairwiseSubscriber.prototype._next","pair","RepeatOperator","RepeatOperator.prototype.call","RepeatSubscriber","RepeatSubscriber.prototype.complete","RepeatWhenOperator","notifier","RepeatWhenOperator.prototype.call","RepeatWhenSubscriber","sourceIsBeingSubscribedTo","RepeatWhenSubscriber.prototype.notifyNext","RepeatWhenSubscriber.prototype.notifyComplete","RepeatWhenSubscriber.prototype.complete","retries","subscribeToRetries","retriesSubscription","notifications","RepeatWhenSubscriber.prototype._unsubscribe","RepeatWhenSubscriber.prototype._unsubscribeAndRecycle","RepeatWhenSubscriber.prototype.subscribeToRetries","RetryOperator","RetryOperator.prototype.call","RetrySubscriber","RetrySubscriber.prototype.error","RetryWhenOperator","RetryWhenOperator.prototype.call","RetryWhenSubscriber","RetryWhenSubscriber.prototype.error","RetryWhenSubscriber.prototype._unsubscribe","RetryWhenSubscriber.prototype.notifyNext","SampleOperator","SampleOperator.prototype.call","sampleSubscriber","SampleSubscriber","SampleSubscriber.prototype._next","SampleSubscriber.prototype.notifyNext","SampleSubscriber.prototype.notifyComplete","SampleSubscriber.prototype.emitValue","SampleTimeOperator","SampleTimeOperator.prototype.call","SampleTimeSubscriber","SampleTimeSubscriber.prototype._next","SampleTimeSubscriber.prototype.notifyNext","SequenceEqualOperator","compareTo","comparator","SequenceEqualOperator.prototype.call","SequenceEqualSubscriber","_oneComplete","SequenceEqualCompareToSubscriber","SequenceEqualSubscriber.prototype._next","emit","checkValues","SequenceEqualSubscriber.prototype._complete","SequenceEqualSubscriber.prototype.checkValues","areEqual","SequenceEqualSubscriber.prototype.emit","nextB","SequenceEqualSubscriber.prototype.nextB","completeB","SequenceEqualSubscriber.prototype.completeB","SequenceEqualCompareToSubscriber.prototype._next","SequenceEqualCompareToSubscriber.prototype._error","SequenceEqualCompareToSubscriber.prototype._complete","SingleOperator","SingleOperator.prototype.call","SingleSubscriber","seenValue","applySingleValue","SingleSubscriber.prototype.applySingleValue","singleValue","SingleSubscriber.prototype._next","SingleSubscriber.prototype.tryNext","SingleSubscriber.prototype._complete","SkipOperator","SkipOperator.prototype.call","SkipSubscriber","SkipSubscriber.prototype._next","SkipLastOperator","_skipCount","SkipLastOperator.prototype.call","SkipLastSubscriber","_count","_ring","SkipLastSubscriber.prototype._next","skipCount","currentIndex","oldValue","SkipUntilOperator","SkipUntilOperator.prototype.call","SkipUntilSubscriber","SkipUntilSubscriber.prototype._next","SkipUntilSubscriber.prototype.notifyNext","SkipUntilSubscriber.prototype.notifyComplete","SkipWhileOperator","SkipWhileOperator.prototype.call","SkipWhileSubscriber","skipping","SkipWhileSubscriber.prototype._next","tryCallPredicate","SkipWhileSubscriber.prototype.tryCallPredicate","SubscribeOnObservable","delayTime","SubscribeOnObservable.create","SubscribeOnObservable.dispatch","SubscribeOnObservable.prototype._subscribe","SubscribeOnOperator","SubscribeOnOperator.prototype.call","SwitchMapOperator.prototype.call","SwitchMapSubscriber","SwitchMapSubscriber.prototype._next","SwitchMapSubscriber.prototype._innerSub","SwitchMapSubscriber.prototype._complete","SwitchMapSubscriber.prototype._unsubscribe","SwitchMapSubscriber.prototype.notifyComplete","SwitchMapSubscriber.prototype.notifyNext","TakeUntilOperator","TakeUntilOperator.prototype.call","takeUntilSubscriber","TakeUntilSubscriber","TakeUntilSubscriber.prototype.notifyNext","TakeUntilSubscriber.prototype.notifyComplete","TakeWhileOperator","inclusive","TakeWhileOperator.prototype.call","TakeWhileSubscriber","TakeWhileSubscriber.prototype._next","nextOrComplete","TakeWhileSubscriber.prototype.nextOrComplete","predicateResult","DoOperator","DoOperator.prototype.call","TapSubscriber","_tapNext","_tapError","_tapComplete","TapSubscriber.prototype._next","TapSubscriber.prototype._error","TapSubscriber.prototype._complete","defaultThrottleConfig","leading","trailing","ThrottleOperator","ThrottleOperator.prototype.call","ThrottleSubscriber","_leading","_trailing","_hasValue","ThrottleSubscriber.prototype._next","_sendValue","_throttled","send","throttle","ThrottleSubscriber.prototype.send","ThrottleSubscriber.prototype.throttle","tryDurationSelector","ThrottleSubscriber.prototype.tryDurationSelector","throttlingDone","ThrottleSubscriber.prototype.throttlingDone","ThrottleSubscriber.prototype.notifyNext","ThrottleSubscriber.prototype.notifyComplete","ThrottleTimeOperator","ThrottleTimeOperator.prototype.call","ThrottleTimeSubscriber","_hasTrailingValue","_trailingValue","ThrottleTimeSubscriber.prototype._next","ThrottleTimeSubscriber.prototype._complete","ThrottleTimeSubscriber.prototype.clearThrottle","TimeInterval","interval","TimeoutWithOperator.prototype.call","TimeoutWithSubscriber","scheduleTimeout","dispatchTimeout","TimeoutWithSubscriber.dispatchTimeout","TimeoutWithSubscriber.prototype.scheduleTimeout","TimeoutWithSubscriber.prototype._next","TimeoutWithSubscriber.prototype._unsubscribe","Timestamp","timestamp","WindowOperator","windowBoundaries","WindowOperator.prototype.call","windowSubscriber","WindowSubscriber","sourceSubscription","WindowSubscriber.prototype.notifyNext","WindowSubscriber.prototype.notifyError","WindowSubscriber.prototype.notifyComplete","WindowSubscriber.prototype._next","WindowSubscriber.prototype._error","WindowSubscriber.prototype._complete","WindowSubscriber.prototype._unsubscribe","WindowSubscriber.prototype.openWindow","prevWindow","newWindow","WindowCountOperator","windowSize","startWindowEvery","WindowCountOperator.prototype.call","WindowCountSubscriber","windows","WindowCountSubscriber.prototype._next","c","window_1","WindowCountSubscriber.prototype._error","WindowCountSubscriber.prototype._complete","WindowCountSubscriber.prototype._unsubscribe","WindowTimeOperator","maxWindowSize","WindowTimeOperator.prototype.call","WindowTimeSubscriber","CountedSubject","_numberOfNextedValues","CountedSubject.prototype.next","WindowTimeSubscriber.prototype._next","numberOfNextedValues","WindowTimeSubscriber.prototype._error","WindowTimeSubscriber.prototype._complete","window_2","WindowTimeSubscriber.prototype.openWindow","WindowTimeSubscriber.prototype.closeWindow","WindowToggleOperator","WindowToggleOperator.prototype.call","WindowToggleSubscriber","openSubscription","WindowToggleSubscriber.prototype._next","WindowToggleSubscriber.prototype._error","WindowToggleSubscriber.prototype._complete","WindowToggleSubscriber.prototype._unsubscribe","context_3","WindowToggleSubscriber.prototype.notifyNext","context_4","WindowToggleSubscriber.prototype.notifyError","WindowToggleSubscriber.prototype.notifyComplete","inner","WindowToggleSubscriber.prototype.closeWindow","WindowOperator$1","WindowSubscriber$1","unsubscribeClosingNotification","WindowSubscriber.prototype.unsubscribeClosingNotification","closingNotification","WithLatestFromOperator","WithLatestFromOperator.prototype.call","WithLatestFromSubscriber","WithLatestFromSubscriber.prototype.notifyNext","found","WithLatestFromSubscriber.prototype.notifyComplete","WithLatestFromSubscriber.prototype._next","_tryProject","WithLatestFromSubscriber.prototype._tryProject","_operators","freeze","auditTime","bufferOperatorFunction","bufferCount","bufferCountOperatorFunction","bufferTime","bufferTimeOperatorFunction","bufferToggle","bufferToggleOperatorFunction","bufferWhen","catchError","catchErrorOperatorFunction","combineAll","combineLatest","combineLatest$1","concat$1","concatMapTo","innerObservable","debounce","debounceTime","delayFor","delayWhen","dematerialize","dematerializeOperatorFunction","distinct","distinctUntilKeyChanged","elementAt","hasDefaultValue","v","endWith","every","exhaust","expand","finalize","find","findIndex","groupBy","ignoreElements","ignoreElementsOperatorFunction","mapTo","materialize","materializeOperatorFunction","comparer","merge$1","flatMap","mergeMapTo","mergeScan","min","observeOn","observeOnOperatorFunction","onErrorResumeNext$1","pairwise","partition","partition$1","pluck","properties","publish","publishBehavior","publishLast","publishReplay","selectorOrScheduler","race$1","raceOperatorFunction","repeat","repeatWhen","retry","retryWhen","sample","sampleTime","sequenceEqual","share","shareReplay","configOrBufferSize","single","skip","skipLast","skipUntil","skipWhile","startWith","subscribeOn","subscribeOnOperatorFunction","switchAll","switchMapTo","takeUntil","takeWhile","tap","tapOperatorFunction","throttleTime","timeInterval","current","timeout","toArray","window$1","windowOperatorFunction","windowCount","windowCountOperatorFunction","windowTimeOperatorFunction","windowToggle","windowWhen","windowWhenOperatorFunction","withLatestFrom","zip$1","zipOperatorFunction","zipAll","SubscriptionLog","subscribedFrame","unsubscribedFrame","SubscriptionLoggable","logSubscribedFrame","SubscriptionLoggable.prototype.logSubscribedFrame","logUnsubscribedFrame","SubscriptionLoggable.prototype.logUnsubscribedFrame","subscriptionLogs","oldSubscriptionLog","ColdObservable","messages","scheduleMessages","ColdObservable.prototype.scheduleMessages","messagesLength","HotObservable","HotObservable.prototype._subscribe","setup","HotObservable.prototype.setup","TestScheduler","assertDeepEqual","defaultMaxFrame","hotObservables","coldObservables","flushTests","runMode","createTime","TestScheduler.prototype.createTime","marbles","createColdObservable","TestScheduler.prototype.createColdObservable","parseMarbles","cold","createHotObservable","TestScheduler.prototype.createHotObservable","materializeInnerObservable","TestScheduler.prototype.materializeInnerObservable","outerFrame","expectObservable","TestScheduler.prototype.expectObservable","subscriptionMarbles","actual","flushTest","ready","subscriptionParsed","parseMarblesAsSubscriptions","unsubscriptionFrame","subscriptionFrame","toBe","expected","expectSubscriptions","TestScheduler.prototype.expectSubscriptions","actualSubscriptionLogs","marblesArray","TestScheduler.prototype.flush","test","TestScheduler.parseMarblesAsSubscriptions","groupStart","nextFrame","advanceFrameBy","match","durationInMs","unit","this_1","out_i_1","TestScheduler.parseMarbles","materializeInnerObservables","testMessages","subIndex","replace","_loop_2","this_2","out_i_2","run","TestScheduler.prototype.run","prevFrameTimeFactor","prevMaxFrames","helpers","hot","ret","_testing","__self","self","WorkerGlobalScope","__global","_root","urlOrRequest","request","createXHR","crossDomain","XMLHttpRequest","XDomainRequest","progId","progIds","ActiveXObject","withCredentials","prop","AjaxObservable.prototype._subscribe","AjaxSubscriber","post","put","patch","getJSON","getHeader","contentTypeHeader","FormData","serializeBody","AjaxSubscriber.prototype.next","AjaxResponse","AjaxSubscriber.prototype.send","user","password","setupEvents","open","setHeaders","AjaxSubscriber.prototype.serializeBody","contentType","splitIndex","substring","encodeURIComponent","stringify","AjaxSubscriber.prototype.setHeaders","setRequestHeader","AjaxSubscriber.prototype.getHeader","headerName","toLowerCase","AjaxSubscriber.prototype.setupEvents","xhrTimeout","progressSubscriber","AjaxTimeoutError","xhrReadyStateChange","xhrLoad","readyState","status_1","status","AjaxError","ontimeout","upload","xhrProgress_1","onprogress","xhrError_1","onerror","onreadystatechange","onload","AjaxSubscriber.prototype.unsubscribe","abort","originalEvent","AjaxErrorImpl","AjaxTimeoutErrorImpl","_ajax","ajax","DEFAULT_WEBSOCKET_CONFIG","deserializer","data","serializer","WebSocketSubject","urlConfigOrSource","_config","_output","WebSocketCtor","WebSocket","WebSocketSubject.prototype.lift","sock","_resetState","WebSocketSubject.prototype._resetState","_socket","multiplex","WebSocketSubject.prototype.multiplex","subMsg","unsubMsg","messageFilter","_connectSocket","WebSocketSubject.prototype._connectSocket","protocol","binaryType","socket","close","onopen","socket.onopen","openObserver","closingObserver","code","reason","WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT","socket.onerror","onclose","socket.onclose","closeObserver","wasClean","onmessage","socket.onmessage","WebSocketSubject.prototype._subscribe","WebSocketSubject.prototype.unsubscribe","_webSocket","webSocket","fetch$1","_fetch","fromFetch","initWithSelector","init","controller","AbortController","signal","abortable","unsubscribed","perSubscriberInit","aborted","outerSignal_1","outerSignalHandler_1","fetch","catch","operators","testing","asap","animationFrame","isObservable","forkJoin","first_1","getPrototypeOf","resultSelector_1","generate","initialStateOrOptions","resultSelectorOrObservable","initialState","iif","trueResult","falseResult","never","pairs","range","using","resourceFactory","resource"]} diff --git a/node_modules/rxjs/fetch/index.d.ts b/node_modules/rxjs/fetch/index.d.ts new file mode 100644 index 00000000..e6ff01da --- /dev/null +++ b/node_modules/rxjs/fetch/index.d.ts @@ -0,0 +1 @@ +export { fromFetch } from '../internal/observable/dom/fetch'; diff --git a/node_modules/rxjs/fetch/index.js b/node_modules/rxjs/fetch/index.js new file mode 100644 index 00000000..ca5d62f1 --- /dev/null +++ b/node_modules/rxjs/fetch/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var fetch_1 = require("../internal/observable/dom/fetch"); +exports.fromFetch = fetch_1.fromFetch; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/fetch/index.js.map b/node_modules/rxjs/fetch/index.js.map new file mode 100644 index 00000000..0f14a633 --- /dev/null +++ b/node_modules/rxjs/fetch/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/fetch/index.ts"],"names":[],"mappings":";;AAAA,0DAA6D;AAApD,4BAAA,SAAS,CAAA"} diff --git a/node_modules/rxjs/fetch/package.json b/node_modules/rxjs/fetch/package.json new file mode 100644 index 00000000..dff55196 --- /dev/null +++ b/node_modules/rxjs/fetch/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/fetch", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/fetch/index.js", + "es2015": "../_esm2015/fetch/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/index.d.ts b/node_modules/rxjs/index.d.ts new file mode 100644 index 00000000..49633829 --- /dev/null +++ b/node_modules/rxjs/index.d.ts @@ -0,0 +1,57 @@ +export { Observable } from './internal/Observable'; +export { ConnectableObservable } from './internal/observable/ConnectableObservable'; +export { GroupedObservable } from './internal/operators/groupBy'; +export { Operator } from './internal/Operator'; +export { observable } from './internal/symbol/observable'; +export { Subject } from './internal/Subject'; +export { BehaviorSubject } from './internal/BehaviorSubject'; +export { ReplaySubject } from './internal/ReplaySubject'; +export { AsyncSubject } from './internal/AsyncSubject'; +export { asap, asapScheduler } from './internal/scheduler/asap'; +export { async, asyncScheduler } from './internal/scheduler/async'; +export { queue, queueScheduler } from './internal/scheduler/queue'; +export { animationFrame, animationFrameScheduler } from './internal/scheduler/animationFrame'; +export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler'; +export { Scheduler } from './internal/Scheduler'; +export { Subscription } from './internal/Subscription'; +export { Subscriber } from './internal/Subscriber'; +export { Notification, NotificationKind } from './internal/Notification'; +export { pipe } from './internal/util/pipe'; +export { noop } from './internal/util/noop'; +export { identity } from './internal/util/identity'; +export { isObservable } from './internal/util/isObservable'; +export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from './internal/util/EmptyError'; +export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError'; +export { UnsubscriptionError } from './internal/util/UnsubscriptionError'; +export { TimeoutError } from './internal/util/TimeoutError'; +export { bindCallback } from './internal/observable/bindCallback'; +export { bindNodeCallback } from './internal/observable/bindNodeCallback'; +export { combineLatest } from './internal/observable/combineLatest'; +export { concat } from './internal/observable/concat'; +export { defer } from './internal/observable/defer'; +export { empty } from './internal/observable/empty'; +export { forkJoin } from './internal/observable/forkJoin'; +export { from } from './internal/observable/from'; +export { fromEvent } from './internal/observable/fromEvent'; +export { fromEventPattern } from './internal/observable/fromEventPattern'; +export { generate } from './internal/observable/generate'; +export { iif } from './internal/observable/iif'; +export { interval } from './internal/observable/interval'; +export { merge } from './internal/observable/merge'; +export { never } from './internal/observable/never'; +export { of } from './internal/observable/of'; +export { onErrorResumeNext } from './internal/observable/onErrorResumeNext'; +export { pairs } from './internal/observable/pairs'; +export { partition } from './internal/observable/partition'; +export { race } from './internal/observable/race'; +export { range } from './internal/observable/range'; +export { throwError } from './internal/observable/throwError'; +export { timer } from './internal/observable/timer'; +export { using } from './internal/observable/using'; +export { zip } from './internal/observable/zip'; +export { scheduled } from './internal/scheduled/scheduled'; +export { EMPTY } from './internal/observable/empty'; +export { NEVER } from './internal/observable/never'; +export * from './internal/types'; +export { config } from './internal/config'; diff --git a/node_modules/rxjs/index.js b/node_modules/rxjs/index.js new file mode 100644 index 00000000..b76a9a16 --- /dev/null +++ b/node_modules/rxjs/index.js @@ -0,0 +1,119 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("./internal/Observable"); +exports.Observable = Observable_1.Observable; +var ConnectableObservable_1 = require("./internal/observable/ConnectableObservable"); +exports.ConnectableObservable = ConnectableObservable_1.ConnectableObservable; +var groupBy_1 = require("./internal/operators/groupBy"); +exports.GroupedObservable = groupBy_1.GroupedObservable; +var observable_1 = require("./internal/symbol/observable"); +exports.observable = observable_1.observable; +var Subject_1 = require("./internal/Subject"); +exports.Subject = Subject_1.Subject; +var BehaviorSubject_1 = require("./internal/BehaviorSubject"); +exports.BehaviorSubject = BehaviorSubject_1.BehaviorSubject; +var ReplaySubject_1 = require("./internal/ReplaySubject"); +exports.ReplaySubject = ReplaySubject_1.ReplaySubject; +var AsyncSubject_1 = require("./internal/AsyncSubject"); +exports.AsyncSubject = AsyncSubject_1.AsyncSubject; +var asap_1 = require("./internal/scheduler/asap"); +exports.asap = asap_1.asap; +exports.asapScheduler = asap_1.asapScheduler; +var async_1 = require("./internal/scheduler/async"); +exports.async = async_1.async; +exports.asyncScheduler = async_1.asyncScheduler; +var queue_1 = require("./internal/scheduler/queue"); +exports.queue = queue_1.queue; +exports.queueScheduler = queue_1.queueScheduler; +var animationFrame_1 = require("./internal/scheduler/animationFrame"); +exports.animationFrame = animationFrame_1.animationFrame; +exports.animationFrameScheduler = animationFrame_1.animationFrameScheduler; +var VirtualTimeScheduler_1 = require("./internal/scheduler/VirtualTimeScheduler"); +exports.VirtualTimeScheduler = VirtualTimeScheduler_1.VirtualTimeScheduler; +exports.VirtualAction = VirtualTimeScheduler_1.VirtualAction; +var Scheduler_1 = require("./internal/Scheduler"); +exports.Scheduler = Scheduler_1.Scheduler; +var Subscription_1 = require("./internal/Subscription"); +exports.Subscription = Subscription_1.Subscription; +var Subscriber_1 = require("./internal/Subscriber"); +exports.Subscriber = Subscriber_1.Subscriber; +var Notification_1 = require("./internal/Notification"); +exports.Notification = Notification_1.Notification; +exports.NotificationKind = Notification_1.NotificationKind; +var pipe_1 = require("./internal/util/pipe"); +exports.pipe = pipe_1.pipe; +var noop_1 = require("./internal/util/noop"); +exports.noop = noop_1.noop; +var identity_1 = require("./internal/util/identity"); +exports.identity = identity_1.identity; +var isObservable_1 = require("./internal/util/isObservable"); +exports.isObservable = isObservable_1.isObservable; +var ArgumentOutOfRangeError_1 = require("./internal/util/ArgumentOutOfRangeError"); +exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; +var EmptyError_1 = require("./internal/util/EmptyError"); +exports.EmptyError = EmptyError_1.EmptyError; +var ObjectUnsubscribedError_1 = require("./internal/util/ObjectUnsubscribedError"); +exports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError; +var UnsubscriptionError_1 = require("./internal/util/UnsubscriptionError"); +exports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError; +var TimeoutError_1 = require("./internal/util/TimeoutError"); +exports.TimeoutError = TimeoutError_1.TimeoutError; +var bindCallback_1 = require("./internal/observable/bindCallback"); +exports.bindCallback = bindCallback_1.bindCallback; +var bindNodeCallback_1 = require("./internal/observable/bindNodeCallback"); +exports.bindNodeCallback = bindNodeCallback_1.bindNodeCallback; +var combineLatest_1 = require("./internal/observable/combineLatest"); +exports.combineLatest = combineLatest_1.combineLatest; +var concat_1 = require("./internal/observable/concat"); +exports.concat = concat_1.concat; +var defer_1 = require("./internal/observable/defer"); +exports.defer = defer_1.defer; +var empty_1 = require("./internal/observable/empty"); +exports.empty = empty_1.empty; +var forkJoin_1 = require("./internal/observable/forkJoin"); +exports.forkJoin = forkJoin_1.forkJoin; +var from_1 = require("./internal/observable/from"); +exports.from = from_1.from; +var fromEvent_1 = require("./internal/observable/fromEvent"); +exports.fromEvent = fromEvent_1.fromEvent; +var fromEventPattern_1 = require("./internal/observable/fromEventPattern"); +exports.fromEventPattern = fromEventPattern_1.fromEventPattern; +var generate_1 = require("./internal/observable/generate"); +exports.generate = generate_1.generate; +var iif_1 = require("./internal/observable/iif"); +exports.iif = iif_1.iif; +var interval_1 = require("./internal/observable/interval"); +exports.interval = interval_1.interval; +var merge_1 = require("./internal/observable/merge"); +exports.merge = merge_1.merge; +var never_1 = require("./internal/observable/never"); +exports.never = never_1.never; +var of_1 = require("./internal/observable/of"); +exports.of = of_1.of; +var onErrorResumeNext_1 = require("./internal/observable/onErrorResumeNext"); +exports.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext; +var pairs_1 = require("./internal/observable/pairs"); +exports.pairs = pairs_1.pairs; +var partition_1 = require("./internal/observable/partition"); +exports.partition = partition_1.partition; +var race_1 = require("./internal/observable/race"); +exports.race = race_1.race; +var range_1 = require("./internal/observable/range"); +exports.range = range_1.range; +var throwError_1 = require("./internal/observable/throwError"); +exports.throwError = throwError_1.throwError; +var timer_1 = require("./internal/observable/timer"); +exports.timer = timer_1.timer; +var using_1 = require("./internal/observable/using"); +exports.using = using_1.using; +var zip_1 = require("./internal/observable/zip"); +exports.zip = zip_1.zip; +var scheduled_1 = require("./internal/scheduled/scheduled"); +exports.scheduled = scheduled_1.scheduled; +var empty_2 = require("./internal/observable/empty"); +exports.EMPTY = empty_2.EMPTY; +var never_2 = require("./internal/observable/never"); +exports.NEVER = never_2.NEVER; +var config_1 = require("./internal/config"); +exports.config = config_1.config; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/index.js.map b/node_modules/rxjs/index.js.map new file mode 100644 index 00000000..82ccf200 --- /dev/null +++ b/node_modules/rxjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["src/index.ts"],"names":[],"mappings":";;AACA,oDAAmD;AAA1C,kCAAA,UAAU,CAAA;AACnB,qFAAoF;AAA3E,wDAAA,qBAAqB,CAAA;AAC9B,wDAAiE;AAAxD,sCAAA,iBAAiB,CAAA;AAE1B,2DAA0D;AAAjD,kCAAA,UAAU,CAAA;AAGnB,8CAA6C;AAApC,4BAAA,OAAO,CAAA;AAChB,8DAA6D;AAApD,4CAAA,eAAe,CAAA;AACxB,0DAAyD;AAAhD,wCAAA,aAAa,CAAA;AACtB,wDAAuD;AAA9C,sCAAA,YAAY,CAAA;AAGrB,kDAAgE;AAAvD,sBAAA,IAAI,CAAA;AAAE,+BAAA,aAAa,CAAA;AAC5B,oDAAmE;AAA1D,wBAAA,KAAK,CAAA;AAAE,iCAAA,cAAc,CAAA;AAC9B,oDAAmE;AAA1D,wBAAA,KAAK,CAAA;AAAE,iCAAA,cAAc,CAAA;AAC9B,sEAA8F;AAArF,0CAAA,cAAc,CAAA;AAAE,mDAAA,uBAAuB,CAAA;AAChD,kFAAgG;AAAvF,sDAAA,oBAAoB,CAAA;AAAE,+CAAA,aAAa,CAAA;AAC5C,kDAAiD;AAAxC,gCAAA,SAAS,CAAA;AAGlB,wDAAuD;AAA9C,sCAAA,YAAY,CAAA;AACrB,oDAAmD;AAA1C,kCAAA,UAAU,CAAA;AAGnB,wDAAyE;AAAhE,sCAAA,YAAY,CAAA;AAAE,0CAAA,gBAAgB,CAAA;AAGvC,6CAA4C;AAAnC,sBAAA,IAAI,CAAA;AACb,6CAA4C;AAAnC,sBAAA,IAAI,CAAA;AACb,qDAAoD;AAA3C,8BAAA,QAAQ,CAAA;AACjB,6DAA4D;AAAnD,sCAAA,YAAY,CAAA;AAGrB,mFAAkF;AAAzE,4DAAA,uBAAuB,CAAA;AAChC,yDAAwD;AAA/C,kCAAA,UAAU,CAAA;AACnB,mFAAkF;AAAzE,4DAAA,uBAAuB,CAAA;AAChC,2EAA0E;AAAjE,oDAAA,mBAAmB,CAAA;AAC5B,6DAA4D;AAAnD,sCAAA,YAAY,CAAA;AAGrB,mEAAkE;AAAzD,sCAAA,YAAY,CAAA;AACrB,2EAA0E;AAAjE,8CAAA,gBAAgB,CAAA;AACzB,qEAAoE;AAA3D,wCAAA,aAAa,CAAA;AACtB,uDAAsD;AAA7C,0BAAA,MAAM,CAAA;AACf,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,2DAA0D;AAAjD,8BAAA,QAAQ,CAAA;AACjB,mDAAkD;AAAzC,sBAAA,IAAI,CAAA;AACb,6DAA4D;AAAnD,gCAAA,SAAS,CAAA;AAClB,2EAA0E;AAAjE,8CAAA,gBAAgB,CAAA;AACzB,2DAA0D;AAAjD,8BAAA,QAAQ,CAAA;AACjB,iDAAgD;AAAvC,oBAAA,GAAG,CAAA;AACZ,2DAA0D;AAAjD,8BAAA,QAAQ,CAAA;AACjB,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,+CAA8C;AAArC,kBAAA,EAAE,CAAA;AACX,6EAA4E;AAAnE,gDAAA,iBAAiB,CAAA;AAC1B,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,6DAA4D;AAAnD,gCAAA,SAAS,CAAA;AAClB,mDAAkD;AAAzC,sBAAA,IAAI,CAAA;AACb,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,+DAA8D;AAArD,kCAAA,UAAU,CAAA;AACnB,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,iDAAgD;AAAvC,oBAAA,GAAG,CAAA;AACZ,4DAA2D;AAAlD,gCAAA,SAAS,CAAA;AAGlB,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AACd,qDAAoD;AAA3C,wBAAA,KAAK,CAAA;AAMd,4CAA2C;AAAlC,0BAAA,MAAM,CAAA"} diff --git a/node_modules/rxjs/interfaces.d.ts b/node_modules/rxjs/interfaces.d.ts new file mode 100644 index 00000000..5d5821d2 --- /dev/null +++ b/node_modules/rxjs/interfaces.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/interfaces'; diff --git a/node_modules/rxjs/interfaces.js b/node_modules/rxjs/interfaces.js new file mode 100644 index 00000000..db919115 --- /dev/null +++ b/node_modules/rxjs/interfaces.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/node_modules/rxjs/interfaces.js.map b/node_modules/rxjs/interfaces.js.map new file mode 100644 index 00000000..21fafaaf --- /dev/null +++ b/node_modules/rxjs/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sources":["src/interfaces.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/internal-compatibility/index.d.ts b/node_modules/rxjs/internal-compatibility/index.d.ts new file mode 100644 index 00000000..3f2c80e3 --- /dev/null +++ b/node_modules/rxjs/internal-compatibility/index.d.ts @@ -0,0 +1,58 @@ +export { config } from '../internal/config'; +export { InnerSubscriber } from '../internal/InnerSubscriber'; +export { OuterSubscriber } from '../internal/OuterSubscriber'; +export { Scheduler } from '../internal/Scheduler'; +export { AnonymousSubject } from '../internal/Subject'; +export { SubjectSubscription } from '../internal/SubjectSubscription'; +export { Subscriber } from '../internal/Subscriber'; +export { fromPromise } from '../internal/observable/fromPromise'; +export { fromIterable } from '../internal/observable/fromIterable'; +export { ajax } from '../internal/observable/dom/ajax'; +export { webSocket } from '../internal/observable/dom/webSocket'; +export { AjaxRequest, AjaxCreationMethod, ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; +export { WebSocketSubjectConfig, WebSocketSubject } from '../internal/observable/dom/WebSocketSubject'; +export { CombineLatestOperator } from '../internal/observable/combineLatest'; +export { EventTargetLike } from '../internal/observable/fromEvent'; +export { ConditionFunc, IterateFunc, ResultFunc, GenerateBaseOptions, GenerateOptions } from '../internal/observable/generate'; +export { dispatch } from '../internal/observable/range'; +export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable'; +export { Timestamp } from '../internal/operators/timestamp'; +export { TimeInterval } from '../internal/operators/timeInterval'; +export { GroupedObservable } from '../internal/operators/groupBy'; +export { ShareReplayConfig } from '../internal/operators/shareReplay'; +export { ThrottleConfig, defaultThrottleConfig } from '../internal/operators/throttle'; +export { rxSubscriber } from '../internal/symbol/rxSubscriber'; +export { iterator } from '../internal/symbol/iterator'; +export { observable } from '../internal/symbol/observable'; +export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from '../internal/util/EmptyError'; +export { Immediate } from '../internal/util/Immediate'; +export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError'; +export { TimeoutError } from '../internal/util/TimeoutError'; +export { UnsubscriptionError } from '../internal/util/UnsubscriptionError'; +export { applyMixins } from '../internal/util/applyMixins'; +export { errorObject } from '../internal/util/errorObject'; +export { hostReportError } from '../internal/util/hostReportError'; +export { identity } from '../internal/util/identity'; +export { isArray } from '../internal/util/isArray'; +export { isArrayLike } from '../internal/util/isArrayLike'; +export { isDate } from '../internal/util/isDate'; +export { isFunction } from '../internal/util/isFunction'; +export { isIterable } from '../internal/util/isIterable'; +export { isNumeric } from '../internal/util/isNumeric'; +export { isObject } from '../internal/util/isObject'; +export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable'; +export { isPromise } from '../internal/util/isPromise'; +export { isScheduler } from '../internal/util/isScheduler'; +export { noop } from '../internal/util/noop'; +export { not } from '../internal/util/not'; +export { pipe } from '../internal/util/pipe'; +export { root } from '../internal/util/root'; +export { subscribeTo } from '../internal/util/subscribeTo'; +export { subscribeToArray } from '../internal/util/subscribeToArray'; +export { subscribeToIterable } from '../internal/util/subscribeToIterable'; +export { subscribeToObservable } from '../internal/util/subscribeToObservable'; +export { subscribeToPromise } from '../internal/util/subscribeToPromise'; +export { subscribeToResult } from '../internal/util/subscribeToResult'; +export { toSubscriber } from '../internal/util/toSubscriber'; +export { tryCatch } from '../internal/util/tryCatch'; diff --git a/node_modules/rxjs/internal-compatibility/index.js b/node_modules/rxjs/internal-compatibility/index.js new file mode 100644 index 00000000..d0e265e7 --- /dev/null +++ b/node_modules/rxjs/internal-compatibility/index.js @@ -0,0 +1,123 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var config_1 = require("../internal/config"); +exports.config = config_1.config; +var InnerSubscriber_1 = require("../internal/InnerSubscriber"); +exports.InnerSubscriber = InnerSubscriber_1.InnerSubscriber; +var OuterSubscriber_1 = require("../internal/OuterSubscriber"); +exports.OuterSubscriber = OuterSubscriber_1.OuterSubscriber; +var Scheduler_1 = require("../internal/Scheduler"); +exports.Scheduler = Scheduler_1.Scheduler; +var Subject_1 = require("../internal/Subject"); +exports.AnonymousSubject = Subject_1.AnonymousSubject; +var SubjectSubscription_1 = require("../internal/SubjectSubscription"); +exports.SubjectSubscription = SubjectSubscription_1.SubjectSubscription; +var Subscriber_1 = require("../internal/Subscriber"); +exports.Subscriber = Subscriber_1.Subscriber; +var fromPromise_1 = require("../internal/observable/fromPromise"); +exports.fromPromise = fromPromise_1.fromPromise; +var fromIterable_1 = require("../internal/observable/fromIterable"); +exports.fromIterable = fromIterable_1.fromIterable; +var ajax_1 = require("../internal/observable/dom/ajax"); +exports.ajax = ajax_1.ajax; +var webSocket_1 = require("../internal/observable/dom/webSocket"); +exports.webSocket = webSocket_1.webSocket; +var AjaxObservable_1 = require("../internal/observable/dom/AjaxObservable"); +exports.ajaxGet = AjaxObservable_1.ajaxGet; +exports.ajaxPost = AjaxObservable_1.ajaxPost; +exports.ajaxDelete = AjaxObservable_1.ajaxDelete; +exports.ajaxPut = AjaxObservable_1.ajaxPut; +exports.ajaxPatch = AjaxObservable_1.ajaxPatch; +exports.ajaxGetJSON = AjaxObservable_1.ajaxGetJSON; +exports.AjaxObservable = AjaxObservable_1.AjaxObservable; +exports.AjaxSubscriber = AjaxObservable_1.AjaxSubscriber; +exports.AjaxResponse = AjaxObservable_1.AjaxResponse; +exports.AjaxError = AjaxObservable_1.AjaxError; +exports.AjaxTimeoutError = AjaxObservable_1.AjaxTimeoutError; +var WebSocketSubject_1 = require("../internal/observable/dom/WebSocketSubject"); +exports.WebSocketSubject = WebSocketSubject_1.WebSocketSubject; +var combineLatest_1 = require("../internal/observable/combineLatest"); +exports.CombineLatestOperator = combineLatest_1.CombineLatestOperator; +var range_1 = require("../internal/observable/range"); +exports.dispatch = range_1.dispatch; +var SubscribeOnObservable_1 = require("../internal/observable/SubscribeOnObservable"); +exports.SubscribeOnObservable = SubscribeOnObservable_1.SubscribeOnObservable; +var timestamp_1 = require("../internal/operators/timestamp"); +exports.Timestamp = timestamp_1.Timestamp; +var timeInterval_1 = require("../internal/operators/timeInterval"); +exports.TimeInterval = timeInterval_1.TimeInterval; +var groupBy_1 = require("../internal/operators/groupBy"); +exports.GroupedObservable = groupBy_1.GroupedObservable; +var throttle_1 = require("../internal/operators/throttle"); +exports.defaultThrottleConfig = throttle_1.defaultThrottleConfig; +var rxSubscriber_1 = require("../internal/symbol/rxSubscriber"); +exports.rxSubscriber = rxSubscriber_1.rxSubscriber; +var iterator_1 = require("../internal/symbol/iterator"); +exports.iterator = iterator_1.iterator; +var observable_1 = require("../internal/symbol/observable"); +exports.observable = observable_1.observable; +var ArgumentOutOfRangeError_1 = require("../internal/util/ArgumentOutOfRangeError"); +exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; +var EmptyError_1 = require("../internal/util/EmptyError"); +exports.EmptyError = EmptyError_1.EmptyError; +var Immediate_1 = require("../internal/util/Immediate"); +exports.Immediate = Immediate_1.Immediate; +var ObjectUnsubscribedError_1 = require("../internal/util/ObjectUnsubscribedError"); +exports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError; +var TimeoutError_1 = require("../internal/util/TimeoutError"); +exports.TimeoutError = TimeoutError_1.TimeoutError; +var UnsubscriptionError_1 = require("../internal/util/UnsubscriptionError"); +exports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError; +var applyMixins_1 = require("../internal/util/applyMixins"); +exports.applyMixins = applyMixins_1.applyMixins; +var errorObject_1 = require("../internal/util/errorObject"); +exports.errorObject = errorObject_1.errorObject; +var hostReportError_1 = require("../internal/util/hostReportError"); +exports.hostReportError = hostReportError_1.hostReportError; +var identity_1 = require("../internal/util/identity"); +exports.identity = identity_1.identity; +var isArray_1 = require("../internal/util/isArray"); +exports.isArray = isArray_1.isArray; +var isArrayLike_1 = require("../internal/util/isArrayLike"); +exports.isArrayLike = isArrayLike_1.isArrayLike; +var isDate_1 = require("../internal/util/isDate"); +exports.isDate = isDate_1.isDate; +var isFunction_1 = require("../internal/util/isFunction"); +exports.isFunction = isFunction_1.isFunction; +var isIterable_1 = require("../internal/util/isIterable"); +exports.isIterable = isIterable_1.isIterable; +var isNumeric_1 = require("../internal/util/isNumeric"); +exports.isNumeric = isNumeric_1.isNumeric; +var isObject_1 = require("../internal/util/isObject"); +exports.isObject = isObject_1.isObject; +var isInteropObservable_1 = require("../internal/util/isInteropObservable"); +exports.isObservable = isInteropObservable_1.isInteropObservable; +var isPromise_1 = require("../internal/util/isPromise"); +exports.isPromise = isPromise_1.isPromise; +var isScheduler_1 = require("../internal/util/isScheduler"); +exports.isScheduler = isScheduler_1.isScheduler; +var noop_1 = require("../internal/util/noop"); +exports.noop = noop_1.noop; +var not_1 = require("../internal/util/not"); +exports.not = not_1.not; +var pipe_1 = require("../internal/util/pipe"); +exports.pipe = pipe_1.pipe; +var root_1 = require("../internal/util/root"); +exports.root = root_1.root; +var subscribeTo_1 = require("../internal/util/subscribeTo"); +exports.subscribeTo = subscribeTo_1.subscribeTo; +var subscribeToArray_1 = require("../internal/util/subscribeToArray"); +exports.subscribeToArray = subscribeToArray_1.subscribeToArray; +var subscribeToIterable_1 = require("../internal/util/subscribeToIterable"); +exports.subscribeToIterable = subscribeToIterable_1.subscribeToIterable; +var subscribeToObservable_1 = require("../internal/util/subscribeToObservable"); +exports.subscribeToObservable = subscribeToObservable_1.subscribeToObservable; +var subscribeToPromise_1 = require("../internal/util/subscribeToPromise"); +exports.subscribeToPromise = subscribeToPromise_1.subscribeToPromise; +var subscribeToResult_1 = require("../internal/util/subscribeToResult"); +exports.subscribeToResult = subscribeToResult_1.subscribeToResult; +var toSubscriber_1 = require("../internal/util/toSubscriber"); +exports.toSubscriber = toSubscriber_1.toSubscriber; +var tryCatch_1 = require("../internal/util/tryCatch"); +exports.tryCatch = tryCatch_1.tryCatch; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal-compatibility/index.js.map b/node_modules/rxjs/internal-compatibility/index.js.map new file mode 100644 index 00000000..21193943 --- /dev/null +++ b/node_modules/rxjs/internal-compatibility/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/internal-compatibility/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal-compatibility/package.json b/node_modules/rxjs/internal-compatibility/package.json new file mode 100644 index 00000000..5ff05a69 --- /dev/null +++ b/node_modules/rxjs/internal-compatibility/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/internal-compatibility", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/internal-compatibility/index.js", + "es2015": "../_esm2015/internal-compatibility/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/internal/AsyncSubject.d.ts b/node_modules/rxjs/internal/AsyncSubject.d.ts new file mode 100644 index 00000000..fde2be13 --- /dev/null +++ b/node_modules/rxjs/internal/AsyncSubject.d.ts @@ -0,0 +1,19 @@ +import { Subject } from './Subject'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +/** + * A variant of Subject that only emits a value when it completes. It will emit + * its latest value to all its observers on completion. + * + * @class AsyncSubject + */ +export declare class AsyncSubject extends Subject { + private value; + private hasNext; + private hasCompleted; + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; + next(value: T): void; + error(error: any): void; + complete(): void; +} diff --git a/node_modules/rxjs/internal/AsyncSubject.js b/node_modules/rxjs/internal/AsyncSubject.js new file mode 100644 index 00000000..55d028ba --- /dev/null +++ b/node_modules/rxjs/internal/AsyncSubject.js @@ -0,0 +1,60 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("./Subject"); +var Subscription_1 = require("./Subscription"); +var AsyncSubject = (function (_super) { + __extends(AsyncSubject, _super); + function AsyncSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.value = null; + _this.hasNext = false; + _this.hasCompleted = false; + return _this; + } + AsyncSubject.prototype._subscribe = function (subscriber) { + if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription_1.Subscription.EMPTY; + } + else if (this.hasCompleted && this.hasNext) { + subscriber.next(this.value); + subscriber.complete(); + return Subscription_1.Subscription.EMPTY; + } + return _super.prototype._subscribe.call(this, subscriber); + }; + AsyncSubject.prototype.next = function (value) { + if (!this.hasCompleted) { + this.value = value; + this.hasNext = true; + } + }; + AsyncSubject.prototype.error = function (error) { + if (!this.hasCompleted) { + _super.prototype.error.call(this, error); + } + }; + AsyncSubject.prototype.complete = function () { + this.hasCompleted = true; + if (this.hasNext) { + _super.prototype.next.call(this, this.value); + } + _super.prototype.complete.call(this); + }; + return AsyncSubject; +}(Subject_1.Subject)); +exports.AsyncSubject = AsyncSubject; +//# sourceMappingURL=AsyncSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/AsyncSubject.js.map b/node_modules/rxjs/internal/AsyncSubject.js.map new file mode 100644 index 00000000..56ffa67e --- /dev/null +++ b/node_modules/rxjs/internal/AsyncSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncSubject.js","sources":["../src/internal/AsyncSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,+CAA8C;AAQ9C;IAAqC,gCAAU;IAA/C;QAAA,qEAsCC;QArCS,WAAK,GAAM,IAAI,CAAC;QAChB,aAAO,GAAY,KAAK,CAAC;QACzB,kBAAY,GAAY,KAAK,CAAC;;IAmCxC,CAAC;IAhCC,iCAAU,GAAV,UAAW,UAA2B;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;QACD,OAAO,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAQ;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,4BAAK,GAAL,UAAM,KAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,+BAAQ,GAAR;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,iBAAM,IAAI,YAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxB;QACD,iBAAM,QAAQ,WAAE,CAAC;IACnB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtCD,CAAqC,iBAAO,GAsC3C;AAtCY,oCAAY"} diff --git a/node_modules/rxjs/internal/BehaviorSubject.d.ts b/node_modules/rxjs/internal/BehaviorSubject.d.ts new file mode 100644 index 00000000..c84b2122 --- /dev/null +++ b/node_modules/rxjs/internal/BehaviorSubject.d.ts @@ -0,0 +1,18 @@ +import { Subject } from './Subject'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +/** + * A variant of Subject that requires an initial value and emits its current + * value whenever it is subscribed to. + * + * @class BehaviorSubject + */ +export declare class BehaviorSubject extends Subject { + private _value; + constructor(_value: T); + readonly value: T; + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; + getValue(): T; + next(value: T): void; +} diff --git a/node_modules/rxjs/internal/BehaviorSubject.js b/node_modules/rxjs/internal/BehaviorSubject.js new file mode 100644 index 00000000..99435d64 --- /dev/null +++ b/node_modules/rxjs/internal/BehaviorSubject.js @@ -0,0 +1,56 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("./Subject"); +var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError"); +var BehaviorSubject = (function (_super) { + __extends(BehaviorSubject, _super); + function BehaviorSubject(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject.prototype, "value", { + get: function () { + return this.getValue(); + }, + enumerable: true, + configurable: true + }); + BehaviorSubject.prototype._subscribe = function (subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + if (subscription && !subscription.closed) { + subscriber.next(this._value); + } + return subscription; + }; + BehaviorSubject.prototype.getValue = function () { + if (this.hasError) { + throw this.thrownError; + } + else if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + else { + return this._value; + } + }; + BehaviorSubject.prototype.next = function (value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject; +}(Subject_1.Subject)); +exports.BehaviorSubject = BehaviorSubject; +//# sourceMappingURL=BehaviorSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/BehaviorSubject.js.map b/node_modules/rxjs/internal/BehaviorSubject.js.map new file mode 100644 index 00000000..54d4006b --- /dev/null +++ b/node_modules/rxjs/internal/BehaviorSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BehaviorSubject.js","sources":["../src/internal/BehaviorSubject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAoC;AAIpC,0EAAyE;AAQzE;IAAwC,mCAAU;IAEhD,yBAAoB,MAAS;QAA7B,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAG;;IAE7B,CAAC;IAED,sBAAI,kCAAK;aAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;;;OAAA;IAGD,oCAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,YAAY,GAAG,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC;QAClD,IAAI,YAAY,IAAI,CAAoB,YAAa,CAAC,MAAM,EAAE;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,kCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,WAAW,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;IACH,CAAC;IAED,8BAAI,GAAJ,UAAK,KAAQ;QACX,iBAAM,IAAI,YAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAClC,CAAC;IACH,sBAAC;AAAD,CAAC,AAhCD,CAAwC,iBAAO,GAgC9C;AAhCY,0CAAe"} diff --git a/node_modules/rxjs/internal/InnerSubscriber.d.ts b/node_modules/rxjs/internal/InnerSubscriber.d.ts new file mode 100644 index 00000000..da9c606b --- /dev/null +++ b/node_modules/rxjs/internal/InnerSubscriber.d.ts @@ -0,0 +1,17 @@ +import { Subscriber } from './Subscriber'; +import { OuterSubscriber } from './OuterSubscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class InnerSubscriber extends Subscriber { + private parent; + outerValue: T; + outerIndex: number; + private index; + constructor(parent: OuterSubscriber, outerValue: T, outerIndex: number); + protected _next(value: R): void; + protected _error(error: any): void; + protected _complete(): void; +} diff --git a/node_modules/rxjs/internal/InnerSubscriber.js b/node_modules/rxjs/internal/InnerSubscriber.js new file mode 100644 index 00000000..d9b6dc46 --- /dev/null +++ b/node_modules/rxjs/internal/InnerSubscriber.js @@ -0,0 +1,41 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("./Subscriber"); +var InnerSubscriber = (function (_super) { + __extends(InnerSubscriber, _super); + function InnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + _this.index = 0; + return _this; + } + InnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); + }; + InnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error, this); + this.unsubscribe(); + }; + InnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); + }; + return InnerSubscriber; +}(Subscriber_1.Subscriber)); +exports.InnerSubscriber = InnerSubscriber; +//# sourceMappingURL=InnerSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/InnerSubscriber.js.map b/node_modules/rxjs/internal/InnerSubscriber.js.map new file mode 100644 index 00000000..4b502440 --- /dev/null +++ b/node_modules/rxjs/internal/InnerSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"InnerSubscriber.js","sources":["../src/internal/InnerSubscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA0C;AAQ1C;IAA2C,mCAAa;IAGtD,yBAAoB,MAA6B,EAAS,UAAa,EAAS,UAAkB;QAAlG,YACE,iBAAO,SACR;QAFmB,YAAM,GAAN,MAAM,CAAuB;QAAS,gBAAU,GAAV,UAAU,CAAG;QAAS,gBAAU,GAAV,UAAU,CAAQ;QAF1F,WAAK,GAAG,CAAC,CAAC;;IAIlB,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAES,gCAAM,GAAhB,UAAiB,KAAU;QACzB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,sBAAC;AAAD,CAAC,AApBD,CAA2C,uBAAU,GAoBpD;AApBY,0CAAe"} diff --git a/node_modules/rxjs/internal/Notification.d.ts b/node_modules/rxjs/internal/Notification.d.ts new file mode 100644 index 00000000..ad945541 --- /dev/null +++ b/node_modules/rxjs/internal/Notification.d.ts @@ -0,0 +1,88 @@ +import { PartialObserver } from './types'; +import { Observable } from './Observable'; +/** + * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead. + */ +export declare enum NotificationKind { + NEXT = "N", + ERROR = "E", + COMPLETE = "C" +} +/** + * Represents a push-based event or value that an {@link Observable} can emit. + * This class is particularly useful for operators that manage notifications, + * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and + * others. Besides wrapping the actual delivered value, it also annotates it + * with metadata of, for instance, what type of push message it is (`next`, + * `error`, or `complete`). + * + * @see {@link materialize} + * @see {@link dematerialize} + * @see {@link observeOn} + * + * @class Notification + */ +export declare class Notification { + kind: 'N' | 'E' | 'C'; + value?: T; + error?: any; + hasValue: boolean; + constructor(kind: 'N' | 'E' | 'C', value?: T, error?: any); + /** + * Delivers to the given `observer` the value wrapped by this Notification. + * @param {Observer} observer + * @return + */ + observe(observer: PartialObserver): any; + /** + * Given some {@link Observer} callbacks, deliver the value represented by the + * current Notification to the correctly corresponding callback. + * @param {function(value: T): void} next An Observer `next` callback. + * @param {function(err: any): void} [error] An Observer `error` callback. + * @param {function(): void} [complete] An Observer `complete` callback. + * @return {any} + */ + do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any; + /** + * Takes an Observer or its individual callback functions, and calls `observe` + * or `do` methods accordingly. + * @param {Observer|function(value: T): void} nextOrObserver An Observer or + * the `next` callback. + * @param {function(err: any): void} [error] An Observer `error` callback. + * @param {function(): void} [complete] An Observer `complete` callback. + * @return {any} + */ + accept(nextOrObserver: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void): any; + /** + * Returns a simple Observable that just delivers the notification represented + * by this Notification instance. + * @return {any} + */ + toObservable(): Observable; + private static completeNotification; + private static undefinedValueNotification; + /** + * A shortcut to create a Notification instance of the type `next` from a + * given value. + * @param {T} value The `next` value. + * @return {Notification} The "next" Notification representing the + * argument. + * @nocollapse + */ + static createNext(value: T): Notification; + /** + * A shortcut to create a Notification instance of the type `error` from a + * given error. + * @param {any} [err] The `error` error. + * @return {Notification} The "error" Notification representing the + * argument. + * @nocollapse + */ + static createError(err?: any): Notification; + /** + * A shortcut to create a Notification instance of the type `complete`. + * @return {Notification} The valueless "complete" Notification. + * @nocollapse + */ + static createComplete(): Notification; +} diff --git a/node_modules/rxjs/internal/Notification.js b/node_modules/rxjs/internal/Notification.js new file mode 100644 index 00000000..dc3eeb68 --- /dev/null +++ b/node_modules/rxjs/internal/Notification.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var empty_1 = require("./observable/empty"); +var of_1 = require("./observable/of"); +var throwError_1 = require("./observable/throwError"); +var NotificationKind; +(function (NotificationKind) { + NotificationKind["NEXT"] = "N"; + NotificationKind["ERROR"] = "E"; + NotificationKind["COMPLETE"] = "C"; +})(NotificationKind = exports.NotificationKind || (exports.NotificationKind = {})); +var Notification = (function () { + function Notification(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + Notification.prototype.observe = function (observer) { + switch (this.kind) { + case 'N': + return observer.next && observer.next(this.value); + case 'E': + return observer.error && observer.error(this.error); + case 'C': + return observer.complete && observer.complete(); + } + }; + Notification.prototype.do = function (next, error, complete) { + var kind = this.kind; + switch (kind) { + case 'N': + return next && next(this.value); + case 'E': + return error && error(this.error); + case 'C': + return complete && complete(); + } + }; + Notification.prototype.accept = function (nextOrObserver, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + }; + Notification.prototype.toObservable = function () { + var kind = this.kind; + switch (kind) { + case 'N': + return of_1.of(this.value); + case 'E': + return throwError_1.throwError(this.error); + case 'C': + return empty_1.empty(); + } + throw new Error('unexpected notification kind value'); + }; + Notification.createNext = function (value) { + if (typeof value !== 'undefined') { + return new Notification('N', value); + } + return Notification.undefinedValueNotification; + }; + Notification.createError = function (err) { + return new Notification('E', undefined, err); + }; + Notification.createComplete = function () { + return Notification.completeNotification; + }; + Notification.completeNotification = new Notification('C'); + Notification.undefinedValueNotification = new Notification('N', undefined); + return Notification; +}()); +exports.Notification = Notification; +//# sourceMappingURL=Notification.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Notification.js.map b/node_modules/rxjs/internal/Notification.js.map new file mode 100644 index 00000000..64be5a0e --- /dev/null +++ b/node_modules/rxjs/internal/Notification.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Notification.js","sources":["../src/internal/Notification.ts"],"names":[],"mappings":";;AAEA,4CAA2C;AAC3C,sCAAqC;AACrC,sDAAqD;AAOrD,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,8BAAU,CAAA;IACV,+BAAW,CAAA;IACX,kCAAc,CAAA;AAChB,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AAgBD;IAGE,sBAAmB,IAAqB,EAAS,KAAS,EAAS,KAAW;QAA3D,SAAI,GAAJ,IAAI,CAAiB;QAAS,UAAK,GAAL,KAAK,CAAI;QAAS,UAAK,GAAL,KAAK,CAAM;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC;IAC/B,CAAC;IAOD,8BAAO,GAAP,UAAQ,QAA4B;QAClC,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,GAAG;gBACN,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,GAAG;gBACN,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,KAAK,GAAG;gBACN,OAAO,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;SACnD;IACH,CAAC;IAUD,yBAAE,GAAF,UAAG,IAAwB,EAAE,KAA0B,EAAE,QAAqB;QAC5E,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,GAAG;gBACN,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,GAAG;gBACN,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,KAAK,GAAG;gBACN,OAAO,QAAQ,IAAI,QAAQ,EAAE,CAAC;SACjC;IACH,CAAC;IAWD,6BAAM,GAAN,UAAO,cAAyD,EAAE,KAA0B,EAAE,QAAqB;QACjH,IAAI,cAAc,IAAI,OAA4B,cAAe,CAAC,IAAI,KAAK,UAAU,EAAE;YACrF,OAAO,IAAI,CAAC,OAAO,CAAqB,cAAc,CAAC,CAAC;SACzD;aAAM;YACL,OAAO,IAAI,CAAC,EAAE,CAAqB,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SACrE;IACH,CAAC;IAOD,mCAAY,GAAZ;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,EAAE;YACZ,KAAK,GAAG;gBACN,OAAO,OAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,uBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,KAAK,GAAG;gBACN,OAAO,aAAK,EAAE,CAAC;SAClB;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAaM,uBAAU,GAAjB,UAAqB,KAAQ;QAC3B,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,OAAO,YAAY,CAAC,0BAA0B,CAAC;IACjD,CAAC;IAUM,wBAAW,GAAlB,UAAsB,GAAS;QAC7B,OAAO,IAAI,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAOM,2BAAc,GAArB;QACE,OAAO,YAAY,CAAC,oBAAoB,CAAC;IAC3C,CAAC;IArCc,iCAAoB,GAAsB,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IAChE,uCAA0B,GAAsB,IAAI,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAqClG,mBAAC;CAAA,AApHD,IAoHC;AApHY,oCAAY"} diff --git a/node_modules/rxjs/internal/Observable.d.ts b/node_modules/rxjs/internal/Observable.d.ts new file mode 100644 index 00000000..6c5c2da1 --- /dev/null +++ b/node_modules/rxjs/internal/Observable.d.ts @@ -0,0 +1,91 @@ +import { Operator } from './Operator'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types'; +import { iif } from './observable/iif'; +import { throwError } from './observable/throwError'; +/** + * A representation of any set of values over any amount of time. This is the most basic building block + * of RxJS. + * + * @class Observable + */ +export declare class Observable implements Subscribable { + /** Internal implementation detail, do not use directly. */ + _isScalar: boolean; + /** @deprecated This is an internal implementation detail, do not use. */ + source: Observable; + /** @deprecated This is an internal implementation detail, do not use. */ + operator: Operator; + /** + * @constructor + * @param {Function} subscribe the function that is called when the Observable is + * initially subscribed to. This function is given a Subscriber, to which new values + * can be `next`ed, or an `error` method can be called to raise an error, or + * `complete` can be called to notify of a successful completion. + */ + constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic); + /** + * Creates a new cold Observable by calling the Observable constructor + * @static true + * @owner Observable + * @method create + * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor + * @return {Observable} a new cold observable + * @nocollapse + * @deprecated use new Observable() instead + */ + static create: Function; + /** + * Creates a new Observable, with this Observable as the source, and the passed + * operator defined as the new observable's operator. + * @method lift + * @param {Operator} operator the operator defining the operation to take on the observable + * @return {Observable} a new observable with the Operator applied + */ + lift(operator: Operator): Observable; + subscribe(observer?: PartialObserver): Subscription; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription; + /** @deprecated Use an observer instead of an error callback */ + subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; + subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription; + /** @deprecated This is an internal implementation detail, do not use. */ + _trySubscribe(sink: Subscriber): TeardownLogic; + /** + * @method forEach + * @param {Function} next a handler for each value emitted by the observable + * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise + * @return {Promise} a promise that either resolves on observable completion or + * rejects with the handled error + */ + forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise; + /** @internal This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): TeardownLogic; + /** + * @nocollapse + * @deprecated In favor of iif creation function: import { iif } from 'rxjs'; + */ + static if: typeof iif; + /** + * @nocollapse + * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs'; + */ + static throw: typeof throwError; + pipe(): Observable; + pipe(op1: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[]): Observable<{}>; + toPromise(this: Observable): Promise; + toPromise(this: Observable, PromiseCtor: typeof Promise): Promise; + toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise; +} diff --git a/node_modules/rxjs/internal/Observable.js b/node_modules/rxjs/internal/Observable.js new file mode 100644 index 00000000..780998b8 --- /dev/null +++ b/node_modules/rxjs/internal/Observable.js @@ -0,0 +1,117 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var canReportError_1 = require("./util/canReportError"); +var toSubscriber_1 = require("./util/toSubscriber"); +var observable_1 = require("./symbol/observable"); +var pipe_1 = require("./util/pipe"); +var config_1 = require("./config"); +var Observable = (function () { + function Observable(subscribe) { + this._isScalar = false; + if (subscribe) { + this._subscribe = subscribe; + } + } + Observable.prototype.lift = function (operator) { + var observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + }; + Observable.prototype.subscribe = function (observerOrNext, error, complete) { + var operator = this.operator; + var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete); + if (operator) { + sink.add(operator.call(sink, this.source)); + } + else { + sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink)); + } + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } + } + } + return sink; + }; + Observable.prototype._trySubscribe = function (sink) { + try { + return this._subscribe(sink); + } + catch (err) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + } + if (canReportError_1.canReportError(sink)) { + sink.error(err); + } + else { + console.warn(err); + } + } + }; + Observable.prototype.forEach = function (next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var subscription; + subscription = _this.subscribe(function (value) { + try { + next(value); + } + catch (err) { + reject(err); + if (subscription) { + subscription.unsubscribe(); + } + } + }, reject, resolve); + }); + }; + Observable.prototype._subscribe = function (subscriber) { + var source = this.source; + return source && source.subscribe(subscriber); + }; + Observable.prototype[observable_1.observable] = function () { + return this; + }; + Observable.prototype.pipe = function () { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; + } + if (operations.length === 0) { + return this; + } + return pipe_1.pipeFromArray(operations)(this); + }; + Observable.prototype.toPromise = function (promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var value; + _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); + }); + }; + Observable.create = function (subscribe) { + return new Observable(subscribe); + }; + return Observable; +}()); +exports.Observable = Observable; +function getPromiseCtor(promiseCtor) { + if (!promiseCtor) { + promiseCtor = config_1.config.Promise || Promise; + } + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + return promiseCtor; +} +//# sourceMappingURL=Observable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Observable.js.map b/node_modules/rxjs/internal/Observable.js.map new file mode 100644 index 00000000..4119f096 --- /dev/null +++ b/node_modules/rxjs/internal/Observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observable.js","sources":["../src/internal/Observable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/Observer.d.ts b/node_modules/rxjs/internal/Observer.d.ts new file mode 100644 index 00000000..454905db --- /dev/null +++ b/node_modules/rxjs/internal/Observer.d.ts @@ -0,0 +1,2 @@ +import { Observer } from './types'; +export declare const empty: Observer; diff --git a/node_modules/rxjs/internal/Observer.js b/node_modules/rxjs/internal/Observer.js new file mode 100644 index 00000000..e457b5fe --- /dev/null +++ b/node_modules/rxjs/internal/Observer.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var config_1 = require("./config"); +var hostReportError_1 = require("./util/hostReportError"); +exports.empty = { + closed: true, + next: function (value) { }, + error: function (err) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError_1.hostReportError(err); + } + }, + complete: function () { } +}; +//# sourceMappingURL=Observer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Observer.js.map b/node_modules/rxjs/internal/Observer.js.map new file mode 100644 index 00000000..6d12acec --- /dev/null +++ b/node_modules/rxjs/internal/Observer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Observer.js","sources":["../src/internal/Observer.ts"],"names":[],"mappings":";;AACA,mCAAkC;AAClC,0DAAyD;AAE5C,QAAA,KAAK,GAAkB;IAClC,MAAM,EAAE,IAAI;IACZ,IAAI,EAAJ,UAAK,KAAU,IAAoB,CAAC;IACpC,KAAK,EAAL,UAAM,GAAQ;QACZ,IAAI,eAAM,CAAC,qCAAqC,EAAE;YAChD,MAAM,GAAG,CAAC;SACX;aAAM;YACL,iCAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC;IACD,QAAQ,EAAR,cAA4B,CAAC;CAC9B,CAAC"} diff --git a/node_modules/rxjs/internal/Operator.d.ts b/node_modules/rxjs/internal/Operator.d.ts new file mode 100644 index 00000000..a1054c19 --- /dev/null +++ b/node_modules/rxjs/internal/Operator.d.ts @@ -0,0 +1,5 @@ +import { Subscriber } from './Subscriber'; +import { TeardownLogic } from './types'; +export interface Operator { + call(subscriber: Subscriber, source: any): TeardownLogic; +} diff --git a/node_modules/rxjs/internal/Operator.js b/node_modules/rxjs/internal/Operator.js new file mode 100644 index 00000000..3c447130 --- /dev/null +++ b/node_modules/rxjs/internal/Operator.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=Operator.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Operator.js.map b/node_modules/rxjs/internal/Operator.js.map new file mode 100644 index 00000000..e8830339 --- /dev/null +++ b/node_modules/rxjs/internal/Operator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Operator.js","sources":["../src/internal/Operator.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/internal/OuterSubscriber.d.ts b/node_modules/rxjs/internal/OuterSubscriber.d.ts new file mode 100644 index 00000000..15501206 --- /dev/null +++ b/node_modules/rxjs/internal/OuterSubscriber.d.ts @@ -0,0 +1,12 @@ +import { Subscriber } from './Subscriber'; +import { InnerSubscriber } from './InnerSubscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class OuterSubscriber extends Subscriber { + notifyNext(outerValue: T, innerValue: R, outerIndex: number, innerIndex: number, innerSub: InnerSubscriber): void; + notifyError(error: any, innerSub: InnerSubscriber): void; + notifyComplete(innerSub: InnerSubscriber): void; +} diff --git a/node_modules/rxjs/internal/OuterSubscriber.js b/node_modules/rxjs/internal/OuterSubscriber.js new file mode 100644 index 00000000..c2377b1a --- /dev/null +++ b/node_modules/rxjs/internal/OuterSubscriber.js @@ -0,0 +1,34 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("./Subscriber"); +var OuterSubscriber = (function (_super) { + __extends(OuterSubscriber, _super); + function OuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + OuterSubscriber.prototype.notifyError = function (error, innerSub) { + this.destination.error(error); + }; + OuterSubscriber.prototype.notifyComplete = function (innerSub) { + this.destination.complete(); + }; + return OuterSubscriber; +}(Subscriber_1.Subscriber)); +exports.OuterSubscriber = OuterSubscriber; +//# sourceMappingURL=OuterSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/OuterSubscriber.js.map b/node_modules/rxjs/internal/OuterSubscriber.js.map new file mode 100644 index 00000000..37860d57 --- /dev/null +++ b/node_modules/rxjs/internal/OuterSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OuterSubscriber.js","sources":["../src/internal/OuterSubscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA0C;AAQ1C;IAA2C,mCAAa;IAAxD;;IAcA,CAAC;IAbC,oCAAU,GAAV,UAAW,UAAa,EAAE,UAAa,EAC5B,UAAkB,EAAE,UAAkB,EACtC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,qCAAW,GAAX,UAAY,KAAU,EAAE,QAA+B;QACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,wCAAc,GAAd,UAAe,QAA+B;QAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AAdD,CAA2C,uBAAU,GAcpD;AAdY,0CAAe"} diff --git a/node_modules/rxjs/internal/ReplaySubject.d.ts b/node_modules/rxjs/internal/ReplaySubject.d.ts new file mode 100644 index 00000000..28383d00 --- /dev/null +++ b/node_modules/rxjs/internal/ReplaySubject.d.ts @@ -0,0 +1,25 @@ +import { Subject } from './Subject'; +import { SchedulerLike } from './types'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +/** + * A variant of Subject that "replays" or emits old values to new subscribers. + * It buffers a set number of values and will emit those values immediately to + * any new subscribers in addition to emitting new values to existing subscribers. + * + * @class ReplaySubject + */ +export declare class ReplaySubject extends Subject { + private scheduler?; + private _events; + private _bufferSize; + private _windowTime; + private _infiniteTimeWindow; + constructor(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike); + private nextInfiniteTimeWindow; + private nextTimeWindow; + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; + _getNow(): number; + private _trimBufferThenGetEvents; +} diff --git a/node_modules/rxjs/internal/ReplaySubject.js b/node_modules/rxjs/internal/ReplaySubject.js new file mode 100644 index 00000000..610c87a0 --- /dev/null +++ b/node_modules/rxjs/internal/ReplaySubject.js @@ -0,0 +1,130 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("./Subject"); +var queue_1 = require("./scheduler/queue"); +var Subscription_1 = require("./Subscription"); +var observeOn_1 = require("./operators/observeOn"); +var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError"); +var SubjectSubscription_1 = require("./SubjectSubscription"); +var ReplaySubject = (function (_super) { + __extends(ReplaySubject, _super); + function ReplaySubject(bufferSize, windowTime, scheduler) { + if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; } + if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; } + var _this = _super.call(this) || this; + _this.scheduler = scheduler; + _this._events = []; + _this._infiniteTimeWindow = false; + _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + _this._windowTime = windowTime < 1 ? 1 : windowTime; + if (windowTime === Number.POSITIVE_INFINITY) { + _this._infiniteTimeWindow = true; + _this.next = _this.nextInfiniteTimeWindow; + } + else { + _this.next = _this.nextTimeWindow; + } + return _this; + } + ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { + if (!this.isStopped) { + var _events = this._events; + _events.push(value); + if (_events.length > this._bufferSize) { + _events.shift(); + } + } + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype.nextTimeWindow = function (value) { + if (!this.isStopped) { + this._events.push(new ReplayEvent(this._getNow(), value)); + this._trimBufferThenGetEvents(); + } + _super.prototype.next.call(this, value); + }; + ReplaySubject.prototype._subscribe = function (subscriber) { + var _infiniteTimeWindow = this._infiniteTimeWindow; + var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); + var scheduler = this.scheduler; + var len = _events.length; + var subscription; + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + else if (this.isStopped || this.hasError) { + subscription = Subscription_1.Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + subscription = new SubjectSubscription_1.SubjectSubscription(this, subscriber); + } + if (scheduler) { + subscriber.add(subscriber = new observeOn_1.ObserveOnSubscriber(subscriber, scheduler)); + } + if (_infiniteTimeWindow) { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i]); + } + } + else { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i].value); + } + } + if (this.hasError) { + subscriber.error(this.thrownError); + } + else if (this.isStopped) { + subscriber.complete(); + } + return subscription; + }; + ReplaySubject.prototype._getNow = function () { + return (this.scheduler || queue_1.queue).now(); + }; + ReplaySubject.prototype._trimBufferThenGetEvents = function () { + var now = this._getNow(); + var _bufferSize = this._bufferSize; + var _windowTime = this._windowTime; + var _events = this._events; + var eventsCount = _events.length; + var spliceCount = 0; + while (spliceCount < eventsCount) { + if ((now - _events[spliceCount].time) < _windowTime) { + break; + } + spliceCount++; + } + if (eventsCount > _bufferSize) { + spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); + } + if (spliceCount > 0) { + _events.splice(0, spliceCount); + } + return _events; + }; + return ReplaySubject; +}(Subject_1.Subject)); +exports.ReplaySubject = ReplaySubject; +var ReplayEvent = (function () { + function ReplayEvent(time, value) { + this.time = time; + this.value = value; + } + return ReplayEvent; +}()); +//# sourceMappingURL=ReplaySubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/ReplaySubject.js.map b/node_modules/rxjs/internal/ReplaySubject.js.map new file mode 100644 index 00000000..246395e5 --- /dev/null +++ b/node_modules/rxjs/internal/ReplaySubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ReplaySubject.js","sources":["../src/internal/ReplaySubject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/Rx.d.ts b/node_modules/rxjs/internal/Rx.d.ts new file mode 100644 index 00000000..ad8b666c --- /dev/null +++ b/node_modules/rxjs/internal/Rx.d.ts @@ -0,0 +1,195 @@ +export { Subject, AnonymousSubject } from './Subject'; +export { Observable } from './Observable'; +export { config } from './config'; +import 'rxjs-compat/add/observable/bindCallback'; +import 'rxjs-compat/add/observable/bindNodeCallback'; +import 'rxjs-compat/add/observable/combineLatest'; +import 'rxjs-compat/add/observable/concat'; +import 'rxjs-compat/add/observable/defer'; +import 'rxjs-compat/add/observable/empty'; +import 'rxjs-compat/add/observable/forkJoin'; +import 'rxjs-compat/add/observable/from'; +import 'rxjs-compat/add/observable/fromEvent'; +import 'rxjs-compat/add/observable/fromEventPattern'; +import 'rxjs-compat/add/observable/fromPromise'; +import 'rxjs-compat/add/observable/generate'; +import 'rxjs-compat/add/observable/if'; +import 'rxjs-compat/add/observable/interval'; +import 'rxjs-compat/add/observable/merge'; +import 'rxjs-compat/add/observable/race'; +import 'rxjs-compat/add/observable/never'; +import 'rxjs-compat/add/observable/of'; +import 'rxjs-compat/add/observable/onErrorResumeNext'; +import 'rxjs-compat/add/observable/pairs'; +import 'rxjs-compat/add/observable/range'; +import 'rxjs-compat/add/observable/using'; +import 'rxjs-compat/add/observable/throw'; +import 'rxjs-compat/add/observable/timer'; +import 'rxjs-compat/add/observable/zip'; +import 'rxjs-compat/add/observable/dom/ajax'; +import 'rxjs-compat/add/observable/dom/webSocket'; +import 'rxjs-compat/add/operator/buffer'; +import 'rxjs-compat/add/operator/bufferCount'; +import 'rxjs-compat/add/operator/bufferTime'; +import 'rxjs-compat/add/operator/bufferToggle'; +import 'rxjs-compat/add/operator/bufferWhen'; +import 'rxjs-compat/add/operator/catch'; +import 'rxjs-compat/add/operator/combineAll'; +import 'rxjs-compat/add/operator/combineLatest'; +import 'rxjs-compat/add/operator/concat'; +import 'rxjs-compat/add/operator/concatAll'; +import 'rxjs-compat/add/operator/concatMap'; +import 'rxjs-compat/add/operator/concatMapTo'; +import 'rxjs-compat/add/operator/count'; +import 'rxjs-compat/add/operator/dematerialize'; +import 'rxjs-compat/add/operator/debounce'; +import 'rxjs-compat/add/operator/debounceTime'; +import 'rxjs-compat/add/operator/defaultIfEmpty'; +import 'rxjs-compat/add/operator/delay'; +import 'rxjs-compat/add/operator/delayWhen'; +import 'rxjs-compat/add/operator/distinct'; +import 'rxjs-compat/add/operator/distinctUntilChanged'; +import 'rxjs-compat/add/operator/distinctUntilKeyChanged'; +import 'rxjs-compat/add/operator/do'; +import 'rxjs-compat/add/operator/exhaust'; +import 'rxjs-compat/add/operator/exhaustMap'; +import 'rxjs-compat/add/operator/expand'; +import 'rxjs-compat/add/operator/elementAt'; +import 'rxjs-compat/add/operator/filter'; +import 'rxjs-compat/add/operator/finally'; +import 'rxjs-compat/add/operator/find'; +import 'rxjs-compat/add/operator/findIndex'; +import 'rxjs-compat/add/operator/first'; +import 'rxjs-compat/add/operator/groupBy'; +import 'rxjs-compat/add/operator/ignoreElements'; +import 'rxjs-compat/add/operator/isEmpty'; +import 'rxjs-compat/add/operator/audit'; +import 'rxjs-compat/add/operator/auditTime'; +import 'rxjs-compat/add/operator/last'; +import 'rxjs-compat/add/operator/let'; +import 'rxjs-compat/add/operator/every'; +import 'rxjs-compat/add/operator/map'; +import 'rxjs-compat/add/operator/mapTo'; +import 'rxjs-compat/add/operator/materialize'; +import 'rxjs-compat/add/operator/max'; +import 'rxjs-compat/add/operator/merge'; +import 'rxjs-compat/add/operator/mergeAll'; +import 'rxjs-compat/add/operator/mergeMap'; +import 'rxjs-compat/add/operator/mergeMapTo'; +import 'rxjs-compat/add/operator/mergeScan'; +import 'rxjs-compat/add/operator/min'; +import 'rxjs-compat/add/operator/multicast'; +import 'rxjs-compat/add/operator/observeOn'; +import 'rxjs-compat/add/operator/onErrorResumeNext'; +import 'rxjs-compat/add/operator/pairwise'; +import 'rxjs-compat/add/operator/partition'; +import 'rxjs-compat/add/operator/pluck'; +import 'rxjs-compat/add/operator/publish'; +import 'rxjs-compat/add/operator/publishBehavior'; +import 'rxjs-compat/add/operator/publishReplay'; +import 'rxjs-compat/add/operator/publishLast'; +import 'rxjs-compat/add/operator/race'; +import 'rxjs-compat/add/operator/reduce'; +import 'rxjs-compat/add/operator/repeat'; +import 'rxjs-compat/add/operator/repeatWhen'; +import 'rxjs-compat/add/operator/retry'; +import 'rxjs-compat/add/operator/retryWhen'; +import 'rxjs-compat/add/operator/sample'; +import 'rxjs-compat/add/operator/sampleTime'; +import 'rxjs-compat/add/operator/scan'; +import 'rxjs-compat/add/operator/sequenceEqual'; +import 'rxjs-compat/add/operator/share'; +import 'rxjs-compat/add/operator/shareReplay'; +import 'rxjs-compat/add/operator/single'; +import 'rxjs-compat/add/operator/skip'; +import 'rxjs-compat/add/operator/skipLast'; +import 'rxjs-compat/add/operator/skipUntil'; +import 'rxjs-compat/add/operator/skipWhile'; +import 'rxjs-compat/add/operator/startWith'; +import 'rxjs-compat/add/operator/subscribeOn'; +import 'rxjs-compat/add/operator/switch'; +import 'rxjs-compat/add/operator/switchMap'; +import 'rxjs-compat/add/operator/switchMapTo'; +import 'rxjs-compat/add/operator/take'; +import 'rxjs-compat/add/operator/takeLast'; +import 'rxjs-compat/add/operator/takeUntil'; +import 'rxjs-compat/add/operator/takeWhile'; +import 'rxjs-compat/add/operator/throttle'; +import 'rxjs-compat/add/operator/throttleTime'; +import 'rxjs-compat/add/operator/timeInterval'; +import 'rxjs-compat/add/operator/timeout'; +import 'rxjs-compat/add/operator/timeoutWith'; +import 'rxjs-compat/add/operator/timestamp'; +import 'rxjs-compat/add/operator/toArray'; +import 'rxjs-compat/add/operator/toPromise'; +import 'rxjs-compat/add/operator/window'; +import 'rxjs-compat/add/operator/windowCount'; +import 'rxjs-compat/add/operator/windowTime'; +import 'rxjs-compat/add/operator/windowToggle'; +import 'rxjs-compat/add/operator/windowWhen'; +import 'rxjs-compat/add/operator/withLatestFrom'; +import 'rxjs-compat/add/operator/zip'; +import 'rxjs-compat/add/operator/zipAll'; +export { Operator } from './Operator'; +export { Observer } from './types'; +export { Subscription } from './Subscription'; +export { Subscriber } from './Subscriber'; +export { AsyncSubject } from './AsyncSubject'; +export { ReplaySubject } from './ReplaySubject'; +export { BehaviorSubject } from './BehaviorSubject'; +export { ConnectableObservable } from './observable/ConnectableObservable'; +export { Notification, NotificationKind } from './Notification'; +export { EmptyError } from './util/EmptyError'; +export { ArgumentOutOfRangeError } from './util/ArgumentOutOfRangeError'; +export { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +export { TimeoutError } from './util/TimeoutError'; +export { UnsubscriptionError } from './util/UnsubscriptionError'; +export { TimeInterval } from './operators/timeInterval'; +export { Timestamp } from './operators/timestamp'; +export { TestScheduler } from './testing/TestScheduler'; +export { VirtualTimeScheduler } from './scheduler/VirtualTimeScheduler'; +export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from './observable/dom/AjaxObservable'; +export { pipe } from './util/pipe'; +import { AsapScheduler } from './scheduler/AsapScheduler'; +import { AsyncScheduler } from './scheduler/AsyncScheduler'; +import { QueueScheduler } from './scheduler/QueueScheduler'; +import { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler'; +import * as _operators from './operators/index'; +export declare const operators: typeof _operators; +/** + * @typedef {Object} Rx.Scheduler + * @property {SchedulerLike} asap Schedules on the micro task queue, which is the same + * queue used for promises. Basically after the current job, but before the next job. + * Use this for asynchronous conversions. + * @property {SchedulerLike} queue Schedules on a queue in the current event frame + * (trampoline scheduler). Use this for iteration operations. + * @property {SchedulerLike} animationFrame Schedules work with `requestAnimationFrame`. + * Use this for synchronizing with the platform's painting. + * @property {SchedulerLike} async Schedules work with `setInterval`. Use this for + * time-based operations. + */ +declare let Scheduler: { + asap: AsapScheduler; + queue: QueueScheduler; + animationFrame: AnimationFrameScheduler; + async: AsyncScheduler; +}; +/** + * @typedef {Object} Rx.Symbol + * @property {Symbol|string} rxSubscriber A symbol to use as a property name to + * retrieve an "Rx safe" Observer from an object. "Rx safety" can be defined as + * an object that has all of the traits of an Rx Subscriber, including the + * ability to add and remove subscriptions to the subscription chain and + * guarantees involving event triggering (can't "next" after unsubscription, + * etc). + * @property {Symbol|string} observable A symbol to use as a property name to + * retrieve an Observable as defined by the [ECMAScript "Observable" spec](https://github.com/zenparsing/es-observable). + * @property {Symbol|string} iterator The ES6 symbol to use as a property name + * to retrieve an iterator from an object. + */ +declare let Symbol: { + rxSubscriber: string | symbol; + observable: string | symbol; + iterator: symbol; +}; +export { Scheduler, Symbol }; diff --git a/node_modules/rxjs/internal/Rx.js b/node_modules/rxjs/internal/Rx.js new file mode 100644 index 00000000..8de0b0f0 --- /dev/null +++ b/node_modules/rxjs/internal/Rx.js @@ -0,0 +1,200 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("./Subject"); +exports.Subject = Subject_1.Subject; +exports.AnonymousSubject = Subject_1.AnonymousSubject; +var Observable_1 = require("./Observable"); +exports.Observable = Observable_1.Observable; +var config_1 = require("./config"); +exports.config = config_1.config; +require("rxjs-compat/add/observable/bindCallback"); +require("rxjs-compat/add/observable/bindNodeCallback"); +require("rxjs-compat/add/observable/combineLatest"); +require("rxjs-compat/add/observable/concat"); +require("rxjs-compat/add/observable/defer"); +require("rxjs-compat/add/observable/empty"); +require("rxjs-compat/add/observable/forkJoin"); +require("rxjs-compat/add/observable/from"); +require("rxjs-compat/add/observable/fromEvent"); +require("rxjs-compat/add/observable/fromEventPattern"); +require("rxjs-compat/add/observable/fromPromise"); +require("rxjs-compat/add/observable/generate"); +require("rxjs-compat/add/observable/if"); +require("rxjs-compat/add/observable/interval"); +require("rxjs-compat/add/observable/merge"); +require("rxjs-compat/add/observable/race"); +require("rxjs-compat/add/observable/never"); +require("rxjs-compat/add/observable/of"); +require("rxjs-compat/add/observable/onErrorResumeNext"); +require("rxjs-compat/add/observable/pairs"); +require("rxjs-compat/add/observable/range"); +require("rxjs-compat/add/observable/using"); +require("rxjs-compat/add/observable/throw"); +require("rxjs-compat/add/observable/timer"); +require("rxjs-compat/add/observable/zip"); +require("rxjs-compat/add/observable/dom/ajax"); +require("rxjs-compat/add/observable/dom/webSocket"); +require("rxjs-compat/add/operator/buffer"); +require("rxjs-compat/add/operator/bufferCount"); +require("rxjs-compat/add/operator/bufferTime"); +require("rxjs-compat/add/operator/bufferToggle"); +require("rxjs-compat/add/operator/bufferWhen"); +require("rxjs-compat/add/operator/catch"); +require("rxjs-compat/add/operator/combineAll"); +require("rxjs-compat/add/operator/combineLatest"); +require("rxjs-compat/add/operator/concat"); +require("rxjs-compat/add/operator/concatAll"); +require("rxjs-compat/add/operator/concatMap"); +require("rxjs-compat/add/operator/concatMapTo"); +require("rxjs-compat/add/operator/count"); +require("rxjs-compat/add/operator/dematerialize"); +require("rxjs-compat/add/operator/debounce"); +require("rxjs-compat/add/operator/debounceTime"); +require("rxjs-compat/add/operator/defaultIfEmpty"); +require("rxjs-compat/add/operator/delay"); +require("rxjs-compat/add/operator/delayWhen"); +require("rxjs-compat/add/operator/distinct"); +require("rxjs-compat/add/operator/distinctUntilChanged"); +require("rxjs-compat/add/operator/distinctUntilKeyChanged"); +require("rxjs-compat/add/operator/do"); +require("rxjs-compat/add/operator/exhaust"); +require("rxjs-compat/add/operator/exhaustMap"); +require("rxjs-compat/add/operator/expand"); +require("rxjs-compat/add/operator/elementAt"); +require("rxjs-compat/add/operator/filter"); +require("rxjs-compat/add/operator/finally"); +require("rxjs-compat/add/operator/find"); +require("rxjs-compat/add/operator/findIndex"); +require("rxjs-compat/add/operator/first"); +require("rxjs-compat/add/operator/groupBy"); +require("rxjs-compat/add/operator/ignoreElements"); +require("rxjs-compat/add/operator/isEmpty"); +require("rxjs-compat/add/operator/audit"); +require("rxjs-compat/add/operator/auditTime"); +require("rxjs-compat/add/operator/last"); +require("rxjs-compat/add/operator/let"); +require("rxjs-compat/add/operator/every"); +require("rxjs-compat/add/operator/map"); +require("rxjs-compat/add/operator/mapTo"); +require("rxjs-compat/add/operator/materialize"); +require("rxjs-compat/add/operator/max"); +require("rxjs-compat/add/operator/merge"); +require("rxjs-compat/add/operator/mergeAll"); +require("rxjs-compat/add/operator/mergeMap"); +require("rxjs-compat/add/operator/mergeMapTo"); +require("rxjs-compat/add/operator/mergeScan"); +require("rxjs-compat/add/operator/min"); +require("rxjs-compat/add/operator/multicast"); +require("rxjs-compat/add/operator/observeOn"); +require("rxjs-compat/add/operator/onErrorResumeNext"); +require("rxjs-compat/add/operator/pairwise"); +require("rxjs-compat/add/operator/partition"); +require("rxjs-compat/add/operator/pluck"); +require("rxjs-compat/add/operator/publish"); +require("rxjs-compat/add/operator/publishBehavior"); +require("rxjs-compat/add/operator/publishReplay"); +require("rxjs-compat/add/operator/publishLast"); +require("rxjs-compat/add/operator/race"); +require("rxjs-compat/add/operator/reduce"); +require("rxjs-compat/add/operator/repeat"); +require("rxjs-compat/add/operator/repeatWhen"); +require("rxjs-compat/add/operator/retry"); +require("rxjs-compat/add/operator/retryWhen"); +require("rxjs-compat/add/operator/sample"); +require("rxjs-compat/add/operator/sampleTime"); +require("rxjs-compat/add/operator/scan"); +require("rxjs-compat/add/operator/sequenceEqual"); +require("rxjs-compat/add/operator/share"); +require("rxjs-compat/add/operator/shareReplay"); +require("rxjs-compat/add/operator/single"); +require("rxjs-compat/add/operator/skip"); +require("rxjs-compat/add/operator/skipLast"); +require("rxjs-compat/add/operator/skipUntil"); +require("rxjs-compat/add/operator/skipWhile"); +require("rxjs-compat/add/operator/startWith"); +require("rxjs-compat/add/operator/subscribeOn"); +require("rxjs-compat/add/operator/switch"); +require("rxjs-compat/add/operator/switchMap"); +require("rxjs-compat/add/operator/switchMapTo"); +require("rxjs-compat/add/operator/take"); +require("rxjs-compat/add/operator/takeLast"); +require("rxjs-compat/add/operator/takeUntil"); +require("rxjs-compat/add/operator/takeWhile"); +require("rxjs-compat/add/operator/throttle"); +require("rxjs-compat/add/operator/throttleTime"); +require("rxjs-compat/add/operator/timeInterval"); +require("rxjs-compat/add/operator/timeout"); +require("rxjs-compat/add/operator/timeoutWith"); +require("rxjs-compat/add/operator/timestamp"); +require("rxjs-compat/add/operator/toArray"); +require("rxjs-compat/add/operator/toPromise"); +require("rxjs-compat/add/operator/window"); +require("rxjs-compat/add/operator/windowCount"); +require("rxjs-compat/add/operator/windowTime"); +require("rxjs-compat/add/operator/windowToggle"); +require("rxjs-compat/add/operator/windowWhen"); +require("rxjs-compat/add/operator/withLatestFrom"); +require("rxjs-compat/add/operator/zip"); +require("rxjs-compat/add/operator/zipAll"); +var Subscription_1 = require("./Subscription"); +exports.Subscription = Subscription_1.Subscription; +var Subscriber_1 = require("./Subscriber"); +exports.Subscriber = Subscriber_1.Subscriber; +var AsyncSubject_1 = require("./AsyncSubject"); +exports.AsyncSubject = AsyncSubject_1.AsyncSubject; +var ReplaySubject_1 = require("./ReplaySubject"); +exports.ReplaySubject = ReplaySubject_1.ReplaySubject; +var BehaviorSubject_1 = require("./BehaviorSubject"); +exports.BehaviorSubject = BehaviorSubject_1.BehaviorSubject; +var ConnectableObservable_1 = require("./observable/ConnectableObservable"); +exports.ConnectableObservable = ConnectableObservable_1.ConnectableObservable; +var Notification_1 = require("./Notification"); +exports.Notification = Notification_1.Notification; +exports.NotificationKind = Notification_1.NotificationKind; +var EmptyError_1 = require("./util/EmptyError"); +exports.EmptyError = EmptyError_1.EmptyError; +var ArgumentOutOfRangeError_1 = require("./util/ArgumentOutOfRangeError"); +exports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; +var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError"); +exports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError; +var TimeoutError_1 = require("./util/TimeoutError"); +exports.TimeoutError = TimeoutError_1.TimeoutError; +var UnsubscriptionError_1 = require("./util/UnsubscriptionError"); +exports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError; +var timeInterval_1 = require("./operators/timeInterval"); +exports.TimeInterval = timeInterval_1.TimeInterval; +var timestamp_1 = require("./operators/timestamp"); +exports.Timestamp = timestamp_1.Timestamp; +var TestScheduler_1 = require("./testing/TestScheduler"); +exports.TestScheduler = TestScheduler_1.TestScheduler; +var VirtualTimeScheduler_1 = require("./scheduler/VirtualTimeScheduler"); +exports.VirtualTimeScheduler = VirtualTimeScheduler_1.VirtualTimeScheduler; +var AjaxObservable_1 = require("./observable/dom/AjaxObservable"); +exports.AjaxResponse = AjaxObservable_1.AjaxResponse; +exports.AjaxError = AjaxObservable_1.AjaxError; +exports.AjaxTimeoutError = AjaxObservable_1.AjaxTimeoutError; +var pipe_1 = require("./util/pipe"); +exports.pipe = pipe_1.pipe; +var asap_1 = require("./scheduler/asap"); +var async_1 = require("./scheduler/async"); +var queue_1 = require("./scheduler/queue"); +var animationFrame_1 = require("./scheduler/animationFrame"); +var rxSubscriber_1 = require("./symbol/rxSubscriber"); +var iterator_1 = require("./symbol/iterator"); +var observable_1 = require("./symbol/observable"); +var _operators = require("./operators/index"); +exports.operators = _operators; +var Scheduler = { + asap: asap_1.asap, + queue: queue_1.queue, + animationFrame: animationFrame_1.animationFrame, + async: async_1.async +}; +exports.Scheduler = Scheduler; +var Symbol = { + rxSubscriber: rxSubscriber_1.rxSubscriber, + observable: observable_1.observable, + iterator: iterator_1.iterator +}; +exports.Symbol = Symbol; +//# sourceMappingURL=Rx.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Rx.js.map b/node_modules/rxjs/internal/Rx.js.map new file mode 100644 index 00000000..98bfde4d --- /dev/null +++ b/node_modules/rxjs/internal/Rx.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Rx.js","sources":["../src/internal/Rx.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/Scheduler.d.ts b/node_modules/rxjs/internal/Scheduler.d.ts new file mode 100644 index 00000000..47c34db9 --- /dev/null +++ b/node_modules/rxjs/internal/Scheduler.d.ts @@ -0,0 +1,59 @@ +import { Action } from './scheduler/Action'; +import { Subscription } from './Subscription'; +import { SchedulerLike, SchedulerAction } from './types'; +/** + * An execution context and a data structure to order tasks and schedule their + * execution. Provides a notion of (potentially virtual) time, through the + * `now()` getter method. + * + * Each unit of work in a Scheduler is called an `Action`. + * + * ```ts + * class Scheduler { + * now(): number; + * schedule(work, delay?, state?): Subscription; + * } + * ``` + * + * @class Scheduler + * @deprecated Scheduler is an internal implementation detail of RxJS, and + * should not be used directly. Rather, create your own class and implement + * {@link SchedulerLike} + */ +export declare class Scheduler implements SchedulerLike { + private SchedulerAction; + /** + * Note: the extra arrow function wrapper is to make testing by overriding + * Date.now easier. + * @nocollapse + */ + static now: () => number; + constructor(SchedulerAction: typeof Action, now?: () => number); + /** + * A getter method that returns a number representing the current time + * (at the time this function was called) according to the scheduler's own + * internal clock. + * @return {number} A number that represents the current time. May or may not + * have a relation to wall-clock time. May or may not refer to a time unit + * (e.g. milliseconds). + */ + now: () => number; + /** + * Schedules a function, `work`, for execution. May happen at some point in + * the future, according to the `delay` parameter, if specified. May be passed + * some context object, `state`, which will be passed to the `work` function. + * + * The given arguments will be processed an stored as an Action object in a + * queue of actions. + * + * @param {function(state: ?T): ?Subscription} work A function representing a + * task, or some unit of work to be executed by the Scheduler. + * @param {number} [delay] Time to wait before executing the work, where the + * time unit is implicit and defined by the Scheduler itself. + * @param {T} [state] Some contextual data that the `work` function uses when + * called by the Scheduler. + * @return {Subscription} A subscription in order to be able to unsubscribe + * the scheduled work. + */ + schedule(work: (this: SchedulerAction, state?: T) => void, delay?: number, state?: T): Subscription; +} diff --git a/node_modules/rxjs/internal/Scheduler.js b/node_modules/rxjs/internal/Scheduler.js new file mode 100644 index 00000000..38b09690 --- /dev/null +++ b/node_modules/rxjs/internal/Scheduler.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Scheduler = (function () { + function Scheduler(SchedulerAction, now) { + if (now === void 0) { now = Scheduler.now; } + this.SchedulerAction = SchedulerAction; + this.now = now; + } + Scheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { delay = 0; } + return new this.SchedulerAction(this, work).schedule(state, delay); + }; + Scheduler.now = function () { return Date.now(); }; + return Scheduler; +}()); +exports.Scheduler = Scheduler; +//# sourceMappingURL=Scheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Scheduler.js.map b/node_modules/rxjs/internal/Scheduler.js.map new file mode 100644 index 00000000..de55d2d8 --- /dev/null +++ b/node_modules/rxjs/internal/Scheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Scheduler.js","sources":["../src/internal/Scheduler.ts"],"names":[],"mappings":";;AAuBA;IASE,mBAAoB,eAA8B,EACtC,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,SAAS,CAAC,GAAG;QADzB,oBAAe,GAAf,eAAe,CAAe;QAEhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IA6BM,4BAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,OAAO,IAAI,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IApCa,aAAG,GAAiB,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,EAAV,CAAU,CAAC;IAqCrD,gBAAC;CAAA,AA5CD,IA4CC;AA5CY,8BAAS"} diff --git a/node_modules/rxjs/internal/Subject.d.ts b/node_modules/rxjs/internal/Subject.d.ts new file mode 100644 index 00000000..dc86c2f6 --- /dev/null +++ b/node_modules/rxjs/internal/Subject.d.ts @@ -0,0 +1,61 @@ +import { Operator } from './Operator'; +import { Observable } from './Observable'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { Observer, SubscriptionLike, TeardownLogic } from './types'; +/** + * @class SubjectSubscriber + */ +export declare class SubjectSubscriber extends Subscriber { + protected destination: Subject; + constructor(destination: Subject); +} +/** + * A Subject is a special type of Observable that allows values to be + * multicasted to many Observers. Subjects are like EventEmitters. + * + * Every Subject is an Observable and an Observer. You can subscribe to a + * Subject, and you can call next to feed values as well as error and complete. + * + * @class Subject + */ +export declare class Subject extends Observable implements SubscriptionLike { + observers: Observer[]; + closed: boolean; + isStopped: boolean; + hasError: boolean; + thrownError: any; + constructor(); + /**@nocollapse + * @deprecated use new Subject() instead + */ + static create: Function; + lift(operator: Operator): Observable; + next(value?: T): void; + error(err: any): void; + complete(): void; + unsubscribe(): void; + /** @deprecated This is an internal implementation detail, do not use. */ + _trySubscribe(subscriber: Subscriber): TeardownLogic; + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; + /** + * Creates a new Observable with this Subject as the source. You can do this + * to create customize Observer-side logic of the Subject and conceal it from + * code that uses the Observable. + * @return {Observable} Observable that the Subject casts to + */ + asObservable(): Observable; +} +/** + * @class AnonymousSubject + */ +export declare class AnonymousSubject extends Subject { + protected destination?: Observer; + constructor(destination?: Observer, source?: Observable); + next(value: T): void; + error(err: any): void; + complete(): void; + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; +} diff --git a/node_modules/rxjs/internal/Subject.js b/node_modules/rxjs/internal/Subject.js new file mode 100644 index 00000000..644e14df --- /dev/null +++ b/node_modules/rxjs/internal/Subject.js @@ -0,0 +1,171 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("./Observable"); +var Subscriber_1 = require("./Subscriber"); +var Subscription_1 = require("./Subscription"); +var ObjectUnsubscribedError_1 = require("./util/ObjectUnsubscribedError"); +var SubjectSubscription_1 = require("./SubjectSubscription"); +var rxSubscriber_1 = require("../internal/symbol/rxSubscriber"); +var SubjectSubscriber = (function (_super) { + __extends(SubjectSubscriber, _super); + function SubjectSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + return _this; + } + return SubjectSubscriber; +}(Subscriber_1.Subscriber)); +exports.SubjectSubscriber = SubjectSubscriber; +var Subject = (function (_super) { + __extends(Subject, _super); + function Subject() { + var _this = _super.call(this) || this; + _this.observers = []; + _this.closed = false; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; + } + Subject.prototype[rxSubscriber_1.rxSubscriber] = function () { + return new SubjectSubscriber(this); + }; + Subject.prototype.lift = function (operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject.prototype.next = function (value) { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + if (!this.isStopped) { + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].next(value); + } + } + }; + Subject.prototype.error = function (err) { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + this.hasError = true; + this.thrownError = err; + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].error(err); + } + this.observers.length = 0; + }; + Subject.prototype.complete = function () { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].complete(); + } + this.observers.length = 0; + }; + Subject.prototype.unsubscribe = function () { + this.isStopped = true; + this.closed = true; + this.observers = null; + }; + Subject.prototype._trySubscribe = function (subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + else { + return _super.prototype._trySubscribe.call(this, subscriber); + } + }; + Subject.prototype._subscribe = function (subscriber) { + if (this.closed) { + throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError(); + } + else if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription_1.Subscription.EMPTY; + } + else if (this.isStopped) { + subscriber.complete(); + return Subscription_1.Subscription.EMPTY; + } + else { + this.observers.push(subscriber); + return new SubjectSubscription_1.SubjectSubscription(this, subscriber); + } + }; + Subject.prototype.asObservable = function () { + var observable = new Observable_1.Observable(); + observable.source = this; + return observable; + }; + Subject.create = function (destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject; +}(Observable_1.Observable)); +exports.Subject = Subject; +var AnonymousSubject = (function (_super) { + __extends(AnonymousSubject, _super); + function AnonymousSubject(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject.prototype.next = function (value) { + var destination = this.destination; + if (destination && destination.next) { + destination.next(value); + } + }; + AnonymousSubject.prototype.error = function (err) { + var destination = this.destination; + if (destination && destination.error) { + this.destination.error(err); + } + }; + AnonymousSubject.prototype.complete = function () { + var destination = this.destination; + if (destination && destination.complete) { + this.destination.complete(); + } + }; + AnonymousSubject.prototype._subscribe = function (subscriber) { + var source = this.source; + if (source) { + return this.source.subscribe(subscriber); + } + else { + return Subscription_1.Subscription.EMPTY; + } + }; + return AnonymousSubject; +}(Subject)); +exports.AnonymousSubject = AnonymousSubject; +//# sourceMappingURL=Subject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Subject.js.map b/node_modules/rxjs/internal/Subject.js.map new file mode 100644 index 00000000..4008ca13 --- /dev/null +++ b/node_modules/rxjs/internal/Subject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subject.js","sources":["../src/internal/Subject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA0C;AAC1C,2CAA0C;AAC1C,+CAA8C;AAE9C,0EAAyE;AACzE,6DAA4D;AAC5D,gEAAqF;AAKrF;IAA0C,qCAAa;IACrD,2BAAsB,WAAuB;QAA7C,YACE,kBAAM,WAAW,CAAC,SACnB;QAFqB,iBAAW,GAAX,WAAW,CAAY;;IAE7C,CAAC;IACH,wBAAC;AAAD,CAAC,AAJD,CAA0C,uBAAU,GAInD;AAJY,8CAAiB;AAe9B;IAAgC,2BAAa;IAgB3C;QAAA,YACE,iBAAO,SACR;QAZD,eAAS,GAAkB,EAAE,CAAC;QAE9B,YAAM,GAAG,KAAK,CAAC;QAEf,eAAS,GAAG,KAAK,CAAC;QAElB,cAAQ,GAAG,KAAK,CAAC;QAEjB,iBAAW,GAAQ,IAAI,CAAC;;IAIxB,CAAC;IAhBD,kBAAC,2BAAkB,CAAC,GAApB;QACE,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAuBD,sBAAI,GAAJ,UAAQ,QAAwB;QAC9B,IAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAQ,QAAQ,CAAC;QACjC,OAAY,OAAO,CAAC;IACtB,CAAC;IAED,sBAAI,GAAJ,UAAK,KAAS;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACX,IAAA,0BAAS,CAAU;YAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrB;SACF;IACH,CAAC;IAED,uBAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACd,IAAA,0BAAS,CAAU;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,0BAAQ,GAAR;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACd,IAAA,0BAAS,CAAU;QAC3B,IAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,6BAAW,GAAX;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAGD,+BAAa,GAAb,UAAc,UAAyB;QACrC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;aAAM;YACL,OAAO,iBAAM,aAAa,YAAC,UAAU,CAAC,CAAC;SACxC;IACH,CAAC;IAGD,4BAAU,GAAV,UAAW,UAAyB;QAClC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,iDAAuB,EAAE,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxB,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO,IAAI,yCAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAClD;IACH,CAAC;IAQD,8BAAY,GAAZ;QACE,IAAM,UAAU,GAAG,IAAI,uBAAU,EAAK,CAAC;QACjC,UAAW,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IA/FM,cAAM,GAAa,UAAI,WAAwB,EAAE,MAAqB;QAC3E,OAAO,IAAI,gBAAgB,CAAI,WAAW,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC,CAAA;IA8FH,cAAC;CAAA,AAvHD,CAAgC,uBAAU,GAuHzC;AAvHY,0BAAO;AA4HpB;IAAyC,oCAAU;IACjD,0BAAsB,WAAyB,EAAE,MAAsB;QAAvE,YACE,iBAAO,SAER;QAHqB,iBAAW,GAAX,WAAW,CAAc;QAE7C,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;IACvB,CAAC;IAED,+BAAI,GAAJ,UAAK,KAAQ;QACH,IAAA,8BAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;YACnC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAED,gCAAK,GAAL,UAAM,GAAQ;QACJ,IAAA,8BAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAED,mCAAQ,GAAR;QACU,IAAA,8BAAW,CAAU;QAC7B,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAGD,qCAAU,GAAV,UAAW,UAAyB;QAC1B,IAAA,oBAAM,CAAU;QACxB,IAAI,MAAM,EAAE;YACV,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SAC1C;aAAM;YACL,OAAO,2BAAY,CAAC,KAAK,CAAC;SAC3B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AApCD,CAAyC,OAAO,GAoC/C;AApCY,4CAAgB"} diff --git a/node_modules/rxjs/internal/SubjectSubscription.d.ts b/node_modules/rxjs/internal/SubjectSubscription.d.ts new file mode 100644 index 00000000..ed533eeb --- /dev/null +++ b/node_modules/rxjs/internal/SubjectSubscription.d.ts @@ -0,0 +1,15 @@ +import { Subject } from './Subject'; +import { Observer } from './types'; +import { Subscription } from './Subscription'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class SubjectSubscription extends Subscription { + subject: Subject; + subscriber: Observer; + closed: boolean; + constructor(subject: Subject, subscriber: Observer); + unsubscribe(): void; +} diff --git a/node_modules/rxjs/internal/SubjectSubscription.js b/node_modules/rxjs/internal/SubjectSubscription.js new file mode 100644 index 00000000..2409d40c --- /dev/null +++ b/node_modules/rxjs/internal/SubjectSubscription.js @@ -0,0 +1,45 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscription_1 = require("./Subscription"); +var SubjectSubscription = (function (_super) { + __extends(SubjectSubscription, _super); + function SubjectSubscription(subject, subscriber) { + var _this = _super.call(this) || this; + _this.subject = subject; + _this.subscriber = subscriber; + _this.closed = false; + return _this; + } + SubjectSubscription.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.closed = true; + var subject = this.subject; + var observers = subject.observers; + this.subject = null; + if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { + return; + } + var subscriberIndex = observers.indexOf(this.subscriber); + if (subscriberIndex !== -1) { + observers.splice(subscriberIndex, 1); + } + }; + return SubjectSubscription; +}(Subscription_1.Subscription)); +exports.SubjectSubscription = SubjectSubscription; +//# sourceMappingURL=SubjectSubscription.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/SubjectSubscription.js.map b/node_modules/rxjs/internal/SubjectSubscription.js.map new file mode 100644 index 00000000..f1fe1b97 --- /dev/null +++ b/node_modules/rxjs/internal/SubjectSubscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubjectSubscription.js","sources":["../src/internal/SubjectSubscription.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,+CAA8C;AAO9C;IAA4C,uCAAY;IAGtD,6BAAmB,OAAmB,EAAS,UAAuB;QAAtE,YACE,iBAAO,SACR;QAFkB,aAAO,GAAP,OAAO,CAAY;QAAS,gBAAU,GAAV,UAAU,CAAa;QAFtE,YAAM,GAAY,KAAK,CAAC;;IAIxB,CAAC;IAED,yCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;YAC/E,OAAO;SACR;QAED,IAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;YAC1B,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA7BD,CAA4C,2BAAY,GA6BvD;AA7BY,kDAAmB"} diff --git a/node_modules/rxjs/internal/Subscriber.d.ts b/node_modules/rxjs/internal/Subscriber.d.ts new file mode 100644 index 00000000..d841126b --- /dev/null +++ b/node_modules/rxjs/internal/Subscriber.d.ts @@ -0,0 +1,87 @@ +import { Observer, PartialObserver } from './types'; +import { Subscription } from './Subscription'; +/** + * Implements the {@link Observer} interface and extends the + * {@link Subscription} class. While the {@link Observer} is the public API for + * consuming the values of an {@link Observable}, all Observers get converted to + * a Subscriber, in order to provide Subscription-like capabilities such as + * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for + * implementing operators, but it is rarely used as a public API. + * + * @class Subscriber + */ +export declare class Subscriber extends Subscription implements Observer { + /** + * A static factory for a Subscriber, given a (potentially partial) definition + * of an Observer. + * @param {function(x: ?T): void} [next] The `next` callback of an Observer. + * @param {function(e: ?any): void} [error] The `error` callback of an + * Observer. + * @param {function(): void} [complete] The `complete` callback of an + * Observer. + * @return {Subscriber} A Subscriber wrapping the (partially defined) + * Observer represented by the given arguments. + * @nocollapse + */ + static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber; + /** @internal */ syncErrorValue: any; + /** @internal */ syncErrorThrown: boolean; + /** @internal */ syncErrorThrowable: boolean; + protected isStopped: boolean; + protected destination: PartialObserver | Subscriber; + /** + * @param {Observer|function(value: T): void} [destinationOrNext] A partially + * defined Observer or a `next` callback function. + * @param {function(e: ?any): void} [error] The `error` callback of an + * Observer. + * @param {function(): void} [complete] The `complete` callback of an + * Observer. + */ + constructor(destinationOrNext?: PartialObserver | ((value: T) => void), error?: (e?: any) => void, complete?: () => void); + /** + * The {@link Observer} callback to receive notifications of type `next` from + * the Observable, with a value. The Observable may call this method 0 or more + * times. + * @param {T} [value] The `next` value. + * @return {void} + */ + next(value?: T): void; + /** + * The {@link Observer} callback to receive notifications of type `error` from + * the Observable, with an attached `Error`. Notifies the Observer that + * the Observable has experienced an error condition. + * @param {any} [err] The `error` exception. + * @return {void} + */ + error(err?: any): void; + /** + * The {@link Observer} callback to receive a valueless notification of type + * `complete` from the Observable. Notifies the Observer that the Observable + * has finished sending push-based notifications. + * @return {void} + */ + complete(): void; + unsubscribe(): void; + protected _next(value: T): void; + protected _error(err: any): void; + protected _complete(): void; + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribeAndRecycle(): Subscriber; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class SafeSubscriber extends Subscriber { + private _parentSubscriber; + private _context; + constructor(_parentSubscriber: Subscriber, observerOrNext?: PartialObserver | ((value: T) => void), error?: (e?: any) => void, complete?: () => void); + next(value?: T): void; + error(err?: any): void; + complete(): void; + private __tryOrUnsub; + private __tryOrSetError; + /** @internal This is an internal implementation detail, do not use. */ + _unsubscribe(): void; +} diff --git a/node_modules/rxjs/internal/Subscriber.js b/node_modules/rxjs/internal/Subscriber.js new file mode 100644 index 00000000..08a57fd6 --- /dev/null +++ b/node_modules/rxjs/internal/Subscriber.js @@ -0,0 +1,246 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var isFunction_1 = require("./util/isFunction"); +var Observer_1 = require("./Observer"); +var Subscription_1 = require("./Subscription"); +var rxSubscriber_1 = require("../internal/symbol/rxSubscriber"); +var config_1 = require("./config"); +var hostReportError_1 = require("./util/hostReportError"); +var Subscriber = (function (_super) { + __extends(Subscriber, _super); + function Subscriber(destinationOrNext, error, complete) { + var _this = _super.call(this) || this; + _this.syncErrorValue = null; + _this.syncErrorThrown = false; + _this.syncErrorThrowable = false; + _this.isStopped = false; + switch (arguments.length) { + case 0: + _this.destination = Observer_1.empty; + break; + case 1: + if (!destinationOrNext) { + _this.destination = Observer_1.empty; + break; + } + if (typeof destinationOrNext === 'object') { + if (destinationOrNext instanceof Subscriber) { + _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + _this.destination = destinationOrNext; + destinationOrNext.add(_this); + } + else { + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext); + } + break; + } + default: + _this.syncErrorThrowable = true; + _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete); + break; + } + return _this; + } + Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; }; + Subscriber.create = function (next, error, complete) { + var subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + }; + Subscriber.prototype.next = function (value) { + if (!this.isStopped) { + this._next(value); + } + }; + Subscriber.prototype.error = function (err) { + if (!this.isStopped) { + this.isStopped = true; + this._error(err); + } + }; + Subscriber.prototype.complete = function () { + if (!this.isStopped) { + this.isStopped = true; + this._complete(); + } + }; + Subscriber.prototype.unsubscribe = function () { + if (this.closed) { + return; + } + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + }; + Subscriber.prototype._next = function (value) { + this.destination.next(value); + }; + Subscriber.prototype._error = function (err) { + this.destination.error(err); + this.unsubscribe(); + }; + Subscriber.prototype._complete = function () { + this.destination.complete(); + this.unsubscribe(); + }; + Subscriber.prototype._unsubscribeAndRecycle = function () { + var _parentOrParents = this._parentOrParents; + this._parentOrParents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parentOrParents = _parentOrParents; + return this; + }; + return Subscriber; +}(Subscription_1.Subscription)); +exports.Subscriber = Subscriber; +var SafeSubscriber = (function (_super) { + __extends(SafeSubscriber, _super); + function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) { + var _this = _super.call(this) || this; + _this._parentSubscriber = _parentSubscriber; + var next; + var context = _this; + if (isFunction_1.isFunction(observerOrNext)) { + next = observerOrNext; + } + else if (observerOrNext) { + next = observerOrNext.next; + error = observerOrNext.error; + complete = observerOrNext.complete; + if (observerOrNext !== Observer_1.empty) { + context = Object.create(observerOrNext); + if (isFunction_1.isFunction(context.unsubscribe)) { + _this.add(context.unsubscribe.bind(context)); + } + context.unsubscribe = _this.unsubscribe.bind(_this); + } + } + _this._context = context; + _this._next = next; + _this._error = error; + _this._complete = complete; + return _this; + } + SafeSubscriber.prototype.next = function (value) { + if (!this.isStopped && this._next) { + var _parentSubscriber = this._parentSubscriber; + if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._next, value); + } + else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + var useDeprecatedSynchronousErrorHandling = config_1.config.useDeprecatedSynchronousErrorHandling; + if (this._error) { + if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } + else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + if (useDeprecatedSynchronousErrorHandling) { + throw err; + } + hostReportError_1.hostReportError(err); + } + else { + if (useDeprecatedSynchronousErrorHandling) { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + } + else { + hostReportError_1.hostReportError(err); + } + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.complete = function () { + var _this = this; + if (!this.isStopped) { + var _parentSubscriber = this._parentSubscriber; + if (this._complete) { + var wrappedComplete = function () { return _this._complete.call(_this._context); }; + if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(wrappedComplete); + this.unsubscribe(); + } + else { + this.__tryOrSetError(_parentSubscriber, wrappedComplete); + this.unsubscribe(); + } + } + else { + this.unsubscribe(); + } + } + }; + SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) { + try { + fn.call(this._context, value); + } + catch (err) { + this.unsubscribe(); + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + throw err; + } + else { + hostReportError_1.hostReportError(err); + } + } + }; + SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) { + if (!config_1.config.useDeprecatedSynchronousErrorHandling) { + throw new Error('bad call'); + } + try { + fn.call(this._context, value); + } + catch (err) { + if (config_1.config.useDeprecatedSynchronousErrorHandling) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } + else { + hostReportError_1.hostReportError(err); + return true; + } + } + return false; + }; + SafeSubscriber.prototype._unsubscribe = function () { + var _parentSubscriber = this._parentSubscriber; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + }; + return SafeSubscriber; +}(Subscriber)); +exports.SafeSubscriber = SafeSubscriber; +//# sourceMappingURL=Subscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Subscriber.js.map b/node_modules/rxjs/internal/Subscriber.js.map new file mode 100644 index 00000000..3b07b8cc --- /dev/null +++ b/node_modules/rxjs/internal/Subscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscriber.js","sources":["../src/internal/Subscriber.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/Subscription.d.ts b/node_modules/rxjs/internal/Subscription.d.ts new file mode 100644 index 00000000..bf8ccca5 --- /dev/null +++ b/node_modules/rxjs/internal/Subscription.d.ts @@ -0,0 +1,66 @@ +import { SubscriptionLike, TeardownLogic } from './types'; +/** + * Represents a disposable resource, such as the execution of an Observable. A + * Subscription has one important method, `unsubscribe`, that takes no argument + * and just disposes the resource held by the subscription. + * + * Additionally, subscriptions may be grouped together through the `add()` + * method, which will attach a child Subscription to the current Subscription. + * When a Subscription is unsubscribed, all its children (and its grandchildren) + * will be unsubscribed as well. + * + * @class Subscription + */ +export declare class Subscription implements SubscriptionLike { + /** @nocollapse */ + static EMPTY: Subscription; + /** + * A flag to indicate whether this Subscription has already been unsubscribed. + * @type {boolean} + */ + closed: boolean; + /** @internal */ + protected _parentOrParents: Subscription | Subscription[]; + /** @internal */ + private _subscriptions; + /** + * @param {function(): void} [unsubscribe] A function describing how to + * perform the disposal of resources when the `unsubscribe` method is called. + */ + constructor(unsubscribe?: () => void); + /** + * Disposes the resources held by the subscription. May, for instance, cancel + * an ongoing Observable execution or cancel any other type of work that + * started when the Subscription was created. + * @return {void} + */ + unsubscribe(): void; + /** + * Adds a tear down to be called during the unsubscribe() of this + * Subscription. Can also be used to add a child subscription. + * + * If the tear down being added is a subscription that is already + * unsubscribed, is the same reference `add` is being called on, or is + * `Subscription.EMPTY`, it will not be added. + * + * If this subscription is already in an `closed` state, the passed + * tear down logic will be executed immediately. + * + * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed. + * + * @param {TeardownLogic} teardown The additional logic to execute on + * teardown. + * @return {Subscription} Returns the Subscription used or created to be + * added to the inner subscriptions list. This Subscription can be used with + * `remove()` to remove the passed teardown logic from the inner subscriptions + * list. + */ + add(teardown: TeardownLogic): Subscription; + /** + * Removes a Subscription from the internal list of subscriptions that will + * unsubscribe during the unsubscribe process of this Subscription. + * @param {Subscription} subscription The subscription to remove. + * @return {void} + */ + remove(subscription: Subscription): void; +} diff --git a/node_modules/rxjs/internal/Subscription.js b/node_modules/rxjs/internal/Subscription.js new file mode 100644 index 00000000..3e60dd1f --- /dev/null +++ b/node_modules/rxjs/internal/Subscription.js @@ -0,0 +1,141 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var isArray_1 = require("./util/isArray"); +var isObject_1 = require("./util/isObject"); +var isFunction_1 = require("./util/isFunction"); +var UnsubscriptionError_1 = require("./util/UnsubscriptionError"); +var Subscription = (function () { + function Subscription(unsubscribe) { + this.closed = false; + this._parentOrParents = null; + this._subscriptions = null; + if (unsubscribe) { + this._ctorUnsubscribe = true; + this._unsubscribe = unsubscribe; + } + } + Subscription.prototype.unsubscribe = function () { + var errors; + if (this.closed) { + return; + } + var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions; + this.closed = true; + this._parentOrParents = null; + this._subscriptions = null; + if (_parentOrParents instanceof Subscription) { + _parentOrParents.remove(this); + } + else if (_parentOrParents !== null) { + for (var index = 0; index < _parentOrParents.length; ++index) { + var parent_1 = _parentOrParents[index]; + parent_1.remove(this); + } + } + if (isFunction_1.isFunction(_unsubscribe)) { + if (_ctorUnsubscribe) { + this._unsubscribe = undefined; + } + try { + _unsubscribe.call(this); + } + catch (e) { + errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; + } + } + if (isArray_1.isArray(_subscriptions)) { + var index = -1; + var len = _subscriptions.length; + while (++index < len) { + var sub = _subscriptions[index]; + if (isObject_1.isObject(sub)) { + try { + sub.unsubscribe(); + } + catch (e) { + errors = errors || []; + if (e instanceof UnsubscriptionError_1.UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); + } + else { + errors.push(e); + } + } + } + } + } + if (errors) { + throw new UnsubscriptionError_1.UnsubscriptionError(errors); + } + }; + Subscription.prototype.add = function (teardown) { + var subscription = teardown; + if (!teardown) { + return Subscription.EMPTY; + } + switch (typeof teardown) { + case 'function': + subscription = new Subscription(teardown); + case 'object': + if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { + return subscription; + } + else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } + else if (!(subscription instanceof Subscription)) { + var tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: { + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + } + var _parentOrParents = subscription._parentOrParents; + if (_parentOrParents === null) { + subscription._parentOrParents = this; + } + else if (_parentOrParents instanceof Subscription) { + if (_parentOrParents === this) { + return subscription; + } + subscription._parentOrParents = [_parentOrParents, this]; + } + else if (_parentOrParents.indexOf(this) === -1) { + _parentOrParents.push(this); + } + else { + return subscription; + } + var subscriptions = this._subscriptions; + if (subscriptions === null) { + this._subscriptions = [subscription]; + } + else { + subscriptions.push(subscription); + } + return subscription; + }; + Subscription.prototype.remove = function (subscription) { + var subscriptions = this._subscriptions; + if (subscriptions) { + var subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + }; + Subscription.EMPTY = (function (empty) { + empty.closed = true; + return empty; + }(new Subscription())); + return Subscription; +}()); +exports.Subscription = Subscription; +function flattenUnsubscriptionErrors(errors) { + return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []); +} +//# sourceMappingURL=Subscription.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/Subscription.js.map b/node_modules/rxjs/internal/Subscription.js.map new file mode 100644 index 00000000..6f52756e --- /dev/null +++ b/node_modules/rxjs/internal/Subscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Subscription.js","sources":["../src/internal/Subscription.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/config.d.ts b/node_modules/rxjs/internal/config.d.ts new file mode 100644 index 00000000..7e622070 --- /dev/null +++ b/node_modules/rxjs/internal/config.d.ts @@ -0,0 +1,20 @@ +/** + * The global configuration object for RxJS, used to configure things + * like what Promise contructor should used to create Promises + */ +export declare const config: { + /** + * The promise constructor used by default for methods such as + * {@link toPromise} and {@link forEach} + */ + Promise: PromiseConstructorLike; + /** + * If true, turns on synchronous error rethrowing, which is a deprecated behavior + * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe + * call in a try/catch block. It also enables producer interference, a nasty bug + * where a multicast can be broken for all observers by a downstream consumer with + * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME + * FOR MIGRATION REASONS. + */ + useDeprecatedSynchronousErrorHandling: boolean; +}; diff --git a/node_modules/rxjs/internal/config.js b/node_modules/rxjs/internal/config.js new file mode 100644 index 00000000..ec56be9b --- /dev/null +++ b/node_modules/rxjs/internal/config.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var _enable_super_gross_mode_that_will_cause_bad_things = false; +exports.config = { + Promise: undefined, + set useDeprecatedSynchronousErrorHandling(value) { + if (value) { + var error = new Error(); + console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); + } + else if (_enable_super_gross_mode_that_will_cause_bad_things) { + console.log('RxJS: Back to a better error behavior. Thank you. <3'); + } + _enable_super_gross_mode_that_will_cause_bad_things = value; + }, + get useDeprecatedSynchronousErrorHandling() { + return _enable_super_gross_mode_that_will_cause_bad_things; + }, +}; +//# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/config.js.map b/node_modules/rxjs/internal/config.js.map new file mode 100644 index 00000000..d8f2929c --- /dev/null +++ b/node_modules/rxjs/internal/config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"config.js","sources":["../src/internal/config.ts"],"names":[],"mappings":";;AAAA,IAAI,mDAAmD,GAAG,KAAK,CAAC;AAMnD,QAAA,MAAM,GAAG;IAKpB,OAAO,EAAE,SAAmC;IAU5C,IAAI,qCAAqC,CAAC,KAAc;QACtD,IAAI,KAAK,EAAE;YACT,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,+FAA+F,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7H;aAAM,IAAI,mDAAmD,EAAE;YAC9D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;SACrE;QACD,mDAAmD,GAAG,KAAK,CAAC;IAC9D,CAAC;IAED,IAAI,qCAAqC;QACvC,OAAO,mDAAmD,CAAC;IAC7D,CAAC;CACF,CAAC"} diff --git a/node_modules/rxjs/internal/innerSubscribe.d.ts b/node_modules/rxjs/internal/innerSubscribe.d.ts new file mode 100644 index 00000000..9bfb1a00 --- /dev/null +++ b/node_modules/rxjs/internal/innerSubscribe.d.ts @@ -0,0 +1,61 @@ +/** @prettier */ +import { Subscription } from './Subscription'; +import { Subscriber } from './Subscriber'; +interface SimpleOuterSubscriberLike { + /** + * A handler for inner next notifications from the inner subscription + * @param innerValue the value nexted by the inner producer + */ + notifyNext(innerValue: T): void; + /** + * A handler for inner error notifications from the inner subscription + * @param err the error from the inner producer + */ + notifyError(err: any): void; + /** + * A handler for inner complete notifications from the inner subscription. + */ + notifyComplete(): void; +} +export declare class SimpleInnerSubscriber extends Subscriber { + private parent; + constructor(parent: SimpleOuterSubscriberLike); + protected _next(value: T): void; + protected _error(error: any): void; + protected _complete(): void; +} +export declare class ComplexInnerSubscriber extends Subscriber { + private parent; + outerValue: T; + outerIndex: number; + constructor(parent: ComplexOuterSubscriber, outerValue: T, outerIndex: number); + protected _next(value: R): void; + protected _error(error: any): void; + protected _complete(): void; +} +export declare class SimpleOuterSubscriber extends Subscriber implements SimpleOuterSubscriberLike { + notifyNext(innerValue: R): void; + notifyError(err: any): void; + notifyComplete(): void; +} +/** + * DO NOT USE (formerly "OuterSubscriber") + * TODO: We want to refactor this and remove it. It is retaining values it shouldn't for long + * periods of time. + */ +export declare class ComplexOuterSubscriber extends Subscriber { + /** + * @param _outerValue Used by: bufferToggle, delayWhen, windowToggle + * @param innerValue Used by: subclass default, combineLatest, race, bufferToggle, windowToggle, withLatestFrom + * @param _outerIndex Used by: combineLatest, race, withLatestFrom + * @param _innerSub Used by: delayWhen + */ + notifyNext(_outerValue: T, innerValue: R, _outerIndex: number, _innerSub: ComplexInnerSubscriber): void; + notifyError(error: any): void; + /** + * @param _innerSub Used by: race, bufferToggle, delayWhen, windowToggle, windowWhen + */ + notifyComplete(_innerSub: ComplexInnerSubscriber): void; +} +export declare function innerSubscribe(result: any, innerSubscriber: Subscriber): Subscription | undefined; +export {}; diff --git a/node_modules/rxjs/internal/innerSubscribe.js b/node_modules/rxjs/internal/innerSubscribe.js new file mode 100644 index 00000000..e4a722c6 --- /dev/null +++ b/node_modules/rxjs/internal/innerSubscribe.js @@ -0,0 +1,107 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("./Subscriber"); +var Observable_1 = require("./Observable"); +var subscribeTo_1 = require("./util/subscribeTo"); +var SimpleInnerSubscriber = (function (_super) { + __extends(SimpleInnerSubscriber, _super); + function SimpleInnerSubscriber(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + return _this; + } + SimpleInnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(value); + }; + SimpleInnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error); + this.unsubscribe(); + }; + SimpleInnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(); + this.unsubscribe(); + }; + return SimpleInnerSubscriber; +}(Subscriber_1.Subscriber)); +exports.SimpleInnerSubscriber = SimpleInnerSubscriber; +var ComplexInnerSubscriber = (function (_super) { + __extends(ComplexInnerSubscriber, _super); + function ComplexInnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + return _this; + } + ComplexInnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this); + }; + ComplexInnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error); + this.unsubscribe(); + }; + ComplexInnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); + }; + return ComplexInnerSubscriber; +}(Subscriber_1.Subscriber)); +exports.ComplexInnerSubscriber = ComplexInnerSubscriber; +var SimpleOuterSubscriber = (function (_super) { + __extends(SimpleOuterSubscriber, _super); + function SimpleOuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + SimpleOuterSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + SimpleOuterSubscriber.prototype.notifyComplete = function () { + this.destination.complete(); + }; + return SimpleOuterSubscriber; +}(Subscriber_1.Subscriber)); +exports.SimpleOuterSubscriber = SimpleOuterSubscriber; +var ComplexOuterSubscriber = (function (_super) { + __extends(ComplexOuterSubscriber, _super); + function ComplexOuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) { + this.destination.next(innerValue); + }; + ComplexOuterSubscriber.prototype.notifyError = function (error) { + this.destination.error(error); + }; + ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) { + this.destination.complete(); + }; + return ComplexOuterSubscriber; +}(Subscriber_1.Subscriber)); +exports.ComplexOuterSubscriber = ComplexOuterSubscriber; +function innerSubscribe(result, innerSubscriber) { + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable_1.Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo_1.subscribeTo(result)(innerSubscriber); +} +exports.innerSubscribe = innerSubscribe; +//# sourceMappingURL=innerSubscribe.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/innerSubscribe.js.map b/node_modules/rxjs/internal/innerSubscribe.js.map new file mode 100644 index 00000000..24cb3ddf --- /dev/null +++ b/node_modules/rxjs/internal/innerSubscribe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"innerSubscribe.js","sources":["../src/internal/innerSubscribe.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts b/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts new file mode 100644 index 00000000..fe3a8e86 --- /dev/null +++ b/node_modules/rxjs/internal/observable/ConnectableObservable.d.ts @@ -0,0 +1,23 @@ +import { Subject } from '../Subject'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +/** + * @class ConnectableObservable + */ +export declare class ConnectableObservable extends Observable { + source: Observable; + protected subjectFactory: () => Subject; + protected _subject: Subject; + protected _refCount: number; + protected _connection: Subscription; + /** @internal */ + _isComplete: boolean; + constructor(source: Observable, subjectFactory: () => Subject); + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; + protected getSubject(): Subject; + connect(): Subscription; + refCount(): Observable; +} +export declare const connectableObservableDescriptor: PropertyDescriptorMap; diff --git a/node_modules/rxjs/internal/observable/ConnectableObservable.js b/node_modules/rxjs/internal/observable/ConnectableObservable.js new file mode 100644 index 00000000..9772f584 --- /dev/null +++ b/node_modules/rxjs/internal/observable/ConnectableObservable.js @@ -0,0 +1,155 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var Observable_1 = require("../Observable"); +var Subscriber_1 = require("../Subscriber"); +var Subscription_1 = require("../Subscription"); +var refCount_1 = require("../operators/refCount"); +var ConnectableObservable = (function (_super) { + __extends(ConnectableObservable, _super); + function ConnectableObservable(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._refCount = 0; + _this._isComplete = false; + return _this; + } + ConnectableObservable.prototype._subscribe = function (subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable.prototype.getSubject = function () { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable.prototype.connect = function () { + var connection = this._connection; + if (!connection) { + this._isComplete = false; + connection = this._connection = new Subscription_1.Subscription(); + connection.add(this.source + .subscribe(new ConnectableSubscriber(this.getSubject(), this))); + if (connection.closed) { + this._connection = null; + connection = Subscription_1.Subscription.EMPTY; + } + } + return connection; + }; + ConnectableObservable.prototype.refCount = function () { + return refCount_1.refCount()(this); + }; + return ConnectableObservable; +}(Observable_1.Observable)); +exports.ConnectableObservable = ConnectableObservable; +exports.connectableObservableDescriptor = (function () { + var connectableProto = ConnectableObservable.prototype; + return { + operator: { value: null }, + _refCount: { value: 0, writable: true }, + _subject: { value: null, writable: true }, + _connection: { value: null, writable: true }, + _subscribe: { value: connectableProto._subscribe }, + _isComplete: { value: connectableProto._isComplete, writable: true }, + getSubject: { value: connectableProto.getSubject }, + connect: { value: connectableProto.connect }, + refCount: { value: connectableProto.refCount } + }; +})(); +var ConnectableSubscriber = (function (_super) { + __extends(ConnectableSubscriber, _super); + function ConnectableSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + ConnectableSubscriber.prototype._error = function (err) { + this._unsubscribe(); + _super.prototype._error.call(this, err); + }; + ConnectableSubscriber.prototype._complete = function () { + this.connectable._isComplete = true; + this._unsubscribe(); + _super.prototype._complete.call(this); + }; + ConnectableSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (connectable) { + this.connectable = null; + var connection = connectable._connection; + connectable._refCount = 0; + connectable._subject = null; + connectable._connection = null; + if (connection) { + connection.unsubscribe(); + } + } + }; + return ConnectableSubscriber; +}(Subject_1.SubjectSubscriber)); +var RefCountOperator = (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; + } + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + }; + return RefCountOperator; +}()); +var RefCountSubscriber = (function (_super) { + __extends(RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=ConnectableObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/ConnectableObservable.js.map b/node_modules/rxjs/internal/observable/ConnectableObservable.js.map new file mode 100644 index 00000000..b8b17ac2 --- /dev/null +++ b/node_modules/rxjs/internal/observable/ConnectableObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConnectableObservable.js","sources":["../../src/internal/observable/ConnectableObservable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts b/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts new file mode 100644 index 00000000..0a42c0ef --- /dev/null +++ b/node_modules/rxjs/internal/observable/SubscribeOnObservable.d.ts @@ -0,0 +1,25 @@ +import { SchedulerLike, SchedulerAction } from '../types'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +export interface DispatchArg { + source: Observable; + subscriber: Subscriber; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export declare class SubscribeOnObservable extends Observable { + source: Observable; + private delayTime; + private scheduler; + /** @nocollapse */ + static create(source: Observable, delay?: number, scheduler?: SchedulerLike): Observable; + /** @nocollapse */ + static dispatch(this: SchedulerAction, arg: DispatchArg): Subscription; + constructor(source: Observable, delayTime?: number, scheduler?: SchedulerLike); + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; +} diff --git a/node_modules/rxjs/internal/observable/SubscribeOnObservable.js b/node_modules/rxjs/internal/observable/SubscribeOnObservable.js new file mode 100644 index 00000000..e79b2d27 --- /dev/null +++ b/node_modules/rxjs/internal/observable/SubscribeOnObservable.js @@ -0,0 +1,56 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var asap_1 = require("../scheduler/asap"); +var isNumeric_1 = require("../util/isNumeric"); +var SubscribeOnObservable = (function (_super) { + __extends(SubscribeOnObservable, _super); + function SubscribeOnObservable(source, delayTime, scheduler) { + if (delayTime === void 0) { delayTime = 0; } + if (scheduler === void 0) { scheduler = asap_1.asap; } + var _this = _super.call(this) || this; + _this.source = source; + _this.delayTime = delayTime; + _this.scheduler = scheduler; + if (!isNumeric_1.isNumeric(delayTime) || delayTime < 0) { + _this.delayTime = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + _this.scheduler = asap_1.asap; + } + return _this; + } + SubscribeOnObservable.create = function (source, delay, scheduler) { + if (delay === void 0) { delay = 0; } + if (scheduler === void 0) { scheduler = asap_1.asap; } + return new SubscribeOnObservable(source, delay, scheduler); + }; + SubscribeOnObservable.dispatch = function (arg) { + var source = arg.source, subscriber = arg.subscriber; + return this.add(source.subscribe(subscriber)); + }; + SubscribeOnObservable.prototype._subscribe = function (subscriber) { + var delay = this.delayTime; + var source = this.source; + var scheduler = this.scheduler; + return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { + source: source, subscriber: subscriber + }); + }; + return SubscribeOnObservable; +}(Observable_1.Observable)); +exports.SubscribeOnObservable = SubscribeOnObservable; +//# sourceMappingURL=SubscribeOnObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map new file mode 100644 index 00000000..de7d5ea6 --- /dev/null +++ b/node_modules/rxjs/internal/observable/SubscribeOnObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscribeOnObservable.js","sources":["../../src/internal/observable/SubscribeOnObservable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,4CAA2C;AAC3C,0CAAyC;AACzC,+CAA8C;AAY9C;IAA8C,yCAAa;IAYzD,+BAAmB,MAAqB,EACpB,SAAqB,EACrB,SAA+B;QAD/B,0BAAA,EAAA,aAAqB;QACrB,0BAAA,EAAA,YAA2B,WAAI;QAFnD,YAGE,iBAAO,SAOR;QAVkB,YAAM,GAAN,MAAM,CAAe;QACpB,eAAS,GAAT,SAAS,CAAY;QACrB,eAAS,GAAT,SAAS,CAAsB;QAEjD,IAAI,CAAC,qBAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YAC1C,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;YAC1D,KAAI,CAAC,SAAS,GAAG,WAAI,CAAC;SACvB;;IACH,CAAC;IApBM,4BAAM,GAAb,UAAiB,MAAqB,EAAE,KAAiB,EAAE,SAA+B;QAAlD,sBAAA,EAAA,SAAiB;QAAE,0BAAA,EAAA,YAA2B,WAAI;QACxF,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAGM,8BAAQ,GAAf,UAA6C,GAAmB;QACtD,IAAA,mBAAM,EAAE,2BAAU,CAAS;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,CAAC;IAeD,0CAAU,GAAV,UAAW,UAAyB;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAmB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE;YACjF,MAAM,QAAA,EAAE,UAAU,YAAA;SACnB,CAAC,CAAC;IACL,CAAC;IACH,4BAAC;AAAD,CAAC,AAlCD,CAA8C,uBAAU,GAkCvD;AAlCY,sDAAqB"} diff --git a/node_modules/rxjs/internal/observable/bindCallback.d.ts b/node_modules/rxjs/internal/observable/bindCallback.d.ts new file mode 100644 index 00000000..39fd17f1 --- /dev/null +++ b/node_modules/rxjs/internal/observable/bindCallback.d.ts @@ -0,0 +1,37 @@ +import { SchedulerLike } from '../types'; +import { Observable } from '../Observable'; +/** @deprecated resultSelector is no longer supported, use a mapping function. */ +export declare function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable; +export declare function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>; +export declare function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>; +export declare function bindCallback(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable; +export declare function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>; +export declare function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>; +export declare function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export declare function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export declare function bindCallback(callbackFunc: (...args: Array any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable; +export declare function bindCallback(callbackFunc: (...args: Array any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable; +export declare function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; diff --git a/node_modules/rxjs/internal/observable/bindCallback.js b/node_modules/rxjs/internal/observable/bindCallback.js new file mode 100644 index 00000000..ac6efeb1 --- /dev/null +++ b/node_modules/rxjs/internal/observable/bindCallback.js @@ -0,0 +1,107 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var AsyncSubject_1 = require("../AsyncSubject"); +var map_1 = require("../operators/map"); +var canReportError_1 = require("../util/canReportError"); +var isArray_1 = require("../util/isArray"); +var isScheduler_1 = require("../util/isScheduler"); +function bindCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler_1.isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var context = this; + var subject; + var params = { + context: context, + subject: subject, + callbackFunc: callbackFunc, + scheduler: scheduler, + }; + return new Observable_1.Observable(function (subscriber) { + if (!scheduler) { + if (!subject) { + subject = new AsyncSubject_1.AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (canReportError_1.canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + var state = { + args: args, subscriber: subscriber, params: params, + }; + return scheduler.schedule(dispatch, 0, state); + } + }); + }; +} +exports.bindCallback = bindCallback; +function dispatch(state) { + var _this = this; + var self = this; + var args = state.args, subscriber = state.subscriber, params = state.params; + var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new AsyncSubject_1.AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + subject.error(err); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(state) { + var value = state.value, subject = state.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(state) { + var err = state.err, subject = state.subject; + subject.error(err); +} +//# sourceMappingURL=bindCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/bindCallback.js.map b/node_modules/rxjs/internal/observable/bindCallback.js.map new file mode 100644 index 00000000..52b31daa --- /dev/null +++ b/node_modules/rxjs/internal/observable/bindCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindCallback.js","sources":["../../src/internal/observable/bindCallback.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts b/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts new file mode 100644 index 00000000..5a2f62b1 --- /dev/null +++ b/node_modules/rxjs/internal/observable/bindNodeCallback.d.ts @@ -0,0 +1,35 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +/** @deprecated resultSelector is deprecated, pipe to map instead */ +export declare function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>; +export declare function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>; +export declare function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable; +export declare function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export declare function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export declare function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; diff --git a/node_modules/rxjs/internal/observable/bindNodeCallback.js b/node_modules/rxjs/internal/observable/bindNodeCallback.js new file mode 100644 index 00000000..135bbd22 --- /dev/null +++ b/node_modules/rxjs/internal/observable/bindNodeCallback.js @@ -0,0 +1,115 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var AsyncSubject_1 = require("../AsyncSubject"); +var map_1 = require("../operators/map"); +var canReportError_1 = require("../util/canReportError"); +var isScheduler_1 = require("../util/isScheduler"); +var isArray_1 = require("../util/isArray"); +function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (isScheduler_1.isScheduler(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var params = { + subject: undefined, + args: args, + callbackFunc: callbackFunc, + scheduler: scheduler, + context: this, + }; + return new Observable_1.Observable(function (subscriber) { + var context = params.context; + var subject = params.subject; + if (!scheduler) { + if (!subject) { + subject = params.subject = new AsyncSubject_1.AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + subject.error(err); + return; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (canReportError_1.canReportError(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context }); + } + }); + }; +} +exports.bindNodeCallback = bindNodeCallback; +function dispatch(state) { + var _this = this; + var params = state.params, subscriber = state.subscriber, context = state.context; + var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new AsyncSubject_1.AsyncSubject(); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + else { + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + } + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(arg) { + var value = arg.value, subject = arg.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(arg) { + var err = arg.err, subject = arg.subject; + subject.error(err); +} +//# sourceMappingURL=bindNodeCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/bindNodeCallback.js.map b/node_modules/rxjs/internal/observable/bindNodeCallback.js.map new file mode 100644 index 00000000..025fdc59 --- /dev/null +++ b/node_modules/rxjs/internal/observable/bindNodeCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindNodeCallback.js","sources":["../../src/internal/observable/bindNodeCallback.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/combineLatest.d.ts b/node_modules/rxjs/internal/observable/combineLatest.d.ts new file mode 100644 index 00000000..3c766252 --- /dev/null +++ b/node_modules/rxjs/internal/observable/combineLatest.d.ts @@ -0,0 +1,99 @@ +import { Observable } from '../Observable'; +import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; +import { Subscriber } from '../Subscriber'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { Operator } from '../Operator'; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, R>(sources: [O1], resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, R>(sources: O[], resultSelector: (...args: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest, O2 extends ObservableInput>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest>(sources: O[], scheduler: SchedulerLike): Observable[]>; +export declare function combineLatest>(sources: [O1]): Observable<[ObservedValueOf]>; +export declare function combineLatest, O2 extends ObservableInput>(sources: [O1, O2]): Observable<[ObservedValueOf, ObservedValueOf]>; +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function combineLatest>(sources: O[]): Observable[]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest>(...observables: O[]): Observable; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export declare function combineLatest, R>(...observables: Array | ((...values: Array) => R)>): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function combineLatest, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest>(...observables: Array): Observable; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest, R>(...observables: Array[]) => R) | SchedulerLike>): Observable; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export declare function combineLatest(...observables: Array | ((...values: Array) => R) | SchedulerLike>): Observable; +export declare class CombineLatestOperator implements Operator { + private resultSelector?; + constructor(resultSelector?: (...values: Array) => R); + call(subscriber: Subscriber, source: any): any; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class CombineLatestSubscriber extends OuterSubscriber { + private resultSelector?; + private active; + private values; + private observables; + private toRespond?; + constructor(destination: Subscriber, resultSelector?: (...values: Array) => R); + protected _next(observable: any): void; + protected _complete(): void; + notifyComplete(unused: Subscriber): void; + notifyNext(_outerValue: T, innerValue: R, outerIndex: number): void; + private _tryResultSelector; +} diff --git a/node_modules/rxjs/internal/observable/combineLatest.js b/node_modules/rxjs/internal/observable/combineLatest.js new file mode 100644 index 00000000..ca87420b --- /dev/null +++ b/node_modules/rxjs/internal/observable/combineLatest.js @@ -0,0 +1,115 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var isScheduler_1 = require("../util/isScheduler"); +var isArray_1 = require("../util/isArray"); +var OuterSubscriber_1 = require("../OuterSubscriber"); +var subscribeToResult_1 = require("../util/subscribeToResult"); +var fromArray_1 = require("./fromArray"); +var NONE = {}; +function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = undefined; + var scheduler = undefined; + if (isScheduler_1.isScheduler(observables[observables.length - 1])) { + scheduler = observables.pop(); + } + if (typeof observables[observables.length - 1] === 'function') { + resultSelector = observables.pop(); + } + if (observables.length === 1 && isArray_1.isArray(observables[0])) { + observables = observables[0]; + } + return fromArray_1.fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); +} +exports.combineLatest = combineLatest; +var CombineLatestOperator = (function () { + function CombineLatestOperator(resultSelector) { + this.resultSelector = resultSelector; + } + CombineLatestOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); + }; + return CombineLatestOperator; +}()); +exports.CombineLatestOperator = CombineLatestOperator; +var CombineLatestSubscriber = (function (_super) { + __extends(CombineLatestSubscriber, _super); + function CombineLatestSubscriber(destination, resultSelector) { + var _this = _super.call(this, destination) || this; + _this.resultSelector = resultSelector; + _this.active = 0; + _this.values = []; + _this.observables = []; + return _this; + } + CombineLatestSubscriber.prototype._next = function (observable) { + this.values.push(NONE); + this.observables.push(observable); + }; + CombineLatestSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + this.active = len; + this.toRespond = len; + for (var i = 0; i < len; i++) { + var observable = observables[i]; + this.add(subscribeToResult_1.subscribeToResult(this, observable, undefined, i)); + } + } + }; + CombineLatestSubscriber.prototype.notifyComplete = function (unused) { + if ((this.active -= 1) === 0) { + this.destination.complete(); + } + }; + CombineLatestSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + var values = this.values; + var oldVal = values[outerIndex]; + var toRespond = !this.toRespond + ? 0 + : oldVal === NONE ? --this.toRespond : this.toRespond; + values[outerIndex] = innerValue; + if (toRespond === 0) { + if (this.resultSelector) { + this._tryResultSelector(values); + } + else { + this.destination.next(values.slice()); + } + } + }; + CombineLatestSubscriber.prototype._tryResultSelector = function (values) { + var result; + try { + result = this.resultSelector.apply(this, values); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return CombineLatestSubscriber; +}(OuterSubscriber_1.OuterSubscriber)); +exports.CombineLatestSubscriber = CombineLatestSubscriber; +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/combineLatest.js.map b/node_modules/rxjs/internal/observable/combineLatest.js.map new file mode 100644 index 00000000..9eafcd6d --- /dev/null +++ b/node_modules/rxjs/internal/observable/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../src/internal/observable/combineLatest.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/concat.d.ts b/node_modules/rxjs/internal/observable/concat.d.ts new file mode 100644 index 00000000..c5477743 --- /dev/null +++ b/node_modules/rxjs/internal/observable/concat.d.ts @@ -0,0 +1,26 @@ +import { Observable } from '../Observable'; +import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat>(v1: O1, scheduler: SchedulerLike): Observable>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +export declare function concat>(v1: O1): Observable>; +export declare function concat, O2 extends ObservableInput>(v1: O1, v2: O2): Observable | ObservedValueOf>; +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable | ObservedValueOf | ObservedValueOf>; +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +export declare function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +export declare function concat>(...observables: O[]): Observable>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat>(...observables: (O | SchedulerLike)[]): Observable>; +export declare function concat(...observables: ObservableInput[]): Observable; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export declare function concat(...observables: (ObservableInput | SchedulerLike)[]): Observable; diff --git a/node_modules/rxjs/internal/observable/concat.js b/node_modules/rxjs/internal/observable/concat.js new file mode 100644 index 00000000..2f1061b3 --- /dev/null +++ b/node_modules/rxjs/internal/observable/concat.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var of_1 = require("./of"); +var concatAll_1 = require("../operators/concatAll"); +function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return concatAll_1.concatAll()(of_1.of.apply(void 0, observables)); +} +exports.concat = concat; +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/concat.js.map b/node_modules/rxjs/internal/observable/concat.js.map new file mode 100644 index 00000000..4337db20 --- /dev/null +++ b/node_modules/rxjs/internal/observable/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../src/internal/observable/concat.ts"],"names":[],"mappings":";;AAGA,2BAA0B;AAE1B,oDAAmD;AA2InD,SAAgB,MAAM;IAAoC,qBAAwC;SAAxC,UAAwC,EAAxC,qBAAwC,EAAxC,IAAwC;QAAxC,gCAAwC;;IAChG,OAAO,qBAAS,EAAK,CAAC,OAAE,eAAI,WAAW,EAAE,CAAC;AAC5C,CAAC;AAFD,wBAEC"} diff --git a/node_modules/rxjs/internal/observable/defer.d.ts b/node_modules/rxjs/internal/observable/defer.d.ts new file mode 100644 index 00000000..67ca07e0 --- /dev/null +++ b/node_modules/rxjs/internal/observable/defer.d.ts @@ -0,0 +1,52 @@ +import { Observable } from '../Observable'; +import { ObservedValueOf, ObservableInput } from '../types'; +/** + * Creates an Observable that, on subscribe, calls an Observable factory to + * make an Observable for each new Observer. + * + * Creates the Observable lazily, that is, only when it + * is subscribed. + * + * + * ![](defer.png) + * + * `defer` allows you to create the Observable only when the Observer + * subscribes, and create a fresh Observable for each Observer. It waits until + * an Observer subscribes to it, and then it generates an Observable, + * typically with an Observable factory function. It does this afresh for each + * subscriber, so although each subscriber may think it is subscribing to the + * same Observable, in fact each subscriber gets its own individual + * Observable. + * + * ## Example + * ### Subscribe to either an Observable of clicks or an Observable of interval, at random + * ```ts + * import { defer, fromEvent, interval } from 'rxjs'; + * + * const clicksOrInterval = defer(function () { + * return Math.random() > 0.5 + * ? fromEvent(document, 'click') + * : interval(1000); + * }); + * clicksOrInterval.subscribe(x => console.log(x)); + * + * // Results in the following behavior: + * // If the result of Math.random() is greater than 0.5 it will listen + * // for clicks anywhere on the "document"; when document is clicked it + * // will log a MouseEvent object to the console. If the result is less + * // than 0.5 it will emit ascending numbers, one every second(1000ms). + * ``` + * + * @see {@link Observable} + * + * @param {function(): SubscribableOrPromise} observableFactory The Observable + * factory function to invoke for each Observer that subscribes to the output + * Observable. May also return a Promise, which will be converted on the fly + * to an Observable. + * @return {Observable} An Observable whose Observers' subscriptions trigger + * an invocation of the given Observable factory function. + * @static true + * @name defer + * @owner Observable + */ +export declare function defer | void>(observableFactory: () => R): Observable>; diff --git a/node_modules/rxjs/internal/observable/defer.js b/node_modules/rxjs/internal/observable/defer.js new file mode 100644 index 00000000..72785155 --- /dev/null +++ b/node_modules/rxjs/internal/observable/defer.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var from_1 = require("./from"); +var empty_1 = require("./empty"); +function defer(observableFactory) { + return new Observable_1.Observable(function (subscriber) { + var input; + try { + input = observableFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = input ? from_1.from(input) : empty_1.empty(); + return source.subscribe(subscriber); + }); +} +exports.defer = defer; +//# sourceMappingURL=defer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/defer.js.map b/node_modules/rxjs/internal/observable/defer.js.map new file mode 100644 index 00000000..8a635af4 --- /dev/null +++ b/node_modules/rxjs/internal/observable/defer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defer.js","sources":["../../src/internal/observable/defer.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,+BAA8B;AAC9B,iCAAgC;AAmDhC,SAAgB,KAAK,CAAwC,iBAA0B;IACrF,OAAO,IAAI,uBAAU,CAAqB,UAAA,UAAU;QAClD,IAAI,KAAe,CAAC;QACpB,IAAI;YACF,KAAK,GAAG,iBAAiB,EAAE,CAAC;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QACD,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAI,CAAC,KAA4C,CAAC,CAAC,CAAC,CAAC,aAAK,EAAE,CAAC;QACpF,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;AAZD,sBAYC"} diff --git a/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts b/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts new file mode 100644 index 00000000..a88eda73 --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/AjaxObservable.d.ts @@ -0,0 +1,151 @@ +import { Observable } from '../../Observable'; +import { Subscriber } from '../../Subscriber'; +import { TeardownLogic } from '../../types'; +export interface AjaxRequest { + url?: string; + body?: any; + user?: string; + async?: boolean; + method?: string; + headers?: Object; + timeout?: number; + password?: string; + hasContent?: boolean; + crossDomain?: boolean; + withCredentials?: boolean; + createXHR?: () => XMLHttpRequest; + progressSubscriber?: Subscriber; + responseType?: string; +} +export interface AjaxCreationMethod { + (urlOrRequest: string | AjaxRequest): Observable; + get(url: string, headers?: Object): Observable; + post(url: string, body?: any, headers?: Object): Observable; + put(url: string, body?: any, headers?: Object): Observable; + patch(url: string, body?: any, headers?: Object): Observable; + delete(url: string, headers?: Object): Observable; + getJSON(url: string, headers?: Object): Observable; +} +export declare function ajaxGet(url: string, headers?: Object): AjaxObservable; +export declare function ajaxPost(url: string, body?: any, headers?: Object): Observable; +export declare function ajaxDelete(url: string, headers?: Object): Observable; +export declare function ajaxPut(url: string, body?: any, headers?: Object): Observable; +export declare function ajaxPatch(url: string, body?: any, headers?: Object): Observable; +export declare function ajaxGetJSON(url: string, headers?: Object): Observable; +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export declare class AjaxObservable extends Observable { + /** + * Creates an observable for an Ajax request with either a request object with + * url, headers, etc or a string for a URL. + * + * ## Example + * ```ts + * import { ajax } from 'rxjs/ajax'; + * + * const source1 = ajax('/products'); + * const source2 = ajax({ url: 'products', method: 'GET' }); + * ``` + * + * @param {string|Object} request Can be one of the following: + * A string of the URL to make the Ajax call. + * An object with the following properties + * - url: URL of the request + * - body: The body of the request + * - method: Method of the request, such as GET, POST, PUT, PATCH, DELETE + * - async: Whether the request is async + * - headers: Optional headers + * - crossDomain: true if a cross domain request, else false + * - createXHR: a function to override if you need to use an alternate + * XMLHttpRequest implementation. + * - resultSelector: a function to use to alter the output value type of + * the Observable. Gets {@link AjaxResponse} as an argument. + * @return {Observable} An observable sequence containing the XMLHttpRequest. + * @static true + * @name ajax + * @owner Observable + * @nocollapse + */ + static create: AjaxCreationMethod; + private request; + constructor(urlOrRequest: string | AjaxRequest); + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): TeardownLogic; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class AjaxSubscriber extends Subscriber { + request: AjaxRequest; + private xhr; + private done; + constructor(destination: Subscriber, request: AjaxRequest); + next(e: Event): void; + private send; + private serializeBody; + private setHeaders; + private getHeader; + private setupEvents; + unsubscribe(): void; +} +/** + * A normalized AJAX response. + * + * @see {@link ajax} + * + * @class AjaxResponse + */ +export declare class AjaxResponse { + originalEvent: Event; + xhr: XMLHttpRequest; + request: AjaxRequest; + /** @type {number} The HTTP status code */ + status: number; + /** @type {string|ArrayBuffer|Document|object|any} The response data */ + response: any; + /** @type {string} The raw responseText */ + responseText: string; + /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */ + responseType: string; + constructor(originalEvent: Event, xhr: XMLHttpRequest, request: AjaxRequest); +} +export declare type AjaxErrorNames = 'AjaxError' | 'AjaxTimeoutError'; +/** + * A normalized AJAX error. + * + * @see {@link ajax} + * + * @class AjaxError + */ +export interface AjaxError extends Error { + /** @type {XMLHttpRequest} The XHR instance associated with the error */ + xhr: XMLHttpRequest; + /** @type {AjaxRequest} The AjaxRequest associated with the error */ + request: AjaxRequest; + /** @type {number} The HTTP status code */ + status: number; + /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */ + responseType: string; + /** @type {string|ArrayBuffer|Document|object|any} The response data */ + response: any; +} +export interface AjaxErrorCtor { + new (message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError; +} +export declare const AjaxError: AjaxErrorCtor; +export interface AjaxTimeoutError extends AjaxError { +} +export interface AjaxTimeoutErrorCtor { + new (xhr: XMLHttpRequest, request: AjaxRequest): AjaxTimeoutError; +} +/** + * @see {@link ajax} + * + * @class AjaxTimeoutError + */ +export declare const AjaxTimeoutError: AjaxTimeoutErrorCtor; diff --git a/node_modules/rxjs/internal/observable/dom/AjaxObservable.js b/node_modules/rxjs/internal/observable/dom/AjaxObservable.js new file mode 100644 index 00000000..432d777a --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/AjaxObservable.js @@ -0,0 +1,391 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var root_1 = require("../../util/root"); +var Observable_1 = require("../../Observable"); +var Subscriber_1 = require("../../Subscriber"); +var map_1 = require("../../operators/map"); +function getCORSRequest() { + if (root_1.root.XMLHttpRequest) { + return new root_1.root.XMLHttpRequest(); + } + else if (!!root_1.root.XDomainRequest) { + return new root_1.root.XDomainRequest(); + } + else { + throw new Error('CORS is not supported by your browser'); + } +} +function getXMLHttpRequest() { + if (root_1.root.XMLHttpRequest) { + return new root_1.root.XMLHttpRequest(); + } + else { + var progId = void 0; + try { + var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; + for (var i = 0; i < 3; i++) { + try { + progId = progIds[i]; + if (new root_1.root.ActiveXObject(progId)) { + break; + } + } + catch (e) { + } + } + return new root_1.root.ActiveXObject(progId); + } + catch (e) { + throw new Error('XMLHttpRequest is not supported by your browser'); + } + } +} +function ajaxGet(url, headers) { + if (headers === void 0) { headers = null; } + return new AjaxObservable({ method: 'GET', url: url, headers: headers }); +} +exports.ajaxGet = ajaxGet; +function ajaxPost(url, body, headers) { + return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers }); +} +exports.ajaxPost = ajaxPost; +function ajaxDelete(url, headers) { + return new AjaxObservable({ method: 'DELETE', url: url, headers: headers }); +} +exports.ajaxDelete = ajaxDelete; +function ajaxPut(url, body, headers) { + return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers }); +} +exports.ajaxPut = ajaxPut; +function ajaxPatch(url, body, headers) { + return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers }); +} +exports.ajaxPatch = ajaxPatch; +var mapResponse = map_1.map(function (x, index) { return x.response; }); +function ajaxGetJSON(url, headers) { + return mapResponse(new AjaxObservable({ + method: 'GET', + url: url, + responseType: 'json', + headers: headers + })); +} +exports.ajaxGetJSON = ajaxGetJSON; +var AjaxObservable = (function (_super) { + __extends(AjaxObservable, _super); + function AjaxObservable(urlOrRequest) { + var _this = _super.call(this) || this; + var request = { + async: true, + createXHR: function () { + return this.crossDomain ? getCORSRequest() : getXMLHttpRequest(); + }, + crossDomain: true, + withCredentials: false, + headers: {}, + method: 'GET', + responseType: 'json', + timeout: 0 + }; + if (typeof urlOrRequest === 'string') { + request.url = urlOrRequest; + } + else { + for (var prop in urlOrRequest) { + if (urlOrRequest.hasOwnProperty(prop)) { + request[prop] = urlOrRequest[prop]; + } + } + } + _this.request = request; + return _this; + } + AjaxObservable.prototype._subscribe = function (subscriber) { + return new AjaxSubscriber(subscriber, this.request); + }; + AjaxObservable.create = (function () { + var create = function (urlOrRequest) { + return new AjaxObservable(urlOrRequest); + }; + create.get = ajaxGet; + create.post = ajaxPost; + create.delete = ajaxDelete; + create.put = ajaxPut; + create.patch = ajaxPatch; + create.getJSON = ajaxGetJSON; + return create; + })(); + return AjaxObservable; +}(Observable_1.Observable)); +exports.AjaxObservable = AjaxObservable; +var AjaxSubscriber = (function (_super) { + __extends(AjaxSubscriber, _super); + function AjaxSubscriber(destination, request) { + var _this = _super.call(this, destination) || this; + _this.request = request; + _this.done = false; + var headers = request.headers = request.headers || {}; + if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) { + headers['X-Requested-With'] = 'XMLHttpRequest'; + } + var contentTypeHeader = _this.getHeader(headers, 'Content-Type'); + if (!contentTypeHeader && !(root_1.root.FormData && request.body instanceof root_1.root.FormData) && typeof request.body !== 'undefined') { + headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + } + request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type')); + _this.send(); + return _this; + } + AjaxSubscriber.prototype.next = function (e) { + this.done = true; + var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination; + var result; + try { + result = new AjaxResponse(e, xhr, request); + } + catch (err) { + return destination.error(err); + } + destination.next(result); + }; + AjaxSubscriber.prototype.send = function () { + var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body; + try { + var xhr = this.xhr = request.createXHR(); + this.setupEvents(xhr, request); + if (user) { + xhr.open(method, url, async, user, password); + } + else { + xhr.open(method, url, async); + } + if (async) { + xhr.timeout = request.timeout; + xhr.responseType = request.responseType; + } + if ('withCredentials' in xhr) { + xhr.withCredentials = !!request.withCredentials; + } + this.setHeaders(xhr, headers); + if (body) { + xhr.send(body); + } + else { + xhr.send(); + } + } + catch (err) { + this.error(err); + } + }; + AjaxSubscriber.prototype.serializeBody = function (body, contentType) { + if (!body || typeof body === 'string') { + return body; + } + else if (root_1.root.FormData && body instanceof root_1.root.FormData) { + return body; + } + if (contentType) { + var splitIndex = contentType.indexOf(';'); + if (splitIndex !== -1) { + contentType = contentType.substring(0, splitIndex); + } + } + switch (contentType) { + case 'application/x-www-form-urlencoded': + return Object.keys(body).map(function (key) { return encodeURIComponent(key) + "=" + encodeURIComponent(body[key]); }).join('&'); + case 'application/json': + return JSON.stringify(body); + default: + return body; + } + }; + AjaxSubscriber.prototype.setHeaders = function (xhr, headers) { + for (var key in headers) { + if (headers.hasOwnProperty(key)) { + xhr.setRequestHeader(key, headers[key]); + } + } + }; + AjaxSubscriber.prototype.getHeader = function (headers, headerName) { + for (var key in headers) { + if (key.toLowerCase() === headerName.toLowerCase()) { + return headers[key]; + } + } + return undefined; + }; + AjaxSubscriber.prototype.setupEvents = function (xhr, request) { + var progressSubscriber = request.progressSubscriber; + function xhrTimeout(e) { + var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request; + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error; + try { + error = new exports.AjaxTimeoutError(this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + xhr.ontimeout = xhrTimeout; + xhrTimeout.request = request; + xhrTimeout.subscriber = this; + xhrTimeout.progressSubscriber = progressSubscriber; + if (xhr.upload && 'withCredentials' in xhr) { + if (progressSubscriber) { + var xhrProgress_1; + xhrProgress_1 = function (e) { + var progressSubscriber = xhrProgress_1.progressSubscriber; + progressSubscriber.next(e); + }; + if (root_1.root.XDomainRequest) { + xhr.onprogress = xhrProgress_1; + } + else { + xhr.upload.onprogress = xhrProgress_1; + } + xhrProgress_1.progressSubscriber = progressSubscriber; + } + var xhrError_1; + xhrError_1 = function (e) { + var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request; + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error; + try { + error = new exports.AjaxError('ajax error', this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + }; + xhr.onerror = xhrError_1; + xhrError_1.request = request; + xhrError_1.subscriber = this; + xhrError_1.progressSubscriber = progressSubscriber; + } + function xhrReadyStateChange(e) { + return; + } + xhr.onreadystatechange = xhrReadyStateChange; + xhrReadyStateChange.subscriber = this; + xhrReadyStateChange.progressSubscriber = progressSubscriber; + xhrReadyStateChange.request = request; + function xhrLoad(e) { + var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request; + if (this.readyState === 4) { + var status_1 = this.status === 1223 ? 204 : this.status; + var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response); + if (status_1 === 0) { + status_1 = response ? 200 : 0; + } + if (status_1 < 400) { + if (progressSubscriber) { + progressSubscriber.complete(); + } + subscriber.next(e); + subscriber.complete(); + } + else { + if (progressSubscriber) { + progressSubscriber.error(e); + } + var error = void 0; + try { + error = new exports.AjaxError('ajax error ' + status_1, this, request); + } + catch (err) { + error = err; + } + subscriber.error(error); + } + } + } + xhr.onload = xhrLoad; + xhrLoad.subscriber = this; + xhrLoad.progressSubscriber = progressSubscriber; + xhrLoad.request = request; + }; + AjaxSubscriber.prototype.unsubscribe = function () { + var _a = this, done = _a.done, xhr = _a.xhr; + if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') { + xhr.abort(); + } + _super.prototype.unsubscribe.call(this); + }; + return AjaxSubscriber; +}(Subscriber_1.Subscriber)); +exports.AjaxSubscriber = AjaxSubscriber; +var AjaxResponse = (function () { + function AjaxResponse(originalEvent, xhr, request) { + this.originalEvent = originalEvent; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + } + return AjaxResponse; +}()); +exports.AjaxResponse = AjaxResponse; +var AjaxErrorImpl = (function () { + function AjaxErrorImpl(message, xhr, request) { + Error.call(this); + this.message = message; + this.name = 'AjaxError'; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + return this; + } + AjaxErrorImpl.prototype = Object.create(Error.prototype); + return AjaxErrorImpl; +})(); +exports.AjaxError = AjaxErrorImpl; +function parseJson(xhr) { + if ('response' in xhr) { + return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null'); + } + else { + return JSON.parse(xhr.responseText || 'null'); + } +} +function parseXhrResponse(responseType, xhr) { + switch (responseType) { + case 'json': + return parseJson(xhr); + case 'xml': + return xhr.responseXML; + case 'text': + default: + return ('response' in xhr) ? xhr.response : xhr.responseText; + } +} +function AjaxTimeoutErrorImpl(xhr, request) { + exports.AjaxError.call(this, 'ajax timeout', xhr, request); + this.name = 'AjaxTimeoutError'; + return this; +} +exports.AjaxTimeoutError = AjaxTimeoutErrorImpl; +//# sourceMappingURL=AjaxObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map new file mode 100644 index 00000000..3c5a93e3 --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/AjaxObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AjaxObservable.js","sources":["../../../src/internal/observable/dom/AjaxObservable.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts new file mode 100644 index 00000000..84cc6f14 --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts @@ -0,0 +1,170 @@ +import { Subject, AnonymousSubject } from '../../Subject'; +import { Subscriber } from '../../Subscriber'; +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { Operator } from '../../Operator'; +import { Observer, NextObserver } from '../../types'; +/** + * WebSocketSubjectConfig is a plain Object that allows us to make our + * webSocket configurable. + * + * Provides flexibility to {@link webSocket} + * + * It defines a set of properties to provide custom behavior in specific + * moments of the socket's lifecycle. When the connection opens we can + * use `openObserver`, when the connection is closed `closeObserver`, if we + * are interested in listening for data comming from server: `deserializer`, + * which allows us to customize the deserialization strategy of data before passing it + * to the socket client. By default `deserializer` is going to apply `JSON.parse` to each message comming + * from the Server. + * + * ## Example + * **deserializer**, the default for this property is `JSON.parse` but since there are just two options + * for incomming data, either be text or binarydata. We can apply a custom deserialization strategy + * or just simply skip the default behaviour. + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * //Apply any transformation of your choice. + * deserializer: ({data}) => data + * }); + * + * wsSubject.subscribe(console.log); + * + * // Let's suppose we have this on the Server: ws.send("This is a msg from the server") + * //output + * // + * // This is a msg from the server + * ``` + * + * **serializer** allows us tom apply custom serialization strategy but for the outgoing messages + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * //Apply any transformation of your choice. + * serializer: msg => JSON.stringify({channel: "webDevelopment", msg: msg}) + * }); + * + * wsSubject.subscribe(() => subject.next("msg to the server")); + * + * // Let's suppose we have this on the Server: ws.send("This is a msg from the server") + * //output + * // + * // {"channel":"webDevelopment","msg":"msg to the server"} + * ``` + * + * **closeObserver** allows us to set a custom error when an error raise up. + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * closeObserver: { + next(closeEvent) { + const customError = { code: 6666, reason: "Custom evil reason" } + console.log(`code: ${customError.code}, reason: ${customError.reason}`); + } + } + * }); + * + * //output + * // code: 6666, reason: Custom evil reason + * ``` + * + * **openObserver**, Let's say we need to make some kind of init task before sending/receiving msgs to the + * webSocket or sending notification that the connection was successful, this is when + * openObserver is usefull for. + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * openObserver: { + * next: () => { + * console.log('connetion ok'); + * } + * }, + * }); + * + * //output + * // connetion ok` + * ``` + * */ +export interface WebSocketSubjectConfig { + /** The url of the socket server to connect to */ + url: string; + /** The protocol to use to connect */ + protocol?: string | Array; + /** @deprecated use {@link deserializer} */ + resultSelector?: (e: MessageEvent) => T; + /** + * A serializer used to create messages from passed values before the + * messages are sent to the server. Defaults to JSON.stringify. + */ + serializer?: (value: T) => WebSocketMessage; + /** + * A deserializer used for messages arriving on the socket from the + * server. Defaults to JSON.parse. + */ + deserializer?: (e: MessageEvent) => T; + /** + * An Observer that watches when open events occur on the underlying web socket. + */ + openObserver?: NextObserver; + /** + * An Observer than watches when close events occur on the underlying webSocket + */ + closeObserver?: NextObserver; + /** + * An Observer that watches when a close is about to occur due to + * unsubscription. + */ + closingObserver?: NextObserver; + /** + * A WebSocket constructor to use. This is useful for situations like using a + * WebSocket impl in Node (WebSocket is a DOM API), or for mocking a WebSocket + * for testing purposes + */ + WebSocketCtor?: { + new (url: string, protocols?: string | string[]): WebSocket; + }; + /** Sets the `binaryType` property of the underlying WebSocket. */ + binaryType?: 'blob' | 'arraybuffer'; +} +export declare type WebSocketMessage = string | ArrayBuffer | Blob | ArrayBufferView; +export declare class WebSocketSubject extends AnonymousSubject { + private _config; + /** @deprecated This is an internal implementation detail, do not use. */ + _output: Subject; + private _socket; + constructor(urlConfigOrSource: string | WebSocketSubjectConfig | Observable, destination?: Observer); + lift(operator: Operator): WebSocketSubject; + private _resetState; + /** + * Creates an {@link Observable}, that when subscribed to, sends a message, + * defined by the `subMsg` function, to the server over the socket to begin a + * subscription to data over that socket. Once data arrives, the + * `messageFilter` argument will be used to select the appropriate data for + * the resulting Observable. When teardown occurs, either due to + * unsubscription, completion or error, a message defined by the `unsubMsg` + * argument will be send to the server over the WebSocketSubject. + * + * @param subMsg A function to generate the subscription message to be sent to + * the server. This will still be processed by the serializer in the + * WebSocketSubject's config. (Which defaults to JSON serialization) + * @param unsubMsg A function to generate the unsubscription message to be + * sent to the server at teardown. This will still be processed by the + * serializer in the WebSocketSubject's config. + * @param messageFilter A predicate for selecting the appropriate messages + * from the server for the output stream. + */ + multiplex(subMsg: () => any, unsubMsg: () => any, messageFilter: (value: T) => boolean): Observable; + private _connectSocket; + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; + unsubscribe(): void; +} diff --git a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js new file mode 100644 index 00000000..d3edd3c5 --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js @@ -0,0 +1,241 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../../Subject"); +var Subscriber_1 = require("../../Subscriber"); +var Observable_1 = require("../../Observable"); +var Subscription_1 = require("../../Subscription"); +var ReplaySubject_1 = require("../../ReplaySubject"); +var DEFAULT_WEBSOCKET_CONFIG = { + url: '', + deserializer: function (e) { return JSON.parse(e.data); }, + serializer: function (value) { return JSON.stringify(value); }, +}; +var WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }'; +var WebSocketSubject = (function (_super) { + __extends(WebSocketSubject, _super); + function WebSocketSubject(urlConfigOrSource, destination) { + var _this = _super.call(this) || this; + if (urlConfigOrSource instanceof Observable_1.Observable) { + _this.destination = destination; + _this.source = urlConfigOrSource; + } + else { + var config = _this._config = __assign({}, DEFAULT_WEBSOCKET_CONFIG); + _this._output = new Subject_1.Subject(); + if (typeof urlConfigOrSource === 'string') { + config.url = urlConfigOrSource; + } + else { + for (var key in urlConfigOrSource) { + if (urlConfigOrSource.hasOwnProperty(key)) { + config[key] = urlConfigOrSource[key]; + } + } + } + if (!config.WebSocketCtor && WebSocket) { + config.WebSocketCtor = WebSocket; + } + else if (!config.WebSocketCtor) { + throw new Error('no WebSocket constructor can be found'); + } + _this.destination = new ReplaySubject_1.ReplaySubject(); + } + return _this; + } + WebSocketSubject.prototype.lift = function (operator) { + var sock = new WebSocketSubject(this._config, this.destination); + sock.operator = operator; + sock.source = this; + return sock; + }; + WebSocketSubject.prototype._resetState = function () { + this._socket = null; + if (!this.source) { + this.destination = new ReplaySubject_1.ReplaySubject(); + } + this._output = new Subject_1.Subject(); + }; + WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) { + var self = this; + return new Observable_1.Observable(function (observer) { + try { + self.next(subMsg()); + } + catch (err) { + observer.error(err); + } + var subscription = self.subscribe(function (x) { + try { + if (messageFilter(x)) { + observer.next(x); + } + } + catch (err) { + observer.error(err); + } + }, function (err) { return observer.error(err); }, function () { return observer.complete(); }); + return function () { + try { + self.next(unsubMsg()); + } + catch (err) { + observer.error(err); + } + subscription.unsubscribe(); + }; + }); + }; + WebSocketSubject.prototype._connectSocket = function () { + var _this = this; + var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType; + var observer = this._output; + var socket = null; + try { + socket = protocol ? + new WebSocketCtor(url, protocol) : + new WebSocketCtor(url); + this._socket = socket; + if (binaryType) { + this._socket.binaryType = binaryType; + } + } + catch (e) { + observer.error(e); + return; + } + var subscription = new Subscription_1.Subscription(function () { + _this._socket = null; + if (socket && socket.readyState === 1) { + socket.close(); + } + }); + socket.onopen = function (e) { + var _socket = _this._socket; + if (!_socket) { + socket.close(); + _this._resetState(); + return; + } + var openObserver = _this._config.openObserver; + if (openObserver) { + openObserver.next(e); + } + var queue = _this.destination; + _this.destination = Subscriber_1.Subscriber.create(function (x) { + if (socket.readyState === 1) { + try { + var serializer = _this._config.serializer; + socket.send(serializer(x)); + } + catch (e) { + _this.destination.error(e); + } + } + }, function (e) { + var closingObserver = _this._config.closingObserver; + if (closingObserver) { + closingObserver.next(undefined); + } + if (e && e.code) { + socket.close(e.code, e.reason); + } + else { + observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT)); + } + _this._resetState(); + }, function () { + var closingObserver = _this._config.closingObserver; + if (closingObserver) { + closingObserver.next(undefined); + } + socket.close(); + _this._resetState(); + }); + if (queue && queue instanceof ReplaySubject_1.ReplaySubject) { + subscription.add(queue.subscribe(_this.destination)); + } + }; + socket.onerror = function (e) { + _this._resetState(); + observer.error(e); + }; + socket.onclose = function (e) { + _this._resetState(); + var closeObserver = _this._config.closeObserver; + if (closeObserver) { + closeObserver.next(e); + } + if (e.wasClean) { + observer.complete(); + } + else { + observer.error(e); + } + }; + socket.onmessage = function (e) { + try { + var deserializer = _this._config.deserializer; + observer.next(deserializer(e)); + } + catch (err) { + observer.error(err); + } + }; + }; + WebSocketSubject.prototype._subscribe = function (subscriber) { + var _this = this; + var source = this.source; + if (source) { + return source.subscribe(subscriber); + } + if (!this._socket) { + this._connectSocket(); + } + this._output.subscribe(subscriber); + subscriber.add(function () { + var _socket = _this._socket; + if (_this._output.observers.length === 0) { + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + _this._resetState(); + } + }); + return subscriber; + }; + WebSocketSubject.prototype.unsubscribe = function () { + var _socket = this._socket; + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + this._resetState(); + _super.prototype.unsubscribe.call(this); + }; + return WebSocketSubject; +}(Subject_1.AnonymousSubject)); +exports.WebSocketSubject = WebSocketSubject; +//# sourceMappingURL=WebSocketSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map new file mode 100644 index 00000000..da0ce6a2 --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/WebSocketSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WebSocketSubject.js","sources":["../../../src/internal/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/dom/ajax.d.ts b/node_modules/rxjs/internal/observable/dom/ajax.d.ts new file mode 100644 index 00000000..72e29f45 --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/ajax.d.ts @@ -0,0 +1,82 @@ +import { AjaxCreationMethod } from './AjaxObservable'; +/** + * There is an ajax operator on the Rx object. + * + * It creates an observable for an Ajax request with either a request object with + * url, headers, etc or a string for a URL. + * + * + * ## Using ajax() to fetch the response object that is being returned from API. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { map, catchError } from 'rxjs/operators'; + * import { of } from 'rxjs'; + * + * const obs$ = ajax(`https://api.github.com/users?per_page=5`).pipe( + * map(userResponse => console.log('users: ', userResponse)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + * + * ## Using ajax.getJSON() to fetch data from API. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { map, catchError } from 'rxjs/operators'; + * import { of } from 'rxjs'; + * + * const obs$ = ajax.getJSON(`https://api.github.com/users?per_page=5`).pipe( + * map(userResponse => console.log('users: ', userResponse)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + * + * ## Using ajax() with object as argument and method POST with a two seconds delay. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { of } from 'rxjs'; + * + * const users = ajax({ + * url: 'https://httpbin.org/delay/2', + * method: 'POST', + * headers: { + * 'Content-Type': 'application/json', + * 'rxjs-custom-header': 'Rxjs' + * }, + * body: { + * rxjs: 'Hello World!' + * } + * }).pipe( + * map(response => console.log('response: ', response)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + * + * ## Using ajax() to fetch. An error object that is being returned from the request. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { map, catchError } from 'rxjs/operators'; + * import { of } from 'rxjs'; + * + * const obs$ = ajax(`https://api.github.com/404`).pipe( + * map(userResponse => console.log('users: ', userResponse)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + */ +export declare const ajax: AjaxCreationMethod; diff --git a/node_modules/rxjs/internal/observable/dom/ajax.js b/node_modules/rxjs/internal/observable/dom/ajax.js new file mode 100644 index 00000000..b7399e13 --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/ajax.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var AjaxObservable_1 = require("./AjaxObservable"); +exports.ajax = (function () { return AjaxObservable_1.AjaxObservable.create; })(); +//# sourceMappingURL=ajax.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/dom/ajax.js.map b/node_modules/rxjs/internal/observable/dom/ajax.js.map new file mode 100644 index 00000000..8f4e299e --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/ajax.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.js","sources":["../../../src/internal/observable/dom/ajax.ts"],"names":[],"mappings":";;AAAA,mDAAwE;AAiF3D,QAAA,IAAI,GAAuB,CAAC,cAAM,OAAA,+BAAc,CAAC,MAAM,EAArB,CAAqB,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/internal/observable/dom/fetch.d.ts b/node_modules/rxjs/internal/observable/dom/fetch.d.ts new file mode 100644 index 00000000..8f37340c --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/fetch.d.ts @@ -0,0 +1,6 @@ +import { Observable } from '../../Observable'; +import { ObservableInput } from '../../types'; +export declare function fromFetch(input: string | Request, init: RequestInit & { + selector: (response: Response) => ObservableInput; +}): Observable; +export declare function fromFetch(input: string | Request, init?: RequestInit): Observable; diff --git a/node_modules/rxjs/internal/observable/dom/fetch.js b/node_modules/rxjs/internal/observable/dom/fetch.js new file mode 100644 index 00000000..ac7694bd --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/fetch.js @@ -0,0 +1,90 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) + t[p[i]] = s[p[i]]; + return t; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../../Observable"); +var Subscription_1 = require("../../Subscription"); +var from_1 = require("../../observable/from"); +function fromFetch(input, initWithSelector) { + if (initWithSelector === void 0) { initWithSelector = {}; } + var selector = initWithSelector.selector, init = __rest(initWithSelector, ["selector"]); + return new Observable_1.Observable(function (subscriber) { + var controller = new AbortController(); + var signal = controller.signal; + var abortable = true; + var unsubscribed = false; + var subscription = new Subscription_1.Subscription(); + subscription.add(function () { + unsubscribed = true; + if (abortable) { + controller.abort(); + } + }); + var perSubscriberInit; + if (init) { + if (init.signal) { + if (init.signal.aborted) { + controller.abort(); + } + else { + var outerSignal_1 = init.signal; + var outerSignalHandler_1 = function () { + if (!signal.aborted) { + controller.abort(); + } + }; + outerSignal_1.addEventListener('abort', outerSignalHandler_1); + subscription.add(function () { return outerSignal_1.removeEventListener('abort', outerSignalHandler_1); }); + } + } + perSubscriberInit = __assign({}, init, { signal: signal }); + } + else { + perSubscriberInit = { signal: signal }; + } + fetch(input, perSubscriberInit).then(function (response) { + if (selector) { + subscription.add(from_1.from(selector(response)).subscribe(function (value) { return subscriber.next(value); }, function (err) { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }, function () { + abortable = false; + subscriber.complete(); + })); + } + else { + abortable = false; + subscriber.next(response); + subscriber.complete(); + } + }).catch(function (err) { + abortable = false; + if (!unsubscribed) { + subscriber.error(err); + } + }); + return subscription; + }); +} +exports.fromFetch = fromFetch; +//# sourceMappingURL=fetch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/dom/fetch.js.map b/node_modules/rxjs/internal/observable/dom/fetch.js.map new file mode 100644 index 00000000..0a4b31be --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/fetch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fetch.js","sources":["../../../src/internal/observable/dom/fetch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,mDAAkD;AAClD,8CAA6C;AA8F7C,SAAgB,SAAS,CACvB,KAAuB,EACvB,gBAEM;IAFN,iCAAA,EAAA,qBAEM;IAEE,IAAA,oCAAQ,EAAE,6CAAO,CAAsB;IAC/C,OAAO,IAAI,uBAAU,CAAe,UAAA,UAAU;QAC5C,IAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC;YACf,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,SAAS,EAAE;gBACb,UAAU,CAAC,KAAK,EAAE,CAAC;aACpB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,iBAA8B,CAAC;QACnC,IAAI,IAAI,EAAE;YAER,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;oBACvB,UAAU,CAAC,KAAK,EAAE,CAAC;iBACpB;qBAAM;oBACL,IAAM,aAAW,GAAG,IAAI,CAAC,MAAM,CAAC;oBAChC,IAAM,oBAAkB,GAAG;wBACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BACnB,UAAU,CAAC,KAAK,EAAE,CAAC;yBACpB;oBACH,CAAC,CAAC;oBACF,aAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAkB,CAAC,CAAC;oBAC1D,YAAY,CAAC,GAAG,CAAC,cAAM,OAAA,aAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,oBAAkB,CAAC,EAA5D,CAA4D,CAAC,CAAC;iBACtF;aACF;YAGD,iBAAiB,gBAAQ,IAAI,IAAE,MAAM,QAAA,GAAE,CAAC;SACzC;aAAM;YACL,iBAAiB,GAAG,EAAE,MAAM,QAAA,EAAE,CAAC;SAChC;QAED,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ;YAC3C,IAAI,QAAQ,EAAE;gBACZ,YAAY,CAAC,GAAG,CAAC,WAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACjD,UAAA,KAAK,IAAI,OAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAtB,CAAsB,EAC/B,UAAA,GAAG;oBACD,SAAS,GAAG,KAAK,CAAC;oBAClB,IAAI,CAAC,YAAY,EAAE;wBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACvB;gBACH,CAAC,EACD;oBACE,SAAS,GAAG,KAAK,CAAC;oBAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC,CACF,CAAC,CAAC;aACJ;iBAAM;gBACL,SAAS,GAAG,KAAK,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,UAAU,CAAC,QAAQ,EAAE,CAAC;aACvB;QACH,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,GAAG;YACV,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,YAAY,EAAE;gBAEjB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AA5ED,8BA4EC"} diff --git a/node_modules/rxjs/internal/observable/dom/webSocket.d.ts b/node_modules/rxjs/internal/observable/dom/webSocket.d.ts new file mode 100644 index 00000000..e78db13d --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/webSocket.d.ts @@ -0,0 +1,153 @@ +import { WebSocketSubject, WebSocketSubjectConfig } from './WebSocketSubject'; +/** + * Wrapper around the w3c-compatible WebSocket object provided by the browser. + * + * {@link Subject} that communicates with a server via WebSocket + * + * `webSocket` is a factory function that produces a `WebSocketSubject`, + * which can be used to make WebSocket connection with an arbitrary endpoint. + * `webSocket` accepts as an argument either a string with url of WebSocket endpoint, or an + * {@link WebSocketSubjectConfig} object for providing additional configuration, as + * well as Observers for tracking lifecycle of WebSocket connection. + * + * When `WebSocketSubject` is subscribed, it attempts to make a socket connection, + * unless there is one made already. This means that many subscribers will always listen + * on the same socket, thus saving resources. If however, two instances are made of `WebSocketSubject`, + * even if these two were provided with the same url, they will attempt to make separate + * connections. When consumer of a `WebSocketSubject` unsubscribes, socket connection is closed, + * only if there are no more subscribers still listening. If after some time a consumer starts + * subscribing again, connection is reestablished. + * + * Once connection is made, whenever a new message comes from the server, `WebSocketSubject` will emit that + * message as a value in the stream. By default, a message from the socket is parsed via `JSON.parse`. If you + * want to customize how deserialization is handled (if at all), you can provide custom `resultSelector` + * function in {@link WebSocketSubject}. When connection closes, stream will complete, provided it happened without + * any errors. If at any point (starting, maintaining or closing a connection) there is an error, + * stream will also error with whatever WebSocket API has thrown. + * + * By virtue of being a {@link Subject}, `WebSocketSubject` allows for receiving and sending messages from the server. In order + * to communicate with a connected endpoint, use `next`, `error` and `complete` methods. `next` sends a value to the server, so bear in mind + * that this value will not be serialized beforehand. Because of This, `JSON.stringify` will have to be called on a value by hand, + * before calling `next` with a result. Note also that if at the moment of nexting value + * there is no socket connection (for example no one is subscribing), those values will be buffered, and sent when connection + * is finally established. `complete` method closes socket connection. `error` does the same, + * as well as notifying the server that something went wrong via status code and string with details of what happened. + * Since status code is required in WebSocket API, `WebSocketSubject` does not allow, like regular `Subject`, + * arbitrary values being passed to the `error` method. It needs to be called with an object that has `code` + * property with status code number and optional `reason` property with string describing details + * of an error. + * + * Calling `next` does not affect subscribers of `WebSocketSubject` - they have no + * information that something was sent to the server (unless of course the server + * responds somehow to a message). On the other hand, since calling `complete` triggers + * an attempt to close socket connection. If that connection is closed without any errors, stream will + * complete, thus notifying all subscribers. And since calling `error` closes + * socket connection as well, just with a different status code for the server, if closing itself proceeds + * without errors, subscribed Observable will not error, as one might expect, but complete as usual. In both cases + * (calling `complete` or `error`), if process of closing socket connection results in some errors, *then* stream + * will error. + * + * **Multiplexing** + * + * `WebSocketSubject` has an additional operator, not found in other Subjects. It is called `multiplex` and it is + * used to simulate opening several socket connections, while in reality maintaining only one. + * For example, an application has both chat panel and real-time notifications about sport news. Since these are two distinct functions, + * it would make sense to have two separate connections for each. Perhaps there could even be two separate services with WebSocket + * endpoints, running on separate machines with only GUI combining them together. Having a socket connection + * for each functionality could become too resource expensive. It is a common pattern to have single + * WebSocket endpoint that acts as a gateway for the other services (in this case chat and sport news services). + * Even though there is a single connection in a client app, having the ability to manipulate streams as if it + * were two separate sockets is desirable. This eliminates manually registering and unregistering in a gateway for + * given service and filter out messages of interest. This is exactly what `multiplex` method is for. + * + * Method accepts three parameters. First two are functions returning subscription and unsubscription messages + * respectively. These are messages that will be sent to the server, whenever consumer of resulting Observable + * subscribes and unsubscribes. Server can use them to verify that some kind of messages should start or stop + * being forwarded to the client. In case of the above example application, after getting subscription message with proper identifier, + * gateway server can decide that it should connect to real sport news service and start forwarding messages from it. + * Note that both messages will be sent as returned by the functions, they are by default serialized using JSON.stringify, just + * as messages pushed via `next`. Also bear in mind that these messages will be sent on *every* subscription and + * unsubscription. This is potentially dangerous, because one consumer of an Observable may unsubscribe and the server + * might stop sending messages, since it got unsubscription message. This needs to be handled + * on the server or using {@link publish} on a Observable returned from 'multiplex'. + * + * Last argument to `multiplex` is a `messageFilter` function which should return a boolean. It is used to filter out messages + * sent by the server to only those that belong to simulated WebSocket stream. For example, server might mark these + * messages with some kind of string identifier on a message object and `messageFilter` would return `true` + * if there is such identifier on an object emitted by the socket. Messages which returns `false` in `messageFilter` are simply skipped, + * and are not passed down the stream. + * + * Return value of `multiplex` is an Observable with messages incoming from emulated socket connection. Note that this + * is not a `WebSocketSubject`, so calling `next` or `multiplex` again will fail. For pushing values to the + * server, use root `WebSocketSubject`. + * + * ### Examples + * #### Listening for messages from the server + * ```ts + * import { webSocket } from "rxjs/webSocket"; + * const subject = webSocket("ws://localhost:8081"); + * + * subject.subscribe( + * msg => console.log('message received: ' + msg), // Called whenever there is a message from the server. + * err => console.log(err), // Called if at any point WebSocket API signals some kind of error. + * () => console.log('complete') // Called when connection is closed (for whatever reason). + * ); + * ``` + * + * #### Pushing messages to the server + * ```ts + * import { webSocket } from "rxjs/webSocket"; + * const subject = webSocket('ws://localhost:8081'); + * + * subject.subscribe(); + * // Note that at least one consumer has to subscribe to the created subject - otherwise "nexted" values will be just buffered and not sent, + * // since no connection was established! + * + * subject.next({message: 'some message'}); + * // This will send a message to the server once a connection is made. Remember value is serialized with JSON.stringify by default! + * + * subject.complete(); // Closes the connection. + * + * subject.error({code: 4000, reason: 'I think our app just broke!'}); + * // Also closes the connection, but let's the server know that this closing is caused by some error. + * ``` + * + * #### Multiplexing WebSocket + * ```ts + * import { webSocket } from "rxjs/webSocket"; + * const subject = webSocket('ws://localhost:8081'); + * + * const observableA = subject.multiplex( + * () => ({subscribe: 'A'}), // When server gets this message, it will start sending messages for 'A'... + * () => ({unsubscribe: 'A'}), // ...and when gets this one, it will stop. + * message => message.type === 'A' // If the function returns `true` message is passed down the stream. Skipped if the function returns false. + * ); + * + * const observableB = subject.multiplex( // And the same goes for 'B'. + * () => ({subscribe: 'B'}), + * () => ({unsubscribe: 'B'}), + * message => message.type === 'B' + * ); + * + * const subA = observableA.subscribe(messageForA => console.log(messageForA)); + * // At this moment WebSocket connection is established. Server gets '{"subscribe": "A"}' message and starts sending messages for 'A', + * // which we log here. + * + * const subB = observableB.subscribe(messageForB => console.log(messageForB)); + * // Since we already have a connection, we just send '{"subscribe": "B"}' message to the server. It starts sending messages for 'B', + * // which we log here. + * + * subB.unsubscribe(); + * // Message '{"unsubscribe": "B"}' is sent to the server, which stops sending 'B' messages. + * + * subA.unsubscribe(); + * // Message '{"unsubscribe": "A"}' makes the server stop sending messages for 'A'. Since there is no more subscribers to root Subject, + * // socket connection closes. + * ``` + * + * + * @param {string|WebSocketSubjectConfig} urlConfigOrSource The WebSocket endpoint as an url or an object with + * configuration and additional Observers. + * @return {WebSocketSubject} Subject which allows to both send and receive messages via WebSocket connection. + */ +export declare function webSocket(urlConfigOrSource: string | WebSocketSubjectConfig): WebSocketSubject; diff --git a/node_modules/rxjs/internal/observable/dom/webSocket.js b/node_modules/rxjs/internal/observable/dom/webSocket.js new file mode 100644 index 00000000..714cf95c --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/webSocket.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var WebSocketSubject_1 = require("./WebSocketSubject"); +function webSocket(urlConfigOrSource) { + return new WebSocketSubject_1.WebSocketSubject(urlConfigOrSource); +} +exports.webSocket = webSocket; +//# sourceMappingURL=webSocket.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/dom/webSocket.js.map b/node_modules/rxjs/internal/observable/dom/webSocket.js.map new file mode 100644 index 00000000..1d0f249f --- /dev/null +++ b/node_modules/rxjs/internal/observable/dom/webSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webSocket.js","sources":["../../../src/internal/observable/dom/webSocket.ts"],"names":[],"mappings":";;AAAA,uDAA8E;AAyJ9E,SAAgB,SAAS,CAAI,iBAAqD;IAChF,OAAO,IAAI,mCAAgB,CAAI,iBAAiB,CAAC,CAAC;AACpD,CAAC;AAFD,8BAEC"} diff --git a/node_modules/rxjs/internal/observable/empty.d.ts b/node_modules/rxjs/internal/observable/empty.d.ts new file mode 100644 index 00000000..0a370e94 --- /dev/null +++ b/node_modules/rxjs/internal/observable/empty.d.ts @@ -0,0 +1,60 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +/** + * The same Observable instance returned by any call to {@link empty} without a + * `scheduler`. It is preferrable to use this over `empty()`. + */ +export declare const EMPTY: Observable; +/** + * Creates an Observable that emits no items to the Observer and immediately + * emits a complete notification. + * + * Just emits 'complete', and nothing else. + * + * + * ![](empty.png) + * + * This static operator is useful for creating a simple Observable that only + * emits the complete notification. It can be used for composing with other + * Observables, such as in a {@link mergeMap}. + * + * ## Examples + * ### Emit the number 7, then complete + * ```ts + * import { empty } from 'rxjs'; + * import { startWith } from 'rxjs/operators'; + * + * const result = empty().pipe(startWith(7)); + * result.subscribe(x => console.log(x)); + * ``` + * + * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c' + * ```ts + * import { empty, interval, of } from 'rxjs'; + * import { mergeMap } from 'rxjs/operators'; + * + * const interval$ = interval(1000); + * const result = interval$.pipe( + * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()), + * ); + * result.subscribe(x => console.log(x)); + * + * // Results in the following to the console: + * // x is equal to the count on the interval eg(0,1,2,3,...) + * // x will occur every 1000ms + * // if x % 2 is equal to 1 print abc + * // if x % 2 is not equal to 1 nothing will be output + * ``` + * + * @see {@link Observable} + * @see {@link never} + * @see {@link of} + * @see {@link throwError} + * + * @param scheduler A {@link SchedulerLike} to use for scheduling + * the emission of the complete notification. + * @return An "empty" Observable: emits only the complete + * notification. + * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`) + */ +export declare function empty(scheduler?: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/observable/empty.js b/node_modules/rxjs/internal/observable/empty.js new file mode 100644 index 00000000..cfa90b64 --- /dev/null +++ b/node_modules/rxjs/internal/observable/empty.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +exports.EMPTY = new Observable_1.Observable(function (subscriber) { return subscriber.complete(); }); +function empty(scheduler) { + return scheduler ? emptyScheduled(scheduler) : exports.EMPTY; +} +exports.empty = empty; +function emptyScheduled(scheduler) { + return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); +} +//# sourceMappingURL=empty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/empty.js.map b/node_modules/rxjs/internal/observable/empty.js.map new file mode 100644 index 00000000..7192f67a --- /dev/null +++ b/node_modules/rxjs/internal/observable/empty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"empty.js","sources":["../../src/internal/observable/empty.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAO9B,QAAA,KAAK,GAAG,IAAI,uBAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC;AAsDhF,SAAgB,KAAK,CAAC,SAAyB;IAC7C,OAAO,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC;AACvD,CAAC;AAFD,sBAEC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO,IAAI,uBAAU,CAAQ,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,EAA/C,CAA+C,CAAC,CAAC;AAC9F,CAAC"} diff --git a/node_modules/rxjs/internal/observable/forkJoin.d.ts b/node_modules/rxjs/internal/observable/forkJoin.d.ts new file mode 100644 index 00000000..176490ab --- /dev/null +++ b/node_modules/rxjs/internal/observable/forkJoin.d.ts @@ -0,0 +1,29 @@ +import { Observable } from '../Observable'; +import { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types'; +/** @deprecated Use the version that takes an array of Observables instead */ +export declare function forkJoin(v1: SubscribableOrPromise): Observable<[T]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export declare function forkJoin(v1: ObservableInput, v2: ObservableInput): Observable<[T, T2]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export declare function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable<[T, T2, T3]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export declare function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable<[T, T2, T3, T4]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export declare function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable<[T, T2, T3, T4, T5]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export declare function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable<[T, T2, T3, T4, T5, T6]>; +export declare function forkJoin(sources: [ObservableInput]): Observable<[A]>; +export declare function forkJoin(sources: [ObservableInput, ObservableInput]): Observable<[A, B]>; +export declare function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C]>; +export declare function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D]>; +export declare function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E]>; +export declare function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E, F]>; +export declare function forkJoin[]>(sources: A): Observable[]>; +export declare function forkJoin(sourcesObject: {}): Observable; +export declare function forkJoin(sourcesObject: T): Observable<{ + [K in keyof T]: ObservedValueOf; +}>; +/** @deprecated resultSelector is deprecated, pipe to map instead */ +export declare function forkJoin(...args: Array | Function>): Observable; +/** @deprecated Use the version that takes an array of Observables instead */ +export declare function forkJoin(...sources: ObservableInput[]): Observable; diff --git a/node_modules/rxjs/internal/observable/forkJoin.js b/node_modules/rxjs/internal/observable/forkJoin.js new file mode 100644 index 00000000..40870ad6 --- /dev/null +++ b/node_modules/rxjs/internal/observable/forkJoin.js @@ -0,0 +1,71 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var isArray_1 = require("../util/isArray"); +var map_1 = require("../operators/map"); +var isObject_1 = require("../util/isObject"); +var from_1 = require("./from"); +function forkJoin() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 1) { + var first_1 = sources[0]; + if (isArray_1.isArray(first_1)) { + return forkJoinInternal(first_1, null); + } + if (isObject_1.isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) { + var keys = Object.keys(first_1); + return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys); + } + } + if (typeof sources[sources.length - 1] === 'function') { + var resultSelector_1 = sources.pop(); + sources = (sources.length === 1 && isArray_1.isArray(sources[0])) ? sources[0] : sources; + return forkJoinInternal(sources, null).pipe(map_1.map(function (args) { return resultSelector_1.apply(void 0, args); })); + } + return forkJoinInternal(sources, null); +} +exports.forkJoin = forkJoin; +function forkJoinInternal(sources, keys) { + return new Observable_1.Observable(function (subscriber) { + var len = sources.length; + if (len === 0) { + subscriber.complete(); + return; + } + var values = new Array(len); + var completed = 0; + var emitted = 0; + var _loop_1 = function (i) { + var source = from_1.from(sources[i]); + var hasValue = false; + subscriber.add(source.subscribe({ + next: function (value) { + if (!hasValue) { + hasValue = true; + emitted++; + } + values[i] = value; + }, + error: function (err) { return subscriber.error(err); }, + complete: function () { + completed++; + if (completed === len || !hasValue) { + if (emitted === len) { + subscriber.next(keys ? + keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) : + values); + } + subscriber.complete(); + } + } + })); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); + } + }); +} +//# sourceMappingURL=forkJoin.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/forkJoin.js.map b/node_modules/rxjs/internal/observable/forkJoin.js.map new file mode 100644 index 00000000..8d99a74a --- /dev/null +++ b/node_modules/rxjs/internal/observable/forkJoin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forkJoin.js","sources":["../../src/internal/observable/forkJoin.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/from.d.ts b/node_modules/rxjs/internal/observable/from.d.ts new file mode 100644 index 00000000..8691d02a --- /dev/null +++ b/node_modules/rxjs/internal/observable/from.d.ts @@ -0,0 +1,5 @@ +import { Observable } from '../Observable'; +import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; +export declare function from>(input: O): Observable>; +/** @deprecated use {@link scheduled} instead. */ +export declare function from>(input: O, scheduler: SchedulerLike): Observable>; diff --git a/node_modules/rxjs/internal/observable/from.js b/node_modules/rxjs/internal/observable/from.js new file mode 100644 index 00000000..4f6069f6 --- /dev/null +++ b/node_modules/rxjs/internal/observable/from.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var subscribeTo_1 = require("../util/subscribeTo"); +var scheduled_1 = require("../scheduled/scheduled"); +function from(input, scheduler) { + if (!scheduler) { + if (input instanceof Observable_1.Observable) { + return input; + } + return new Observable_1.Observable(subscribeTo_1.subscribeTo(input)); + } + else { + return scheduled_1.scheduled(input, scheduler); + } +} +exports.from = from; +//# sourceMappingURL=from.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/from.js.map b/node_modules/rxjs/internal/observable/from.js.map new file mode 100644 index 00000000..effad4dc --- /dev/null +++ b/node_modules/rxjs/internal/observable/from.js.map @@ -0,0 +1 @@ +{"version":3,"file":"from.js","sources":["../../src/internal/observable/from.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,mDAAkD;AAElD,oDAAmD;AAyGnD,SAAgB,IAAI,CAAI,KAAyB,EAAE,SAAyB;IAC1E,IAAI,CAAC,SAAS,EAAE;QACd,IAAI,KAAK,YAAY,uBAAU,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,uBAAU,CAAI,yBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,qBAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACpC;AACH,CAAC;AATD,oBASC"} diff --git a/node_modules/rxjs/internal/observable/fromArray.d.ts b/node_modules/rxjs/internal/observable/fromArray.d.ts new file mode 100644 index 00000000..76b4ffea --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromArray.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +export declare function fromArray(input: ArrayLike, scheduler?: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/observable/fromArray.js b/node_modules/rxjs/internal/observable/fromArray.js new file mode 100644 index 00000000..545e5874 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromArray.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var subscribeToArray_1 = require("../util/subscribeToArray"); +var scheduleArray_1 = require("../scheduled/scheduleArray"); +function fromArray(input, scheduler) { + if (!scheduler) { + return new Observable_1.Observable(subscribeToArray_1.subscribeToArray(input)); + } + else { + return scheduleArray_1.scheduleArray(input, scheduler); + } +} +exports.fromArray = fromArray; +//# sourceMappingURL=fromArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/fromArray.js.map b/node_modules/rxjs/internal/observable/fromArray.js.map new file mode 100644 index 00000000..a1dde848 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromArray.js","sources":["../../src/internal/observable/fromArray.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,6DAA4D;AAC5D,4DAA2D;AAE3D,SAAgB,SAAS,CAAI,KAAmB,EAAE,SAAyB;IACzE,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAI,mCAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACnD;SAAM;QACL,OAAO,6BAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KACxC;AACH,CAAC;AAND,8BAMC"} diff --git a/node_modules/rxjs/internal/observable/fromEvent.d.ts b/node_modules/rxjs/internal/observable/fromEvent.d.ts new file mode 100644 index 00000000..a0933588 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromEvent.d.ts @@ -0,0 +1,35 @@ +import { Observable } from '../Observable'; +export interface NodeStyleEventEmitter { + addListener: (eventName: string | symbol, handler: NodeEventHandler) => this; + removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this; +} +export declare type NodeEventHandler = (...args: any[]) => void; +export interface NodeCompatibleEventEmitter { + addListener: (eventName: string, handler: NodeEventHandler) => void | {}; + removeListener: (eventName: string, handler: NodeEventHandler) => void | {}; +} +export interface JQueryStyleEventEmitter { + on: (eventName: string, handler: Function) => void; + off: (eventName: string, handler: Function) => void; +} +export interface HasEventTargetAddRemove { + addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void; +} +export declare type EventTargetLike = HasEventTargetAddRemove | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter; +export declare type FromEventTarget = EventTargetLike | ArrayLike>; +export interface EventListenerOptions { + capture?: boolean; + passive?: boolean; + once?: boolean; +} +export interface AddEventListenerOptions extends EventListenerOptions { + once?: boolean; + passive?: boolean; +} +export declare function fromEvent(target: FromEventTarget, eventName: string): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function fromEvent(target: FromEventTarget, eventName: string, resultSelector: (...args: any[]) => T): Observable; +export declare function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable; diff --git a/node_modules/rxjs/internal/observable/fromEvent.js b/node_modules/rxjs/internal/observable/fromEvent.js new file mode 100644 index 00000000..5355c436 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromEvent.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var isArray_1 = require("../util/isArray"); +var isFunction_1 = require("../util/isFunction"); +var map_1 = require("../operators/map"); +var toString = (function () { return Object.prototype.toString; })(); +function fromEvent(target, eventName, options, resultSelector) { + if (isFunction_1.isFunction(options)) { + resultSelector = options; + options = undefined; + } + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new Observable_1.Observable(function (subscriber) { + function handler(e) { + if (arguments.length > 1) { + subscriber.next(Array.prototype.slice.call(arguments)); + } + else { + subscriber.next(e); + } + } + setupSubscription(target, eventName, handler, subscriber, options); + }); +} +exports.fromEvent = fromEvent; +function setupSubscription(sourceObj, eventName, handler, subscriber, options) { + var unsubscribe; + if (isEventTarget(sourceObj)) { + var source_1 = sourceObj; + sourceObj.addEventListener(eventName, handler, options); + unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); }; + } + else if (isJQueryStyleEventEmitter(sourceObj)) { + var source_2 = sourceObj; + sourceObj.on(eventName, handler); + unsubscribe = function () { return source_2.off(eventName, handler); }; + } + else if (isNodeStyleEventEmitter(sourceObj)) { + var source_3 = sourceObj; + sourceObj.addListener(eventName, handler); + unsubscribe = function () { return source_3.removeListener(eventName, handler); }; + } + else if (sourceObj && sourceObj.length) { + for (var i = 0, len = sourceObj.length; i < len; i++) { + setupSubscription(sourceObj[i], eventName, handler, subscriber, options); + } + } + else { + throw new TypeError('Invalid event target'); + } + subscriber.add(unsubscribe); +} +function isNodeStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; +} +function isJQueryStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; +} +function isEventTarget(sourceObj) { + return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; +} +//# sourceMappingURL=fromEvent.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/fromEvent.js.map b/node_modules/rxjs/internal/observable/fromEvent.js.map new file mode 100644 index 00000000..9e948ef4 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromEvent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEvent.js","sources":["../../src/internal/observable/fromEvent.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/fromEventPattern.d.ts b/node_modules/rxjs/internal/observable/fromEventPattern.d.ts new file mode 100644 index 00000000..e8b82476 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromEventPattern.d.ts @@ -0,0 +1,5 @@ +import { Observable } from '../Observable'; +import { NodeEventHandler } from './fromEvent'; +export declare function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export declare function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable; diff --git a/node_modules/rxjs/internal/observable/fromEventPattern.js b/node_modules/rxjs/internal/observable/fromEventPattern.js new file mode 100644 index 00000000..6cb21b1d --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromEventPattern.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var isArray_1 = require("../util/isArray"); +var isFunction_1 = require("../util/isFunction"); +var map_1 = require("../operators/map"); +function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(map_1.map(function (args) { return isArray_1.isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + } + return new Observable_1.Observable(function (subscriber) { + var handler = function () { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }; + var retValue; + try { + retValue = addHandler(handler); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!isFunction_1.isFunction(removeHandler)) { + return undefined; + } + return function () { return removeHandler(handler, retValue); }; + }); +} +exports.fromEventPattern = fromEventPattern; +//# sourceMappingURL=fromEventPattern.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/fromEventPattern.js.map b/node_modules/rxjs/internal/observable/fromEventPattern.js.map new file mode 100644 index 00000000..f49bcb0d --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromEventPattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEventPattern.js","sources":["../../src/internal/observable/fromEventPattern.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,2CAA0C;AAC1C,iDAAgD;AAEhD,wCAAuC;AAwIvC,SAAgB,gBAAgB,CAAI,UAA8C,EAC9C,aAAiE,EACjE,cAAsC;IAExE,IAAI,cAAc,EAAE;QAElB,OAAO,gBAAgB,CAAI,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CACxD,SAAG,CAAC,UAAA,IAAI,IAAI,OAAA,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,eAAI,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAA9D,CAA8D,CAAC,CAC5E,CAAC;KACH;IAED,OAAO,IAAI,uBAAU,CAAU,UAAA,UAAU;QACvC,IAAM,OAAO,GAAG;YAAC,WAAS;iBAAT,UAAS,EAAT,qBAAS,EAAT,IAAS;gBAAT,sBAAS;;YAAK,OAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAA1C,CAA0C,CAAC;QAE1E,IAAI,QAAa,CAAC;QAClB,IAAI;YACF,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,uBAAU,CAAC,aAAa,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,cAAM,OAAA,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAhC,CAAgC,CAAE;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AA5BD,4CA4BC"} diff --git a/node_modules/rxjs/internal/observable/fromIterable.d.ts b/node_modules/rxjs/internal/observable/fromIterable.d.ts new file mode 100644 index 00000000..f36d19a1 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromIterable.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +export declare function fromIterable(input: Iterable, scheduler?: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/observable/fromIterable.js b/node_modules/rxjs/internal/observable/fromIterable.js new file mode 100644 index 00000000..8d319a47 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromIterable.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var subscribeToIterable_1 = require("../util/subscribeToIterable"); +var scheduleIterable_1 = require("../scheduled/scheduleIterable"); +function fromIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + if (!scheduler) { + return new Observable_1.Observable(subscribeToIterable_1.subscribeToIterable(input)); + } + else { + return scheduleIterable_1.scheduleIterable(input, scheduler); + } +} +exports.fromIterable = fromIterable; +//# sourceMappingURL=fromIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/fromIterable.js.map b/node_modules/rxjs/internal/observable/fromIterable.js.map new file mode 100644 index 00000000..59e88a44 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromIterable.js","sources":["../../src/internal/observable/fromIterable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,mEAAkE;AAClE,kEAAiE;AAEjE,SAAgB,YAAY,CAAI,KAAkB,EAAE,SAAyB;IAC3E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAI,yCAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,mCAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC3C;AACH,CAAC;AATD,oCASC"} diff --git a/node_modules/rxjs/internal/observable/fromPromise.d.ts b/node_modules/rxjs/internal/observable/fromPromise.d.ts new file mode 100644 index 00000000..2220b091 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromPromise.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +export declare function fromPromise(input: PromiseLike, scheduler?: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/observable/fromPromise.js b/node_modules/rxjs/internal/observable/fromPromise.js new file mode 100644 index 00000000..2d15d4ca --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromPromise.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var subscribeToPromise_1 = require("../util/subscribeToPromise"); +var schedulePromise_1 = require("../scheduled/schedulePromise"); +function fromPromise(input, scheduler) { + if (!scheduler) { + return new Observable_1.Observable(subscribeToPromise_1.subscribeToPromise(input)); + } + else { + return schedulePromise_1.schedulePromise(input, scheduler); + } +} +exports.fromPromise = fromPromise; +//# sourceMappingURL=fromPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/fromPromise.js.map b/node_modules/rxjs/internal/observable/fromPromise.js.map new file mode 100644 index 00000000..c4a2fdf9 --- /dev/null +++ b/node_modules/rxjs/internal/observable/fromPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromPromise.js","sources":["../../src/internal/observable/fromPromise.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,iEAAgE;AAChE,gEAA+D;AAE/D,SAAgB,WAAW,CAAI,KAAqB,EAAE,SAAyB;IAC7E,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAI,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;SAAM;QACL,OAAO,iCAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC1C;AACH,CAAC;AAND,kCAMC"} diff --git a/node_modules/rxjs/internal/observable/generate.d.ts b/node_modules/rxjs/internal/observable/generate.d.ts new file mode 100644 index 00000000..301c39d7 --- /dev/null +++ b/node_modules/rxjs/internal/observable/generate.d.ts @@ -0,0 +1,231 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +export declare type ConditionFunc = (state: S) => boolean; +export declare type IterateFunc = (state: S) => S; +export declare type ResultFunc = (state: S) => T; +export interface GenerateBaseOptions { + /** + * Initial state. + */ + initialState: S; + /** + * Condition function that accepts state and returns boolean. + * When it returns false, the generator stops. + * If not specified, a generator never stops. + */ + condition?: ConditionFunc; + /** + * Iterate function that accepts state and returns new state. + */ + iterate: IterateFunc; + /** + * SchedulerLike to use for generation process. + * By default, a generator starts immediately. + */ + scheduler?: SchedulerLike; +} +export interface GenerateOptions extends GenerateBaseOptions { + /** + * Result selection function that accepts state and returns a value to emit. + */ + resultSelector: ResultFunc; +} +/** + * Generates an observable sequence by running a state-driven loop + * producing the sequence's elements, using the specified scheduler + * to send out observer messages. + * + * ![](generate.png) + * + * @example Produces sequence of 0, 1, 2, ... 9, then completes. + * const res = generate(0, x => x < 10, x => x + 1, x => x); + * + * @example Using asap scheduler, produces sequence of 2, 3, 5, then completes. + * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap); + * + * @see {@link from} + * @see {@link Observable} + * + * @param {S} initialState Initial state. + * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false). + * @param {function (state: S): S} iterate Iteration step function. + * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated) + * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately. + * @returns {Observable} The generated sequence. + */ +export declare function generate(initialState: S, condition: ConditionFunc, iterate: IterateFunc, resultSelector: ResultFunc, scheduler?: SchedulerLike): Observable; +/** + * Generates an Observable by running a state-driven loop + * that emits an element on each iteration. + * + * Use it instead of nexting values in a for loop. + * + * + * + * `generate` allows you to create stream of values generated with a loop very similar to + * traditional for loop. First argument of `generate` is a beginning value. Second argument + * is a function that accepts this value and tests if some condition still holds. If it does, + * loop continues, if not, it stops. Third value is a function which takes previously defined + * value and modifies it in some way on each iteration. Note how these three parameters + * are direct equivalents of three expressions in regular for loop: first expression + * initializes some state (for example numeric index), second tests if loop can make next + * iteration (for example if index is lower than 10) and third states how defined value + * will be modified on every step (index will be incremented by one). + * + * Return value of a `generate` operator is an Observable that on each loop iteration + * emits a value. First, condition function is ran. If it returned true, Observable + * emits currently stored value (initial value at the first iteration) and then updates + * that value with iterate function. If at some point condition returned false, Observable + * completes at that moment. + * + * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you + * to immediately map value that would normally be emitted by an Observable. + * + * If you find three anonymous functions in `generate` call hard to read, you can provide + * single object to the operator instead. That object has properties: `initialState`, + * `condition`, `iterate` and `resultSelector`, which should have respective values that you + * would normally pass to `generate`. `resultSelector` is still optional, but that form + * of calling `generate` allows you to omit `condition` as well. If you omit it, that means + * condition always holds, so output Observable will never complete. + * + * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call, + * scheduler simply comes as a last argument (no matter if there is resultSelector + * function or not). In case of single-parameter call, you can provide it as a + * `scheduler` property on object passed to the operator. In both cases scheduler decides when + * next iteration of the loop will happen and therefore when next value will be emitted + * by the Observable. For example to ensure that each value is pushed to the observer + * on separate task in event loop, you could use `async` scheduler. Note that + * by default (when no scheduler is passed) values are simply emitted synchronously. + * + * + * @example Use with condition and iterate functions. + * const generated = generate(0, x => x < 3, x => x + 1); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') + * ); + * + * // Logs: + * // 0 + * // 1 + * // 2 + * // "Yo!" + * + * + * @example Use with condition, iterate and resultSelector functions. + * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') + * ); + * + * // Logs: + * // 0 + * // 1000 + * // 2000 + * // "Yo!" + * + * + * @example Use with options object. + * const generated = generate({ + * initialState: 0, + * condition(value) { return value < 3; }, + * iterate(value) { return value + 1; }, + * resultSelector(value) { return value * 1000; } + * }); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') + * ); + * + * // Logs: + * // 0 + * // 1000 + * // 2000 + * // "Yo!" + * + * @example Use options object without condition function. + * const generated = generate({ + * initialState: 0, + * iterate(value) { return value + 1; }, + * resultSelector(value) { return value * 1000; } + * }); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') // This will never run. + * ); + * + * // Logs: + * // 0 + * // 1000 + * // 2000 + * // 3000 + * // ...and never stops. + * + * + * @see {@link from} + * @see {@link index/Observable.create} + * + * @param {S} initialState Initial state. + * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false). + * @param {function (state: S): S} iterate Iteration step function. + * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately. + * @return {Observable} The generated sequence. + */ +export declare function generate(initialState: S, condition: ConditionFunc, iterate: IterateFunc, scheduler?: SchedulerLike): Observable; +/** + * Generates an observable sequence by running a state-driven loop + * producing the sequence's elements, using the specified scheduler + * to send out observer messages. + * The overload accepts options object that might contain initial state, iterate, + * condition and scheduler. + * + * ![](generate.png) + * + * @example Produces sequence of 0, 1, 2, ... 9, then completes. + * const res = generate({ + * initialState: 0, + * condition: x => x < 10, + * iterate: x => x + 1, + * }); + * + * @see {@link from} + * @see {@link Observable} + * + * @param {GenerateBaseOptions} options Object that must contain initialState, iterate and might contain condition and scheduler. + * @returns {Observable} The generated sequence. + */ +export declare function generate(options: GenerateBaseOptions): Observable; +/** + * Generates an observable sequence by running a state-driven loop + * producing the sequence's elements, using the specified scheduler + * to send out observer messages. + * The overload accepts options object that might contain initial state, iterate, + * condition, result selector and scheduler. + * + * ![](generate.png) + * + * @example Produces sequence of 0, 1, 2, ... 9, then completes. + * const res = generate({ + * initialState: 0, + * condition: x => x < 10, + * iterate: x => x + 1, + * resultSelector: x => x, + * }); + * + * @see {@link from} + * @see {@link Observable} + * + * @param {GenerateOptions} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler. + * @returns {Observable} The generated sequence. + */ +export declare function generate(options: GenerateOptions): Observable; diff --git a/node_modules/rxjs/internal/observable/generate.js b/node_modules/rxjs/internal/observable/generate.js new file mode 100644 index 00000000..4aa193e6 --- /dev/null +++ b/node_modules/rxjs/internal/observable/generate.js @@ -0,0 +1,127 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var identity_1 = require("../util/identity"); +var isScheduler_1 = require("../util/isScheduler"); +function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { + var resultSelector; + var initialState; + if (arguments.length == 1) { + var options = initialStateOrOptions; + initialState = options.initialState; + condition = options.condition; + iterate = options.iterate; + resultSelector = options.resultSelector || identity_1.identity; + scheduler = options.scheduler; + } + else if (resultSelectorOrObservable === undefined || isScheduler_1.isScheduler(resultSelectorOrObservable)) { + initialState = initialStateOrOptions; + resultSelector = identity_1.identity; + scheduler = resultSelectorOrObservable; + } + else { + initialState = initialStateOrOptions; + resultSelector = resultSelectorOrObservable; + } + return new Observable_1.Observable(function (subscriber) { + var state = initialState; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + subscriber: subscriber, + iterate: iterate, + condition: condition, + resultSelector: resultSelector, + state: state + }); + } + do { + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + var value = void 0; + try { + value = resultSelector(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } while (true); + return undefined; + }); +} +exports.generate = generate; +function dispatch(state) { + var subscriber = state.subscriber, condition = state.condition; + if (subscriber.closed) { + return undefined; + } + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } + else { + state.needIterate = true; + } + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + } + var value; + try { + value = state.resultSelector(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + return undefined; + } + return this.schedule(state); +} +//# sourceMappingURL=generate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/generate.js.map b/node_modules/rxjs/internal/observable/generate.js.map new file mode 100644 index 00000000..9286ebfd --- /dev/null +++ b/node_modules/rxjs/internal/observable/generate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"generate.js","sources":["../../src/internal/observable/generate.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/iif.d.ts b/node_modules/rxjs/internal/observable/iif.d.ts new file mode 100644 index 00000000..2efbe10e --- /dev/null +++ b/node_modules/rxjs/internal/observable/iif.d.ts @@ -0,0 +1,91 @@ +import { Observable } from '../Observable'; +import { SubscribableOrPromise } from '../types'; +/** + * Decides at subscription time which Observable will actually be subscribed. + * + * `If` statement for Observables. + * + * `iif` accepts a condition function and two Observables. When + * an Observable returned by the operator is subscribed, condition function will be called. + * Based on what boolean it returns at that moment, consumer will subscribe either to + * the first Observable (if condition was true) or to the second (if condition was false). Condition + * function may also not return anything - in that case condition will be evaluated as false and + * second Observable will be subscribed. + * + * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that + * was left undefined, resulting stream will simply complete immediately. That allows you to, rather + * than controlling which Observable will be subscribed, decide at runtime if consumer should have access + * to given Observable or not. + * + * If you have more complex logic that requires decision between more than two Observables, {@link defer} + * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer} + * and exists only for convenience and readability reasons. + * + * + * ## Examples + * ### Change at runtime which Observable will be subscribed + * ```ts + * import { iif, of } from 'rxjs'; + * + * let subscribeToFirst; + * const firstOrSecond = iif( + * () => subscribeToFirst, + * of('first'), + * of('second'), + * ); + * + * subscribeToFirst = true; + * firstOrSecond.subscribe(value => console.log(value)); + * + * // Logs: + * // "first" + * + * subscribeToFirst = false; + * firstOrSecond.subscribe(value => console.log(value)); + * + * // Logs: + * // "second" + * + * ``` + * + * ### Control an access to an Observable + * ```ts + * let accessGranted; + * const observableIfYouHaveAccess = iif( + * () => accessGranted, + * of('It seems you have an access...'), // Note that only one Observable is passed to the operator. + * ); + * + * accessGranted = true; + * observableIfYouHaveAccess.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('The end'), + * ); + * + * // Logs: + * // "It seems you have an access..." + * // "The end" + * + * accessGranted = false; + * observableIfYouHaveAccess.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('The end'), + * ); + * + * // Logs: + * // "The end" + * ``` + * + * @see {@link defer} + * + * @param {function(): boolean} condition Condition which Observable should be chosen. + * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true. + * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false. + * @return {Observable} Either first or second Observable, depending on condition. + * @static true + * @name iif + * @owner Observable +*/ +export declare function iif(condition: () => boolean, trueResult?: SubscribableOrPromise, falseResult?: SubscribableOrPromise): Observable; diff --git a/node_modules/rxjs/internal/observable/iif.js b/node_modules/rxjs/internal/observable/iif.js new file mode 100644 index 00000000..48341d50 --- /dev/null +++ b/node_modules/rxjs/internal/observable/iif.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var defer_1 = require("./defer"); +var empty_1 = require("./empty"); +function iif(condition, trueResult, falseResult) { + if (trueResult === void 0) { trueResult = empty_1.EMPTY; } + if (falseResult === void 0) { falseResult = empty_1.EMPTY; } + return defer_1.defer(function () { return condition() ? trueResult : falseResult; }); +} +exports.iif = iif; +//# sourceMappingURL=iif.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/iif.js.map b/node_modules/rxjs/internal/observable/iif.js.map new file mode 100644 index 00000000..0b39bffe --- /dev/null +++ b/node_modules/rxjs/internal/observable/iif.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iif.js","sources":["../../src/internal/observable/iif.ts"],"names":[],"mappings":";;AACA,iCAAgC;AAChC,iCAAgC;AA2FhC,SAAgB,GAAG,CACjB,SAAwB,EACxB,UAA4C,EAC5C,WAA6C;IAD7C,2BAAA,EAAA,aAAuC,aAAK;IAC5C,4BAAA,EAAA,cAAwC,aAAK;IAE7C,OAAO,aAAK,CAAC,cAAM,OAAA,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAtC,CAAsC,CAAC,CAAC;AAC7D,CAAC;AAND,kBAMC"} diff --git a/node_modules/rxjs/internal/observable/interval.d.ts b/node_modules/rxjs/internal/observable/interval.d.ts new file mode 100644 index 00000000..3881ab91 --- /dev/null +++ b/node_modules/rxjs/internal/observable/interval.d.ts @@ -0,0 +1,51 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +/** + * Creates an Observable that emits sequential numbers every specified + * interval of time, on a specified {@link SchedulerLike}. + * + * Emits incremental numbers periodically in time. + * + * + * ![](interval.png) + * + * `interval` returns an Observable that emits an infinite sequence of + * ascending integers, with a constant interval of time of your choosing + * between those emissions. The first emission is not sent immediately, but + * only after the first period has passed. By default, this operator uses the + * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any + * {@link SchedulerLike} to it. + * + * ## Example + * Emits ascending numbers, one every second (1000ms) up to the number 3 + * ```ts + * import { interval } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const numbers = interval(1000); + * + * const takeFourNumbers = numbers.pipe(take(4)); + * + * takeFourNumbers.subscribe(x => console.log('Next: ', x)); + * + * // Logs: + * // Next: 0 + * // Next: 1 + * // Next: 2 + * // Next: 3 + * ``` + * + * @see {@link timer} + * @see {@link delay} + * + * @param {number} [period=0] The interval size in milliseconds (by default) + * or the time unit determined by the scheduler's clock. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling + * the emission of values, and providing a notion of "time". + * @return {Observable} An Observable that emits a sequential number each time + * interval. + * @static true + * @name interval + * @owner Observable + */ +export declare function interval(period?: number, scheduler?: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/observable/interval.js b/node_modules/rxjs/internal/observable/interval.js new file mode 100644 index 00000000..7e8a8365 --- /dev/null +++ b/node_modules/rxjs/internal/observable/interval.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var async_1 = require("../scheduler/async"); +var isNumeric_1 = require("../util/isNumeric"); +function interval(period, scheduler) { + if (period === void 0) { period = 0; } + if (scheduler === void 0) { scheduler = async_1.async; } + if (!isNumeric_1.isNumeric(period) || period < 0) { + period = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + scheduler = async_1.async; + } + return new Observable_1.Observable(function (subscriber) { + subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period })); + return subscriber; + }); +} +exports.interval = interval; +function dispatch(state) { + var subscriber = state.subscriber, counter = state.counter, period = state.period; + subscriber.next(counter); + this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period); +} +//# sourceMappingURL=interval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/interval.js.map b/node_modules/rxjs/internal/observable/interval.js.map new file mode 100644 index 00000000..b0d3b87f --- /dev/null +++ b/node_modules/rxjs/internal/observable/interval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interval.js","sources":["../../src/internal/observable/interval.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,4CAA2C;AAE3C,+CAA8C;AAmD9C,SAAgB,QAAQ,CAAC,MAAU,EACV,SAAgC;IADhC,uBAAA,EAAA,UAAU;IACV,0BAAA,EAAA,YAA2B,aAAK;IACvD,IAAI,CAAC,qBAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;QACpC,MAAM,GAAG,CAAC,CAAC;KACZ;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1D,SAAS,GAAG,aAAK,CAAC;KACnB;IAED,OAAO,IAAI,uBAAU,CAAS,UAAA,UAAU;QACtC,UAAU,CAAC,GAAG,CACZ,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CACzE,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,4BAgBC;AAED,SAAS,QAAQ,CAAuC,KAAoB;IAClE,IAAA,6BAAU,EAAE,uBAAO,EAAE,qBAAM,CAAW;IAC9C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,YAAA,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,QAAA,EAAE,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC"} diff --git a/node_modules/rxjs/internal/observable/merge.d.ts b/node_modules/rxjs/internal/observable/merge.d.ts new file mode 100644 index 00000000..14bf24e7 --- /dev/null +++ b/node_modules/rxjs/internal/observable/merge.d.ts @@ -0,0 +1,44 @@ +import { Observable } from '../Observable'; +import { ObservableInput, SchedulerLike } from '../types'; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +export declare function merge(v1: ObservableInput): Observable; +export declare function merge(v1: ObservableInput, concurrent?: number): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, concurrent?: number): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent?: number): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable; +export declare function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number): Observable; +export declare function merge(...observables: (ObservableInput | number)[]): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable; +export declare function merge(...observables: (ObservableInput | number)[]): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export declare function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable; diff --git a/node_modules/rxjs/internal/observable/merge.js b/node_modules/rxjs/internal/observable/merge.js new file mode 100644 index 00000000..89d5e8e9 --- /dev/null +++ b/node_modules/rxjs/internal/observable/merge.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var isScheduler_1 = require("../util/isScheduler"); +var mergeAll_1 = require("../operators/mergeAll"); +var fromArray_1 = require("./fromArray"); +function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var concurrent = Number.POSITIVE_INFINITY; + var scheduler = null; + var last = observables[observables.length - 1]; + if (isScheduler_1.isScheduler(last)) { + scheduler = observables.pop(); + if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { + concurrent = observables.pop(); + } + } + else if (typeof last === 'number') { + concurrent = observables.pop(); + } + if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable_1.Observable) { + return observables[0]; + } + return mergeAll_1.mergeAll(concurrent)(fromArray_1.fromArray(observables, scheduler)); +} +exports.merge = merge; +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/merge.js.map b/node_modules/rxjs/internal/observable/merge.js.map new file mode 100644 index 00000000..bfd65e0c --- /dev/null +++ b/node_modules/rxjs/internal/observable/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../src/internal/observable/merge.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,mDAAkD;AAClD,kDAAiD;AACjD,yCAAwC;AAqHxC,SAAgB,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC/F,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,IAAI,SAAS,GAAkB,IAAI,CAAC;IACnC,IAAI,IAAI,GAAQ,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,IAAI,yBAAW,CAAC,IAAI,CAAC,EAAE;QACrB,SAAS,GAAkB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrF,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;SACxC;KACF;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACnC,UAAU,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;KACxC;IAED,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,YAAY,uBAAU,EAAE;QAC1F,OAAsB,WAAW,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,OAAO,mBAAQ,CAAI,UAAU,CAAC,CAAC,qBAAS,CAAM,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,CAAC;AAlBD,sBAkBC"} diff --git a/node_modules/rxjs/internal/observable/never.d.ts b/node_modules/rxjs/internal/observable/never.d.ts new file mode 100644 index 00000000..b080ec4f --- /dev/null +++ b/node_modules/rxjs/internal/observable/never.d.ts @@ -0,0 +1,36 @@ +import { Observable } from '../Observable'; +/** + * An Observable that emits no items to the Observer and never completes. + * + * ![](never.png) + * + * A simple Observable that emits neither values nor errors nor the completion + * notification. It can be used for testing purposes or for composing with other + * Observables. Please note that by never emitting a complete notification, this + * Observable keeps the subscription from being disposed automatically. + * Subscriptions need to be manually disposed. + * + * ## Example + * ### Emit the number 7, then never emit anything else (not even complete) + * ```ts + * import { NEVER } from 'rxjs'; + * import { startWith } from 'rxjs/operators'; + * + * function info() { + * console.log('Will not be called'); + * } + * const result = NEVER.pipe(startWith(7)); + * result.subscribe(x => console.log(x), info, info); + * + * ``` + * + * @see {@link Observable} + * @see {@link index/EMPTY} + * @see {@link of} + * @see {@link throwError} + */ +export declare const NEVER: Observable; +/** + * @deprecated Deprecated in favor of using {@link NEVER} constant. + */ +export declare function never(): Observable; diff --git a/node_modules/rxjs/internal/observable/never.js b/node_modules/rxjs/internal/observable/never.js new file mode 100644 index 00000000..13e437c7 --- /dev/null +++ b/node_modules/rxjs/internal/observable/never.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var noop_1 = require("../util/noop"); +exports.NEVER = new Observable_1.Observable(noop_1.noop); +function never() { + return exports.NEVER; +} +exports.never = never; +//# sourceMappingURL=never.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/never.js.map b/node_modules/rxjs/internal/observable/never.js.map new file mode 100644 index 00000000..8c023d1f --- /dev/null +++ b/node_modules/rxjs/internal/observable/never.js.map @@ -0,0 +1 @@ +{"version":3,"file":"never.js","sources":["../../src/internal/observable/never.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,qCAAoC;AAgCvB,QAAA,KAAK,GAAG,IAAI,uBAAU,CAAQ,WAAI,CAAC,CAAC;AAKjD,SAAgB,KAAK;IACnB,OAAO,aAAK,CAAC;AACf,CAAC;AAFD,sBAEC"} diff --git a/node_modules/rxjs/internal/observable/of.d.ts b/node_modules/rxjs/internal/observable/of.d.ts new file mode 100644 index 00000000..f3337db6 --- /dev/null +++ b/node_modules/rxjs/internal/observable/of.d.ts @@ -0,0 +1,31 @@ +import { SchedulerLike } from '../types'; +import { Observable } from '../Observable'; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike): Observable; +export declare function of(...args: (T | SchedulerLike)[]): Observable; +export declare function of(a: T): Observable; +export declare function of(a: T, b: T2): Observable; +export declare function of(a: T, b: T2, c: T3): Observable; +export declare function of(a: T, b: T2, c: T3, d: T4): Observable; +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5): Observable; +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable; +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7): Observable; +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8): Observable; +export declare function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9): Observable; +export declare function of(...args: T[]): Observable; diff --git a/node_modules/rxjs/internal/observable/of.js b/node_modules/rxjs/internal/observable/of.js new file mode 100644 index 00000000..05ab045b --- /dev/null +++ b/node_modules/rxjs/internal/observable/of.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var isScheduler_1 = require("../util/isScheduler"); +var fromArray_1 = require("./fromArray"); +var scheduleArray_1 = require("../scheduled/scheduleArray"); +function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args[args.length - 1]; + if (isScheduler_1.isScheduler(scheduler)) { + args.pop(); + return scheduleArray_1.scheduleArray(args, scheduler); + } + else { + return fromArray_1.fromArray(args); + } +} +exports.of = of; +//# sourceMappingURL=of.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/of.js.map b/node_modules/rxjs/internal/observable/of.js.map new file mode 100644 index 00000000..5a30dddc --- /dev/null +++ b/node_modules/rxjs/internal/observable/of.js.map @@ -0,0 +1 @@ +{"version":3,"file":"of.js","sources":["../../src/internal/observable/of.ts"],"names":[],"mappings":";;AACA,mDAAkD;AAClD,yCAAwC;AAExC,4DAA2D;AAiG3D,SAAgB,EAAE;IAAI,cAAiC;SAAjC,UAAiC,EAAjC,qBAAiC,EAAjC,IAAiC;QAAjC,yBAAiC;;IACrD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IACvD,IAAI,yBAAW,CAAC,SAAS,CAAC,EAAE;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,6BAAa,CAAC,IAAW,EAAE,SAAS,CAAC,CAAC;KAC9C;SAAM;QACL,OAAO,qBAAS,CAAC,IAAW,CAAC,CAAC;KAC/B;AACH,CAAC;AARD,gBAQC"} diff --git a/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts b/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts new file mode 100644 index 00000000..5b81cced --- /dev/null +++ b/node_modules/rxjs/internal/observable/onErrorResumeNext.d.ts @@ -0,0 +1,9 @@ +import { Observable } from '../Observable'; +import { ObservableInput } from '../types'; +export declare function onErrorResumeNext(v: ObservableInput): Observable; +export declare function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput): Observable; +export declare function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable; +export declare function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable; +export declare function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable; +export declare function onErrorResumeNext(...observables: Array | ((...values: Array) => R)>): Observable; +export declare function onErrorResumeNext(array: ObservableInput[]): Observable; diff --git a/node_modules/rxjs/internal/observable/onErrorResumeNext.js b/node_modules/rxjs/internal/observable/onErrorResumeNext.js new file mode 100644 index 00000000..3eba9e25 --- /dev/null +++ b/node_modules/rxjs/internal/observable/onErrorResumeNext.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var from_1 = require("./from"); +var isArray_1 = require("../util/isArray"); +var empty_1 = require("./empty"); +function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 0) { + return empty_1.EMPTY; + } + var first = sources[0], remainder = sources.slice(1); + if (sources.length === 1 && isArray_1.isArray(first)) { + return onErrorResumeNext.apply(void 0, first); + } + return new Observable_1.Observable(function (subscriber) { + var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); }; + return from_1.from(first).subscribe({ + next: function (value) { subscriber.next(value); }, + error: subNext, + complete: subNext, + }); + }); +} +exports.onErrorResumeNext = onErrorResumeNext; +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map b/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map new file mode 100644 index 00000000..9305eb6b --- /dev/null +++ b/node_modules/rxjs/internal/observable/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/internal/observable/onErrorResumeNext.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,+BAA8B;AAC9B,2CAA0C;AAC1C,iCAAgC;AAwEhC,SAAgB,iBAAiB;IAAO,iBAEqD;SAFrD,UAEqD,EAFrD,qBAEqD,EAFrD,IAEqD;QAFrD,4BAEqD;;IAE3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,aAAK,CAAC;KACd;IAEO,IAAA,kBAAK,EAAE,4BAAY,CAAa;IAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,iBAAiB,eAAI,KAAK,EAAE;KACpC;IAED,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,OAAO,GAAG,cAAM,OAAA,UAAU,CAAC,GAAG,CAClC,iBAAiB,eAAI,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CACtD,EAFqB,CAErB,CAAC;QAEF,OAAO,WAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;YAC3B,IAAI,YAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAzBD,8CAyBC"} diff --git a/node_modules/rxjs/internal/observable/pairs.d.ts b/node_modules/rxjs/internal/observable/pairs.d.ts new file mode 100644 index 00000000..5e915e65 --- /dev/null +++ b/node_modules/rxjs/internal/observable/pairs.d.ts @@ -0,0 +1,61 @@ +import { Observable } from '../Observable'; +import { SchedulerAction, SchedulerLike } from '../types'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +/** + * Convert an object into an Observable of `[key, value]` pairs. + * + * Turn entries of an object into a stream. + * + * + * + * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each + * emitted array has exactly two elements - the first is a key from the object + * and the second is a value corresponding to that key. Keys are extracted from + * an object via `Object.keys` function, which means that they will be only + * enumerable keys that are present on an object directly - not ones inherited + * via prototype chain. + * + * By default these arrays are emitted synchronously. To change that you can + * pass a {@link SchedulerLike} as a second argument to `pairs`. + * + * @example Converts a javascript object to an Observable + * ```ts + * import { pairs } from 'rxjs'; + * + * const obj = { + * foo: 42, + * bar: 56, + * baz: 78 + * }; + * + * pairs(obj) + * .subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('the end!') + * ); + * + * // Logs: + * // ["foo", 42], + * // ["bar", 56], + * // ["baz", 78], + * // "the end!" + * ``` + * + * @param {Object} obj The object to inspect and turn into an + * Observable sequence. + * @param {Scheduler} [scheduler] An optional IScheduler to schedule + * when resulting Observable will emit values. + * @returns {(Observable>)} An observable sequence of + * [key, value] pairs from the object. + */ +export declare function pairs(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]>; +/** @internal */ +export declare function dispatch(this: SchedulerAction, state: { + keys: string[]; + index: number; + subscriber: Subscriber<[string, T]>; + subscription: Subscription; + obj: Object; +}): void; diff --git a/node_modules/rxjs/internal/observable/pairs.js b/node_modules/rxjs/internal/observable/pairs.js new file mode 100644 index 00000000..10037fe2 --- /dev/null +++ b/node_modules/rxjs/internal/observable/pairs.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var Subscription_1 = require("../Subscription"); +function pairs(obj, scheduler) { + if (!scheduler) { + return new Observable_1.Observable(function (subscriber) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length && !subscriber.closed; i++) { + var key = keys[i]; + if (obj.hasOwnProperty(key)) { + subscriber.next([key, obj[key]]); + } + } + subscriber.complete(); + }); + } + else { + return new Observable_1.Observable(function (subscriber) { + var keys = Object.keys(obj); + var subscription = new Subscription_1.Subscription(); + subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj })); + return subscription; + }); + } +} +exports.pairs = pairs; +function dispatch(state) { + var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj; + if (!subscriber.closed) { + if (index < keys.length) { + var key = keys[index]; + subscriber.next([key, obj[key]]); + subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj })); + } + else { + subscriber.complete(); + } + } +} +exports.dispatch = dispatch; +//# sourceMappingURL=pairs.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/pairs.js.map b/node_modules/rxjs/internal/observable/pairs.js.map new file mode 100644 index 00000000..12065a4a --- /dev/null +++ b/node_modules/rxjs/internal/observable/pairs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairs.js","sources":["../../src/internal/observable/pairs.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAG3C,gDAA+C;AAkD/C,SAAgB,KAAK,CAAI,GAAW,EAAE,SAAyB;IAC7D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1D,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBAC3B,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClC;aACF;YACD,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,OAAO,IAAI,uBAAU,CAAc,UAAA,UAAU;YAC3C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CACd,SAAS,CAAC,QAAQ,CACf,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAtBD,sBAsBC;AAGD,SAAgB,QAAQ,CACI,KAAsH;IACxI,IAAA,iBAAI,EAAE,mBAAK,EAAE,6BAAU,EAAE,iCAAY,EAAE,eAAG,CAAW;IAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,YAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC,CAAC;SAC5F;aAAM;YACL,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;KACF;AACH,CAAC;AAZD,4BAYC"} diff --git a/node_modules/rxjs/internal/observable/partition.d.ts b/node_modules/rxjs/internal/observable/partition.d.ts new file mode 100644 index 00000000..e750027b --- /dev/null +++ b/node_modules/rxjs/internal/observable/partition.d.ts @@ -0,0 +1,54 @@ +import { ObservableInput } from '../types'; +import { Observable } from '../Observable'; +/** + * Splits the source Observable into two, one with values that satisfy a + * predicate, and another with values that don't satisfy the predicate. + * + * It's like {@link filter}, but returns two Observables: + * one like the output of {@link filter}, and the other with values that did not + * pass the condition. + * + * ![](partition.png) + * + * `partition` outputs an array with two Observables that partition the values + * from the source Observable through the given `predicate` function. The first + * Observable in that array emits source values for which the predicate argument + * returns true. The second Observable emits source values for which the + * predicate returns false. The first behaves like {@link filter} and the second + * behaves like {@link filter} with the predicate negated. + * + * ## Example + * Partition a set of numbers into odds and evens observables + * ```ts + * import { of, partition } from 'rxjs'; + * + * const observableValues = of(1, 2, 3, 4, 5, 6); + * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0); + * + * odds$.subscribe(x => console.log('odds', x)); + * evens$.subscribe(x => console.log('evens', x)); + * + * // Logs: + * // odds 1 + * // odds 3 + * // odds 5 + * // evens 2 + * // evens 4 + * // evens 6 + * ``` + * + * @see {@link filter} + * + * @param {function(value: T, index: number): boolean} predicate A function that + * evaluates each value emitted by the source Observable. If it returns `true`, + * the value is emitted on the first Observable in the returned array, if + * `false` the value is emitted on the second Observable in the array. The + * `index` parameter is the number `i` for the i-th source emission that has + * happened since the subscription, starting from the number `0`. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {[Observable, Observable]} An array with two Observables: one + * with values that passed the predicate, and another with values that did not + * pass the predicate. + */ +export declare function partition(source: ObservableInput, predicate: (value: T, index: number) => boolean, thisArg?: any): [Observable, Observable]; diff --git a/node_modules/rxjs/internal/observable/partition.js b/node_modules/rxjs/internal/observable/partition.js new file mode 100644 index 00000000..dc33aff9 --- /dev/null +++ b/node_modules/rxjs/internal/observable/partition.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var not_1 = require("../util/not"); +var subscribeTo_1 = require("../util/subscribeTo"); +var filter_1 = require("../operators/filter"); +var Observable_1 = require("../Observable"); +function partition(source, predicate, thisArg) { + return [ + filter_1.filter(predicate, thisArg)(new Observable_1.Observable(subscribeTo_1.subscribeTo(source))), + filter_1.filter(not_1.not(predicate, thisArg))(new Observable_1.Observable(subscribeTo_1.subscribeTo(source))) + ]; +} +exports.partition = partition; +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/partition.js.map b/node_modules/rxjs/internal/observable/partition.js.map new file mode 100644 index 00000000..91ed70e3 --- /dev/null +++ b/node_modules/rxjs/internal/observable/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../../src/internal/observable/partition.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,mDAAkD;AAClD,8CAA6C;AAE7C,4CAA2C;AAqD3C,SAAgB,SAAS,CACvB,MAA0B,EAC1B,SAA+C,EAC/C,OAAa;IAEb,OAAO;QACL,eAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,uBAAU,CAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,eAAM,CAAC,SAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,IAAI,uBAAU,CAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7C,CAAC;AACtC,CAAC;AATD,8BASC"} diff --git a/node_modules/rxjs/internal/observable/race.d.ts b/node_modules/rxjs/internal/observable/race.d.ts new file mode 100644 index 00000000..91392cd0 --- /dev/null +++ b/node_modules/rxjs/internal/observable/race.d.ts @@ -0,0 +1,38 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { TeardownLogic, ObservableInput } from '../types'; +import { OuterSubscriber } from '../OuterSubscriber'; +export declare function race(arg: [ObservableInput]): Observable; +export declare function race(arg: [ObservableInput, ObservableInput]): Observable; +export declare function race(arg: [ObservableInput, ObservableInput, ObservableInput]): Observable; +export declare function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable; +export declare function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable; +export declare function race(arg: ObservableInput[]): Observable; +export declare function race(arg: ObservableInput[]): Observable<{}>; +export declare function race(a: ObservableInput): Observable; +export declare function race(a: ObservableInput, b: ObservableInput): Observable; +export declare function race(a: ObservableInput, b: ObservableInput, c: ObservableInput): Observable; +export declare function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput): Observable; +export declare function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput, e: ObservableInput): Observable; +export declare function race(observables: ObservableInput[]): Observable; +export declare function race(observables: ObservableInput[]): Observable<{}>; +export declare function race(...observables: ObservableInput[]): Observable; +export declare function race(...observables: ObservableInput[]): Observable<{}>; +export declare class RaceOperator implements Operator { + call(subscriber: Subscriber, source: any): TeardownLogic; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class RaceSubscriber extends OuterSubscriber { + private hasFirst; + private observables; + private subscriptions; + constructor(destination: Subscriber); + protected _next(observable: any): void; + protected _complete(): void; + notifyNext(_outerValue: T, innerValue: T, outerIndex: number): void; +} diff --git a/node_modules/rxjs/internal/observable/race.js b/node_modules/rxjs/internal/observable/race.js new file mode 100644 index 00000000..550feb66 --- /dev/null +++ b/node_modules/rxjs/internal/observable/race.js @@ -0,0 +1,92 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var isArray_1 = require("../util/isArray"); +var fromArray_1 = require("./fromArray"); +var OuterSubscriber_1 = require("../OuterSubscriber"); +var subscribeToResult_1 = require("../util/subscribeToResult"); +function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + if (observables.length === 1) { + if (isArray_1.isArray(observables[0])) { + observables = observables[0]; + } + else { + return observables[0]; + } + } + return fromArray_1.fromArray(observables, undefined).lift(new RaceOperator()); +} +exports.race = race; +var RaceOperator = (function () { + function RaceOperator() { + } + RaceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RaceSubscriber(subscriber)); + }; + return RaceOperator; +}()); +exports.RaceOperator = RaceOperator; +var RaceSubscriber = (function (_super) { + __extends(RaceSubscriber, _super); + function RaceSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasFirst = false; + _this.observables = []; + _this.subscriptions = []; + return _this; + } + RaceSubscriber.prototype._next = function (observable) { + this.observables.push(observable); + }; + RaceSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); + } + else { + for (var i = 0; i < len && !this.hasFirst; i++) { + var observable = observables[i]; + var subscription = subscribeToResult_1.subscribeToResult(this, observable, undefined, i); + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null; + } + }; + RaceSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + if (!this.hasFirst) { + this.hasFirst = true; + for (var i = 0; i < this.subscriptions.length; i++) { + if (i !== outerIndex) { + var subscription = this.subscriptions[i]; + subscription.unsubscribe(); + this.remove(subscription); + } + } + this.subscriptions = null; + } + this.destination.next(innerValue); + }; + return RaceSubscriber; +}(OuterSubscriber_1.OuterSubscriber)); +exports.RaceSubscriber = RaceSubscriber; +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/race.js.map b/node_modules/rxjs/internal/observable/race.js.map new file mode 100644 index 00000000..b096a5ef --- /dev/null +++ b/node_modules/rxjs/internal/observable/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../src/internal/observable/race.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/observable/range.d.ts b/node_modules/rxjs/internal/observable/range.d.ts new file mode 100644 index 00000000..8aad4056 --- /dev/null +++ b/node_modules/rxjs/internal/observable/range.d.ts @@ -0,0 +1,39 @@ +import { SchedulerAction, SchedulerLike } from '../types'; +import { Observable } from '../Observable'; +/** + * Creates an Observable that emits a sequence of numbers within a specified + * range. + * + * Emits a sequence of numbers in a range. + * + * ![](range.png) + * + * `range` operator emits a range of sequential integers, in order, where you + * select the `start` of the range and its `length`. By default, uses no + * {@link SchedulerLike} and just delivers the notifications synchronously, but may use + * an optional {@link SchedulerLike} to regulate those deliveries. + * + * ## Example + * Emits the numbers 1 to 10 + * ```ts + * import { range } from 'rxjs'; + * + * const numbers = range(1, 10); + * numbers.subscribe(x => console.log(x)); + * ``` + * @see {@link timer} + * @see {@link index/interval} + * + * @param {number} [start=0] The value of the first integer in the sequence. + * @param {number} count The number of sequential integers to generate. + * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling + * the emissions of the notifications. + * @return {Observable} An Observable of numbers that emits a finite range of + * sequential integers. + * @static true + * @name range + * @owner Observable + */ +export declare function range(start?: number, count?: number, scheduler?: SchedulerLike): Observable; +/** @internal */ +export declare function dispatch(this: SchedulerAction, state: any): void; diff --git a/node_modules/rxjs/internal/observable/range.js b/node_modules/rxjs/internal/observable/range.js new file mode 100644 index 00000000..8e5c0df9 --- /dev/null +++ b/node_modules/rxjs/internal/observable/range.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +function range(start, count, scheduler) { + if (start === void 0) { start = 0; } + return new Observable_1.Observable(function (subscriber) { + if (count === undefined) { + count = start; + start = 0; + } + var index = 0; + var current = start; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + index: index, count: count, start: start, subscriber: subscriber + }); + } + else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(current++); + if (subscriber.closed) { + break; + } + } while (true); + } + return undefined; + }); +} +exports.range = range; +function dispatch(state) { + var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; + if (index >= count) { + subscriber.complete(); + return; + } + subscriber.next(start); + if (subscriber.closed) { + return; + } + state.index = index + 1; + state.start = start + 1; + this.schedule(state); +} +exports.dispatch = dispatch; +//# sourceMappingURL=range.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/range.js.map b/node_modules/rxjs/internal/observable/range.js.map new file mode 100644 index 00000000..01cde878 --- /dev/null +++ b/node_modules/rxjs/internal/observable/range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"range.js","sources":["../../src/internal/observable/range.ts"],"names":[],"mappings":";;AACA,4CAA2C;AAoC3C,SAAgB,KAAK,CAAC,KAAiB,EACjB,KAAc,EACd,SAAyB;IAFzB,sBAAA,EAAA,SAAiB;IAGrC,OAAO,IAAI,uBAAU,CAAS,UAAA,UAAU;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC;YACd,KAAK,GAAG,CAAC,CAAC;SACX;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACrC,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA;aAChC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG;gBACD,IAAI,KAAK,EAAE,IAAI,KAAK,EAAE;oBACpB,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3B,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,MAAM;iBACP;aACF,QAAQ,IAAI,EAAE;SAChB;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AA/BD,sBA+BC;AAGD,SAAgB,QAAQ,CAA6B,KAAU;IACrD,IAAA,mBAAK,EAAE,mBAAK,EAAE,mBAAK,EAAE,6BAAU,CAAW;IAElD,IAAI,KAAK,IAAI,KAAK,EAAE;QAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO;KACR;IAED,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAExB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAlBD,4BAkBC"} diff --git a/node_modules/rxjs/internal/observable/throwError.d.ts b/node_modules/rxjs/internal/observable/throwError.d.ts new file mode 100644 index 00000000..cb833c46 --- /dev/null +++ b/node_modules/rxjs/internal/observable/throwError.d.ts @@ -0,0 +1,67 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +/** + * Creates an Observable that emits no items to the Observer and immediately + * emits an error notification. + * + * Just emits 'error', and nothing else. + * + * + * ![](throw.png) + * + * This static operator is useful for creating a simple Observable that only + * emits the error notification. It can be used for composing with other + * Observables, such as in a {@link mergeMap}. + * + * ## Examples + * ### Emit the number 7, then emit an error + * ```ts + * import { throwError, concat, of } from 'rxjs'; + * + * const result = concat(of(7), throwError(new Error('oops!'))); + * result.subscribe(x => console.log(x), e => console.error(e)); + * + * // Logs: + * // 7 + * // Error: oops! + * ``` + * + * --- + * + * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2 + * ```ts + * import { throwError, interval, of } from 'rxjs'; + * import { mergeMap } from 'rxjs/operators'; + * + * interval(1000).pipe( + * mergeMap(x => x === 2 + * ? throwError('Twos are bad') + * : of('a', 'b', 'c') + * ), + * ).subscribe(x => console.log(x), e => console.error(e)); + * + * // Logs: + * // a + * // b + * // c + * // a + * // b + * // c + * // Twos are bad + * ``` + * + * @see {@link Observable} + * @see {@link empty} + * @see {@link never} + * @see {@link of} + * + * @param {any} error The particular Error to pass to the error notification. + * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling + * the emission of the error notification. + * @return {Observable} An error Observable: emits only the error notification + * using the given error argument. + * @static true + * @name throwError + * @owner Observable + */ +export declare function throwError(error: any, scheduler?: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/observable/throwError.js b/node_modules/rxjs/internal/observable/throwError.js new file mode 100644 index 00000000..0d285440 --- /dev/null +++ b/node_modules/rxjs/internal/observable/throwError.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +function throwError(error, scheduler) { + if (!scheduler) { + return new Observable_1.Observable(function (subscriber) { return subscriber.error(error); }); + } + else { + return new Observable_1.Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); + } +} +exports.throwError = throwError; +function dispatch(_a) { + var error = _a.error, subscriber = _a.subscriber; + subscriber.error(error); +} +//# sourceMappingURL=throwError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/throwError.js.map b/node_modules/rxjs/internal/observable/throwError.js.map new file mode 100644 index 00000000..def5d433 --- /dev/null +++ b/node_modules/rxjs/internal/observable/throwError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throwError.js","sources":["../../src/internal/observable/throwError.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAoE3C,SAAgB,UAAU,CAAC,KAAU,EAAE,SAAyB;IAC9D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;KAC9D;SAAM;QACL,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAtD,CAAsD,CAAC,CAAC;KAC7F;AACH,CAAC;AAND,gCAMC;AAOD,SAAS,QAAQ,CAAC,EAAkC;QAAhC,gBAAK,EAAE,0BAAU;IACnC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"} diff --git a/node_modules/rxjs/internal/observable/timer.d.ts b/node_modules/rxjs/internal/observable/timer.d.ts new file mode 100644 index 00000000..ce684a3f --- /dev/null +++ b/node_modules/rxjs/internal/observable/timer.d.ts @@ -0,0 +1,53 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +/** + * Creates an Observable that starts emitting after an `dueTime` and + * emits ever increasing numbers after each `period` of time thereafter. + * + * Its like {@link index/interval}, but you can specify when + * should the emissions start. + * + * ![](timer.png) + * + * `timer` returns an Observable that emits an infinite sequence of ascending + * integers, with a constant interval of time, `period` of your choosing + * between those emissions. The first emission happens after the specified + * `dueTime`. The initial delay may be a `Date`. By default, this + * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you + * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output + * Observable emits only one value, `0`. Otherwise, it emits an infinite + * sequence. + * + * ## Examples + * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds + * ```ts + * import { timer } from 'rxjs'; + * + * const numbers = timer(3000, 1000); + * numbers.subscribe(x => console.log(x)); + * ``` + * + * ### Emits one number after five seconds + * ```ts + * import { timer } from 'rxjs'; + * + * const numbers = timer(5000); + * numbers.subscribe(x => console.log(x)); + * ``` + * @see {@link index/interval} + * @see {@link delay} + * + * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting + * milliseconds to wait before emitting the first value of 0`. + * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the + * subsequent numbers. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling + * the emission of values, and providing a notion of "time". + * @return {Observable} An Observable that emits a `0` after the + * `dueTime` and ever increasing numbers after each `period` of time + * thereafter. + * @static true + * @name timer + * @owner Observable + */ +export declare function timer(dueTime?: number | Date, periodOrScheduler?: number | SchedulerLike, scheduler?: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/observable/timer.js b/node_modules/rxjs/internal/observable/timer.js new file mode 100644 index 00000000..f7a928dd --- /dev/null +++ b/node_modules/rxjs/internal/observable/timer.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var async_1 = require("../scheduler/async"); +var isNumeric_1 = require("../util/isNumeric"); +var isScheduler_1 = require("../util/isScheduler"); +function timer(dueTime, periodOrScheduler, scheduler) { + if (dueTime === void 0) { dueTime = 0; } + var period = -1; + if (isNumeric_1.isNumeric(periodOrScheduler)) { + period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); + } + else if (isScheduler_1.isScheduler(periodOrScheduler)) { + scheduler = periodOrScheduler; + } + if (!isScheduler_1.isScheduler(scheduler)) { + scheduler = async_1.async; + } + return new Observable_1.Observable(function (subscriber) { + var due = isNumeric_1.isNumeric(dueTime) + ? dueTime + : (+dueTime - scheduler.now()); + return scheduler.schedule(dispatch, due, { + index: 0, period: period, subscriber: subscriber + }); + }); +} +exports.timer = timer; +function dispatch(state) { + var index = state.index, period = state.period, subscriber = state.subscriber; + subscriber.next(index); + if (subscriber.closed) { + return; + } + else if (period === -1) { + return subscriber.complete(); + } + state.index = index + 1; + this.schedule(state, period); +} +//# sourceMappingURL=timer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/timer.js.map b/node_modules/rxjs/internal/observable/timer.js.map new file mode 100644 index 00000000..adf2a573 --- /dev/null +++ b/node_modules/rxjs/internal/observable/timer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timer.js","sources":["../../src/internal/observable/timer.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,4CAA2C;AAC3C,+CAA8C;AAC9C,mDAAkD;AAqDlD,SAAgB,KAAK,CAAC,OAA0B,EAC1B,iBAA0C,EAC1C,SAAyB;IAFzB,wBAAA,EAAA,WAA0B;IAG9C,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;IAChB,IAAI,qBAAS,CAAC,iBAAiB,CAAC,EAAE;QAChC,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC1E;SAAM,IAAI,yBAAW,CAAC,iBAAiB,CAAC,EAAE;QACzC,SAAS,GAAG,iBAAwB,CAAC;KACtC;IAED,IAAI,CAAC,yBAAW,CAAC,SAAS,CAAC,EAAE;QAC3B,SAAS,GAAG,aAAK,CAAC;KACnB;IAED,OAAO,IAAI,uBAAU,CAAC,UAAA,UAAU;QAC9B,IAAM,GAAG,GAAG,qBAAS,CAAC,OAAO,CAAC;YAC5B,CAAC,CAAE,OAAkB;YACrB,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,KAAK,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,UAAU,YAAA;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAvBD,sBAuBC;AAQD,SAAS,QAAQ,CAAoC,KAAiB;IAC5D,IAAA,mBAAK,EAAE,qBAAM,EAAE,6BAAU,CAAW;IAC5C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,OAAO;KACR;SAAM,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACxB,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"} diff --git a/node_modules/rxjs/internal/observable/using.d.ts b/node_modules/rxjs/internal/observable/using.d.ts new file mode 100644 index 00000000..21014e45 --- /dev/null +++ b/node_modules/rxjs/internal/observable/using.d.ts @@ -0,0 +1,31 @@ +import { Observable } from '../Observable'; +import { Unsubscribable, ObservableInput } from '../types'; +/** + * Creates an Observable that uses a resource which will be disposed at the same time as the Observable. + * + * Use it when you catch yourself cleaning up after an Observable. + * + * `using` is a factory operator, which accepts two functions. First function returns a disposable resource. + * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with + * that object and should return an Observable. That Observable can use resource object during its execution. + * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor + * resource object will be shared in any way between subscriptions. + * + * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed + * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output + * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself, + * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which + * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone + * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make + * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time. + * + * @see {@link defer} + * + * @param {function(): ISubscription} resourceFactory A function which creates any resource object + * that implements `unsubscribe` method. + * @param {function(resource: ISubscription): Observable} observableFactory A function which + * creates an Observable, that can use injected resource object. + * @return {Observable} An Observable that behaves the same as Observable returned by `observableFactory`, but + * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object. + */ +export declare function using(resourceFactory: () => Unsubscribable | void, observableFactory: (resource: Unsubscribable | void) => ObservableInput | void): Observable; diff --git a/node_modules/rxjs/internal/observable/using.js b/node_modules/rxjs/internal/observable/using.js new file mode 100644 index 00000000..063ca573 --- /dev/null +++ b/node_modules/rxjs/internal/observable/using.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var from_1 = require("./from"); +var empty_1 = require("./empty"); +function using(resourceFactory, observableFactory) { + return new Observable_1.Observable(function (subscriber) { + var resource; + try { + resource = resourceFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var result; + try { + result = observableFactory(resource); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = result ? from_1.from(result) : empty_1.EMPTY; + var subscription = source.subscribe(subscriber); + return function () { + subscription.unsubscribe(); + if (resource) { + resource.unsubscribe(); + } + }; + }); +} +exports.using = using; +//# sourceMappingURL=using.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/using.js.map b/node_modules/rxjs/internal/observable/using.js.map new file mode 100644 index 00000000..47473043 --- /dev/null +++ b/node_modules/rxjs/internal/observable/using.js.map @@ -0,0 +1 @@ +{"version":3,"file":"using.js","sources":["../../src/internal/observable/using.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,+BAA8B;AAC9B,iCAAgC;AA8BhC,SAAgB,KAAK,CAAI,eAA4C,EAC5C,iBAAiF;IACxG,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAI,QAA+B,CAAC;QAEpC,IAAI;YACF,QAAQ,GAAG,eAAe,EAAE,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,MAAiC,CAAC;QACtC,IAAI;YACF,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC;QAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO;YACL,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,WAAW,EAAE,CAAC;aACxB;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA7BD,sBA6BC"} diff --git a/node_modules/rxjs/internal/observable/zip.d.ts b/node_modules/rxjs/internal/observable/zip.d.ts new file mode 100644 index 00000000..4653938c --- /dev/null +++ b/node_modules/rxjs/internal/observable/zip.d.ts @@ -0,0 +1,51 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { ObservableInput, ObservedValueOf } from '../types'; +import { Subscriber } from '../Subscriber'; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): Observable; +export declare function zip, O2 extends ObservableInput>(v1: O1, v2: O2): Observable<[ObservedValueOf, ObservedValueOf]>; +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function zip>(array: O[]): Observable[]>; +export declare function zip(array: ObservableInput[]): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export declare function zip(array: ObservableInput[], resultSelector: (...values: any[]) => R): Observable; +export declare function zip>(...observables: O[]): Observable[]>; +export declare function zip, R>(...observables: Array[]) => R)>): Observable; +export declare function zip(...observables: Array | ((...values: Array) => R)>): Observable; +export declare class ZipOperator implements Operator { + resultSelector?: (...values: Array) => R; + constructor(resultSelector?: (...values: Array) => R); + call(subscriber: Subscriber, source: any): any; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class ZipSubscriber extends Subscriber { + private resultSelector?; + private iterators; + private active; + constructor(destination: Subscriber, resultSelector?: (...values: Array) => R, values?: any); + protected _next(value: any): void; + protected _complete(): void; + notifyInactive(): void; + checkIterators(): void; + protected _tryresultSelector(args: any[]): void; +} diff --git a/node_modules/rxjs/internal/observable/zip.js b/node_modules/rxjs/internal/observable/zip.js new file mode 100644 index 00000000..3d55cd81 --- /dev/null +++ b/node_modules/rxjs/internal/observable/zip.js @@ -0,0 +1,229 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var fromArray_1 = require("./fromArray"); +var isArray_1 = require("../util/isArray"); +var Subscriber_1 = require("../Subscriber"); +var iterator_1 = require("../../internal/symbol/iterator"); +var innerSubscribe_1 = require("../innerSubscribe"); +function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = observables[observables.length - 1]; + if (typeof resultSelector === 'function') { + observables.pop(); + } + return fromArray_1.fromArray(observables, undefined).lift(new ZipOperator(resultSelector)); +} +exports.zip = zip; +var ZipOperator = (function () { + function ZipOperator(resultSelector) { + this.resultSelector = resultSelector; + } + ZipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); + }; + return ZipOperator; +}()); +exports.ZipOperator = ZipOperator; +var ZipSubscriber = (function (_super) { + __extends(ZipSubscriber, _super); + function ZipSubscriber(destination, resultSelector, values) { + if (values === void 0) { values = Object.create(null); } + var _this = _super.call(this, destination) || this; + _this.resultSelector = resultSelector; + _this.iterators = []; + _this.active = 0; + _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined; + return _this; + } + ZipSubscriber.prototype._next = function (value) { + var iterators = this.iterators; + if (isArray_1.isArray(value)) { + iterators.push(new StaticArrayIterator(value)); + } + else if (typeof value[iterator_1.iterator] === 'function') { + iterators.push(new StaticIterator(value[iterator_1.iterator]())); + } + else { + iterators.push(new ZipBufferIterator(this.destination, this, value)); + } + }; + ZipSubscriber.prototype._complete = function () { + var iterators = this.iterators; + var len = iterators.length; + this.unsubscribe(); + if (len === 0) { + this.destination.complete(); + return; + } + this.active = len; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (iterator.stillUnsubscribed) { + var destination = this.destination; + destination.add(iterator.subscribe()); + } + else { + this.active--; + } + } + }; + ZipSubscriber.prototype.notifyInactive = function () { + this.active--; + if (this.active === 0) { + this.destination.complete(); + } + }; + ZipSubscriber.prototype.checkIterators = function () { + var iterators = this.iterators; + var len = iterators.length; + var destination = this.destination; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { + return; + } + } + var shouldComplete = false; + var args = []; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + var result = iterator.next(); + if (iterator.hasCompleted()) { + shouldComplete = true; + } + if (result.done) { + destination.complete(); + return; + } + args.push(result.value); + } + if (this.resultSelector) { + this._tryresultSelector(args); + } + else { + destination.next(args); + } + if (shouldComplete) { + destination.complete(); + } + }; + ZipSubscriber.prototype._tryresultSelector = function (args) { + var result; + try { + result = this.resultSelector.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return ZipSubscriber; +}(Subscriber_1.Subscriber)); +exports.ZipSubscriber = ZipSubscriber; +var StaticIterator = (function () { + function StaticIterator(iterator) { + this.iterator = iterator; + this.nextResult = iterator.next(); + } + StaticIterator.prototype.hasValue = function () { + return true; + }; + StaticIterator.prototype.next = function () { + var result = this.nextResult; + this.nextResult = this.iterator.next(); + return result; + }; + StaticIterator.prototype.hasCompleted = function () { + var nextResult = this.nextResult; + return Boolean(nextResult && nextResult.done); + }; + return StaticIterator; +}()); +var StaticArrayIterator = (function () { + function StaticArrayIterator(array) { + this.array = array; + this.index = 0; + this.length = 0; + this.length = array.length; + } + StaticArrayIterator.prototype[iterator_1.iterator] = function () { + return this; + }; + StaticArrayIterator.prototype.next = function (value) { + var i = this.index++; + var array = this.array; + return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + }; + StaticArrayIterator.prototype.hasValue = function () { + return this.array.length > this.index; + }; + StaticArrayIterator.prototype.hasCompleted = function () { + return this.array.length === this.index; + }; + return StaticArrayIterator; +}()); +var ZipBufferIterator = (function (_super) { + __extends(ZipBufferIterator, _super); + function ZipBufferIterator(destination, parent, observable) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + _this.observable = observable; + _this.stillUnsubscribed = true; + _this.buffer = []; + _this.isComplete = false; + return _this; + } + ZipBufferIterator.prototype[iterator_1.iterator] = function () { + return this; + }; + ZipBufferIterator.prototype.next = function () { + var buffer = this.buffer; + if (buffer.length === 0 && this.isComplete) { + return { value: null, done: true }; + } + else { + return { value: buffer.shift(), done: false }; + } + }; + ZipBufferIterator.prototype.hasValue = function () { + return this.buffer.length > 0; + }; + ZipBufferIterator.prototype.hasCompleted = function () { + return this.buffer.length === 0 && this.isComplete; + }; + ZipBufferIterator.prototype.notifyComplete = function () { + if (this.buffer.length > 0) { + this.isComplete = true; + this.parent.notifyInactive(); + } + else { + this.destination.complete(); + } + }; + ZipBufferIterator.prototype.notifyNext = function (innerValue) { + this.buffer.push(innerValue); + this.parent.checkIterators(); + }; + ZipBufferIterator.prototype.subscribe = function () { + return innerSubscribe_1.innerSubscribe(this.observable, new innerSubscribe_1.SimpleInnerSubscriber(this)); + }; + return ZipBufferIterator; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/observable/zip.js.map b/node_modules/rxjs/internal/observable/zip.js.map new file mode 100644 index 00000000..20250297 --- /dev/null +++ b/node_modules/rxjs/internal/observable/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../src/internal/observable/zip.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/audit.d.ts b/node_modules/rxjs/internal/operators/audit.d.ts new file mode 100644 index 00000000..d7b250a3 --- /dev/null +++ b/node_modules/rxjs/internal/operators/audit.d.ts @@ -0,0 +1,48 @@ +import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types'; +/** + * Ignores source values for a duration determined by another Observable, then + * emits the most recent value from the source Observable, then repeats this + * process. + * + * It's like {@link auditTime}, but the silencing + * duration is determined by a second Observable. + * + * ![](audit.png) + * + * `audit` is similar to `throttle`, but emits the last value from the silenced + * time window, instead of the first value. `audit` emits the most recent value + * from the source Observable on the output Observable as soon as its internal + * timer becomes disabled, and ignores source values while the timer is enabled. + * Initially, the timer is disabled. As soon as the first source value arrives, + * the timer is enabled by calling the `durationSelector` function with the + * source value, which returns the "duration" Observable. When the duration + * Observable emits a value or completes, the timer is disabled, then the most + * recent source value is emitted on the output Observable, and this process + * repeats for the next source value. + * + * ## Example + * + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { audit } from 'rxjs/operators' + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(audit(ev => interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * @see {@link auditTime} + * @see {@link debounce} + * @see {@link delayWhen} + * @see {@link sample} + * @see {@link throttle} + * + * @param {function(value: T): SubscribableOrPromise} durationSelector A function + * that receives a value from the source Observable, for computing the silencing + * duration, returned as an Observable or a Promise. + * @return {Observable} An Observable that performs rate-limiting of + * emissions from the source Observable. + * @method audit + * @owner Observable + */ +export declare function audit(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/audit.js b/node_modules/rxjs/internal/operators/audit.js new file mode 100644 index 00000000..2b85c508 --- /dev/null +++ b/node_modules/rxjs/internal/operators/audit.js @@ -0,0 +1,82 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function audit(durationSelector) { + return function auditOperatorFunction(source) { + return source.lift(new AuditOperator(durationSelector)); + }; +} +exports.audit = audit; +var AuditOperator = (function () { + function AuditOperator(durationSelector) { + this.durationSelector = durationSelector; + } + AuditOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); + }; + return AuditOperator; +}()); +var AuditSubscriber = (function (_super) { + __extends(AuditSubscriber, _super); + function AuditSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + return _this; + } + AuditSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + var duration = void 0; + try { + var durationSelector = this.durationSelector; + duration = durationSelector(value); + } + catch (err) { + return this.destination.error(err); + } + var innerSubscription = innerSubscribe_1.innerSubscribe(duration, new innerSubscribe_1.SimpleInnerSubscriber(this)); + if (!innerSubscription || innerSubscription.closed) { + this.clearThrottle(); + } + else { + this.add(this.throttled = innerSubscription); + } + } + }; + AuditSubscriber.prototype.clearThrottle = function () { + var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; + if (throttled) { + this.remove(throttled); + this.throttled = undefined; + throttled.unsubscribe(); + } + if (hasValue) { + this.value = undefined; + this.hasValue = false; + this.destination.next(value); + } + }; + AuditSubscriber.prototype.notifyNext = function () { + this.clearThrottle(); + }; + AuditSubscriber.prototype.notifyComplete = function () { + this.clearThrottle(); + }; + return AuditSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/audit.js.map b/node_modules/rxjs/internal/operators/audit.js.map new file mode 100644 index 00000000..a50214e0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sources":["../../src/internal/operators/audit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,oDAAiG;AAgDjG,SAAgB,KAAK,CAAI,gBAA0D;IACjF,OAAO,SAAS,qBAAqB,CAAC,MAAqB;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC;AAJD,sBAIC;AAED;IACE,uBAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAO,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAoC,mCAA2B;IAM7D,yBAAY,WAA0B,EAClB,gBAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,QAAQ,SAAA,CAAC;YACb,IAAI;gBACM,IAAA,wCAAgB,CAAU;gBAClC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACpC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;aACrC;YACD,IAAM,iBAAiB,GAAG,+BAAc,CAAC,QAAQ,EAAE,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAClD,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,uCAAa,GAAb;QACQ,IAAA,SAAqC,EAAnC,gBAAK,EAAE,sBAAQ,EAAE,wBAAS,CAAU;QAC5C,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,SAAS,CAAC,WAAW,EAAE,CAAC;SACzB;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAED,oCAAU,GAAV;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,wCAAc,GAAd;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACH,sBAAC;AAAD,CAAC,AApDD,CAAoC,sCAAqB,GAoDxD"} diff --git a/node_modules/rxjs/internal/operators/auditTime.d.ts b/node_modules/rxjs/internal/operators/auditTime.d.ts new file mode 100644 index 00000000..5c2f910a --- /dev/null +++ b/node_modules/rxjs/internal/operators/auditTime.d.ts @@ -0,0 +1,51 @@ +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** + * Ignores source values for `duration` milliseconds, then emits the most recent + * value from the source Observable, then repeats this process. + * + * When it sees a source value, it ignores that plus + * the next ones for `duration` milliseconds, and then it emits the most recent + * value from the source. + * + * ![](auditTime.png) + * + * `auditTime` is similar to `throttleTime`, but emits the last value from the + * silenced time window, instead of the first value. `auditTime` emits the most + * recent value from the source Observable on the output Observable as soon as + * its internal timer becomes disabled, and ignores source values while the + * timer is enabled. Initially, the timer is disabled. As soon as the first + * source value arrives, the timer is enabled. After `duration` milliseconds (or + * the time unit determined internally by the optional `scheduler`) has passed, + * the timer is disabled, then the most recent source value is emitted on the + * output Observable, and this process repeats for the next source value. + * Optionally takes a {@link SchedulerLike} for managing timers. + * + * ## Example + * + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { auditTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(auditTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounceTime} + * @see {@link delay} + * @see {@link sampleTime} + * @see {@link throttleTime} + * + * @param {number} duration Time to wait before emitting the most recent source + * value, measured in milliseconds or the time unit determined internally + * by the optional `scheduler`. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the rate-limiting behavior. + * @return {Observable} An Observable that performs rate-limiting of + * emissions from the source Observable. + * @method auditTime + * @owner Observable + */ +export declare function auditTime(duration: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/auditTime.js b/node_modules/rxjs/internal/operators/auditTime.js new file mode 100644 index 00000000..195f261c --- /dev/null +++ b/node_modules/rxjs/internal/operators/auditTime.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var async_1 = require("../scheduler/async"); +var audit_1 = require("./audit"); +var timer_1 = require("../observable/timer"); +function auditTime(duration, scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + return audit_1.audit(function () { return timer_1.timer(duration, scheduler); }); +} +exports.auditTime = auditTime; +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/auditTime.js.map b/node_modules/rxjs/internal/operators/auditTime.js.map new file mode 100644 index 00000000..7042a37a --- /dev/null +++ b/node_modules/rxjs/internal/operators/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sources":["../../src/internal/operators/auditTime.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,iCAAgC;AAChC,6CAA4C;AAoD5C,SAAgB,SAAS,CAAI,QAAgB,EAAE,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC7E,OAAO,aAAK,CAAC,cAAM,OAAA,aAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAA1B,CAA0B,CAAC,CAAC;AACjD,CAAC;AAFD,8BAEC"} diff --git a/node_modules/rxjs/internal/operators/buffer.d.ts b/node_modules/rxjs/internal/operators/buffer.d.ts new file mode 100644 index 00000000..ee4f5070 --- /dev/null +++ b/node_modules/rxjs/internal/operators/buffer.d.ts @@ -0,0 +1,43 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Buffers the source Observable values until `closingNotifier` emits. + * + * Collects values from the past as an array, and emits + * that array only when another Observable emits. + * + * ![](buffer.png) + * + * Buffers the incoming Observable values until the given `closingNotifier` + * Observable emits a value, at which point it emits the buffer on the output + * Observable and starts a new buffer internally, awaiting the next time + * `closingNotifier` emits. + * + * ## Example + * + * On every click, emit array of most recent interval events + * + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { buffer } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const intervalEvents = interval(1000); + * const buffered = intervalEvents.pipe(buffer(clicks)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * @see {@link bufferCount} + * @see {@link bufferTime} + * @see {@link bufferToggle} + * @see {@link bufferWhen} + * @see {@link window} + * + * @param {Observable} closingNotifier An Observable that signals the + * buffer to be emitted on the output Observable. + * @return {Observable} An Observable of buffers, which are arrays of + * values. + * @method buffer + * @owner Observable + */ +export declare function buffer(closingNotifier: Observable): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/buffer.js b/node_modules/rxjs/internal/operators/buffer.js new file mode 100644 index 00000000..24743fd6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/buffer.js @@ -0,0 +1,50 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function buffer(closingNotifier) { + return function bufferOperatorFunction(source) { + return source.lift(new BufferOperator(closingNotifier)); + }; +} +exports.buffer = buffer; +var BufferOperator = (function () { + function BufferOperator(closingNotifier) { + this.closingNotifier = closingNotifier; + } + BufferOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); + }; + return BufferOperator; +}()); +var BufferSubscriber = (function (_super) { + __extends(BufferSubscriber, _super); + function BufferSubscriber(destination, closingNotifier) { + var _this = _super.call(this, destination) || this; + _this.buffer = []; + _this.add(innerSubscribe_1.innerSubscribe(closingNotifier, new innerSubscribe_1.SimpleInnerSubscriber(_this))); + return _this; + } + BufferSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferSubscriber.prototype.notifyNext = function () { + var buffer = this.buffer; + this.buffer = []; + this.destination.next(buffer); + }; + return BufferSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/buffer.js.map b/node_modules/rxjs/internal/operators/buffer.js.map new file mode 100644 index 00000000..8437ae09 --- /dev/null +++ b/node_modules/rxjs/internal/operators/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sources":["../../src/internal/operators/buffer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,oDAAiG;AA0CjG,SAAgB,MAAM,CAAI,eAAgC;IACxD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAI,eAAe,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAJD,wBAIC;AAED;IAEE,wBAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IACpD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,oCAA6B;IAG7D,0BAAY,WAA4B,EAAE,eAAgC;QAA1E,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAQ,EAAE,CAAC;QAIvB,KAAI,CAAC,GAAG,CAAC,+BAAc,CAAC,eAAe,EAAE,IAAI,sCAAqB,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC;;IAC7E,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,qCAAU,GAAV;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,CAAkC,sCAAqB,GAiBtD"} diff --git a/node_modules/rxjs/internal/operators/bufferCount.d.ts b/node_modules/rxjs/internal/operators/bufferCount.d.ts new file mode 100644 index 00000000..dd764e66 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferCount.d.ts @@ -0,0 +1,57 @@ +import { OperatorFunction } from '../types'; +/** + * Buffers the source Observable values until the size hits the maximum + * `bufferSize` given. + * + * Collects values from the past as an array, and emits + * that array only when its size reaches `bufferSize`. + * + * ![](bufferCount.png) + * + * Buffers a number of values from the source Observable by `bufferSize` then + * emits the buffer and clears it, and starts a new buffer each + * `startBufferEvery` values. If `startBufferEvery` is not provided or is + * `null`, then new buffers are started immediately at the start of the source + * and when each buffer closes and is emitted. + * + * ## Examples + * + * Emit the last two click events as an array + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { bufferCount } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferCount(2)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * On every click, emit the last two click events as an array + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { bufferCount } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferCount(2, 1)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * @see {@link buffer} + * @see {@link bufferTime} + * @see {@link bufferToggle} + * @see {@link bufferWhen} + * @see {@link pairwise} + * @see {@link windowCount} + * + * @param {number} bufferSize The maximum size of the buffer emitted. + * @param {number} [startBufferEvery] Interval at which to start a new buffer. + * For example if `startBufferEvery` is `2`, then a new buffer will be started + * on every other value from the source. A new buffer is started at the + * beginning of the source by default. + * @return {Observable} An Observable of arrays of buffered values. + * @method bufferCount + * @owner Observable + */ +export declare function bufferCount(bufferSize: number, startBufferEvery?: number): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/bufferCount.js b/node_modules/rxjs/internal/operators/bufferCount.js new file mode 100644 index 00000000..39dd40e5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferCount.js @@ -0,0 +1,102 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { startBufferEvery = null; } + return function bufferCountOperatorFunction(source) { + return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); + }; +} +exports.bufferCount = bufferCount; +var BufferCountOperator = (function () { + function BufferCountOperator(bufferSize, startBufferEvery) { + this.bufferSize = bufferSize; + this.startBufferEvery = startBufferEvery; + if (!startBufferEvery || bufferSize === startBufferEvery) { + this.subscriberClass = BufferCountSubscriber; + } + else { + this.subscriberClass = BufferSkipCountSubscriber; + } + } + BufferCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); + }; + return BufferCountOperator; +}()); +var BufferCountSubscriber = (function (_super) { + __extends(BufferCountSubscriber, _super); + function BufferCountSubscriber(destination, bufferSize) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.buffer = []; + return _this; + } + BufferCountSubscriber.prototype._next = function (value) { + var buffer = this.buffer; + buffer.push(value); + if (buffer.length == this.bufferSize) { + this.destination.next(buffer); + this.buffer = []; + } + }; + BufferCountSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer.length > 0) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + return BufferCountSubscriber; +}(Subscriber_1.Subscriber)); +var BufferSkipCountSubscriber = (function (_super) { + __extends(BufferSkipCountSubscriber, _super); + function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) { + var _this = _super.call(this, destination) || this; + _this.bufferSize = bufferSize; + _this.startBufferEvery = startBufferEvery; + _this.buffers = []; + _this.count = 0; + return _this; + } + BufferSkipCountSubscriber.prototype._next = function (value) { + var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count; + this.count++; + if (count % startBufferEvery === 0) { + buffers.push([]); + } + for (var i = buffers.length; i--;) { + var buffer = buffers[i]; + buffer.push(value); + if (buffer.length === bufferSize) { + buffers.splice(i, 1); + this.destination.next(buffer); + } + } + }; + BufferSkipCountSubscriber.prototype._complete = function () { + var _a = this, buffers = _a.buffers, destination = _a.destination; + while (buffers.length > 0) { + var buffer = buffers.shift(); + if (buffer.length > 0) { + destination.next(buffer); + } + } + _super.prototype._complete.call(this); + }; + return BufferSkipCountSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=bufferCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/bufferCount.js.map b/node_modules/rxjs/internal/operators/bufferCount.js.map new file mode 100644 index 00000000..dcaa26fa --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sources":["../../src/internal/operators/bufferCount.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/bufferTime.d.ts b/node_modules/rxjs/internal/operators/bufferTime.d.ts new file mode 100644 index 00000000..b68efb16 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferTime.d.ts @@ -0,0 +1,4 @@ +import { OperatorFunction, SchedulerLike } from '../types'; +export declare function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction; +export declare function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction; +export declare function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/bufferTime.js b/node_modules/rxjs/internal/operators/bufferTime.js new file mode 100644 index 00000000..1cd22031 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferTime.js @@ -0,0 +1,162 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var async_1 = require("../scheduler/async"); +var Subscriber_1 = require("../Subscriber"); +var isScheduler_1 = require("../util/isScheduler"); +function bufferTime(bufferTimeSpan) { + var length = arguments.length; + var scheduler = async_1.async; + if (isScheduler_1.isScheduler(arguments[arguments.length - 1])) { + scheduler = arguments[arguments.length - 1]; + length--; + } + var bufferCreationInterval = null; + if (length >= 2) { + bufferCreationInterval = arguments[1]; + } + var maxBufferSize = Number.POSITIVE_INFINITY; + if (length >= 3) { + maxBufferSize = arguments[2]; + } + return function bufferTimeOperatorFunction(source) { + return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); + }; +} +exports.bufferTime = bufferTime; +var BufferTimeOperator = (function () { + function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + this.bufferTimeSpan = bufferTimeSpan; + this.bufferCreationInterval = bufferCreationInterval; + this.maxBufferSize = maxBufferSize; + this.scheduler = scheduler; + } + BufferTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); + }; + return BufferTimeOperator; +}()); +var Context = (function () { + function Context() { + this.buffer = []; + } + return Context; +}()); +var BufferTimeSubscriber = (function (_super) { + __extends(BufferTimeSubscriber, _super); + function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.bufferTimeSpan = bufferTimeSpan; + _this.bufferCreationInterval = bufferCreationInterval; + _this.maxBufferSize = maxBufferSize; + _this.scheduler = scheduler; + _this.contexts = []; + var context = _this.openContext(); + _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; + if (_this.timespanOnly) { + var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + else { + var closeState = { subscriber: _this, context: context }; + var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); + } + return _this; + } + BufferTimeSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + var filledBufferContext; + for (var i = 0; i < len; i++) { + var context_1 = contexts[i]; + var buffer = context_1.buffer; + buffer.push(value); + if (buffer.length == this.maxBufferSize) { + filledBufferContext = context_1; + } + } + if (filledBufferContext) { + this.onBufferFull(filledBufferContext); + } + }; + BufferTimeSubscriber.prototype._error = function (err) { + this.contexts.length = 0; + _super.prototype._error.call(this, err); + }; + BufferTimeSubscriber.prototype._complete = function () { + var _a = this, contexts = _a.contexts, destination = _a.destination; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + destination.next(context_2.buffer); + } + _super.prototype._complete.call(this); + }; + BufferTimeSubscriber.prototype._unsubscribe = function () { + this.contexts = null; + }; + BufferTimeSubscriber.prototype.onBufferFull = function (context) { + this.closeContext(context); + var closeAction = context.closeAction; + closeAction.unsubscribe(); + this.remove(closeAction); + if (!this.closed && this.timespanOnly) { + context = this.openContext(); + var bufferTimeSpan = this.bufferTimeSpan; + var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan }; + this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + }; + BufferTimeSubscriber.prototype.openContext = function () { + var context = new Context(); + this.contexts.push(context); + return context; + }; + BufferTimeSubscriber.prototype.closeContext = function (context) { + this.destination.next(context.buffer); + var contexts = this.contexts; + var spliceIndex = contexts ? contexts.indexOf(context) : -1; + if (spliceIndex >= 0) { + contexts.splice(contexts.indexOf(context), 1); + } + }; + return BufferTimeSubscriber; +}(Subscriber_1.Subscriber)); +function dispatchBufferTimeSpanOnly(state) { + var subscriber = state.subscriber; + var prevContext = state.context; + if (prevContext) { + subscriber.closeContext(prevContext); + } + if (!subscriber.closed) { + state.context = subscriber.openContext(); + state.context.closeAction = this.schedule(state, state.bufferTimeSpan); + } +} +function dispatchBufferCreation(state) { + var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; + var context = subscriber.openContext(); + var action = this; + if (!subscriber.closed) { + subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context })); + action.schedule(state, bufferCreationInterval); + } +} +function dispatchBufferClose(arg) { + var subscriber = arg.subscriber, context = arg.context; + subscriber.closeContext(context); +} +//# sourceMappingURL=bufferTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/bufferTime.js.map b/node_modules/rxjs/internal/operators/bufferTime.js.map new file mode 100644 index 00000000..a94eba28 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sources":["../../src/internal/operators/bufferTime.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/bufferToggle.d.ts b/node_modules/rxjs/internal/operators/bufferToggle.d.ts new file mode 100644 index 00000000..87afb805 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferToggle.d.ts @@ -0,0 +1,48 @@ +import { OperatorFunction, SubscribableOrPromise } from '../types'; +/** + * Buffers the source Observable values starting from an emission from + * `openings` and ending when the output of `closingSelector` emits. + * + * Collects values from the past as an array. Starts + * collecting only when `opening` emits, and calls the `closingSelector` + * function to get an Observable that tells when to close the buffer. + * + * ![](bufferToggle.png) + * + * Buffers values from the source by opening the buffer via signals from an + * Observable provided to `openings`, and closing and sending the buffers when + * a Subscribable or Promise returned by the `closingSelector` function emits. + * + * ## Example + * + * Every other second, emit the click events from the next 500ms + * + * ```ts + * import { fromEvent, interval, EMPTY } from 'rxjs'; + * import { bufferToggle } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const openings = interval(1000); + * const buffered = clicks.pipe(bufferToggle(openings, i => + * i % 2 ? interval(500) : EMPTY + * )); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * @see {@link buffer} + * @see {@link bufferCount} + * @see {@link bufferTime} + * @see {@link bufferWhen} + * @see {@link windowToggle} + * + * @param {SubscribableOrPromise} openings A Subscribable or Promise of notifications to start new + * buffers. + * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes + * the value emitted by the `openings` observable and returns a Subscribable or Promise, + * which, when it emits, signals that the associated buffer should be emitted + * and cleared. + * @return {Observable} An observable of arrays of buffered values. + * @method bufferToggle + * @owner Observable + */ +export declare function bufferToggle(openings: SubscribableOrPromise, closingSelector: (value: O) => SubscribableOrPromise): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/bufferToggle.js b/node_modules/rxjs/internal/operators/bufferToggle.js new file mode 100644 index 00000000..bbfb625f --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferToggle.js @@ -0,0 +1,120 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscription_1 = require("../Subscription"); +var subscribeToResult_1 = require("../util/subscribeToResult"); +var OuterSubscriber_1 = require("../OuterSubscriber"); +function bufferToggle(openings, closingSelector) { + return function bufferToggleOperatorFunction(source) { + return source.lift(new BufferToggleOperator(openings, closingSelector)); + }; +} +exports.bufferToggle = bufferToggle; +var BufferToggleOperator = (function () { + function BufferToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + BufferToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return BufferToggleOperator; +}()); +var BufferToggleSubscriber = (function (_super) { + __extends(BufferToggleSubscriber, _super); + function BufferToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(subscribeToResult_1.subscribeToResult(_this, openings)); + return _this; + } + BufferToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].buffer.push(value); + } + }; + BufferToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_1 = contexts.shift(); + context_1.subscription.unsubscribe(); + context_1.buffer = null; + context_1.subscription = null; + } + this.contexts = null; + _super.prototype._error.call(this, err); + }; + BufferToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + this.destination.next(context_2.buffer); + context_2.subscription.unsubscribe(); + context_2.buffer = null; + context_2.subscription = null; + } + this.contexts = null; + _super.prototype._complete.call(this); + }; + BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue) { + outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); + }; + BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) { + this.closeBuffer(innerSub.context); + }; + BufferToggleSubscriber.prototype.openBuffer = function (value) { + try { + var closingSelector = this.closingSelector; + var closingNotifier = closingSelector.call(this, value); + if (closingNotifier) { + this.trySubscribe(closingNotifier); + } + } + catch (err) { + this._error(err); + } + }; + BufferToggleSubscriber.prototype.closeBuffer = function (context) { + var contexts = this.contexts; + if (contexts && context) { + var buffer = context.buffer, subscription = context.subscription; + this.destination.next(buffer); + contexts.splice(contexts.indexOf(context), 1); + this.remove(subscription); + subscription.unsubscribe(); + } + }; + BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) { + var contexts = this.contexts; + var buffer = []; + var subscription = new Subscription_1.Subscription(); + var context = { buffer: buffer, subscription: subscription }; + contexts.push(context); + var innerSubscription = subscribeToResult_1.subscribeToResult(this, closingNotifier, context); + if (!innerSubscription || innerSubscription.closed) { + this.closeBuffer(context); + } + else { + innerSubscription.context = context; + this.add(innerSubscription); + subscription.add(innerSubscription); + } + }; + return BufferToggleSubscriber; +}(OuterSubscriber_1.OuterSubscriber)); +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/bufferToggle.js.map b/node_modules/rxjs/internal/operators/bufferToggle.js.map new file mode 100644 index 00000000..3f1cf278 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sources":["../../src/internal/operators/bufferToggle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/bufferWhen.d.ts b/node_modules/rxjs/internal/operators/bufferWhen.d.ts new file mode 100644 index 00000000..cffbe35c --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferWhen.d.ts @@ -0,0 +1,45 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Buffers the source Observable values, using a factory function of closing + * Observables to determine when to close, emit, and reset the buffer. + * + * Collects values from the past as an array. When it + * starts collecting values, it calls a function that returns an Observable that + * tells when to close the buffer and restart collecting. + * + * ![](bufferWhen.png) + * + * Opens a buffer immediately, then closes the buffer when the observable + * returned by calling `closingSelector` function emits a value. When it closes + * the buffer, it immediately opens a new buffer and repeats the process. + * + * ## Example + * + * Emit an array of the last clicks every [1-5] random seconds + * + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { bufferWhen } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferWhen(() => + * interval(1000 + Math.random() * 4000) + * )); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * + * @see {@link buffer} + * @see {@link bufferCount} + * @see {@link bufferTime} + * @see {@link bufferToggle} + * @see {@link windowWhen} + * + * @param {function(): Observable} closingSelector A function that takes no + * arguments and returns an Observable that signals buffer closure. + * @return {Observable} An observable of arrays of buffered values. + * @method bufferWhen + * @owner Observable + */ +export declare function bufferWhen(closingSelector: () => Observable): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/bufferWhen.js b/node_modules/rxjs/internal/operators/bufferWhen.js new file mode 100644 index 00000000..c5fd6b32 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferWhen.js @@ -0,0 +1,95 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscription_1 = require("../Subscription"); +var innerSubscribe_1 = require("../innerSubscribe"); +function bufferWhen(closingSelector) { + return function (source) { + return source.lift(new BufferWhenOperator(closingSelector)); + }; +} +exports.bufferWhen = bufferWhen; +var BufferWhenOperator = (function () { + function BufferWhenOperator(closingSelector) { + this.closingSelector = closingSelector; + } + BufferWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); + }; + return BufferWhenOperator; +}()); +var BufferWhenSubscriber = (function (_super) { + __extends(BufferWhenSubscriber, _super); + function BufferWhenSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.closingSelector = closingSelector; + _this.subscribing = false; + _this.openBuffer(); + return _this; + } + BufferWhenSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferWhenSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); + }; + BufferWhenSubscriber.prototype._unsubscribe = function () { + this.buffer = undefined; + this.subscribing = false; + }; + BufferWhenSubscriber.prototype.notifyNext = function () { + this.openBuffer(); + }; + BufferWhenSubscriber.prototype.notifyComplete = function () { + if (this.subscribing) { + this.complete(); + } + else { + this.openBuffer(); + } + }; + BufferWhenSubscriber.prototype.openBuffer = function () { + var closingSubscription = this.closingSubscription; + if (closingSubscription) { + this.remove(closingSubscription); + closingSubscription.unsubscribe(); + } + var buffer = this.buffer; + if (this.buffer) { + this.destination.next(buffer); + } + this.buffer = []; + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (err) { + return this.error(err); + } + closingSubscription = new Subscription_1.Subscription(); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(innerSubscribe_1.innerSubscribe(closingNotifier, new innerSubscribe_1.SimpleInnerSubscriber(this))); + this.subscribing = false; + }; + return BufferWhenSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/bufferWhen.js.map b/node_modules/rxjs/internal/operators/bufferWhen.js.map new file mode 100644 index 00000000..92e29cd5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sources":["../../src/internal/operators/bufferWhen.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,gDAA+C;AAE/C,oDAAiG;AA4CjG,SAAgB,UAAU,CAAI,eAAsC;IAClE,OAAO,UAAU,MAAqB;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAJD,gCAIC;AAED;IAEE,4BAAoB,eAAsC;QAAtC,oBAAe,GAAf,eAAe,CAAuB;IAC1D,CAAC;IAED,iCAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACtF,CAAC;IACH,yBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAsC,wCAA6B;IAKjE,8BAAY,WAA4B,EAAU,eAAsC;QAAxF,YACE,kBAAM,WAAW,CAAC,SAEnB;QAHiD,qBAAe,GAAf,eAAe,CAAuB;QAHhF,iBAAW,GAAY,KAAK,CAAC;QAKnC,KAAI,CAAC,UAAU,EAAE,CAAC;;IACpB,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAES,wCAAS,GAAnB;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,iBAAM,SAAS,WAAE,CAAC;IACpB,CAAC;IAGD,2CAAY,GAAZ;QACE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,yCAAU,GAAV;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,6CAAc,GAAd;QACE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;aAAM;YACL,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,yCAAU,GAAV;QACQ,IAAA,8CAAmB,CAAU;QAEnC,IAAI,mBAAmB,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACjC,mBAAmB,CAAC,WAAW,EAAE,CAAC;SACnC;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;SAChC;QAED,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IAAI,eAAe,CAAC;QACpB,IAAI;YACM,IAAA,sCAAe,CAAU;YACjC,eAAe,GAAG,eAAe,EAAE,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACxB;QACD,mBAAmB,GAAG,IAAI,2BAAY,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,mBAAmB,CAAC,GAAG,CAAC,+BAAc,CAAC,eAAe,EAAE,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IACH,2BAAC;AAAD,CAAC,AArED,CAAsC,sCAAqB,GAqE1D"} diff --git a/node_modules/rxjs/internal/operators/catchError.d.ts b/node_modules/rxjs/internal/operators/catchError.d.ts new file mode 100644 index 00000000..3c4759bb --- /dev/null +++ b/node_modules/rxjs/internal/operators/catchError.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +export declare function catchError>(selector: (err: any, caught: Observable) => O): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/catchError.js b/node_modules/rxjs/internal/operators/catchError.js new file mode 100644 index 00000000..3b1839ca --- /dev/null +++ b/node_modules/rxjs/internal/operators/catchError.js @@ -0,0 +1,63 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function catchError(selector) { + return function catchErrorOperatorFunction(source) { + var operator = new CatchOperator(selector); + var caught = source.lift(operator); + return (operator.caught = caught); + }; +} +exports.catchError = catchError; +var CatchOperator = (function () { + function CatchOperator(selector) { + this.selector = selector; + } + CatchOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); + }; + return CatchOperator; +}()); +var CatchSubscriber = (function (_super) { + __extends(CatchSubscriber, _super); + function CatchSubscriber(destination, selector, caught) { + var _this = _super.call(this, destination) || this; + _this.selector = selector; + _this.caught = caught; + return _this; + } + CatchSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var result = void 0; + try { + result = this.selector(err, this.caught); + } + catch (err2) { + _super.prototype.error.call(this, err2); + return; + } + this._unsubscribeAndRecycle(); + var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(this); + this.add(innerSubscriber); + var innerSubscription = innerSubscribe_1.innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + this.add(innerSubscription); + } + } + }; + return CatchSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=catchError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/catchError.js.map b/node_modules/rxjs/internal/operators/catchError.js.map new file mode 100644 index 00000000..d8dda0af --- /dev/null +++ b/node_modules/rxjs/internal/operators/catchError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catchError.js","sources":["../../src/internal/operators/catchError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,oDAAiG;AAkFjG,SAAgB,UAAU,CACxB,QAAgD;IAEhD,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,IAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAuB,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AARD,gCAQC;AAED;IAGE,uBAAoB,QAAqE;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACzF,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAoC,mCAA+B;IACjE,yBAAY,WAA4B,EACpB,QAAqE,EACrE,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAA6D;QACrE,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IAOD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,MAAM,SAAK,CAAC;YAChB,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,IAAI,EAAE;gBACb,iBAAM,KAAK,YAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;aACR;YACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAM,eAAe,GAAG,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,IAAM,iBAAiB,GAAG,+BAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAIlE,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAoC,sCAAqB,GAiCxD"} diff --git a/node_modules/rxjs/internal/operators/combineAll.d.ts b/node_modules/rxjs/internal/operators/combineAll.d.ts new file mode 100644 index 00000000..ba3b82f2 --- /dev/null +++ b/node_modules/rxjs/internal/operators/combineAll.d.ts @@ -0,0 +1,5 @@ +import { OperatorFunction, ObservableInput } from '../types'; +export declare function combineAll(): OperatorFunction, T[]>; +export declare function combineAll(): OperatorFunction; +export declare function combineAll(project: (...values: T[]) => R): OperatorFunction, R>; +export declare function combineAll(project: (...values: Array) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/combineAll.js b/node_modules/rxjs/internal/operators/combineAll.js new file mode 100644 index 00000000..aa6f42e2 --- /dev/null +++ b/node_modules/rxjs/internal/operators/combineAll.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var combineLatest_1 = require("../observable/combineLatest"); +function combineAll(project) { + return function (source) { return source.lift(new combineLatest_1.CombineLatestOperator(project)); }; +} +exports.combineAll = combineAll; +//# sourceMappingURL=combineAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/combineAll.js.map b/node_modules/rxjs/internal/operators/combineAll.js.map new file mode 100644 index 00000000..a19279a5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sources":["../../src/internal/operators/combineAll.ts"],"names":[],"mappings":";;AAAA,6DAAoE;AAsDpE,SAAgB,UAAU,CAAO,OAAsC;IACrE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,qCAAqB,CAAC,OAAO,CAAC,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC;AAFD,gCAEC"} diff --git a/node_modules/rxjs/internal/operators/combineLatest.d.ts b/node_modules/rxjs/internal/operators/combineLatest.d.ts new file mode 100644 index 00000000..d087978a --- /dev/null +++ b/node_modules/rxjs/internal/operators/combineLatest.d.ts @@ -0,0 +1,29 @@ +import { ObservableInput, OperatorFunction } from '../types'; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(project: (v1: T) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(...observables: Array | ((...values: Array) => R)>): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(array: ObservableInput[]): OperatorFunction>; +/** @deprecated Deprecated in favor of static combineLatest. */ +export declare function combineLatest(array: ObservableInput[], project: (v1: T, ...values: Array) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/combineLatest.js b/node_modules/rxjs/internal/operators/combineLatest.js new file mode 100644 index 00000000..7902e0a6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/combineLatest.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var isArray_1 = require("../util/isArray"); +var combineLatest_1 = require("../observable/combineLatest"); +var from_1 = require("../observable/from"); +var none = {}; +function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var project = null; + if (typeof observables[observables.length - 1] === 'function') { + project = observables.pop(); + } + if (observables.length === 1 && isArray_1.isArray(observables[0])) { + observables = observables[0].slice(); + } + return function (source) { return source.lift.call(from_1.from([source].concat(observables)), new combineLatest_1.CombineLatestOperator(project)); }; +} +exports.combineLatest = combineLatest; +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/combineLatest.js.map b/node_modules/rxjs/internal/operators/combineLatest.js.map new file mode 100644 index 00000000..b4d58f04 --- /dev/null +++ b/node_modules/rxjs/internal/operators/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../../src/internal/operators/combineLatest.ts"],"names":[],"mappings":";;AACA,2CAA0C;AAC1C,6DAAoE;AACpE,2CAA0C;AAI1C,IAAM,IAAI,GAAG,EAAE,CAAC;AAoChB,SAAgB,aAAa;IAAO,qBAE+C;SAF/C,UAE+C,EAF/C,qBAE+C,EAF/C,IAE+C;QAF/C,gCAE+C;;IACjF,IAAI,OAAO,GAAiC,IAAI,CAAC;IACjD,IAAI,OAAO,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,EAAE;QAC7D,OAAO,GAAiC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC3D;IAID,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAS,WAAW,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,CAAC;KAC7C;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAI,EAAE,MAAM,SAAK,WAAW,EAAE,EAAE,IAAI,qCAAqB,CAAC,OAAO,CAAC,CAAC,EAApF,CAAoF,CAAC;AACzH,CAAC;AAfD,sCAeC"} diff --git a/node_modules/rxjs/internal/operators/concat.d.ts b/node_modules/rxjs/internal/operators/concat.d.ts new file mode 100644 index 00000000..2b588f7a --- /dev/null +++ b/node_modules/rxjs/internal/operators/concat.d.ts @@ -0,0 +1,17 @@ +import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(scheduler?: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(...observables: Array | SchedulerLike>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export declare function concat(...observables: Array | SchedulerLike>): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/concat.js b/node_modules/rxjs/internal/operators/concat.js new file mode 100644 index 00000000..f3b05e5d --- /dev/null +++ b/node_modules/rxjs/internal/operators/concat.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var concat_1 = require("../observable/concat"); +function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(concat_1.concat.apply(void 0, [source].concat(observables))); }; +} +exports.concat = concat; +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/concat.js.map b/node_modules/rxjs/internal/operators/concat.js.map new file mode 100644 index 00000000..01ef1836 --- /dev/null +++ b/node_modules/rxjs/internal/operators/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../../src/internal/operators/concat.ts"],"names":[],"mappings":";;AAAA,+CAA+D;AA0B/D,SAAgB,MAAM;IAAO,qBAA2D;SAA3D,UAA2D,EAA3D,qBAA2D,EAA3D,IAA2D;QAA3D,gCAA2D;;IACtF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAY,gBAAC,MAAM,SAAK,WAAW,GAAE,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAFD,wBAEC"} diff --git a/node_modules/rxjs/internal/operators/concatAll.d.ts b/node_modules/rxjs/internal/operators/concatAll.d.ts new file mode 100644 index 00000000..7b7d929c --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatAll.d.ts @@ -0,0 +1,3 @@ +import { OperatorFunction, ObservableInput } from '../types'; +export declare function concatAll(): OperatorFunction, T>; +export declare function concatAll(): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/concatAll.js b/node_modules/rxjs/internal/operators/concatAll.js new file mode 100644 index 00000000..fb988408 --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatAll.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var mergeAll_1 = require("./mergeAll"); +function concatAll() { + return mergeAll_1.mergeAll(1); +} +exports.concatAll = concatAll; +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/concatAll.js.map b/node_modules/rxjs/internal/operators/concatAll.js.map new file mode 100644 index 00000000..e79dff96 --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sources":["../../src/internal/operators/concatAll.ts"],"names":[],"mappings":";;AACA,uCAAsC;AAgEtC,SAAgB,SAAS;IACvB,OAAO,mBAAQ,CAAI,CAAC,CAAC,CAAC;AACxB,CAAC;AAFD,8BAEC"} diff --git a/node_modules/rxjs/internal/operators/concatMap.d.ts b/node_modules/rxjs/internal/operators/concatMap.d.ts new file mode 100644 index 00000000..9dcf3006 --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatMap.d.ts @@ -0,0 +1,6 @@ +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +export declare function concatMap>(project: (value: T, index: number) => O): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export declare function concatMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export declare function concatMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/concatMap.js b/node_modules/rxjs/internal/operators/concatMap.js new file mode 100644 index 00000000..91ac2267 --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatMap.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var mergeMap_1 = require("./mergeMap"); +function concatMap(project, resultSelector) { + return mergeMap_1.mergeMap(project, resultSelector, 1); +} +exports.concatMap = concatMap; +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/concatMap.js.map b/node_modules/rxjs/internal/operators/concatMap.js.map new file mode 100644 index 00000000..3e80fad1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sources":["../../src/internal/operators/concatMap.ts"],"names":[],"mappings":";;AAAA,uCAAsC;AAuEtC,SAAgB,SAAS,CACvB,OAAuC,EACvC,cAA6G;IAE7G,OAAO,mBAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AALD,8BAKC"} diff --git a/node_modules/rxjs/internal/operators/concatMapTo.d.ts b/node_modules/rxjs/internal/operators/concatMapTo.d.ts new file mode 100644 index 00000000..ab69336b --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatMapTo.d.ts @@ -0,0 +1,6 @@ +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +export declare function concatMapTo>(observable: O): OperatorFunction>; +/** @deprecated */ +export declare function concatMapTo>(observable: O, resultSelector: undefined): OperatorFunction>; +/** @deprecated */ +export declare function concatMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/concatMapTo.js b/node_modules/rxjs/internal/operators/concatMapTo.js new file mode 100644 index 00000000..fe4d95cd --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatMapTo.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var concatMap_1 = require("./concatMap"); +function concatMapTo(innerObservable, resultSelector) { + return concatMap_1.concatMap(function () { return innerObservable; }, resultSelector); +} +exports.concatMapTo = concatMapTo; +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/concatMapTo.js.map b/node_modules/rxjs/internal/operators/concatMapTo.js.map new file mode 100644 index 00000000..fc24b2c4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sources":["../../src/internal/operators/concatMapTo.ts"],"names":[],"mappings":";;AAAA,yCAAwC;AAmExC,SAAgB,WAAW,CACzB,eAAkB,EAClB,cAA6G;IAE7G,OAAO,qBAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC;AALD,kCAKC"} diff --git a/node_modules/rxjs/internal/operators/count.d.ts b/node_modules/rxjs/internal/operators/count.d.ts new file mode 100644 index 00000000..b6f5e32b --- /dev/null +++ b/node_modules/rxjs/internal/operators/count.d.ts @@ -0,0 +1,62 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Counts the number of emissions on the source and emits that number when the + * source completes. + * + * Tells how many values were emitted, when the source + * completes. + * + * ![](count.png) + * + * `count` transforms an Observable that emits values into an Observable that + * emits a single value that represents the number of values emitted by the + * source Observable. If the source Observable terminates with an error, `count` + * will pass this error notification along without emitting a value first. If + * the source Observable does not terminate at all, `count` will neither emit + * a value nor terminate. This operator takes an optional `predicate` function + * as argument, in which case the output emission will represent the number of + * source values that matched `true` with the `predicate`. + * + * ## Examples + * + * Counts how many seconds have passed before the first click happened + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { count, takeUntil } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * const clicks = fromEvent(document, 'click'); + * const secondsBeforeClick = seconds.pipe(takeUntil(clicks)); + * const result = secondsBeforeClick.pipe(count()); + * result.subscribe(x => console.log(x)); + * ``` + * + * Counts how many odd numbers are there between 1 and 7 + * ```ts + * import { range } from 'rxjs'; + * import { count } from 'rxjs/operators'; + * + * const numbers = range(1, 7); + * const result = numbers.pipe(count(i => i % 2 === 1)); + * result.subscribe(x => console.log(x)); + * // Results in: + * // 4 + * ``` + * + * @see {@link max} + * @see {@link min} + * @see {@link reduce} + * + * @param {function(value: T, i: number, source: Observable): boolean} [predicate] A + * boolean function to select what values are to be counted. It is provided with + * arguments of: + * - `value`: the value from the source Observable. + * - `index`: the (zero-based) "index" of the value from the source Observable. + * - `source`: the source Observable instance itself. + * @return {Observable} An Observable of one number that represents the count as + * described above. + * @method count + * @owner Observable + */ +export declare function count(predicate?: (value: T, index: number, source: Observable) => boolean): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/count.js b/node_modules/rxjs/internal/operators/count.js new file mode 100644 index 00000000..2dfc616a --- /dev/null +++ b/node_modules/rxjs/internal/operators/count.js @@ -0,0 +1,68 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function count(predicate) { + return function (source) { return source.lift(new CountOperator(predicate, source)); }; +} +exports.count = count; +var CountOperator = (function () { + function CountOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + CountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + }; + return CountOperator; +}()); +var CountSubscriber = (function (_super) { + __extends(CountSubscriber, _super); + function CountSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.count = 0; + _this.index = 0; + return _this; + } + CountSubscriber.prototype._next = function (value) { + if (this.predicate) { + this._tryPredicate(value); + } + else { + this.count++; + } + }; + CountSubscriber.prototype._tryPredicate = function (value) { + var result; + try { + result = this.predicate(value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.count++; + } + }; + CountSubscriber.prototype._complete = function () { + this.destination.next(this.count); + this.destination.complete(); + }; + return CountSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=count.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/count.js.map b/node_modules/rxjs/internal/operators/count.js.map new file mode 100644 index 00000000..9d098534 --- /dev/null +++ b/node_modules/rxjs/internal/operators/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sources":["../../src/internal/operators/count.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,4CAA2C;AA6D3C,SAAgB,KAAK,CAAI,SAAuE;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAjD,CAAiD,CAAC;AACtF,CAAC;AAFD,sBAEC;AAED;IACE,uBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,mCAAa;IAI5C,yBAAY,WAA6B,EACrB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAClB,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAEO,uCAAa,GAArB,UAAsB,KAAQ;QAC5B,IAAI,MAAW,CAAC;QAEhB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AArCD,CAAiC,uBAAU,GAqC1C"} diff --git a/node_modules/rxjs/internal/operators/debounce.d.ts b/node_modules/rxjs/internal/operators/debounce.d.ts new file mode 100644 index 00000000..3ef496bd --- /dev/null +++ b/node_modules/rxjs/internal/operators/debounce.d.ts @@ -0,0 +1,50 @@ +import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types'; +/** + * Emits a value from the source Observable only after a particular time span + * determined by another Observable has passed without another source emission. + * + * It's like {@link debounceTime}, but the time span of + * emission silence is determined by a second Observable. + * + * ![](debounce.png) + * + * `debounce` delays values emitted by the source Observable, but drops previous + * pending delayed emissions if a new value arrives on the source Observable. + * This operator keeps track of the most recent value from the source + * Observable, and spawns a duration Observable by calling the + * `durationSelector` function. The value is emitted only when the duration + * Observable emits a value or completes, and if no other value was emitted on + * the source Observable since the duration Observable was spawned. If a new + * value appears before the duration Observable emits, the previous value will + * be dropped and will not be emitted on the output Observable. + * + * Like {@link debounceTime}, this is a rate-limiting operator, and also a + * delay-like operator since output emissions do not necessarily occur at the + * same time as they did on the source Observable. + * + * ## Example + * Emit the most recent click after a burst of clicks + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { debounce } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(debounce(() => interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounceTime} + * @see {@link delayWhen} + * @see {@link throttle} + * + * @param {function(value: T): SubscribableOrPromise} durationSelector A function + * that receives a value from the source Observable, for computing the timeout + * duration for each source value, returned as an Observable or a Promise. + * @return {Observable} An Observable that delays the emissions of the source + * Observable by the specified duration Observable returned by + * `durationSelector`, and may drop some values if they occur too frequently. + * @method debounce + * @owner Observable + */ +export declare function debounce(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/debounce.js b/node_modules/rxjs/internal/operators/debounce.js new file mode 100644 index 00000000..84164cf0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/debounce.js @@ -0,0 +1,88 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function debounce(durationSelector) { + return function (source) { return source.lift(new DebounceOperator(durationSelector)); }; +} +exports.debounce = debounce; +var DebounceOperator = (function () { + function DebounceOperator(durationSelector) { + this.durationSelector = durationSelector; + } + DebounceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); + }; + return DebounceOperator; +}()); +var DebounceSubscriber = (function (_super) { + __extends(DebounceSubscriber, _super); + function DebounceSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + return _this; + } + DebounceSubscriber.prototype._next = function (value) { + try { + var result = this.durationSelector.call(this, value); + if (result) { + this._tryNext(value, result); + } + } + catch (err) { + this.destination.error(err); + } + }; + DebounceSubscriber.prototype._complete = function () { + this.emitValue(); + this.destination.complete(); + }; + DebounceSubscriber.prototype._tryNext = function (value, duration) { + var subscription = this.durationSubscription; + this.value = value; + this.hasValue = true; + if (subscription) { + subscription.unsubscribe(); + this.remove(subscription); + } + subscription = innerSubscribe_1.innerSubscribe(duration, new innerSubscribe_1.SimpleInnerSubscriber(this)); + if (subscription && !subscription.closed) { + this.add(this.durationSubscription = subscription); + } + }; + DebounceSubscriber.prototype.notifyNext = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + var value = this.value; + var subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = undefined; + subscription.unsubscribe(); + this.remove(subscription); + } + this.value = undefined; + this.hasValue = false; + _super.prototype._next.call(this, value); + } + }; + return DebounceSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/debounce.js.map b/node_modules/rxjs/internal/operators/debounce.js.map new file mode 100644 index 00000000..40ea6b26 --- /dev/null +++ b/node_modules/rxjs/internal/operators/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sources":["../../src/internal/operators/debounce.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,oDAAiG;AAkDjG,SAAgB,QAAQ,CAAI,gBAA0D;IACpF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAAnD,CAAmD,CAAC;AACxF,CAAC;AAFD,4BAEC;AAED;IACE,0BAAoB,gBAA0D;QAA1D,qBAAgB,GAAhB,gBAAgB,CAA0C;IAC9E,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,uBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAuC,sCAA2B;IAKhE,4BAAY,WAA0B,EAClB,gBAA0D;QAD9E,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,sBAAgB,GAAhB,gBAAgB,CAA0C;QAJtE,cAAQ,GAAG,KAAK,CAAC;;IAMzB,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEvD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;SAC9B;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;IAC/B,CAAC;IAEO,qCAAQ,GAAhB,UAAiB,KAAQ,EAAE,QAAoC;QAC7D,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC3B;QAED,YAAY,GAAG,+BAAc,CAAC,QAAQ,EAAE,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,CAAC;SACpD;IACH,CAAC;IAED,uCAAU,GAAV;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,2CAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,sCAAS,GAAT;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC/C,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;gBACtC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aAC3B;YAMD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,iBAAM,KAAK,YAAC,KAAM,CAAC,CAAC;SACrB;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AArED,CAAuC,sCAAqB,GAqE3D"} diff --git a/node_modules/rxjs/internal/operators/debounceTime.d.ts b/node_modules/rxjs/internal/operators/debounceTime.d.ts new file mode 100644 index 00000000..cc9bc7b7 --- /dev/null +++ b/node_modules/rxjs/internal/operators/debounceTime.d.ts @@ -0,0 +1,54 @@ +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** + * Emits a value from the source Observable only after a particular time span + * has passed without another source emission. + * + * It's like {@link delay}, but passes only the most + * recent value from each burst of emissions. + * + * ![](debounceTime.png) + * + * `debounceTime` delays values emitted by the source Observable, but drops + * previous pending delayed emissions if a new value arrives on the source + * Observable. This operator keeps track of the most recent value from the + * source Observable, and emits that only when `dueTime` enough time has passed + * without any other value appearing on the source Observable. If a new value + * appears before `dueTime` silence occurs, the previous value will be dropped + * and will not be emitted on the output Observable. + * + * This is a rate-limiting operator, because it is impossible for more than one + * value to be emitted in any time window of duration `dueTime`, but it is also + * a delay-like operator since output emissions do not occur at the same time as + * they did on the source Observable. Optionally takes a {@link SchedulerLike} for + * managing timers. + * + * ## Example + * Emit the most recent click after a burst of clicks + * ```ts + * import { fromEvent } from 'rxjs'; + * import { debounceTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(debounceTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link auditTime} + * @see {@link debounce} + * @see {@link delay} + * @see {@link sampleTime} + * @see {@link throttleTime} + * + * @param {number} dueTime The timeout duration in milliseconds (or the time + * unit determined internally by the optional `scheduler`) for the window of + * time required to wait for emission silence before emitting the most recent + * source value. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the timeout for each value. + * @return {Observable} An Observable that delays the emissions of the source + * Observable by the specified `dueTime`, and may drop some values if they occur + * too frequently. + * @method debounceTime + * @owner Observable + */ +export declare function debounceTime(dueTime: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/debounceTime.js b/node_modules/rxjs/internal/operators/debounceTime.js new file mode 100644 index 00000000..df37b185 --- /dev/null +++ b/node_modules/rxjs/internal/operators/debounceTime.js @@ -0,0 +1,76 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var async_1 = require("../scheduler/async"); +function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; +} +exports.debounceTime = debounceTime; +var DebounceTimeOperator = (function () { + function DebounceTimeOperator(dueTime, scheduler) { + this.dueTime = dueTime; + this.scheduler = scheduler; + } + DebounceTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); + }; + return DebounceTimeOperator; +}()); +var DebounceTimeSubscriber = (function (_super) { + __extends(DebounceTimeSubscriber, _super); + function DebounceTimeSubscriber(destination, dueTime, scheduler) { + var _this = _super.call(this, destination) || this; + _this.dueTime = dueTime; + _this.scheduler = scheduler; + _this.debouncedSubscription = null; + _this.lastValue = null; + _this.hasValue = false; + return _this; + } + DebounceTimeSubscriber.prototype._next = function (value) { + this.clearDebounce(); + this.lastValue = value; + this.hasValue = true; + this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); + }; + DebounceTimeSubscriber.prototype._complete = function () { + this.debouncedNext(); + this.destination.complete(); + }; + DebounceTimeSubscriber.prototype.debouncedNext = function () { + this.clearDebounce(); + if (this.hasValue) { + var lastValue = this.lastValue; + this.lastValue = null; + this.hasValue = false; + this.destination.next(lastValue); + } + }; + DebounceTimeSubscriber.prototype.clearDebounce = function () { + var debouncedSubscription = this.debouncedSubscription; + if (debouncedSubscription !== null) { + this.remove(debouncedSubscription); + debouncedSubscription.unsubscribe(); + this.debouncedSubscription = null; + } + }; + return DebounceTimeSubscriber; +}(Subscriber_1.Subscriber)); +function dispatchNext(subscriber) { + subscriber.debouncedNext(); +} +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/debounceTime.js.map b/node_modules/rxjs/internal/operators/debounceTime.js.map new file mode 100644 index 00000000..ea09c217 --- /dev/null +++ b/node_modules/rxjs/internal/operators/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sources":["../../src/internal/operators/debounceTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAE3C,4CAA2C;AAuD3C,SAAgB,YAAY,CAAI,OAAe,EAAE,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC/E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAzD,CAAyD,CAAC;AAC9F,CAAC;AAFD,oCAEC;AAED;IACE,8BAAoB,OAAe,EAAU,SAAwB;QAAjD,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAe;IACrE,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChG,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,0CAAa;IAKnD,gCAAY,WAA0B,EAClB,OAAe,EACf,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAQ;QACf,eAAS,GAAT,SAAS,CAAe;QANpC,2BAAqB,GAAiB,IAAI,CAAC;QAC3C,eAAS,GAAM,IAAI,CAAC;QACpB,cAAQ,GAAY,KAAK,CAAC;;IAMlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnG,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,8CAAa,GAAb;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACT,IAAA,0BAAS,CAAU;YAM3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,8CAAa,GAArB;QACE,IAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEzD,IAAI,qBAAqB,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACnC,qBAAqB,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAhDD,CAAwC,uBAAU,GAgDjD;AAED,SAAS,YAAY,CAAC,UAAuC;IAC3D,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"} diff --git a/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts b/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts new file mode 100644 index 00000000..bd667915 --- /dev/null +++ b/node_modules/rxjs/internal/operators/defaultIfEmpty.d.ts @@ -0,0 +1,3 @@ +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; +export declare function defaultIfEmpty(defaultValue?: T): MonoTypeOperatorFunction; +export declare function defaultIfEmpty(defaultValue?: R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/defaultIfEmpty.js b/node_modules/rxjs/internal/operators/defaultIfEmpty.js new file mode 100644 index 00000000..5c955f39 --- /dev/null +++ b/node_modules/rxjs/internal/operators/defaultIfEmpty.js @@ -0,0 +1,51 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function defaultIfEmpty(defaultValue) { + if (defaultValue === void 0) { defaultValue = null; } + return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); }; +} +exports.defaultIfEmpty = defaultIfEmpty; +var DefaultIfEmptyOperator = (function () { + function DefaultIfEmptyOperator(defaultValue) { + this.defaultValue = defaultValue; + } + DefaultIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); + }; + return DefaultIfEmptyOperator; +}()); +var DefaultIfEmptySubscriber = (function (_super) { + __extends(DefaultIfEmptySubscriber, _super); + function DefaultIfEmptySubscriber(destination, defaultValue) { + var _this = _super.call(this, destination) || this; + _this.defaultValue = defaultValue; + _this.isEmpty = true; + return _this; + } + DefaultIfEmptySubscriber.prototype._next = function (value) { + this.isEmpty = false; + this.destination.next(value); + }; + DefaultIfEmptySubscriber.prototype._complete = function () { + if (this.isEmpty) { + this.destination.next(this.defaultValue); + } + this.destination.complete(); + }; + return DefaultIfEmptySubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=defaultIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map b/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map new file mode 100644 index 00000000..4af7d5d0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sources":["../../src/internal/operators/defaultIfEmpty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA4C3C,SAAgB,cAAc,CAAO,YAAsB;IAAtB,6BAAA,EAAA,mBAAsB;IACzD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAsB,EAA1E,CAA0E,CAAC;AAC/G,CAAC;AAFD,wCAEC;AAED;IAEE,gCAAoB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;IACnC,CAAC;IAED,qCAAI,GAAJ,UAAK,UAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAA6C,4CAAa;IAGxD,kCAAY,WAA8B,EAAU,YAAe;QAAnE,YACE,kBAAM,WAAW,CAAC,SACnB;QAFmD,kBAAY,GAAZ,YAAY,CAAG;QAF3D,aAAO,GAAY,IAAI,CAAC;;IAIhC,CAAC;IAES,wCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,4CAAS,GAAnB;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IACH,+BAAC;AAAD,CAAC,AAlBD,CAA6C,uBAAU,GAkBtD"} diff --git a/node_modules/rxjs/internal/operators/delay.d.ts b/node_modules/rxjs/internal/operators/delay.d.ts new file mode 100644 index 00000000..4b3e2f00 --- /dev/null +++ b/node_modules/rxjs/internal/operators/delay.d.ts @@ -0,0 +1,52 @@ +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** + * Delays the emission of items from the source Observable by a given timeout or + * until a given Date. + * + * Time shifts each item by some specified amount of + * milliseconds. + * + * ![](delay.png) + * + * If the delay argument is a Number, this operator time shifts the source + * Observable by that amount of time expressed in milliseconds. The relative + * time intervals between the values are preserved. + * + * If the delay argument is a Date, this operator time shifts the start of the + * Observable execution until the given date occurs. + * + * ## Examples + * Delay each click by one second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { delay } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second + * delayedClicks.subscribe(x => console.log(x)); + * ``` + * + * Delay all clicks until a future date happens + * ```ts + * import { fromEvent } from 'rxjs'; + * import { delay } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const date = new Date('March 15, 2050 12:00:00'); // in the future + * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date + * delayedClicks.subscribe(x => console.log(x)); + * ``` + * + * @see {@link debounceTime} + * @see {@link delayWhen} + * + * @param {number|Date} delay The delay duration in milliseconds (a `number`) or + * a `Date` until which the emission of the source items is delayed. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the time-shift for each item. + * @return {Observable} An Observable that delays the emissions of the source + * Observable by the specified timeout or Date. + * @method delay + * @owner Observable + */ +export declare function delay(delay: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/delay.js b/node_modules/rxjs/internal/operators/delay.js new file mode 100644 index 00000000..b05d8b82 --- /dev/null +++ b/node_modules/rxjs/internal/operators/delay.js @@ -0,0 +1,105 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var async_1 = require("../scheduler/async"); +var isDate_1 = require("../util/isDate"); +var Subscriber_1 = require("../Subscriber"); +var Notification_1 = require("../Notification"); +function delay(delay, scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + var absoluteDelay = isDate_1.isDate(delay); + var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); + return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; +} +exports.delay = delay; +var DelayOperator = (function () { + function DelayOperator(delay, scheduler) { + this.delay = delay; + this.scheduler = scheduler; + } + DelayOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); + }; + return DelayOperator; +}()); +var DelaySubscriber = (function (_super) { + __extends(DelaySubscriber, _super); + function DelaySubscriber(destination, delay, scheduler) { + var _this = _super.call(this, destination) || this; + _this.delay = delay; + _this.scheduler = scheduler; + _this.queue = []; + _this.active = false; + _this.errored = false; + return _this; + } + DelaySubscriber.dispatch = function (state) { + var source = state.source; + var queue = source.queue; + var scheduler = state.scheduler; + var destination = state.destination; + while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { + queue.shift().notification.observe(destination); + } + if (queue.length > 0) { + var delay_1 = Math.max(0, queue[0].time - scheduler.now()); + this.schedule(state, delay_1); + } + else { + this.unsubscribe(); + source.active = false; + } + }; + DelaySubscriber.prototype._schedule = function (scheduler) { + this.active = true; + var destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + source: this, destination: this.destination, scheduler: scheduler + })); + }; + DelaySubscriber.prototype.scheduleNotification = function (notification) { + if (this.errored === true) { + return; + } + var scheduler = this.scheduler; + var message = new DelayMessage(scheduler.now() + this.delay, notification); + this.queue.push(message); + if (this.active === false) { + this._schedule(scheduler); + } + }; + DelaySubscriber.prototype._next = function (value) { + this.scheduleNotification(Notification_1.Notification.createNext(value)); + }; + DelaySubscriber.prototype._error = function (err) { + this.errored = true; + this.queue = []; + this.destination.error(err); + this.unsubscribe(); + }; + DelaySubscriber.prototype._complete = function () { + this.scheduleNotification(Notification_1.Notification.createComplete()); + this.unsubscribe(); + }; + return DelaySubscriber; +}(Subscriber_1.Subscriber)); +var DelayMessage = (function () { + function DelayMessage(time, notification) { + this.time = time; + this.notification = notification; + } + return DelayMessage; +}()); +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/delay.js.map b/node_modules/rxjs/internal/operators/delay.js.map new file mode 100644 index 00000000..5453347c --- /dev/null +++ b/node_modules/rxjs/internal/operators/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sources":["../../src/internal/operators/delay.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,yCAAwC;AAExC,4CAA2C;AAE3C,gDAA+C;AAsD/C,SAAgB,KAAK,CAAI,KAAkB,EAClB,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IACvD,IAAM,aAAa,GAAG,eAAM,CAAC,KAAK,CAAC,CAAC;IACpC,IAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAS,KAAK,CAAC,CAAC;IACtF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAnD,CAAmD,CAAC;AACxF,CAAC;AALD,sBAKC;AAED;IACE,uBAAoB,KAAa,EACb,SAAwB;QADxB,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACvF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAaD;IAAiC,mCAAa;IAwB5C,yBAAY,WAA0B,EAClB,KAAa,EACb,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,eAAS,GAAT,SAAS,CAAe;QAzBpC,WAAK,GAA2B,EAAE,CAAC;QACnC,YAAM,GAAY,KAAK,CAAC;QACxB,aAAO,GAAY,KAAK,CAAC;;IAyBjC,CAAC;IAvBc,wBAAQ,GAAvB,UAAiE,KAAoB;QACnF,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;YACjE,KAAK,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACjD;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAM,OAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;IACH,CAAC;IAQO,mCAAS,GAAjB,UAAkB,SAAwB;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAgB,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE;YACtF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS;SAClE,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,8CAAoB,GAA5B,UAA6B,YAA6B;QACxD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YACzB,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAM,OAAO,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC3B;IACH,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,oBAAoB,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAES,gCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,oBAAoB,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,sBAAC;AAAD,CAAC,AAnED,CAAiC,uBAAU,GAmE1C;AAED;IACE,sBAA4B,IAAY,EACZ,YAA6B;QAD7B,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAiB;IACzD,CAAC;IACH,mBAAC;AAAD,CAAC,AAJD,IAIC"} diff --git a/node_modules/rxjs/internal/operators/delayWhen.d.ts b/node_modules/rxjs/internal/operators/delayWhen.d.ts new file mode 100644 index 00000000..8ead9aab --- /dev/null +++ b/node_modules/rxjs/internal/operators/delayWhen.d.ts @@ -0,0 +1,5 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction } from '../types'; +/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */ +export declare function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction; +export declare function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/delayWhen.js b/node_modules/rxjs/internal/operators/delayWhen.js new file mode 100644 index 00000000..84ee8270 --- /dev/null +++ b/node_modules/rxjs/internal/operators/delayWhen.js @@ -0,0 +1,146 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var Observable_1 = require("../Observable"); +var OuterSubscriber_1 = require("../OuterSubscriber"); +var subscribeToResult_1 = require("../util/subscribeToResult"); +function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function (source) { + return new SubscriptionDelayObservable(source, subscriptionDelay) + .lift(new DelayWhenOperator(delayDurationSelector)); + }; + } + return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); }; +} +exports.delayWhen = delayWhen; +var DelayWhenOperator = (function () { + function DelayWhenOperator(delayDurationSelector) { + this.delayDurationSelector = delayDurationSelector; + } + DelayWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); + }; + return DelayWhenOperator; +}()); +var DelayWhenSubscriber = (function (_super) { + __extends(DelayWhenSubscriber, _super); + function DelayWhenSubscriber(destination, delayDurationSelector) { + var _this = _super.call(this, destination) || this; + _this.delayDurationSelector = delayDurationSelector; + _this.completed = false; + _this.delayNotifierSubscriptions = []; + _this.index = 0; + return _this; + } + DelayWhenSubscriber.prototype.notifyNext = function (outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.destination.next(outerValue); + this.removeSubscription(innerSub); + this.tryComplete(); + }; + DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) { + var value = this.removeSubscription(innerSub); + if (value) { + this.destination.next(value); + } + this.tryComplete(); + }; + DelayWhenSubscriber.prototype._next = function (value) { + var index = this.index++; + try { + var delayNotifier = this.delayDurationSelector(value, index); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); + } + } + catch (err) { + this.destination.error(err); + } + }; + DelayWhenSubscriber.prototype._complete = function () { + this.completed = true; + this.tryComplete(); + this.unsubscribe(); + }; + DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { + subscription.unsubscribe(); + var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + if (subscriptionIdx !== -1) { + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); + } + return subscription.outerValue; + }; + DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { + var notifierSubscription = subscribeToResult_1.subscribeToResult(this, delayNotifier, value); + if (notifierSubscription && !notifierSubscription.closed) { + var destination = this.destination; + destination.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + }; + DelayWhenSubscriber.prototype.tryComplete = function () { + if (this.completed && this.delayNotifierSubscriptions.length === 0) { + this.destination.complete(); + } + }; + return DelayWhenSubscriber; +}(OuterSubscriber_1.OuterSubscriber)); +var SubscriptionDelayObservable = (function (_super) { + __extends(SubscriptionDelayObservable, _super); + function SubscriptionDelayObservable(source, subscriptionDelay) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subscriptionDelay = subscriptionDelay; + return _this; + } + SubscriptionDelayObservable.prototype._subscribe = function (subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + }; + return SubscriptionDelayObservable; +}(Observable_1.Observable)); +var SubscriptionDelaySubscriber = (function (_super) { + __extends(SubscriptionDelaySubscriber, _super); + function SubscriptionDelaySubscriber(parent, source) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.source = source; + _this.sourceSubscribed = false; + return _this; + } + SubscriptionDelaySubscriber.prototype._next = function (unused) { + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype._error = function (err) { + this.unsubscribe(); + this.parent.error(err); + }; + SubscriptionDelaySubscriber.prototype._complete = function () { + this.unsubscribe(); + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { + if (!this.sourceSubscribed) { + this.sourceSubscribed = true; + this.unsubscribe(); + this.source.subscribe(this.parent); + } + }; + return SubscriptionDelaySubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=delayWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/delayWhen.js.map b/node_modules/rxjs/internal/operators/delayWhen.js.map new file mode 100644 index 00000000..9a4de951 --- /dev/null +++ b/node_modules/rxjs/internal/operators/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sources":["../../src/internal/operators/delayWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/dematerialize.d.ts b/node_modules/rxjs/internal/operators/dematerialize.d.ts new file mode 100644 index 00000000..063d26d1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/dematerialize.d.ts @@ -0,0 +1,49 @@ +import { Notification } from '../Notification'; +import { OperatorFunction } from '../types'; +/** + * Converts an Observable of {@link Notification} objects into the emissions + * that they represent. + * + * Unwraps {@link Notification} objects as actual `next`, + * `error` and `complete` emissions. The opposite of {@link materialize}. + * + * ![](dematerialize.png) + * + * `dematerialize` is assumed to operate an Observable that only emits + * {@link Notification} objects as `next` emissions, and does not emit any + * `error`. Such Observable is the output of a `materialize` operation. Those + * notifications are then unwrapped using the metadata they contain, and emitted + * as `next`, `error`, and `complete` on the output Observable. + * + * Use this operator in conjunction with {@link materialize}. + * + * ## Example + * Convert an Observable of Notifications to an actual Observable + * ```ts + * import { of, Notification } from 'rxjs'; + * import { dematerialize } from 'rxjs/operators'; + * + * const notifA = new Notification('N', 'A'); + * const notifB = new Notification('N', 'B'); + * const notifE = new Notification('E', undefined, + * new TypeError('x.toUpperCase is not a function') + * ); + * const materialized = of(notifA, notifB, notifE); + * const upperCase = materialized.pipe(dematerialize()); + * upperCase.subscribe(x => console.log(x), e => console.error(e)); + * + * // Results in: + * // A + * // B + * // TypeError: x.toUpperCase is not a function + * ``` + * + * @see {@link Notification} + * @see {@link materialize} + * + * @return {Observable} An Observable that emits items and notifications + * embedded in Notification objects emitted by the source Observable. + * @method dematerialize + * @owner Observable + */ +export declare function dematerialize(): OperatorFunction, T>; diff --git a/node_modules/rxjs/internal/operators/dematerialize.js b/node_modules/rxjs/internal/operators/dematerialize.js new file mode 100644 index 00000000..c43aa3ff --- /dev/null +++ b/node_modules/rxjs/internal/operators/dematerialize.js @@ -0,0 +1,41 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function dematerialize() { + return function dematerializeOperatorFunction(source) { + return source.lift(new DeMaterializeOperator()); + }; +} +exports.dematerialize = dematerialize; +var DeMaterializeOperator = (function () { + function DeMaterializeOperator() { + } + DeMaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); + }; + return DeMaterializeOperator; +}()); +var DeMaterializeSubscriber = (function (_super) { + __extends(DeMaterializeSubscriber, _super); + function DeMaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + DeMaterializeSubscriber.prototype._next = function (value) { + value.observe(this.destination); + }; + return DeMaterializeSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=dematerialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/dematerialize.js.map b/node_modules/rxjs/internal/operators/dematerialize.js.map new file mode 100644 index 00000000..0e281162 --- /dev/null +++ b/node_modules/rxjs/internal/operators/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sources":["../../src/internal/operators/dematerialize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAkD3C,SAAgB,aAAa;IAC3B,OAAO,SAAS,6BAA6B,CAAC,MAAmC;QAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAJD,sCAIC;AAED;IAAA;IAIA,CAAC;IAHC,oCAAI,GAAJ,UAAK,UAA2B,EAAE,MAAW;QAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IACH,4BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAmE,2CAAa;IAC9E,iCAAY,WAA4B;eACtC,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,uCAAK,GAAf,UAAgB,KAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IACH,8BAAC;AAAD,CAAC,AARD,CAAmE,uBAAU,GAQ5E"} diff --git a/node_modules/rxjs/internal/operators/distinct.d.ts b/node_modules/rxjs/internal/operators/distinct.d.ts new file mode 100644 index 00000000..c79b577e --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinct.d.ts @@ -0,0 +1,78 @@ +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { MonoTypeOperatorFunction } from '../types'; +import { SimpleOuterSubscriber } from '../innerSubscribe'; +/** + * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items. + * + * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will + * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the + * source observable directly with an equality check against previous values. + * + * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking. + * + * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the + * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct` + * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so + * that the internal `Set` can be "flushed", basically clearing it of values. + * + * ## Examples + * A simple example with numbers + * ```ts + * import { of } from 'rxjs'; + * import { distinct } from 'rxjs/operators'; + * + * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe( + * distinct(), + * ) + * .subscribe(x => console.log(x)); // 1, 2, 3, 4 + * ``` + * + * An example using a keySelector function + * ```typescript + * import { of } from 'rxjs'; + * import { distinct } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * + * of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}, + * ).pipe( + * distinct((p: Person) => p.name), + * ) + * .subscribe(x => console.log(x)); + * + * // displays: + * // { age: 4, name: 'Foo' } + * // { age: 7, name: 'Bar' } + * ``` + * @see {@link distinctUntilChanged} + * @see {@link distinctUntilKeyChanged} + * + * @param {function} [keySelector] Optional function to select which value you want to check as distinct. + * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator. + * @return {Observable} An Observable that emits items from the source Observable with distinct values. + * @method distinct + * @owner Observable + */ +export declare function distinct(keySelector?: (value: T) => K, flushes?: Observable): MonoTypeOperatorFunction; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class DistinctSubscriber extends SimpleOuterSubscriber { + private keySelector?; + private values; + constructor(destination: Subscriber, keySelector?: (value: T) => K, flushes?: Observable); + notifyNext(): void; + notifyError(error: any): void; + protected _next(value: T): void; + private _useKeySelector; + private _finalizeNext; +} diff --git a/node_modules/rxjs/internal/operators/distinct.js b/node_modules/rxjs/internal/operators/distinct.js new file mode 100644 index 00000000..1fd507ad --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinct.js @@ -0,0 +1,78 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function distinct(keySelector, flushes) { + return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); }; +} +exports.distinct = distinct; +var DistinctOperator = (function () { + function DistinctOperator(keySelector, flushes) { + this.keySelector = keySelector; + this.flushes = flushes; + } + DistinctOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); + }; + return DistinctOperator; +}()); +var DistinctSubscriber = (function (_super) { + __extends(DistinctSubscriber, _super); + function DistinctSubscriber(destination, keySelector, flushes) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.values = new Set(); + if (flushes) { + _this.add(innerSubscribe_1.innerSubscribe(flushes, new innerSubscribe_1.SimpleInnerSubscriber(_this))); + } + return _this; + } + DistinctSubscriber.prototype.notifyNext = function () { + this.values.clear(); + }; + DistinctSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + DistinctSubscriber.prototype._next = function (value) { + if (this.keySelector) { + this._useKeySelector(value); + } + else { + this._finalizeNext(value, value); + } + }; + DistinctSubscriber.prototype._useKeySelector = function (value) { + var key; + var destination = this.destination; + try { + key = this.keySelector(value); + } + catch (err) { + destination.error(err); + return; + } + this._finalizeNext(key, value); + }; + DistinctSubscriber.prototype._finalizeNext = function (key, value) { + var values = this.values; + if (!values.has(key)) { + values.add(key); + this.destination.next(value); + } + }; + return DistinctSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +exports.DistinctSubscriber = DistinctSubscriber; +//# sourceMappingURL=distinct.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/distinct.js.map b/node_modules/rxjs/internal/operators/distinct.js.map new file mode 100644 index 00000000..05c9cce6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sources":["../../src/internal/operators/distinct.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,oDAAiG;AA4DjG,SAAgB,QAAQ,CAAO,WAA6B,EAC7B,OAAyB;IACtD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAvD,CAAuD,CAAC;AAC5F,CAAC;AAHD,4BAGC;AAED;IACE,0BAAoB,WAA6B,EAAU,OAAyB;QAAhE,gBAAW,GAAX,WAAW,CAAkB;QAAU,YAAO,GAAP,OAAO,CAAkB;IACpF,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IACH,uBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAA8C,sCAA2B;IAGvE,4BAAY,WAA0B,EAAU,WAA6B,EAAE,OAAyB;QAAxG,YACE,kBAAM,WAAW,CAAC,SAKnB;QAN+C,iBAAW,GAAX,WAAW,CAAkB;QAFrE,YAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAK5B,IAAI,OAAO,EAAE;YACX,KAAI,CAAC,GAAG,CAAC,+BAAc,CAAC,OAAO,EAAE,IAAI,sCAAqB,CAAC,KAAI,CAAC,CAAC,CAAC,CAAC;SACpE;;IACH,CAAC;IAED,uCAAU,GAAV;QACE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,wCAAW,GAAX,UAAY,KAAU;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,4CAAe,GAAvB,UAAwB,KAAQ;QAC9B,IAAI,GAAM,CAAC;QACH,IAAA,8BAAW,CAAU;QAC7B,IAAI;YACF,GAAG,GAAG,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,CAAC;SAChC;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,0CAAa,GAArB,UAAsB,GAAQ,EAAE,KAAQ;QAC9B,IAAA,oBAAM,CAAU;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;IACH,CAAC;IAEH,yBAAC;AAAD,CAAC,AA/CD,CAA8C,sCAAqB,GA+ClE;AA/CY,gDAAkB"} diff --git a/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts b/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts new file mode 100644 index 00000000..74eb5e93 --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinctUntilChanged.d.ts @@ -0,0 +1,3 @@ +import { MonoTypeOperatorFunction } from '../types'; +export declare function distinctUntilChanged(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction; +export declare function distinctUntilChanged(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/distinctUntilChanged.js b/node_modules/rxjs/internal/operators/distinctUntilChanged.js new file mode 100644 index 00000000..58ef57a1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinctUntilChanged.js @@ -0,0 +1,74 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function distinctUntilChanged(compare, keySelector) { + return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; +} +exports.distinctUntilChanged = distinctUntilChanged; +var DistinctUntilChangedOperator = (function () { + function DistinctUntilChangedOperator(compare, keySelector) { + this.compare = compare; + this.keySelector = keySelector; + } + DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); + }; + return DistinctUntilChangedOperator; +}()); +var DistinctUntilChangedSubscriber = (function (_super) { + __extends(DistinctUntilChangedSubscriber, _super); + function DistinctUntilChangedSubscriber(destination, compare, keySelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.hasKey = false; + if (typeof compare === 'function') { + _this.compare = compare; + } + return _this; + } + DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { + return x === y; + }; + DistinctUntilChangedSubscriber.prototype._next = function (value) { + var key; + try { + var keySelector = this.keySelector; + key = keySelector ? keySelector(value) : value; + } + catch (err) { + return this.destination.error(err); + } + var result = false; + if (this.hasKey) { + try { + var compare = this.compare; + result = compare(this.key, key); + } + catch (err) { + return this.destination.error(err); + } + } + else { + this.hasKey = true; + } + if (!result) { + this.key = key; + this.destination.next(value); + } + }; + return DistinctUntilChangedSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map b/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map new file mode 100644 index 00000000..df1be479 --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sources":["../../src/internal/operators/distinctUntilChanged.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AA8D3C,SAAgB,oBAAoB,CAAO,OAAiC,EAAE,WAAyB;IACrG,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,4BAA4B,CAAO,OAAO,EAAE,WAAW,CAAC,CAAC,EAAzE,CAAyE,CAAC;AAC9G,CAAC;AAFD,oDAEC;AAED;IACE,sCAAoB,OAAgC,EAChC,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAyB;QAChC,gBAAW,GAAX,WAAW,CAAa;IAC5C,CAAC;IAED,2CAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,8BAA8B,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;IACH,mCAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAmD,kDAAa;IAI9D,wCAAY,WAA0B,EAC1B,OAAgC,EACxB,WAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAInB;QALmB,iBAAW,GAAX,WAAW,CAAa;QAJpC,YAAM,GAAY,KAAK,CAAC;QAM9B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;;IACH,CAAC;IAEO,gDAAO,GAAf,UAAgB,CAAM,EAAE,CAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAES,8CAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,GAAQ,CAAC;QACb,IAAI;YACM,IAAA,8BAAW,CAAU;YAC7B,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAChD;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI;gBACM,IAAA,sBAAO,CAAU;gBACzB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,qCAAC;AAAD,CAAC,AAzCD,CAAmD,uBAAU,GAyC5D"} diff --git a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts new file mode 100644 index 00000000..bfe67a8e --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.d.ts @@ -0,0 +1,3 @@ +import { MonoTypeOperatorFunction } from '../types'; +export declare function distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction; +export declare function distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js new file mode 100644 index 00000000..f63e466a --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var distinctUntilChanged_1 = require("./distinctUntilChanged"); +function distinctUntilKeyChanged(key, compare) { + return distinctUntilChanged_1.distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; }); +} +exports.distinctUntilKeyChanged = distinctUntilKeyChanged; +//# sourceMappingURL=distinctUntilKeyChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000..b631320e --- /dev/null +++ b/node_modules/rxjs/internal/operators/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../../src/internal/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AA8E9D,SAAgB,uBAAuB,CAAuB,GAAM,EAAE,OAAuC;IAC3G,OAAO,2CAAoB,CAAC,UAAC,CAAI,EAAE,CAAI,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAArD,CAAqD,CAAC,CAAC;AACrG,CAAC;AAFD,0DAEC"} diff --git a/node_modules/rxjs/internal/operators/elementAt.d.ts b/node_modules/rxjs/internal/operators/elementAt.d.ts new file mode 100644 index 00000000..0b960233 --- /dev/null +++ b/node_modules/rxjs/internal/operators/elementAt.d.ts @@ -0,0 +1,50 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Emits the single value at the specified `index` in a sequence of emissions + * from the source Observable. + * + * Emits only the i-th value, then completes. + * + * ![](elementAt.png) + * + * `elementAt` returns an Observable that emits the item at the specified + * `index` in the source Observable, or a default value if that `index` is out + * of range and the `default` argument is provided. If the `default` argument is + * not given and the `index` is out of range, the output Observable will emit an + * `ArgumentOutOfRangeError` error. + * + * ## Example + * Emit only the third click event + * ```ts + * import { fromEvent } from 'rxjs'; + * import { elementAt } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(elementAt(2)); + * result.subscribe(x => console.log(x)); + * + * // Results in: + * // click 1 = nothing + * // click 2 = nothing + * // click 3 = MouseEvent object logged to console + * ``` + * + * @see {@link first} + * @see {@link last} + * @see {@link skip} + * @see {@link single} + * @see {@link take} + * + * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an + * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the + * Observable has completed before emitting the i-th `next` notification. + * + * @param {number} index Is the number `i` for the i-th source emission that has + * happened since the subscription, starting from the number `0`. + * @param {T} [defaultValue] The default value returned for missing indices. + * @return {Observable} An Observable that emits a single item, if it is found. + * Otherwise, will emit the default value if given. If not, then emits an error. + * @method elementAt + * @owner Observable + */ +export declare function elementAt(index: number, defaultValue?: T): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/elementAt.js b/node_modules/rxjs/internal/operators/elementAt.js new file mode 100644 index 00000000..55ff96c7 --- /dev/null +++ b/node_modules/rxjs/internal/operators/elementAt.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError"); +var filter_1 = require("./filter"); +var throwIfEmpty_1 = require("./throwIfEmpty"); +var defaultIfEmpty_1 = require("./defaultIfEmpty"); +var take_1 = require("./take"); +function elementAt(index, defaultValue) { + if (index < 0) { + throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); + } + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(filter_1.filter(function (v, i) { return i === index; }), take_1.take(1), hasDefaultValue + ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) + : throwIfEmpty_1.throwIfEmpty(function () { return new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError(); })); }; +} +exports.elementAt = elementAt; +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/elementAt.js.map b/node_modules/rxjs/internal/operators/elementAt.js.map new file mode 100644 index 00000000..853a912f --- /dev/null +++ b/node_modules/rxjs/internal/operators/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sources":["../../src/internal/operators/elementAt.ts"],"names":[],"mappings":";;AAEA,2EAA0E;AAG1E,mCAAkC;AAClC,+CAA8C;AAC9C,mDAAkD;AAClD,+BAA8B;AAkD9B,SAAgB,SAAS,CAAI,KAAa,EAAE,YAAgB;IAC1D,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,iDAAuB,EAAE,CAAC;KAAE;IACvD,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,eAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,KAAK,EAAX,CAAW,CAAC,EAC7B,WAAI,CAAC,CAAC,CAAC,EACP,eAAe;QACb,CAAC,CAAC,+BAAc,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,2BAAY,CAAC,cAAM,OAAA,IAAI,iDAAuB,EAAE,EAA7B,CAA6B,CAAC,CACtD,EANiC,CAMjC,CAAC;AACJ,CAAC;AAVD,8BAUC"} diff --git a/node_modules/rxjs/internal/operators/endWith.d.ts b/node_modules/rxjs/internal/operators/endWith.d.ts new file mode 100644 index 00000000..4fbb4250 --- /dev/null +++ b/node_modules/rxjs/internal/operators/endWith.d.ts @@ -0,0 +1,24 @@ +import { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction } from '../types'; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(scheduler: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(v1: A, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(v1: A, v2: B, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(v1: A, v2: B, v3: C, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(v1: A, v2: B, v3: C, v4: D, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F, scheduler: SchedulerLike): OperatorFunction; +export declare function endWith(v1: A): OperatorFunction; +export declare function endWith(v1: A, v2: B): OperatorFunction; +export declare function endWith(v1: A, v2: B, v3: C): OperatorFunction; +export declare function endWith(v1: A, v2: B, v3: C, v4: D): OperatorFunction; +export declare function endWith(v1: A, v2: B, v3: C, v4: D, v5: E): OperatorFunction; +export declare function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F): OperatorFunction; +export declare function endWith(...array: Z[]): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export declare function endWith(...array: Array): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/endWith.js b/node_modules/rxjs/internal/operators/endWith.js new file mode 100644 index 00000000..028bd4e6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/endWith.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var concat_1 = require("../observable/concat"); +var of_1 = require("../observable/of"); +function endWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; + } + return function (source) { return concat_1.concat(source, of_1.of.apply(void 0, array)); }; +} +exports.endWith = endWith; +//# sourceMappingURL=endWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/endWith.js.map b/node_modules/rxjs/internal/operators/endWith.js.map new file mode 100644 index 00000000..67e08f65 --- /dev/null +++ b/node_modules/rxjs/internal/operators/endWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"endWith.js","sources":["../../src/internal/operators/endWith.ts"],"names":[],"mappings":";;AACA,+CAA8C;AAC9C,uCAAsC;AA8DtC,SAAgB,OAAO;IAAI,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAC3D,OAAO,UAAC,MAAqB,IAAK,OAAA,eAAM,CAAC,MAAM,EAAE,OAAE,eAAI,KAAK,EAAmB,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,0BAEC"} diff --git a/node_modules/rxjs/internal/operators/every.d.ts b/node_modules/rxjs/internal/operators/every.d.ts new file mode 100644 index 00000000..a99efaaa --- /dev/null +++ b/node_modules/rxjs/internal/operators/every.d.ts @@ -0,0 +1,24 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Returns an Observable that emits whether or not every item of the source satisfies the condition specified. + * + * ## Example + * A simple example emitting true if all elements are less than 5, false otherwise + * ```ts + * import { of } from 'rxjs'; + * import { every } from 'rxjs/operators'; + * + * of(1, 2, 3, 4, 5, 6).pipe( + * every(x => x < 5), + * ) + * .subscribe(x => console.log(x)); // -> false + * ``` + * + * @param {function} predicate A function for determining if an item meets a specified condition. + * @param {any} [thisArg] Optional object to use for `this` in the callback. + * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified. + * @method every + * @owner Observable + */ +export declare function every(predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/every.js b/node_modules/rxjs/internal/operators/every.js new file mode 100644 index 00000000..91892153 --- /dev/null +++ b/node_modules/rxjs/internal/operators/every.js @@ -0,0 +1,65 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function every(predicate, thisArg) { + return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); }; +} +exports.every = every; +var EveryOperator = (function () { + function EveryOperator(predicate, thisArg, source) { + this.predicate = predicate; + this.thisArg = thisArg; + this.source = source; + } + EveryOperator.prototype.call = function (observer, source) { + return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); + }; + return EveryOperator; +}()); +var EverySubscriber = (function (_super) { + __extends(EverySubscriber, _super); + function EverySubscriber(destination, predicate, thisArg, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.source = source; + _this.index = 0; + _this.thisArg = thisArg || _this; + return _this; + } + EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { + this.destination.next(everyValueMatch); + this.destination.complete(); + }; + EverySubscriber.prototype._next = function (value) { + var result = false; + try { + result = this.predicate.call(this.thisArg, value, this.index++, this.source); + } + catch (err) { + this.destination.error(err); + return; + } + if (!result) { + this.notifyComplete(false); + } + }; + EverySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return EverySubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=every.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/every.js.map b/node_modules/rxjs/internal/operators/every.js.map new file mode 100644 index 00000000..502036e8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sources":["../../src/internal/operators/every.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAwB3C,SAAgB,KAAK,CAAI,SAAsE,EACtE,OAAa;IACpC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAA1D,CAA0D,CAAC;AAC/F,CAAC;AAHD,sBAGC;AAED;IACE,uBAAoB,SAAsE,EACtE,OAAa,EACb,MAAsB;QAFtB,cAAS,GAAT,SAAS,CAA6D;QACtE,YAAO,GAAP,OAAO,CAAM;QACb,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,4BAAI,GAAJ,UAAK,QAA6B,EAAE,MAAW;QAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAiC,mCAAa;IAG5C,yBAAY,WAA8B,EACtB,SAAsE,EACtE,OAAY,EACZ,MAAsB;QAH1C,YAIE,kBAAM,WAAW,CAAC,SAEnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,aAAO,GAAP,OAAO,CAAK;QACZ,YAAM,GAAN,MAAM,CAAgB;QALlC,WAAK,GAAW,CAAC,CAAC;QAOxB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAEO,wCAAc,GAAtB,UAAuB,eAAwB;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,+BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9E;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC;IAES,mCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,CAAiC,uBAAU,GAiC1C"} diff --git a/node_modules/rxjs/internal/operators/exhaust.d.ts b/node_modules/rxjs/internal/operators/exhaust.d.ts new file mode 100644 index 00000000..d4a1e676 --- /dev/null +++ b/node_modules/rxjs/internal/operators/exhaust.d.ts @@ -0,0 +1,3 @@ +import { ObservableInput, OperatorFunction } from '../types'; +export declare function exhaust(): OperatorFunction, T>; +export declare function exhaust(): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/exhaust.js b/node_modules/rxjs/internal/operators/exhaust.js new file mode 100644 index 00000000..b42928e5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/exhaust.js @@ -0,0 +1,57 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function exhaust() { + return function (source) { return source.lift(new SwitchFirstOperator()); }; +} +exports.exhaust = exhaust; +var SwitchFirstOperator = (function () { + function SwitchFirstOperator() { + } + SwitchFirstOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); + }; + return SwitchFirstOperator; +}()); +var SwitchFirstSubscriber = (function (_super) { + __extends(SwitchFirstSubscriber, _super); + function SwitchFirstSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasCompleted = false; + _this.hasSubscription = false; + return _this; + } + SwitchFirstSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(innerSubscribe_1.innerSubscribe(value, new innerSubscribe_1.SimpleInnerSubscriber(this))); + } + }; + SwitchFirstSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + }; + SwitchFirstSubscriber.prototype.notifyComplete = function () { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return SwitchFirstSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/exhaust.js.map b/node_modules/rxjs/internal/operators/exhaust.js.map new file mode 100644 index 00000000..f0ced3aa --- /dev/null +++ b/node_modules/rxjs/internal/operators/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sources":["../../src/internal/operators/exhaust.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,oDAAiG;AAiDjG,SAAgB,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAK,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAFD,0BAEC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,yCAA2B;IAIhE,+BAAY,WAA0B;QAAtC,YACE,kBAAM,WAAW,CAAC,SACnB;QALO,kBAAY,GAAY,KAAK,CAAC;QAC9B,qBAAe,GAAY,KAAK,CAAC;;IAIzC,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,+BAAc,CAAC,KAAK,EAAE,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClE;IACH,CAAC;IAES,yCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IAED,8CAAc,GAAd;QACE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IACH,4BAAC;AAAD,CAAC,AA5BD,CAAuC,sCAAqB,GA4B3D"} diff --git a/node_modules/rxjs/internal/operators/exhaustMap.d.ts b/node_modules/rxjs/internal/operators/exhaustMap.d.ts new file mode 100644 index 00000000..840948a7 --- /dev/null +++ b/node_modules/rxjs/internal/operators/exhaustMap.d.ts @@ -0,0 +1,6 @@ +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +export declare function exhaustMap>(project: (value: T, index: number) => O): OperatorFunction>; +/** @deprecated resultSelector is no longer supported. Use inner map instead. */ +export declare function exhaustMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; +/** @deprecated resultSelector is no longer supported. Use inner map instead. */ +export declare function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/exhaustMap.js b/node_modules/rxjs/internal/operators/exhaustMap.js new file mode 100644 index 00000000..39c01b85 --- /dev/null +++ b/node_modules/rxjs/internal/operators/exhaustMap.js @@ -0,0 +1,95 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var map_1 = require("./map"); +var from_1 = require("../observable/from"); +var innerSubscribe_1 = require("../innerSubscribe"); +function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function (source) { return source.pipe(exhaustMap(function (a, i) { return from_1.from(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; + } + return function (source) { + return source.lift(new ExhaustMapOperator(project)); + }; +} +exports.exhaustMap = exhaustMap; +var ExhaustMapOperator = (function () { + function ExhaustMapOperator(project) { + this.project = project; + } + ExhaustMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); + }; + return ExhaustMapOperator; +}()); +var ExhaustMapSubscriber = (function (_super) { + __extends(ExhaustMapSubscriber, _super); + function ExhaustMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.hasSubscription = false; + _this.hasCompleted = false; + _this.index = 0; + return _this; + } + ExhaustMapSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.tryNext(value); + } + }; + ExhaustMapSubscriber.prototype.tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.hasSubscription = true; + this._innerSub(result); + }; + ExhaustMapSubscriber.prototype._innerSub = function (result) { + var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe_1.innerSubscribe(result, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + ExhaustMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + this.unsubscribe(); + }; + ExhaustMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + ExhaustMapSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + ExhaustMapSubscriber.prototype.notifyComplete = function () { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return ExhaustMapSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/exhaustMap.js.map b/node_modules/rxjs/internal/operators/exhaustMap.js.map new file mode 100644 index 00000000..b2bee982 --- /dev/null +++ b/node_modules/rxjs/internal/operators/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sources":["../../src/internal/operators/exhaustMap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/expand.d.ts b/node_modules/rxjs/internal/operators/expand.d.ts new file mode 100644 index 00000000..c2305d2e --- /dev/null +++ b/node_modules/rxjs/internal/operators/expand.d.ts @@ -0,0 +1,34 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types'; +import { SimpleOuterSubscriber } from '../innerSubscribe'; +export declare function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +export declare function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; +export declare class ExpandOperator implements Operator { + private project; + private concurrent; + private scheduler?; + constructor(project: (value: T, index: number) => ObservableInput, concurrent: number, scheduler?: SchedulerLike); + call(subscriber: Subscriber, source: any): any; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class ExpandSubscriber extends SimpleOuterSubscriber { + private project; + private concurrent; + private scheduler?; + private index; + private active; + private hasCompleted; + private buffer?; + constructor(destination: Subscriber, project: (value: T, index: number) => ObservableInput, concurrent: number, scheduler?: SchedulerLike); + private static dispatch; + protected _next(value: any): void; + private subscribeToProjection; + protected _complete(): void; + notifyNext(innerValue: R): void; + notifyComplete(): void; +} diff --git a/node_modules/rxjs/internal/operators/expand.js b/node_modules/rxjs/internal/operators/expand.js new file mode 100644 index 00000000..a77c1bd1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/expand.js @@ -0,0 +1,111 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function expand(project, concurrent, scheduler) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); }; +} +exports.expand = expand; +var ExpandOperator = (function () { + function ExpandOperator(project, concurrent, scheduler) { + this.project = project; + this.concurrent = concurrent; + this.scheduler = scheduler; + } + ExpandOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); + }; + return ExpandOperator; +}()); +exports.ExpandOperator = ExpandOperator; +var ExpandSubscriber = (function (_super) { + __extends(ExpandSubscriber, _super); + function ExpandSubscriber(destination, project, concurrent, scheduler) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.scheduler = scheduler; + _this.index = 0; + _this.active = 0; + _this.hasCompleted = false; + if (concurrent < Number.POSITIVE_INFINITY) { + _this.buffer = []; + } + return _this; + } + ExpandSubscriber.dispatch = function (arg) { + var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index; + subscriber.subscribeToProjection(result, value, index); + }; + ExpandSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (destination.closed) { + this._complete(); + return; + } + var index = this.index++; + if (this.active < this.concurrent) { + destination.next(value); + try { + var project = this.project; + var result = project(value, index); + if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } + else { + var state = { subscriber: this, result: result, value: value, index: index }; + var destination_1 = this.destination; + destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + } + } + catch (e) { + destination.error(e); + } + } + else { + this.buffer.push(value); + } + }; + ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { + this.active++; + var destination = this.destination; + destination.add(innerSubscribe_1.innerSubscribe(result, new innerSubscribe_1.SimpleInnerSubscriber(this))); + }; + ExpandSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + this.unsubscribe(); + }; + ExpandSubscriber.prototype.notifyNext = function (innerValue) { + this._next(innerValue); + }; + ExpandSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer && buffer.length > 0) { + this._next(buffer.shift()); + } + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + }; + return ExpandSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +exports.ExpandSubscriber = ExpandSubscriber; +//# sourceMappingURL=expand.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/expand.js.map b/node_modules/rxjs/internal/operators/expand.js.map new file mode 100644 index 00000000..ada40d59 --- /dev/null +++ b/node_modules/rxjs/internal/operators/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sources":["../../src/internal/operators/expand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,oDAAiG;AA2DjG,SAAgB,MAAM,CAAO,OAAwD,EACxD,UAA6C,EAC7C,SAAyB;IADzB,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAExE,UAAU,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;IAE3E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,EAA/D,CAA+D,CAAC;AACpG,CAAC;AAND,wBAMC;AAED;IACE,wBAAoB,OAAwD,EACxD,UAAkB,EAClB,SAAyB;QAFzB,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAgB;IAC7C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3G,CAAC;IACH,qBAAC;AAAD,CAAC,AATD,IASC;AATY,wCAAc;AAuB3B;IAA4C,oCAA2B;IAMrE,0BAAY,WAA0B,EAClB,OAAwD,EACxD,UAAkB,EAClB,SAAyB;QAH7C,YAIE,kBAAM,WAAW,CAAC,SAInB;QAPmB,aAAO,GAAP,OAAO,CAAiD;QACxD,gBAAU,GAAV,UAAU,CAAQ;QAClB,eAAS,GAAT,SAAS,CAAgB;QARrC,WAAK,GAAW,CAAC,CAAC;QAClB,YAAM,GAAW,CAAC,CAAC;QACnB,kBAAY,GAAY,KAAK,CAAC;QAQpC,IAAI,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE;YACzC,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SAClB;;IACH,CAAC;IAEc,yBAAQ,GAAvB,UAA8B,GAAsB;QAC3C,IAAA,2BAAU,EAAE,mBAAM,EAAE,iBAAK,EAAE,iBAAK,CAAQ;QAC/C,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAU;QACxB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;SACR;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,WAAW,CAAC,IAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI;gBACM,IAAA,sBAAO,CAAU;gBACzB,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACnB,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBAClD;qBAAM;oBACL,IAAM,KAAK,GAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAC;oBAC5E,IAAM,aAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;oBACrD,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAoB,gBAAgB,CAAC,QAAe,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;iBACzG;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,WAAW,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC;aACvB;SACF;aAAM;YACL,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;IACH,CAAC;IAEO,gDAAqB,GAA7B,UAA8B,MAAW,EAAE,KAAQ,EAAE,KAAa;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,+BAAc,CAAC,MAAM,EAAE,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,qCAAU,GAAV,UAAW,UAAa;QACtB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,yCAAc,GAAd;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AA9ED,CAA4C,sCAAqB,GA8EhE;AA9EY,4CAAgB"} diff --git a/node_modules/rxjs/internal/operators/filter.d.ts b/node_modules/rxjs/internal/operators/filter.d.ts new file mode 100644 index 00000000..b4c9bba8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/filter.d.ts @@ -0,0 +1,3 @@ +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; +export declare function filter(predicate: (value: T, index: number) => value is S, thisArg?: any): OperatorFunction; +export declare function filter(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/filter.js b/node_modules/rxjs/internal/operators/filter.js new file mode 100644 index 00000000..11ebd79f --- /dev/null +++ b/node_modules/rxjs/internal/operators/filter.js @@ -0,0 +1,57 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function filter(predicate, thisArg) { + return function filterOperatorFunction(source) { + return source.lift(new FilterOperator(predicate, thisArg)); + }; +} +exports.filter = filter; +var FilterOperator = (function () { + function FilterOperator(predicate, thisArg) { + this.predicate = predicate; + this.thisArg = thisArg; + } + FilterOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); + }; + return FilterOperator; +}()); +var FilterSubscriber = (function (_super) { + __extends(FilterSubscriber, _super); + function FilterSubscriber(destination, predicate, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.thisArg = thisArg; + _this.count = 0; + return _this; + } + FilterSubscriber.prototype._next = function (value) { + var result; + try { + result = this.predicate.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.destination.next(value); + } + }; + return FilterSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/filter.js.map b/node_modules/rxjs/internal/operators/filter.js.map new file mode 100644 index 00000000..3d84b191 --- /dev/null +++ b/node_modules/rxjs/internal/operators/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sources":["../../src/internal/operators/filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAwD3C,SAAgB,MAAM,CAAI,SAA+C,EAC/C,OAAa;IACrC,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AALD,wBAKC;AAED;IACE,wBAAoB,SAA+C,EAC/C,OAAa;QADb,cAAS,GAAT,SAAS,CAAsC;QAC/C,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,oCAAa;IAI7C,0BAAY,WAA0B,EAClB,SAA+C,EAC/C,OAAY;QAFhC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAsC;QAC/C,aAAO,GAAP,OAAO,CAAK;QAJhC,WAAK,GAAW,CAAC,CAAC;;IAMlB,CAAC;IAIS,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACjE;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAxBD,CAAkC,uBAAU,GAwB3C"} diff --git a/node_modules/rxjs/internal/operators/finalize.d.ts b/node_modules/rxjs/internal/operators/finalize.d.ts new file mode 100644 index 00000000..0dcc0f59 --- /dev/null +++ b/node_modules/rxjs/internal/operators/finalize.d.ts @@ -0,0 +1,10 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that mirrors the source Observable, but will call a specified function when + * the source terminates on complete or error. + * @param {function} callback Function to be called when source terminates. + * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination. + * @method finally + * @owner Observable + */ +export declare function finalize(callback: () => void): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/finalize.js b/node_modules/rxjs/internal/operators/finalize.js new file mode 100644 index 00000000..855db40c --- /dev/null +++ b/node_modules/rxjs/internal/operators/finalize.js @@ -0,0 +1,40 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var Subscription_1 = require("../Subscription"); +function finalize(callback) { + return function (source) { return source.lift(new FinallyOperator(callback)); }; +} +exports.finalize = finalize; +var FinallyOperator = (function () { + function FinallyOperator(callback) { + this.callback = callback; + } + FinallyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FinallySubscriber(subscriber, this.callback)); + }; + return FinallyOperator; +}()); +var FinallySubscriber = (function (_super) { + __extends(FinallySubscriber, _super); + function FinallySubscriber(destination, callback) { + var _this = _super.call(this, destination) || this; + _this.add(new Subscription_1.Subscription(callback)); + return _this; + } + return FinallySubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=finalize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/finalize.js.map b/node_modules/rxjs/internal/operators/finalize.js.map new file mode 100644 index 00000000..ef4f02c1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/finalize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finalize.js","sources":["../../src/internal/operators/finalize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,gDAA+C;AAY/C,SAAgB,QAAQ,CAAI,QAAoB;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC,EAA1C,CAA0C,CAAC;AAC/E,CAAC;AAFD,4BAEC;AAED;IACE,yBAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IACxC,CAAC;IAED,8BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IACH,sBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAmC,qCAAa;IAC9C,2BAAY,WAA0B,EAAE,QAAoB;QAA5D,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,GAAG,CAAC,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;;IACvC,CAAC;IACH,wBAAC;AAAD,CAAC,AALD,CAAmC,uBAAU,GAK5C"} diff --git a/node_modules/rxjs/internal/operators/find.d.ts b/node_modules/rxjs/internal/operators/find.d.ts new file mode 100644 index 00000000..9da68504 --- /dev/null +++ b/node_modules/rxjs/internal/operators/find.d.ts @@ -0,0 +1,30 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { OperatorFunction } from '../types'; +export declare function find(predicate: (value: T, index: number, source: Observable) => value is S, thisArg?: any): OperatorFunction; +export declare function find(predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any): OperatorFunction; +export declare class FindValueOperator implements Operator { + private predicate; + private source; + private yieldIndex; + private thisArg?; + constructor(predicate: (value: T, index: number, source: Observable) => boolean, source: Observable, yieldIndex: boolean, thisArg?: any); + call(observer: Subscriber, source: any): any; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class FindValueSubscriber extends Subscriber { + private predicate; + private source; + private yieldIndex; + private thisArg?; + private index; + constructor(destination: Subscriber, predicate: (value: T, index: number, source: Observable) => boolean, source: Observable, yieldIndex: boolean, thisArg?: any); + private notifyComplete; + protected _next(value: T): void; + protected _complete(): void; +} diff --git a/node_modules/rxjs/internal/operators/find.js b/node_modules/rxjs/internal/operators/find.js new file mode 100644 index 00000000..899eb8ed --- /dev/null +++ b/node_modules/rxjs/internal/operators/find.js @@ -0,0 +1,73 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function find(predicate, thisArg) { + if (typeof predicate !== 'function') { + throw new TypeError('predicate is not a function'); + } + return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); }; +} +exports.find = find; +var FindValueOperator = (function () { + function FindValueOperator(predicate, source, yieldIndex, thisArg) { + this.predicate = predicate; + this.source = source; + this.yieldIndex = yieldIndex; + this.thisArg = thisArg; + } + FindValueOperator.prototype.call = function (observer, source) { + return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); + }; + return FindValueOperator; +}()); +exports.FindValueOperator = FindValueOperator; +var FindValueSubscriber = (function (_super) { + __extends(FindValueSubscriber, _super); + function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.yieldIndex = yieldIndex; + _this.thisArg = thisArg; + _this.index = 0; + return _this; + } + FindValueSubscriber.prototype.notifyComplete = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + this.unsubscribe(); + }; + FindValueSubscriber.prototype._next = function (value) { + var _a = this, predicate = _a.predicate, thisArg = _a.thisArg; + var index = this.index++; + try { + var result = predicate.call(thisArg || this, value, index, this.source); + if (result) { + this.notifyComplete(this.yieldIndex ? index : value); + } + } + catch (err) { + this.destination.error(err); + } + }; + FindValueSubscriber.prototype._complete = function () { + this.notifyComplete(this.yieldIndex ? -1 : undefined); + }; + return FindValueSubscriber; +}(Subscriber_1.Subscriber)); +exports.FindValueSubscriber = FindValueSubscriber; +//# sourceMappingURL=find.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/find.js.map b/node_modules/rxjs/internal/operators/find.js.map new file mode 100644 index 00000000..ab624520 --- /dev/null +++ b/node_modules/rxjs/internal/operators/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sources":["../../src/internal/operators/find.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAAyC;AA8CzC,SAAgB,IAAI,CAAI,SAAsE,EACtE,OAAa;IACnC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAC;KACpD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAA8B,EAAlG,CAAkG,CAAC;AACvI,CAAC;AAND,oBAMC;AAED;IACE,2BAAoB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAHb,cAAS,GAAT,SAAS,CAA6D;QACtE,WAAM,GAAN,MAAM,CAAe;QACrB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;IACjC,CAAC;IAED,gCAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzH,CAAC;IACH,wBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,8CAAiB;AAiB9B;IAA4C,uCAAa;IAGvD,6BAAY,WAA0B,EAClB,SAAsE,EACtE,MAAqB,EACrB,UAAmB,EACnB,OAAa;QAJjC,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,eAAS,GAAT,SAAS,CAA6D;QACtE,YAAM,GAAN,MAAM,CAAe;QACrB,gBAAU,GAAV,UAAU,CAAS;QACnB,aAAO,GAAP,OAAO,CAAM;QANzB,WAAK,GAAW,CAAC,CAAC;;IAQ1B,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAU;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QAChB,IAAA,SAA2B,EAA1B,wBAAS,EAAE,oBAAO,CAAS;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,IAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1E,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACtD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IACH,0BAAC;AAAD,CAAC,AAnCD,CAA4C,uBAAU,GAmCrD;AAnCY,kDAAmB"} diff --git a/node_modules/rxjs/internal/operators/findIndex.d.ts b/node_modules/rxjs/internal/operators/findIndex.d.ts new file mode 100644 index 00000000..036117e5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/findIndex.d.ts @@ -0,0 +1,43 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Emits only the index of the first value emitted by the source Observable that + * meets some condition. + * + * It's like {@link find}, but emits the index of the + * found value, not the value itself. + * + * ![](findIndex.png) + * + * `findIndex` searches for the first item in the source Observable that matches + * the specified condition embodied by the `predicate`, and returns the + * (zero-based) index of the first occurrence in the source. Unlike + * {@link first}, the `predicate` is required in `findIndex`, and does not emit + * an error if a valid value is not found. + * + * ## Example + * Emit the index of first click that happens on a DIV element + * ```ts + * import { fromEvent } from 'rxjs'; + * import { findIndex } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV')); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link filter} + * @see {@link find} + * @see {@link first} + * @see {@link take} + * + * @param {function(value: T, index: number, source: Observable): boolean} predicate + * A function called with each item to test for condition matching. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {Observable} An Observable of the index of the first item that + * matches the condition. + * @method find + * @owner Observable + */ +export declare function findIndex(predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/findIndex.js b/node_modules/rxjs/internal/operators/findIndex.js new file mode 100644 index 00000000..255982c9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/findIndex.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var find_1 = require("../operators/find"); +function findIndex(predicate, thisArg) { + return function (source) { return source.lift(new find_1.FindValueOperator(predicate, source, true, thisArg)); }; +} +exports.findIndex = findIndex; +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/findIndex.js.map b/node_modules/rxjs/internal/operators/findIndex.js.map new file mode 100644 index 00000000..be3d4c9a --- /dev/null +++ b/node_modules/rxjs/internal/operators/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sources":["../../src/internal/operators/findIndex.ts"],"names":[],"mappings":";;AACA,0CAAsD;AA0CtD,SAAgB,SAAS,CAAI,SAAsE,EACtE,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,wBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAoB,EAAvF,CAAuF,CAAC;AAC5H,CAAC;AAHD,8BAGC"} diff --git a/node_modules/rxjs/internal/operators/first.d.ts b/node_modules/rxjs/internal/operators/first.d.ts new file mode 100644 index 00000000..53523e54 --- /dev/null +++ b/node_modules/rxjs/internal/operators/first.d.ts @@ -0,0 +1,5 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../../internal/types'; +export declare function first(predicate?: null, defaultValue?: D): OperatorFunction; +export declare function first(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S): OperatorFunction; +export declare function first(predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/first.js b/node_modules/rxjs/internal/operators/first.js new file mode 100644 index 00000000..1eb7f093 --- /dev/null +++ b/node_modules/rxjs/internal/operators/first.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var EmptyError_1 = require("../util/EmptyError"); +var filter_1 = require("./filter"); +var take_1 = require("./take"); +var defaultIfEmpty_1 = require("./defaultIfEmpty"); +var throwIfEmpty_1 = require("./throwIfEmpty"); +var identity_1 = require("../util/identity"); +function first(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? filter_1.filter(function (v, i) { return predicate(v, i, source); }) : identity_1.identity, take_1.take(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function () { return new EmptyError_1.EmptyError(); })); }; +} +exports.first = first; +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/first.js.map b/node_modules/rxjs/internal/operators/first.js.map new file mode 100644 index 00000000..56d058ff --- /dev/null +++ b/node_modules/rxjs/internal/operators/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sources":["../../src/internal/operators/first.ts"],"names":[],"mappings":";;AAGA,iDAAgD;AAEhD,mCAAkC;AAClC,+BAA8B;AAC9B,mDAAkD;AAClD,+CAA8C;AAC9C,6CAA4C;AAuE5C,SAAgB,KAAK,CACnB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,mBAAQ,EAChE,WAAI,CAAC,CAAC,CAAC,EACP,eAAe,CAAC,CAAC,CAAC,+BAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,2BAAY,CAAC,cAAM,OAAA,IAAI,uBAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC;AAVD,sBAUC"} diff --git a/node_modules/rxjs/internal/operators/groupBy.d.ts b/node_modules/rxjs/internal/operators/groupBy.d.ts new file mode 100644 index 00000000..2125babf --- /dev/null +++ b/node_modules/rxjs/internal/operators/groupBy.d.ts @@ -0,0 +1,32 @@ +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { OperatorFunction } from '../types'; +export declare function groupBy(keySelector: (value: T) => K): OperatorFunction>; +export declare function groupBy(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable) => Observable): OperatorFunction>; +export declare function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable): OperatorFunction>; +export declare function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable, subjectSelector?: () => Subject): OperatorFunction>; +export interface RefCountSubscription { + count: number; + unsubscribe: () => void; + closed: boolean; + attemptedToUnsubscribe: boolean; +} +/** + * An Observable representing values belonging to the same group represented by + * a common key. The values emitted by a GroupedObservable come from the source + * Observable. The common key is available as the field `key` on a + * GroupedObservable instance. + * + * @class GroupedObservable + */ +export declare class GroupedObservable extends Observable { + key: K; + private groupSubject; + private refCountSubscription?; + /** @deprecated Do not construct this type. Internal use only */ + constructor(key: K, groupSubject: Subject, refCountSubscription?: RefCountSubscription); + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; +} diff --git a/node_modules/rxjs/internal/operators/groupBy.js b/node_modules/rxjs/internal/operators/groupBy.js new file mode 100644 index 00000000..116ddab8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/groupBy.js @@ -0,0 +1,196 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var Subscription_1 = require("../Subscription"); +var Observable_1 = require("../Observable"); +var Subject_1 = require("../Subject"); +function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { + return function (source) { + return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); + }; +} +exports.groupBy = groupBy; +var GroupByOperator = (function () { + function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) { + this.keySelector = keySelector; + this.elementSelector = elementSelector; + this.durationSelector = durationSelector; + this.subjectSelector = subjectSelector; + } + GroupByOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); + }; + return GroupByOperator; +}()); +var GroupBySubscriber = (function (_super) { + __extends(GroupBySubscriber, _super); + function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.elementSelector = elementSelector; + _this.durationSelector = durationSelector; + _this.subjectSelector = subjectSelector; + _this.groups = null; + _this.attemptedToUnsubscribe = false; + _this.count = 0; + return _this; + } + GroupBySubscriber.prototype._next = function (value) { + var key; + try { + key = this.keySelector(value); + } + catch (err) { + this.error(err); + return; + } + this._group(value, key); + }; + GroupBySubscriber.prototype._group = function (value, key) { + var groups = this.groups; + if (!groups) { + groups = this.groups = new Map(); + } + var group = groups.get(key); + var element; + if (this.elementSelector) { + try { + element = this.elementSelector(value); + } + catch (err) { + this.error(err); + } + } + else { + element = value; + } + if (!group) { + group = (this.subjectSelector ? this.subjectSelector() : new Subject_1.Subject()); + groups.set(key, group); + var groupedObservable = new GroupedObservable(key, group, this); + this.destination.next(groupedObservable); + if (this.durationSelector) { + var duration = void 0; + try { + duration = this.durationSelector(new GroupedObservable(key, group)); + } + catch (err) { + this.error(err); + return; + } + this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); + } + } + if (!group.closed) { + group.next(element); + } + }; + GroupBySubscriber.prototype._error = function (err) { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.error(err); + }); + groups.clear(); + } + this.destination.error(err); + }; + GroupBySubscriber.prototype._complete = function () { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.complete(); + }); + groups.clear(); + } + this.destination.complete(); + }; + GroupBySubscriber.prototype.removeGroup = function (key) { + this.groups.delete(key); + }; + GroupBySubscriber.prototype.unsubscribe = function () { + if (!this.closed) { + this.attemptedToUnsubscribe = true; + if (this.count === 0) { + _super.prototype.unsubscribe.call(this); + } + } + }; + return GroupBySubscriber; +}(Subscriber_1.Subscriber)); +var GroupDurationSubscriber = (function (_super) { + __extends(GroupDurationSubscriber, _super); + function GroupDurationSubscriber(key, group, parent) { + var _this = _super.call(this, group) || this; + _this.key = key; + _this.group = group; + _this.parent = parent; + return _this; + } + GroupDurationSubscriber.prototype._next = function (value) { + this.complete(); + }; + GroupDurationSubscriber.prototype._unsubscribe = function () { + var _a = this, parent = _a.parent, key = _a.key; + this.key = this.parent = null; + if (parent) { + parent.removeGroup(key); + } + }; + return GroupDurationSubscriber; +}(Subscriber_1.Subscriber)); +var GroupedObservable = (function (_super) { + __extends(GroupedObservable, _super); + function GroupedObservable(key, groupSubject, refCountSubscription) { + var _this = _super.call(this) || this; + _this.key = key; + _this.groupSubject = groupSubject; + _this.refCountSubscription = refCountSubscription; + return _this; + } + GroupedObservable.prototype._subscribe = function (subscriber) { + var subscription = new Subscription_1.Subscription(); + var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject; + if (refCountSubscription && !refCountSubscription.closed) { + subscription.add(new InnerRefCountSubscription(refCountSubscription)); + } + subscription.add(groupSubject.subscribe(subscriber)); + return subscription; + }; + return GroupedObservable; +}(Observable_1.Observable)); +exports.GroupedObservable = GroupedObservable; +var InnerRefCountSubscription = (function (_super) { + __extends(InnerRefCountSubscription, _super); + function InnerRefCountSubscription(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + parent.count++; + return _this; + } + InnerRefCountSubscription.prototype.unsubscribe = function () { + var parent = this.parent; + if (!parent.closed && !this.closed) { + _super.prototype.unsubscribe.call(this); + parent.count -= 1; + if (parent.count === 0 && parent.attemptedToUnsubscribe) { + parent.unsubscribe(); + } + } + }; + return InnerRefCountSubscription; +}(Subscription_1.Subscription)); +//# sourceMappingURL=groupBy.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/groupBy.js.map b/node_modules/rxjs/internal/operators/groupBy.js.map new file mode 100644 index 00000000..95f7fe2a --- /dev/null +++ b/node_modules/rxjs/internal/operators/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sources":["../../src/internal/operators/groupBy.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/ignoreElements.d.ts b/node_modules/rxjs/internal/operators/ignoreElements.d.ts new file mode 100644 index 00000000..ba78b739 --- /dev/null +++ b/node_modules/rxjs/internal/operators/ignoreElements.d.ts @@ -0,0 +1,29 @@ +import { OperatorFunction } from '../types'; +/** + * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`. + * + * ![](ignoreElements.png) + * + * ## Examples + * ### Ignores emitted values, reacts to observable's completion. + * ```ts + * import { of } from 'rxjs'; + * import { ignoreElements } from 'rxjs/operators'; + * + * of('you', 'talking', 'to', 'me').pipe( + * ignoreElements(), + * ) + * .subscribe( + * word => console.log(word), + * err => console.log('error:', err), + * () => console.log('the end'), + * ); + * // result: + * // 'the end' + * ``` + * @return {Observable} An empty Observable that only calls `complete` + * or `error`, based on which one is called by the source Observable. + * @method ignoreElements + * @owner Observable + */ +export declare function ignoreElements(): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/ignoreElements.js b/node_modules/rxjs/internal/operators/ignoreElements.js new file mode 100644 index 00000000..ea43cd21 --- /dev/null +++ b/node_modules/rxjs/internal/operators/ignoreElements.js @@ -0,0 +1,40 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function ignoreElements() { + return function ignoreElementsOperatorFunction(source) { + return source.lift(new IgnoreElementsOperator()); + }; +} +exports.ignoreElements = ignoreElements; +var IgnoreElementsOperator = (function () { + function IgnoreElementsOperator() { + } + IgnoreElementsOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + }; + return IgnoreElementsOperator; +}()); +var IgnoreElementsSubscriber = (function (_super) { + __extends(IgnoreElementsSubscriber, _super); + function IgnoreElementsSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + IgnoreElementsSubscriber.prototype._next = function (unused) { + }; + return IgnoreElementsSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/ignoreElements.js.map b/node_modules/rxjs/internal/operators/ignoreElements.js.map new file mode 100644 index 00000000..94a3ed8d --- /dev/null +++ b/node_modules/rxjs/internal/operators/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sources":["../../src/internal/operators/ignoreElements.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA8B3C,SAAgB,cAAc;IAC5B,OAAO,SAAS,8BAA8B,CAAC,MAAuB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAJD,wCAIC;AAED;IAAA;IAIA,CAAC;IAHC,qCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IACH,6BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAA0C,4CAAa;IAAvD;;IAIA,CAAC;IAHW,wCAAK,GAAf,UAAgB,MAAS;IAEzB,CAAC;IACH,+BAAC;AAAD,CAAC,AAJD,CAA0C,uBAAU,GAInD"} diff --git a/node_modules/rxjs/internal/operators/index.d.ts b/node_modules/rxjs/internal/operators/index.d.ts new file mode 100644 index 00000000..73215595 --- /dev/null +++ b/node_modules/rxjs/internal/operators/index.d.ts @@ -0,0 +1,102 @@ +export { audit } from './audit'; +export { auditTime } from './auditTime'; +export { buffer } from './buffer'; +export { bufferCount } from './bufferCount'; +export { bufferTime } from './bufferTime'; +export { bufferToggle } from './bufferToggle'; +export { bufferWhen } from './bufferWhen'; +export { catchError } from './catchError'; +export { combineAll } from './combineAll'; +export { combineLatest } from './combineLatest'; +export { concat } from './concat'; +export { concatAll } from './concatAll'; +export { concatMap } from './concatMap'; +export { concatMapTo } from './concatMapTo'; +export { count } from './count'; +export { debounce } from './debounce'; +export { debounceTime } from './debounceTime'; +export { defaultIfEmpty } from './defaultIfEmpty'; +export { delay } from './delay'; +export { delayWhen } from './delayWhen'; +export { dematerialize } from './dematerialize'; +export { distinct } from './distinct'; +export { distinctUntilChanged } from './distinctUntilChanged'; +export { distinctUntilKeyChanged } from './distinctUntilKeyChanged'; +export { elementAt } from './elementAt'; +export { every } from './every'; +export { exhaust } from './exhaust'; +export { exhaustMap } from './exhaustMap'; +export { expand } from './expand'; +export { filter } from './filter'; +export { finalize } from './finalize'; +export { find } from './find'; +export { findIndex } from './findIndex'; +export { first } from './first'; +export { groupBy } from './groupBy'; +export { ignoreElements } from './ignoreElements'; +export { isEmpty } from './isEmpty'; +export { last } from './last'; +export { map } from './map'; +export { mapTo } from './mapTo'; +export { materialize } from './materialize'; +export { max } from './max'; +export { merge } from './merge'; +export { mergeAll } from './mergeAll'; +export { mergeMap } from './mergeMap'; +export { mergeMap as flatMap } from './mergeMap'; +export { mergeMapTo } from './mergeMapTo'; +export { mergeScan } from './mergeScan'; +export { min } from './min'; +export { multicast } from './multicast'; +export { observeOn } from './observeOn'; +export { onErrorResumeNext } from './onErrorResumeNext'; +export { pairwise } from './pairwise'; +export { partition } from './partition'; +export { pluck } from './pluck'; +export { publish } from './publish'; +export { publishBehavior } from './publishBehavior'; +export { publishLast } from './publishLast'; +export { publishReplay } from './publishReplay'; +export { race } from './race'; +export { reduce } from './reduce'; +export { repeat } from './repeat'; +export { repeatWhen } from './repeatWhen'; +export { retry } from './retry'; +export { retryWhen } from './retryWhen'; +export { refCount } from './refCount'; +export { sample } from './sample'; +export { sampleTime } from './sampleTime'; +export { scan } from './scan'; +export { sequenceEqual } from './sequenceEqual'; +export { share } from './share'; +export { shareReplay } from './shareReplay'; +export { single } from './single'; +export { skip } from './skip'; +export { skipLast } from './skipLast'; +export { skipUntil } from './skipUntil'; +export { skipWhile } from './skipWhile'; +export { startWith } from './startWith'; +export { subscribeOn } from './subscribeOn'; +export { switchAll } from './switchAll'; +export { switchMap } from './switchMap'; +export { switchMapTo } from './switchMapTo'; +export { take } from './take'; +export { takeLast } from './takeLast'; +export { takeUntil } from './takeUntil'; +export { takeWhile } from './takeWhile'; +export { tap } from './tap'; +export { throttle } from './throttle'; +export { throttleTime } from './throttleTime'; +export { timeInterval } from './timeInterval'; +export { timeout } from './timeout'; +export { timeoutWith } from './timeoutWith'; +export { timestamp } from './timestamp'; +export { toArray } from './toArray'; +export { window } from './window'; +export { windowCount } from './windowCount'; +export { windowTime } from './windowTime'; +export { windowToggle } from './windowToggle'; +export { windowWhen } from './windowWhen'; +export { withLatestFrom } from './withLatestFrom'; +export { zip } from './zip'; +export { zipAll } from './zipAll'; diff --git a/node_modules/rxjs/internal/operators/index.js b/node_modules/rxjs/internal/operators/index.js new file mode 100644 index 00000000..b83f9461 --- /dev/null +++ b/node_modules/rxjs/internal/operators/index.js @@ -0,0 +1,207 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var audit_1 = require("./audit"); +exports.audit = audit_1.audit; +var auditTime_1 = require("./auditTime"); +exports.auditTime = auditTime_1.auditTime; +var buffer_1 = require("./buffer"); +exports.buffer = buffer_1.buffer; +var bufferCount_1 = require("./bufferCount"); +exports.bufferCount = bufferCount_1.bufferCount; +var bufferTime_1 = require("./bufferTime"); +exports.bufferTime = bufferTime_1.bufferTime; +var bufferToggle_1 = require("./bufferToggle"); +exports.bufferToggle = bufferToggle_1.bufferToggle; +var bufferWhen_1 = require("./bufferWhen"); +exports.bufferWhen = bufferWhen_1.bufferWhen; +var catchError_1 = require("./catchError"); +exports.catchError = catchError_1.catchError; +var combineAll_1 = require("./combineAll"); +exports.combineAll = combineAll_1.combineAll; +var combineLatest_1 = require("./combineLatest"); +exports.combineLatest = combineLatest_1.combineLatest; +var concat_1 = require("./concat"); +exports.concat = concat_1.concat; +var concatAll_1 = require("./concatAll"); +exports.concatAll = concatAll_1.concatAll; +var concatMap_1 = require("./concatMap"); +exports.concatMap = concatMap_1.concatMap; +var concatMapTo_1 = require("./concatMapTo"); +exports.concatMapTo = concatMapTo_1.concatMapTo; +var count_1 = require("./count"); +exports.count = count_1.count; +var debounce_1 = require("./debounce"); +exports.debounce = debounce_1.debounce; +var debounceTime_1 = require("./debounceTime"); +exports.debounceTime = debounceTime_1.debounceTime; +var defaultIfEmpty_1 = require("./defaultIfEmpty"); +exports.defaultIfEmpty = defaultIfEmpty_1.defaultIfEmpty; +var delay_1 = require("./delay"); +exports.delay = delay_1.delay; +var delayWhen_1 = require("./delayWhen"); +exports.delayWhen = delayWhen_1.delayWhen; +var dematerialize_1 = require("./dematerialize"); +exports.dematerialize = dematerialize_1.dematerialize; +var distinct_1 = require("./distinct"); +exports.distinct = distinct_1.distinct; +var distinctUntilChanged_1 = require("./distinctUntilChanged"); +exports.distinctUntilChanged = distinctUntilChanged_1.distinctUntilChanged; +var distinctUntilKeyChanged_1 = require("./distinctUntilKeyChanged"); +exports.distinctUntilKeyChanged = distinctUntilKeyChanged_1.distinctUntilKeyChanged; +var elementAt_1 = require("./elementAt"); +exports.elementAt = elementAt_1.elementAt; +var every_1 = require("./every"); +exports.every = every_1.every; +var exhaust_1 = require("./exhaust"); +exports.exhaust = exhaust_1.exhaust; +var exhaustMap_1 = require("./exhaustMap"); +exports.exhaustMap = exhaustMap_1.exhaustMap; +var expand_1 = require("./expand"); +exports.expand = expand_1.expand; +var filter_1 = require("./filter"); +exports.filter = filter_1.filter; +var finalize_1 = require("./finalize"); +exports.finalize = finalize_1.finalize; +var find_1 = require("./find"); +exports.find = find_1.find; +var findIndex_1 = require("./findIndex"); +exports.findIndex = findIndex_1.findIndex; +var first_1 = require("./first"); +exports.first = first_1.first; +var groupBy_1 = require("./groupBy"); +exports.groupBy = groupBy_1.groupBy; +var ignoreElements_1 = require("./ignoreElements"); +exports.ignoreElements = ignoreElements_1.ignoreElements; +var isEmpty_1 = require("./isEmpty"); +exports.isEmpty = isEmpty_1.isEmpty; +var last_1 = require("./last"); +exports.last = last_1.last; +var map_1 = require("./map"); +exports.map = map_1.map; +var mapTo_1 = require("./mapTo"); +exports.mapTo = mapTo_1.mapTo; +var materialize_1 = require("./materialize"); +exports.materialize = materialize_1.materialize; +var max_1 = require("./max"); +exports.max = max_1.max; +var merge_1 = require("./merge"); +exports.merge = merge_1.merge; +var mergeAll_1 = require("./mergeAll"); +exports.mergeAll = mergeAll_1.mergeAll; +var mergeMap_1 = require("./mergeMap"); +exports.mergeMap = mergeMap_1.mergeMap; +var mergeMap_2 = require("./mergeMap"); +exports.flatMap = mergeMap_2.mergeMap; +var mergeMapTo_1 = require("./mergeMapTo"); +exports.mergeMapTo = mergeMapTo_1.mergeMapTo; +var mergeScan_1 = require("./mergeScan"); +exports.mergeScan = mergeScan_1.mergeScan; +var min_1 = require("./min"); +exports.min = min_1.min; +var multicast_1 = require("./multicast"); +exports.multicast = multicast_1.multicast; +var observeOn_1 = require("./observeOn"); +exports.observeOn = observeOn_1.observeOn; +var onErrorResumeNext_1 = require("./onErrorResumeNext"); +exports.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext; +var pairwise_1 = require("./pairwise"); +exports.pairwise = pairwise_1.pairwise; +var partition_1 = require("./partition"); +exports.partition = partition_1.partition; +var pluck_1 = require("./pluck"); +exports.pluck = pluck_1.pluck; +var publish_1 = require("./publish"); +exports.publish = publish_1.publish; +var publishBehavior_1 = require("./publishBehavior"); +exports.publishBehavior = publishBehavior_1.publishBehavior; +var publishLast_1 = require("./publishLast"); +exports.publishLast = publishLast_1.publishLast; +var publishReplay_1 = require("./publishReplay"); +exports.publishReplay = publishReplay_1.publishReplay; +var race_1 = require("./race"); +exports.race = race_1.race; +var reduce_1 = require("./reduce"); +exports.reduce = reduce_1.reduce; +var repeat_1 = require("./repeat"); +exports.repeat = repeat_1.repeat; +var repeatWhen_1 = require("./repeatWhen"); +exports.repeatWhen = repeatWhen_1.repeatWhen; +var retry_1 = require("./retry"); +exports.retry = retry_1.retry; +var retryWhen_1 = require("./retryWhen"); +exports.retryWhen = retryWhen_1.retryWhen; +var refCount_1 = require("./refCount"); +exports.refCount = refCount_1.refCount; +var sample_1 = require("./sample"); +exports.sample = sample_1.sample; +var sampleTime_1 = require("./sampleTime"); +exports.sampleTime = sampleTime_1.sampleTime; +var scan_1 = require("./scan"); +exports.scan = scan_1.scan; +var sequenceEqual_1 = require("./sequenceEqual"); +exports.sequenceEqual = sequenceEqual_1.sequenceEqual; +var share_1 = require("./share"); +exports.share = share_1.share; +var shareReplay_1 = require("./shareReplay"); +exports.shareReplay = shareReplay_1.shareReplay; +var single_1 = require("./single"); +exports.single = single_1.single; +var skip_1 = require("./skip"); +exports.skip = skip_1.skip; +var skipLast_1 = require("./skipLast"); +exports.skipLast = skipLast_1.skipLast; +var skipUntil_1 = require("./skipUntil"); +exports.skipUntil = skipUntil_1.skipUntil; +var skipWhile_1 = require("./skipWhile"); +exports.skipWhile = skipWhile_1.skipWhile; +var startWith_1 = require("./startWith"); +exports.startWith = startWith_1.startWith; +var subscribeOn_1 = require("./subscribeOn"); +exports.subscribeOn = subscribeOn_1.subscribeOn; +var switchAll_1 = require("./switchAll"); +exports.switchAll = switchAll_1.switchAll; +var switchMap_1 = require("./switchMap"); +exports.switchMap = switchMap_1.switchMap; +var switchMapTo_1 = require("./switchMapTo"); +exports.switchMapTo = switchMapTo_1.switchMapTo; +var take_1 = require("./take"); +exports.take = take_1.take; +var takeLast_1 = require("./takeLast"); +exports.takeLast = takeLast_1.takeLast; +var takeUntil_1 = require("./takeUntil"); +exports.takeUntil = takeUntil_1.takeUntil; +var takeWhile_1 = require("./takeWhile"); +exports.takeWhile = takeWhile_1.takeWhile; +var tap_1 = require("./tap"); +exports.tap = tap_1.tap; +var throttle_1 = require("./throttle"); +exports.throttle = throttle_1.throttle; +var throttleTime_1 = require("./throttleTime"); +exports.throttleTime = throttleTime_1.throttleTime; +var timeInterval_1 = require("./timeInterval"); +exports.timeInterval = timeInterval_1.timeInterval; +var timeout_1 = require("./timeout"); +exports.timeout = timeout_1.timeout; +var timeoutWith_1 = require("./timeoutWith"); +exports.timeoutWith = timeoutWith_1.timeoutWith; +var timestamp_1 = require("./timestamp"); +exports.timestamp = timestamp_1.timestamp; +var toArray_1 = require("./toArray"); +exports.toArray = toArray_1.toArray; +var window_1 = require("./window"); +exports.window = window_1.window; +var windowCount_1 = require("./windowCount"); +exports.windowCount = windowCount_1.windowCount; +var windowTime_1 = require("./windowTime"); +exports.windowTime = windowTime_1.windowTime; +var windowToggle_1 = require("./windowToggle"); +exports.windowToggle = windowToggle_1.windowToggle; +var windowWhen_1 = require("./windowWhen"); +exports.windowWhen = windowWhen_1.windowWhen; +var withLatestFrom_1 = require("./withLatestFrom"); +exports.withLatestFrom = withLatestFrom_1.withLatestFrom; +var zip_1 = require("./zip"); +exports.zip = zip_1.zip; +var zipAll_1 = require("./zipAll"); +exports.zipAll = zipAll_1.zipAll; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/index.js.map b/node_modules/rxjs/internal/operators/index.js.map new file mode 100644 index 00000000..d2d604f9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../src/internal/operators/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/isEmpty.d.ts b/node_modules/rxjs/internal/operators/isEmpty.d.ts new file mode 100644 index 00000000..404d14c1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/isEmpty.d.ts @@ -0,0 +1,61 @@ +import { OperatorFunction } from '../types'; +/** + * Emits false if the input observable emits any values, or emits true if the + * input observable completes without emitting any values. + * + * Tells whether any values are emitted by an observable + * + * ![](isEmpty.png) + * + * `isEmpty` transforms an Observable that emits values into an Observable that + * emits a single boolean value representing whether or not any values were + * emitted by the source Observable. As soon as the source Observable emits a + * value, `isEmpty` will emit a `false` and complete. If the source Observable + * completes having not emitted anything, `isEmpty` will emit a `true` and + * complete. + * + * A similar effect could be achieved with {@link count}, but `isEmpty` can emit + * a `false` value sooner. + * + * ## Examples + * + * Emit `false` for a non-empty Observable + * ```javascript + * import { Subject } from 'rxjs'; + * import { isEmpty } from 'rxjs/operators'; + * + * const source = new Subject(); + * const result = source.pipe(isEmpty()); + * source.subscribe(x => console.log(x)); + * result.subscribe(x => console.log(x)); + * source.next('a'); + * source.next('b'); + * source.next('c'); + * source.complete(); + * + * // Results in: + * // a + * // false + * // b + * // c + * ``` + * + * Emit `true` for an empty Observable + * ```javascript + * import { EMPTY } from 'rxjs'; + * import { isEmpty } from 'rxjs/operators'; + * + * const result = EMPTY.pipe(isEmpty()); + * result.subscribe(x => console.log(x)); + * // Results in: + * // true + * ``` + * + * @see {@link count} + * @see {@link EMPTY} + * + * @return {OperatorFunction} An Observable of a boolean value indicating whether observable was empty or not + * @method isEmpty + * @owner Observable + */ +export declare function isEmpty(): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/isEmpty.js b/node_modules/rxjs/internal/operators/isEmpty.js new file mode 100644 index 00000000..83091414 --- /dev/null +++ b/node_modules/rxjs/internal/operators/isEmpty.js @@ -0,0 +1,47 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function isEmpty() { + return function (source) { return source.lift(new IsEmptyOperator()); }; +} +exports.isEmpty = isEmpty; +var IsEmptyOperator = (function () { + function IsEmptyOperator() { + } + IsEmptyOperator.prototype.call = function (observer, source) { + return source.subscribe(new IsEmptySubscriber(observer)); + }; + return IsEmptyOperator; +}()); +var IsEmptySubscriber = (function (_super) { + __extends(IsEmptySubscriber, _super); + function IsEmptySubscriber(destination) { + return _super.call(this, destination) || this; + } + IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) { + var destination = this.destination; + destination.next(isEmpty); + destination.complete(); + }; + IsEmptySubscriber.prototype._next = function (value) { + this.notifyComplete(false); + }; + IsEmptySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return IsEmptySubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=isEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/isEmpty.js.map b/node_modules/rxjs/internal/operators/isEmpty.js.map new file mode 100644 index 00000000..e37d07fd --- /dev/null +++ b/node_modules/rxjs/internal/operators/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sources":["../../src/internal/operators/isEmpty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAgE3C,SAAgB,OAAO;IACrB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,EAAlC,CAAkC,CAAC;AACvE,CAAC;AAFD,0BAEC;AAED;IAAA;IAIA,CAAC;IAHC,8BAAI,GAAJ,UAAM,QAA6B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAgC,qCAAe;IAC7C,2BAAY,WAAgC;eAC1C,kBAAM,WAAW,CAAC;IACpB,CAAC;IAEO,0CAAc,GAAtB,UAAuB,OAAgB;QACrC,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,iCAAK,GAAf,UAAgB,KAAc;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAES,qCAAS,GAAnB;QACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACH,wBAAC;AAAD,CAAC,AAnBD,CAAgC,uBAAU,GAmBzC"} diff --git a/node_modules/rxjs/internal/operators/last.d.ts b/node_modules/rxjs/internal/operators/last.d.ts new file mode 100644 index 00000000..b34069fc --- /dev/null +++ b/node_modules/rxjs/internal/operators/last.d.ts @@ -0,0 +1,5 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../../internal/types'; +export declare function last(predicate?: null, defaultValue?: D): OperatorFunction; +export declare function last(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S): OperatorFunction; +export declare function last(predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/last.js b/node_modules/rxjs/internal/operators/last.js new file mode 100644 index 00000000..19fc0a9a --- /dev/null +++ b/node_modules/rxjs/internal/operators/last.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var EmptyError_1 = require("../util/EmptyError"); +var filter_1 = require("./filter"); +var takeLast_1 = require("./takeLast"); +var throwIfEmpty_1 = require("./throwIfEmpty"); +var defaultIfEmpty_1 = require("./defaultIfEmpty"); +var identity_1 = require("../util/identity"); +function last(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? filter_1.filter(function (v, i) { return predicate(v, i, source); }) : identity_1.identity, takeLast_1.takeLast(1), hasDefaultValue ? defaultIfEmpty_1.defaultIfEmpty(defaultValue) : throwIfEmpty_1.throwIfEmpty(function () { return new EmptyError_1.EmptyError(); })); }; +} +exports.last = last; +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/last.js.map b/node_modules/rxjs/internal/operators/last.js.map new file mode 100644 index 00000000..966952b4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sources":["../../src/internal/operators/last.ts"],"names":[],"mappings":";;AAGA,iDAAgD;AAEhD,mCAAkC;AAClC,uCAAsC;AACtC,+CAA8C;AAC9C,mDAAkD;AAClD,6CAA4C;AAkC5C,SAAgB,IAAI,CAClB,SAAgF,EAChF,YAAgB;IAEhB,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9C,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,mBAAQ,EAChE,mBAAQ,CAAC,CAAC,CAAC,EACX,eAAe,CAAC,CAAC,CAAC,+BAAc,CAAQ,YAAY,CAAC,CAAC,CAAC,CAAC,2BAAY,CAAC,cAAM,OAAA,IAAI,uBAAU,EAAE,EAAhB,CAAgB,CAAC,CAC7F,EAJiC,CAIjC,CAAC;AACJ,CAAC;AAVD,oBAUC"} diff --git a/node_modules/rxjs/internal/operators/map.d.ts b/node_modules/rxjs/internal/operators/map.d.ts new file mode 100644 index 00000000..6a4e0ab4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/map.d.ts @@ -0,0 +1,49 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { OperatorFunction } from '../types'; +/** + * Applies a given `project` function to each value emitted by the source + * Observable, and emits the resulting values as an Observable. + * + * Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map), + * it passes each source value through a transformation function to get + * corresponding output values. + * + * ![](map.png) + * + * Similar to the well known `Array.prototype.map` function, this operator + * applies a projection to each value and emits that projection in the output + * Observable. + * + * ## Example + * Map every click to the clientX position of that click + * ```ts + * import { fromEvent } from 'rxjs'; + * import { map } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const positions = clicks.pipe(map(ev => ev.clientX)); + * positions.subscribe(x => console.log(x)); + * ``` + * + * @see {@link mapTo} + * @see {@link pluck} + * + * @param {function(value: T, index: number): R} project The function to apply + * to each `value` emitted by the source Observable. The `index` parameter is + * the number `i` for the i-th emission that has happened since the + * subscription, starting from the number `0`. + * @param {any} [thisArg] An optional argument to define what `this` is in the + * `project` function. + * @return {Observable} An Observable that emits the values from the source + * Observable transformed by the given `project` function. + * @method map + * @owner Observable + */ +export declare function map(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction; +export declare class MapOperator implements Operator { + private project; + private thisArg; + constructor(project: (value: T, index: number) => R, thisArg: any); + call(subscriber: Subscriber, source: any): any; +} diff --git a/node_modules/rxjs/internal/operators/map.js b/node_modules/rxjs/internal/operators/map.js new file mode 100644 index 00000000..29bb1662 --- /dev/null +++ b/node_modules/rxjs/internal/operators/map.js @@ -0,0 +1,59 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function map(project, thisArg) { + return function mapOperation(source) { + if (typeof project !== 'function') { + throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); + } + return source.lift(new MapOperator(project, thisArg)); + }; +} +exports.map = map; +var MapOperator = (function () { + function MapOperator(project, thisArg) { + this.project = project; + this.thisArg = thisArg; + } + MapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); + }; + return MapOperator; +}()); +exports.MapOperator = MapOperator; +var MapSubscriber = (function (_super) { + __extends(MapSubscriber, _super); + function MapSubscriber(destination, project, thisArg) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.count = 0; + _this.thisArg = thisArg || _this; + return _this; + } + MapSubscriber.prototype._next = function (value) { + var result; + try { + result = this.project.call(this.thisArg, value, this.count++); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return MapSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/map.js.map b/node_modules/rxjs/internal/operators/map.js.map new file mode 100644 index 00000000..e8e5ddec --- /dev/null +++ b/node_modules/rxjs/internal/operators/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sources":["../../src/internal/operators/map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AA2C3C,SAAgB,GAAG,CAAO,OAAuC,EAAE,OAAa;IAC9E,OAAO,SAAS,YAAY,CAAC,MAAqB;QAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;SACnF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC;AAPD,kBAOC;AAED;IACE,qBAAoB,OAAuC,EAAU,OAAY;QAA7D,YAAO,GAAP,OAAO,CAAgC;QAAU,YAAO,GAAP,OAAO,CAAK;IACjF,CAAC;IAED,0BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,kBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,kCAAW;AAcxB;IAAkC,iCAAa;IAI7C,uBAAY,WAA0B,EAClB,OAAuC,EAC/C,OAAY;QAFxB,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,aAAO,GAAP,OAAO,CAAgC;QAJ3D,WAAK,GAAW,CAAC,CAAC;QAOhB,KAAI,CAAC,OAAO,GAAG,OAAO,IAAI,KAAI,CAAC;;IACjC,CAAC;IAIS,6BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,MAAS,CAAC;QACd,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/D;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,oBAAC;AAAD,CAAC,AAvBD,CAAkC,uBAAU,GAuB3C"} diff --git a/node_modules/rxjs/internal/operators/mapTo.d.ts b/node_modules/rxjs/internal/operators/mapTo.d.ts new file mode 100644 index 00000000..f4cf9f6f --- /dev/null +++ b/node_modules/rxjs/internal/operators/mapTo.d.ts @@ -0,0 +1,34 @@ +import { OperatorFunction } from '../types'; +/** + * Emits the given constant value on the output Observable every time the source + * Observable emits a value. + * + * Like {@link map}, but it maps every source value to + * the same output value every time. + * + * ![](mapTo.png) + * + * Takes a constant `value` as argument, and emits that whenever the source + * Observable emits a value. In other words, ignores the actual source value, + * and simply uses the emission moment to know when to emit the given `value`. + * + * ## Example + * Map every click to the string 'Hi' + * ```ts + * import { fromEvent } from 'rxjs'; + * import { mapTo } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const greetings = clicks.pipe(mapTo('Hi')); + * greetings.subscribe(x => console.log(x)); + * ``` + * + * @see {@link map} + * + * @param {any} value The value to map each source value to. + * @return {Observable} An Observable that emits the given `value` every time + * the source Observable emits something. + * @method mapTo + * @owner Observable + */ +export declare function mapTo(value: R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/mapTo.js b/node_modules/rxjs/internal/operators/mapTo.js new file mode 100644 index 00000000..1433a34d --- /dev/null +++ b/node_modules/rxjs/internal/operators/mapTo.js @@ -0,0 +1,42 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function mapTo(value) { + return function (source) { return source.lift(new MapToOperator(value)); }; +} +exports.mapTo = mapTo; +var MapToOperator = (function () { + function MapToOperator(value) { + this.value = value; + } + MapToOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapToSubscriber(subscriber, this.value)); + }; + return MapToOperator; +}()); +var MapToSubscriber = (function (_super) { + __extends(MapToSubscriber, _super); + function MapToSubscriber(destination, value) { + var _this = _super.call(this, destination) || this; + _this.value = value; + return _this; + } + MapToSubscriber.prototype._next = function (x) { + this.destination.next(this.value); + }; + return MapToSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=mapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/mapTo.js.map b/node_modules/rxjs/internal/operators/mapTo.js.map new file mode 100644 index 00000000..803ca328 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sources":["../../src/internal/operators/mapTo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAoC3C,SAAgB,KAAK,CAAO,KAAQ;IAClC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC;AAFD,sBAEC;AAED;IAIE,uBAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IACH,oBAAC;AAAD,CAAC,AAXD,IAWC;AAOD;IAAoC,mCAAa;IAI/C,yBAAY,WAA0B,EAAE,KAAQ;QAAhD,YACE,kBAAM,WAAW,CAAC,SAEnB;QADC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;IACrB,CAAC;IAES,+BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACH,sBAAC;AAAD,CAAC,AAZD,CAAoC,uBAAU,GAY7C"} diff --git a/node_modules/rxjs/internal/operators/materialize.d.ts b/node_modules/rxjs/internal/operators/materialize.d.ts new file mode 100644 index 00000000..82b9e5ad --- /dev/null +++ b/node_modules/rxjs/internal/operators/materialize.d.ts @@ -0,0 +1,53 @@ +import { Notification } from '../Notification'; +import { OperatorFunction } from '../types'; +/** + * Represents all of the notifications from the source Observable as `next` + * emissions marked with their original types within {@link Notification} + * objects. + * + * Wraps `next`, `error` and `complete` emissions in + * {@link Notification} objects, emitted as `next` on the output Observable. + * + * + * ![](materialize.png) + * + * `materialize` returns an Observable that emits a `next` notification for each + * `next`, `error`, or `complete` emission of the source Observable. When the + * source Observable emits `complete`, the output Observable will emit `next` as + * a Notification of type "complete", and then it will emit `complete` as well. + * When the source Observable emits `error`, the output will emit `next` as a + * Notification of type "error", and then `complete`. + * + * This operator is useful for producing metadata of the source Observable, to + * be consumed as `next` emissions. Use it in conjunction with + * {@link dematerialize}. + * + * ## Example + * Convert a faulty Observable to an Observable of Notifications + * ```ts + * import { of } from 'rxjs'; + * import { materialize, map } from 'rxjs/operators'; + * + * const letters = of('a', 'b', 13, 'd'); + * const upperCase = letters.pipe(map(x => x.toUpperCase())); + * const materialized = upperCase.pipe(materialize()); + * materialized.subscribe(x => console.log(x)); + * + * // Results in the following: + * // - Notification {kind: "N", value: "A", error: undefined, hasValue: true} + * // - Notification {kind: "N", value: "B", error: undefined, hasValue: true} + * // - Notification {kind: "E", value: undefined, error: TypeError: + * // x.toUpperCase is not a function at MapSubscriber.letters.map.x + * // [as project] (http://1…, hasValue: false} + * ``` + * + * @see {@link Notification} + * @see {@link dematerialize} + * + * @return {Observable>} An Observable that emits + * {@link Notification} objects that wrap the original emissions from the source + * Observable with metadata. + * @method materialize + * @owner Observable + */ +export declare function materialize(): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/materialize.js b/node_modules/rxjs/internal/operators/materialize.js new file mode 100644 index 00000000..61aeb683 --- /dev/null +++ b/node_modules/rxjs/internal/operators/materialize.js @@ -0,0 +1,52 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var Notification_1 = require("../Notification"); +function materialize() { + return function materializeOperatorFunction(source) { + return source.lift(new MaterializeOperator()); + }; +} +exports.materialize = materialize; +var MaterializeOperator = (function () { + function MaterializeOperator() { + } + MaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MaterializeSubscriber(subscriber)); + }; + return MaterializeOperator; +}()); +var MaterializeSubscriber = (function (_super) { + __extends(MaterializeSubscriber, _super); + function MaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + MaterializeSubscriber.prototype._next = function (value) { + this.destination.next(Notification_1.Notification.createNext(value)); + }; + MaterializeSubscriber.prototype._error = function (err) { + var destination = this.destination; + destination.next(Notification_1.Notification.createError(err)); + destination.complete(); + }; + MaterializeSubscriber.prototype._complete = function () { + var destination = this.destination; + destination.next(Notification_1.Notification.createComplete()); + destination.complete(); + }; + return MaterializeSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=materialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/materialize.js.map b/node_modules/rxjs/internal/operators/materialize.js.map new file mode 100644 index 00000000..5e4171d9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sources":["../../src/internal/operators/materialize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAC3C,gDAA+C;AAqD/C,SAAgB,WAAW;IACzB,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAJD,kCAIC;AAED;IAAA;IAIA,CAAC;IAHC,kCAAI,GAAJ,UAAK,UAAuC,EAAE,MAAW;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,CAAC;IACH,0BAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAuC,yCAAa;IAClD,+BAAY,WAAwC;eAClD,kBAAM,WAAW,CAAC;IACpB,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAES,sCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAES,yCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QAChD,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,4BAAC;AAAD,CAAC,AApBD,CAAuC,uBAAU,GAoBhD"} diff --git a/node_modules/rxjs/internal/operators/max.d.ts b/node_modules/rxjs/internal/operators/max.d.ts new file mode 100644 index 00000000..460413d6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/max.d.ts @@ -0,0 +1,47 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function), + * and when source Observable completes it emits a single item: the item with the largest value. + * + * ![](max.png) + * + * ## Examples + * Get the maximal value of a series of numbers + * ```ts + * import { of } from 'rxjs'; + * import { max } from 'rxjs/operators'; + * + * of(5, 4, 7, 2, 8).pipe( + * max(), + * ) + * .subscribe(x => console.log(x)); // -> 8 + * ``` + * + * Use a comparer function to get the maximal item + * ```typescript + * import { of } from 'rxjs'; + * import { max } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * of( + * {age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}, + * ).pipe( + * max((a: Person, b: Person) => a.age < b.age ? -1 : 1), + * ) + * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer' + * ``` + * + * @see {@link min} + * + * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the + * value of two items. + * @return {Observable} An Observable that emits item with the largest value. + * @method max + * @owner Observable + */ +export declare function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/max.js b/node_modules/rxjs/internal/operators/max.js new file mode 100644 index 00000000..a91824d8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/max.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var reduce_1 = require("./reduce"); +function max(comparer) { + var max = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) > 0 ? x : y; } + : function (x, y) { return x > y ? x : y; }; + return reduce_1.reduce(max); +} +exports.max = max; +//# sourceMappingURL=max.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/max.js.map b/node_modules/rxjs/internal/operators/max.js.map new file mode 100644 index 00000000..44da4c93 --- /dev/null +++ b/node_modules/rxjs/internal/operators/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sources":["../../src/internal/operators/max.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAgDlC,SAAgB,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAE5B,OAAO,eAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAND,kBAMC"} diff --git a/node_modules/rxjs/internal/operators/merge.d.ts b/node_modules/rxjs/internal/operators/merge.d.ts new file mode 100644 index 00000000..eff80b8e --- /dev/null +++ b/node_modules/rxjs/internal/operators/merge.d.ts @@ -0,0 +1,29 @@ +import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(scheduler?: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(...observables: Array | SchedulerLike | number>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export declare function merge(...observables: Array | SchedulerLike | number>): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/merge.js b/node_modules/rxjs/internal/operators/merge.js new file mode 100644 index 00000000..29cabb3b --- /dev/null +++ b/node_modules/rxjs/internal/operators/merge.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var merge_1 = require("../observable/merge"); +function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(merge_1.merge.apply(void 0, [source].concat(observables))); }; +} +exports.merge = merge; +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/merge.js.map b/node_modules/rxjs/internal/operators/merge.js.map new file mode 100644 index 00000000..a93c984c --- /dev/null +++ b/node_modules/rxjs/internal/operators/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../../src/internal/operators/merge.ts"],"names":[],"mappings":";;AAAA,6CAA2D;AAsC3D,SAAgB,KAAK;IAAO,qBAAoE;SAApE,UAAoE,EAApE,qBAAoE,EAApE,IAAoE;QAApE,gCAAoE;;IAC9F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAW,gBAAC,MAAM,SAAK,WAAW,GAAE,EAArD,CAAqD,CAAC;AAC1F,CAAC;AAFD,sBAEC"} diff --git a/node_modules/rxjs/internal/operators/mergeAll.d.ts b/node_modules/rxjs/internal/operators/mergeAll.d.ts new file mode 100644 index 00000000..0d2a8f3f --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeAll.d.ts @@ -0,0 +1,60 @@ +import { OperatorFunction, ObservableInput } from '../types'; +/** + * Converts a higher-order Observable into a first-order Observable which + * concurrently delivers all values that are emitted on the inner Observables. + * + * Flattens an Observable-of-Observables. + * + * ![](mergeAll.png) + * + * `mergeAll` subscribes to an Observable that emits Observables, also known as + * a higher-order Observable. Each time it observes one of these emitted inner + * Observables, it subscribes to that and delivers all the values from the + * inner Observable on the output Observable. The output Observable only + * completes once all inner Observables have completed. Any error delivered by + * a inner Observable will be immediately emitted on the output Observable. + * + * ## Examples + * Spawn a new interval Observable for each click event, and blend their outputs as one Observable + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { map, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const higherOrder = clicks.pipe(map((ev) => interval(1000))); + * const firstOrder = higherOrder.pipe(mergeAll()); + * firstOrder.subscribe(x => console.log(x)); + * ``` + * + * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { take, map, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const higherOrder = clicks.pipe( + * map((ev) => interval(1000).pipe(take(10))), + * ); + * const firstOrder = higherOrder.pipe(mergeAll(2)); + * firstOrder.subscribe(x => console.log(x)); + * ``` + * + * @see {@link combineAll} + * @see {@link concatAll} + * @see {@link exhaust} + * @see {@link merge} + * @see {@link mergeMap} + * @see {@link mergeMapTo} + * @see {@link mergeScan} + * @see {@link switchAll} + * @see {@link switchMap} + * @see {@link zipAll} + * + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner + * Observables being subscribed to concurrently. + * @return {Observable} An Observable that emits values coming from all the + * inner Observables emitted by the source Observable. + * @method mergeAll + * @owner Observable + */ +export declare function mergeAll(concurrent?: number): OperatorFunction, T>; diff --git a/node_modules/rxjs/internal/operators/mergeAll.js b/node_modules/rxjs/internal/operators/mergeAll.js new file mode 100644 index 00000000..4c732d26 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeAll.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var mergeMap_1 = require("./mergeMap"); +var identity_1 = require("../util/identity"); +function mergeAll(concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + return mergeMap_1.mergeMap(identity_1.identity, concurrent); +} +exports.mergeAll = mergeAll; +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/mergeAll.js.map b/node_modules/rxjs/internal/operators/mergeAll.js.map new file mode 100644 index 00000000..726ab225 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sources":["../../src/internal/operators/mergeAll.ts"],"names":[],"mappings":";;AACA,uCAAsC;AACtC,6CAA4C;AA6D5C,SAAgB,QAAQ,CAAI,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IACvE,OAAO,mBAAQ,CAAC,mBAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAFD,4BAEC"} diff --git a/node_modules/rxjs/internal/operators/mergeMap.d.ts b/node_modules/rxjs/internal/operators/mergeMap.d.ts new file mode 100644 index 00000000..be37be0b --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeMap.d.ts @@ -0,0 +1,39 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +import { SimpleOuterSubscriber } from '../innerSubscribe'; +export declare function mergeMap>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export declare function mergeMap>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export declare function mergeMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; +export declare class MergeMapOperator implements Operator { + private project; + private concurrent; + constructor(project: (value: T, index: number) => ObservableInput, concurrent?: number); + call(observer: Subscriber, source: any): any; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class MergeMapSubscriber extends SimpleOuterSubscriber { + private project; + private concurrent; + private hasCompleted; + private buffer; + private active; + protected index: number; + constructor(destination: Subscriber, project: (value: T, index: number) => ObservableInput, concurrent?: number); + protected _next(value: T): void; + protected _tryNext(value: T): void; + private _innerSub; + protected _complete(): void; + notifyNext(innerValue: R): void; + notifyComplete(): void; +} +/** + * @deprecated renamed. Use {@link mergeMap} + */ +export declare const flatMap: typeof mergeMap; diff --git a/node_modules/rxjs/internal/operators/mergeMap.js b/node_modules/rxjs/internal/operators/mergeMap.js new file mode 100644 index 00000000..a20b0559 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeMap.js @@ -0,0 +1,109 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var map_1 = require("./map"); +var from_1 = require("../observable/from"); +var innerSubscribe_1 = require("../innerSubscribe"); +function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(mergeMap(function (a, i) { return from_1.from(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; + } + else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; +} +exports.mergeMap = mergeMap; +var MergeMapOperator = (function () { + function MergeMapOperator(project, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + this.project = project; + this.concurrent = concurrent; + } + MergeMapOperator.prototype.call = function (observer, source) { + return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); + }; + return MergeMapOperator; +}()); +exports.MergeMapOperator = MergeMapOperator; +var MergeMapSubscriber = (function (_super) { + __extends(MergeMapSubscriber, _super); + function MergeMapSubscriber(destination, project, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.concurrent = concurrent; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeMapSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + this._tryNext(value); + } + else { + this.buffer.push(value); + } + }; + MergeMapSubscriber.prototype._tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; + } + this.active++; + this._innerSub(result); + }; + MergeMapSubscriber.prototype._innerSub = function (ish) { + var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe_1.innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + MergeMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete(); + } + this.unsubscribe(); + }; + MergeMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + MergeMapSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); + } + }; + return MergeMapSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +exports.MergeMapSubscriber = MergeMapSubscriber; +exports.flatMap = mergeMap; +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/mergeMap.js.map b/node_modules/rxjs/internal/operators/mergeMap.js.map new file mode 100644 index 00000000..4d024d09 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sources":["../../src/internal/operators/mergeMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,6BAA4B;AAC5B,2CAA0C;AAC1C,oDAAiG;AAgEjG,SAAgB,QAAQ,CACtB,OAAuC,EACvC,cAAwH,EACxH,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QAExC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAC3C,QAAQ,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,WAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACzC,SAAG,CAAC,UAAC,CAAM,EAAE,EAAU,IAAK,OAAA,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAA3B,CAA2B,CAAC,CACzD,EAFkB,CAElB,EAAE,UAAU,CAAC,CACf,EAJiC,CAIjC,CAAC;KACH;SAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QAC7C,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAhBD,4BAgBC;AAED;IACE,0BAAoB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAD7C,YAAO,GAAP,OAAO,CAAiD;QACxD,eAAU,GAAV,UAAU,CAAmC;IACjE,CAAC;IAED,+BAAI,GAAJ,UAAK,QAAuB,EAAE,MAAW;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CACxC,CAAC,CAAC;IACL,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,4CAAgB;AAiB7B;IAA8C,sCAA2B;IAMvE,4BAAY,WAA0B,EAClB,OAAwD,EACxD,UAA6C;QAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;QAFjE,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,aAAO,GAAP,OAAO,CAAiD;QACxD,gBAAU,GAAV,UAAU,CAAmC;QAPzD,kBAAY,GAAY,KAAK,CAAC;QAC9B,YAAM,GAAQ,EAAE,CAAC;QACjB,YAAM,GAAW,CAAC,CAAC;QACjB,WAAK,GAAW,CAAC,CAAC;;IAM5B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAES,qCAAQ,GAAlB,UAAmB,KAAQ;QACzB,IAAI,MAA0B,CAAC;QAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO;SACR;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAEO,sCAAS,GAAjB,UAAkB,GAAuB;QACvC,IAAM,eAAe,GAAG,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACjC,IAAM,iBAAiB,GAAG,+BAAc,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAI/D,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACpC;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,uCAAU,GAAV,UAAW,UAAa;QACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,2CAAc,GAAd;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAG,CAAC,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACjD,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;SAC9B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAnED,CAA8C,sCAAqB,GAmElE;AAnEY,gDAAkB;AAwElB,QAAA,OAAO,GAAG,QAAQ,CAAC"} diff --git a/node_modules/rxjs/internal/operators/mergeMapTo.d.ts b/node_modules/rxjs/internal/operators/mergeMapTo.d.ts new file mode 100644 index 00000000..cd1d5a1b --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeMapTo.d.ts @@ -0,0 +1,5 @@ +import { OperatorFunction, ObservedValueOf } from '../../internal/types'; +import { ObservableInput } from '../types'; +export declare function mergeMapTo>(innerObservable: O, concurrent?: number): OperatorFunction>; +/** @deprecated */ +export declare function mergeMapTo>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/mergeMapTo.js b/node_modules/rxjs/internal/operators/mergeMapTo.js new file mode 100644 index 00000000..c3522a2d --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeMapTo.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var mergeMap_1 = require("./mergeMap"); +function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + if (typeof resultSelector === 'function') { + return mergeMap_1.mergeMap(function () { return innerObservable; }, resultSelector, concurrent); + } + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return mergeMap_1.mergeMap(function () { return innerObservable; }, concurrent); +} +exports.mergeMapTo = mergeMapTo; +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/mergeMapTo.js.map b/node_modules/rxjs/internal/operators/mergeMapTo.js.map new file mode 100644 index 00000000..bb4a5abe --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sources":["../../src/internal/operators/mergeMapTo.ts"],"names":[],"mappings":";;AAEA,uCAAsC;AAiDtC,SAAgB,UAAU,CACxB,eAAkB,EAClB,cAAwH,EACxH,UAA6C;IAA7C,2BAAA,EAAA,aAAqB,MAAM,CAAC,iBAAiB;IAE7C,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;QACxC,OAAO,mBAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;KACpE;IACD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,UAAU,GAAG,cAAc,CAAC;KAC7B;IACD,OAAO,mBAAQ,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC;AAZD,gCAYC"} diff --git a/node_modules/rxjs/internal/operators/mergeScan.d.ts b/node_modules/rxjs/internal/operators/mergeScan.d.ts new file mode 100644 index 00000000..d4198e56 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeScan.d.ts @@ -0,0 +1,72 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { ObservableInput, OperatorFunction } from '../types'; +import { SimpleOuterSubscriber } from '../innerSubscribe'; +/** + * Applies an accumulator function over the source Observable where the + * accumulator function itself returns an Observable, then each intermediate + * Observable returned is merged into the output Observable. + * + * It's like {@link scan}, but the Observables returned + * by the accumulator are merged into the outer Observable. + * + * ## Example + * Count the number of click events + * ```ts + * import { fromEvent, of } from 'rxjs'; + * import { mapTo, mergeScan } from 'rxjs/operators'; + * + * const click$ = fromEvent(document, 'click'); + * const one$ = click$.pipe(mapTo(1)); + * const seed = 0; + * const count$ = one$.pipe( + * mergeScan((acc, one) => of(acc + one), seed), + * ); + * count$.subscribe(x => console.log(x)); + * + * // Results: + * // 1 + * // 2 + * // 3 + * // 4 + * // ...and so on for each click + * ``` + * + * @param {function(acc: R, value: T): Observable} accumulator + * The accumulator function called on each source value. + * @param seed The initial accumulation value. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of + * input Observables being subscribed to concurrently. + * @return {Observable} An observable of the accumulated values. + * @method mergeScan + * @owner Observable + */ +export declare function mergeScan(accumulator: (acc: R, value: T, index: number) => ObservableInput, seed: R, concurrent?: number): OperatorFunction; +export declare class MergeScanOperator implements Operator { + private accumulator; + private seed; + private concurrent; + constructor(accumulator: (acc: R, value: T, index: number) => ObservableInput, seed: R, concurrent: number); + call(subscriber: Subscriber, source: any): any; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class MergeScanSubscriber extends SimpleOuterSubscriber { + private accumulator; + private acc; + private concurrent; + private hasValue; + private hasCompleted; + private buffer; + private active; + protected index: number; + constructor(destination: Subscriber, accumulator: (acc: R, value: T, index: number) => ObservableInput, acc: R, concurrent: number); + protected _next(value: any): void; + private _innerSub; + protected _complete(): void; + notifyNext(innerValue: R): void; + notifyComplete(): void; +} diff --git a/node_modules/rxjs/internal/operators/mergeScan.js b/node_modules/rxjs/internal/operators/mergeScan.js new file mode 100644 index 00000000..69e81217 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeScan.js @@ -0,0 +1,108 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; } + return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); }; +} +exports.mergeScan = mergeScan; +var MergeScanOperator = (function () { + function MergeScanOperator(accumulator, seed, concurrent) { + this.accumulator = accumulator; + this.seed = seed; + this.concurrent = concurrent; + } + MergeScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); + }; + return MergeScanOperator; +}()); +exports.MergeScanOperator = MergeScanOperator; +var MergeScanSubscriber = (function (_super) { + __extends(MergeScanSubscriber, _super); + function MergeScanSubscriber(destination, accumulator, acc, concurrent) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this.acc = acc; + _this.concurrent = concurrent; + _this.hasValue = false; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; + _this.index = 0; + return _this; + } + MergeScanSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + var index = this.index++; + var destination = this.destination; + var ish = void 0; + try { + var accumulator = this.accumulator; + ish = accumulator(this.acc, value, index); + } + catch (e) { + return destination.error(e); + } + this.active++; + this._innerSub(ish); + } + else { + this.buffer.push(value); + } + }; + MergeScanSubscriber.prototype._innerSub = function (ish) { + var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe_1.innerSubscribe(ish, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + }; + MergeScanSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + this.unsubscribe(); + }; + MergeScanSubscriber.prototype.notifyNext = function (innerValue) { + var destination = this.destination; + this.acc = innerValue; + this.hasValue = true; + destination.next(innerValue); + }; + MergeScanSubscriber.prototype.notifyComplete = function () { + var buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + }; + return MergeScanSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +exports.MergeScanSubscriber = MergeScanSubscriber; +//# sourceMappingURL=mergeScan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/mergeScan.js.map b/node_modules/rxjs/internal/operators/mergeScan.js.map new file mode 100644 index 00000000..898e23b4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sources":["../../src/internal/operators/mergeScan.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/min.d.ts b/node_modules/rxjs/internal/operators/min.d.ts new file mode 100644 index 00000000..72abf653 --- /dev/null +++ b/node_modules/rxjs/internal/operators/min.d.ts @@ -0,0 +1,46 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function), + * and when source Observable completes it emits a single item: the item with the smallest value. + * + * ![](min.png) + * + * ## Examples + * Get the minimal value of a series of numbers + * ```ts + * import { of } from 'rxjs'; + * import { min } from 'rxjs/operators'; + * + * of(5, 4, 7, 2, 8).pipe( + * min(), + * ) + * .subscribe(x => console.log(x)); // -> 2 + * ``` + * + * Use a comparer function to get the minimal item + * ```typescript + * import { of } from 'rxjs'; + * import { min } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * of( + * {age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}, + * ).pipe( + * min( (a: Person, b: Person) => a.age < b.age ? -1 : 1), + * ) + * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar' + * ``` + * @see {@link max} + * + * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the + * value of two items. + * @return {Observable} An Observable that emits item with the smallest value. + * @method min + * @owner Observable + */ +export declare function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/min.js b/node_modules/rxjs/internal/operators/min.js new file mode 100644 index 00000000..780cf3ed --- /dev/null +++ b/node_modules/rxjs/internal/operators/min.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var reduce_1 = require("./reduce"); +function min(comparer) { + var min = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) < 0 ? x : y; } + : function (x, y) { return x < y ? x : y; }; + return reduce_1.reduce(min); +} +exports.min = min; +//# sourceMappingURL=min.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/min.js.map b/node_modules/rxjs/internal/operators/min.js.map new file mode 100644 index 00000000..f17a17eb --- /dev/null +++ b/node_modules/rxjs/internal/operators/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sources":["../../src/internal/operators/min.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AA+ClC,SAAgB,GAAG,CAAI,QAAiC;IACtD,IAAM,GAAG,GAAsB,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC;QAC7D,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA1B,CAA0B;QACtC,CAAC,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;IAC5B,OAAO,eAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AALD,kBAKC"} diff --git a/node_modules/rxjs/internal/operators/multicast.d.ts b/node_modules/rxjs/internal/operators/multicast.d.ts new file mode 100644 index 00000000..e00592ee --- /dev/null +++ b/node_modules/rxjs/internal/operators/multicast.d.ts @@ -0,0 +1,16 @@ +import { Subject } from '../Subject'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types'; +export declare function multicast(subject: Subject): UnaryFunction, ConnectableObservable>; +export declare function multicast>(subject: Subject, selector: (shared: Observable) => O): UnaryFunction, ConnectableObservable>>; +export declare function multicast(subjectFactory: (this: Observable) => Subject): UnaryFunction, ConnectableObservable>; +export declare function multicast>(SubjectFactory: (this: Observable) => Subject, selector: (shared: Observable) => O): OperatorFunction>; +export declare class MulticastOperator implements Operator { + private subjectFactory; + private selector; + constructor(subjectFactory: () => Subject, selector: (source: Observable) => Observable); + call(subscriber: Subscriber, source: any): any; +} diff --git a/node_modules/rxjs/internal/operators/multicast.js b/node_modules/rxjs/internal/operators/multicast.js new file mode 100644 index 00000000..27821027 --- /dev/null +++ b/node_modules/rxjs/internal/operators/multicast.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ConnectableObservable_1 = require("../observable/ConnectableObservable"); +function multicast(subjectOrSubjectFactory, selector) { + return function multicastOperatorFunction(source) { + var subjectFactory; + if (typeof subjectOrSubjectFactory === 'function') { + subjectFactory = subjectOrSubjectFactory; + } + else { + subjectFactory = function subjectFactory() { + return subjectOrSubjectFactory; + }; + } + if (typeof selector === 'function') { + return source.lift(new MulticastOperator(subjectFactory, selector)); + } + var connectable = Object.create(source, ConnectableObservable_1.connectableObservableDescriptor); + connectable.source = source; + connectable.subjectFactory = subjectFactory; + return connectable; + }; +} +exports.multicast = multicast; +var MulticastOperator = (function () { + function MulticastOperator(subjectFactory, selector) { + this.subjectFactory = subjectFactory; + this.selector = selector; + } + MulticastOperator.prototype.call = function (subscriber, source) { + var selector = this.selector; + var subject = this.subjectFactory(); + var subscription = selector(subject).subscribe(subscriber); + subscription.add(source.subscribe(subject)); + return subscription; + }; + return MulticastOperator; +}()); +exports.MulticastOperator = MulticastOperator; +//# sourceMappingURL=multicast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/multicast.js.map b/node_modules/rxjs/internal/operators/multicast.js.map new file mode 100644 index 00000000..e2cc508b --- /dev/null +++ b/node_modules/rxjs/internal/operators/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sources":["../../src/internal/operators/multicast.ts"],"names":[],"mappings":";;AAIA,6EAA6G;AA6B7G,SAAgB,SAAS,CAAO,uBAAwD,EACxD,QAAmD;IACjF,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,IAAI,cAAgC,CAAC;QACrC,IAAI,OAAO,uBAAuB,KAAK,UAAU,EAAE;YACjD,cAAc,GAAqB,uBAAuB,CAAC;SAC5D;aAAM;YACL,cAAc,GAAG,SAAS,cAAc;gBACtC,OAAmB,uBAAuB,CAAC;YAC7C,CAAC,CAAC;SACH;QAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrE;QAED,IAAM,WAAW,GAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uDAA+B,CAAC,CAAC;QAChF,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,WAAW,CAAC,cAAc,GAAG,cAAc,CAAC;QAE5C,OAAkC,WAAW,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC;AAtBD,8BAsBC;AAED;IACE,2BAAoB,cAAgC,EAChC,QAAkD;QADlD,mBAAc,GAAd,cAAc,CAAkB;QAChC,aAAQ,GAAR,QAAQ,CAA0C;IACtE,CAAC;IACD,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACjC,IAAA,wBAAQ,CAAU;QAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7D,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,wBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,8CAAiB"} diff --git a/node_modules/rxjs/internal/operators/observeOn.d.ts b/node_modules/rxjs/internal/operators/observeOn.d.ts new file mode 100644 index 00000000..3034acec --- /dev/null +++ b/node_modules/rxjs/internal/operators/observeOn.d.ts @@ -0,0 +1,84 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; +/** + * + * Re-emits all notifications from source Observable with specified scheduler. + * + * Ensure a specific scheduler is used, from outside of an Observable. + * + * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule + * notifications emitted by the source Observable. It might be useful, if you do not have control over + * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless. + * + * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable, + * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal + * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits + * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`. + * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split + * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source + * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a + * little bit more, to ensure that they are emitted at expected moments. + * + * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications + * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn` + * will delay all notifications - including error notifications - while `delay` will pass through error + * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator + * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used + * for notification emissions in general. + * + * ## Example + * Ensure values in subscribe are called just before browser repaint. + * ```ts + * import { interval } from 'rxjs'; + * import { observeOn } from 'rxjs/operators'; + * + * const intervals = interval(10); // Intervals are scheduled + * // with async scheduler by default... + * intervals.pipe( + * observeOn(animationFrameScheduler), // ...but we will observe on animationFrame + * ) // scheduler to ensure smooth animation. + * .subscribe(val => { + * someDiv.style.height = val + 'px'; + * }); + * ``` + * + * @see {@link delay} + * + * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable. + * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled. + * @return {Observable} Observable that emits the same notifications as the source Observable, + * but with provided scheduler. + * + * @method observeOn + * @owner Observable + */ +export declare function observeOn(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction; +export declare class ObserveOnOperator implements Operator { + private scheduler; + private delay; + constructor(scheduler: SchedulerLike, delay?: number); + call(subscriber: Subscriber, source: any): TeardownLogic; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class ObserveOnSubscriber extends Subscriber { + private scheduler; + private delay; + /** @nocollapse */ + static dispatch(this: SchedulerAction, arg: ObserveOnMessage): void; + constructor(destination: Subscriber, scheduler: SchedulerLike, delay?: number); + private scheduleMessage; + protected _next(value: T): void; + protected _error(err: any): void; + protected _complete(): void; +} +export declare class ObserveOnMessage { + notification: Notification; + destination: PartialObserver; + constructor(notification: Notification, destination: PartialObserver); +} diff --git a/node_modules/rxjs/internal/operators/observeOn.js b/node_modules/rxjs/internal/operators/observeOn.js new file mode 100644 index 00000000..3ace8fb8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/observeOn.js @@ -0,0 +1,77 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var Notification_1 = require("../Notification"); +function observeOn(scheduler, delay) { + if (delay === void 0) { delay = 0; } + return function observeOnOperatorFunction(source) { + return source.lift(new ObserveOnOperator(scheduler, delay)); + }; +} +exports.observeOn = observeOn; +var ObserveOnOperator = (function () { + function ObserveOnOperator(scheduler, delay) { + if (delay === void 0) { delay = 0; } + this.scheduler = scheduler; + this.delay = delay; + } + ObserveOnOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + }; + return ObserveOnOperator; +}()); +exports.ObserveOnOperator = ObserveOnOperator; +var ObserveOnSubscriber = (function (_super) { + __extends(ObserveOnSubscriber, _super); + function ObserveOnSubscriber(destination, scheduler, delay) { + if (delay === void 0) { delay = 0; } + var _this = _super.call(this, destination) || this; + _this.scheduler = scheduler; + _this.delay = delay; + return _this; + } + ObserveOnSubscriber.dispatch = function (arg) { + var notification = arg.notification, destination = arg.destination; + notification.observe(destination); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { + var destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + }; + ObserveOnSubscriber.prototype._next = function (value) { + this.scheduleMessage(Notification_1.Notification.createNext(value)); + }; + ObserveOnSubscriber.prototype._error = function (err) { + this.scheduleMessage(Notification_1.Notification.createError(err)); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype._complete = function () { + this.scheduleMessage(Notification_1.Notification.createComplete()); + this.unsubscribe(); + }; + return ObserveOnSubscriber; +}(Subscriber_1.Subscriber)); +exports.ObserveOnSubscriber = ObserveOnSubscriber; +var ObserveOnMessage = (function () { + function ObserveOnMessage(notification, destination) { + this.notification = notification; + this.destination = destination; + } + return ObserveOnMessage; +}()); +exports.ObserveOnMessage = ObserveOnMessage; +//# sourceMappingURL=observeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/observeOn.js.map b/node_modules/rxjs/internal/operators/observeOn.js.map new file mode 100644 index 00000000..8d5b1335 --- /dev/null +++ b/node_modules/rxjs/internal/operators/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sources":["../../src/internal/operators/observeOn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAE3C,gDAA+C;AAuD/C,SAAgB,SAAS,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACtE,OAAO,SAAS,yBAAyB,CAAC,MAAqB;QAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAJD,8BAIC;AAED;IACE,2BAAoB,SAAwB,EAAU,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAAnD,cAAS,GAAT,SAAS,CAAe;QAAU,UAAK,GAAL,KAAK,CAAY;IACvE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAPY,8CAAiB;AAc9B;IAA4C,uCAAa;IAQvD,6BAAY,WAA0B,EAClB,SAAwB,EACxB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAFrC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAAe;QACxB,WAAK,GAAL,KAAK,CAAY;;IAErC,CAAC;IAVM,4BAAQ,GAAf,UAAyD,GAAqB;QACpE,IAAA,+BAAY,EAAE,6BAAW,CAAS;QAC1C,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAQO,6CAAe,GAAvB,UAAwB,YAA+B;QACrD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;QACrD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrC,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,KAAK,EACV,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CACrD,CAAC,CAAC;IACL,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,oCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,uCAAS,GAAnB;QACE,IAAI,CAAC,eAAe,CAAC,2BAAY,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAA4C,uBAAU,GAoCrD;AApCY,kDAAmB;AAsChC;IACE,0BAAmB,YAA+B,EAC/B,WAAiC;QADjC,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,gBAAW,GAAX,WAAW,CAAsB;IACpD,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,4CAAgB"} diff --git a/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts b/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts new file mode 100644 index 00000000..2c2bf868 --- /dev/null +++ b/node_modules/rxjs/internal/operators/onErrorResumeNext.d.ts @@ -0,0 +1,18 @@ +import { Observable } from '../Observable'; +import { ObservableInput, OperatorFunction } from '../types'; +export declare function onErrorResumeNext(): OperatorFunction; +export declare function onErrorResumeNext(v: ObservableInput): OperatorFunction; +export declare function onErrorResumeNext(v: ObservableInput, v2: ObservableInput): OperatorFunction; +export declare function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput): OperatorFunction; +export declare function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction; +export declare function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction; +export declare function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction; +export declare function onErrorResumeNext(...observables: Array>): OperatorFunction; +export declare function onErrorResumeNext(array: ObservableInput[]): OperatorFunction; +export declare function onErrorResumeNextStatic(v: ObservableInput): Observable; +export declare function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput): Observable; +export declare function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable; +export declare function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable; +export declare function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable; +export declare function onErrorResumeNextStatic(...observables: Array | ((...values: Array) => R)>): Observable; +export declare function onErrorResumeNextStatic(array: ObservableInput[]): Observable; diff --git a/node_modules/rxjs/internal/operators/onErrorResumeNext.js b/node_modules/rxjs/internal/operators/onErrorResumeNext.js new file mode 100644 index 00000000..5d5f8b61 --- /dev/null +++ b/node_modules/rxjs/internal/operators/onErrorResumeNext.js @@ -0,0 +1,91 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var from_1 = require("../observable/from"); +var isArray_1 = require("../util/isArray"); +var innerSubscribe_1 = require("../innerSubscribe"); +function onErrorResumeNext() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; + } + if (nextSources.length === 1 && isArray_1.isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); }; +} +exports.onErrorResumeNext = onErrorResumeNext; +function onErrorResumeNextStatic() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; + } + var source = undefined; + if (nextSources.length === 1 && isArray_1.isArray(nextSources[0])) { + nextSources = nextSources[0]; + } + source = nextSources.shift(); + return from_1.from(source).lift(new OnErrorResumeNextOperator(nextSources)); +} +exports.onErrorResumeNextStatic = onErrorResumeNextStatic; +var OnErrorResumeNextOperator = (function () { + function OnErrorResumeNextOperator(nextSources) { + this.nextSources = nextSources; + } + OnErrorResumeNextOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); + }; + return OnErrorResumeNextOperator; +}()); +var OnErrorResumeNextSubscriber = (function (_super) { + __extends(OnErrorResumeNextSubscriber, _super); + function OnErrorResumeNextSubscriber(destination, nextSources) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.nextSources = nextSources; + return _this; + } + OnErrorResumeNextSubscriber.prototype.notifyError = function () { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype.notifyComplete = function () { + this.subscribeToNextSource(); + }; + OnErrorResumeNextSubscriber.prototype._error = function (err) { + this.subscribeToNextSource(); + this.unsubscribe(); + }; + OnErrorResumeNextSubscriber.prototype._complete = function () { + this.subscribeToNextSource(); + this.unsubscribe(); + }; + OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { + var next = this.nextSources.shift(); + if (!!next) { + var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + var innerSubscription = innerSubscribe_1.innerSubscribe(next, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + else { + this.destination.complete(); + } + }; + return OnErrorResumeNextSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map b/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map new file mode 100644 index 00000000..4b0f4947 --- /dev/null +++ b/node_modules/rxjs/internal/operators/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../../src/internal/operators/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA0C;AAI1C,2CAA0C;AAE1C,oDAAiG;AAmFjG,SAAgB,iBAAiB;IAAO,qBAC2C;SAD3C,UAC2C,EAD3C,qBAC2C,EAD3C,IAC2C;QAD3C,gCAC2C;;IACjF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAA2B,WAAW,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,EAA7D,CAA6D,CAAC;AAClG,CAAC;AAPD,8CAOC;AAaD,SAAgB,uBAAuB;IAAO,qBAEb;SAFa,UAEb,EAFa,qBAEb,EAFa,IAEb;QAFa,gCAEb;;IAC/B,IAAI,MAAM,GAAmC,SAAS,CAAC;IAEvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAA2B,CAAC;KACxD;IAED,MAAM,GAAG,WAAW,CAAC,KAAK,EAAG,CAAC;IAE9B,OAAO,WAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAO,WAAW,CAAC,CAAC,CAAC;AAC7E,CAAC;AAZD,0DAYC;AAED;IACE,mCAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAC5D,CAAC;IAED,wCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,gCAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAgD,+CAA2B;IACzE,qCAAsB,WAA0B,EAC5B,WAAwC;QAD5D,YAEE,kBAAM,WAAW,CAAC,SACnB;QAHqB,iBAAW,GAAX,WAAW,CAAe;QAC5B,iBAAW,GAAX,WAAW,CAA6B;;IAE5D,CAAC;IAED,iDAAW,GAAX;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,oDAAc,GAAd;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,4CAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,+CAAS,GAAnB;QACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,2DAAqB,GAA7B;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,IAAI,EAAE;YACV,IAAM,eAAe,GAAG,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC;YACxD,IAAM,WAAW,GAAG,IAAI,CAAC,WAA2B,CAAC;YACrD,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACjC,IAAM,iBAAiB,GAAG,+BAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAIhE,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aACpC;SACF;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IACH,kCAAC;AAAD,CAAC,AAzCD,CAAgD,sCAAqB,GAyCpE"} diff --git a/node_modules/rxjs/internal/operators/pairwise.d.ts b/node_modules/rxjs/internal/operators/pairwise.d.ts new file mode 100644 index 00000000..901aac16 --- /dev/null +++ b/node_modules/rxjs/internal/operators/pairwise.d.ts @@ -0,0 +1,45 @@ +import { OperatorFunction } from '../types'; +/** + * Groups pairs of consecutive emissions together and emits them as an array of + * two values. + * + * Puts the current value and previous value together as + * an array, and emits that. + * + * ![](pairwise.png) + * + * The Nth emission from the source Observable will cause the output Observable + * to emit an array [(N-1)th, Nth] of the previous and the current value, as a + * pair. For this reason, `pairwise` emits on the second and subsequent + * emissions from the source Observable, but not on the first emission, because + * there is no previous value in that case. + * + * ## Example + * On every click (starting from the second), emit the relative distance to the previous click + * ```ts + * import { fromEvent } from 'rxjs'; + * import { pairwise, map } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const pairs = clicks.pipe(pairwise()); + * const distance = pairs.pipe( + * map(pair => { + * const x0 = pair[0].clientX; + * const y0 = pair[0].clientY; + * const x1 = pair[1].clientX; + * const y1 = pair[1].clientY; + * return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2)); + * }), + * ); + * distance.subscribe(x => console.log(x)); + * ``` + * + * @see {@link buffer} + * @see {@link bufferCount} + * + * @return {Observable>} An Observable of pairs (as arrays) of + * consecutive values from the source Observable. + * @method pairwise + * @owner Observable + */ +export declare function pairwise(): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/pairwise.js b/node_modules/rxjs/internal/operators/pairwise.js new file mode 100644 index 00000000..1311dfef --- /dev/null +++ b/node_modules/rxjs/internal/operators/pairwise.js @@ -0,0 +1,51 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function pairwise() { + return function (source) { return source.lift(new PairwiseOperator()); }; +} +exports.pairwise = pairwise; +var PairwiseOperator = (function () { + function PairwiseOperator() { + } + PairwiseOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new PairwiseSubscriber(subscriber)); + }; + return PairwiseOperator; +}()); +var PairwiseSubscriber = (function (_super) { + __extends(PairwiseSubscriber, _super); + function PairwiseSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasPrev = false; + return _this; + } + PairwiseSubscriber.prototype._next = function (value) { + var pair; + if (this.hasPrev) { + pair = [this.prev, value]; + } + else { + this.hasPrev = true; + } + this.prev = value; + if (pair) { + this.destination.next(pair); + } + }; + return PairwiseSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/pairwise.js.map b/node_modules/rxjs/internal/operators/pairwise.js.map new file mode 100644 index 00000000..bfd82338 --- /dev/null +++ b/node_modules/rxjs/internal/operators/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sources":["../../src/internal/operators/pairwise.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AA8C3C,SAAgB,QAAQ;IACtB,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC,EAAnC,CAAmC,CAAC;AACxE,CAAC;AAFD,4BAEC;AAED;IAAA;IAIA,CAAC;IAHC,+BAAI,GAAJ,UAAK,UAA8B,EAAE,MAAW;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,IAIC;AAOD;IAAoC,sCAAa;IAI/C,4BAAY,WAA+B;QAA3C,YACE,kBAAM,WAAW,CAAC,SACnB;QAJO,aAAO,GAAY,KAAK,CAAC;;IAIjC,CAAC;IAED,kCAAK,GAAL,UAAM,KAAQ;QACZ,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAvBD,CAAoC,uBAAU,GAuB7C"} diff --git a/node_modules/rxjs/internal/operators/partition.d.ts b/node_modules/rxjs/internal/operators/partition.d.ts new file mode 100644 index 00000000..00220148 --- /dev/null +++ b/node_modules/rxjs/internal/operators/partition.d.ts @@ -0,0 +1,51 @@ +import { Observable } from '../Observable'; +import { UnaryFunction } from '../types'; +/** + * Splits the source Observable into two, one with values that satisfy a + * predicate, and another with values that don't satisfy the predicate. + * + * It's like {@link filter}, but returns two Observables: + * one like the output of {@link filter}, and the other with values that did not + * pass the condition. + * + * ![](partition.png) + * + * `partition` outputs an array with two Observables that partition the values + * from the source Observable through the given `predicate` function. The first + * Observable in that array emits source values for which the predicate argument + * returns true. The second Observable emits source values for which the + * predicate returns false. The first behaves like {@link filter} and the second + * behaves like {@link filter} with the predicate negated. + * + * ## Example + * Partition click events into those on DIV elements and those elsewhere + * ```ts + * import { fromEvent } from 'rxjs'; + * import { partition } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV')); + * const clicksOnDivs = parts[0]; + * const clicksElsewhere = parts[1]; + * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x)); + * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x)); + * ``` + * + * @see {@link filter} + * + * @param {function(value: T, index: number): boolean} predicate A function that + * evaluates each value emitted by the source Observable. If it returns `true`, + * the value is emitted on the first Observable in the returned array, if + * `false` the value is emitted on the second Observable in the array. The + * `index` parameter is the number `i` for the i-th source emission that has + * happened since the subscription, starting from the number `0`. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {[Observable, Observable]} An array with two Observables: one + * with values that passed the predicate, and another with values that did not + * pass the predicate. + * @method partition + * @owner Observable + * @deprecated use `partition` static creation function instead + */ +export declare function partition(predicate: (value: T, index: number) => boolean, thisArg?: any): UnaryFunction, [Observable, Observable]>; diff --git a/node_modules/rxjs/internal/operators/partition.js b/node_modules/rxjs/internal/operators/partition.js new file mode 100644 index 00000000..ae96c716 --- /dev/null +++ b/node_modules/rxjs/internal/operators/partition.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var not_1 = require("../util/not"); +var filter_1 = require("./filter"); +function partition(predicate, thisArg) { + return function (source) { return [ + filter_1.filter(predicate, thisArg)(source), + filter_1.filter(not_1.not(predicate, thisArg))(source) + ]; }; +} +exports.partition = partition; +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/partition.js.map b/node_modules/rxjs/internal/operators/partition.js.map new file mode 100644 index 00000000..b1241fe7 --- /dev/null +++ b/node_modules/rxjs/internal/operators/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../../src/internal/operators/partition.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,mCAAkC;AAoDlC,SAAgB,SAAS,CAAI,SAA+C,EAC/C,OAAa;IACxC,OAAO,UAAC,MAAqB,IAAK,OAAA;QAChC,eAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;QAClC,eAAM,CAAC,SAAG,CAAC,SAAS,EAAE,OAAO,CAAQ,CAAC,CAAC,MAAM,CAAC;KACb,EAHD,CAGC,CAAC;AACtC,CAAC;AAND,8BAMC"} diff --git a/node_modules/rxjs/internal/operators/pluck.d.ts b/node_modules/rxjs/internal/operators/pluck.d.ts new file mode 100644 index 00000000..301780e0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/pluck.d.ts @@ -0,0 +1,8 @@ +import { OperatorFunction } from '../types'; +export declare function pluck(k1: K1): OperatorFunction; +export declare function pluck(k1: K1, k2: K2): OperatorFunction; +export declare function pluck(k1: K1, k2: K2, k3: K3): OperatorFunction; +export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction; +export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction; +export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction; +export declare function pluck(...properties: string[]): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/pluck.js b/node_modules/rxjs/internal/operators/pluck.js new file mode 100644 index 00000000..6bb6af7f --- /dev/null +++ b/node_modules/rxjs/internal/operators/pluck.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var map_1 = require("./map"); +function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error('list of properties cannot be empty.'); + } + return function (source) { return map_1.map(plucker(properties, length))(source); }; +} +exports.pluck = pluck; +function plucker(props, length) { + var mapper = function (x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp != null ? currentProp[props[i]] : undefined; + if (p !== void 0) { + currentProp = p; + } + else { + return undefined; + } + } + return currentProp; + }; + return mapper; +} +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/pluck.js.map b/node_modules/rxjs/internal/operators/pluck.js.map new file mode 100644 index 00000000..a65b359f --- /dev/null +++ b/node_modules/rxjs/internal/operators/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sources":["../../src/internal/operators/pluck.ts"],"names":[],"mappings":";;AACA,6BAA4B;AA6C5B,SAAgB,KAAK;IAAO,oBAAuB;SAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;QAAvB,+BAAuB;;IACjD,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KACxD;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,SAAG,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAa,CAAC,EAA/C,CAA+C,CAAC;AACpF,CAAC;AAND,sBAMC;AAED,SAAS,OAAO,CAAC,KAAe,EAAE,MAAc;IAC9C,IAAM,MAAM,GAAG,UAAC,CAAS;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAM,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;gBAChB,WAAW,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"} diff --git a/node_modules/rxjs/internal/operators/publish.d.ts b/node_modules/rxjs/internal/operators/publish.d.ts new file mode 100644 index 00000000..7757de54 --- /dev/null +++ b/node_modules/rxjs/internal/operators/publish.d.ts @@ -0,0 +1,6 @@ +import { Observable } from '../Observable'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types'; +export declare function publish(): UnaryFunction, ConnectableObservable>; +export declare function publish>(selector: (shared: Observable) => O): OperatorFunction>; +export declare function publish(selector: MonoTypeOperatorFunction): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/publish.js b/node_modules/rxjs/internal/operators/publish.js new file mode 100644 index 00000000..a921c25c --- /dev/null +++ b/node_modules/rxjs/internal/operators/publish.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var multicast_1 = require("./multicast"); +function publish(selector) { + return selector ? + multicast_1.multicast(function () { return new Subject_1.Subject(); }, selector) : + multicast_1.multicast(new Subject_1.Subject()); +} +exports.publish = publish; +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/publish.js.map b/node_modules/rxjs/internal/operators/publish.js.map new file mode 100644 index 00000000..ab2c9b14 --- /dev/null +++ b/node_modules/rxjs/internal/operators/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sources":["../../src/internal/operators/publish.ts"],"names":[],"mappings":";;AACA,sCAAqC;AACrC,yCAAwC;AA4DxC,SAAgB,OAAO,CAAO,QAAiC;IAC7D,OAAO,QAAQ,CAAC,CAAC;QACf,qBAAS,CAAC,cAAM,OAAA,IAAI,iBAAO,EAAK,EAAhB,CAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,qBAAS,CAAC,IAAI,iBAAO,EAAK,CAAC,CAAC;AAChC,CAAC;AAJD,0BAIC"} diff --git a/node_modules/rxjs/internal/operators/publishBehavior.d.ts b/node_modules/rxjs/internal/operators/publishBehavior.d.ts new file mode 100644 index 00000000..e1d44d65 --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishBehavior.d.ts @@ -0,0 +1,10 @@ +import { Observable } from '../Observable'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { UnaryFunction } from '../types'; +/** + * @param value + * @return {ConnectableObservable} + * @method publishBehavior + * @owner Observable + */ +export declare function publishBehavior(value: T): UnaryFunction, ConnectableObservable>; diff --git a/node_modules/rxjs/internal/operators/publishBehavior.js b/node_modules/rxjs/internal/operators/publishBehavior.js new file mode 100644 index 00000000..6131a40b --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishBehavior.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var BehaviorSubject_1 = require("../BehaviorSubject"); +var multicast_1 = require("./multicast"); +function publishBehavior(value) { + return function (source) { return multicast_1.multicast(new BehaviorSubject_1.BehaviorSubject(value))(source); }; +} +exports.publishBehavior = publishBehavior; +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/publishBehavior.js.map b/node_modules/rxjs/internal/operators/publishBehavior.js.map new file mode 100644 index 00000000..a831305d --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sources":["../../src/internal/operators/publishBehavior.ts"],"names":[],"mappings":";;AACA,sDAAqD;AACrD,yCAAwC;AAUxC,SAAgB,eAAe,CAAI,KAAQ;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,qBAAS,CAAC,IAAI,iCAAe,CAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAA6B,EAA5E,CAA4E,CAAC;AACjH,CAAC;AAFD,0CAEC"} diff --git a/node_modules/rxjs/internal/operators/publishLast.d.ts b/node_modules/rxjs/internal/operators/publishLast.d.ts new file mode 100644 index 00000000..0012786c --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishLast.d.ts @@ -0,0 +1,61 @@ +import { Observable } from '../Observable'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { UnaryFunction } from '../types'; +/** + * Returns a connectable observable sequence that shares a single subscription to the + * underlying sequence containing only the last notification. + * + * ![](publishLast.png) + * + * Similar to {@link publish}, but it waits until the source observable completes and stores + * the last emitted value. + * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last + * value even if it has no more subscribers. If subsequent subscriptions happen, they will + * immediately get that last stored value and complete. + * + * ## Example + * + * ```ts + * import { interval } from 'rxjs'; + * import { publishLast, tap, take } from 'rxjs/operators'; + * + * const connectable = + * interval(1000) + * .pipe( + * tap(x => console.log("side effect", x)), + * take(3), + * publishLast()); + * + * connectable.subscribe( + * x => console.log( "Sub. A", x), + * err => console.log("Sub. A Error", err), + * () => console.log( "Sub. A Complete")); + * + * connectable.subscribe( + * x => console.log( "Sub. B", x), + * err => console.log("Sub. B Error", err), + * () => console.log( "Sub. B Complete")); + * + * connectable.connect(); + * + * // Results: + * // "side effect 0" + * // "side effect 1" + * // "side effect 2" + * // "Sub. A 2" + * // "Sub. B 2" + * // "Sub. A Complete" + * // "Sub. B Complete" + * ``` + * + * @see {@link ConnectableObservable} + * @see {@link publish} + * @see {@link publishReplay} + * @see {@link publishBehavior} + * + * @return {ConnectableObservable} An observable sequence that contains the elements of a + * sequence produced by multicasting the source sequence. + * @method publishLast + * @owner Observable + */ +export declare function publishLast(): UnaryFunction, ConnectableObservable>; diff --git a/node_modules/rxjs/internal/operators/publishLast.js b/node_modules/rxjs/internal/operators/publishLast.js new file mode 100644 index 00000000..27654173 --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishLast.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncSubject_1 = require("../AsyncSubject"); +var multicast_1 = require("./multicast"); +function publishLast() { + return function (source) { return multicast_1.multicast(new AsyncSubject_1.AsyncSubject())(source); }; +} +exports.publishLast = publishLast; +//# sourceMappingURL=publishLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/publishLast.js.map b/node_modules/rxjs/internal/operators/publishLast.js.map new file mode 100644 index 00000000..d8ad7ef8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sources":["../../src/internal/operators/publishLast.ts"],"names":[],"mappings":";;AACA,gDAA+C;AAC/C,yCAAwC;AA8DxC,SAAgB,WAAW;IACzB,OAAO,UAAC,MAAqB,IAAK,OAAA,qBAAS,CAAC,IAAI,2BAAY,EAAK,CAAC,CAAC,MAAM,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAFD,kCAEC"} diff --git a/node_modules/rxjs/internal/operators/publishReplay.d.ts b/node_modules/rxjs/internal/operators/publishReplay.d.ts new file mode 100644 index 00000000..6e39cfff --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishReplay.d.ts @@ -0,0 +1,4 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types'; +export declare function publishReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; +export declare function publishReplay>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable) => O, scheduler?: SchedulerLike): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/publishReplay.js b/node_modules/rxjs/internal/operators/publishReplay.js new file mode 100644 index 00000000..bae5b004 --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishReplay.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ReplaySubject_1 = require("../ReplaySubject"); +var multicast_1 = require("./multicast"); +function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { + if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { + scheduler = selectorOrScheduler; + } + var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; + var subject = new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler); + return function (source) { return multicast_1.multicast(function () { return subject; }, selector)(source); }; +} +exports.publishReplay = publishReplay; +//# sourceMappingURL=publishReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/publishReplay.js.map b/node_modules/rxjs/internal/operators/publishReplay.js.map new file mode 100644 index 00000000..1c95a448 --- /dev/null +++ b/node_modules/rxjs/internal/operators/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sources":["../../src/internal/operators/publishReplay.ts"],"names":[],"mappings":";;AACA,kDAAiD;AACjD,yCAAwC;AASxC,SAAgB,aAAa,CAAO,UAAmB,EACnB,UAAmB,EACnB,mBAA4D,EAC5D,SAAyB;IAE3D,IAAI,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;QACpE,SAAS,GAAG,mBAAmB,CAAC;KACjC;IAED,IAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,IAAM,OAAO,GAAG,IAAI,6BAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO,UAAC,MAAqB,IAAK,OAAA,qBAAS,CAAC,cAAM,OAAA,OAAO,EAAP,CAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6B,EAAtE,CAAsE,CAAC;AAC3G,CAAC;AAbD,sCAaC"} diff --git a/node_modules/rxjs/internal/operators/race.d.ts b/node_modules/rxjs/internal/operators/race.d.ts new file mode 100644 index 00000000..6020a769 --- /dev/null +++ b/node_modules/rxjs/internal/operators/race.d.ts @@ -0,0 +1,10 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, OperatorFunction } from '../types'; +/** @deprecated Deprecated in favor of static race. */ +export declare function race(observables: Array>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static race. */ +export declare function race(observables: Array>): OperatorFunction; +/** @deprecated Deprecated in favor of static race. */ +export declare function race(...observables: Array | Array>>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static race. */ +export declare function race(...observables: Array | Array>>): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/race.js b/node_modules/rxjs/internal/operators/race.js new file mode 100644 index 00000000..b59dcf50 --- /dev/null +++ b/node_modules/rxjs/internal/operators/race.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var isArray_1 = require("../util/isArray"); +var race_1 = require("../observable/race"); +function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function raceOperatorFunction(source) { + if (observables.length === 1 && isArray_1.isArray(observables[0])) { + observables = observables[0]; + } + return source.lift.call(race_1.race.apply(void 0, [source].concat(observables))); + }; +} +exports.race = race; +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/race.js.map b/node_modules/rxjs/internal/operators/race.js.map new file mode 100644 index 00000000..3e373215 --- /dev/null +++ b/node_modules/rxjs/internal/operators/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../../src/internal/operators/race.ts"],"names":[],"mappings":";;AACA,2CAA0C;AAE1C,2CAAwD;AAsBxD,SAAgB,IAAI;IAAI,qBAAmD;SAAnD,UAAmD,EAAnD,qBAAmD,EAAnD,IAAmD;QAAnD,gCAAmD;;IACzE,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QAGxD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,WAAW,GAAG,WAAW,CAAC,CAAC,CAAoB,CAAC;SACjD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAU,gBAAC,MAAM,SAAM,WAA+B,GAAE,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC;AAVD,oBAUC"} diff --git a/node_modules/rxjs/internal/operators/reduce.d.ts b/node_modules/rxjs/internal/operators/reduce.d.ts new file mode 100644 index 00000000..da753896 --- /dev/null +++ b/node_modules/rxjs/internal/operators/reduce.d.ts @@ -0,0 +1,4 @@ +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; +export declare function reduce(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction; +export declare function reduce(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction; +export declare function reduce(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/reduce.js b/node_modules/rxjs/internal/operators/reduce.js new file mode 100644 index 00000000..63296cf6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/reduce.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var scan_1 = require("./scan"); +var takeLast_1 = require("./takeLast"); +var defaultIfEmpty_1 = require("./defaultIfEmpty"); +var pipe_1 = require("../util/pipe"); +function reduce(accumulator, seed) { + if (arguments.length >= 2) { + return function reduceOperatorFunctionWithSeed(source) { + return pipe_1.pipe(scan_1.scan(accumulator, seed), takeLast_1.takeLast(1), defaultIfEmpty_1.defaultIfEmpty(seed))(source); + }; + } + return function reduceOperatorFunction(source) { + return pipe_1.pipe(scan_1.scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast_1.takeLast(1))(source); + }; +} +exports.reduce = reduce; +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/reduce.js.map b/node_modules/rxjs/internal/operators/reduce.js.map new file mode 100644 index 00000000..93baad89 --- /dev/null +++ b/node_modules/rxjs/internal/operators/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sources":["../../src/internal/operators/reduce.ts"],"names":[],"mappings":";;AACA,+BAA8B;AAC9B,uCAAsC;AACtC,mDAAkD;AAElD,qCAAoC;AA2DpC,SAAgB,MAAM,CAAO,WAA4D,EAAE,IAAY;IAMrG,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,SAAS,8BAA8B,CAAC,MAAqB;YAClE,OAAO,WAAI,CAAC,WAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,mBAAQ,CAAC,CAAC,CAAC,EAAE,+BAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC,CAAC;KACH;IACD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,WAAI,CACT,WAAI,CAAW,UAAC,GAAG,EAAE,KAAK,EAAE,KAAK,IAAK,OAAA,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAlC,CAAkC,CAAC,EACzE,mBAAQ,CAAC,CAAC,CAAC,CACZ,CAAC,MAAM,CAAC,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC;AAjBD,wBAiBC"} diff --git a/node_modules/rxjs/internal/operators/refCount.d.ts b/node_modules/rxjs/internal/operators/refCount.d.ts new file mode 100644 index 00000000..e74e9ec8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/refCount.d.ts @@ -0,0 +1,55 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way + * you can connect to it. + * + * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if + * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it + * unsubscribes from the source. This way you can make sure that everything before the *published* + * refCount has only a single subscription independently of the number of subscribers to the target + * observable. + * + * Note that using the {@link share} operator is exactly the same as using the *publish* operator + * (making the observable hot) and the *refCount* operator in a sequence. + * + * ![](refCount.png) + * + * ## Example + * + * In the following example there are two intervals turned into connectable observables + * by using the *publish* operator. The first one uses the *refCount* operator, the + * second one does not use it. You will notice that a connectable observable does nothing + * until you call its connect function. + * + * ```ts + * import { interval } from 'rxjs'; + * import { tap, publish, refCount } from 'rxjs/operators'; + * + * // Turn the interval observable into a ConnectableObservable (hot) + * const refCountInterval = interval(400).pipe( + * tap((num) => console.log(`refCount ${num}`)), + * publish(), + * refCount() + * ); + * + * const publishedInterval = interval(400).pipe( + * tap((num) => console.log(`publish ${num}`)), + * publish() + * ); + * + * refCountInterval.subscribe(); + * refCountInterval.subscribe(); + * // 'refCount 0' -----> 'refCount 1' -----> etc + * // All subscriptions will receive the same value and the tap (and + * // every other operator) before the publish operator will be executed + * // only once per event independently of the number of subscriptions. + * + * publishedInterval.subscribe(); + * // Nothing happens until you call .connect() on the observable. + * ``` + * + * @see {@link ConnectableObservable} + * @see {@link share} + * @see {@link publish} + */ +export declare function refCount(): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/refCount.js b/node_modules/rxjs/internal/operators/refCount.js new file mode 100644 index 00000000..5684ba90 --- /dev/null +++ b/node_modules/rxjs/internal/operators/refCount.js @@ -0,0 +1,72 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function refCount() { + return function refCountOperatorFunction(source) { + return source.lift(new RefCountOperator(source)); + }; +} +exports.refCount = refCount; +var RefCountOperator = (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; + } + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); + } + return subscription; + }; + return RefCountOperator; +}()); +var RefCountSubscriber = (function (_super) { + __extends(RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=refCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/refCount.js.map b/node_modules/rxjs/internal/operators/refCount.js.map new file mode 100644 index 00000000..bbc4ca68 --- /dev/null +++ b/node_modules/rxjs/internal/operators/refCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refCount.js","sources":["../../src/internal/operators/refCount.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AA2D3C,SAAgB,QAAQ;IACtB,OAAO,SAAS,wBAAwB,CAAC,MAAgC;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAgC,CAAC;AACnC,CAAC;AAJD,4BAIC;AAED;IACE,0BAAoB,WAAqC;QAArC,gBAAW,GAAX,WAAW,CAA0B;IACzD,CAAC;IACD,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QAEjC,IAAA,8BAAW,CAAU;QACtB,WAAY,CAAC,SAAS,EAAE,CAAC;QAEhC,IAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACf,UAAW,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;SACvD;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,IAiBC;AAED;IAAoC,sCAAa;IAI/C,4BAAY,WAA0B,EAClB,WAAqC;QADzD,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,iBAAW,GAAX,WAAW,CAA0B;;IAEzD,CAAC;IAES,yCAAY,GAAtB;QAEU,IAAA,8BAAW,CAAU;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAM,QAAQ,GAAU,WAAY,CAAC,SAAS,CAAC;QAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QAEM,WAAY,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO;SACR;QA0BO,IAAA,4BAAU,CAAU;QAC5B,IAAM,gBAAgB,GAAU,WAAY,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,gBAAgB,IAAI,CAAC,CAAC,UAAU,IAAI,gBAAgB,KAAK,UAAU,CAAC,EAAE;YACxE,gBAAgB,CAAC,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AA9DD,CAAoC,uBAAU,GA8D7C"} diff --git a/node_modules/rxjs/internal/operators/repeat.d.ts b/node_modules/rxjs/internal/operators/repeat.d.ts new file mode 100644 index 00000000..d1ecb288 --- /dev/null +++ b/node_modules/rxjs/internal/operators/repeat.d.ts @@ -0,0 +1,58 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that will resubscribe to the source stream when the source stream completes, at most count times. + * + * Repeats all values emitted on the source. It's like {@link retry}, but for non error cases. + * + * ![](repeat.png) + * + * Similar to {@link retry}, this operator repeats the stream of items emitted by the source for non error cases. + * Repeat can be useful for creating observables that are meant to have some repeated pattern or rhythm. + * + * Note: `repeat(0)` returns an empty observable and `repeat()` will repeat forever + * + * ## Example + * Repeat a message stream + * ```ts + * import { of } from 'rxjs'; + * import { repeat, delay } from 'rxjs/operators'; + * + * const source = of('Repeat message'); + * const example = source.pipe(repeat(3)); + * example.subscribe(x => console.log(x)); + * + * // Results + * // Repeat message + * // Repeat message + * // Repeat message + * ``` + * + * Repeat 3 values, 2 times + * ```ts + * import { interval } from 'rxjs'; + * import { repeat, take } from 'rxjs/operators'; + * + * const source = interval(1000); + * const example = source.pipe(take(3), repeat(2)); + * example.subscribe(x => console.log(x)); + * + * // Results every second + * // 0 + * // 1 + * // 2 + * // 0 + * // 1 + * // 2 + * ``` + * + * @see {@link repeatWhen} + * @see {@link retry} + * + * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield + * an empty Observable. + * @return {Observable} An Observable that will resubscribe to the source stream when the source stream completes + * , at most count times. + * @method repeat + * @owner Observable + */ +export declare function repeat(count?: number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/repeat.js b/node_modules/rxjs/internal/operators/repeat.js new file mode 100644 index 00000000..0460a955 --- /dev/null +++ b/node_modules/rxjs/internal/operators/repeat.js @@ -0,0 +1,65 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var empty_1 = require("../observable/empty"); +function repeat(count) { + if (count === void 0) { count = -1; } + return function (source) { + if (count === 0) { + return empty_1.empty(); + } + else if (count < 0) { + return source.lift(new RepeatOperator(-1, source)); + } + else { + return source.lift(new RepeatOperator(count - 1, source)); + } + }; +} +exports.repeat = repeat; +var RepeatOperator = (function () { + function RepeatOperator(count, source) { + this.count = count; + this.source = source; + } + RepeatOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + }; + return RepeatOperator; +}()); +var RepeatSubscriber = (function (_super) { + __extends(RepeatSubscriber, _super); + function RepeatSubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RepeatSubscriber.prototype.complete = function () { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.complete.call(this); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RepeatSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=repeat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/repeat.js.map b/node_modules/rxjs/internal/operators/repeat.js.map new file mode 100644 index 00000000..a923cdca --- /dev/null +++ b/node_modules/rxjs/internal/operators/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sources":["../../src/internal/operators/repeat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAE3C,6CAA4C;AA2D5C,SAAgB,MAAM,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IAC1C,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,aAAK,EAAE,CAAC;SAChB;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC;AACJ,CAAC;AAVD,wBAUC;AAED;IACE,wBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IACD,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,qBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAkC,oCAAa;IAC7C,0BAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,mCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,QAAQ,WAAE,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAjBD,CAAkC,uBAAU,GAiB3C"} diff --git a/node_modules/rxjs/internal/operators/repeatWhen.d.ts b/node_modules/rxjs/internal/operators/repeatWhen.d.ts new file mode 100644 index 00000000..17a225e9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/repeatWhen.d.ts @@ -0,0 +1,33 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source + * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable + * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise + * this method will resubscribe to the source Observable. + * + * ![](repeatWhen.png) + * + * ## Example + * Repeat a message stream on click + * ```ts + * import { of, fromEvent } from 'rxjs'; + * import { repeatWhen } from 'rxjs/operators'; + * + * const source = of('Repeat message'); + * const documentClick$ = fromEvent(document, 'click'); + * + * source.pipe(repeatWhen(() => documentClick$) + * ).subscribe(data => console.log(data)) + * ``` + * @see {@link repeat} + * @see {@link retry} + * @see {@link retryWhen} + * + * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with + * which a user can `complete` or `error`, aborting the repetition. + * @return {Observable} The source Observable modified with repeat logic. + * @method repeatWhen + * @owner Observable + */ +export declare function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/repeatWhen.js b/node_modules/rxjs/internal/operators/repeatWhen.js new file mode 100644 index 00000000..20583738 --- /dev/null +++ b/node_modules/rxjs/internal/operators/repeatWhen.js @@ -0,0 +1,96 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var innerSubscribe_1 = require("../innerSubscribe"); +function repeatWhen(notifier) { + return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; +} +exports.repeatWhen = repeatWhen; +var RepeatWhenOperator = (function () { + function RepeatWhenOperator(notifier) { + this.notifier = notifier; + } + RepeatWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); + }; + return RepeatWhenOperator; +}()); +var RepeatWhenSubscriber = (function (_super) { + __extends(RepeatWhenSubscriber, _super); + function RepeatWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + _this.sourceIsBeingSubscribedTo = true; + return _this; + } + RepeatWhenSubscriber.prototype.notifyNext = function () { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); + }; + RepeatWhenSubscriber.prototype.notifyComplete = function () { + if (this.sourceIsBeingSubscribedTo === false) { + return _super.prototype.complete.call(this); + } + }; + RepeatWhenSubscriber.prototype.complete = function () { + this.sourceIsBeingSubscribedTo = false; + if (!this.isStopped) { + if (!this.retries) { + this.subscribeToRetries(); + } + if (!this.retriesSubscription || this.retriesSubscription.closed) { + return _super.prototype.complete.call(this); + } + this._unsubscribeAndRecycle(); + this.notifications.next(undefined); + } + }; + RepeatWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; + if (notifications) { + notifications.unsubscribe(); + this.notifications = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + }; + RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + _super.prototype._unsubscribeAndRecycle.call(this); + this._unsubscribe = _unsubscribe; + return this; + }; + RepeatWhenSubscriber.prototype.subscribeToRetries = function () { + this.notifications = new Subject_1.Subject(); + var retries; + try { + var notifier = this.notifier; + retries = notifier(this.notifications); + } + catch (e) { + return _super.prototype.complete.call(this); + } + this.retries = retries; + this.retriesSubscription = innerSubscribe_1.innerSubscribe(retries, new innerSubscribe_1.SimpleInnerSubscriber(this)); + }; + return RepeatWhenSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/repeatWhen.js.map b/node_modules/rxjs/internal/operators/repeatWhen.js.map new file mode 100644 index 00000000..60702386 --- /dev/null +++ b/node_modules/rxjs/internal/operators/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sources":["../../src/internal/operators/repeatWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/retry.d.ts b/node_modules/rxjs/internal/operators/retry.d.ts new file mode 100644 index 00000000..06082567 --- /dev/null +++ b/node_modules/rxjs/internal/operators/retry.d.ts @@ -0,0 +1,48 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable + * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given + * as a number parameter) rather than propagating the `error` call. + * + * ![](retry.png) + * + * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted + * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second + * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications + * would be: [1, 2, 1, 2, 3, 4, 5, `complete`]. + * + * ## Example + * ```ts + * import { interval, of, throwError } from 'rxjs'; + * import { mergeMap, retry } from 'rxjs/operators'; + * + * const source = interval(1000); + * const example = source.pipe( + * mergeMap(val => { + * if(val > 5){ + * return throwError('Error!'); + * } + * return of(val); + * }), + * //retry 2 times on error + * retry(2) + * ); + * + * const subscribe = example.subscribe({ + * next: val => console.log(val), + * error: val => console.log(`${val}: Retried 2 times then quit!`) + * }); + * + * // Output: + * // 0..1..2..3..4..5.. + * // 0..1..2..3..4..5.. + * // 0..1..2..3..4..5.. + * // "Error!: Retried 2 times then quit!" + * ``` + * + * @param {number} count - Number of retry attempts before failing. + * @return {Observable} The source Observable modified with the retry logic. + * @method retry + * @owner Observable + */ +export declare function retry(count?: number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/retry.js b/node_modules/rxjs/internal/operators/retry.js new file mode 100644 index 00000000..6f0e8735 --- /dev/null +++ b/node_modules/rxjs/internal/operators/retry.js @@ -0,0 +1,54 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function retry(count) { + if (count === void 0) { count = -1; } + return function (source) { return source.lift(new RetryOperator(count, source)); }; +} +exports.retry = retry; +var RetryOperator = (function () { + function RetryOperator(count, source) { + this.count = count; + this.source = source; + } + RetryOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); + }; + return RetryOperator; +}()); +var RetrySubscriber = (function (_super) { + __extends(RetrySubscriber, _super); + function RetrySubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RetrySubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.error.call(this, err); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RetrySubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=retry.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/retry.js.map b/node_modules/rxjs/internal/operators/retry.js.map new file mode 100644 index 00000000..0551f610 --- /dev/null +++ b/node_modules/rxjs/internal/operators/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sources":["../../src/internal/operators/retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAmD3C,SAAgB,KAAK,CAAI,KAAkB;IAAlB,sBAAA,EAAA,SAAiB,CAAC;IACzC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,sBAEC;AAED;IACE,uBAAoB,KAAa,EACb,MAAqB;QADrB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAe;IACzC,CAAC;IAED,4BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAiC,mCAAa;IAC5C,yBAAY,WAA4B,EACpB,KAAa,EACb,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,WAAK,GAAL,KAAK,CAAQ;QACb,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IACD,+BAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACb,IAAA,SAAwB,EAAtB,kBAAM,EAAE,gBAAK,CAAU;YAC/B,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,iBAAM,KAAK,YAAC,GAAG,CAAC,CAAC;aACzB;iBAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;aACxB;YACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;SACjD;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAjBD,CAAiC,uBAAU,GAiB1C"} diff --git a/node_modules/rxjs/internal/operators/retryWhen.d.ts b/node_modules/rxjs/internal/operators/retryWhen.d.ts new file mode 100644 index 00000000..cb55ffed --- /dev/null +++ b/node_modules/rxjs/internal/operators/retryWhen.d.ts @@ -0,0 +1,17 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable + * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`. + * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child + * subscription. Otherwise this method will resubscribe to the source Observable. + * + * ![](retryWhen.png) + * + * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a + * user can `complete` or `error`, aborting the retry. + * @return {Observable} The source Observable modified with retry logic. + * @method retryWhen + * @owner Observable + */ +export declare function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/retryWhen.js b/node_modules/rxjs/internal/operators/retryWhen.js new file mode 100644 index 00000000..9c0b4886 --- /dev/null +++ b/node_modules/rxjs/internal/operators/retryWhen.js @@ -0,0 +1,88 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var innerSubscribe_1 = require("../innerSubscribe"); +function retryWhen(notifier) { + return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); }; +} +exports.retryWhen = retryWhen; +var RetryWhenOperator = (function () { + function RetryWhenOperator(notifier, source) { + this.notifier = notifier; + this.source = source; + } + RetryWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); + }; + return RetryWhenOperator; +}()); +var RetryWhenSubscriber = (function (_super) { + __extends(RetryWhenSubscriber, _super); + function RetryWhenSubscriber(destination, notifier, source) { + var _this = _super.call(this, destination) || this; + _this.notifier = notifier; + _this.source = source; + return _this; + } + RetryWhenSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var errors = this.errors; + var retries = this.retries; + var retriesSubscription = this.retriesSubscription; + if (!retries) { + errors = new Subject_1.Subject(); + try { + var notifier = this.notifier; + retries = notifier(errors); + } + catch (e) { + return _super.prototype.error.call(this, e); + } + retriesSubscription = innerSubscribe_1.innerSubscribe(retries, new innerSubscribe_1.SimpleInnerSubscriber(this)); + } + else { + this.errors = undefined; + this.retriesSubscription = undefined; + } + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + errors.next(err); + } + }; + RetryWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription; + if (errors) { + errors.unsubscribe(); + this.errors = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + }; + RetryWhenSubscriber.prototype.notifyNext = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + this._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + this.source.subscribe(this); + }; + return RetryWhenSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/retryWhen.js.map b/node_modules/rxjs/internal/operators/retryWhen.js.map new file mode 100644 index 00000000..a45b0ca6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sources":["../../src/internal/operators/retryWhen.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,sCAAqC;AAIrC,oDAAiG;AAgBjG,SAAgB,SAAS,CAAI,QAAsD;IACjF,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAApD,CAAoD,CAAC;AACzF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAsB,QAAsD,EACtD,MAAqB;QADrB,aAAQ,GAAR,QAAQ,CAA8C;QACtD,WAAM,GAAN,MAAM,CAAe;IAC3C,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;IACH,wBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAwC,uCAA2B;IAMjE,6BAAY,WAA0B,EAClB,QAAsD,EACtD,MAAqB;QAFzC,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,cAAQ,GAAR,QAAQ,CAA8C;QACtD,YAAM,GAAN,MAAM,CAAe;;IAEzC,CAAC;IAED,mCAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAEnB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,OAAO,GAAQ,IAAI,CAAC,OAAO,CAAC;YAChC,IAAI,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAEnD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,GAAG,IAAI,iBAAO,EAAE,CAAC;gBACvB,IAAI;oBACM,IAAA,wBAAQ,CAAU;oBAC1B,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC5B;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,iBAAM,KAAK,YAAC,CAAC,CAAC,CAAC;iBACvB;gBACD,mBAAmB,GAAG,+BAAc,CAAC,OAAO,EAAE,IAAI,sCAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;aAChF;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;aACtC;YAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAE9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;YAE/C,MAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnB;IACH,CAAC;IAGD,0CAAY,GAAZ;QACQ,IAAA,SAAsC,EAApC,kBAAM,EAAE,4CAAmB,CAAU;QAC7C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;SACzB;QACD,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;SACtC;QACD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,wCAAU,GAAV;QACU,IAAA,gCAAY,CAAU;QAE9B,IAAI,CAAC,YAAY,GAAG,IAAK,CAAC;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACH,0BAAC;AAAD,CAAC,AAlED,CAAwC,sCAAqB,GAkE5D"} diff --git a/node_modules/rxjs/internal/operators/sample.d.ts b/node_modules/rxjs/internal/operators/sample.d.ts new file mode 100644 index 00000000..f2ba124b --- /dev/null +++ b/node_modules/rxjs/internal/operators/sample.d.ts @@ -0,0 +1,43 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction } from '../types'; +/** + * Emits the most recently emitted value from the source Observable whenever + * another Observable, the `notifier`, emits. + * + * It's like {@link sampleTime}, but samples whenever + * the `notifier` Observable emits something. + * + * ![](sample.png) + * + * Whenever the `notifier` Observable emits a value or completes, `sample` + * looks at the source Observable and emits whichever value it has most recently + * emitted since the previous sampling, unless the source has not emitted + * anything since the previous sampling. The `notifier` is subscribed to as soon + * as the output Observable is subscribed. + * + * ## Example + * On every click, sample the most recent "seconds" timer + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { sample } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * const clicks = fromEvent(document, 'click'); + * const result = seconds.pipe(sample(clicks)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounce} + * @see {@link sampleTime} + * @see {@link throttle} + * + * @param {Observable} notifier The Observable to use for sampling the + * source Observable. + * @return {Observable} An Observable that emits the results of sampling the + * values emitted by the source Observable whenever the notifier Observable + * emits value or completes. + * @method sample + * @owner Observable + */ +export declare function sample(notifier: Observable): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/sample.js b/node_modules/rxjs/internal/operators/sample.js new file mode 100644 index 00000000..44317372 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sample.js @@ -0,0 +1,58 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function sample(notifier) { + return function (source) { return source.lift(new SampleOperator(notifier)); }; +} +exports.sample = sample; +var SampleOperator = (function () { + function SampleOperator(notifier) { + this.notifier = notifier; + } + SampleOperator.prototype.call = function (subscriber, source) { + var sampleSubscriber = new SampleSubscriber(subscriber); + var subscription = source.subscribe(sampleSubscriber); + subscription.add(innerSubscribe_1.innerSubscribe(this.notifier, new innerSubscribe_1.SimpleInnerSubscriber(sampleSubscriber))); + return subscription; + }; + return SampleOperator; +}()); +var SampleSubscriber = (function (_super) { + __extends(SampleSubscriber, _super); + function SampleSubscriber() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.hasValue = false; + return _this; + } + SampleSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + }; + SampleSubscriber.prototype.notifyNext = function () { + this.emitValue(); + }; + SampleSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + SampleSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.value); + } + }; + return SampleSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=sample.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/sample.js.map b/node_modules/rxjs/internal/operators/sample.js.map new file mode 100644 index 00000000..69e638d5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sources":["../../src/internal/operators/sample.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,oDAAiG;AA0CjG,SAAgB,MAAM,CAAI,QAAyB;IACjD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAzC,CAAyC,CAAC;AAC9E,CAAC;AAFD,wBAEC;AAED;IACE,wBAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACxD,YAAY,CAAC,GAAG,CAAC,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,sCAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7F,OAAO,YAAY,CAAC;IACtB,CAAC;IACH,qBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAqC,oCAA2B;IAAhE;QAAA,qEAuBC;QArBS,cAAQ,GAAY,KAAK,CAAC;;IAqBpC,CAAC;IAnBW,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,qCAAU,GAAV;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,yCAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,oCAAS,GAAT;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;SACrC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAvBD,CAAqC,sCAAqB,GAuBzD"} diff --git a/node_modules/rxjs/internal/operators/sampleTime.d.ts b/node_modules/rxjs/internal/operators/sampleTime.d.ts new file mode 100644 index 00000000..9083f1e6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sampleTime.d.ts @@ -0,0 +1,44 @@ +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** + * Emits the most recently emitted value from the source Observable within + * periodic time intervals. + * + * Samples the source Observable at periodic time + * intervals, emitting what it samples. + * + * ![](sampleTime.png) + * + * `sampleTime` periodically looks at the source Observable and emits whichever + * value it has most recently emitted since the previous sampling, unless the + * source has not emitted anything since the previous sampling. The sampling + * happens periodically in time every `period` milliseconds (or the time unit + * defined by the optional `scheduler` argument). The sampling starts as soon as + * the output Observable is subscribed. + * + * ## Example + * Every second, emit the most recent click at most once + * ```ts + * import { fromEvent } from 'rxjs'; + * import { sampleTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(sampleTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link auditTime} + * @see {@link debounceTime} + * @see {@link delay} + * @see {@link sample} + * @see {@link throttleTime} + * + * @param {number} period The sampling period expressed in milliseconds or the + * time unit determined internally by the optional `scheduler`. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the sampling. + * @return {Observable} An Observable that emits the results of sampling the + * values emitted by the source Observable at the specified time interval. + * @method sampleTime + * @owner Observable + */ +export declare function sampleTime(period: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/sampleTime.js b/node_modules/rxjs/internal/operators/sampleTime.js new file mode 100644 index 00000000..525580b4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sampleTime.js @@ -0,0 +1,60 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var async_1 = require("../scheduler/async"); +function sampleTime(period, scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); }; +} +exports.sampleTime = sampleTime; +var SampleTimeOperator = (function () { + function SampleTimeOperator(period, scheduler) { + this.period = period; + this.scheduler = scheduler; + } + SampleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); + }; + return SampleTimeOperator; +}()); +var SampleTimeSubscriber = (function (_super) { + __extends(SampleTimeSubscriber, _super); + function SampleTimeSubscriber(destination, period, scheduler) { + var _this = _super.call(this, destination) || this; + _this.period = period; + _this.scheduler = scheduler; + _this.hasValue = false; + _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period })); + return _this; + } + SampleTimeSubscriber.prototype._next = function (value) { + this.lastValue = value; + this.hasValue = true; + }; + SampleTimeSubscriber.prototype.notifyNext = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.lastValue); + } + }; + return SampleTimeSubscriber; +}(Subscriber_1.Subscriber)); +function dispatchNotification(state) { + var subscriber = state.subscriber, period = state.period; + subscriber.notifyNext(); + this.schedule(state, period); +} +//# sourceMappingURL=sampleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/sampleTime.js.map b/node_modules/rxjs/internal/operators/sampleTime.js.map new file mode 100644 index 00000000..071346b6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sources":["../../src/internal/operators/sampleTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAC3C,4CAA2C;AA6C3C,SAAgB,UAAU,CAAI,MAAc,EAAE,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC5E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAtD,CAAsD,CAAC;AAC3F,CAAC;AAFD,gCAEC;AAED;IACE,4BAAoB,MAAc,EACd,SAAwB;QADxB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,iCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC;IACH,yBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAsC,wCAAa;IAIjD,8BAAY,WAA0B,EAClB,MAAc,EACd,SAAwB;QAF5C,YAGE,kBAAM,WAAW,CAAC,SAEnB;QAJmB,YAAM,GAAN,MAAM,CAAQ;QACd,eAAS,GAAT,SAAS,CAAe;QAJ5C,cAAQ,GAAY,KAAK,CAAC;QAMxB,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAI,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC,CAAC;;IAC3F,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,yCAAU,GAAV;QACE,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,AAtBD,CAAsC,uBAAU,GAsB/C;AAED,SAAS,oBAAoB,CAAgC,KAAU;IAC/D,IAAA,6BAAU,EAAE,qBAAM,CAAW;IACnC,UAAU,CAAC,UAAU,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC"} diff --git a/node_modules/rxjs/internal/operators/scan.d.ts b/node_modules/rxjs/internal/operators/scan.d.ts new file mode 100644 index 00000000..8e03bc51 --- /dev/null +++ b/node_modules/rxjs/internal/operators/scan.d.ts @@ -0,0 +1,4 @@ +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; +export declare function scan(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction; +export declare function scan(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction; +export declare function scan(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/scan.js b/node_modules/rxjs/internal/operators/scan.js new file mode 100644 index 00000000..b43c1b77 --- /dev/null +++ b/node_modules/rxjs/internal/operators/scan.js @@ -0,0 +1,83 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function scan(accumulator, seed) { + var hasSeed = false; + if (arguments.length >= 2) { + hasSeed = true; + } + return function scanOperatorFunction(source) { + return source.lift(new ScanOperator(accumulator, seed, hasSeed)); + }; +} +exports.scan = scan; +var ScanOperator = (function () { + function ScanOperator(accumulator, seed, hasSeed) { + if (hasSeed === void 0) { hasSeed = false; } + this.accumulator = accumulator; + this.seed = seed; + this.hasSeed = hasSeed; + } + ScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); + }; + return ScanOperator; +}()); +var ScanSubscriber = (function (_super) { + __extends(ScanSubscriber, _super); + function ScanSubscriber(destination, accumulator, _seed, hasSeed) { + var _this = _super.call(this, destination) || this; + _this.accumulator = accumulator; + _this._seed = _seed; + _this.hasSeed = hasSeed; + _this.index = 0; + return _this; + } + Object.defineProperty(ScanSubscriber.prototype, "seed", { + get: function () { + return this._seed; + }, + set: function (value) { + this.hasSeed = true; + this._seed = value; + }, + enumerable: true, + configurable: true + }); + ScanSubscriber.prototype._next = function (value) { + if (!this.hasSeed) { + this.seed = value; + this.destination.next(value); + } + else { + return this._tryNext(value); + } + }; + ScanSubscriber.prototype._tryNext = function (value) { + var index = this.index++; + var result; + try { + result = this.accumulator(this.seed, value, index); + } + catch (err) { + this.destination.error(err); + } + this.seed = result; + this.destination.next(result); + }; + return ScanSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=scan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/scan.js.map b/node_modules/rxjs/internal/operators/scan.js.map new file mode 100644 index 00000000..a27e6bf2 --- /dev/null +++ b/node_modules/rxjs/internal/operators/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sources":["../../src/internal/operators/scan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAoD3C,SAAgB,IAAI,CAAO,WAAmD,EAAE,IAAY;IAC1F,IAAI,OAAO,GAAG,KAAK,CAAC;IAMpB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QACzB,OAAO,GAAG,IAAI,CAAC;KAChB;IAED,OAAO,SAAS,oBAAoB,CAAC,MAAqB;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAdD,oBAcC;AAED;IACE,sBAAoB,WAAmD,EAAU,IAAY,EAAU,OAAwB;QAAxB,wBAAA,EAAA,eAAwB;QAA3G,gBAAW,GAAX,WAAW,CAAwC;QAAU,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEnI,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrG,CAAC;IACH,mBAAC;AAAD,CAAC,AAND,IAMC;AAOD;IAAmC,kCAAa;IAY9C,wBAAY,WAA0B,EAAU,WAAmD,EAAU,KAAY,EACrG,OAAgB;QADpC,YAEE,kBAAM,WAAW,CAAC,SACnB;QAH+C,iBAAW,GAAX,WAAW,CAAwC;QAAU,WAAK,GAAL,KAAK,CAAO;QACrG,aAAO,GAAP,OAAO,CAAS;QAZ5B,WAAK,GAAW,CAAC,CAAC;;IAc1B,CAAC;IAZD,sBAAI,gCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAY;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OALA;IAYS,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,iCAAQ,GAAhB,UAAiB,KAAQ;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,MAAW,CAAC;QAChB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IACH,qBAAC;AAAD,CAAC,AArCD,CAAmC,uBAAU,GAqC5C"} diff --git a/node_modules/rxjs/internal/operators/sequenceEqual.d.ts b/node_modules/rxjs/internal/operators/sequenceEqual.d.ts new file mode 100644 index 00000000..67ee97b9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sequenceEqual.d.ts @@ -0,0 +1,87 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Observer, OperatorFunction } from '../types'; +/** + * Compares all values of two observables in sequence using an optional comparator function + * and returns an observable of a single boolean value representing whether or not the two sequences + * are equal. + * + * Checks to see of all values emitted by both observables are equal, in order. + * + * ![](sequenceEqual.png) + * + * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either + * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom + * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the + * observables completes, the operator will wait for the other observable to complete; If the other + * observable emits before completing, the returned observable will emit `false` and complete. If one observable never + * completes or emits after the other complets, the returned observable will never complete. + * + * ## Example + * figure out if the Konami code matches + * ```ts + * import { from, fromEvent } from 'rxjs'; + * import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators'; + * + * const codes = from([ + * 'ArrowUp', + * 'ArrowUp', + * 'ArrowDown', + * 'ArrowDown', + * 'ArrowLeft', + * 'ArrowRight', + * 'ArrowLeft', + * 'ArrowRight', + * 'KeyB', + * 'KeyA', + * 'Enter', // no start key, clearly. + * ]); + * + * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code)); + * const matches = keys.pipe( + * bufferCount(11, 1), + * mergeMap( + * last11 => from(last11).pipe(sequenceEqual(codes)), + * ), + * ); + * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched)); + * ``` + * + * @see {@link combineLatest} + * @see {@link zip} + * @see {@link withLatestFrom} + * + * @param {Observable} compareTo The observable sequence to compare the source sequence to. + * @param {function} [comparator] An optional function to compare each value pair + * @return {Observable} An Observable of a single boolean value representing whether or not + * the values emitted by both observables were equal in sequence. + * @method sequenceEqual + * @owner Observable + */ +export declare function sequenceEqual(compareTo: Observable, comparator?: (a: T, b: T) => boolean): OperatorFunction; +export declare class SequenceEqualOperator implements Operator { + private compareTo; + private comparator; + constructor(compareTo: Observable, comparator: (a: T, b: T) => boolean); + call(subscriber: Subscriber, source: any): any; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class SequenceEqualSubscriber extends Subscriber { + private compareTo; + private comparator; + private _a; + private _b; + private _oneComplete; + constructor(destination: Observer, compareTo: Observable, comparator: (a: T, b: T) => boolean); + protected _next(value: T): void; + _complete(): void; + checkValues(): void; + emit(value: boolean): void; + nextB(value: T): void; + completeB(): void; +} diff --git a/node_modules/rxjs/internal/operators/sequenceEqual.js b/node_modules/rxjs/internal/operators/sequenceEqual.js new file mode 100644 index 00000000..dbb6bce0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sequenceEqual.js @@ -0,0 +1,124 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function sequenceEqual(compareTo, comparator) { + return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); }; +} +exports.sequenceEqual = sequenceEqual; +var SequenceEqualOperator = (function () { + function SequenceEqualOperator(compareTo, comparator) { + this.compareTo = compareTo; + this.comparator = comparator; + } + SequenceEqualOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator)); + }; + return SequenceEqualOperator; +}()); +exports.SequenceEqualOperator = SequenceEqualOperator; +var SequenceEqualSubscriber = (function (_super) { + __extends(SequenceEqualSubscriber, _super); + function SequenceEqualSubscriber(destination, compareTo, comparator) { + var _this = _super.call(this, destination) || this; + _this.compareTo = compareTo; + _this.comparator = comparator; + _this._a = []; + _this._b = []; + _this._oneComplete = false; + _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); + return _this; + } + SequenceEqualSubscriber.prototype._next = function (value) { + if (this._oneComplete && this._b.length === 0) { + this.emit(false); + } + else { + this._a.push(value); + this.checkValues(); + } + }; + SequenceEqualSubscriber.prototype._complete = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + this.unsubscribe(); + }; + SequenceEqualSubscriber.prototype.checkValues = function () { + var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator; + while (_a.length > 0 && _b.length > 0) { + var a = _a.shift(); + var b = _b.shift(); + var areEqual = false; + try { + areEqual = comparator ? comparator(a, b) : a === b; + } + catch (e) { + this.destination.error(e); + } + if (!areEqual) { + this.emit(false); + } + } + }; + SequenceEqualSubscriber.prototype.emit = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + }; + SequenceEqualSubscriber.prototype.nextB = function (value) { + if (this._oneComplete && this._a.length === 0) { + this.emit(false); + } + else { + this._b.push(value); + this.checkValues(); + } + }; + SequenceEqualSubscriber.prototype.completeB = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; + return SequenceEqualSubscriber; +}(Subscriber_1.Subscriber)); +exports.SequenceEqualSubscriber = SequenceEqualSubscriber; +var SequenceEqualCompareToSubscriber = (function (_super) { + __extends(SequenceEqualCompareToSubscriber, _super); + function SequenceEqualCompareToSubscriber(destination, parent) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + return _this; + } + SequenceEqualCompareToSubscriber.prototype._next = function (value) { + this.parent.nextB(value); + }; + SequenceEqualCompareToSubscriber.prototype._error = function (err) { + this.parent.error(err); + this.unsubscribe(); + }; + SequenceEqualCompareToSubscriber.prototype._complete = function () { + this.parent.completeB(); + this.unsubscribe(); + }; + return SequenceEqualCompareToSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/sequenceEqual.js.map b/node_modules/rxjs/internal/operators/sequenceEqual.js.map new file mode 100644 index 00000000..7ec29c16 --- /dev/null +++ b/node_modules/rxjs/internal/operators/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sources":["../../src/internal/operators/sequenceEqual.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/share.d.ts b/node_modules/rxjs/internal/operators/share.d.ts new file mode 100644 index 00000000..e8439ab3 --- /dev/null +++ b/node_modules/rxjs/internal/operators/share.d.ts @@ -0,0 +1,14 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one + * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will + * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`. + * This is an alias for `multicast(() => new Subject()), refCount()`. + * + * ![](share.png) + * + * @return {Observable} An Observable that upon connection causes the source Observable to emit items to its Observers. + * @method share + * @owner Observable + */ +export declare function share(): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/share.js b/node_modules/rxjs/internal/operators/share.js new file mode 100644 index 00000000..398eeb86 --- /dev/null +++ b/node_modules/rxjs/internal/operators/share.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var multicast_1 = require("./multicast"); +var refCount_1 = require("./refCount"); +var Subject_1 = require("../Subject"); +function shareSubjectFactory() { + return new Subject_1.Subject(); +} +function share() { + return function (source) { return refCount_1.refCount()(multicast_1.multicast(shareSubjectFactory)(source)); }; +} +exports.share = share; +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/share.js.map b/node_modules/rxjs/internal/operators/share.js.map new file mode 100644 index 00000000..aaf1dea3 --- /dev/null +++ b/node_modules/rxjs/internal/operators/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sources":["../../src/internal/operators/share.ts"],"names":[],"mappings":";;AACA,yCAAwC;AACxC,uCAAsC;AACtC,sCAAqC;AAIrC,SAAS,mBAAmB;IAC1B,OAAO,IAAI,iBAAO,EAAE,CAAC;AACvB,CAAC;AAcD,SAAgB,KAAK;IACnB,OAAO,UAAC,MAAqB,IAAK,OAAA,mBAAQ,EAAE,CAAC,qBAAS,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAkB,EAAnE,CAAmE,CAAC;AACxG,CAAC;AAFD,sBAEC"} diff --git a/node_modules/rxjs/internal/operators/shareReplay.d.ts b/node_modules/rxjs/internal/operators/shareReplay.d.ts new file mode 100644 index 00000000..2b52778a --- /dev/null +++ b/node_modules/rxjs/internal/operators/shareReplay.d.ts @@ -0,0 +1,54 @@ +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +export interface ShareReplayConfig { + bufferSize?: number; + windowTime?: number; + refCount: boolean; + scheduler?: SchedulerLike; +} +/** + * Share source and replay specified number of emissions on subscription. + * + * This operator is a specialization of `replay` that connects to a source observable + * and multicasts through a `ReplaySubject` constructed with the specified arguments. + * A successfully completed source will stay cached in the `shareReplayed observable` forever, + * but an errored source can be retried. + * + * ## Why use shareReplay? + * You generally want to use `shareReplay` when you have side-effects or taxing computations + * that you do not wish to be executed amongst multiple subscribers. + * It may also be valuable in situations where you know you will have late subscribers to + * a stream that need access to previously emitted values. + * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`. + * + * ![](shareReplay.png) + * + * ## Example + * ```ts + * import { interval } from 'rxjs'; + * import { shareReplay, take } from 'rxjs/operators'; + * + * const obs$ = interval(1000); + * const shared$ = obs$.pipe( + * take(4), + * shareReplay(3) + * ); + * shared$.subscribe(x => console.log('source A: ', x)); + * shared$.subscribe(y => console.log('source B: ', y)); + * + * ``` + * + * @see {@link publish} + * @see {@link share} + * @see {@link publishReplay} + * + * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer. + * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds. + * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function + * will be invoked on. + * @return {Observable} An observable sequence that contains the elements of a sequence produced + * by multicasting the source sequence within a selector function. + * @method shareReplay + * @owner Observable + */ +export declare function shareReplay(config: ShareReplayConfig): MonoTypeOperatorFunction; +export declare function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/shareReplay.js b/node_modules/rxjs/internal/operators/shareReplay.js new file mode 100644 index 00000000..6cedb599 --- /dev/null +++ b/node_modules/rxjs/internal/operators/shareReplay.js @@ -0,0 +1,61 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ReplaySubject_1 = require("../ReplaySubject"); +function shareReplay(configOrBufferSize, windowTime, scheduler) { + var config; + if (configOrBufferSize && typeof configOrBufferSize === 'object') { + config = configOrBufferSize; + } + else { + config = { + bufferSize: configOrBufferSize, + windowTime: windowTime, + refCount: false, + scheduler: scheduler + }; + } + return function (source) { return source.lift(shareReplayOperator(config)); }; +} +exports.shareReplay = shareReplay; +function shareReplayOperator(_a) { + var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler; + var subject; + var refCount = 0; + var subscription; + var hasError = false; + var isComplete = false; + return function shareReplayOperation(source) { + refCount++; + var innerSub; + if (!subject || hasError) { + hasError = false; + subject = new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler); + innerSub = subject.subscribe(this); + subscription = source.subscribe({ + next: function (value) { subject.next(value); }, + error: function (err) { + hasError = true; + subject.error(err); + }, + complete: function () { + isComplete = true; + subscription = undefined; + subject.complete(); + }, + }); + } + else { + innerSub = subject.subscribe(this); + } + this.add(function () { + refCount--; + innerSub.unsubscribe(); + if (subscription && !isComplete && useRefCount && refCount === 0) { + subscription.unsubscribe(); + subscription = undefined; + subject = undefined; + } + }); + }; +} +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/shareReplay.js.map b/node_modules/rxjs/internal/operators/shareReplay.js.map new file mode 100644 index 00000000..0e6961a3 --- /dev/null +++ b/node_modules/rxjs/internal/operators/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sources":["../../src/internal/operators/shareReplay.ts"],"names":[],"mappings":";;AACA,kDAAiD;AA2DjD,SAAgB,WAAW,CACzB,kBAA+C,EAC/C,UAAmB,EACnB,SAAyB;IAEzB,IAAI,MAAyB,CAAC;IAC9B,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAChE,MAAM,GAAG,kBAAuC,CAAC;KAClD;SAAM;QACL,MAAM,GAAG;YACP,UAAU,EAAE,kBAAwC;YACpD,UAAU,YAAA;YACV,QAAQ,EAAE,KAAK;YACf,SAAS,WAAA;SACV,CAAC;KACH;IACD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAjBD,kCAiBC;AAED,SAAS,mBAAmB,CAAI,EAKZ;QAJlB,kBAAqC,EAArC,0DAAqC,EACrC,kBAAqC,EAArC,0DAAqC,EACrC,yBAAqB,EACrB,wBAAS;IAET,IAAI,OAAqC,CAAC;IAC1C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,YAAsC,CAAC;IAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO,SAAS,oBAAoB,CAAsB,MAAqB;QAC7E,QAAQ,EAAE,CAAC;QACX,IAAI,QAAsB,CAAC;QAC3B,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;YACxB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,6BAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAClE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC9B,IAAI,YAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpC,KAAK,YAAC,GAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,QAAQ;oBACN,UAAU,GAAG,IAAI,CAAC;oBAClB,YAAY,GAAG,SAAS,CAAC;oBACzB,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC,CAAC;SACJ;aAAM;YACL,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,GAAG,CAAC;YACP,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,IAAI,YAAY,IAAI,CAAC,UAAU,IAAI,WAAW,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAChE,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC3B,YAAY,GAAG,SAAS,CAAC;gBACzB,OAAO,GAAG,SAAS,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"} diff --git a/node_modules/rxjs/internal/operators/single.d.ts b/node_modules/rxjs/internal/operators/single.d.ts new file mode 100644 index 00000000..d5deef74 --- /dev/null +++ b/node_modules/rxjs/internal/operators/single.d.ts @@ -0,0 +1,49 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that emits the single item emitted by the source Observable that matches a specified + * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no + * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable + * emits items but none match the specified predicate then `undefined` is emitted. + * + * Like {@link first}, but emit with error notification if there is more than one value. + * ![](single.png) + * + * ## Example + * emits 'error' + * ```ts + * import { range } from 'rxjs'; + * import { single } from 'rxjs/operators'; + * + * const numbers = range(1,5).pipe(single()); + * numbers.subscribe(x => console.log('never get called'), e => console.log('error')); + * // result + * // 'error' + * ``` + * + * emits 'undefined' + * ```ts + * import { range } from 'rxjs'; + * import { single } from 'rxjs/operators'; + * + * const numbers = range(1,5).pipe(single(x => x === 10)); + * numbers.subscribe(x => console.log(x)); + * // result + * // 'undefined' + * ``` + * + * @see {@link first} + * @see {@link find} + * @see {@link findIndex} + * @see {@link elementAt} + * + * @throws {EmptyError} Delivers an EmptyError to the Observer's `error` + * callback if the Observable completes before any `next` notification was sent. + * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable. + * @return {Observable} An Observable that emits the single item emitted by the source Observable that matches + * the predicate or `undefined` when no items match. + * + * @method single + * @owner Observable + */ +export declare function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/single.js b/node_modules/rxjs/internal/operators/single.js new file mode 100644 index 00000000..b99c2d8c --- /dev/null +++ b/node_modules/rxjs/internal/operators/single.js @@ -0,0 +1,82 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var EmptyError_1 = require("../util/EmptyError"); +function single(predicate) { + return function (source) { return source.lift(new SingleOperator(predicate, source)); }; +} +exports.single = single; +var SingleOperator = (function () { + function SingleOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + SingleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); + }; + return SingleOperator; +}()); +var SingleSubscriber = (function (_super) { + __extends(SingleSubscriber, _super); + function SingleSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.seenValue = false; + _this.index = 0; + return _this; + } + SingleSubscriber.prototype.applySingleValue = function (value) { + if (this.seenValue) { + this.destination.error('Sequence contains more than one element'); + } + else { + this.seenValue = true; + this.singleValue = value; + } + }; + SingleSubscriber.prototype._next = function (value) { + var index = this.index++; + if (this.predicate) { + this.tryNext(value, index); + } + else { + this.applySingleValue(value); + } + }; + SingleSubscriber.prototype.tryNext = function (value, index) { + try { + if (this.predicate(value, index, this.source)) { + this.applySingleValue(value); + } + } + catch (err) { + this.destination.error(err); + } + }; + SingleSubscriber.prototype._complete = function () { + var destination = this.destination; + if (this.index > 0) { + destination.next(this.seenValue ? this.singleValue : undefined); + destination.complete(); + } + else { + destination.error(new EmptyError_1.EmptyError); + } + }; + return SingleSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=single.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/single.js.map b/node_modules/rxjs/internal/operators/single.js.map new file mode 100644 index 00000000..1ad14fb7 --- /dev/null +++ b/node_modules/rxjs/internal/operators/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sources":["../../src/internal/operators/single.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAC3C,iDAAgD;AAkDhD,SAAgB,MAAM,CAAI,SAAuE;IAC/F,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAlD,CAAkD,CAAC;AACvF,CAAC;AAFD,wBAEC;AAED;IACE,wBAAoB,SAAuE,EACvE,MAAsB;QADtB,cAAS,GAAT,SAAS,CAA8D;QACvE,WAAM,GAAN,MAAM,CAAgB;IAC1C,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;IACH,qBAAC;AAAD,CAAC,AARD,IAQC;AAOD;IAAkC,oCAAa;IAK7C,0BAAY,WAAwB,EAChB,SAAuE,EACvE,MAAsB;QAF1C,YAGE,kBAAM,WAAW,CAAC,SACnB;QAHmB,eAAS,GAAT,SAAS,CAA8D;QACvE,YAAM,GAAN,MAAM,CAAgB;QANlC,eAAS,GAAY,KAAK,CAAC;QAE3B,WAAK,GAAW,CAAC,CAAC;;IAM1B,CAAC;IAEO,2CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SACnE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAEO,kCAAO,GAAf,UAAgB,KAAQ,EAAE,KAAa;QACrC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IAES,oCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChE,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;aAAM;YACL,WAAW,CAAC,KAAK,CAAC,IAAI,uBAAU,CAAC,CAAC;SACnC;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAlDD,CAAkC,uBAAU,GAkD3C"} diff --git a/node_modules/rxjs/internal/operators/skip.d.ts b/node_modules/rxjs/internal/operators/skip.d.ts new file mode 100644 index 00000000..dedad7d9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skip.d.ts @@ -0,0 +1,13 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that skips the first `count` items emitted by the source Observable. + * + * ![](skip.png) + * + * @param {Number} count - The number of times, items emitted by source Observable should be skipped. + * @return {Observable} An Observable that skips values emitted by the source Observable. + * + * @method skip + * @owner Observable + */ +export declare function skip(count: number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/skip.js b/node_modules/rxjs/internal/operators/skip.js new file mode 100644 index 00000000..0bd54a09 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skip.js @@ -0,0 +1,45 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function skip(count) { + return function (source) { return source.lift(new SkipOperator(count)); }; +} +exports.skip = skip; +var SkipOperator = (function () { + function SkipOperator(total) { + this.total = total; + } + SkipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipSubscriber(subscriber, this.total)); + }; + return SkipOperator; +}()); +var SkipSubscriber = (function (_super) { + __extends(SkipSubscriber, _super); + function SkipSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + SkipSubscriber.prototype._next = function (x) { + if (++this.count > this.total) { + this.destination.next(x); + } + }; + return SkipSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=skip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/skip.js.map b/node_modules/rxjs/internal/operators/skip.js.map new file mode 100644 index 00000000..5a7a06e4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sources":["../../src/internal/operators/skip.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAe3C,SAAgB,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAApC,CAAoC,CAAC;AACzE,CAAC;AAFD,oBAEC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAgC,kCAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAF7D,WAAK,GAAW,CAAC,CAAC;;IAIlB,CAAC;IAES,8BAAK,GAAf,UAAgB,CAAI;QAClB,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1B;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,CAAgC,uBAAU,GAYzC"} diff --git a/node_modules/rxjs/internal/operators/skipLast.d.ts b/node_modules/rxjs/internal/operators/skipLast.d.ts new file mode 100644 index 00000000..46ab8c28 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipLast.d.ts @@ -0,0 +1,40 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Skip the last `count` values emitted by the source Observable. + * + * ![](skipLast.png) + * + * `skipLast` returns an Observable that accumulates a queue with a length + * enough to store the first `count` values. As more values are received, + * values are taken from the front of the queue and produced on the result + * sequence. This causes values to be delayed. + * + * ## Example + * Skip the last 2 values of an Observable with many values + * ```ts + * import { range } from 'rxjs'; + * import { skipLast } from 'rxjs/operators'; + * + * const many = range(1, 5); + * const skipLastTwo = many.pipe(skipLast(2)); + * skipLastTwo.subscribe(x => console.log(x)); + * + * // Results in: + * // 1 2 3 + * ``` + * + * @see {@link skip} + * @see {@link skipUntil} + * @see {@link skipWhile} + * @see {@link take} + * + * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws + * ArgumentOutOrRangeError if `i < 0`. + * + * @param {number} count Number of elements to skip from the end of the source Observable. + * @returns {Observable} An Observable that skips the last count values + * emitted by the source Observable. + * @method skipLast + * @owner Observable + */ +export declare function skipLast(count: number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/skipLast.js b/node_modules/rxjs/internal/operators/skipLast.js new file mode 100644 index 00000000..4e407ab8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipLast.js @@ -0,0 +1,64 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError"); +function skipLast(count) { + return function (source) { return source.lift(new SkipLastOperator(count)); }; +} +exports.skipLast = skipLast; +var SkipLastOperator = (function () { + function SkipLastOperator(_skipCount) { + this._skipCount = _skipCount; + if (this._skipCount < 0) { + throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; + } + } + SkipLastOperator.prototype.call = function (subscriber, source) { + if (this._skipCount === 0) { + return source.subscribe(new Subscriber_1.Subscriber(subscriber)); + } + else { + return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); + } + }; + return SkipLastOperator; +}()); +var SkipLastSubscriber = (function (_super) { + __extends(SkipLastSubscriber, _super); + function SkipLastSubscriber(destination, _skipCount) { + var _this = _super.call(this, destination) || this; + _this._skipCount = _skipCount; + _this._count = 0; + _this._ring = new Array(_skipCount); + return _this; + } + SkipLastSubscriber.prototype._next = function (value) { + var skipCount = this._skipCount; + var count = this._count++; + if (count < skipCount) { + this._ring[count] = value; + } + else { + var currentIndex = count % skipCount; + var ring = this._ring; + var oldValue = ring[currentIndex]; + ring[currentIndex] = value; + this.destination.next(oldValue); + } + }; + return SkipLastSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=skipLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/skipLast.js.map b/node_modules/rxjs/internal/operators/skipLast.js.map new file mode 100644 index 00000000..aa08a67c --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sources":["../../src/internal/operators/skipLast.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,2EAA0E;AA0C1E,SAAgB,QAAQ,CAAI,KAAa;IACvC,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAxC,CAAwC,CAAC;AAC7E,CAAC;AAFD,4BAEC;AAED;IACE,0BAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QACpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,iDAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAGzB,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,uBAAU,CAAC,UAAU,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IACH,uBAAC;AAAD,CAAC,AAhBD,IAgBC;AAOD;IAAoC,sCAAa;IAI/C,4BAAY,WAA0B,EAAU,UAAkB;QAAlE,YACE,kBAAM,WAAW,CAAC,SAEnB;QAH+C,gBAAU,GAAV,UAAU,CAAQ;QAF1D,YAAM,GAAW,CAAC,CAAC;QAIzB,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAI,UAAU,CAAC,CAAC;;IACxC,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SAC3B;aAAM;YACL,IAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAC;YACvC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AAxBD,CAAoC,uBAAU,GAwB7C"} diff --git a/node_modules/rxjs/internal/operators/skipUntil.d.ts b/node_modules/rxjs/internal/operators/skipUntil.d.ts new file mode 100644 index 00000000..bd9be1b0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipUntil.d.ts @@ -0,0 +1,42 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item. + * + * The `skipUntil` operator causes the observable stream to skip the emission of values ​​until the passed in observable emits the first value. + * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by. + * + * ![](skipUntil.png) + * + * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission + * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source* + * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting + * a value before. + * + * ## Example + * + * In the following example, all emitted values ​​of the interval observable are skipped until the user clicks anywhere within the page. + * + * ```ts + * import { interval, fromEvent } from 'rxjs'; + * import { skipUntil } from 'rxjs/operators'; + * + * const intervalObservable = interval(1000); + * const click = fromEvent(document, 'click'); + * + * const emitAfterClick = intervalObservable.pipe( + * skipUntil(click) + * ); + * // clicked at 4.6s. output: 5...6...7...8........ or + * // clicked at 7.3s. output: 8...9...10..11....... + * const subscribe = emitAfterClick.subscribe(value => console.log(value)); + * ``` + * + * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to + * be mirrored by the resulting Observable. + * @return {Observable} An Observable that skips items from the source Observable until the second Observable emits + * an item, then emits the remaining items. + * @method skipUntil + * @owner Observable + */ +export declare function skipUntil(notifier: Observable): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/skipUntil.js b/node_modules/rxjs/internal/operators/skipUntil.js new file mode 100644 index 00000000..7900c8bd --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipUntil.js @@ -0,0 +1,60 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function skipUntil(notifier) { + return function (source) { return source.lift(new SkipUntilOperator(notifier)); }; +} +exports.skipUntil = skipUntil; +var SkipUntilOperator = (function () { + function SkipUntilOperator(notifier) { + this.notifier = notifier; + } + SkipUntilOperator.prototype.call = function (destination, source) { + return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); + }; + return SkipUntilOperator; +}()); +var SkipUntilSubscriber = (function (_super) { + __extends(SkipUntilSubscriber, _super); + function SkipUntilSubscriber(destination, notifier) { + var _this = _super.call(this, destination) || this; + _this.hasValue = false; + var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(_this); + _this.add(innerSubscriber); + _this.innerSubscription = innerSubscriber; + var innerSubscription = innerSubscribe_1.innerSubscribe(notifier, innerSubscriber); + if (innerSubscription !== innerSubscriber) { + _this.add(innerSubscription); + _this.innerSubscription = innerSubscription; + } + return _this; + } + SkipUntilSubscriber.prototype._next = function (value) { + if (this.hasValue) { + _super.prototype._next.call(this, value); + } + }; + SkipUntilSubscriber.prototype.notifyNext = function () { + this.hasValue = true; + if (this.innerSubscription) { + this.innerSubscription.unsubscribe(); + } + }; + SkipUntilSubscriber.prototype.notifyComplete = function () { + }; + return SkipUntilSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/skipUntil.js.map b/node_modules/rxjs/internal/operators/skipUntil.js.map new file mode 100644 index 00000000..dd314f9a --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sources":["../../src/internal/operators/skipUntil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,oDAAiG;AAyCjG,SAAgB,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,WAA0B,EAAE,MAAW;QAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAwC,uCAA2B;IAKjE,6BAAY,WAA0B,EAAE,QAA8B;QAAtE,YACE,kBAAM,WAAW,CAAC,SAYnB;QAhBO,cAAQ,GAAY,KAAK,CAAC;QAKhC,IAAM,eAAe,GAAG,IAAI,sCAAqB,CAAC,KAAI,CAAC,CAAC;QACxD,KAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1B,KAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QACzC,IAAM,iBAAiB,GAAG,+BAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAIpE,IAAI,iBAAiB,KAAK,eAAe,EAAE;YACzC,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,KAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;;IACH,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;SACpB;IACH,CAAC;IAED,wCAAU,GAAV;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACtC;IACH,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AApCD,CAAwC,sCAAqB,GAoC5D"} diff --git a/node_modules/rxjs/internal/operators/skipWhile.d.ts b/node_modules/rxjs/internal/operators/skipWhile.d.ts new file mode 100644 index 00000000..a5ae21bd --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipWhile.d.ts @@ -0,0 +1,14 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds + * true, but emits all further source items as soon as the condition becomes false. + * + * ![](skipWhile.png) + * + * @param {Function} predicate - A function to test each item emitted from the source Observable. + * @return {Observable} An Observable that begins emitting items emitted by the source Observable when the + * specified predicate becomes false. + * @method skipWhile + * @owner Observable + */ +export declare function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/skipWhile.js b/node_modules/rxjs/internal/operators/skipWhile.js new file mode 100644 index 00000000..81963427 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipWhile.js @@ -0,0 +1,59 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function skipWhile(predicate) { + return function (source) { return source.lift(new SkipWhileOperator(predicate)); }; +} +exports.skipWhile = skipWhile; +var SkipWhileOperator = (function () { + function SkipWhileOperator(predicate) { + this.predicate = predicate; + } + SkipWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); + }; + return SkipWhileOperator; +}()); +var SkipWhileSubscriber = (function (_super) { + __extends(SkipWhileSubscriber, _super); + function SkipWhileSubscriber(destination, predicate) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.skipping = true; + _this.index = 0; + return _this; + } + SkipWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (this.skipping) { + this.tryCallPredicate(value); + } + if (!this.skipping) { + destination.next(value); + } + }; + SkipWhileSubscriber.prototype.tryCallPredicate = function (value) { + try { + var result = this.predicate(value, this.index++); + this.skipping = Boolean(result); + } + catch (err) { + this.destination.error(err); + } + }; + return SkipWhileSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=skipWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/skipWhile.js.map b/node_modules/rxjs/internal/operators/skipWhile.js.map new file mode 100644 index 00000000..f22aaca1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sources":["../../src/internal/operators/skipWhile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAe3C,SAAgB,SAAS,CAAI,SAA+C;IAC1E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAA7C,CAA6C,CAAC;AAClF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,SAA+C;QAA/C,cAAS,GAAT,SAAS,CAAsC;IACnE,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACH,wBAAC;AAAD,CAAC,AAPD,IAOC;AAOD;IAAqC,uCAAa;IAIhD,6BAAY,WAA0B,EAClB,SAA+C;QADnE,YAEE,kBAAM,WAAW,CAAC,SACnB;QAFmB,eAAS,GAAT,SAAS,CAAsC;QAJ3D,cAAQ,GAAY,IAAI,CAAC;QACzB,WAAK,GAAW,CAAC,CAAC;;IAK1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;IAEO,8CAAgB,GAAxB,UAAyB,KAAQ;QAC/B,IAAI;YACF,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;SACjC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AA5BD,CAAqC,uBAAU,GA4B9C"} diff --git a/node_modules/rxjs/internal/operators/startWith.d.ts b/node_modules/rxjs/internal/operators/startWith.d.ts new file mode 100644 index 00000000..e3c2c8c5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/startWith.d.ts @@ -0,0 +1,24 @@ +import { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types'; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(scheduler: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(v1: D, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(v1: D, v2: E, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(v1: D, v2: E, v3: F, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(v1: D, v2: E, v3: F, v4: G, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I, scheduler: SchedulerLike): OperatorFunction; +export declare function startWith(v1: D): OperatorFunction; +export declare function startWith(v1: D, v2: E): OperatorFunction; +export declare function startWith(v1: D, v2: E, v3: F): OperatorFunction; +export declare function startWith(v1: D, v2: E, v3: F, v4: G): OperatorFunction; +export declare function startWith(v1: D, v2: E, v3: F, v4: G, v5: H): OperatorFunction; +export declare function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I): OperatorFunction; +export declare function startWith(...array: D[]): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export declare function startWith(...array: Array): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/startWith.js b/node_modules/rxjs/internal/operators/startWith.js new file mode 100644 index 00000000..fd72f0c6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/startWith.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var concat_1 = require("../observable/concat"); +var isScheduler_1 = require("../util/isScheduler"); +function startWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; + } + var scheduler = array[array.length - 1]; + if (isScheduler_1.isScheduler(scheduler)) { + array.pop(); + return function (source) { return concat_1.concat(array, source, scheduler); }; + } + else { + return function (source) { return concat_1.concat(array, source); }; + } +} +exports.startWith = startWith; +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/startWith.js.map b/node_modules/rxjs/internal/operators/startWith.js.map new file mode 100644 index 00000000..542326a1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sources":["../../src/internal/operators/startWith.ts"],"names":[],"mappings":";;AACA,+CAA8C;AAC9C,mDAAkD;AAiElD,SAAgB,SAAS;IAAO,eAAkC;SAAlC,UAAkC,EAAlC,qBAAkC,EAAlC,IAAkC;QAAlC,0BAAkC;;IAChE,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAC;IAC3D,IAAI,yBAAW,CAAC,SAAS,CAAC,EAAE;QAE1B,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,UAAC,MAAqB,IAAK,OAAA,eAAM,CAAC,KAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAvC,CAAuC,CAAC;KAC3E;SAAM;QACL,OAAO,UAAC,MAAqB,IAAK,OAAA,eAAM,CAAC,KAAY,EAAE,MAAM,CAAC,EAA5B,CAA4B,CAAC;KAChE;AACH,CAAC;AATD,8BASC"} diff --git a/node_modules/rxjs/internal/operators/subscribeOn.d.ts b/node_modules/rxjs/internal/operators/subscribeOn.d.ts new file mode 100644 index 00000000..b67954e6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/subscribeOn.d.ts @@ -0,0 +1,44 @@ +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** + * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}. + * + * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to. + * + * Schedulers control the speed and order of emissions to observers from an Observable stream. + * + * ![](subscribeOn.png) + * + * ## Example + * Given the following code: + * ```javascript + * import { of, merge } from 'rxjs'; + * + * const a = of(1, 2, 3, 4); + * const b = of(5, 6, 7, 8, 9); + * merge(a, b).subscribe(console.log); + * ``` + * + * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to. + * This will result in the output of `1 2 3 4 5 6 7 8 9`. + * + * But if we instead us the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emited by Observable `a`: + * ```javascript + * import { of, merge, asyncScheduler } from 'rxjs'; + * import { subscribeOn } from 'rxjs/operators'; + * + * const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler)); + * const b = of(5, 6, 7, 8, 9); + * merge(a, b).subscribe(console.log); + * ``` + * + * The output will instead be `5 6 7 8 9 1 2 3 4`. + * The reason for this is that Observable `b` emits its values directly and synchronously like before + * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable. + * + * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on. + * @return {Observable} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}. + . + * @method subscribeOn + * @owner Observable + */ +export declare function subscribeOn(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/subscribeOn.js b/node_modules/rxjs/internal/operators/subscribeOn.js new file mode 100644 index 00000000..92042f55 --- /dev/null +++ b/node_modules/rxjs/internal/operators/subscribeOn.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var SubscribeOnObservable_1 = require("../observable/SubscribeOnObservable"); +function subscribeOn(scheduler, delay) { + if (delay === void 0) { delay = 0; } + return function subscribeOnOperatorFunction(source) { + return source.lift(new SubscribeOnOperator(scheduler, delay)); + }; +} +exports.subscribeOn = subscribeOn; +var SubscribeOnOperator = (function () { + function SubscribeOnOperator(scheduler, delay) { + this.scheduler = scheduler; + this.delay = delay; + } + SubscribeOnOperator.prototype.call = function (subscriber, source) { + return new SubscribeOnObservable_1.SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber); + }; + return SubscribeOnOperator; +}()); +//# sourceMappingURL=subscribeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/subscribeOn.js.map b/node_modules/rxjs/internal/operators/subscribeOn.js.map new file mode 100644 index 00000000..d4bd464b --- /dev/null +++ b/node_modules/rxjs/internal/operators/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sources":["../../src/internal/operators/subscribeOn.ts"],"names":[],"mappings":";;AAGA,6EAA4E;AA6C5E,SAAgB,WAAW,CAAI,SAAwB,EAAE,KAAiB;IAAjB,sBAAA,EAAA,SAAiB;IACxE,OAAO,SAAS,2BAA2B,CAAC,MAAqB;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC;AAJD,kCAIC;AAED;IACE,6BAAoB,SAAwB,EACxB,KAAa;QADb,cAAS,GAAT,SAAS,CAAe;QACxB,UAAK,GAAL,KAAK,CAAQ;IACjC,CAAC;IACD,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,IAAI,6CAAqB,CAC9B,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CACnC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IACH,0BAAC;AAAD,CAAC,AATD,IASC"} diff --git a/node_modules/rxjs/internal/operators/switchAll.d.ts b/node_modules/rxjs/internal/operators/switchAll.d.ts new file mode 100644 index 00000000..a184147d --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchAll.d.ts @@ -0,0 +1,3 @@ +import { OperatorFunction, ObservableInput } from '../types'; +export declare function switchAll(): OperatorFunction, T>; +export declare function switchAll(): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/switchAll.js b/node_modules/rxjs/internal/operators/switchAll.js new file mode 100644 index 00000000..f01f86da --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchAll.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var switchMap_1 = require("./switchMap"); +var identity_1 = require("../util/identity"); +function switchAll() { + return switchMap_1.switchMap(identity_1.identity); +} +exports.switchAll = switchAll; +//# sourceMappingURL=switchAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/switchAll.js.map b/node_modules/rxjs/internal/operators/switchAll.js.map new file mode 100644 index 00000000..509b3ee7 --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchAll.js","sources":["../../src/internal/operators/switchAll.ts"],"names":[],"mappings":";;AACA,yCAAwC;AACxC,6CAA4C;AA4D5C,SAAgB,SAAS;IACvB,OAAO,qBAAS,CAAC,mBAAQ,CAAC,CAAC;AAC7B,CAAC;AAFD,8BAEC"} diff --git a/node_modules/rxjs/internal/operators/switchMap.d.ts b/node_modules/rxjs/internal/operators/switchMap.d.ts new file mode 100644 index 00000000..ecf9c96d --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchMap.d.ts @@ -0,0 +1,6 @@ +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +export declare function switchMap>(project: (value: T, index: number) => O): OperatorFunction>; +/** @deprecated resultSelector is no longer supported, use inner map instead */ +export declare function switchMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; +/** @deprecated resultSelector is no longer supported, use inner map instead */ +export declare function switchMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/switchMap.js b/node_modules/rxjs/internal/operators/switchMap.js new file mode 100644 index 00000000..c9fbdb4a --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchMap.js @@ -0,0 +1,89 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var map_1 = require("./map"); +var from_1 = require("../observable/from"); +var innerSubscribe_1 = require("../innerSubscribe"); +function switchMap(project, resultSelector) { + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(switchMap(function (a, i) { return from_1.from(project(a, i)).pipe(map_1.map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; + } + return function (source) { return source.lift(new SwitchMapOperator(project)); }; +} +exports.switchMap = switchMap; +var SwitchMapOperator = (function () { + function SwitchMapOperator(project) { + this.project = project; + } + SwitchMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + }; + return SwitchMapOperator; +}()); +var SwitchMapSubscriber = (function (_super) { + __extends(SwitchMapSubscriber, _super); + function SwitchMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.index = 0; + return _this; + } + SwitchMapSubscriber.prototype._next = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (error) { + this.destination.error(error); + return; + } + this._innerSub(result); + }; + SwitchMapSubscriber.prototype._innerSub = function (result) { + var innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + var innerSubscriber = new innerSubscribe_1.SimpleInnerSubscriber(this); + var destination = this.destination; + destination.add(innerSubscriber); + this.innerSubscription = innerSubscribe_1.innerSubscribe(result, innerSubscriber); + if (this.innerSubscription !== innerSubscriber) { + destination.add(this.innerSubscription); + } + }; + SwitchMapSubscriber.prototype._complete = function () { + var innerSubscription = this.innerSubscription; + if (!innerSubscription || innerSubscription.closed) { + _super.prototype._complete.call(this); + } + this.unsubscribe(); + }; + SwitchMapSubscriber.prototype._unsubscribe = function () { + this.innerSubscription = undefined; + }; + SwitchMapSubscriber.prototype.notifyComplete = function () { + this.innerSubscription = undefined; + if (this.isStopped) { + _super.prototype._complete.call(this); + } + }; + SwitchMapSubscriber.prototype.notifyNext = function (innerValue) { + this.destination.next(innerValue); + }; + return SwitchMapSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/switchMap.js.map b/node_modules/rxjs/internal/operators/switchMap.js.map new file mode 100644 index 00000000..6d89e90b --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sources":["../../src/internal/operators/switchMap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/switchMapTo.d.ts b/node_modules/rxjs/internal/operators/switchMapTo.d.ts new file mode 100644 index 00000000..798178e0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchMapTo.d.ts @@ -0,0 +1,6 @@ +import { ObservableInput, OperatorFunction } from '../types'; +export declare function switchMapTo(observable: ObservableInput): OperatorFunction; +/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */ +export declare function switchMapTo(observable: ObservableInput, resultSelector: undefined): OperatorFunction; +/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */ +export declare function switchMapTo(observable: ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/switchMapTo.js b/node_modules/rxjs/internal/operators/switchMapTo.js new file mode 100644 index 00000000..2874b69f --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchMapTo.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var switchMap_1 = require("./switchMap"); +function switchMapTo(innerObservable, resultSelector) { + return resultSelector ? switchMap_1.switchMap(function () { return innerObservable; }, resultSelector) : switchMap_1.switchMap(function () { return innerObservable; }); +} +exports.switchMapTo = switchMapTo; +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/switchMapTo.js.map b/node_modules/rxjs/internal/operators/switchMapTo.js.map new file mode 100644 index 00000000..f6056f7b --- /dev/null +++ b/node_modules/rxjs/internal/operators/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sources":["../../src/internal/operators/switchMapTo.ts"],"names":[],"mappings":";;AACA,yCAAwC;AAkDxC,SAAgB,WAAW,CACzB,eAAmC,EACnC,cAA4F;IAE5F,OAAO,cAAc,CAAC,CAAC,CAAC,qBAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,qBAAS,CAAC,cAAM,OAAA,eAAe,EAAf,CAAe,CAAC,CAAC;AAC9G,CAAC;AALD,kCAKC"} diff --git a/node_modules/rxjs/internal/operators/take.d.ts b/node_modules/rxjs/internal/operators/take.d.ts new file mode 100644 index 00000000..35ec2849 --- /dev/null +++ b/node_modules/rxjs/internal/operators/take.d.ts @@ -0,0 +1,48 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Emits only the first `count` values emitted by the source Observable. + * + * Takes the first `count` values from the source, then + * completes. + * + * ![](take.png) + * + * `take` returns an Observable that emits only the first `count` values emitted + * by the source Observable. If the source emits fewer than `count` values then + * all of its values are emitted. After that, it completes, regardless if the + * source completes. + * + * ## Example + * Take the first 5 seconds of an infinite 1-second interval Observable + * ```ts + * import { interval } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const intervalCount = interval(1000); + * const takeFive = intervalCount.pipe(take(5)); + * takeFive.subscribe(x => console.log(x)); + * + * // Logs: + * // 0 + * // 1 + * // 2 + * // 3 + * // 4 + * ``` + * + * @see {@link takeLast} + * @see {@link takeUntil} + * @see {@link takeWhile} + * @see {@link skip} + * + * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an + * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`. + * + * @param {number} count The maximum number of `next` values to emit. + * @return {Observable} An Observable that emits only the first `count` + * values emitted by the source Observable, or all of the values from the source + * if the source emits fewer than `count` values. + * @method take + * @owner Observable + */ +export declare function take(count: number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/take.js b/node_modules/rxjs/internal/operators/take.js new file mode 100644 index 00000000..745296ac --- /dev/null +++ b/node_modules/rxjs/internal/operators/take.js @@ -0,0 +1,63 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError"); +var empty_1 = require("../observable/empty"); +function take(count) { + return function (source) { + if (count === 0) { + return empty_1.empty(); + } + else { + return source.lift(new TakeOperator(count)); + } + }; +} +exports.take = take; +var TakeOperator = (function () { + function TakeOperator(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; + } + } + TakeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeSubscriber(subscriber, this.total)); + }; + return TakeOperator; +}()); +var TakeSubscriber = (function (_super) { + __extends(TakeSubscriber, _super); + function TakeSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + TakeSubscriber.prototype._next = function (value) { + var total = this.total; + var count = ++this.count; + if (count <= total) { + this.destination.next(value); + if (count === total) { + this.destination.complete(); + this.unsubscribe(); + } + } + }; + return TakeSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=take.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/take.js.map b/node_modules/rxjs/internal/operators/take.js.map new file mode 100644 index 00000000..0f111751 --- /dev/null +++ b/node_modules/rxjs/internal/operators/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sources":["../../src/internal/operators/take.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,2EAA0E;AAC1E,6CAA4C;AAkD5C,SAAgB,IAAI,CAAI,KAAa;IACnC,OAAO,UAAC,MAAqB;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,aAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;SAC7C;IACH,CAAC,CAAC;AACJ,CAAC;AARD,oBAQC;AAED;IACE,sBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,iDAAuB,CAAC;SACnC;IACH,CAAC;IAED,2BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACH,mBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAgC,kCAAa;IAG3C,wBAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAFrD,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,8BAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAlBD,CAAgC,uBAAU,GAkBzC"} diff --git a/node_modules/rxjs/internal/operators/takeLast.d.ts b/node_modules/rxjs/internal/operators/takeLast.d.ts new file mode 100644 index 00000000..e6e127a1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeLast.d.ts @@ -0,0 +1,44 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * Emits only the last `count` values emitted by the source Observable. + * + * Remembers the latest `count` values, then emits those + * only when the source completes. + * + * ![](takeLast.png) + * + * `takeLast` returns an Observable that emits at most the last `count` values + * emitted by the source Observable. If the source emits fewer than `count` + * values then all of its values are emitted. This operator must wait until the + * `complete` notification emission from the source in order to emit the `next` + * values on the output Observable, because otherwise it is impossible to know + * whether or not more values will be emitted on the source. For this reason, + * all values are emitted synchronously, followed by the complete notification. + * + * ## Example + * Take the last 3 values of an Observable with many values + * ```ts + * import { range } from 'rxjs'; + * import { takeLast } from 'rxjs/operators'; + * + * const many = range(1, 100); + * const lastThree = many.pipe(takeLast(3)); + * lastThree.subscribe(x => console.log(x)); + * ``` + * + * @see {@link take} + * @see {@link takeUntil} + * @see {@link takeWhile} + * @see {@link skip} + * + * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an + * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`. + * + * @param {number} count The maximum number of values to emit from the end of + * the sequence of values emitted by the source Observable. + * @return {Observable} An Observable that emits at most the last count + * values emitted by the source Observable. + * @method takeLast + * @owner Observable + */ +export declare function takeLast(count: number): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/takeLast.js b/node_modules/rxjs/internal/operators/takeLast.js new file mode 100644 index 00000000..8ab44755 --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeLast.js @@ -0,0 +1,78 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var ArgumentOutOfRangeError_1 = require("../util/ArgumentOutOfRangeError"); +var empty_1 = require("../observable/empty"); +function takeLast(count) { + return function takeLastOperatorFunction(source) { + if (count === 0) { + return empty_1.empty(); + } + else { + return source.lift(new TakeLastOperator(count)); + } + }; +} +exports.takeLast = takeLast; +var TakeLastOperator = (function () { + function TakeLastOperator(total) { + this.total = total; + if (this.total < 0) { + throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError; + } + } + TakeLastOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + }; + return TakeLastOperator; +}()); +var TakeLastSubscriber = (function (_super) { + __extends(TakeLastSubscriber, _super); + function TakeLastSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.ring = new Array(); + _this.count = 0; + return _this; + } + TakeLastSubscriber.prototype._next = function (value) { + var ring = this.ring; + var total = this.total; + var count = this.count++; + if (ring.length < total) { + ring.push(value); + } + else { + var index = count % total; + ring[index] = value; + } + }; + TakeLastSubscriber.prototype._complete = function () { + var destination = this.destination; + var count = this.count; + if (count > 0) { + var total = this.count >= this.total ? this.total : this.count; + var ring = this.ring; + for (var i = 0; i < total; i++) { + var idx = (count++) % total; + destination.next(ring[idx]); + } + } + destination.complete(); + }; + return TakeLastSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=takeLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/takeLast.js.map b/node_modules/rxjs/internal/operators/takeLast.js.map new file mode 100644 index 00000000..9a6b3a8c --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sources":["../../src/internal/operators/takeLast.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAC3C,2EAA0E;AAC1E,6CAA4C;AA8C5C,SAAgB,QAAQ,CAAI,KAAa;IACvC,OAAO,SAAS,wBAAwB,CAAC,MAAqB;QAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,aAAK,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AARD,4BAQC;AAED;IACE,0BAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,iDAAuB,CAAC;SACnC;IACH,CAAC;IAED,+BAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACH,uBAAC;AAAD,CAAC,AAVD,IAUC;AAOD;IAAoC,sCAAa;IAI/C,4BAAY,WAA0B,EAAU,KAAa;QAA7D,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,WAAK,GAAL,KAAK,CAAQ;QAHrD,UAAI,GAAa,IAAI,KAAK,EAAE,CAAC;QAC7B,WAAK,GAAW,CAAC,CAAC;;IAI1B,CAAC;IAES,kCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;aAAM;YACL,IAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACrB;IACH,CAAC;IAES,sCAAS,GAAnB;QACE,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvB,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,IAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAM,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,WAAW,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IACH,yBAAC;AAAD,CAAC,AArCD,CAAoC,uBAAU,GAqC7C"} diff --git a/node_modules/rxjs/internal/operators/takeUntil.d.ts b/node_modules/rxjs/internal/operators/takeUntil.d.ts new file mode 100644 index 00000000..8bff772e --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeUntil.d.ts @@ -0,0 +1,43 @@ +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction } from '../types'; +/** + * Emits the values emitted by the source Observable until a `notifier` + * Observable emits a value. + * + * Lets values pass until a second Observable, + * `notifier`, emits a value. Then, it completes. + * + * ![](takeUntil.png) + * + * `takeUntil` subscribes and begins mirroring the source Observable. It also + * monitors a second Observable, `notifier` that you provide. If the `notifier` + * emits a value, the output Observable stops mirroring the source Observable + * and completes. If the `notifier` doesn't emit any value and completes + * then `takeUntil` will pass all values. + * + * ## Example + * Tick every second until the first click happens + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { takeUntil } from 'rxjs/operators'; + * + * const source = interval(1000); + * const clicks = fromEvent(document, 'click'); + * const result = source.pipe(takeUntil(clicks)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link take} + * @see {@link takeLast} + * @see {@link takeWhile} + * @see {@link skip} + * + * @param {Observable} notifier The Observable whose first emitted value will + * cause the output Observable of `takeUntil` to stop emitting values from the + * source Observable. + * @return {Observable} An Observable that emits the values from the source + * Observable until such time as `notifier` emits its first value. + * @method takeUntil + * @owner Observable + */ +export declare function takeUntil(notifier: Observable): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/takeUntil.js b/node_modules/rxjs/internal/operators/takeUntil.js new file mode 100644 index 00000000..3bab1e14 --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeUntil.js @@ -0,0 +1,51 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +function takeUntil(notifier) { + return function (source) { return source.lift(new TakeUntilOperator(notifier)); }; +} +exports.takeUntil = takeUntil; +var TakeUntilOperator = (function () { + function TakeUntilOperator(notifier) { + this.notifier = notifier; + } + TakeUntilOperator.prototype.call = function (subscriber, source) { + var takeUntilSubscriber = new TakeUntilSubscriber(subscriber); + var notifierSubscription = innerSubscribe_1.innerSubscribe(this.notifier, new innerSubscribe_1.SimpleInnerSubscriber(takeUntilSubscriber)); + if (notifierSubscription && !takeUntilSubscriber.seenValue) { + takeUntilSubscriber.add(notifierSubscription); + return source.subscribe(takeUntilSubscriber); + } + return takeUntilSubscriber; + }; + return TakeUntilOperator; +}()); +var TakeUntilSubscriber = (function (_super) { + __extends(TakeUntilSubscriber, _super); + function TakeUntilSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.seenValue = false; + return _this; + } + TakeUntilSubscriber.prototype.notifyNext = function () { + this.seenValue = true; + this.complete(); + }; + TakeUntilSubscriber.prototype.notifyComplete = function () { + }; + return TakeUntilSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/takeUntil.js.map b/node_modules/rxjs/internal/operators/takeUntil.js.map new file mode 100644 index 00000000..57ead77c --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sources":["../../src/internal/operators/takeUntil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,oDAAiG;AA0CjG,SAAgB,SAAS,CAAI,QAAyB;IACpD,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAA5C,CAA4C,CAAC;AACjF,CAAC;AAFD,8BAEC;AAED;IACE,2BAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC7C,CAAC;IAED,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,IAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAM,oBAAoB,GAAG,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,sCAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC3G,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE;YAC1D,mBAAmB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;SAC9C;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACH,wBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAwC,uCAA2B;IAGjE,6BAAY,WAA4B;QAAxC,YACE,kBAAM,WAAW,CAAC,SACnB;QAJD,eAAS,GAAG,KAAK,CAAC;;IAIlB,CAAC;IAED,wCAAU,GAAV;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,4CAAc,GAAd;IAEA,CAAC;IACH,0BAAC;AAAD,CAAC,AAfD,CAAwC,sCAAqB,GAe5D"} diff --git a/node_modules/rxjs/internal/operators/takeWhile.d.ts b/node_modules/rxjs/internal/operators/takeWhile.d.ts new file mode 100644 index 00000000..324812c9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeWhile.d.ts @@ -0,0 +1,4 @@ +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; +export declare function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction; +export declare function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction; +export declare function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/takeWhile.js b/node_modules/rxjs/internal/operators/takeWhile.js new file mode 100644 index 00000000..360da382 --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeWhile.js @@ -0,0 +1,69 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function takeWhile(predicate, inclusive) { + if (inclusive === void 0) { inclusive = false; } + return function (source) { + return source.lift(new TakeWhileOperator(predicate, inclusive)); + }; +} +exports.takeWhile = takeWhile; +var TakeWhileOperator = (function () { + function TakeWhileOperator(predicate, inclusive) { + this.predicate = predicate; + this.inclusive = inclusive; + } + TakeWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive)); + }; + return TakeWhileOperator; +}()); +var TakeWhileSubscriber = (function (_super) { + __extends(TakeWhileSubscriber, _super); + function TakeWhileSubscriber(destination, predicate, inclusive) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.inclusive = inclusive; + _this.index = 0; + return _this; + } + TakeWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + var result; + try { + result = this.predicate(value, this.index++); + } + catch (err) { + destination.error(err); + return; + } + this.nextOrComplete(value, result); + }; + TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) { + var destination = this.destination; + if (Boolean(predicateResult)) { + destination.next(value); + } + else { + if (this.inclusive) { + destination.next(value); + } + destination.complete(); + } + }; + return TakeWhileSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/takeWhile.js.map b/node_modules/rxjs/internal/operators/takeWhile.js.map new file mode 100644 index 00000000..74291cc0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sources":["../../src/internal/operators/takeWhile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAmD3C,SAAgB,SAAS,CACrB,SAA+C,EAC/C,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IACnB,OAAO,UAAC,MAAqB;QAClB,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAAxD,CAAwD,CAAC;AACtE,CAAC;AALD,8BAKC;AAED;IACE,2BACY,SAA+C,EAC/C,SAAkB;QADlB,cAAS,GAAT,SAAS,CAAsC;QAC/C,cAAS,GAAT,SAAS,CAAS;IAAG,CAAC;IAElC,gCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CACnB,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACH,wBAAC;AAAD,CAAC,AATD,IASC;AAOD;IAAqC,uCAAa;IAGhD,6BACI,WAA0B,EAClB,SAA+C,EAC/C,SAAkB;QAH9B,YAIE,kBAAM,WAAW,CAAC,SACnB;QAHW,eAAS,GAAT,SAAS,CAAsC;QAC/C,eAAS,GAAT,SAAS,CAAS;QALtB,WAAK,GAAW,CAAC,CAAC;;IAO1B,CAAC;IAES,mCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,MAAe,CAAC;QACpB,IAAI;YACF,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C;QAAC,OAAO,GAAG,EAAE;YACZ,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,4CAAc,GAAtB,UAAuB,KAAQ,EAAE,eAAwB;QACvD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzB;YACD,WAAW,CAAC,QAAQ,EAAE,CAAC;SACxB;IACH,CAAC;IACH,0BAAC;AAAD,CAAC,AAjCD,CAAqC,uBAAU,GAiC9C"} diff --git a/node_modules/rxjs/internal/operators/tap.d.ts b/node_modules/rxjs/internal/operators/tap.d.ts new file mode 100644 index 00000000..72a4db25 --- /dev/null +++ b/node_modules/rxjs/internal/operators/tap.d.ts @@ -0,0 +1,9 @@ +import { MonoTypeOperatorFunction, PartialObserver } from '../types'; +/** @deprecated Use an observer instead of a complete callback */ +export declare function tap(next: null | undefined, error: null | undefined, complete: () => void): MonoTypeOperatorFunction; +/** @deprecated Use an observer instead of an error callback */ +export declare function tap(next: null | undefined, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction; +/** @deprecated Use an observer instead of a complete callback */ +export declare function tap(next: (value: T) => void, error: null | undefined, complete: () => void): MonoTypeOperatorFunction; +export declare function tap(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction; +export declare function tap(observer: PartialObserver): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/tap.js b/node_modules/rxjs/internal/operators/tap.js new file mode 100644 index 00000000..01eec104 --- /dev/null +++ b/node_modules/rxjs/internal/operators/tap.js @@ -0,0 +1,89 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var noop_1 = require("../util/noop"); +var isFunction_1 = require("../util/isFunction"); +function tap(nextOrObserver, error, complete) { + return function tapOperatorFunction(source) { + return source.lift(new DoOperator(nextOrObserver, error, complete)); + }; +} +exports.tap = tap; +var DoOperator = (function () { + function DoOperator(nextOrObserver, error, complete) { + this.nextOrObserver = nextOrObserver; + this.error = error; + this.complete = complete; + } + DoOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + }; + return DoOperator; +}()); +var TapSubscriber = (function (_super) { + __extends(TapSubscriber, _super); + function TapSubscriber(destination, observerOrNext, error, complete) { + var _this = _super.call(this, destination) || this; + _this._tapNext = noop_1.noop; + _this._tapError = noop_1.noop; + _this._tapComplete = noop_1.noop; + _this._tapError = error || noop_1.noop; + _this._tapComplete = complete || noop_1.noop; + if (isFunction_1.isFunction(observerOrNext)) { + _this._context = _this; + _this._tapNext = observerOrNext; + } + else if (observerOrNext) { + _this._context = observerOrNext; + _this._tapNext = observerOrNext.next || noop_1.noop; + _this._tapError = observerOrNext.error || noop_1.noop; + _this._tapComplete = observerOrNext.complete || noop_1.noop; + } + return _this; + } + TapSubscriber.prototype._next = function (value) { + try { + this._tapNext.call(this._context, value); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(value); + }; + TapSubscriber.prototype._error = function (err) { + try { + this._tapError.call(this._context, err); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.error(err); + }; + TapSubscriber.prototype._complete = function () { + try { + this._tapComplete.call(this._context); + } + catch (err) { + this.destination.error(err); + return; + } + return this.destination.complete(); + }; + return TapSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=tap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/tap.js.map b/node_modules/rxjs/internal/operators/tap.js.map new file mode 100644 index 00000000..fc7c1480 --- /dev/null +++ b/node_modules/rxjs/internal/operators/tap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tap.js","sources":["../../src/internal/operators/tap.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/throttle.d.ts b/node_modules/rxjs/internal/operators/throttle.d.ts new file mode 100644 index 00000000..5a3302fe --- /dev/null +++ b/node_modules/rxjs/internal/operators/throttle.d.ts @@ -0,0 +1,53 @@ +import { MonoTypeOperatorFunction, SubscribableOrPromise } from '../types'; +export interface ThrottleConfig { + leading?: boolean; + trailing?: boolean; +} +export declare const defaultThrottleConfig: ThrottleConfig; +/** + * Emits a value from the source Observable, then ignores subsequent source + * values for a duration determined by another Observable, then repeats this + * process. + * + * It's like {@link throttleTime}, but the silencing + * duration is determined by a second Observable. + * + * ![](throttle.png) + * + * `throttle` emits the source Observable values on the output Observable + * when its internal timer is disabled, and ignores source values when the timer + * is enabled. Initially, the timer is disabled. As soon as the first source + * value arrives, it is forwarded to the output Observable, and then the timer + * is enabled by calling the `durationSelector` function with the source value, + * which returns the "duration" Observable. When the duration Observable emits a + * value or completes, the timer is disabled, and this process repeats for the + * next source value. + * + * ## Example + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { throttle } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(throttle(ev => interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounce} + * @see {@link delayWhen} + * @see {@link sample} + * @see {@link throttleTime} + * + * @param {function(value: T): SubscribableOrPromise} durationSelector A function + * that receives a value from the source Observable, for computing the silencing + * duration for each source value, returned as an Observable or a Promise. + * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults + * to `{ leading: true, trailing: false }`. + * @return {Observable} An Observable that performs the throttle operation to + * limit the rate of emissions from the source. + * @method throttle + * @owner Observable + */ +export declare function throttle(durationSelector: (value: T) => SubscribableOrPromise, config?: ThrottleConfig): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/throttle.js b/node_modules/rxjs/internal/operators/throttle.js new file mode 100644 index 00000000..259cf998 --- /dev/null +++ b/node_modules/rxjs/internal/operators/throttle.js @@ -0,0 +1,102 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var innerSubscribe_1 = require("../innerSubscribe"); +exports.defaultThrottleConfig = { + leading: true, + trailing: false +}; +function throttle(durationSelector, config) { + if (config === void 0) { config = exports.defaultThrottleConfig; } + return function (source) { return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); }; +} +exports.throttle = throttle; +var ThrottleOperator = (function () { + function ThrottleOperator(durationSelector, leading, trailing) { + this.durationSelector = durationSelector; + this.leading = leading; + this.trailing = trailing; + } + ThrottleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); + }; + return ThrottleOperator; +}()); +var ThrottleSubscriber = (function (_super) { + __extends(ThrottleSubscriber, _super); + function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.durationSelector = durationSelector; + _this._leading = _leading; + _this._trailing = _trailing; + _this._hasValue = false; + return _this; + } + ThrottleSubscriber.prototype._next = function (value) { + this._hasValue = true; + this._sendValue = value; + if (!this._throttled) { + if (this._leading) { + this.send(); + } + else { + this.throttle(value); + } + } + }; + ThrottleSubscriber.prototype.send = function () { + var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue; + if (_hasValue) { + this.destination.next(_sendValue); + this.throttle(_sendValue); + } + this._hasValue = false; + this._sendValue = undefined; + }; + ThrottleSubscriber.prototype.throttle = function (value) { + var duration = this.tryDurationSelector(value); + if (!!duration) { + this.add(this._throttled = innerSubscribe_1.innerSubscribe(duration, new innerSubscribe_1.SimpleInnerSubscriber(this))); + } + }; + ThrottleSubscriber.prototype.tryDurationSelector = function (value) { + try { + return this.durationSelector(value); + } + catch (err) { + this.destination.error(err); + return null; + } + }; + ThrottleSubscriber.prototype.throttlingDone = function () { + var _a = this, _throttled = _a._throttled, _trailing = _a._trailing; + if (_throttled) { + _throttled.unsubscribe(); + } + this._throttled = undefined; + if (_trailing) { + this.send(); + } + }; + ThrottleSubscriber.prototype.notifyNext = function () { + this.throttlingDone(); + }; + ThrottleSubscriber.prototype.notifyComplete = function () { + this.throttlingDone(); + }; + return ThrottleSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/throttle.js.map b/node_modules/rxjs/internal/operators/throttle.js.map new file mode 100644 index 00000000..c9613208 --- /dev/null +++ b/node_modules/rxjs/internal/operators/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sources":["../../src/internal/operators/throttle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/throttleTime.d.ts b/node_modules/rxjs/internal/operators/throttleTime.d.ts new file mode 100644 index 00000000..af02ffa9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/throttleTime.d.ts @@ -0,0 +1,82 @@ +import { ThrottleConfig } from './throttle'; +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** + * Emits a value from the source Observable, then ignores subsequent source + * values for `duration` milliseconds, then repeats this process. + * + * Lets a value pass, then ignores source values for the + * next `duration` milliseconds. + * + * ![](throttleTime.png) + * + * `throttleTime` emits the source Observable values on the output Observable + * when its internal timer is disabled, and ignores source values when the timer + * is enabled. Initially, the timer is disabled. As soon as the first source + * value arrives, it is forwarded to the output Observable, and then the timer + * is enabled. After `duration` milliseconds (or the time unit determined + * internally by the optional `scheduler`) has passed, the timer is disabled, + * and this process repeats for the next source value. Optionally takes a + * {@link SchedulerLike} for managing timers. + * + * ## Examples + * + * #### Limit click rate + * + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { throttleTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(throttleTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * #### Double Click + * + * The following example only emits clicks which happen within a subsequent + * delay of 400ms of the previous click. This for example can emulate a double + * click. It makes use of the `trailing` parameter of the throttle configuration. + * + * ```ts + * import { fromEvent, asyncScheduler } from 'rxjs'; + * import { throttleTime, withLatestFrom } from 'rxjs/operators'; + * + * // defaultThottleConfig = { leading: true, trailing: false } + * const throttleConfig = { + * leading: false, + * trailing: true + * } + * + * const click = fromEvent(document, 'click'); + * const doubleClick = click.pipe( + * throttleTime(400, asyncScheduler, throttleConfig) + * ); + * + * doubleClick.subscribe((throttleValue: Event) => { + * console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`); + * }); + * ``` + * + * If you enable the `leading` parameter in this example, the output would be the primary click and + * the double click, but restricts additional clicks within 400ms. + * + * @see {@link auditTime} + * @see {@link debounceTime} + * @see {@link delay} + * @see {@link sampleTime} + * @see {@link throttle} + * + * @param {number} duration Time to wait before emitting another value after + * emitting the last value, measured in milliseconds or the time unit determined + * internally by the optional `scheduler`. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the throttling. + * @param {Object} config a configuration object to define `leading` and + * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`. + * @return {Observable} An Observable that performs the throttle operation to + * limit the rate of emissions from the source. + * @method throttleTime + * @owner Observable + */ +export declare function throttleTime(duration: number, scheduler?: SchedulerLike, config?: ThrottleConfig): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/throttleTime.js b/node_modules/rxjs/internal/operators/throttleTime.js new file mode 100644 index 00000000..156c44b9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/throttleTime.js @@ -0,0 +1,95 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var async_1 = require("../scheduler/async"); +var throttle_1 = require("./throttle"); +function throttleTime(duration, scheduler, config) { + if (scheduler === void 0) { scheduler = async_1.async; } + if (config === void 0) { config = throttle_1.defaultThrottleConfig; } + return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); }; +} +exports.throttleTime = throttleTime; +var ThrottleTimeOperator = (function () { + function ThrottleTimeOperator(duration, scheduler, leading, trailing) { + this.duration = duration; + this.scheduler = scheduler; + this.leading = leading; + this.trailing = trailing; + } + ThrottleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); + }; + return ThrottleTimeOperator; +}()); +var ThrottleTimeSubscriber = (function (_super) { + __extends(ThrottleTimeSubscriber, _super); + function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) { + var _this = _super.call(this, destination) || this; + _this.duration = duration; + _this.scheduler = scheduler; + _this.leading = leading; + _this.trailing = trailing; + _this._hasTrailingValue = false; + _this._trailingValue = null; + return _this; + } + ThrottleTimeSubscriber.prototype._next = function (value) { + if (this.throttled) { + if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + else { + this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this })); + if (this.leading) { + this.destination.next(value); + } + else if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + }; + ThrottleTimeSubscriber.prototype._complete = function () { + if (this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this.destination.complete(); + } + else { + this.destination.complete(); + } + }; + ThrottleTimeSubscriber.prototype.clearThrottle = function () { + var throttled = this.throttled; + if (throttled) { + if (this.trailing && this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + throttled.unsubscribe(); + this.remove(throttled); + this.throttled = null; + } + }; + return ThrottleTimeSubscriber; +}(Subscriber_1.Subscriber)); +function dispatchNext(arg) { + var subscriber = arg.subscriber; + subscriber.clearThrottle(); +} +//# sourceMappingURL=throttleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/throttleTime.js.map b/node_modules/rxjs/internal/operators/throttleTime.js.map new file mode 100644 index 00000000..343f02d9 --- /dev/null +++ b/node_modules/rxjs/internal/operators/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sources":["../../src/internal/operators/throttleTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAA2C;AAE3C,4CAA2C;AAE3C,uCAAmE;AAkFnE,SAAgB,YAAY,CAAI,QAAgB,EAChB,SAAgC,EAChC,MAA8C;IAD9C,0BAAA,EAAA,YAA2B,aAAK;IAChC,uBAAA,EAAA,SAAyB,gCAAqB;IAC5E,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAA3F,CAA2F,CAAC;AAChI,CAAC;AAJD,oCAIC;AAED;IACE,8BAAoB,QAAgB,EAChB,SAAwB,EACxB,OAAgB,EAChB,QAAiB;QAHjB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAe;QACxB,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAS;IACrC,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CACrB,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CACnG,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,AAZD,IAYC;AAOD;IAAwC,0CAAa;IAKnD,gCAAY,WAA0B,EAClB,QAAgB,EAChB,SAAwB,EACxB,OAAgB,EAChB,QAAiB;QAJrC,YAKE,kBAAM,WAAW,CAAC,SACnB;QALmB,cAAQ,GAAR,QAAQ,CAAQ;QAChB,eAAS,GAAT,SAAS,CAAe;QACxB,aAAO,GAAP,OAAO,CAAS;QAChB,cAAQ,GAAR,QAAQ,CAAS;QAP7B,uBAAiB,GAAY,KAAK,CAAC;QACnC,oBAAc,GAAM,IAAI,CAAC;;IAQjC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aAC/B;SACF;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAiB,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACtH,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACxB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aAC/B;SACF;IACH,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,8CAAa,GAAb;QACE,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,EAAE;YACb,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;aAChC;YACD,SAAS,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AApDD,CAAwC,uBAAU,GAoDjD;AAMD,SAAS,YAAY,CAAI,GAAmB;IAClC,IAAA,2BAAU,CAAS;IAC3B,UAAU,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC"} diff --git a/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts b/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts new file mode 100644 index 00000000..1238bcac --- /dev/null +++ b/node_modules/rxjs/internal/operators/throwIfEmpty.d.ts @@ -0,0 +1,32 @@ +import { MonoTypeOperatorFunction } from '../types'; +/** + * If the source observable completes without emitting a value, it will emit + * an error. The error will be created at that time by the optional + * `errorFactory` argument, otherwise, the error will be {@link EmptyError}. + * + * ![](throwIfEmpty.png) + * + * ## Example + * ```ts + * import { fromEvent, timer } from 'rxjs'; + * import { throwIfEmpty, takeUntil } from 'rxjs/operators'; + * + * const click$ = fromEvent(document, 'click'); + * + * click$.pipe( + * takeUntil(timer(1000)), + * throwIfEmpty( + * () => new Error('the document was not clicked within 1 second') + * ), + * ) + * .subscribe({ + * next() { console.log('The button was clicked'); }, + * error(err) { console.error(err); } + * }); + * ``` + * + * @param errorFactory A factory function called to produce the + * error to be thrown when the source observable completes without emitting a + * value. + */ +export declare function throwIfEmpty(errorFactory?: (() => any)): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/throwIfEmpty.js b/node_modules/rxjs/internal/operators/throwIfEmpty.js new file mode 100644 index 00000000..7722c349 --- /dev/null +++ b/node_modules/rxjs/internal/operators/throwIfEmpty.js @@ -0,0 +1,66 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var EmptyError_1 = require("../util/EmptyError"); +var Subscriber_1 = require("../Subscriber"); +function throwIfEmpty(errorFactory) { + if (errorFactory === void 0) { errorFactory = defaultErrorFactory; } + return function (source) { + return source.lift(new ThrowIfEmptyOperator(errorFactory)); + }; +} +exports.throwIfEmpty = throwIfEmpty; +var ThrowIfEmptyOperator = (function () { + function ThrowIfEmptyOperator(errorFactory) { + this.errorFactory = errorFactory; + } + ThrowIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); + }; + return ThrowIfEmptyOperator; +}()); +var ThrowIfEmptySubscriber = (function (_super) { + __extends(ThrowIfEmptySubscriber, _super); + function ThrowIfEmptySubscriber(destination, errorFactory) { + var _this = _super.call(this, destination) || this; + _this.errorFactory = errorFactory; + _this.hasValue = false; + return _this; + } + ThrowIfEmptySubscriber.prototype._next = function (value) { + this.hasValue = true; + this.destination.next(value); + }; + ThrowIfEmptySubscriber.prototype._complete = function () { + if (!this.hasValue) { + var err = void 0; + try { + err = this.errorFactory(); + } + catch (e) { + err = e; + } + this.destination.error(err); + } + else { + return this.destination.complete(); + } + }; + return ThrowIfEmptySubscriber; +}(Subscriber_1.Subscriber)); +function defaultErrorFactory() { + return new EmptyError_1.EmptyError(); +} +//# sourceMappingURL=throwIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/throwIfEmpty.js.map b/node_modules/rxjs/internal/operators/throwIfEmpty.js.map new file mode 100644 index 00000000..5817ed7c --- /dev/null +++ b/node_modules/rxjs/internal/operators/throwIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throwIfEmpty.js","sources":["../../src/internal/operators/throwIfEmpty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAAgD;AAGhD,4CAA2C;AAiC3C,SAAgB,YAAY,CAAK,YAA+C;IAA/C,6BAAA,EAAA,kCAA+C;IAC9E,OAAO,UAAC,MAAqB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAJD,oCAIC;AAED;IACE,8BAAoB,YAAuB;QAAvB,iBAAY,GAAZ,YAAY,CAAW;IAC3C,CAAC;IAED,mCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACrF,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,IAOC;AAED;IAAwC,0CAAa;IAGnD,gCAAY,WAA0B,EAAU,YAAuB;QAAvE,YACE,kBAAM,WAAW,CAAC,SACnB;QAF+C,kBAAY,GAAZ,YAAY,CAAW;QAF/D,cAAQ,GAAY,KAAK,CAAC;;IAIlC,CAAC;IAES,sCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAES,0CAAS,GAAnB;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,GAAG,SAAK,CAAC;YACb,IAAI;gBACF,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,GAAG,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;SACtC;IACH,CAAC;IACH,6BAAC;AAAD,CAAC,AAzBD,CAAwC,uBAAU,GAyBjD;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,uBAAU,EAAE,CAAC;AAC1B,CAAC"} diff --git a/node_modules/rxjs/internal/operators/timeInterval.d.ts b/node_modules/rxjs/internal/operators/timeInterval.d.ts new file mode 100644 index 00000000..029c2e2b --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeInterval.d.ts @@ -0,0 +1,55 @@ +import { SchedulerLike, OperatorFunction } from '../types'; +/** + * + * Emits an object containing the current value, and the time that has + * passed between emitting the current value and the previous value, which is + * calculated by using the provided `scheduler`'s `now()` method to retrieve + * the current time at each emission, then calculating the difference. The `scheduler` + * defaults to {@link asyncScheduler}, so by default, the `interval` will be in + * milliseconds. + * + * Convert an Observable that emits items into one that + * emits indications of the amount of time elapsed between those emissions. + * + * ![](timeinterval.png) + * + * ## Examples + * Emit inteval between current value with the last value + * + * ```ts + * const seconds = interval(1000); + * + * seconds.pipe(timeInterval()) + * .subscribe( + * value => console.log(value), + * err => console.log(err), + * ); + * + * seconds.pipe(timeout(900)) + * .subscribe( + * value => console.log(value), + * err => console.log(err), + * ); + * + * // NOTE: The values will never be this precise, + * // intervals created with `interval` or `setInterval` + * // are non-deterministic. + * + * // {value: 0, interval: 1000} + * // {value: 1, interval: 1000} + * // {value: 2, interval: 1000} + * ``` + * + * @param {SchedulerLike} [scheduler] Scheduler used to get the current time. + * @return {Observable<{ interval: number, value: T }>} Observable that emit infomation about value and interval + * @method timeInterval + */ +export declare function timeInterval(scheduler?: SchedulerLike): OperatorFunction>; +/** + * @deprecated exposed API, use as interface only. + */ +export declare class TimeInterval { + value: T; + interval: number; + constructor(value: T, interval: number); +} diff --git a/node_modules/rxjs/internal/operators/timeInterval.js b/node_modules/rxjs/internal/operators/timeInterval.js new file mode 100644 index 00000000..9ed2bc05 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeInterval.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var async_1 = require("../scheduler/async"); +var scan_1 = require("./scan"); +var defer_1 = require("../observable/defer"); +var map_1 = require("./map"); +function timeInterval(scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + return function (source) { return defer_1.defer(function () { + return source.pipe(scan_1.scan(function (_a, value) { + var current = _a.current; + return ({ value: value, current: scheduler.now(), last: current }); + }, { current: scheduler.now(), value: undefined, last: undefined }), map_1.map(function (_a) { + var current = _a.current, last = _a.last, value = _a.value; + return new TimeInterval(value, current - last); + })); + }); }; +} +exports.timeInterval = timeInterval; +var TimeInterval = (function () { + function TimeInterval(value, interval) { + this.value = value; + this.interval = interval; + } + return TimeInterval; +}()); +exports.TimeInterval = TimeInterval; +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/timeInterval.js.map b/node_modules/rxjs/internal/operators/timeInterval.js.map new file mode 100644 index 00000000..d915b133 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sources":["../../src/internal/operators/timeInterval.ts"],"names":[],"mappings":";;AAEA,4CAA2C;AAE3C,+BAA8B;AAC9B,6CAA4C;AAC5C,6BAA4B;AA+C5B,SAAgB,YAAY,CAAI,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC9D,OAAO,UAAC,MAAqB,IAAK,OAAA,aAAK,CAAC;QACtC,OAAO,MAAM,CAAC,IAAI,CAEhB,WAAI,CACF,UAAC,EAAW,EAAE,KAAK;gBAAhB,oBAAO;YAAc,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAApD,CAAoD,EAC5E,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAG,IAAI,EAAE,SAAS,EAAE,CAC1D,EACR,SAAG,CAAuB,UAAC,EAAwB;gBAAtB,oBAAO,EAAE,cAAI,EAAE,gBAAK;YAAO,OAAA,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;QAAvC,CAAuC,CAAC,CACjG,CAAC;IACJ,CAAC,CAAC,EATgC,CAShC,CAAC;AACL,CAAC;AAXD,oCAWC;AAQD;IACE,sBAAmB,KAAQ,EAAS,QAAgB;QAAjC,UAAK,GAAL,KAAK,CAAG;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAC1D,mBAAC;AAAD,CAAC,AAFD,IAEC;AAFY,oCAAY"} diff --git a/node_modules/rxjs/internal/operators/timeout.d.ts b/node_modules/rxjs/internal/operators/timeout.d.ts new file mode 100644 index 00000000..8d4ac4eb --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeout.d.ts @@ -0,0 +1,80 @@ +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +/** + * + * Errors if Observable does not emit a value in given time span. + * + * Timeouts on Observable that doesn't emit values fast enough. + * + * ![](timeout.png) + * + * `timeout` operator accepts as an argument either a number or a Date. + * + * If number was provided, it returns an Observable that behaves like a source + * Observable, unless there is a period of time where there is no value emitted. + * So if you provide `100` as argument and first value comes after 50ms from + * the moment of subscription, this value will be simply re-emitted by the resulting + * Observable. If however after that 100ms passes without a second value being emitted, + * stream will end with an error and source Observable will be unsubscribed. + * These checks are performed throughout whole lifecycle of Observable - from the moment + * it was subscribed to, until it completes or errors itself. Thus every value must be + * emitted within specified period since previous value. + * + * If provided argument was Date, returned Observable behaves differently. It throws + * if Observable did not complete before provided Date. This means that periods between + * emission of particular values do not matter in this case. If Observable did not complete + * before provided Date, source Observable will be unsubscribed. Other than that, resulting + * stream behaves just as source Observable. + * + * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments) + * when returned Observable will check if source stream emitted value or completed. + * + * ## Examples + * Check if ticks are emitted within certain timespan + * ```ts + * import { interval } from 'rxjs'; + * import { timeout } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * + * seconds.pipe(timeout(1100)) // Let's use bigger timespan to be safe, + * // since `interval` might fire a bit later then scheduled. + * .subscribe( + * value => console.log(value), // Will emit numbers just as regular `interval` would. + * err => console.log(err), // Will never be called. + * ); + * + * seconds.pipe(timeout(900)) + * .subscribe( + * value => console.log(value), // Will never be called. + * err => console.log(err), // Will emit error before even first value is emitted, + * // since it did not arrive within 900ms period. + * ); + * ``` + * + * Use Date to check if Observable completed + * ```ts + * import { interval } from 'rxjs'; + * import { timeout } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * + * seconds.pipe( + * timeout(new Date("December 17, 2020 03:24:00")), + * ) + * .subscribe( + * value => console.log(value), // Will emit values as regular `interval` would + * // until December 17, 2020 at 03:24:00. + * err => console.log(err) // On December 17, 2020 at 03:24:00 it will emit an error, + * // since Observable did not complete by then. + * ); + * ``` + * @see {@link timeoutWith} + * + * @param {number|Date} due Number specifying period within which Observable must emit values + * or Date specifying before when Observable should complete + * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur. + * @return {Observable} Observable that mirrors behaviour of source, unless timeout checks fail. + * @method timeout + * @owner Observable + */ +export declare function timeout(due: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction; diff --git a/node_modules/rxjs/internal/operators/timeout.js b/node_modules/rxjs/internal/operators/timeout.js new file mode 100644 index 00000000..0241d2a6 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeout.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var async_1 = require("../scheduler/async"); +var TimeoutError_1 = require("../util/TimeoutError"); +var timeoutWith_1 = require("./timeoutWith"); +var throwError_1 = require("../observable/throwError"); +function timeout(due, scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + return timeoutWith_1.timeoutWith(due, throwError_1.throwError(new TimeoutError_1.TimeoutError()), scheduler); +} +exports.timeout = timeout; +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/timeout.js.map b/node_modules/rxjs/internal/operators/timeout.js.map new file mode 100644 index 00000000..8935e58f --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sources":["../../src/internal/operators/timeout.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAK3C,qDAAoD;AAEpD,6CAA4C;AAC5C,uDAAsD;AAgFtD,SAAgB,OAAO,CAAI,GAAkB,EAClB,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IACzD,OAAO,yBAAW,CAAC,GAAG,EAAE,uBAAU,CAAC,IAAI,2BAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC;AAHD,0BAGC"} diff --git a/node_modules/rxjs/internal/operators/timeoutWith.d.ts b/node_modules/rxjs/internal/operators/timeoutWith.d.ts new file mode 100644 index 00000000..05ea5099 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeoutWith.d.ts @@ -0,0 +1,2 @@ +import { ObservableInput, OperatorFunction, SchedulerLike } from '../types'; +export declare function timeoutWith(due: number | Date, withObservable: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/timeoutWith.js b/node_modules/rxjs/internal/operators/timeoutWith.js new file mode 100644 index 00000000..d01253c5 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeoutWith.js @@ -0,0 +1,78 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var async_1 = require("../scheduler/async"); +var isDate_1 = require("../util/isDate"); +var innerSubscribe_1 = require("../innerSubscribe"); +function timeoutWith(due, withObservable, scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + return function (source) { + var absoluteTimeout = isDate_1.isDate(due); + var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); + }; +} +exports.timeoutWith = timeoutWith; +var TimeoutWithOperator = (function () { + function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { + this.waitFor = waitFor; + this.absoluteTimeout = absoluteTimeout; + this.withObservable = withObservable; + this.scheduler = scheduler; + } + TimeoutWithOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); + }; + return TimeoutWithOperator; +}()); +var TimeoutWithSubscriber = (function (_super) { + __extends(TimeoutWithSubscriber, _super); + function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { + var _this = _super.call(this, destination) || this; + _this.absoluteTimeout = absoluteTimeout; + _this.waitFor = waitFor; + _this.withObservable = withObservable; + _this.scheduler = scheduler; + _this.scheduleTimeout(); + return _this; + } + TimeoutWithSubscriber.dispatchTimeout = function (subscriber) { + var withObservable = subscriber.withObservable; + subscriber._unsubscribeAndRecycle(); + subscriber.add(innerSubscribe_1.innerSubscribe(withObservable, new innerSubscribe_1.SimpleInnerSubscriber(subscriber))); + }; + TimeoutWithSubscriber.prototype.scheduleTimeout = function () { + var action = this.action; + if (action) { + this.action = action.schedule(this, this.waitFor); + } + else { + this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); + } + }; + TimeoutWithSubscriber.prototype._next = function (value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + _super.prototype._next.call(this, value); + }; + TimeoutWithSubscriber.prototype._unsubscribe = function () { + this.action = undefined; + this.scheduler = null; + this.withObservable = null; + }; + return TimeoutWithSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/timeoutWith.js.map b/node_modules/rxjs/internal/operators/timeoutWith.js.map new file mode 100644 index 00000000..62c15506 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sources":["../../src/internal/operators/timeoutWith.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAA2C;AAE3C,yCAAwC;AAExC,oDAAiG;AA2DjG,SAAgB,WAAW,CAAO,GAAkB,EAClB,cAAkC,EAClC,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAChE,OAAO,UAAC,MAAqB;QAC3B,IAAI,eAAe,GAAG,eAAM,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;QACjF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IACnG,CAAC,CAAC;AACJ,CAAC;AARD,kCAQC;AAED;IACE,6BAAoB,OAAe,EACf,eAAwB,EACxB,cAAoC,EACpC,SAAwB;QAHxB,YAAO,GAAP,OAAO,CAAQ;QACf,oBAAe,GAAf,eAAe,CAAS;QACxB,mBAAc,GAAd,cAAc,CAAsB;QACpC,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,kCAAI,GAAJ,UAAK,UAAyB,EAAE,MAAW;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAC/C,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CACpF,CAAC,CAAC;IACL,CAAC;IACH,0BAAC;AAAD,CAAC,AAZD,IAYC;AAOD;IAA0C,yCAA2B;IAInE,+BAAY,WAA0B,EAClB,eAAwB,EACxB,OAAe,EACf,cAAoC,EACpC,SAAwB;QAJ5C,YAKE,kBAAM,WAAW,CAAC,SAEnB;QANmB,qBAAe,GAAf,eAAe,CAAS;QACxB,aAAO,GAAP,OAAO,CAAQ;QACf,oBAAc,GAAd,cAAc,CAAsB;QACpC,eAAS,GAAT,SAAS,CAAe;QAE1C,KAAI,CAAC,eAAe,EAAE,CAAC;;IACzB,CAAC;IAEc,qCAAe,GAA9B,UAAqC,UAAuC;QAClE,IAAA,0CAAc,CAAgB;QACtC,UAAU,CAAC,sBAAsB,EAAE,CAAC;QACpC,UAAU,CAAC,GAAG,CAAC,+BAAc,CAAC,cAAc,EAAE,IAAI,sCAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAEO,+CAAe,GAAvB;QACU,IAAA,oBAAM,CAAU;QACxB,IAAI,MAAM,EAAE;YAMV,IAAI,CAAC,MAAM,GAAmD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAE,CAAC;SACpG;aAAM;YACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAmD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC5F,qBAAqB,CAAC,eAAsB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAChE,CAAC,CAAC;SACL;IACH,CAAC;IAES,qCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QACD,iBAAM,KAAK,YAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAGD,4CAAY,GAAZ;QACE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAK,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAK,CAAC;IAC9B,CAAC;IACH,4BAAC;AAAD,CAAC,AAhDD,CAA0C,sCAAqB,GAgD9D"} diff --git a/node_modules/rxjs/internal/operators/timestamp.d.ts b/node_modules/rxjs/internal/operators/timestamp.d.ts new file mode 100644 index 00000000..f7e5ee70 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timestamp.d.ts @@ -0,0 +1,41 @@ +import { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types'; +/** + * Attaches a timestamp to each item emitted by an observable indicating when it was emitted + * + * The `timestamp` operator maps the *source* observable stream to an object of type + * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value + * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By + * default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01 + * 00:00:00:000) and therefore is of type `number`. + * + * ![](timestamp.png) + * + * ## Example + * + * In this example there is a timestamp attached to the documents click event. + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { timestamp } from 'rxjs/operators'; + * + * const clickWithTimestamp = fromEvent(document, 'click').pipe( + * timestamp() + * ); + * + * // Emits data of type {value: MouseEvent, timestamp: number} + * clickWithTimestamp.subscribe(data => { + * console.log(data); + * }); + * ``` + * + * @param scheduler + * @return {Observable>|WebSocketSubject|Observable} + * @method timestamp + * @owner Observable + */ +export declare function timestamp(scheduler?: SchedulerLike): OperatorFunction>; +export declare class Timestamp implements TimestampInterface { + value: T; + timestamp: number; + constructor(value: T, timestamp: number); +} diff --git a/node_modules/rxjs/internal/operators/timestamp.js b/node_modules/rxjs/internal/operators/timestamp.js new file mode 100644 index 00000000..52bb2798 --- /dev/null +++ b/node_modules/rxjs/internal/operators/timestamp.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var async_1 = require("../scheduler/async"); +var map_1 = require("./map"); +function timestamp(scheduler) { + if (scheduler === void 0) { scheduler = async_1.async; } + return map_1.map(function (value) { return new Timestamp(value, scheduler.now()); }); +} +exports.timestamp = timestamp; +var Timestamp = (function () { + function Timestamp(value, timestamp) { + this.value = value; + this.timestamp = timestamp; + } + return Timestamp; +}()); +exports.Timestamp = Timestamp; +//# sourceMappingURL=timestamp.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/timestamp.js.map b/node_modules/rxjs/internal/operators/timestamp.js.map new file mode 100644 index 00000000..66f136aa --- /dev/null +++ b/node_modules/rxjs/internal/operators/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sources":["../../src/internal/operators/timestamp.ts"],"names":[],"mappings":";;AACA,4CAA2C;AAE3C,6BAA4B;AAoC5B,SAAgB,SAAS,CAAI,SAAgC;IAAhC,0BAAA,EAAA,YAA2B,aAAK;IAC3D,OAAO,SAAG,CAAC,UAAC,KAAQ,IAAK,OAAA,IAAI,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,EAArC,CAAqC,CAAC,CAAC;AAElE,CAAC;AAHD,8BAGC;AAED;IACE,mBAAmB,KAAQ,EAAS,SAAiB;QAAlC,UAAK,GAAL,KAAK,CAAG;QAAS,cAAS,GAAT,SAAS,CAAQ;IACrD,CAAC;IACH,gBAAC;AAAD,CAAC,AAHD,IAGC;AAHY,8BAAS"} diff --git a/node_modules/rxjs/internal/operators/toArray.d.ts b/node_modules/rxjs/internal/operators/toArray.d.ts new file mode 100644 index 00000000..21037516 --- /dev/null +++ b/node_modules/rxjs/internal/operators/toArray.d.ts @@ -0,0 +1,33 @@ +import { OperatorFunction } from '../types'; +/** + * Collects all source emissions and emits them as an array when the source completes. + * + * Get all values inside an array when the source completes + * + * ![](toArray.png) + * + * `toArray` will wait until the source Observable completes before emitting + * the array containing all emissions. When the source Observable errors no + * array will be emitted. + * + * ## Example + * ```ts + * import { interval } from 'rxjs'; + * import { toArray, take } from 'rxjs/operators'; + * + * const source = interval(1000); + * const example = source.pipe( + * take(10), + * toArray() + * ); + * + * const subscribe = example.subscribe(val => console.log(val)); + * + * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + * + * ``` +* @return An array from an observable sequence. +* @method toArray +* @owner Observable +*/ +export declare function toArray(): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/toArray.js b/node_modules/rxjs/internal/operators/toArray.js new file mode 100644 index 00000000..ca6639f3 --- /dev/null +++ b/node_modules/rxjs/internal/operators/toArray.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var reduce_1 = require("./reduce"); +function toArrayReducer(arr, item, index) { + if (index === 0) { + return [item]; + } + arr.push(item); + return arr; +} +function toArray() { + return reduce_1.reduce(toArrayReducer, []); +} +exports.toArray = toArray; +//# sourceMappingURL=toArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/toArray.js.map b/node_modules/rxjs/internal/operators/toArray.js.map new file mode 100644 index 00000000..5064cfa3 --- /dev/null +++ b/node_modules/rxjs/internal/operators/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sources":["../../src/internal/operators/toArray.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAGlC,SAAS,cAAc,CAAI,GAAQ,EAAE,IAAO,EAAE,KAAa;IACzD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAiCD,SAAgB,OAAO;IACrB,OAAO,eAAM,CAAC,cAAc,EAAE,EAAS,CAAC,CAAC;AAC3C,CAAC;AAFD,0BAEC"} diff --git a/node_modules/rxjs/internal/operators/window.d.ts b/node_modules/rxjs/internal/operators/window.d.ts new file mode 100644 index 00000000..ae298156 --- /dev/null +++ b/node_modules/rxjs/internal/operators/window.d.ts @@ -0,0 +1,46 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Branch out the source Observable values as a nested Observable whenever + * `windowBoundaries` emits. + * + * It's like {@link buffer}, but emits a nested Observable + * instead of an array. + * + * ![](window.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits connected, non-overlapping + * windows. It emits the current window and opens a new one whenever the + * Observable `windowBoundaries` emits an item. Because each window is an + * Observable, the output is a higher-order Observable. + * + * ## Example + * In every window of 1 second each, emit at most 2 click events + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { window, mergeAll, map, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const sec = interval(1000); + * const result = clicks.pipe( + * window(sec), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * @see {@link windowCount} + * @see {@link windowTime} + * @see {@link windowToggle} + * @see {@link windowWhen} + * @see {@link buffer} + * + * @param {Observable} windowBoundaries An Observable that completes the + * previous window and starts a new window. + * @return {Observable>} An Observable of windows, which are + * Observables emitting values of the source Observable. + * @method window + * @owner Observable + */ +export declare function window(windowBoundaries: Observable): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/window.js b/node_modules/rxjs/internal/operators/window.js new file mode 100644 index 00000000..2b4a3dc1 --- /dev/null +++ b/node_modules/rxjs/internal/operators/window.js @@ -0,0 +1,80 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var innerSubscribe_1 = require("../innerSubscribe"); +function window(windowBoundaries) { + return function windowOperatorFunction(source) { + return source.lift(new WindowOperator(windowBoundaries)); + }; +} +exports.window = window; +var WindowOperator = (function () { + function WindowOperator(windowBoundaries) { + this.windowBoundaries = windowBoundaries; + } + WindowOperator.prototype.call = function (subscriber, source) { + var windowSubscriber = new WindowSubscriber(subscriber); + var sourceSubscription = source.subscribe(windowSubscriber); + if (!sourceSubscription.closed) { + windowSubscriber.add(innerSubscribe_1.innerSubscribe(this.windowBoundaries, new innerSubscribe_1.SimpleInnerSubscriber(windowSubscriber))); + } + return sourceSubscription; + }; + return WindowOperator; +}()); +var WindowSubscriber = (function (_super) { + __extends(WindowSubscriber, _super); + function WindowSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.window = new Subject_1.Subject(); + destination.next(_this.window); + return _this; + } + WindowSubscriber.prototype.notifyNext = function () { + this.openWindow(); + }; + WindowSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function () { + this._complete(); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + }; + WindowSubscriber.prototype._unsubscribe = function () { + this.window = null; + }; + WindowSubscriber.prototype.openWindow = function () { + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var destination = this.destination; + var newWindow = this.window = new Subject_1.Subject(); + destination.next(newWindow); + }; + return WindowSubscriber; +}(innerSubscribe_1.SimpleOuterSubscriber)); +//# sourceMappingURL=window.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/window.js.map b/node_modules/rxjs/internal/operators/window.js.map new file mode 100644 index 00000000..0532f6d4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sources":["../../src/internal/operators/window.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,sCAAqC;AAGrC,oDAAiG;AA6CjG,SAAgB,MAAM,CAAI,gBAAiC;IACzD,OAAO,SAAS,sBAAsB,CAAC,MAAqB;QAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAJD,wBAIC;AAED;IAEE,wBAAoB,gBAAiC;QAAjC,qBAAgB,GAAhB,gBAAgB,CAAiB;IACrD,CAAC;IAED,6BAAI,GAAJ,UAAK,UAAqC,EAAE,MAAW;QACrD,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAC9B,gBAAgB,CAAC,GAAG,CAAC,+BAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,sCAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC1G;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACH,qBAAC;AAAD,CAAC,AAbD,IAaC;AAOD;IAAkC,oCAA6B;IAI7D,0BAAY,WAAsC;QAAlD,YACE,kBAAM,WAAW,CAAC,SAEnB;QALO,YAAM,GAAe,IAAI,iBAAO,EAAK,CAAC;QAI5C,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC;;IAChC,CAAC;IAED,qCAAU,GAAV;QACE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,sCAAW,GAAX,UAAY,KAAU;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,yCAAc,GAAd;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,gCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAES,iCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAES,oCAAS,GAAnB;QACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,QAAS,EAAE,CAAC;IAC/B,CAAC;IAGD,uCAAY,GAAZ;QACE,IAAI,CAAC,MAAM,GAAG,IAAK,CAAC;IACtB,CAAC;IAEO,qCAAU,GAAlB;QACE,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAO,EAAK,CAAC;QACjD,WAAW,CAAC,IAAK,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACH,uBAAC;AAAD,CAAC,AAjDD,CAAkC,sCAAqB,GAiDtD"} diff --git a/node_modules/rxjs/internal/operators/windowCount.d.ts b/node_modules/rxjs/internal/operators/windowCount.d.ts new file mode 100644 index 00000000..3e5ed184 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowCount.d.ts @@ -0,0 +1,66 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Branch out the source Observable values as a nested Observable with each + * nested Observable emitting at most `windowSize` values. + * + * It's like {@link bufferCount}, but emits a nested + * Observable instead of an array. + * + * ![](windowCount.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits windows every `startWindowEvery` + * items, each containing no more than `windowSize` items. When the source + * Observable completes or encounters an error, the output Observable emits + * the current window and propagates the notification from the source + * Observable. If `startWindowEvery` is not provided, then new windows are + * started immediately at the start of the source and when each window completes + * with size `windowSize`. + * + * ## Examples + * Ignore every 3rd click event, starting from the first one + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowCount, map, mergeAll, skip } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowCount(3), + * map(win => win.pipe(skip(1))), // skip first of every 3 clicks + * mergeAll() // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * Ignore every 3rd click event, starting from the third one + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowCount, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowCount(2, 3), + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowTime} + * @see {@link windowToggle} + * @see {@link windowWhen} + * @see {@link bufferCount} + * + * @param {number} windowSize The maximum number of values emitted by each + * window. + * @param {number} [startWindowEvery] Interval at which to start a new window. + * For example if `startWindowEvery` is `2`, then a new window will be started + * on every other value from the source. A new window is started at the + * beginning of the source by default. + * @return {Observable>} An Observable of windows, which in turn + * are Observable of values. + * @method windowCount + * @owner Observable + */ +export declare function windowCount(windowSize: number, startWindowEvery?: number): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/windowCount.js b/node_modules/rxjs/internal/operators/windowCount.js new file mode 100644 index 00000000..0bc25a01 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowCount.js @@ -0,0 +1,90 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var Subject_1 = require("../Subject"); +function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { startWindowEvery = 0; } + return function windowCountOperatorFunction(source) { + return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); + }; +} +exports.windowCount = windowCount; +var WindowCountOperator = (function () { + function WindowCountOperator(windowSize, startWindowEvery) { + this.windowSize = windowSize; + this.startWindowEvery = startWindowEvery; + } + WindowCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + }; + return WindowCountOperator; +}()); +var WindowCountSubscriber = (function (_super) { + __extends(WindowCountSubscriber, _super); + function WindowCountSubscriber(destination, windowSize, startWindowEvery) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowSize = windowSize; + _this.startWindowEvery = startWindowEvery; + _this.windows = [new Subject_1.Subject()]; + _this.count = 0; + destination.next(_this.windows[0]); + return _this; + } + WindowCountSubscriber.prototype._next = function (value) { + var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; + var destination = this.destination; + var windowSize = this.windowSize; + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len && !this.closed; i++) { + windows[i].next(value); + } + var c = this.count - windowSize + 1; + if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { + windows.shift().complete(); + } + if (++this.count % startWindowEvery === 0 && !this.closed) { + var window_1 = new Subject_1.Subject(); + windows.push(window_1); + destination.next(window_1); + } + }; + WindowCountSubscriber.prototype._error = function (err) { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().error(err); + } + } + this.destination.error(err); + }; + WindowCountSubscriber.prototype._complete = function () { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().complete(); + } + } + this.destination.complete(); + }; + WindowCountSubscriber.prototype._unsubscribe = function () { + this.count = 0; + this.windows = null; + }; + return WindowCountSubscriber; +}(Subscriber_1.Subscriber)); +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/windowCount.js.map b/node_modules/rxjs/internal/operators/windowCount.js.map new file mode 100644 index 00000000..5ac86c0f --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sources":["../../src/internal/operators/windowCount.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/windowTime.d.ts b/node_modules/rxjs/internal/operators/windowTime.d.ts new file mode 100644 index 00000000..2d793d57 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowTime.d.ts @@ -0,0 +1,87 @@ +import { Observable } from '../Observable'; +import { OperatorFunction, SchedulerLike } from '../types'; +/** + * Branch out the source Observable values as a nested Observable periodically + * in time. + * + * It's like {@link bufferTime}, but emits a nested + * Observable instead of an array. + * + * ![](windowTime.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable starts a new window periodically, as + * determined by the `windowCreationInterval` argument. It emits each window + * after a fixed timespan, specified by the `windowTimeSpan` argument. When the + * source Observable completes or encounters an error, the output Observable + * emits the current window and propagates the notification from the source + * Observable. If `windowCreationInterval` is not provided, the output + * Observable starts a new window when the previous window of duration + * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window + * will emit at most fixed number of values. Window will complete immediately + * after emitting last value and next one still will open as specified by + * `windowTimeSpan` and `windowCreationInterval` arguments. + * + * ## Examples + * In every window of 1 second each, emit at most 2 click events + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowTime, map, mergeAll, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowTime(1000), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowTime, map, mergeAll, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowTime(1000, 5000), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * Same as example above but with maxWindowCount instead of take + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowTime, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowTime(1000, 5000, 2), // each window has still at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowCount} + * @see {@link windowToggle} + * @see {@link windowWhen} + * @see {@link bufferTime} + * + * @param {number} windowTimeSpan The amount of time to fill each window. + * @param {number} [windowCreationInterval] The interval at which to start new + * windows. + * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of + * values each window can emit before completion. + * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the + * intervals that determine window boundaries. + * @return {Observable>} An observable of windows, which in turn + * are Observables. + * @method windowTime + * @owner Observable + */ +export declare function windowTime(windowTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction>; +export declare function windowTime(windowTimeSpan: number, windowCreationInterval: number, scheduler?: SchedulerLike): OperatorFunction>; +export declare function windowTime(windowTimeSpan: number, windowCreationInterval: number, maxWindowSize: number, scheduler?: SchedulerLike): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/windowTime.js b/node_modules/rxjs/internal/operators/windowTime.js new file mode 100644 index 00000000..d9a6d9bb --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowTime.js @@ -0,0 +1,169 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var async_1 = require("../scheduler/async"); +var Subscriber_1 = require("../Subscriber"); +var isNumeric_1 = require("../util/isNumeric"); +var isScheduler_1 = require("../util/isScheduler"); +function windowTime(windowTimeSpan) { + var scheduler = async_1.async; + var windowCreationInterval = null; + var maxWindowSize = Number.POSITIVE_INFINITY; + if (isScheduler_1.isScheduler(arguments[3])) { + scheduler = arguments[3]; + } + if (isScheduler_1.isScheduler(arguments[2])) { + scheduler = arguments[2]; + } + else if (isNumeric_1.isNumeric(arguments[2])) { + maxWindowSize = Number(arguments[2]); + } + if (isScheduler_1.isScheduler(arguments[1])) { + scheduler = arguments[1]; + } + else if (isNumeric_1.isNumeric(arguments[1])) { + windowCreationInterval = Number(arguments[1]); + } + return function windowTimeOperatorFunction(source) { + return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); + }; +} +exports.windowTime = windowTime; +var WindowTimeOperator = (function () { + function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + this.windowTimeSpan = windowTimeSpan; + this.windowCreationInterval = windowCreationInterval; + this.maxWindowSize = maxWindowSize; + this.scheduler = scheduler; + } + WindowTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); + }; + return WindowTimeOperator; +}()); +var CountedSubject = (function (_super) { + __extends(CountedSubject, _super); + function CountedSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._numberOfNextedValues = 0; + return _this; + } + CountedSubject.prototype.next = function (value) { + this._numberOfNextedValues++; + _super.prototype.next.call(this, value); + }; + Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", { + get: function () { + return this._numberOfNextedValues; + }, + enumerable: true, + configurable: true + }); + return CountedSubject; +}(Subject_1.Subject)); +var WindowTimeSubscriber = (function (_super) { + __extends(WindowTimeSubscriber, _super); + function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowTimeSpan = windowTimeSpan; + _this.windowCreationInterval = windowCreationInterval; + _this.maxWindowSize = maxWindowSize; + _this.scheduler = scheduler; + _this.windows = []; + var window = _this.openWindow(); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + var closeState = { subscriber: _this, window: window, context: null }; + var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); + } + else { + var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan }; + _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); + } + return _this; + } + WindowTimeSubscriber.prototype._next = function (value) { + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len; i++) { + var window_1 = windows[i]; + if (!window_1.closed) { + window_1.next(value); + if (window_1.numberOfNextedValues >= this.maxWindowSize) { + this.closeWindow(window_1); + } + } + } + }; + WindowTimeSubscriber.prototype._error = function (err) { + var windows = this.windows; + while (windows.length > 0) { + windows.shift().error(err); + } + this.destination.error(err); + }; + WindowTimeSubscriber.prototype._complete = function () { + var windows = this.windows; + while (windows.length > 0) { + var window_2 = windows.shift(); + if (!window_2.closed) { + window_2.complete(); + } + } + this.destination.complete(); + }; + WindowTimeSubscriber.prototype.openWindow = function () { + var window = new CountedSubject(); + this.windows.push(window); + var destination = this.destination; + destination.next(window); + return window; + }; + WindowTimeSubscriber.prototype.closeWindow = function (window) { + window.complete(); + var windows = this.windows; + windows.splice(windows.indexOf(window), 1); + }; + return WindowTimeSubscriber; +}(Subscriber_1.Subscriber)); +function dispatchWindowTimeSpanOnly(state) { + var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; + if (window) { + subscriber.closeWindow(window); + } + state.window = subscriber.openWindow(); + this.schedule(state, windowTimeSpan); +} +function dispatchWindowCreation(state) { + var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; + var window = subscriber.openWindow(); + var action = this; + var context = { action: action, subscription: null }; + var timeSpanState = { subscriber: subscriber, window: window, context: context }; + context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); + action.add(context.subscription); + action.schedule(state, windowCreationInterval); +} +function dispatchWindowClose(state) { + var subscriber = state.subscriber, window = state.window, context = state.context; + if (context && context.action && context.subscription) { + context.action.remove(context.subscription); + } + subscriber.closeWindow(window); +} +//# sourceMappingURL=windowTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/windowTime.js.map b/node_modules/rxjs/internal/operators/windowTime.js.map new file mode 100644 index 00000000..e8149995 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sources":["../../src/internal/operators/windowTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAqC;AAErC,4CAA2C;AAC3C,4CAA2C;AAG3C,+CAA8C;AAC9C,mDAAkD;AA+FlD,SAAgB,UAAU,CAAI,cAAsB;IAClD,IAAI,SAAS,GAAkB,aAAK,CAAC;IACrC,IAAI,sBAAsB,GAAW,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAW,MAAM,CAAC,iBAAiB,CAAC;IAErD,IAAI,yBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,IAAI,yBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;SAAM,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAClC,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KACtC;IAED,IAAI,yBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7B,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;SAAM,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAClC,sBAAsB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;IAED,OAAO,SAAS,0BAA0B,CAAC,MAAqB;QAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAI,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IAClH,CAAC,CAAC;AACJ,CAAC;AAxBD,gCAwBC;AAED;IAEE,4BAAoB,cAAsB,EACtB,sBAAqC,EACrC,aAAqB,EACrB,SAAwB;QAHxB,mBAAc,GAAd,cAAc,CAAQ;QACtB,2BAAsB,GAAtB,sBAAsB,CAAe;QACrC,kBAAa,GAAb,aAAa,CAAQ;QACrB,cAAS,GAAT,SAAS,CAAe;IAC5C,CAAC;IAED,iCAAI,GAAJ,UAAK,UAAqC,EAAE,MAAW;QACrD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,oBAAoB,CAC9C,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CACjG,CAAC,CAAC;IACL,CAAC;IACH,yBAAC;AAAD,CAAC,AAbD,IAaC;AA0BD;IAAgC,kCAAU;IAA1C;QAAA,qEAWC;QAVS,2BAAqB,GAAW,CAAC,CAAC;;IAU5C,CAAC;IARC,6BAAI,GAAJ,UAAK,KAAS;QACZ,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,iBAAM,IAAI,YAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,sBAAI,gDAAoB;aAAxB;YACE,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;;;OAAA;IACH,qBAAC;AAAD,CAAC,AAXD,CAAgC,iBAAO,GAWtC;AAOD;IAAsC,wCAAa;IAGjD,8BAAsB,WAAsC,EACxC,cAAsB,EACtB,sBAAqC,EACrC,aAAqB,EACrB,SAAwB;QAJ5C,YAKE,kBAAM,WAAW,CAAC,SAYnB;QAjBqB,iBAAW,GAAX,WAAW,CAA2B;QACxC,oBAAc,GAAd,cAAc,CAAQ;QACtB,4BAAsB,GAAtB,sBAAsB,CAAe;QACrC,mBAAa,GAAb,aAAa,CAAQ;QACrB,eAAS,GAAT,SAAS,CAAe;QANpC,aAAO,GAAwB,EAAE,CAAC;QASxC,IAAM,MAAM,GAAG,KAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,sBAAsB,KAAK,IAAI,IAAI,sBAAsB,IAAI,CAAC,EAAE;YAClE,IAAM,UAAU,GAAkB,EAAE,UAAU,EAAE,KAAI,EAAE,MAAM,QAAA,EAAE,OAAO,EAAO,IAAI,EAAE,CAAC;YACnF,IAAM,aAAa,GAAqB,EAAE,cAAc,gBAAA,EAAE,sBAAsB,wBAAA,EAAE,UAAU,EAAE,KAAI,EAAE,SAAS,WAAA,EAAE,CAAC;YAChH,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAgB,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YAC7F,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAmB,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC;SAC/G;aAAM;YACL,IAAM,iBAAiB,GAAyB,EAAE,UAAU,EAAE,KAAI,EAAE,MAAM,QAAA,EAAE,cAAc,gBAAA,EAAE,CAAC;YAC7F,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAuB,0BAA0B,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC;SACnH;;IACH,CAAC;IAES,oCAAK,GAAf,UAAgB,KAAQ;QACtB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAM,QAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAM,CAAC,MAAM,EAAE;gBAClB,QAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,IAAI,QAAM,CAAC,oBAAoB,IAAI,IAAI,CAAC,aAAa,EAAE;oBACrD,IAAI,CAAC,WAAW,CAAC,QAAM,CAAC,CAAC;iBAC1B;aACF;SACF;IACH,CAAC;IAES,qCAAM,GAAhB,UAAiB,GAAQ;QACvB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAES,wCAAS,GAAnB;QACE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAM,QAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAM,CAAC,MAAM,EAAE;gBAClB,QAAM,CAAC,QAAQ,EAAE,CAAC;aACnB;SACF;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEM,yCAAU,GAAjB;QACE,IAAM,MAAM,GAAG,IAAI,cAAc,EAAK,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,0CAAW,GAAlB,UAAmB,MAAyB;QAC1C,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IACH,2BAAC;AAAD,CAAC,AApED,CAAsC,uBAAU,GAoE/C;AAED,SAAS,0BAA0B,CAAiD,KAA2B;IACrG,IAAA,6BAAU,EAAE,qCAAc,EAAE,qBAAM,CAAW;IACrD,IAAI,MAAM,EAAE;QACV,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KAChC;IACD,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAA6C,KAAuB;IACzF,IAAA,qCAAc,EAAE,6BAAU,EAAE,2BAAS,EAAE,qDAAsB,CAAW;IAChF,IAAM,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IACvC,IAAM,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,OAAO,GAA0B,EAAE,MAAM,QAAA,EAAE,YAAY,EAAO,IAAI,EAAE,CAAC;IACzE,IAAM,aAAa,GAAkB,EAAE,UAAU,YAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,CAAC;IACrE,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAgB,mBAAmB,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAC7G,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,mBAAmB,CAAI,KAAoB;IAC1C,IAAA,6BAAU,EAAE,qBAAM,EAAE,uBAAO,CAAW;IAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,EAAE;QACrD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC7C;IACD,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"} diff --git a/node_modules/rxjs/internal/operators/windowToggle.d.ts b/node_modules/rxjs/internal/operators/windowToggle.d.ts new file mode 100644 index 00000000..b71f3512 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowToggle.d.ts @@ -0,0 +1,51 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Branch out the source Observable values as a nested Observable starting from + * an emission from `openings` and ending when the output of `closingSelector` + * emits. + * + * It's like {@link bufferToggle}, but emits a nested + * Observable instead of an array. + * + * ![](windowToggle.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits windows that contain those items + * emitted by the source Observable between the time when the `openings` + * Observable emits an item and when the Observable returned by + * `closingSelector` emits an item. + * + * ## Example + * Every other second, emit the click events from the next 500ms + * ```ts + * import { fromEvent, interval, EMPTY } from 'rxjs'; + * import { windowToggle, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const openings = interval(1000); + * const result = clicks.pipe( + * windowToggle(openings, i => i % 2 ? interval(500) : EMPTY), + * mergeAll() + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowCount} + * @see {@link windowTime} + * @see {@link windowWhen} + * @see {@link bufferToggle} + * + * @param {Observable} openings An observable of notifications to start new + * windows. + * @param {function(value: O): Observable} closingSelector A function that takes + * the value emitted by the `openings` observable and returns an Observable, + * which, when it emits (either `next` or `complete`), signals that the + * associated window should complete. + * @return {Observable>} An observable of windows, which in turn + * are Observables. + * @method windowToggle + * @owner Observable + */ +export declare function windowToggle(openings: Observable, closingSelector: (openValue: O) => Observable): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/windowToggle.js b/node_modules/rxjs/internal/operators/windowToggle.js new file mode 100644 index 00000000..c0d144a2 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowToggle.js @@ -0,0 +1,143 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var Subscription_1 = require("../Subscription"); +var OuterSubscriber_1 = require("../OuterSubscriber"); +var subscribeToResult_1 = require("../util/subscribeToResult"); +function windowToggle(openings, closingSelector) { + return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); }; +} +exports.windowToggle = windowToggle; +var WindowToggleOperator = (function () { + function WindowToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + WindowToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return WindowToggleOperator; +}()); +var WindowToggleSubscriber = (function (_super) { + __extends(WindowToggleSubscriber, _super); + function WindowToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.openings = openings; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(_this.openSubscription = subscribeToResult_1.subscribeToResult(_this, openings, openings)); + return _this; + } + WindowToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + if (contexts) { + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].window.next(value); + } + } + }; + WindowToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_1 = contexts[index]; + context_1.window.error(err); + context_1.subscription.unsubscribe(); + } + } + _super.prototype._error.call(this, err); + }; + WindowToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_2 = contexts[index]; + context_2.window.complete(); + context_2.subscription.unsubscribe(); + } + } + _super.prototype._complete.call(this); + }; + WindowToggleSubscriber.prototype._unsubscribe = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_3 = contexts[index]; + context_3.window.unsubscribe(); + context_3.subscription.unsubscribe(); + } + } + }; + WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (outerValue === this.openings) { + var closingNotifier = void 0; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(innerValue); + } + catch (e) { + return this.error(e); + } + var window_1 = new Subject_1.Subject(); + var subscription = new Subscription_1.Subscription(); + var context_4 = { window: window_1, subscription: subscription }; + this.contexts.push(context_4); + var innerSubscription = subscribeToResult_1.subscribeToResult(this, closingNotifier, context_4); + if (innerSubscription.closed) { + this.closeWindow(this.contexts.length - 1); + } + else { + innerSubscription.context = context_4; + subscription.add(innerSubscription); + } + this.destination.next(window_1); + } + else { + this.closeWindow(this.contexts.indexOf(outerValue)); + } + }; + WindowToggleSubscriber.prototype.notifyError = function (err) { + this.error(err); + }; + WindowToggleSubscriber.prototype.notifyComplete = function (inner) { + if (inner !== this.openSubscription) { + this.closeWindow(this.contexts.indexOf(inner.context)); + } + }; + WindowToggleSubscriber.prototype.closeWindow = function (index) { + if (index === -1) { + return; + } + var contexts = this.contexts; + var context = contexts[index]; + var window = context.window, subscription = context.subscription; + contexts.splice(index, 1); + window.complete(); + subscription.unsubscribe(); + }; + return WindowToggleSubscriber; +}(OuterSubscriber_1.OuterSubscriber)); +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/windowToggle.js.map b/node_modules/rxjs/internal/operators/windowToggle.js.map new file mode 100644 index 00000000..7cd48302 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sources":["../../src/internal/operators/windowToggle.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/windowWhen.d.ts b/node_modules/rxjs/internal/operators/windowWhen.d.ts new file mode 100644 index 00000000..bb92a737 --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowWhen.d.ts @@ -0,0 +1,48 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +/** + * Branch out the source Observable values as a nested Observable using a + * factory function of closing Observables to determine when to start a new + * window. + * + * It's like {@link bufferWhen}, but emits a nested + * Observable instead of an array. + * + * ![](windowWhen.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits connected, non-overlapping windows. + * It emits the current window and opens a new one whenever the Observable + * produced by the specified `closingSelector` function emits an item. The first + * window is opened immediately when subscribing to the output Observable. + * + * ## Example + * Emit only the first two clicks events in every window of [1-5] random seconds + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { windowWhen, map, mergeAll, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowWhen(() => interval(1000 + Math.random() * 4000)), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll() // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowCount} + * @see {@link windowTime} + * @see {@link windowToggle} + * @see {@link bufferWhen} + * + * @param {function(): Observable} closingSelector A function that takes no + * arguments and returns an Observable that signals (on either `next` or + * `complete`) when to close the previous window and start a new one. + * @return {Observable>} An observable of windows, which in turn + * are Observables. + * @method windowWhen + * @owner Observable + */ +export declare function windowWhen(closingSelector: () => Observable): OperatorFunction>; diff --git a/node_modules/rxjs/internal/operators/windowWhen.js b/node_modules/rxjs/internal/operators/windowWhen.js new file mode 100644 index 00000000..c38bfa2d --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowWhen.js @@ -0,0 +1,96 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var OuterSubscriber_1 = require("../OuterSubscriber"); +var subscribeToResult_1 = require("../util/subscribeToResult"); +function windowWhen(closingSelector) { + return function windowWhenOperatorFunction(source) { + return source.lift(new WindowOperator(closingSelector)); + }; +} +exports.windowWhen = windowWhen; +var WindowOperator = (function () { + function WindowOperator(closingSelector) { + this.closingSelector = closingSelector; + } + WindowOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector)); + }; + return WindowOperator; +}()); +var WindowSubscriber = (function (_super) { + __extends(WindowSubscriber, _super); + function WindowSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.closingSelector = closingSelector; + _this.openWindow(); + return _this; + } + WindowSubscriber.prototype.notifyNext = function (_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype.notifyError = function (error) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function (innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype.unsubscribeClosingNotification = function () { + if (this.closingNotification) { + this.closingNotification.unsubscribe(); + } + }; + WindowSubscriber.prototype.openWindow = function (innerSub) { + if (innerSub === void 0) { innerSub = null; } + if (innerSub) { + this.remove(innerSub); + innerSub.unsubscribe(); + } + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var window = this.window = new Subject_1.Subject(); + this.destination.next(window); + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (e) { + this.destination.error(e); + this.window.error(e); + return; + } + this.add(this.closingNotification = subscribeToResult_1.subscribeToResult(this, closingNotifier)); + }; + return WindowSubscriber; +}(OuterSubscriber_1.OuterSubscriber)); +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/windowWhen.js.map b/node_modules/rxjs/internal/operators/windowWhen.js.map new file mode 100644 index 00000000..0ea034df --- /dev/null +++ b/node_modules/rxjs/internal/operators/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sources":["../../src/internal/operators/windowWhen.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/withLatestFrom.d.ts b/node_modules/rxjs/internal/operators/withLatestFrom.d.ts new file mode 100644 index 00000000..7732a85f --- /dev/null +++ b/node_modules/rxjs/internal/operators/withLatestFrom.d.ts @@ -0,0 +1,15 @@ +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +export declare function withLatestFrom(project: (v1: T) => R): OperatorFunction; +export declare function withLatestFrom, R>(source2: O2, project: (v1: T, v2: ObservedValueOf) => R): OperatorFunction; +export declare function withLatestFrom, O3 extends ObservableInput, R>(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf) => R): OperatorFunction; +export declare function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): OperatorFunction; +export declare function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): OperatorFunction; +export declare function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): OperatorFunction; +export declare function withLatestFrom>(source2: O2): OperatorFunction]>; +export declare function withLatestFrom, O3 extends ObservableInput>(v2: O2, v3: O3): OperatorFunction, ObservedValueOf]>; +export declare function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput>(v2: O2, v3: O3, v4: O4): OperatorFunction, ObservedValueOf, ObservedValueOf]>; +export declare function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export declare function withLatestFrom(...observables: Array | ((...values: Array) => R)>): OperatorFunction; +export declare function withLatestFrom(array: ObservableInput[]): OperatorFunction; +export declare function withLatestFrom(array: ObservableInput[], project: (...values: Array) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/withLatestFrom.js b/node_modules/rxjs/internal/operators/withLatestFrom.js new file mode 100644 index 00000000..c913dc52 --- /dev/null +++ b/node_modules/rxjs/internal/operators/withLatestFrom.js @@ -0,0 +1,97 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var OuterSubscriber_1 = require("../OuterSubscriber"); +var subscribeToResult_1 = require("../util/subscribeToResult"); +function withLatestFrom() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return function (source) { + var project; + if (typeof args[args.length - 1] === 'function') { + project = args.pop(); + } + var observables = args; + return source.lift(new WithLatestFromOperator(observables, project)); + }; +} +exports.withLatestFrom = withLatestFrom; +var WithLatestFromOperator = (function () { + function WithLatestFromOperator(observables, project) { + this.observables = observables; + this.project = project; + } + WithLatestFromOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + }; + return WithLatestFromOperator; +}()); +var WithLatestFromSubscriber = (function (_super) { + __extends(WithLatestFromSubscriber, _super); + function WithLatestFromSubscriber(destination, observables, project) { + var _this = _super.call(this, destination) || this; + _this.observables = observables; + _this.project = project; + _this.toRespond = []; + var len = observables.length; + _this.values = new Array(len); + for (var i = 0; i < len; i++) { + _this.toRespond.push(i); + } + for (var i = 0; i < len; i++) { + var observable = observables[i]; + _this.add(subscribeToResult_1.subscribeToResult(_this, observable, undefined, i)); + } + return _this; + } + WithLatestFromSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) { + this.values[outerIndex] = innerValue; + var toRespond = this.toRespond; + if (toRespond.length > 0) { + var found = toRespond.indexOf(outerIndex); + if (found !== -1) { + toRespond.splice(found, 1); + } + } + }; + WithLatestFromSubscriber.prototype.notifyComplete = function () { + }; + WithLatestFromSubscriber.prototype._next = function (value) { + if (this.toRespond.length === 0) { + var args = [value].concat(this.values); + if (this.project) { + this._tryProject(args); + } + else { + this.destination.next(args); + } + } + }; + WithLatestFromSubscriber.prototype._tryProject = function (args) { + var result; + try { + result = this.project.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return WithLatestFromSubscriber; +}(OuterSubscriber_1.OuterSubscriber)); +//# sourceMappingURL=withLatestFrom.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/withLatestFrom.js.map b/node_modules/rxjs/internal/operators/withLatestFrom.js.map new file mode 100644 index 00000000..d6c5e61c --- /dev/null +++ b/node_modules/rxjs/internal/operators/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sources":["../../src/internal/operators/withLatestFrom.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/operators/zip.d.ts b/node_modules/rxjs/internal/operators/zip.d.ts new file mode 100644 index 00000000..eadea67d --- /dev/null +++ b/node_modules/rxjs/internal/operators/zip.d.ts @@ -0,0 +1,29 @@ +import { ObservableInput, OperatorFunction } from '../types'; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(project: (v1: T) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(array: Array>): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export declare function zip(array: Array>, project: (v1: T, ...values: Array) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/zip.js b/node_modules/rxjs/internal/operators/zip.js new file mode 100644 index 00000000..8e0620e0 --- /dev/null +++ b/node_modules/rxjs/internal/operators/zip.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var zip_1 = require("../observable/zip"); +function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function zipOperatorFunction(source) { + return source.lift.call(zip_1.zip.apply(void 0, [source].concat(observables))); + }; +} +exports.zip = zip; +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/zip.js.map b/node_modules/rxjs/internal/operators/zip.js.map new file mode 100644 index 00000000..3396fe7d --- /dev/null +++ b/node_modules/rxjs/internal/operators/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../../src/internal/operators/zip.ts"],"names":[],"mappings":";;AAAA,yCAAqD;AAsCrD,SAAgB,GAAG;IAAO,qBAA4E;SAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;QAA5E,gCAA4E;;IACpG,OAAO,SAAS,mBAAmB,CAAC,MAAqB;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,gBAAI,MAAM,SAAK,WAAW,GAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC;AAJD,kBAIC"} diff --git a/node_modules/rxjs/internal/operators/zipAll.d.ts b/node_modules/rxjs/internal/operators/zipAll.d.ts new file mode 100644 index 00000000..d14e5aa4 --- /dev/null +++ b/node_modules/rxjs/internal/operators/zipAll.d.ts @@ -0,0 +1,5 @@ +import { OperatorFunction, ObservableInput } from '../types'; +export declare function zipAll(): OperatorFunction, T[]>; +export declare function zipAll(): OperatorFunction; +export declare function zipAll(project: (...values: T[]) => R): OperatorFunction, R>; +export declare function zipAll(project: (...values: Array) => R): OperatorFunction; diff --git a/node_modules/rxjs/internal/operators/zipAll.js b/node_modules/rxjs/internal/operators/zipAll.js new file mode 100644 index 00000000..40f88aa8 --- /dev/null +++ b/node_modules/rxjs/internal/operators/zipAll.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var zip_1 = require("../observable/zip"); +function zipAll(project) { + return function (source) { return source.lift(new zip_1.ZipOperator(project)); }; +} +exports.zipAll = zipAll; +//# sourceMappingURL=zipAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/operators/zipAll.js.map b/node_modules/rxjs/internal/operators/zipAll.js.map new file mode 100644 index 00000000..b2e58952 --- /dev/null +++ b/node_modules/rxjs/internal/operators/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sources":["../../src/internal/operators/zipAll.ts"],"names":[],"mappings":";;AAAA,yCAAgD;AAShD,SAAgB,MAAM,CAAO,OAAsC;IACjE,OAAO,UAAC,MAAqB,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAW,CAAC,OAAO,CAAC,CAAC,EAArC,CAAqC,CAAC;AAC1E,CAAC;AAFD,wBAEC"} diff --git a/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts b/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts new file mode 100644 index 00000000..bd519ce3 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleArray.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +export declare function scheduleArray(input: ArrayLike, scheduler: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/scheduled/scheduleArray.js b/node_modules/rxjs/internal/scheduled/scheduleArray.js new file mode 100644 index 00000000..31938d23 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleArray.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var Subscription_1 = require("../Subscription"); +function scheduleArray(input, scheduler) { + return new Observable_1.Observable(function (subscriber) { + var sub = new Subscription_1.Subscription(); + var i = 0; + sub.add(scheduler.schedule(function () { + if (i === input.length) { + subscriber.complete(); + return; + } + subscriber.next(input[i++]); + if (!subscriber.closed) { + sub.add(this.schedule()); + } + })); + return sub; + }); +} +exports.scheduleArray = scheduleArray; +//# sourceMappingURL=scheduleArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduled/scheduleArray.js.map b/node_modules/rxjs/internal/scheduled/scheduleArray.js.map new file mode 100644 index 00000000..4fb17f33 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleArray.js","sources":["../../src/internal/scheduled/scheduleArray.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,gDAA+C;AAE/C,SAAgB,aAAa,CAAI,KAAmB,EAAE,SAAwB;IAC5E,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE;gBACtB,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;aACR;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,sCAgBC"} diff --git a/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts b/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts new file mode 100644 index 00000000..baf3d969 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleIterable.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +export declare function scheduleIterable(input: Iterable, scheduler: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/scheduled/scheduleIterable.js b/node_modules/rxjs/internal/scheduled/scheduleIterable.js new file mode 100644 index 00000000..3cf6bc09 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleIterable.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var Subscription_1 = require("../Subscription"); +var iterator_1 = require("../symbol/iterator"); +function scheduleIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + return new Observable_1.Observable(function (subscriber) { + var sub = new Subscription_1.Subscription(); + var iterator; + sub.add(function () { + if (iterator && typeof iterator.return === 'function') { + iterator.return(); + } + }); + sub.add(scheduler.schedule(function () { + iterator = input[iterator_1.iterator](); + sub.add(scheduler.schedule(function () { + if (subscriber.closed) { + return; + } + var value; + var done; + try { + var result = iterator.next(); + value = result.value; + done = result.done; + } + catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } + else { + subscriber.next(value); + this.schedule(); + } + })); + })); + return sub; + }); +} +exports.scheduleIterable = scheduleIterable; +//# sourceMappingURL=scheduleIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map b/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map new file mode 100644 index 00000000..018a1151 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleIterable.js","sources":["../../src/internal/scheduled/scheduleIterable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,gDAA+C;AAC/C,+CAAiE;AAEjE,SAAgB,gBAAgB,CAAI,KAAkB,EAAE,SAAwB;IAC9E,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IACD,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,IAAI,QAAqB,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC;YAEN,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;gBACrD,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,QAAQ,GAAG,KAAK,CAAC,mBAAe,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,IAAI,UAAU,CAAC,MAAM,EAAE;oBACrB,OAAO;iBACR;gBACD,IAAI,KAAQ,CAAC;gBACb,IAAI,IAAa,CAAC;gBAClB,IAAI;oBACF,IAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC/B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;iBACpB;gBAAC,OAAO,GAAG,EAAE;oBACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtB,OAAO;iBACR;gBACD,IAAI,IAAI,EAAE;oBACR,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvB;qBAAM;oBACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAvCD,4CAuCC"} diff --git a/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts b/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts new file mode 100644 index 00000000..22b23b1d --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleObservable.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { InteropObservable, SchedulerLike } from '../types'; +export declare function scheduleObservable(input: InteropObservable, scheduler: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/scheduled/scheduleObservable.js b/node_modules/rxjs/internal/scheduled/scheduleObservable.js new file mode 100644 index 00000000..83e49c8a --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleObservable.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var Subscription_1 = require("../Subscription"); +var observable_1 = require("../symbol/observable"); +function scheduleObservable(input, scheduler) { + return new Observable_1.Observable(function (subscriber) { + var sub = new Subscription_1.Subscription(); + sub.add(scheduler.schedule(function () { + var observable = input[observable_1.observable](); + sub.add(observable.subscribe({ + next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, + error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, + complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, + })); + })); + return sub; + }); +} +exports.scheduleObservable = scheduleObservable; +//# sourceMappingURL=scheduleObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map b/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map new file mode 100644 index 00000000..14955a98 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduleObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduleObservable.js","sources":["../../src/internal/scheduled/scheduleObservable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,gDAA+C;AAC/C,mDAAuE;AAGvE,SAAgB,kBAAkB,CAAI,KAA2B,EAAE,SAAwB;IACzF,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,IAAM,UAAU,GAAoB,KAAK,CAAC,uBAAiB,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,IAAI,YAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAtB,CAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,KAAK,YAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,QAAQ,gBAAK,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,gDAaC"} diff --git a/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts b/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts new file mode 100644 index 00000000..9d56ab0d --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/schedulePromise.d.ts @@ -0,0 +1,3 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +export declare function schedulePromise(input: PromiseLike, scheduler: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/scheduled/schedulePromise.js b/node_modules/rxjs/internal/scheduled/schedulePromise.js new file mode 100644 index 00000000..826910d5 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/schedulePromise.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var Subscription_1 = require("../Subscription"); +function schedulePromise(input, scheduler) { + return new Observable_1.Observable(function (subscriber) { + var sub = new Subscription_1.Subscription(); + sub.add(scheduler.schedule(function () { return input.then(function (value) { + sub.add(scheduler.schedule(function () { + subscriber.next(value); + sub.add(scheduler.schedule(function () { return subscriber.complete(); })); + })); + }, function (err) { + sub.add(scheduler.schedule(function () { return subscriber.error(err); })); + }); })); + return sub; + }); +} +exports.schedulePromise = schedulePromise; +//# sourceMappingURL=schedulePromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduled/schedulePromise.js.map b/node_modules/rxjs/internal/scheduled/schedulePromise.js.map new file mode 100644 index 00000000..f38e834b --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/schedulePromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"schedulePromise.js","sources":["../../src/internal/scheduled/schedulePromise.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAE3C,gDAA+C;AAE/C,SAAgB,eAAe,CAAI,KAAqB,EAAE,SAAwB;IAChF,OAAO,IAAI,uBAAU,CAAI,UAAA,UAAU;QACjC,IAAM,GAAG,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,KAAK,CAAC,IAAI,CACzC,UAAA,KAAK;YACH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,QAAQ,EAAE,EAArB,CAAqB,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,EACD,UAAA,GAAG;YACD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;QAC3D,CAAC,CACF,EAVgC,CAUhC,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,0CAgBC"} diff --git a/node_modules/rxjs/internal/scheduled/scheduled.d.ts b/node_modules/rxjs/internal/scheduled/scheduled.d.ts new file mode 100644 index 00000000..2f95c4e9 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduled.d.ts @@ -0,0 +1,13 @@ +import { ObservableInput, SchedulerLike, Observable } from 'rxjs'; +/** + * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions + * are scheduled on the provided scheduler. + * + * @see from + * @see of + * + * @param input The observable, array, promise, iterable, etc you would like to schedule + * @param scheduler The scheduler to use to schedule the subscription and emissions from + * the returned observable. + */ +export declare function scheduled(input: ObservableInput, scheduler: SchedulerLike): Observable; diff --git a/node_modules/rxjs/internal/scheduled/scheduled.js b/node_modules/rxjs/internal/scheduled/scheduled.js new file mode 100644 index 00000000..4fd1554a --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduled.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var scheduleObservable_1 = require("./scheduleObservable"); +var schedulePromise_1 = require("./schedulePromise"); +var scheduleArray_1 = require("./scheduleArray"); +var scheduleIterable_1 = require("./scheduleIterable"); +var isInteropObservable_1 = require("../util/isInteropObservable"); +var isPromise_1 = require("../util/isPromise"); +var isArrayLike_1 = require("../util/isArrayLike"); +var isIterable_1 = require("../util/isIterable"); +function scheduled(input, scheduler) { + if (input != null) { + if (isInteropObservable_1.isInteropObservable(input)) { + return scheduleObservable_1.scheduleObservable(input, scheduler); + } + else if (isPromise_1.isPromise(input)) { + return schedulePromise_1.schedulePromise(input, scheduler); + } + else if (isArrayLike_1.isArrayLike(input)) { + return scheduleArray_1.scheduleArray(input, scheduler); + } + else if (isIterable_1.isIterable(input) || typeof input === 'string') { + return scheduleIterable_1.scheduleIterable(input, scheduler); + } + } + throw new TypeError((input !== null && typeof input || input) + ' is not observable'); +} +exports.scheduled = scheduled; +//# sourceMappingURL=scheduled.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduled/scheduled.js.map b/node_modules/rxjs/internal/scheduled/scheduled.js.map new file mode 100644 index 00000000..5d9e86c2 --- /dev/null +++ b/node_modules/rxjs/internal/scheduled/scheduled.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scheduled.js","sources":["../../src/internal/scheduled/scheduled.ts"],"names":[],"mappings":";;AAAA,2DAA0D;AAC1D,qDAAoD;AACpD,iDAAgD;AAChD,uDAAsD;AAEtD,mEAAkE;AAClE,+CAA8C;AAC9C,mDAAkD;AAClD,iDAAgD;AAahD,SAAgB,SAAS,CAAI,KAAyB,EAAE,SAAwB;IAC9E,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,IAAI,yCAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,uCAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7C;aAAM,IAAI,qBAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,iCAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC1C;aAAM,IAAI,yBAAW,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,6BAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACxC;aAAO,IAAI,uBAAU,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC1D,OAAO,mCAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC3C;KACF;IAED,MAAM,IAAI,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACxF,CAAC;AAdD,8BAcC"} diff --git a/node_modules/rxjs/internal/scheduler/Action.d.ts b/node_modules/rxjs/internal/scheduler/Action.d.ts new file mode 100644 index 00000000..f1a860a5 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/Action.d.ts @@ -0,0 +1,31 @@ +import { Scheduler } from '../Scheduler'; +import { Subscription } from '../Subscription'; +import { SchedulerAction } from '../types'; +/** + * A unit of work to be executed in a `scheduler`. An action is typically + * created from within a {@link SchedulerLike} and an RxJS user does not need to concern + * themselves about creating and manipulating an Action. + * + * ```ts + * class Action extends Subscription { + * new (scheduler: Scheduler, work: (state?: T) => void); + * schedule(state?: T, delay: number = 0): Subscription; + * } + * ``` + * + * @class Action + */ +export declare class Action extends Subscription { + constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void); + /** + * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed + * some context object, `state`. May happen at some point in the future, + * according to the `delay` parameter, if specified. + * @param {T} [state] Some contextual data that the `work` function uses when + * called by the Scheduler. + * @param {number} [delay] Time to wait before executing the work, where the + * time unit is implicit and defined by the Scheduler. + * @return {void} + */ + schedule(state?: T, delay?: number): Subscription; +} diff --git a/node_modules/rxjs/internal/scheduler/Action.js b/node_modules/rxjs/internal/scheduler/Action.js new file mode 100644 index 00000000..6c4e62ce --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/Action.js @@ -0,0 +1,29 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscription_1 = require("../Subscription"); +var Action = (function (_super) { + __extends(Action, _super); + function Action(scheduler, work) { + return _super.call(this) || this; + } + Action.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + return this; + }; + return Action; +}(Subscription_1.Subscription)); +exports.Action = Action; +//# sourceMappingURL=Action.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/Action.js.map b/node_modules/rxjs/internal/scheduler/Action.js.map new file mode 100644 index 00000000..bd02c3aa --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/Action.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Action.js","sources":["../../src/internal/scheduler/Action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gDAA+C;AAiB/C;IAA+B,0BAAY;IACzC,gBAAY,SAAoB,EAAE,IAAmD;eACnF,iBAAO;IACT,CAAC;IAWM,yBAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACH,aAAC;AAAD,CAAC,AAjBD,CAA+B,2BAAY,GAiB1C;AAjBY,wBAAM"} diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts new file mode 100644 index 00000000..5ff0afa9 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.d.ts @@ -0,0 +1,15 @@ +import { AsyncAction } from './AsyncAction'; +import { AnimationFrameScheduler } from './AnimationFrameScheduler'; +import { SchedulerAction } from '../types'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class AnimationFrameAction extends AsyncAction { + protected scheduler: AnimationFrameScheduler; + protected work: (this: SchedulerAction, state?: T) => void; + constructor(scheduler: AnimationFrameScheduler, work: (this: SchedulerAction, state?: T) => void); + protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay?: number): any; + protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay?: number): any; +} diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js new file mode 100644 index 00000000..92625aaa --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js @@ -0,0 +1,47 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncAction_1 = require("./AsyncAction"); +var AnimationFrameAction = (function (_super) { + __extends(AnimationFrameAction, _super); + function AnimationFrameAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); })); + }; + AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AnimationFrameAction; +}(AsyncAction_1.AsyncAction)); +exports.AnimationFrameAction = AnimationFrameAction; +//# sourceMappingURL=AnimationFrameAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map new file mode 100644 index 00000000..570c451f --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AnimationFrameAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameAction.js","sources":["../../src/internal/scheduler/AnimationFrameAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA4C;AAS5C;IAA6C,wCAAc;IAEzD,8BAAsB,SAAkC,EAClC,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAyB;QAClC,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAEtF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAqB,CACxE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;IAClC,CAAC;IACS,6CAAc,GAAxB,UAAyB,SAAkC,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAItF,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,2BAAC;AAAD,CAAC,AArCD,CAA6C,yBAAW,GAqCvD;AArCY,oDAAoB"} diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts new file mode 100644 index 00000000..ff6d5fb9 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.d.ts @@ -0,0 +1,5 @@ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; +export declare class AnimationFrameScheduler extends AsyncScheduler { + flush(action?: AsyncAction): void; +} diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js new file mode 100644 index 00000000..79ffe05c --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js @@ -0,0 +1,46 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncScheduler_1 = require("./AsyncScheduler"); +var AnimationFrameScheduler = (function (_super) { + __extends(AnimationFrameScheduler, _super); + function AnimationFrameScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AnimationFrameScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler; +}(AsyncScheduler_1.AsyncScheduler)); +exports.AnimationFrameScheduler = AnimationFrameScheduler; +//# sourceMappingURL=AnimationFrameScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map new file mode 100644 index 00000000..7f5bfa57 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AnimationFrameScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AnimationFrameScheduler.js","sources":["../../src/internal/scheduler/AnimationFrameScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAAkD;AAElD;IAA6C,2CAAc;IAA3D;;IA2BA,CAAC;IA1BQ,uCAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,8BAAC;AAAD,CAAC,AA3BD,CAA6C,+BAAc,GA2B1D;AA3BY,0DAAuB"} diff --git a/node_modules/rxjs/internal/scheduler/AsapAction.d.ts b/node_modules/rxjs/internal/scheduler/AsapAction.d.ts new file mode 100644 index 00000000..cafb969d --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsapAction.d.ts @@ -0,0 +1,15 @@ +import { AsyncAction } from './AsyncAction'; +import { AsapScheduler } from './AsapScheduler'; +import { SchedulerAction } from '../types'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class AsapAction extends AsyncAction { + protected scheduler: AsapScheduler; + protected work: (this: SchedulerAction, state?: T) => void; + constructor(scheduler: AsapScheduler, work: (this: SchedulerAction, state?: T) => void); + protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay?: number): any; + protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay?: number): any; +} diff --git a/node_modules/rxjs/internal/scheduler/AsapAction.js b/node_modules/rxjs/internal/scheduler/AsapAction.js new file mode 100644 index 00000000..021809ec --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsapAction.js @@ -0,0 +1,48 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Immediate_1 = require("../util/Immediate"); +var AsyncAction_1 = require("./AsyncAction"); +var AsapAction = (function (_super) { + __extends(AsapAction, _super); + function AsapAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = Immediate_1.Immediate.setImmediate(scheduler.flush.bind(scheduler, null))); + }; + AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + Immediate_1.Immediate.clearImmediate(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AsapAction; +}(AsyncAction_1.AsyncAction)); +exports.AsapAction = AsapAction; +//# sourceMappingURL=AsapAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/AsapAction.js.map b/node_modules/rxjs/internal/scheduler/AsapAction.js.map new file mode 100644 index 00000000..2c8f1304 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsapAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapAction.js","sources":["../../src/internal/scheduler/AsapAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,6CAA4C;AAQ5C;IAAmC,8BAAc;IAE/C,oBAAsB,SAAwB,EACxB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAe;QACxB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAES,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAE5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;YAC/B,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAI7B,OAAO,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,qBAAS,CAAC,YAAY,CACzE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CACtC,CAAC,CAAC;IACL,CAAC;IACS,mCAAc,GAAxB,UAAyB,SAAwB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI5E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAID,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,qBAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;SACjC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,iBAAC;AAAD,CAAC,AAtCD,CAAmC,yBAAW,GAsC7C;AAtCY,gCAAU"} diff --git a/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts b/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts new file mode 100644 index 00000000..708c6c95 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsapScheduler.d.ts @@ -0,0 +1,5 @@ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; +export declare class AsapScheduler extends AsyncScheduler { + flush(action?: AsyncAction): void; +} diff --git a/node_modules/rxjs/internal/scheduler/AsapScheduler.js b/node_modules/rxjs/internal/scheduler/AsapScheduler.js new file mode 100644 index 00000000..b66249d4 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsapScheduler.js @@ -0,0 +1,46 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncScheduler_1 = require("./AsyncScheduler"); +var AsapScheduler = (function (_super) { + __extends(AsapScheduler, _super); + function AsapScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AsapScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler; +}(AsyncScheduler_1.AsyncScheduler)); +exports.AsapScheduler = AsapScheduler; +//# sourceMappingURL=AsapScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map b/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map new file mode 100644 index 00000000..193eb051 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsapScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsapScheduler.js","sources":["../../src/internal/scheduler/AsapScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,mDAAkD;AAElD;IAAmC,iCAAc;IAAjD;;IA2BA,CAAC;IA1BQ,6BAAK,GAAZ,UAAa,MAAyB;QAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAEpB,IAAA,sBAAO,CAAS;QACvB,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAEnC,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;QAExD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBACpD,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AA3BD,CAAmC,+BAAc,GA2BhD;AA3BY,sCAAa"} diff --git a/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts b/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts new file mode 100644 index 00000000..b4f5d0c1 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsyncAction.d.ts @@ -0,0 +1,29 @@ +import { Action } from './Action'; +import { SchedulerAction } from '../types'; +import { Subscription } from '../Subscription'; +import { AsyncScheduler } from './AsyncScheduler'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class AsyncAction extends Action { + protected scheduler: AsyncScheduler; + protected work: (this: SchedulerAction, state?: T) => void; + id: any; + state: T; + delay: number; + protected pending: boolean; + constructor(scheduler: AsyncScheduler, work: (this: SchedulerAction, state?: T) => void); + schedule(state?: T, delay?: number): Subscription; + protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay?: number): any; + protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay?: number): any; + /** + * Immediately executes this action and the `work` it contains. + * @return {any} + */ + execute(state: T, delay: number): any; + protected _execute(state: T, delay: number): any; + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe(): void; +} diff --git a/node_modules/rxjs/internal/scheduler/AsyncAction.js b/node_modules/rxjs/internal/scheduler/AsyncAction.js new file mode 100644 index 00000000..123d7074 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsyncAction.js @@ -0,0 +1,102 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Action_1 = require("./Action"); +var AsyncAction = (function (_super) { + __extends(AsyncAction, _super); + function AsyncAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; + return _this; + } + AsyncAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (this.closed) { + return this; + } + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; + }; + AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + return setInterval(scheduler.flush.bind(scheduler, this), delay); + }; + AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if (delay !== null && this.delay === delay && this.pending === false) { + return id; + } + clearInterval(id); + return undefined; + }; + AsyncAction.prototype.execute = function (state, delay) { + if (this.closed) { + return new Error('executing a cancelled action'); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } + else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + }; + AsyncAction.prototype._execute = function (state, delay) { + var errored = false; + var errorValue = undefined; + try { + this.work(state); + } + catch (e) { + errored = true; + errorValue = !!e && e || new Error(e); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + }; + AsyncAction.prototype._unsubscribe = function () { + var id = this.id; + var scheduler = this.scheduler; + var actions = scheduler.actions; + var index = actions.indexOf(this); + this.work = null; + this.state = null; + this.pending = false; + this.scheduler = null; + if (index !== -1) { + actions.splice(index, 1); + } + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + this.delay = null; + }; + return AsyncAction; +}(Action_1.Action)); +exports.AsyncAction = AsyncAction; +//# sourceMappingURL=AsyncAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/AsyncAction.js.map b/node_modules/rxjs/internal/scheduler/AsyncAction.js.map new file mode 100644 index 00000000..65b5273a --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsyncAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncAction.js","sources":["../../src/internal/scheduler/AsyncAction.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts b/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts new file mode 100644 index 00000000..950adeaf --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts @@ -0,0 +1,27 @@ +import { Scheduler } from '../Scheduler'; +import { Action } from './Action'; +import { AsyncAction } from './AsyncAction'; +import { SchedulerAction } from '../types'; +import { Subscription } from '../Subscription'; +export declare class AsyncScheduler extends Scheduler { + static delegate?: Scheduler; + actions: Array>; + /** + * A flag to indicate whether the Scheduler is currently executing a batch of + * queued actions. + * @type {boolean} + * @deprecated internal use only + */ + active: boolean; + /** + * An internal ID used to track the latest asynchronous task such as those + * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and + * others. + * @type {any} + * @deprecated internal use only + */ + scheduled: any; + constructor(SchedulerAction: typeof Action, now?: () => number); + schedule(work: (this: SchedulerAction, state?: T) => void, delay?: number, state?: T): Subscription; + flush(action: AsyncAction): void; +} diff --git a/node_modules/rxjs/internal/scheduler/AsyncScheduler.js b/node_modules/rxjs/internal/scheduler/AsyncScheduler.js new file mode 100644 index 00000000..10e9a12d --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsyncScheduler.js @@ -0,0 +1,67 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Scheduler_1 = require("../Scheduler"); +var AsyncScheduler = (function (_super) { + __extends(AsyncScheduler, _super); + function AsyncScheduler(SchedulerAction, now) { + if (now === void 0) { now = Scheduler_1.Scheduler.now; } + var _this = _super.call(this, SchedulerAction, function () { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { + return AsyncScheduler.delegate.now(); + } + else { + return now(); + } + }) || this; + _this.actions = []; + _this.active = false; + _this.scheduled = undefined; + return _this; + } + AsyncScheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { delay = 0; } + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.schedule(work, delay, state); + } + else { + return _super.prototype.schedule.call(this, work, delay, state); + } + }; + AsyncScheduler.prototype.flush = function (action) { + var actions = this.actions; + if (this.active) { + actions.push(action); + return; + } + var error; + this.active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); + this.active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + return AsyncScheduler; +}(Scheduler_1.Scheduler)); +exports.AsyncScheduler = AsyncScheduler; +//# sourceMappingURL=AsyncScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map b/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map new file mode 100644 index 00000000..c7100749 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/AsyncScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AsyncScheduler.js","sources":["../../src/internal/scheduler/AsyncScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0CAAyC;AAMzC;IAAoC,kCAAS;IAmB3C,wBAAY,eAA8B,EAC9B,GAAiC;QAAjC,oBAAA,EAAA,MAAoB,qBAAS,CAAC,GAAG;QAD7C,YAEE,kBAAM,eAAe,EAAE;YACrB,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,KAAI,EAAE;gBAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;aACtC;iBAAM;gBACL,OAAO,GAAG,EAAE,CAAC;aACd;QACH,CAAC,CAAC,SACH;QA1BM,aAAO,GAA4B,EAAE,CAAC;QAOtC,YAAM,GAAY,KAAK,CAAC;QAQxB,eAAS,GAAQ,SAAS,CAAC;;IAWlC,CAAC;IAEM,iCAAQ,GAAf,UAAmB,IAAmD,EAAE,KAAiB,EAAE,KAAS;QAA5B,sBAAA,EAAA,SAAiB;QACvF,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,IAAI,EAAE;YAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACL,OAAO,iBAAM,QAAQ,YAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3C;IACH,CAAC;IAEM,8BAAK,GAAZ,UAAa,MAAwB;QAE5B,IAAA,sBAAO,CAAS;QAEvB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO;SACR;QAED,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,GAAG;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM;aACP;SACF,QAAQ,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;QAEnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAjED,CAAoC,qBAAS,GAiE5C;AAjEY,wCAAc"} diff --git a/node_modules/rxjs/internal/scheduler/QueueAction.d.ts b/node_modules/rxjs/internal/scheduler/QueueAction.d.ts new file mode 100644 index 00000000..e263c308 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/QueueAction.d.ts @@ -0,0 +1,17 @@ +import { AsyncAction } from './AsyncAction'; +import { Subscription } from '../Subscription'; +import { QueueScheduler } from './QueueScheduler'; +import { SchedulerAction } from '../types'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class QueueAction extends AsyncAction { + protected scheduler: QueueScheduler; + protected work: (this: SchedulerAction, state?: T) => void; + constructor(scheduler: QueueScheduler, work: (this: SchedulerAction, state?: T) => void); + schedule(state?: T, delay?: number): Subscription; + execute(state: T, delay: number): any; + protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay?: number): any; +} diff --git a/node_modules/rxjs/internal/scheduler/QueueAction.js b/node_modules/rxjs/internal/scheduler/QueueAction.js new file mode 100644 index 00000000..ded9219a --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/QueueAction.js @@ -0,0 +1,50 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncAction_1 = require("./AsyncAction"); +var QueueAction = (function (_super) { + __extends(QueueAction, _super); + function QueueAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + QueueAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + }; + QueueAction.prototype.execute = function (state, delay) { + return (delay > 0 || this.closed) ? + _super.prototype.execute.call(this, state, delay) : + this._execute(state, delay); + }; + QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + return scheduler.flush(this); + }; + return QueueAction; +}(AsyncAction_1.AsyncAction)); +exports.QueueAction = QueueAction; +//# sourceMappingURL=QueueAction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/QueueAction.js.map b/node_modules/rxjs/internal/scheduler/QueueAction.js.map new file mode 100644 index 00000000..bf808e1d --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/QueueAction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueAction.js","sources":["../../src/internal/scheduler/QueueAction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA4C;AAU5C;IAAoC,+BAAc;IAEhD,qBAAsB,SAAyB,EACzB,IAAmD;QADzE,YAEE,kBAAM,SAAS,EAAE,IAAI,CAAC,SACvB;QAHqB,eAAS,GAAT,SAAS,CAAgB;QACzB,UAAI,GAAJ,IAAI,CAA+C;;IAEzE,CAAC;IAEM,8BAAQ,GAAf,UAAgB,KAAS,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAC1C,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,iBAAM,QAAQ,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,6BAAO,GAAd,UAAe,KAAQ,EAAE,KAAa;QACpC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjC,iBAAM,OAAO,YAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;IACjC,CAAC;IAES,oCAAc,GAAxB,UAAyB,SAAyB,EAAE,EAAQ,EAAE,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAI7E,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;YACvE,OAAO,iBAAM,cAAc,YAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACH,kBAAC;AAAD,CAAC,AAjCD,CAAoC,yBAAW,GAiC9C;AAjCY,kCAAW"} diff --git a/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts b/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts new file mode 100644 index 00000000..bdde0f64 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/QueueScheduler.d.ts @@ -0,0 +1,3 @@ +import { AsyncScheduler } from './AsyncScheduler'; +export declare class QueueScheduler extends AsyncScheduler { +} diff --git a/node_modules/rxjs/internal/scheduler/QueueScheduler.js b/node_modules/rxjs/internal/scheduler/QueueScheduler.js new file mode 100644 index 00000000..e831d1d5 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/QueueScheduler.js @@ -0,0 +1,25 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncScheduler_1 = require("./AsyncScheduler"); +var QueueScheduler = (function (_super) { + __extends(QueueScheduler, _super); + function QueueScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + return QueueScheduler; +}(AsyncScheduler_1.AsyncScheduler)); +exports.QueueScheduler = QueueScheduler; +//# sourceMappingURL=QueueScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map b/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map new file mode 100644 index 00000000..618ceecd --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/QueueScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"QueueScheduler.js","sources":["../../src/internal/scheduler/QueueScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mDAAkD;AAElD;IAAoC,kCAAc;IAAlD;;IACA,CAAC;IAAD,qBAAC;AAAD,CAAC,AADD,CAAoC,+BAAc,GACjD;AADY,wCAAc"} diff --git a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts new file mode 100644 index 00000000..ef062b1f --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.d.ts @@ -0,0 +1,33 @@ +import { AsyncAction } from './AsyncAction'; +import { Subscription } from '../Subscription'; +import { AsyncScheduler } from './AsyncScheduler'; +import { SchedulerAction } from '../types'; +export declare class VirtualTimeScheduler extends AsyncScheduler { + maxFrames: number; + protected static frameTimeFactor: number; + frame: number; + index: number; + constructor(SchedulerAction?: typeof AsyncAction, maxFrames?: number); + /** + * Prompt the Scheduler to execute all of its queued actions, therefore + * clearing its queue. + * @return {void} + */ + flush(): void; +} +/** + * We need this JSDoc comment for affecting ESDoc. + * @nodoc + */ +export declare class VirtualAction extends AsyncAction { + protected scheduler: VirtualTimeScheduler; + protected work: (this: SchedulerAction, state?: T) => void; + protected index: number; + protected active: boolean; + constructor(scheduler: VirtualTimeScheduler, work: (this: SchedulerAction, state?: T) => void, index?: number); + schedule(state?: T, delay?: number): Subscription; + protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): any; + protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): any; + protected _execute(state: T, delay: number): any; + static sortActions(a: VirtualAction, b: VirtualAction): 1 | 0 | -1; +} diff --git a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js new file mode 100644 index 00000000..fcf7da0d --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js @@ -0,0 +1,111 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncAction_1 = require("./AsyncAction"); +var AsyncScheduler_1 = require("./AsyncScheduler"); +var VirtualTimeScheduler = (function (_super) { + __extends(VirtualTimeScheduler, _super); + function VirtualTimeScheduler(SchedulerAction, maxFrames) { + if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; } + if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; } + var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; + } + VirtualTimeScheduler.prototype.flush = function () { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error, action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + }; + VirtualTimeScheduler.frameTimeFactor = 10; + return VirtualTimeScheduler; +}(AsyncScheduler_1.AsyncScheduler)); +exports.VirtualTimeScheduler = VirtualTimeScheduler; +var VirtualAction = (function (_super) { + __extends(VirtualAction, _super); + function VirtualAction(scheduler, work, index) { + if (index === void 0) { index = scheduler.index += 1; } + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; + return _this; + } + VirtualAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { delay = 0; } + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); + } + this.active = false; + var action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + }; + VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction.sortActions); + return true; + }; + VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { delay = 0; } + return undefined; + }; + VirtualAction.prototype._execute = function (state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } + }; + VirtualAction.sortActions = function (a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } + else if (a.index > b.index) { + return 1; + } + else { + return -1; + } + } + else if (a.delay > b.delay) { + return 1; + } + else { + return -1; + } + }; + return VirtualAction; +}(AsyncAction_1.AsyncAction)); +exports.VirtualAction = VirtualAction; +//# sourceMappingURL=VirtualTimeScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map new file mode 100644 index 00000000..2f0c0f03 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/VirtualTimeScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"VirtualTimeScheduler.js","sources":["../../src/internal/scheduler/VirtualTimeScheduler.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/internal/scheduler/animationFrame.d.ts b/node_modules/rxjs/internal/scheduler/animationFrame.d.ts new file mode 100644 index 00000000..2a30509a --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/animationFrame.d.ts @@ -0,0 +1,37 @@ +import { AnimationFrameScheduler } from './AnimationFrameScheduler'; +/** + * + * Animation Frame Scheduler + * + * Perform task when `window.requestAnimationFrame` would fire + * + * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler + * behaviour. + * + * Without delay, `animationFrame` scheduler can be used to create smooth browser animations. + * It makes sure scheduled task will happen just before next browser content repaint, + * thus performing animations as efficiently as possible. + * + * ## Example + * Schedule div height animation + * ```ts + * // html:
+ * import { animationFrameScheduler } from 'rxjs'; + * + * const div = document.querySelector('div'); + * + * animationFrameScheduler.schedule(function(height) { + * div.style.height = height + "px"; + * + * this.schedule(height + 1); // `this` references currently executing Action, + * // which we reschedule with new state + * }, 0, 0); + * + * // You will see a div element growing in height + * ``` + */ +export declare const animationFrameScheduler: AnimationFrameScheduler; +/** + * @deprecated renamed. Use {@link animationFrameScheduler} + */ +export declare const animationFrame: AnimationFrameScheduler; diff --git a/node_modules/rxjs/internal/scheduler/animationFrame.js b/node_modules/rxjs/internal/scheduler/animationFrame.js new file mode 100644 index 00000000..1ca4bbcf --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/animationFrame.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var AnimationFrameAction_1 = require("./AnimationFrameAction"); +var AnimationFrameScheduler_1 = require("./AnimationFrameScheduler"); +exports.animationFrameScheduler = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction); +exports.animationFrame = exports.animationFrameScheduler; +//# sourceMappingURL=animationFrame.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/animationFrame.js.map b/node_modules/rxjs/internal/scheduler/animationFrame.js.map new file mode 100644 index 00000000..fb902f3b --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/animationFrame.js.map @@ -0,0 +1 @@ +{"version":3,"file":"animationFrame.js","sources":["../../src/internal/scheduler/animationFrame.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AAC9D,qEAAoE;AAiCvD,QAAA,uBAAuB,GAAG,IAAI,iDAAuB,CAAC,2CAAoB,CAAC,CAAC;AAK5E,QAAA,cAAc,GAAG,+BAAuB,CAAC"} diff --git a/node_modules/rxjs/internal/scheduler/asap.d.ts b/node_modules/rxjs/internal/scheduler/asap.d.ts new file mode 100644 index 00000000..3f577387 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/asap.d.ts @@ -0,0 +1,40 @@ +import { AsapScheduler } from './AsapScheduler'; +/** + * + * Asap Scheduler + * + * Perform task as fast as it can be performed asynchronously + * + * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task + * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing + * code to end and then it will try to execute given task as fast as possible. + * + * `asap` scheduler will do its best to minimize time between end of currently executing code + * and start of scheduled task. This makes it best candidate for performing so called "deferring". + * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves + * some (although minimal) unwanted delay. + * + * Note that using `asap` scheduler does not necessarily mean that your task will be first to process + * after currently executing code. In particular, if some task was also scheduled with `asap` before, + * that task will execute first. That being said, if you need to schedule task asynchronously, but + * as soon as possible, `asap` scheduler is your best bet. + * + * ## Example + * Compare async and asap scheduler< + * ```ts + * import { asapScheduler, asyncScheduler } from 'rxjs'; + * + * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first... + * asapScheduler.schedule(() => console.log('asap')); + * + * // Logs: + * // "asap" + * // "async" + * // ... but 'asap' goes first! + * ``` + */ +export declare const asapScheduler: AsapScheduler; +/** + * @deprecated renamed. Use {@link asapScheduler} + */ +export declare const asap: AsapScheduler; diff --git a/node_modules/rxjs/internal/scheduler/asap.js b/node_modules/rxjs/internal/scheduler/asap.js new file mode 100644 index 00000000..6f5aafb0 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/asap.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var AsapAction_1 = require("./AsapAction"); +var AsapScheduler_1 = require("./AsapScheduler"); +exports.asapScheduler = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction); +exports.asap = exports.asapScheduler; +//# sourceMappingURL=asap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/asap.js.map b/node_modules/rxjs/internal/scheduler/asap.js.map new file mode 100644 index 00000000..bae853b3 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/asap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"asap.js","sources":["../../src/internal/scheduler/asap.ts"],"names":[],"mappings":";;AAAA,2CAA0C;AAC1C,iDAAgD;AAoCnC,QAAA,aAAa,GAAG,IAAI,6BAAa,CAAC,uBAAU,CAAC,CAAC;AAK9C,QAAA,IAAI,GAAG,qBAAa,CAAC"} diff --git a/node_modules/rxjs/internal/scheduler/async.d.ts b/node_modules/rxjs/internal/scheduler/async.d.ts new file mode 100644 index 00000000..23ccea68 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/async.d.ts @@ -0,0 +1,52 @@ +import { AsyncScheduler } from './AsyncScheduler'; +/** + * + * Async Scheduler + * + * Schedule task as if you used setTimeout(task, duration) + * + * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript + * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating + * in intervals. + * + * If you just want to "defer" task, that is to perform it right after currently + * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`), + * better choice will be the {@link asapScheduler} scheduler. + * + * ## Examples + * Use async scheduler to delay task + * ```ts + * import { asyncScheduler } from 'rxjs'; + * + * const task = () => console.log('it works!'); + * + * asyncScheduler.schedule(task, 2000); + * + * // After 2 seconds logs: + * // "it works!" + * ``` + * + * Use async scheduler to repeat task in intervals + * ```ts + * import { asyncScheduler } from 'rxjs'; + * + * function task(state) { + * console.log(state); + * this.schedule(state + 1, 1000); // `this` references currently executing Action, + * // which we reschedule with new state and delay + * } + * + * asyncScheduler.schedule(task, 3000, 0); + * + * // Logs: + * // 0 after 3s + * // 1 after 4s + * // 2 after 5s + * // 3 after 6s + * ``` + */ +export declare const asyncScheduler: AsyncScheduler; +/** + * @deprecated renamed. Use {@link asyncScheduler} + */ +export declare const async: AsyncScheduler; diff --git a/node_modules/rxjs/internal/scheduler/async.js b/node_modules/rxjs/internal/scheduler/async.js new file mode 100644 index 00000000..26536277 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/async.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var AsyncAction_1 = require("./AsyncAction"); +var AsyncScheduler_1 = require("./AsyncScheduler"); +exports.asyncScheduler = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction); +exports.async = exports.asyncScheduler; +//# sourceMappingURL=async.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/async.js.map b/node_modules/rxjs/internal/scheduler/async.js.map new file mode 100644 index 00000000..96608c34 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/async.js.map @@ -0,0 +1 @@ +{"version":3,"file":"async.js","sources":["../../src/internal/scheduler/async.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAC5C,mDAAkD;AAgDrC,QAAA,cAAc,GAAG,IAAI,+BAAc,CAAC,yBAAW,CAAC,CAAC;AAKjD,QAAA,KAAK,GAAG,sBAAc,CAAC"} diff --git a/node_modules/rxjs/internal/scheduler/queue.d.ts b/node_modules/rxjs/internal/scheduler/queue.d.ts new file mode 100644 index 00000000..b19ffa65 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/queue.d.ts @@ -0,0 +1,68 @@ +import { QueueScheduler } from './QueueScheduler'; +/** + * + * Queue Scheduler + * + * Put every next task on a queue, instead of executing it immediately + * + * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler. + * + * When used without delay, it schedules given task synchronously - executes it right when + * it is scheduled. However when called recursively, that is when inside the scheduled task, + * another task is scheduled with queue scheduler, instead of executing immediately as well, + * that task will be put on a queue and wait for current one to finish. + * + * This means that when you execute task with `queue` scheduler, you are sure it will end + * before any other task scheduled with that scheduler will start. + * + * ## Examples + * Schedule recursively first, then do something + * ```ts + * import { queueScheduler } from 'rxjs'; + * + * queueScheduler.schedule(() => { + * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue + * + * console.log('first'); + * }); + * + * // Logs: + * // "first" + * // "second" + * ``` + * + * Reschedule itself recursively + * ```ts + * import { queueScheduler } from 'rxjs'; + * + * queueScheduler.schedule(function(state) { + * if (state !== 0) { + * console.log('before', state); + * this.schedule(state - 1); // `this` references currently executing Action, + * // which we reschedule with new state + * console.log('after', state); + * } + * }, 0, 3); + * + * // In scheduler that runs recursively, you would expect: + * // "before", 3 + * // "before", 2 + * // "before", 1 + * // "after", 1 + * // "after", 2 + * // "after", 3 + * + * // But with queue it logs: + * // "before", 3 + * // "after", 3 + * // "before", 2 + * // "after", 2 + * // "before", 1 + * // "after", 1 + * ``` + */ +export declare const queueScheduler: QueueScheduler; +/** + * @deprecated renamed. Use {@link queueScheduler} + */ +export declare const queue: QueueScheduler; diff --git a/node_modules/rxjs/internal/scheduler/queue.js b/node_modules/rxjs/internal/scheduler/queue.js new file mode 100644 index 00000000..6344c359 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/queue.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var QueueAction_1 = require("./QueueAction"); +var QueueScheduler_1 = require("./QueueScheduler"); +exports.queueScheduler = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction); +exports.queue = exports.queueScheduler; +//# sourceMappingURL=queue.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/scheduler/queue.js.map b/node_modules/rxjs/internal/scheduler/queue.js.map new file mode 100644 index 00000000..2f8cb583 --- /dev/null +++ b/node_modules/rxjs/internal/scheduler/queue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue.js","sources":["../../src/internal/scheduler/queue.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAC5C,mDAAkD;AAgErC,QAAA,cAAc,GAAG,IAAI,+BAAc,CAAC,yBAAW,CAAC,CAAC;AAKjD,QAAA,KAAK,GAAG,sBAAc,CAAC"} diff --git a/node_modules/rxjs/internal/symbol/iterator.d.ts b/node_modules/rxjs/internal/symbol/iterator.d.ts new file mode 100644 index 00000000..edce2b4f --- /dev/null +++ b/node_modules/rxjs/internal/symbol/iterator.d.ts @@ -0,0 +1,6 @@ +export declare function getSymbolIterator(): symbol; +export declare const iterator: symbol; +/** + * @deprecated use {@link iterator} instead + */ +export declare const $$iterator: symbol; diff --git a/node_modules/rxjs/internal/symbol/iterator.js b/node_modules/rxjs/internal/symbol/iterator.js new file mode 100644 index 00000000..3855934b --- /dev/null +++ b/node_modules/rxjs/internal/symbol/iterator.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function getSymbolIterator() { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator'; + } + return Symbol.iterator; +} +exports.getSymbolIterator = getSymbolIterator; +exports.iterator = getSymbolIterator(); +exports.$$iterator = exports.iterator; +//# sourceMappingURL=iterator.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/symbol/iterator.js.map b/node_modules/rxjs/internal/symbol/iterator.js.map new file mode 100644 index 00000000..c140dc4e --- /dev/null +++ b/node_modules/rxjs/internal/symbol/iterator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iterator.js","sources":["../../src/internal/symbol/iterator.ts"],"names":[],"mappings":";;AAAA,SAAgB,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpD,OAAO,YAAmB,CAAC;KAC5B;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAND,8CAMC;AAEY,QAAA,QAAQ,GAAG,iBAAiB,EAAE,CAAC;AAK/B,QAAA,UAAU,GAAG,gBAAQ,CAAC"} diff --git a/node_modules/rxjs/internal/symbol/observable.d.ts b/node_modules/rxjs/internal/symbol/observable.d.ts new file mode 100644 index 00000000..7d270165 --- /dev/null +++ b/node_modules/rxjs/internal/symbol/observable.d.ts @@ -0,0 +1,8 @@ +/** Symbol.observable addition */ +declare global { + interface SymbolConstructor { + readonly observable: symbol; + } +} +/** Symbol.observable or a string "@@observable". Used for interop */ +export declare const observable: string | symbol; diff --git a/node_modules/rxjs/internal/symbol/observable.js b/node_modules/rxjs/internal/symbol/observable.js new file mode 100644 index 00000000..ddf72dea --- /dev/null +++ b/node_modules/rxjs/internal/symbol/observable.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })(); +//# sourceMappingURL=observable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/symbol/observable.js.map b/node_modules/rxjs/internal/symbol/observable.js.map new file mode 100644 index 00000000..49e2047c --- /dev/null +++ b/node_modules/rxjs/internal/symbol/observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observable.js","sources":["../../src/internal/symbol/observable.ts"],"names":[],"mappings":";;AAUa,QAAA,UAAU,GAAG,CAAC,cAAM,OAAA,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,EAAnE,CAAmE,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts b/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts new file mode 100644 index 00000000..20da948c --- /dev/null +++ b/node_modules/rxjs/internal/symbol/rxSubscriber.d.ts @@ -0,0 +1,6 @@ +/** @deprecated do not use, this is no longer checked by RxJS internals */ +export declare const rxSubscriber: string | symbol; +/** + * @deprecated use rxSubscriber instead + */ +export declare const $$rxSubscriber: string | symbol; diff --git a/node_modules/rxjs/internal/symbol/rxSubscriber.js b/node_modules/rxjs/internal/symbol/rxSubscriber.js new file mode 100644 index 00000000..dfddcd1b --- /dev/null +++ b/node_modules/rxjs/internal/symbol/rxSubscriber.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.rxSubscriber = (function () { + return typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random(); +})(); +exports.$$rxSubscriber = exports.rxSubscriber; +//# sourceMappingURL=rxSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/symbol/rxSubscriber.js.map b/node_modules/rxjs/internal/symbol/rxSubscriber.js.map new file mode 100644 index 00000000..f7399955 --- /dev/null +++ b/node_modules/rxjs/internal/symbol/rxSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rxSubscriber.js","sources":["../../src/internal/symbol/rxSubscriber.ts"],"names":[],"mappings":";;AACa,QAAA,YAAY,GAAG,CAAC;IAC3B,OAAA,OAAO,MAAM,KAAK,UAAU;QAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE;AAFrC,CAEqC,CAAC,EAAE,CAAC;AAK9B,QAAA,cAAc,GAAG,oBAAY,CAAC"} diff --git a/node_modules/rxjs/internal/testing/ColdObservable.d.ts b/node_modules/rxjs/internal/testing/ColdObservable.d.ts new file mode 100644 index 00000000..b1d4a76e --- /dev/null +++ b/node_modules/rxjs/internal/testing/ColdObservable.d.ts @@ -0,0 +1,20 @@ +import { Observable } from '../Observable'; +import { Scheduler } from '../Scheduler'; +import { TestMessage } from './TestMessage'; +import { SubscriptionLog } from './SubscriptionLog'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { Subscriber } from '../Subscriber'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class ColdObservable extends Observable implements SubscriptionLoggable { + messages: TestMessage[]; + subscriptions: SubscriptionLog[]; + scheduler: Scheduler; + logSubscribedFrame: () => number; + logUnsubscribedFrame: (index: number) => void; + constructor(messages: TestMessage[], scheduler: Scheduler); + scheduleMessages(subscriber: Subscriber): void; +} diff --git a/node_modules/rxjs/internal/testing/ColdObservable.js b/node_modules/rxjs/internal/testing/ColdObservable.js new file mode 100644 index 00000000..7829307f --- /dev/null +++ b/node_modules/rxjs/internal/testing/ColdObservable.js @@ -0,0 +1,52 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var Subscription_1 = require("../Subscription"); +var SubscriptionLoggable_1 = require("./SubscriptionLoggable"); +var applyMixins_1 = require("../util/applyMixins"); +var ColdObservable = (function (_super) { + __extends(ColdObservable, _super); + function ColdObservable(messages, scheduler) { + var _this = _super.call(this, function (subscriber) { + var observable = this; + var index = observable.logSubscribedFrame(); + var subscription = new Subscription_1.Subscription(); + subscription.add(new Subscription_1.Subscription(function () { + observable.logUnsubscribedFrame(index); + })); + observable.scheduleMessages(subscriber); + return subscription; + }) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + ColdObservable.prototype.scheduleMessages = function (subscriber) { + var messagesLength = this.messages.length; + for (var i = 0; i < messagesLength; i++) { + var message = this.messages[i]; + subscriber.add(this.scheduler.schedule(function (_a) { + var message = _a.message, subscriber = _a.subscriber; + message.notification.observe(subscriber); + }, message.frame, { message: message, subscriber: subscriber })); + } + }; + return ColdObservable; +}(Observable_1.Observable)); +exports.ColdObservable = ColdObservable; +applyMixins_1.applyMixins(ColdObservable, [SubscriptionLoggable_1.SubscriptionLoggable]); +//# sourceMappingURL=ColdObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/testing/ColdObservable.js.map b/node_modules/rxjs/internal/testing/ColdObservable.js.map new file mode 100644 index 00000000..9de5e97b --- /dev/null +++ b/node_modules/rxjs/internal/testing/ColdObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColdObservable.js","sources":["../../src/internal/testing/ColdObservable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,gDAA+C;AAI/C,+DAA8D;AAC9D,mDAAkD;AAQlD;IAAuC,kCAAa;IAMlD,wBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,kBAAM,UAA+B,UAA2B;YAC9D,IAAM,UAAU,GAAsB,IAAW,CAAC;YAClD,IAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CAAC,IAAI,2BAAY,CAAC;gBAChC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,SAEH;QAbkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAiB3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAED,yCAAgB,GAAhB,UAAiB,UAA2B;QAC1C,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAC,EAAuB;oBAArB,oBAAO,EAAE,0BAAU;gBAAS,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,EAChG,OAAO,CAAC,KAAK,EACb,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,CAAC,CAC3B,CAAC;SACH;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAhCD,CAAuC,uBAAU,GAgChD;AAhCY,wCAAc;AAiC3B,yBAAW,CAAC,cAAc,EAAE,CAAC,2CAAoB,CAAC,CAAC,CAAC"} diff --git a/node_modules/rxjs/internal/testing/HotObservable.d.ts b/node_modules/rxjs/internal/testing/HotObservable.d.ts new file mode 100644 index 00000000..083d11ee --- /dev/null +++ b/node_modules/rxjs/internal/testing/HotObservable.d.ts @@ -0,0 +1,23 @@ +import { Subject } from '../Subject'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Scheduler } from '../Scheduler'; +import { TestMessage } from './TestMessage'; +import { SubscriptionLog } from './SubscriptionLog'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export declare class HotObservable extends Subject implements SubscriptionLoggable { + messages: TestMessage[]; + subscriptions: SubscriptionLog[]; + scheduler: Scheduler; + logSubscribedFrame: () => number; + logUnsubscribedFrame: (index: number) => void; + constructor(messages: TestMessage[], scheduler: Scheduler); + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription; + setup(): void; +} diff --git a/node_modules/rxjs/internal/testing/HotObservable.js b/node_modules/rxjs/internal/testing/HotObservable.js new file mode 100644 index 00000000..f387cefa --- /dev/null +++ b/node_modules/rxjs/internal/testing/HotObservable.js @@ -0,0 +1,53 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Subject_1 = require("../Subject"); +var Subscription_1 = require("../Subscription"); +var SubscriptionLoggable_1 = require("./SubscriptionLoggable"); +var applyMixins_1 = require("../util/applyMixins"); +var HotObservable = (function (_super) { + __extends(HotObservable, _super); + function HotObservable(messages, scheduler) { + var _this = _super.call(this) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + HotObservable.prototype._subscribe = function (subscriber) { + var subject = this; + var index = subject.logSubscribedFrame(); + var subscription = new Subscription_1.Subscription(); + subscription.add(new Subscription_1.Subscription(function () { + subject.logUnsubscribedFrame(index); + })); + subscription.add(_super.prototype._subscribe.call(this, subscriber)); + return subscription; + }; + HotObservable.prototype.setup = function () { + var subject = this; + var messagesLength = subject.messages.length; + for (var i = 0; i < messagesLength; i++) { + (function () { + var message = subject.messages[i]; + subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame); + })(); + } + }; + return HotObservable; +}(Subject_1.Subject)); +exports.HotObservable = HotObservable; +applyMixins_1.applyMixins(HotObservable, [SubscriptionLoggable_1.SubscriptionLoggable]); +//# sourceMappingURL=HotObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/testing/HotObservable.js.map b/node_modules/rxjs/internal/testing/HotObservable.js.map new file mode 100644 index 00000000..12c26c70 --- /dev/null +++ b/node_modules/rxjs/internal/testing/HotObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HotObservable.js","sources":["../../src/internal/testing/HotObservable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAqC;AAErC,gDAA+C;AAI/C,+DAA8D;AAC9D,mDAAkD;AAOlD;IAAsC,iCAAU;IAM9C,uBAAmB,QAAuB,EAC9B,SAAoB;QADhC,YAEE,iBAAO,SAER;QAJkB,cAAQ,GAAR,QAAQ,CAAe;QALnC,mBAAa,GAAsB,EAAE,CAAC;QAQ3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAGD,kCAAU,GAAV,UAAW,UAA2B;QACpC,IAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,IAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CAAC,IAAI,2BAAY,CAAC;YAChC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;QACJ,YAAY,CAAC,GAAG,CAAC,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6BAAK,GAAL;QACE,IAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,CAAC;gBACC,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAElC,OAAO,CAAC,SAAS,CAAC,QAAQ,CACxB,cAAQ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,OAAO,CAAC,KAAK,CACd,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;SACN;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAvCD,CAAsC,iBAAO,GAuC5C;AAvCY,sCAAa;AAwC1B,yBAAW,CAAC,aAAa,EAAE,CAAC,2CAAoB,CAAC,CAAC,CAAC"} diff --git a/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts b/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts new file mode 100644 index 00000000..73b23b48 --- /dev/null +++ b/node_modules/rxjs/internal/testing/SubscriptionLog.d.ts @@ -0,0 +1,5 @@ +export declare class SubscriptionLog { + subscribedFrame: number; + unsubscribedFrame: number; + constructor(subscribedFrame: number, unsubscribedFrame?: number); +} diff --git a/node_modules/rxjs/internal/testing/SubscriptionLog.js b/node_modules/rxjs/internal/testing/SubscriptionLog.js new file mode 100644 index 00000000..718a1dd1 --- /dev/null +++ b/node_modules/rxjs/internal/testing/SubscriptionLog.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var SubscriptionLog = (function () { + function SubscriptionLog(subscribedFrame, unsubscribedFrame) { + if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; } + this.subscribedFrame = subscribedFrame; + this.unsubscribedFrame = unsubscribedFrame; + } + return SubscriptionLog; +}()); +exports.SubscriptionLog = SubscriptionLog; +//# sourceMappingURL=SubscriptionLog.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/testing/SubscriptionLog.js.map b/node_modules/rxjs/internal/testing/SubscriptionLog.js.map new file mode 100644 index 00000000..cbffe539 --- /dev/null +++ b/node_modules/rxjs/internal/testing/SubscriptionLog.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLog.js","sources":["../../src/internal/testing/SubscriptionLog.ts"],"names":[],"mappings":";;AAAA;IACE,yBAAmB,eAAuB,EACvB,iBAAoD;QAApD,kCAAA,EAAA,oBAA4B,MAAM,CAAC,iBAAiB;QADpD,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmC;IACvE,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,0CAAe"} diff --git a/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts b/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts new file mode 100644 index 00000000..cc954349 --- /dev/null +++ b/node_modules/rxjs/internal/testing/SubscriptionLoggable.d.ts @@ -0,0 +1,8 @@ +import { Scheduler } from '../Scheduler'; +import { SubscriptionLog } from './SubscriptionLog'; +export declare class SubscriptionLoggable { + subscriptions: SubscriptionLog[]; + scheduler: Scheduler; + logSubscribedFrame(): number; + logUnsubscribedFrame(index: number): void; +} diff --git a/node_modules/rxjs/internal/testing/SubscriptionLoggable.js b/node_modules/rxjs/internal/testing/SubscriptionLoggable.js new file mode 100644 index 00000000..fd8597fa --- /dev/null +++ b/node_modules/rxjs/internal/testing/SubscriptionLoggable.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var SubscriptionLog_1 = require("./SubscriptionLog"); +var SubscriptionLoggable = (function () { + function SubscriptionLoggable() { + this.subscriptions = []; + } + SubscriptionLoggable.prototype.logSubscribedFrame = function () { + this.subscriptions.push(new SubscriptionLog_1.SubscriptionLog(this.scheduler.now())); + return this.subscriptions.length - 1; + }; + SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) { + var subscriptionLogs = this.subscriptions; + var oldSubscriptionLog = subscriptionLogs[index]; + subscriptionLogs[index] = new SubscriptionLog_1.SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now()); + }; + return SubscriptionLoggable; +}()); +exports.SubscriptionLoggable = SubscriptionLoggable; +//# sourceMappingURL=SubscriptionLoggable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map b/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map new file mode 100644 index 00000000..c3f47346 --- /dev/null +++ b/node_modules/rxjs/internal/testing/SubscriptionLoggable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLoggable.js","sources":["../../src/internal/testing/SubscriptionLoggable.ts"],"names":[],"mappings":";;AACA,qDAAoD;AAEpD;IAAA;QACS,kBAAa,GAAsB,EAAE,CAAC;IAgB/C,CAAC;IAbC,iDAAkB,GAAlB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,iCAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,mDAAoB,GAApB,UAAqB,KAAa;QAChC,IAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,iCAAe,CAC3C,kBAAkB,CAAC,eAAe,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,AAjBD,IAiBC;AAjBY,oDAAoB"} diff --git a/node_modules/rxjs/internal/testing/TestMessage.d.ts b/node_modules/rxjs/internal/testing/TestMessage.d.ts new file mode 100644 index 00000000..1181d608 --- /dev/null +++ b/node_modules/rxjs/internal/testing/TestMessage.d.ts @@ -0,0 +1,6 @@ +import { Notification } from '../Notification'; +export interface TestMessage { + frame: number; + notification: Notification; + isGhost?: boolean; +} diff --git a/node_modules/rxjs/internal/testing/TestMessage.js b/node_modules/rxjs/internal/testing/TestMessage.js new file mode 100644 index 00000000..7bb158d2 --- /dev/null +++ b/node_modules/rxjs/internal/testing/TestMessage.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=TestMessage.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/testing/TestMessage.js.map b/node_modules/rxjs/internal/testing/TestMessage.js.map new file mode 100644 index 00000000..ae60ae30 --- /dev/null +++ b/node_modules/rxjs/internal/testing/TestMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestMessage.js","sources":["../../src/internal/testing/TestMessage.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/internal/testing/TestScheduler.d.ts b/node_modules/rxjs/internal/testing/TestScheduler.d.ts new file mode 100644 index 00000000..a2a40c3c --- /dev/null +++ b/node_modules/rxjs/internal/testing/TestScheduler.d.ts @@ -0,0 +1,53 @@ +import { Observable } from '../Observable'; +import { ColdObservable } from './ColdObservable'; +import { HotObservable } from './HotObservable'; +import { TestMessage } from './TestMessage'; +import { SubscriptionLog } from './SubscriptionLog'; +import { VirtualTimeScheduler } from '../scheduler/VirtualTimeScheduler'; +export interface RunHelpers { + cold: typeof TestScheduler.prototype.createColdObservable; + hot: typeof TestScheduler.prototype.createHotObservable; + flush: typeof TestScheduler.prototype.flush; + expectObservable: typeof TestScheduler.prototype.expectObservable; + expectSubscriptions: typeof TestScheduler.prototype.expectSubscriptions; +} +export declare type observableToBeFn = (marbles: string, values?: any, errorValue?: any) => void; +export declare type subscriptionLogsToBeFn = (marbles: string | string[]) => void; +export declare class TestScheduler extends VirtualTimeScheduler { + assertDeepEqual: (actual: any, expected: any) => boolean | void; + readonly hotObservables: HotObservable[]; + readonly coldObservables: ColdObservable[]; + private flushTests; + private runMode; + constructor(assertDeepEqual: (actual: any, expected: any) => boolean | void); + createTime(marbles: string): number; + /** + * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided. + * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used. + * @param error The error to use for the `#` marble (if present). + */ + createColdObservable(marbles: string, values?: { + [marble: string]: T; + }, error?: any): ColdObservable; + /** + * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided. + * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used. + * @param error The error to use for the `#` marble (if present). + */ + createHotObservable(marbles: string, values?: { + [marble: string]: T; + }, error?: any): HotObservable; + private materializeInnerObservable; + expectObservable(observable: Observable, subscriptionMarbles?: string): ({ + toBe: observableToBeFn; + }); + expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): ({ + toBe: subscriptionLogsToBeFn; + }); + flush(): void; + /** @nocollapse */ + static parseMarblesAsSubscriptions(marbles: string, runMode?: boolean): SubscriptionLog; + /** @nocollapse */ + static parseMarbles(marbles: string, values?: any, errorValue?: any, materializeInnerObservables?: boolean, runMode?: boolean): TestMessage[]; + run(callback: (helpers: RunHelpers) => T): T; +} diff --git a/node_modules/rxjs/internal/testing/TestScheduler.js b/node_modules/rxjs/internal/testing/TestScheduler.js new file mode 100644 index 00000000..6bf509ce --- /dev/null +++ b/node_modules/rxjs/internal/testing/TestScheduler.js @@ -0,0 +1,364 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + } + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +var Notification_1 = require("../Notification"); +var ColdObservable_1 = require("./ColdObservable"); +var HotObservable_1 = require("./HotObservable"); +var SubscriptionLog_1 = require("./SubscriptionLog"); +var VirtualTimeScheduler_1 = require("../scheduler/VirtualTimeScheduler"); +var AsyncScheduler_1 = require("../scheduler/AsyncScheduler"); +var defaultMaxFrame = 750; +var TestScheduler = (function (_super) { + __extends(TestScheduler, _super); + function TestScheduler(assertDeepEqual) { + var _this = _super.call(this, VirtualTimeScheduler_1.VirtualAction, defaultMaxFrame) || this; + _this.assertDeepEqual = assertDeepEqual; + _this.hotObservables = []; + _this.coldObservables = []; + _this.flushTests = []; + _this.runMode = false; + return _this; + } + TestScheduler.prototype.createTime = function (marbles) { + var indexOf = marbles.indexOf('|'); + if (indexOf === -1) { + throw new Error('marble diagram for time should have a completion marker "|"'); + } + return indexOf * TestScheduler.frameTimeFactor; + }; + TestScheduler.prototype.createColdObservable = function (marbles, values, error) { + if (marbles.indexOf('^') !== -1) { + throw new Error('cold observable cannot have subscription offset "^"'); + } + if (marbles.indexOf('!') !== -1) { + throw new Error('cold observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var cold = new ColdObservable_1.ColdObservable(messages, this); + this.coldObservables.push(cold); + return cold; + }; + TestScheduler.prototype.createHotObservable = function (marbles, values, error) { + if (marbles.indexOf('!') !== -1) { + throw new Error('hot observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var subject = new HotObservable_1.HotObservable(messages, this); + this.hotObservables.push(subject); + return subject; + }; + TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) { + var _this = this; + var messages = []; + observable.subscribe(function (value) { + messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createNext(value) }); + }, function (err) { + messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createError(err) }); + }, function () { + messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createComplete() }); + }); + return messages; + }; + TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) { + var _this = this; + if (subscriptionMarbles === void 0) { subscriptionMarbles = null; } + var actual = []; + var flushTest = { actual: actual, ready: false }; + var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode); + var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ? + 0 : subscriptionParsed.subscribedFrame; + var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame; + var subscription; + this.schedule(function () { + subscription = observable.subscribe(function (x) { + var value = x; + if (x instanceof Observable_1.Observable) { + value = _this.materializeInnerObservable(value, _this.frame); + } + actual.push({ frame: _this.frame, notification: Notification_1.Notification.createNext(value) }); + }, function (err) { + actual.push({ frame: _this.frame, notification: Notification_1.Notification.createError(err) }); + }, function () { + actual.push({ frame: _this.frame, notification: Notification_1.Notification.createComplete() }); + }); + }, subscriptionFrame); + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame); + } + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marbles, values, errorValue) { + flushTest.ready = true; + flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode); + } + }; + }; + TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) { + var flushTest = { actual: actualSubscriptionLogs, ready: false }; + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marbles) { + var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles; + flushTest.ready = true; + flushTest.expected = marblesArray.map(function (marbles) { + return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode); + }); + } + }; + }; + TestScheduler.prototype.flush = function () { + var _this = this; + var hotObservables = this.hotObservables; + while (hotObservables.length > 0) { + hotObservables.shift().setup(); + } + _super.prototype.flush.call(this); + this.flushTests = this.flushTests.filter(function (test) { + if (test.ready) { + _this.assertDeepEqual(test.actual, test.expected); + return false; + } + return true; + }); + }; + TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) { + var _this = this; + if (runMode === void 0) { runMode = false; } + if (typeof marbles !== 'string') { + return new SubscriptionLog_1.SubscriptionLog(Number.POSITIVE_INFINITY); + } + var len = marbles.length; + var groupStart = -1; + var subscriptionFrame = Number.POSITIVE_INFINITY; + var unsubscriptionFrame = Number.POSITIVE_INFINITY; + var frame = 0; + var _loop_1 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '^': + if (subscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + subscriptionFrame = groupStart > -1 ? groupStart : frame; + advanceFrameBy(1); + break; + case '!': + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + unsubscriptionFrame = groupStart > -1 ? groupStart : frame; + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + var buffer = marbles.slice(i); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_1.frameTimeFactor); + break; + } + } + } + throw new Error('there can only be \'^\' and \'!\' markers in a ' + + 'subscription marble diagram. Found instead \'' + c + '\'.'); + } + frame = nextFrame; + out_i_1 = i; + }; + var this_1 = this, out_i_1; + for (var i = 0; i < len; i++) { + _loop_1(i); + i = out_i_1; + } + if (unsubscriptionFrame < 0) { + return new SubscriptionLog_1.SubscriptionLog(subscriptionFrame); + } + else { + return new SubscriptionLog_1.SubscriptionLog(subscriptionFrame, unsubscriptionFrame); + } + }; + TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) { + var _this = this; + if (materializeInnerObservables === void 0) { materializeInnerObservables = false; } + if (runMode === void 0) { runMode = false; } + if (marbles.indexOf('!') !== -1) { + throw new Error('conventional marble diagrams cannot have the ' + + 'unsubscription marker "!"'); + } + var len = marbles.length; + var testMessages = []; + var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^'); + var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor); + var getValue = typeof values !== 'object' ? + function (x) { return x; } : + function (x) { + if (materializeInnerObservables && values[x] instanceof ColdObservable_1.ColdObservable) { + return values[x].messages; + } + return values[x]; + }; + var groupStart = -1; + var _loop_2 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var notification = void 0; + var c = marbles[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '|': + notification = Notification_1.Notification.createComplete(); + advanceFrameBy(1); + break; + case '^': + advanceFrameBy(1); + break; + case '#': + notification = Notification_1.Notification.createError(errorValue || 'error'); + advanceFrameBy(1); + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || marbles[i - 1] === ' ') { + var buffer = marbles.slice(i); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_2.frameTimeFactor); + break; + } + } + } + notification = Notification_1.Notification.createNext(getValue(c)); + advanceFrameBy(1); + break; + } + if (notification) { + testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification }); + } + frame = nextFrame; + out_i_2 = i; + }; + var this_2 = this, out_i_2; + for (var i = 0; i < len; i++) { + _loop_2(i); + i = out_i_2; + } + return testMessages; + }; + TestScheduler.prototype.run = function (callback) { + var prevFrameTimeFactor = TestScheduler.frameTimeFactor; + var prevMaxFrames = this.maxFrames; + TestScheduler.frameTimeFactor = 1; + this.maxFrames = Number.POSITIVE_INFINITY; + this.runMode = true; + AsyncScheduler_1.AsyncScheduler.delegate = this; + var helpers = { + cold: this.createColdObservable.bind(this), + hot: this.createHotObservable.bind(this), + flush: this.flush.bind(this), + expectObservable: this.expectObservable.bind(this), + expectSubscriptions: this.expectSubscriptions.bind(this), + }; + try { + var ret = callback(helpers); + this.flush(); + return ret; + } + finally { + TestScheduler.frameTimeFactor = prevFrameTimeFactor; + this.maxFrames = prevMaxFrames; + this.runMode = false; + AsyncScheduler_1.AsyncScheduler.delegate = undefined; + } + }; + return TestScheduler; +}(VirtualTimeScheduler_1.VirtualTimeScheduler)); +exports.TestScheduler = TestScheduler; +//# sourceMappingURL=TestScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/testing/TestScheduler.js.map b/node_modules/rxjs/internal/testing/TestScheduler.js.map new file mode 100644 index 00000000..4fe018c5 --- /dev/null +++ b/node_modules/rxjs/internal/testing/TestScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestScheduler.js","sources":["../../src/internal/testing/TestScheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,gDAA+C;AAC/C,mDAAkD;AAClD,iDAAgD;AAEhD,qDAAoD;AAEpD,0EAAwF;AACxF,8DAA6D;AAE7D,IAAM,eAAe,GAAW,GAAG,CAAC;AAmBpC;IAAmC,iCAAoB;IAMrD,uBAAmB,eAA+D;QAAlF,YACE,kBAAM,oCAAa,EAAE,eAAe,CAAC,SACtC;QAFkB,qBAAe,GAAf,eAAe,CAAgD;QALlE,oBAAc,GAAyB,EAAE,CAAC;QAC1C,qBAAe,GAA0B,EAAE,CAAC;QACpD,gBAAU,GAAoB,EAAE,CAAC;QACjC,aAAO,GAAG,KAAK,CAAC;;IAIxB,CAAC;IAED,kCAAU,GAAV,UAAW,OAAe;QACxB,IAAM,OAAO,GAAW,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAChF;QACD,OAAO,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC;IACjD,CAAC;IAOD,4CAAoB,GAApB,UAAiC,OAAe,EAAE,MAAgC,EAAE,KAAW;QAC7F,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC1E;QACD,IAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7F,IAAM,IAAI,GAAG,IAAI,+BAAc,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,2CAAmB,GAAnB,UAAgC,OAAe,EAAE,MAAgC,EAAE,KAAW;QAC5F,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;QACD,IAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7F,IAAM,OAAO,GAAG,IAAI,6BAAa,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,kDAA0B,GAAlC,UAAmC,UAA2B,EAC3B,UAAkB;QADrD,iBAWC;QATC,IAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,UAAU,CAAC,SAAS,CAAC,UAAC,KAAK;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,GAAG,UAAU,EAAE,YAAY,EAAE,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC,EAAE,UAAC,GAAG;YACL,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,GAAG,UAAU,EAAE,YAAY,EAAE,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC,EAAE;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,GAAG,UAAU,EAAE,YAAY,EAAE,2BAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wCAAgB,GAAhB,UAAiB,UAA2B,EAC3B,mBAAkC;QADnD,iBAsCC;QArCgB,oCAAA,EAAA,0BAAkC;QACjD,IAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,IAAM,SAAS,GAAkB,EAAE,MAAM,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1D,IAAM,kBAAkB,GAAG,aAAa,CAAC,2BAA2B,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxG,IAAM,iBAAiB,GAAG,kBAAkB,CAAC,eAAe,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC;QACzC,IAAM,mBAAmB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC;QACjE,IAAI,YAA0B,CAAC;QAE/B,IAAI,CAAC,QAAQ,CAAC;YACZ,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,UAAA,CAAC;gBACnC,IAAI,KAAK,GAAG,CAAC,CAAC;gBAEd,IAAI,CAAC,YAAY,uBAAU,EAAE;oBAC3B,KAAK,GAAG,KAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;iBAC5D;gBACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,EAAE,YAAY,EAAE,2BAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC,EAAE,UAAC,GAAG;gBACL,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,EAAE,YAAY,EAAE,2BAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,EAAE;gBACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAI,CAAC,KAAK,EAAE,YAAY,EAAE,2BAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAEtB,IAAI,mBAAmB,KAAK,MAAM,CAAC,iBAAiB,EAAE;YACpD,IAAI,CAAC,QAAQ,CAAC,cAAM,OAAA,YAAY,CAAC,WAAW,EAAE,EAA1B,CAA0B,EAAE,mBAAmB,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,IAAA,sBAAO,CAAU;QAEzB,OAAO;YACL,IAAI,YAAC,OAAe,EAAE,MAAY,EAAE,UAAgB;gBAClD,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;gBACvB,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9F,CAAC;SACF,CAAC;IACJ,CAAC;IAED,2CAAmB,GAAnB,UAAoB,sBAAyC;QAC3D,IAAM,SAAS,GAAkB,EAAE,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAClF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,IAAA,sBAAO,CAAU;QACzB,OAAO;YACL,IAAI,YAAC,OAA0B;gBAC7B,IAAM,YAAY,GAAa,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnF,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;gBACvB,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAA,OAAO;oBAC3C,OAAA,aAAa,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC;gBAA3D,CAA2D,CAC5D,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,6BAAK,GAAL;QAAA,iBAeC;QAdC,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,cAAc,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC;SAChC;QAED,iBAAM,KAAK,WAAE,CAAC;QAEd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,IAAI;YAC3C,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjD,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAGM,yCAA2B,GAAlC,UAAmC,OAAe,EAAE,OAAe;QAAnE,iBA+FC;QA/FmD,wBAAA,EAAA,eAAe;QACjE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,IAAI,iCAAe,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACtD;QACD,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;QACpB,IAAI,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACjD,IAAI,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,CAAC;gCAEL,CAAC;YACR,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAM,cAAc,GAAG,UAAC,KAAa;gBACnC,SAAS,IAAI,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC;YAC5C,CAAC,CAAC;YACF,IAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,QAAQ,CAAC,EAAE;gBACT,KAAK,GAAG;oBAEN,IAAI,CAAC,OAAO,EAAE;wBACZ,cAAc,CAAC,CAAC,CAAC,CAAC;qBACnB;oBACD,MAAM;gBACR,KAAK,GAAG;oBACN,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,UAAU,GAAG,KAAK,CAAC;oBACnB,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,UAAU,GAAG,CAAC,CAAC,CAAC;oBAChB,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,iBAAiB,KAAK,MAAM,CAAC,iBAAiB,EAAE;wBAClD,MAAM,IAAI,KAAK,CAAC,+CAA+C;4BAC7D,qDAAqD,CAAC,CAAC;qBAC1D;oBACD,iBAAiB,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;oBACzD,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,mBAAmB,KAAK,MAAM,CAAC,iBAAiB,EAAE;wBACpD,MAAM,IAAI,KAAK,CAAC,+CAA+C;4BAC7D,qDAAqD,CAAC,CAAC;qBAC1D;oBACD,mBAAmB,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC3D,MAAM;gBACR;oBAEE,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;wBAGjC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;4BACrC,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAChC,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;4BAC9D,IAAI,KAAK,EAAE;gCACT,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gCACzB,IAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gCACtC,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCACtB,IAAI,YAAY,SAAQ,CAAC;gCAEzB,QAAQ,IAAI,EAAE;oCACZ,KAAK,IAAI;wCACP,YAAY,GAAG,QAAQ,CAAC;wCACxB,MAAM;oCACR,KAAK,GAAG;wCACN,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;wCAC/B,MAAM;oCACR,KAAK,GAAG;wCACN,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;wCACpC,MAAM;oCACR;wCACE,MAAM;iCACT;gCAED,cAAc,CAAC,YAAY,GAAG,OAAK,eAAe,CAAC,CAAC;gCACpD,MAAM;6BACP;yBACF;qBACF;oBAED,MAAM,IAAI,KAAK,CAAC,iDAAiD;wBAC/D,+CAA+C,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;aAClE;YAED,KAAK,GAAG,SAAS,CAAC;sBA7EX,CAAC;;;QAAV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;oBAAnB,CAAC;YAAD,CAAC;SA8ET;QAED,IAAI,mBAAmB,GAAG,CAAC,EAAE;YAC3B,OAAO,IAAI,iCAAe,CAAC,iBAAiB,CAAC,CAAC;SAC/C;aAAM;YACL,OAAO,IAAI,iCAAe,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;SACpE;IACH,CAAC;IAGM,0BAAY,GAAnB,UAAoB,OAAe,EACf,MAAY,EACZ,UAAgB,EAChB,2BAA4C,EAC5C,OAAe;QAJnC,iBA2GC;QAxGmB,4CAAA,EAAA,mCAA4C;QAC5C,wBAAA,EAAA,eAAe;QACjC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,+CAA+C;gBAC7D,2BAA2B,CAAC,CAAC;SAChC;QACD,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,IAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,IAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5F,IAAI,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrE,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC;YAC3C,UAAC,CAAM,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC;YACf,UAAC,CAAM;gBAEL,IAAI,2BAA2B,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,+BAAc,EAAE;oBACtE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3B;gBACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,CAAC;QACJ,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;gCAEX,CAAC;YACR,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAM,cAAc,GAAG,UAAC,KAAa;gBACnC,SAAS,IAAI,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC;YAC5C,CAAC,CAAC;YAEF,IAAI,YAAY,SAAmB,CAAC;YACpC,IAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,QAAQ,CAAC,EAAE;gBACT,KAAK,GAAG;oBAEN,IAAI,CAAC,OAAO,EAAE;wBACZ,cAAc,CAAC,CAAC,CAAC,CAAC;qBACnB;oBACD,MAAM;gBACR,KAAK,GAAG;oBACN,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,UAAU,GAAG,KAAK,CAAC;oBACnB,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,UAAU,GAAG,CAAC,CAAC,CAAC;oBAChB,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,YAAY,GAAG,2BAAY,CAAC,cAAc,EAAE,CAAC;oBAC7C,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,GAAG;oBACN,YAAY,GAAG,2BAAY,CAAC,WAAW,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;oBAC/D,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR;oBAEE,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;wBAGjC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;4BACrC,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAChC,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;4BAC9D,IAAI,KAAK,EAAE;gCACT,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gCACzB,IAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gCACtC,IAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCACtB,IAAI,YAAY,SAAQ,CAAC;gCAEzB,QAAQ,IAAI,EAAE;oCACZ,KAAK,IAAI;wCACP,YAAY,GAAG,QAAQ,CAAC;wCACxB,MAAM;oCACR,KAAK,GAAG;wCACN,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC;wCAC/B,MAAM;oCACR,KAAK,GAAG;wCACN,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;wCACpC,MAAM;oCACR;wCACE,MAAM;iCACT;gCAED,cAAc,CAAC,YAAY,GAAG,OAAK,eAAe,CAAC,CAAC;gCACpD,MAAM;6BACP;yBACF;qBACF;oBAED,YAAY,GAAG,2BAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,cAAc,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;aACT;YAED,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,cAAA,EAAE,CAAC,CAAC;aAClF;YAED,KAAK,GAAG,SAAS,CAAC;sBAhFX,CAAC;;;QAAV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;oBAAnB,CAAC;YAAD,CAAC;SAiFT;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,2BAAG,GAAH,UAAO,QAAoC;QACzC,IAAM,mBAAmB,GAAG,aAAa,CAAC,eAAe,CAAC;QAC1D,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QAErC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,+BAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE/B,IAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAClD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;SACzD,CAAC;QACF,IAAI;YACF,IAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,GAAG,CAAC;SACZ;gBAAS;YACR,aAAa,CAAC,eAAe,GAAG,mBAAmB,CAAC;YACpD,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,+BAAc,CAAC,QAAQ,GAAG,SAAS,CAAC;SACrC;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAnXD,CAAmC,2CAAoB,GAmXtD;AAnXY,sCAAa"} diff --git a/node_modules/rxjs/internal/types.d.ts b/node_modules/rxjs/internal/types.d.ts new file mode 100644 index 00000000..145d2d58 --- /dev/null +++ b/node_modules/rxjs/internal/types.d.ts @@ -0,0 +1,82 @@ +import { Observable } from './Observable'; +import { Subscription } from './Subscription'; +/** OPERATOR INTERFACES */ +export interface UnaryFunction { + (source: T): R; +} +export interface OperatorFunction extends UnaryFunction, Observable> { +} +export declare type FactoryOrValue = T | (() => T); +export interface MonoTypeOperatorFunction extends OperatorFunction { +} +export interface Timestamp { + value: T; + timestamp: number; +} +export interface TimeInterval { + value: T; + interval: number; +} +/** SUBSCRIPTION INTERFACES */ +export interface Unsubscribable { + unsubscribe(): void; +} +export declare type TeardownLogic = Unsubscribable | Function | void; +export interface SubscriptionLike extends Unsubscribable { + unsubscribe(): void; + readonly closed: boolean; +} +export declare type SubscribableOrPromise = Subscribable | Subscribable | PromiseLike | InteropObservable; +/** OBSERVABLE INTERFACES */ +export interface Subscribable { + subscribe(observer?: PartialObserver): Unsubscribable; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable; + /** @deprecated Use an observer instead of an error callback */ + subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable; + subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable; +} +export declare type ObservableInput = SubscribableOrPromise | ArrayLike | Iterable; +/** @deprecated use {@link InteropObservable } */ +export declare type ObservableLike = InteropObservable; +export declare type InteropObservable = { + [Symbol.observable]: () => Subscribable; +}; +/** OBSERVER INTERFACES */ +export interface NextObserver { + closed?: boolean; + next: (value: T) => void; + error?: (err: any) => void; + complete?: () => void; +} +export interface ErrorObserver { + closed?: boolean; + next?: (value: T) => void; + error: (err: any) => void; + complete?: () => void; +} +export interface CompletionObserver { + closed?: boolean; + next?: (value: T) => void; + error?: (err: any) => void; + complete: () => void; +} +export declare type PartialObserver = NextObserver | ErrorObserver | CompletionObserver; +export interface Observer { + closed?: boolean; + next: (value: T) => void; + error: (err: any) => void; + complete: () => void; +} +/** SCHEDULER INTERFACES */ +export interface SchedulerLike { + now(): number; + schedule(work: (this: SchedulerAction, state?: T) => void, delay?: number, state?: T): Subscription; +} +export interface SchedulerAction extends Subscription { + schedule(state?: T, delay?: number): Subscription; +} +export declare type ObservedValueOf = O extends ObservableInput ? T : never; +export declare type ObservedValuesFromArray = X extends Array> ? T : never; diff --git a/node_modules/rxjs/internal/types.js b/node_modules/rxjs/internal/types.js new file mode 100644 index 00000000..11e638d1 --- /dev/null +++ b/node_modules/rxjs/internal/types.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/types.js.map b/node_modules/rxjs/internal/types.js.map new file mode 100644 index 00000000..92d44830 --- /dev/null +++ b/node_modules/rxjs/internal/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sources":["../src/internal/types.ts"],"names":[],"mappings":""} diff --git a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts new file mode 100644 index 00000000..830b291b --- /dev/null +++ b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.d.ts @@ -0,0 +1,16 @@ +export interface ArgumentOutOfRangeError extends Error { +} +export interface ArgumentOutOfRangeErrorCtor { + new (): ArgumentOutOfRangeError; +} +/** + * An error thrown when an element was queried at a certain index of an + * Observable, but no such index or position exists in that sequence. + * + * @see {@link elementAt} + * @see {@link take} + * @see {@link takeLast} + * + * @class ArgumentOutOfRangeError + */ +export declare const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor; diff --git a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js new file mode 100644 index 00000000..121be11f --- /dev/null +++ b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ArgumentOutOfRangeErrorImpl = (function () { + function ArgumentOutOfRangeErrorImpl() { + Error.call(this); + this.message = 'argument out of range'; + this.name = 'ArgumentOutOfRangeError'; + return this; + } + ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype); + return ArgumentOutOfRangeErrorImpl; +})(); +exports.ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl; +//# sourceMappingURL=ArgumentOutOfRangeError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map new file mode 100644 index 00000000..1beb7e55 --- /dev/null +++ b/node_modules/rxjs/internal/util/ArgumentOutOfRangeError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../../src/internal/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":";;AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAYQ,QAAA,uBAAuB,GAAgC,2BAAkC,CAAC"} diff --git a/node_modules/rxjs/internal/util/EmptyError.d.ts b/node_modules/rxjs/internal/util/EmptyError.d.ts new file mode 100644 index 00000000..f3b499e0 --- /dev/null +++ b/node_modules/rxjs/internal/util/EmptyError.d.ts @@ -0,0 +1,16 @@ +export interface EmptyError extends Error { +} +export interface EmptyErrorCtor { + new (): EmptyError; +} +/** + * An error thrown when an Observable or a sequence was queried but has no + * elements. + * + * @see {@link first} + * @see {@link last} + * @see {@link single} + * + * @class EmptyError + */ +export declare const EmptyError: EmptyErrorCtor; diff --git a/node_modules/rxjs/internal/util/EmptyError.js b/node_modules/rxjs/internal/util/EmptyError.js new file mode 100644 index 00000000..1824ca8f --- /dev/null +++ b/node_modules/rxjs/internal/util/EmptyError.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var EmptyErrorImpl = (function () { + function EmptyErrorImpl() { + Error.call(this); + this.message = 'no elements in sequence'; + this.name = 'EmptyError'; + return this; + } + EmptyErrorImpl.prototype = Object.create(Error.prototype); + return EmptyErrorImpl; +})(); +exports.EmptyError = EmptyErrorImpl; +//# sourceMappingURL=EmptyError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/EmptyError.js.map b/node_modules/rxjs/internal/util/EmptyError.js.map new file mode 100644 index 00000000..3cdbb229 --- /dev/null +++ b/node_modules/rxjs/internal/util/EmptyError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EmptyError.js","sources":["../../src/internal/util/EmptyError.ts"],"names":[],"mappings":";;AAOA,IAAM,cAAc,GAAG,CAAC;IACtB,SAAS,cAAc;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1D,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC,EAAE,CAAC;AAYQ,QAAA,UAAU,GAAmB,cAAqB,CAAC"} diff --git a/node_modules/rxjs/internal/util/Immediate.d.ts b/node_modules/rxjs/internal/util/Immediate.d.ts new file mode 100644 index 00000000..87fc247c --- /dev/null +++ b/node_modules/rxjs/internal/util/Immediate.d.ts @@ -0,0 +1,13 @@ +/** + * Helper functions to schedule and unschedule microtasks. + */ +export declare const Immediate: { + setImmediate(cb: () => void): number; + clearImmediate(handle: number): void; +}; +/** + * Used for internal testing purposes only. Do not export from library. + */ +export declare const TestTools: { + pending(): number; +}; diff --git a/node_modules/rxjs/internal/util/Immediate.js b/node_modules/rxjs/internal/util/Immediate.js new file mode 100644 index 00000000..02ccec28 --- /dev/null +++ b/node_modules/rxjs/internal/util/Immediate.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var nextHandle = 1; +var RESOLVED = (function () { return Promise.resolve(); })(); +var activeHandles = {}; +function findAndClearHandle(handle) { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; +} +exports.Immediate = { + setImmediate: function (cb) { + var handle = nextHandle++; + activeHandles[handle] = true; + RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); }); + return handle; + }, + clearImmediate: function (handle) { + findAndClearHandle(handle); + }, +}; +exports.TestTools = { + pending: function () { + return Object.keys(activeHandles).length; + } +}; +//# sourceMappingURL=Immediate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/Immediate.js.map b/node_modules/rxjs/internal/util/Immediate.js.map new file mode 100644 index 00000000..659e1454 --- /dev/null +++ b/node_modules/rxjs/internal/util/Immediate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Immediate.js","sources":["../../src/internal/util/Immediate.ts"],"names":[],"mappings":";;AAAA,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,IAAM,QAAQ,GAAG,CAAC,cAAM,OAAA,OAAO,CAAC,OAAO,EAAE,EAAjB,CAAiB,CAAC,EAAE,CAAC;AAC7C,IAAM,aAAa,GAA2B,EAAE,CAAC;AAOjD,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,MAAM,IAAI,aAAa,EAAE;QAC3B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAKY,QAAA,SAAS,GAAG;IACvB,YAAY,EAAZ,UAAa,EAAc;QACzB,IAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,cAAM,OAAA,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAlC,CAAkC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,EAAd,UAAe,MAAc;QAC3B,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAKW,QAAA,SAAS,GAAG;IACvB,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC;CACF,CAAC"} diff --git a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts new file mode 100644 index 00000000..b94c1519 --- /dev/null +++ b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.d.ts @@ -0,0 +1,15 @@ +export interface ObjectUnsubscribedError extends Error { +} +export interface ObjectUnsubscribedErrorCtor { + new (): ObjectUnsubscribedError; +} +/** + * An error thrown when an action is invalid because the object has been + * unsubscribed. + * + * @see {@link Subject} + * @see {@link BehaviorSubject} + * + * @class ObjectUnsubscribedError + */ +export declare const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor; diff --git a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js new file mode 100644 index 00000000..3838aa4d --- /dev/null +++ b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var ObjectUnsubscribedErrorImpl = (function () { + function ObjectUnsubscribedErrorImpl() { + Error.call(this); + this.message = 'object unsubscribed'; + this.name = 'ObjectUnsubscribedError'; + return this; + } + ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype); + return ObjectUnsubscribedErrorImpl; +})(); +exports.ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; +//# sourceMappingURL=ObjectUnsubscribedError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map new file mode 100644 index 00000000..c9125baa --- /dev/null +++ b/node_modules/rxjs/internal/util/ObjectUnsubscribedError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../../src/internal/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":";;AAOA,IAAM,2BAA2B,GAAG,CAAC;IACnC,SAAS,2BAA2B;QAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEvE,OAAO,2BAA2B,CAAC;AACrC,CAAC,CAAC,EAAE,CAAC;AAWQ,QAAA,uBAAuB,GAAgC,2BAAkC,CAAC"} diff --git a/node_modules/rxjs/internal/util/TimeoutError.d.ts b/node_modules/rxjs/internal/util/TimeoutError.d.ts new file mode 100644 index 00000000..e42ab0d9 --- /dev/null +++ b/node_modules/rxjs/internal/util/TimeoutError.d.ts @@ -0,0 +1,13 @@ +export interface TimeoutError extends Error { +} +export interface TimeoutErrorCtor { + new (): TimeoutError; +} +/** + * An error thrown when duetime elapses. + * + * @see {@link operators/timeout} + * + * @class TimeoutError + */ +export declare const TimeoutError: TimeoutErrorCtor; diff --git a/node_modules/rxjs/internal/util/TimeoutError.js b/node_modules/rxjs/internal/util/TimeoutError.js new file mode 100644 index 00000000..3127694f --- /dev/null +++ b/node_modules/rxjs/internal/util/TimeoutError.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var TimeoutErrorImpl = (function () { + function TimeoutErrorImpl() { + Error.call(this); + this.message = 'Timeout has occurred'; + this.name = 'TimeoutError'; + return this; + } + TimeoutErrorImpl.prototype = Object.create(Error.prototype); + return TimeoutErrorImpl; +})(); +exports.TimeoutError = TimeoutErrorImpl; +//# sourceMappingURL=TimeoutError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/TimeoutError.js.map b/node_modules/rxjs/internal/util/TimeoutError.js.map new file mode 100644 index 00000000..ff382471 --- /dev/null +++ b/node_modules/rxjs/internal/util/TimeoutError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TimeoutError.js","sources":["../../src/internal/util/TimeoutError.ts"],"names":[],"mappings":";;AAOA,IAAM,gBAAgB,GAAG,CAAC;IACxB,SAAS,gBAAgB;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC,EAAE,CAAC;AASQ,QAAA,YAAY,GAAqB,gBAAuB,CAAC"} diff --git a/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts b/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts new file mode 100644 index 00000000..c10c91ce --- /dev/null +++ b/node_modules/rxjs/internal/util/UnsubscriptionError.d.ts @@ -0,0 +1,11 @@ +export interface UnsubscriptionError extends Error { + readonly errors: any[]; +} +export interface UnsubscriptionErrorCtor { + new (errors: any[]): UnsubscriptionError; +} +/** + * An error thrown when one or more errors have occurred during the + * `unsubscribe` of a {@link Subscription}. + */ +export declare const UnsubscriptionError: UnsubscriptionErrorCtor; diff --git a/node_modules/rxjs/internal/util/UnsubscriptionError.js b/node_modules/rxjs/internal/util/UnsubscriptionError.js new file mode 100644 index 00000000..34c8c271 --- /dev/null +++ b/node_modules/rxjs/internal/util/UnsubscriptionError.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var UnsubscriptionErrorImpl = (function () { + function UnsubscriptionErrorImpl(errors) { + Error.call(this); + this.message = errors ? + errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : ''; + this.name = 'UnsubscriptionError'; + this.errors = errors; + return this; + } + UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype); + return UnsubscriptionErrorImpl; +})(); +exports.UnsubscriptionError = UnsubscriptionErrorImpl; +//# sourceMappingURL=UnsubscriptionError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/UnsubscriptionError.js.map b/node_modules/rxjs/internal/util/UnsubscriptionError.js.map new file mode 100644 index 00000000..6d0170b7 --- /dev/null +++ b/node_modules/rxjs/internal/util/UnsubscriptionError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsubscriptionError.js","sources":["../../src/internal/util/UnsubscriptionError.ts"],"names":[],"mappings":";;AAQA,IAAM,uBAAuB,GAAG,CAAC;IAC/B,SAAS,uBAAuB,CAAY,MAAa;QACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,iDACpB,MAAM,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAG,CAAC,GAAG,CAAC,UAAK,GAAG,CAAC,QAAQ,EAAI,EAA7B,CAA6B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnE,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC,EAAE,CAAC;AAMQ,QAAA,mBAAmB,GAA4B,uBAA8B,CAAC"} diff --git a/node_modules/rxjs/internal/util/applyMixins.d.ts b/node_modules/rxjs/internal/util/applyMixins.d.ts new file mode 100644 index 00000000..aaefdf39 --- /dev/null +++ b/node_modules/rxjs/internal/util/applyMixins.d.ts @@ -0,0 +1 @@ +export declare function applyMixins(derivedCtor: any, baseCtors: any[]): void; diff --git a/node_modules/rxjs/internal/util/applyMixins.js b/node_modules/rxjs/internal/util/applyMixins.js new file mode 100644 index 00000000..6c6114ad --- /dev/null +++ b/node_modules/rxjs/internal/util/applyMixins.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function applyMixins(derivedCtor, baseCtors) { + for (var i = 0, len = baseCtors.length; i < len; i++) { + var baseCtor = baseCtors[i]; + var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype); + for (var j = 0, len2 = propertyKeys.length; j < len2; j++) { + var name_1 = propertyKeys[j]; + derivedCtor.prototype[name_1] = baseCtor.prototype[name_1]; + } + } +} +exports.applyMixins = applyMixins; +//# sourceMappingURL=applyMixins.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/applyMixins.js.map b/node_modules/rxjs/internal/util/applyMixins.js.map new file mode 100644 index 00000000..79813771 --- /dev/null +++ b/node_modules/rxjs/internal/util/applyMixins.js.map @@ -0,0 +1 @@ +{"version":3,"file":"applyMixins.js","sources":["../../src/internal/util/applyMixins.ts"],"names":[],"mappings":";;AAAA,SAAgB,WAAW,CAAC,WAAgB,EAAE,SAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACpD,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YACzD,IAAM,MAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,WAAW,CAAC,SAAS,CAAC,MAAI,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAI,CAAC,CAAC;SACxD;KACF;AACH,CAAC;AATD,kCASC"} diff --git a/node_modules/rxjs/internal/util/canReportError.d.ts b/node_modules/rxjs/internal/util/canReportError.d.ts new file mode 100644 index 00000000..0757e791 --- /dev/null +++ b/node_modules/rxjs/internal/util/canReportError.d.ts @@ -0,0 +1,9 @@ +import { Subscriber } from '../Subscriber'; +import { Subject } from '../Subject'; +/** + * Determines whether the ErrorObserver is closed or stopped or has a + * destination that is closed or stopped - in which case errors will + * need to be reported via a different mechanism. + * @param observer the observer + */ +export declare function canReportError(observer: Subscriber | Subject): boolean; diff --git a/node_modules/rxjs/internal/util/canReportError.js b/node_modules/rxjs/internal/util/canReportError.js new file mode 100644 index 00000000..971f871f --- /dev/null +++ b/node_modules/rxjs/internal/util/canReportError.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +function canReportError(observer) { + while (observer) { + var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; + if (closed_1 || isStopped) { + return false; + } + else if (destination && destination instanceof Subscriber_1.Subscriber) { + observer = destination; + } + else { + observer = null; + } + } + return true; +} +exports.canReportError = canReportError; +//# sourceMappingURL=canReportError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/canReportError.js.map b/node_modules/rxjs/internal/util/canReportError.js.map new file mode 100644 index 00000000..01531e9a --- /dev/null +++ b/node_modules/rxjs/internal/util/canReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"canReportError.js","sources":["../../src/internal/util/canReportError.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAS3C,SAAgB,cAAc,CAAC,QAAwC;IACrE,OAAO,QAAQ,EAAE;QACT,IAAA,aAAoD,EAAlD,oBAAM,EAAE,4BAAW,EAAE,wBAAS,CAAqB;QAC3D,IAAI,QAAM,IAAI,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,WAAW,IAAI,WAAW,YAAY,uBAAU,EAAE;YAC3D,QAAQ,GAAG,WAAW,CAAC;SACxB;aAAM;YACL,QAAQ,GAAG,IAAI,CAAC;SACjB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAZD,wCAYC"} diff --git a/node_modules/rxjs/internal/util/errorObject.d.ts b/node_modules/rxjs/internal/util/errorObject.d.ts new file mode 100644 index 00000000..d9dcd089 --- /dev/null +++ b/node_modules/rxjs/internal/util/errorObject.d.ts @@ -0,0 +1 @@ +export declare const errorObject: any; diff --git a/node_modules/rxjs/internal/util/errorObject.js b/node_modules/rxjs/internal/util/errorObject.js new file mode 100644 index 00000000..e77b4506 --- /dev/null +++ b/node_modules/rxjs/internal/util/errorObject.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.errorObject = { e: {} }; +//# sourceMappingURL=errorObject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/errorObject.js.map b/node_modules/rxjs/internal/util/errorObject.js.map new file mode 100644 index 00000000..dd3398fc --- /dev/null +++ b/node_modules/rxjs/internal/util/errorObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"errorObject.js","sources":["../../src/internal/util/errorObject.ts"],"names":[],"mappings":";;AACa,QAAA,WAAW,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC"} diff --git a/node_modules/rxjs/internal/util/hostReportError.d.ts b/node_modules/rxjs/internal/util/hostReportError.d.ts new file mode 100644 index 00000000..5ab22b13 --- /dev/null +++ b/node_modules/rxjs/internal/util/hostReportError.d.ts @@ -0,0 +1,6 @@ +/** + * Throws an error on another job so that it's picked up by the runtime's + * uncaught error handling mechanism. + * @param err the error to throw + */ +export declare function hostReportError(err: any): void; diff --git a/node_modules/rxjs/internal/util/hostReportError.js b/node_modules/rxjs/internal/util/hostReportError.js new file mode 100644 index 00000000..2fb7fa5a --- /dev/null +++ b/node_modules/rxjs/internal/util/hostReportError.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function hostReportError(err) { + setTimeout(function () { throw err; }, 0); +} +exports.hostReportError = hostReportError; +//# sourceMappingURL=hostReportError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/hostReportError.js.map b/node_modules/rxjs/internal/util/hostReportError.js.map new file mode 100644 index 00000000..3f018e2d --- /dev/null +++ b/node_modules/rxjs/internal/util/hostReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hostReportError.js","sources":["../../src/internal/util/hostReportError.ts"],"names":[],"mappings":";;AAKA,SAAgB,eAAe,CAAC,GAAQ;IACtC,UAAU,CAAC,cAAQ,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAFD,0CAEC"} diff --git a/node_modules/rxjs/internal/util/identity.d.ts b/node_modules/rxjs/internal/util/identity.d.ts new file mode 100644 index 00000000..1b8a3fc5 --- /dev/null +++ b/node_modules/rxjs/internal/util/identity.d.ts @@ -0,0 +1 @@ +export declare function identity(x: T): T; diff --git a/node_modules/rxjs/internal/util/identity.js b/node_modules/rxjs/internal/util/identity.js new file mode 100644 index 00000000..dd4e60f7 --- /dev/null +++ b/node_modules/rxjs/internal/util/identity.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function identity(x) { + return x; +} +exports.identity = identity; +//# sourceMappingURL=identity.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/identity.js.map b/node_modules/rxjs/internal/util/identity.js.map new file mode 100644 index 00000000..57e80c45 --- /dev/null +++ b/node_modules/rxjs/internal/util/identity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"identity.js","sources":["../../src/internal/util/identity.ts"],"names":[],"mappings":";;AAAA,SAAgB,QAAQ,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC;AAFD,4BAEC"} diff --git a/node_modules/rxjs/internal/util/isArray.d.ts b/node_modules/rxjs/internal/util/isArray.d.ts new file mode 100644 index 00000000..a920d3f4 --- /dev/null +++ b/node_modules/rxjs/internal/util/isArray.d.ts @@ -0,0 +1 @@ +export declare const isArray: (arg: any) => arg is any[]; diff --git a/node_modules/rxjs/internal/util/isArray.js b/node_modules/rxjs/internal/util/isArray.js new file mode 100644 index 00000000..e9c093c4 --- /dev/null +++ b/node_modules/rxjs/internal/util/isArray.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })(); +//# sourceMappingURL=isArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isArray.js.map b/node_modules/rxjs/internal/util/isArray.js.map new file mode 100644 index 00000000..87b20b07 --- /dev/null +++ b/node_modules/rxjs/internal/util/isArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArray.js","sources":["../../src/internal/util/isArray.ts"],"names":[],"mappings":";;AAAa,QAAA,OAAO,GAAG,CAAC,cAAM,OAAA,KAAK,CAAC,OAAO,IAAI,CAAC,UAAI,CAAM,IAAe,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAjC,CAAiC,CAAC,EAA7E,CAA6E,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/internal/util/isArrayLike.d.ts b/node_modules/rxjs/internal/util/isArrayLike.d.ts new file mode 100644 index 00000000..2a0fa762 --- /dev/null +++ b/node_modules/rxjs/internal/util/isArrayLike.d.ts @@ -0,0 +1 @@ +export declare const isArrayLike: (x: any) => x is ArrayLike; diff --git a/node_modules/rxjs/internal/util/isArrayLike.js b/node_modules/rxjs/internal/util/isArrayLike.js new file mode 100644 index 00000000..1013f97a --- /dev/null +++ b/node_modules/rxjs/internal/util/isArrayLike.js @@ -0,0 +1,4 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); +//# sourceMappingURL=isArrayLike.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isArrayLike.js.map b/node_modules/rxjs/internal/util/isArrayLike.js.map new file mode 100644 index 00000000..933e980e --- /dev/null +++ b/node_modules/rxjs/internal/util/isArrayLike.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArrayLike.js","sources":["../../src/internal/util/isArrayLike.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,CAAC,UAAI,CAAM,IAAwB,OAAA,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,EAA5D,CAA4D,CAAC,CAAC"} diff --git a/node_modules/rxjs/internal/util/isDate.d.ts b/node_modules/rxjs/internal/util/isDate.d.ts new file mode 100644 index 00000000..1cfe00f1 --- /dev/null +++ b/node_modules/rxjs/internal/util/isDate.d.ts @@ -0,0 +1 @@ +export declare function isDate(value: any): value is Date; diff --git a/node_modules/rxjs/internal/util/isDate.js b/node_modules/rxjs/internal/util/isDate.js new file mode 100644 index 00000000..7c8970ac --- /dev/null +++ b/node_modules/rxjs/internal/util/isDate.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function isDate(value) { + return value instanceof Date && !isNaN(+value); +} +exports.isDate = isDate; +//# sourceMappingURL=isDate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isDate.js.map b/node_modules/rxjs/internal/util/isDate.js.map new file mode 100644 index 00000000..e7b060f6 --- /dev/null +++ b/node_modules/rxjs/internal/util/isDate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isDate.js","sources":["../../src/internal/util/isDate.ts"],"names":[],"mappings":";;AAAA,SAAgB,MAAM,CAAC,KAAU;IAC/B,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAFD,wBAEC"} diff --git a/node_modules/rxjs/internal/util/isFunction.d.ts b/node_modules/rxjs/internal/util/isFunction.d.ts new file mode 100644 index 00000000..190c29e4 --- /dev/null +++ b/node_modules/rxjs/internal/util/isFunction.d.ts @@ -0,0 +1 @@ +export declare function isFunction(x: any): x is Function; diff --git a/node_modules/rxjs/internal/util/isFunction.js b/node_modules/rxjs/internal/util/isFunction.js new file mode 100644 index 00000000..88686911 --- /dev/null +++ b/node_modules/rxjs/internal/util/isFunction.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function isFunction(x) { + return typeof x === 'function'; +} +exports.isFunction = isFunction; +//# sourceMappingURL=isFunction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isFunction.js.map b/node_modules/rxjs/internal/util/isFunction.js.map new file mode 100644 index 00000000..a90c2442 --- /dev/null +++ b/node_modules/rxjs/internal/util/isFunction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isFunction.js","sources":["../../src/internal/util/isFunction.ts"],"names":[],"mappings":";;AAAA,SAAgB,UAAU,CAAC,CAAM;IAC/B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;AACjC,CAAC;AAFD,gCAEC"} diff --git a/node_modules/rxjs/internal/util/isInteropObservable.d.ts b/node_modules/rxjs/internal/util/isInteropObservable.d.ts new file mode 100644 index 00000000..e34e59e4 --- /dev/null +++ b/node_modules/rxjs/internal/util/isInteropObservable.d.ts @@ -0,0 +1,3 @@ +import { InteropObservable } from '../types'; +/** Identifies an input as being Observable (but not necessary an Rx Observable) */ +export declare function isInteropObservable(input: any): input is InteropObservable; diff --git a/node_modules/rxjs/internal/util/isInteropObservable.js b/node_modules/rxjs/internal/util/isInteropObservable.js new file mode 100644 index 00000000..ea65a075 --- /dev/null +++ b/node_modules/rxjs/internal/util/isInteropObservable.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var observable_1 = require("../symbol/observable"); +function isInteropObservable(input) { + return input && typeof input[observable_1.observable] === 'function'; +} +exports.isInteropObservable = isInteropObservable; +//# sourceMappingURL=isInteropObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isInteropObservable.js.map b/node_modules/rxjs/internal/util/isInteropObservable.js.map new file mode 100644 index 00000000..0a4094e3 --- /dev/null +++ b/node_modules/rxjs/internal/util/isInteropObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isInteropObservable.js","sources":["../../src/internal/util/isInteropObservable.ts"],"names":[],"mappings":";;AACA,mDAAuE;AAGvE,SAAgB,mBAAmB,CAAC,KAAU;IAC5C,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,uBAAiB,CAAC,KAAK,UAAU,CAAC;AACjE,CAAC;AAFD,kDAEC"} diff --git a/node_modules/rxjs/internal/util/isIterable.d.ts b/node_modules/rxjs/internal/util/isIterable.d.ts new file mode 100644 index 00000000..38764c31 --- /dev/null +++ b/node_modules/rxjs/internal/util/isIterable.d.ts @@ -0,0 +1,2 @@ +/** Identifies an input as being an Iterable */ +export declare function isIterable(input: any): input is Iterable; diff --git a/node_modules/rxjs/internal/util/isIterable.js b/node_modules/rxjs/internal/util/isIterable.js new file mode 100644 index 00000000..afcc62fb --- /dev/null +++ b/node_modules/rxjs/internal/util/isIterable.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var iterator_1 = require("../symbol/iterator"); +function isIterable(input) { + return input && typeof input[iterator_1.iterator] === 'function'; +} +exports.isIterable = isIterable; +//# sourceMappingURL=isIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isIterable.js.map b/node_modules/rxjs/internal/util/isIterable.js.map new file mode 100644 index 00000000..a0eb1866 --- /dev/null +++ b/node_modules/rxjs/internal/util/isIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isIterable.js","sources":["../../src/internal/util/isIterable.ts"],"names":[],"mappings":";;AAAA,+CAAiE;AAGjE,SAAgB,UAAU,CAAC,KAAU;IACnC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,mBAAe,CAAC,KAAK,UAAU,CAAC;AAC/D,CAAC;AAFD,gCAEC"} diff --git a/node_modules/rxjs/internal/util/isNumeric.d.ts b/node_modules/rxjs/internal/util/isNumeric.d.ts new file mode 100644 index 00000000..c9b173da --- /dev/null +++ b/node_modules/rxjs/internal/util/isNumeric.d.ts @@ -0,0 +1 @@ +export declare function isNumeric(val: any): val is number | string; diff --git a/node_modules/rxjs/internal/util/isNumeric.js b/node_modules/rxjs/internal/util/isNumeric.js new file mode 100644 index 00000000..22fb0e53 --- /dev/null +++ b/node_modules/rxjs/internal/util/isNumeric.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var isArray_1 = require("./isArray"); +function isNumeric(val) { + return !isArray_1.isArray(val) && (val - parseFloat(val) + 1) >= 0; +} +exports.isNumeric = isNumeric; +//# sourceMappingURL=isNumeric.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isNumeric.js.map b/node_modules/rxjs/internal/util/isNumeric.js.map new file mode 100644 index 00000000..5ec1c267 --- /dev/null +++ b/node_modules/rxjs/internal/util/isNumeric.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isNumeric.js","sources":["../../src/internal/util/isNumeric.ts"],"names":[],"mappings":";;AAAA,qCAAoC;AAEpC,SAAgB,SAAS,CAAC,GAAQ;IAKhC,OAAO,CAAC,iBAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAND,8BAMC"} diff --git a/node_modules/rxjs/internal/util/isObject.d.ts b/node_modules/rxjs/internal/util/isObject.d.ts new file mode 100644 index 00000000..124e1ad7 --- /dev/null +++ b/node_modules/rxjs/internal/util/isObject.d.ts @@ -0,0 +1 @@ +export declare function isObject(x: any): x is Object; diff --git a/node_modules/rxjs/internal/util/isObject.js b/node_modules/rxjs/internal/util/isObject.js new file mode 100644 index 00000000..58fe8dd7 --- /dev/null +++ b/node_modules/rxjs/internal/util/isObject.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function isObject(x) { + return x !== null && typeof x === 'object'; +} +exports.isObject = isObject; +//# sourceMappingURL=isObject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isObject.js.map b/node_modules/rxjs/internal/util/isObject.js.map new file mode 100644 index 00000000..acc3a6c7 --- /dev/null +++ b/node_modules/rxjs/internal/util/isObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObject.js","sources":["../../src/internal/util/isObject.ts"],"names":[],"mappings":";;AAAA,SAAgB,QAAQ,CAAC,CAAM;IAC7B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC7C,CAAC;AAFD,4BAEC"} diff --git a/node_modules/rxjs/internal/util/isObservable.d.ts b/node_modules/rxjs/internal/util/isObservable.d.ts new file mode 100644 index 00000000..d3708348 --- /dev/null +++ b/node_modules/rxjs/internal/util/isObservable.d.ts @@ -0,0 +1,6 @@ +import { Observable } from '../Observable'; +/** + * Tests to see if the object is an RxJS {@link Observable} + * @param obj the object to test + */ +export declare function isObservable(obj: any): obj is Observable; diff --git a/node_modules/rxjs/internal/util/isObservable.js b/node_modules/rxjs/internal/util/isObservable.js new file mode 100644 index 00000000..c4c522a7 --- /dev/null +++ b/node_modules/rxjs/internal/util/isObservable.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Observable_1 = require("../Observable"); +function isObservable(obj) { + return !!obj && (obj instanceof Observable_1.Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); +} +exports.isObservable = isObservable; +//# sourceMappingURL=isObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isObservable.js.map b/node_modules/rxjs/internal/util/isObservable.js.map new file mode 100644 index 00000000..787db5cd --- /dev/null +++ b/node_modules/rxjs/internal/util/isObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObservable.js","sources":["../../src/internal/util/isObservable.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAO3C,SAAgB,YAAY,CAAI,GAAQ;IACtC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,uBAAU,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC;AACzH,CAAC;AAFD,oCAEC"} diff --git a/node_modules/rxjs/internal/util/isPromise.d.ts b/node_modules/rxjs/internal/util/isPromise.d.ts new file mode 100644 index 00000000..11f19720 --- /dev/null +++ b/node_modules/rxjs/internal/util/isPromise.d.ts @@ -0,0 +1,6 @@ +/** + * Tests to see if the object is an ES2015 (ES6) Promise + * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects} + * @param value the object to test + */ +export declare function isPromise(value: any): value is PromiseLike; diff --git a/node_modules/rxjs/internal/util/isPromise.js b/node_modules/rxjs/internal/util/isPromise.js new file mode 100644 index 00000000..916910d3 --- /dev/null +++ b/node_modules/rxjs/internal/util/isPromise.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function isPromise(value) { + return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; +} +exports.isPromise = isPromise; +//# sourceMappingURL=isPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isPromise.js.map b/node_modules/rxjs/internal/util/isPromise.js.map new file mode 100644 index 00000000..e5e836f2 --- /dev/null +++ b/node_modules/rxjs/internal/util/isPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isPromise.js","sources":["../../src/internal/util/isPromise.ts"],"names":[],"mappings":";;AAKA,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAa,KAAM,CAAC,SAAS,KAAK,UAAU,IAAI,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9G,CAAC;AAFD,8BAEC"} diff --git a/node_modules/rxjs/internal/util/isScheduler.d.ts b/node_modules/rxjs/internal/util/isScheduler.d.ts new file mode 100644 index 00000000..8acc3ab7 --- /dev/null +++ b/node_modules/rxjs/internal/util/isScheduler.d.ts @@ -0,0 +1,2 @@ +import { SchedulerLike } from '../types'; +export declare function isScheduler(value: any): value is SchedulerLike; diff --git a/node_modules/rxjs/internal/util/isScheduler.js b/node_modules/rxjs/internal/util/isScheduler.js new file mode 100644 index 00000000..5e05a9e5 --- /dev/null +++ b/node_modules/rxjs/internal/util/isScheduler.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function isScheduler(value) { + return value && typeof value.schedule === 'function'; +} +exports.isScheduler = isScheduler; +//# sourceMappingURL=isScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/isScheduler.js.map b/node_modules/rxjs/internal/util/isScheduler.js.map new file mode 100644 index 00000000..a955773a --- /dev/null +++ b/node_modules/rxjs/internal/util/isScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isScheduler.js","sources":["../../src/internal/util/isScheduler.ts"],"names":[],"mappings":";;AAEA,SAAgB,WAAW,CAAC,KAAU;IACpC,OAAO,KAAK,IAAI,OAAa,KAAM,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC9D,CAAC;AAFD,kCAEC"} diff --git a/node_modules/rxjs/internal/util/noop.d.ts b/node_modules/rxjs/internal/util/noop.d.ts new file mode 100644 index 00000000..940809c2 --- /dev/null +++ b/node_modules/rxjs/internal/util/noop.d.ts @@ -0,0 +1 @@ +export declare function noop(): void; diff --git a/node_modules/rxjs/internal/util/noop.js b/node_modules/rxjs/internal/util/noop.js new file mode 100644 index 00000000..043ca7f4 --- /dev/null +++ b/node_modules/rxjs/internal/util/noop.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function noop() { } +exports.noop = noop; +//# sourceMappingURL=noop.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/noop.js.map b/node_modules/rxjs/internal/util/noop.js.map new file mode 100644 index 00000000..91af7520 --- /dev/null +++ b/node_modules/rxjs/internal/util/noop.js.map @@ -0,0 +1 @@ +{"version":3,"file":"noop.js","sources":["../../src/internal/util/noop.ts"],"names":[],"mappings":";;AACA,SAAgB,IAAI,KAAK,CAAC;AAA1B,oBAA0B"} diff --git a/node_modules/rxjs/internal/util/not.d.ts b/node_modules/rxjs/internal/util/not.d.ts new file mode 100644 index 00000000..5369220c --- /dev/null +++ b/node_modules/rxjs/internal/util/not.d.ts @@ -0,0 +1 @@ +export declare function not(pred: Function, thisArg: any): Function; diff --git a/node_modules/rxjs/internal/util/not.js b/node_modules/rxjs/internal/util/not.js new file mode 100644 index 00000000..e2518ad5 --- /dev/null +++ b/node_modules/rxjs/internal/util/not.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function not(pred, thisArg) { + function notPred() { + return !(notPred.pred.apply(notPred.thisArg, arguments)); + } + notPred.pred = pred; + notPred.thisArg = thisArg; + return notPred; +} +exports.not = not; +//# sourceMappingURL=not.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/not.js.map b/node_modules/rxjs/internal/util/not.js.map new file mode 100644 index 00000000..f177040f --- /dev/null +++ b/node_modules/rxjs/internal/util/not.js.map @@ -0,0 +1 @@ +{"version":3,"file":"not.js","sources":["../../src/internal/util/not.ts"],"names":[],"mappings":";;AAAA,SAAgB,GAAG,CAAC,IAAc,EAAE,OAAY;IAC9C,SAAS,OAAO;QACd,OAAO,CAAC,CAAQ,OAAQ,CAAC,IAAI,CAAC,KAAK,CAAQ,OAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3E,CAAC;IACM,OAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,OAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;AAPD,kBAOC"} diff --git a/node_modules/rxjs/internal/util/pipe.d.ts b/node_modules/rxjs/internal/util/pipe.d.ts new file mode 100644 index 00000000..2ec1b799 --- /dev/null +++ b/node_modules/rxjs/internal/util/pipe.d.ts @@ -0,0 +1,14 @@ +import { UnaryFunction } from '../types'; +export declare function pipe(): UnaryFunction; +export declare function pipe(fn1: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction; +/** @internal */ +export declare function pipeFromArray(fns: Array>): UnaryFunction; diff --git a/node_modules/rxjs/internal/util/pipe.js b/node_modules/rxjs/internal/util/pipe.js new file mode 100644 index 00000000..586ba4fb --- /dev/null +++ b/node_modules/rxjs/internal/util/pipe.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var identity_1 = require("./identity"); +function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; + } + return pipeFromArray(fns); +} +exports.pipe = pipe; +function pipeFromArray(fns) { + if (fns.length === 0) { + return identity_1.identity; + } + if (fns.length === 1) { + return fns[0]; + } + return function piped(input) { + return fns.reduce(function (prev, fn) { return fn(prev); }, input); + }; +} +exports.pipeFromArray = pipeFromArray; +//# sourceMappingURL=pipe.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/pipe.js.map b/node_modules/rxjs/internal/util/pipe.js.map new file mode 100644 index 00000000..8e1d03c6 --- /dev/null +++ b/node_modules/rxjs/internal/util/pipe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pipe.js","sources":["../../src/internal/util/pipe.ts"],"names":[],"mappings":";;AACA,uCAAsC;AAiBtC,SAAgB,IAAI;IAAC,aAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,wBAAsC;;IACzD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,oBAEC;AAGD,SAAgB,aAAa,CAAO,GAA+B;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,mBAAmC,CAAC;KAC5C;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACf;IAED,OAAO,SAAS,KAAK,CAAC,KAAQ;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,IAAS,EAAE,EAAuB,IAAK,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,EAAE,KAAY,CAAC,CAAC;IACpF,CAAC,CAAC;AACJ,CAAC;AAZD,sCAYC"} diff --git a/node_modules/rxjs/internal/util/root.d.ts b/node_modules/rxjs/internal/util/root.d.ts new file mode 100644 index 00000000..75016310 --- /dev/null +++ b/node_modules/rxjs/internal/util/root.d.ts @@ -0,0 +1,2 @@ +declare const _root: any; +export { _root as root }; diff --git a/node_modules/rxjs/internal/util/root.js b/node_modules/rxjs/internal/util/root.js new file mode 100644 index 00000000..506861e2 --- /dev/null +++ b/node_modules/rxjs/internal/util/root.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var __window = typeof window !== 'undefined' && window; +var __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && + self instanceof WorkerGlobalScope && self; +var __global = typeof global !== 'undefined' && global; +var _root = __window || __global || __self; +exports.root = _root; +(function () { + if (!_root) { + throw new Error('RxJS could not find any global context (window, self, global)'); + } +})(); +//# sourceMappingURL=root.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/root.js.map b/node_modules/rxjs/internal/util/root.js.map new file mode 100644 index 00000000..71fca0b0 --- /dev/null +++ b/node_modules/rxjs/internal/util/root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"root.js","sources":["../../src/internal/util/root.ts"],"names":[],"mappings":";;AAeA,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,MAAM,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,iBAAiB,KAAK,WAAW;IAClF,IAAI,YAAY,iBAAiB,IAAI,IAAI,CAAC;AAC9C,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;AACzD,IAAM,KAAK,GAAQ,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC;AAWhC,qBAAI;AANtB,CAAC;IACC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;KAClF;AACH,CAAC,CAAC,EAAE,CAAC"} diff --git a/node_modules/rxjs/internal/util/subscribeTo.d.ts b/node_modules/rxjs/internal/util/subscribeTo.d.ts new file mode 100644 index 00000000..491b43a1 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeTo.d.ts @@ -0,0 +1,4 @@ +import { ObservableInput } from '../types'; +import { Subscription } from '../Subscription'; +import { Subscriber } from '../Subscriber'; +export declare const subscribeTo: (result: ObservableInput) => (subscriber: Subscriber) => void | Subscription; diff --git a/node_modules/rxjs/internal/util/subscribeTo.js b/node_modules/rxjs/internal/util/subscribeTo.js new file mode 100644 index 00000000..b5ffb576 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeTo.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var subscribeToArray_1 = require("./subscribeToArray"); +var subscribeToPromise_1 = require("./subscribeToPromise"); +var subscribeToIterable_1 = require("./subscribeToIterable"); +var subscribeToObservable_1 = require("./subscribeToObservable"); +var isArrayLike_1 = require("./isArrayLike"); +var isPromise_1 = require("./isPromise"); +var isObject_1 = require("./isObject"); +var iterator_1 = require("../symbol/iterator"); +var observable_1 = require("../symbol/observable"); +exports.subscribeTo = function (result) { + if (!!result && typeof result[observable_1.observable] === 'function') { + return subscribeToObservable_1.subscribeToObservable(result); + } + else if (isArrayLike_1.isArrayLike(result)) { + return subscribeToArray_1.subscribeToArray(result); + } + else if (isPromise_1.isPromise(result)) { + return subscribeToPromise_1.subscribeToPromise(result); + } + else if (!!result && typeof result[iterator_1.iterator] === 'function') { + return subscribeToIterable_1.subscribeToIterable(result); + } + else { + var value = isObject_1.isObject(result) ? 'an invalid object' : "'" + result + "'"; + var msg = "You provided " + value + " where a stream was expected." + + ' You can provide an Observable, Promise, Array, or Iterable.'; + throw new TypeError(msg); + } +}; +//# sourceMappingURL=subscribeTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/subscribeTo.js.map b/node_modules/rxjs/internal/util/subscribeTo.js.map new file mode 100644 index 00000000..9654d86a --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeTo.js","sources":["../../src/internal/util/subscribeTo.ts"],"names":[],"mappings":";;AACA,uDAAsD;AACtD,2DAA0D;AAC1D,6DAA4D;AAC5D,iEAAgE;AAChE,6CAA4C;AAC5C,yCAAwC;AACxC,uCAAsC;AACtC,+CAAiE;AACjE,mDAAuE;AAI1D,QAAA,WAAW,GAAG,UAAI,MAA0B;IACvD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,uBAAiB,CAAC,KAAK,UAAU,EAAE;QAC/D,OAAO,6CAAqB,CAAC,MAAa,CAAC,CAAC;KAC7C;SAAM,IAAI,yBAAW,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,mCAAgB,CAAC,MAAM,CAAC,CAAC;KACjC;SAAM,IAAI,qBAAS,CAAC,MAAM,CAAC,EAAE;QAC5B,OAAO,uCAAkB,CAAC,MAAsB,CAAC,CAAC;KACnD;SAAM,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,mBAAe,CAAC,KAAK,UAAU,EAAE;QACpE,OAAO,yCAAmB,CAAC,MAAa,CAAC,CAAC;KAC3C;SAAM;QACL,IAAM,KAAK,GAAG,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAI,MAAM,MAAG,CAAC;QACrE,IAAM,GAAG,GAAG,kBAAgB,KAAK,kCAA+B;cAC5D,8DAA8D,CAAC;QACnE,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC"} diff --git a/node_modules/rxjs/internal/util/subscribeToArray.d.ts b/node_modules/rxjs/internal/util/subscribeToArray.d.ts new file mode 100644 index 00000000..ddc93fd4 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToArray.d.ts @@ -0,0 +1,6 @@ +import { Subscriber } from '../Subscriber'; +/** + * Subscribes to an ArrayLike with a subscriber + * @param array The array or array-like to subscribe to + */ +export declare const subscribeToArray: (array: ArrayLike) => (subscriber: Subscriber) => void; diff --git a/node_modules/rxjs/internal/util/subscribeToArray.js b/node_modules/rxjs/internal/util/subscribeToArray.js new file mode 100644 index 00000000..029c2327 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToArray.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.subscribeToArray = function (array) { return function (subscriber) { + for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); +}; }; +//# sourceMappingURL=subscribeToArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/subscribeToArray.js.map b/node_modules/rxjs/internal/util/subscribeToArray.js.map new file mode 100644 index 00000000..4c659e27 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToArray.js","sources":["../../src/internal/util/subscribeToArray.ts"],"names":[],"mappings":";;AAMa,QAAA,gBAAgB,GAAG,UAAI,KAAmB,IAAK,OAAA,UAAC,UAAyB;IACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,EAL2D,CAK3D,CAAC"} diff --git a/node_modules/rxjs/internal/util/subscribeToIterable.d.ts b/node_modules/rxjs/internal/util/subscribeToIterable.d.ts new file mode 100644 index 00000000..948a7052 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToIterable.d.ts @@ -0,0 +1,2 @@ +import { Subscriber } from '../Subscriber'; +export declare const subscribeToIterable: (iterable: Iterable) => (subscriber: Subscriber) => Subscriber; diff --git a/node_modules/rxjs/internal/util/subscribeToIterable.js b/node_modules/rxjs/internal/util/subscribeToIterable.js new file mode 100644 index 00000000..9d0abf33 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToIterable.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var iterator_1 = require("../symbol/iterator"); +exports.subscribeToIterable = function (iterable) { return function (subscriber) { + var iterator = iterable[iterator_1.iterator](); + do { + var item = void 0; + try { + item = iterator.next(); + } + catch (err) { + subscriber.error(err); + return subscriber; + } + if (item.done) { + subscriber.complete(); + break; + } + subscriber.next(item.value); + if (subscriber.closed) { + break; + } + } while (true); + if (typeof iterator.return === 'function') { + subscriber.add(function () { + if (iterator.return) { + iterator.return(); + } + }); + } + return subscriber; +}; }; +//# sourceMappingURL=subscribeToIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/subscribeToIterable.js.map b/node_modules/rxjs/internal/util/subscribeToIterable.js.map new file mode 100644 index 00000000..732cacdd --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToIterable.js","sources":["../../src/internal/util/subscribeToIterable.ts"],"names":[],"mappings":";;AACA,+CAAiE;AAEpD,QAAA,mBAAmB,GAAG,UAAI,QAAqB,IAAK,OAAA,UAAC,UAAyB;IACzF,IAAM,QAAQ,GAAI,QAAgB,CAAC,mBAAe,CAAC,EAAE,CAAC;IAEtD,GAAG;QACD,IAAI,IAAI,SAAmB,CAAC;QAC5B,IAAI;YACF,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,UAAU,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM;SACP;QACD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,MAAM;SACP;KACF,QAAQ,IAAI,EAAE;IAGf,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;QACzC,UAAU,CAAC,GAAG,CAAC;YACb,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACnB,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,EA/BgE,CA+BhE,CAAC"} diff --git a/node_modules/rxjs/internal/util/subscribeToObservable.d.ts b/node_modules/rxjs/internal/util/subscribeToObservable.d.ts new file mode 100644 index 00000000..9cbc1e35 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToObservable.d.ts @@ -0,0 +1,7 @@ +import { Subscriber } from '../Subscriber'; +/** + * Subscribes to an object that implements Symbol.observable with the given + * Subscriber. + * @param obj An object that implements Symbol.observable + */ +export declare const subscribeToObservable: (obj: any) => (subscriber: Subscriber) => any; diff --git a/node_modules/rxjs/internal/util/subscribeToObservable.js b/node_modules/rxjs/internal/util/subscribeToObservable.js new file mode 100644 index 00000000..9fd034fe --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToObservable.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var observable_1 = require("../symbol/observable"); +exports.subscribeToObservable = function (obj) { return function (subscriber) { + var obs = obj[observable_1.observable](); + if (typeof obs.subscribe !== 'function') { + throw new TypeError('Provided object does not correctly implement Symbol.observable'); + } + else { + return obs.subscribe(subscriber); + } +}; }; +//# sourceMappingURL=subscribeToObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/subscribeToObservable.js.map b/node_modules/rxjs/internal/util/subscribeToObservable.js.map new file mode 100644 index 00000000..8ca42bbd --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToObservable.js","sources":["../../src/internal/util/subscribeToObservable.ts"],"names":[],"mappings":";;AACA,mDAAuE;AAO1D,QAAA,qBAAqB,GAAG,UAAI,GAAQ,IAAK,OAAA,UAAC,UAAyB;IAC9E,IAAM,GAAG,GAAG,GAAG,CAAC,uBAAiB,CAAC,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;QAEvC,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;KACvF;SAAM;QACL,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAClC;AACH,CAAC,EARqD,CAQrD,CAAC"} diff --git a/node_modules/rxjs/internal/util/subscribeToPromise.d.ts b/node_modules/rxjs/internal/util/subscribeToPromise.d.ts new file mode 100644 index 00000000..dae7811a --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToPromise.d.ts @@ -0,0 +1,2 @@ +import { Subscriber } from '../Subscriber'; +export declare const subscribeToPromise: (promise: PromiseLike) => (subscriber: Subscriber) => Subscriber; diff --git a/node_modules/rxjs/internal/util/subscribeToPromise.js b/node_modules/rxjs/internal/util/subscribeToPromise.js new file mode 100644 index 00000000..6125789f --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToPromise.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var hostReportError_1 = require("./hostReportError"); +exports.subscribeToPromise = function (promise) { return function (subscriber) { + promise.then(function (value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function (err) { return subscriber.error(err); }) + .then(null, hostReportError_1.hostReportError); + return subscriber; +}; }; +//# sourceMappingURL=subscribeToPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/subscribeToPromise.js.map b/node_modules/rxjs/internal/util/subscribeToPromise.js.map new file mode 100644 index 00000000..ad8dd815 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToPromise.js","sources":["../../src/internal/util/subscribeToPromise.ts"],"names":[],"mappings":";;AACA,qDAAoD;AAEvC,QAAA,kBAAkB,GAAG,UAAI,OAAuB,IAAK,OAAA,UAAC,UAAyB;IAC1F,OAAO,CAAC,IAAI,CACV,UAAC,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;SACvB;IACH,CAAC,EACD,UAAC,GAAQ,IAAK,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAArB,CAAqB,CACpC;SACA,IAAI,CAAC,IAAI,EAAE,iCAAe,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC,EAZiE,CAYjE,CAAC"} diff --git a/node_modules/rxjs/internal/util/subscribeToResult.d.ts b/node_modules/rxjs/internal/util/subscribeToResult.d.ts new file mode 100644 index 00000000..859f416a --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToResult.d.ts @@ -0,0 +1,5 @@ +import { Subscription } from '../Subscription'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { OuterSubscriber } from '../OuterSubscriber'; +export declare function subscribeToResult(outerSubscriber: OuterSubscriber, result: any, outerValue: undefined, outerIndex: undefined, innerSubscriber: InnerSubscriber): Subscription | undefined; +export declare function subscribeToResult(outerSubscriber: OuterSubscriber, result: any, outerValue?: T, outerIndex?: number): Subscription | undefined; diff --git a/node_modules/rxjs/internal/util/subscribeToResult.js b/node_modules/rxjs/internal/util/subscribeToResult.js new file mode 100644 index 00000000..421ce982 --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToResult.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var InnerSubscriber_1 = require("../InnerSubscriber"); +var subscribeTo_1 = require("./subscribeTo"); +var Observable_1 = require("../Observable"); +function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) { + if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex); } + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable_1.Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo_1.subscribeTo(result)(innerSubscriber); +} +exports.subscribeToResult = subscribeToResult; +//# sourceMappingURL=subscribeToResult.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/subscribeToResult.js.map b/node_modules/rxjs/internal/util/subscribeToResult.js.map new file mode 100644 index 00000000..9f66d74d --- /dev/null +++ b/node_modules/rxjs/internal/util/subscribeToResult.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToResult.js","sources":["../../src/internal/util/subscribeToResult.ts"],"names":[],"mappings":";;AACA,sDAAqD;AAGrD,6CAA4C;AAC5C,4CAA2C;AAiB3C,SAAgB,iBAAiB,CAC/B,eAAsC,EACtC,MAAW,EACX,UAAc,EACd,UAAmB,EACnB,eAA6F;IAA7F,gCAAA,EAAA,sBAAqC,iCAAe,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC;IAE7F,IAAI,eAAe,CAAC,MAAM,EAAE;QAC1B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,YAAY,uBAAU,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;KAC1C;IACD,OAAO,yBAAW,CAAC,MAAM,CAAC,CAAC,eAAe,CAAiB,CAAC;AAC9D,CAAC;AAdD,8CAcC"} diff --git a/node_modules/rxjs/internal/util/toSubscriber.d.ts b/node_modules/rxjs/internal/util/toSubscriber.d.ts new file mode 100644 index 00000000..6ae2897b --- /dev/null +++ b/node_modules/rxjs/internal/util/toSubscriber.d.ts @@ -0,0 +1,3 @@ +import { Subscriber } from '../Subscriber'; +import { PartialObserver } from '../types'; +export declare function toSubscriber(nextOrObserver?: PartialObserver | ((value: T) => void), error?: (error: any) => void, complete?: () => void): Subscriber; diff --git a/node_modules/rxjs/internal/util/toSubscriber.js b/node_modules/rxjs/internal/util/toSubscriber.js new file mode 100644 index 00000000..07fd52ce --- /dev/null +++ b/node_modules/rxjs/internal/util/toSubscriber.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var Subscriber_1 = require("../Subscriber"); +var rxSubscriber_1 = require("../symbol/rxSubscriber"); +var Observer_1 = require("../Observer"); +function toSubscriber(nextOrObserver, error, complete) { + if (nextOrObserver) { + if (nextOrObserver instanceof Subscriber_1.Subscriber) { + return nextOrObserver; + } + if (nextOrObserver[rxSubscriber_1.rxSubscriber]) { + return nextOrObserver[rxSubscriber_1.rxSubscriber](); + } + } + if (!nextOrObserver && !error && !complete) { + return new Subscriber_1.Subscriber(Observer_1.empty); + } + return new Subscriber_1.Subscriber(nextOrObserver, error, complete); +} +exports.toSubscriber = toSubscriber; +//# sourceMappingURL=toSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/toSubscriber.js.map b/node_modules/rxjs/internal/util/toSubscriber.js.map new file mode 100644 index 00000000..7e9793a6 --- /dev/null +++ b/node_modules/rxjs/internal/util/toSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toSubscriber.js","sources":["../../src/internal/util/toSubscriber.ts"],"names":[],"mappings":";;AAAA,4CAA2C;AAC3C,uDAA4E;AAC5E,wCAAqD;AAGrD,SAAgB,YAAY,CAC1B,cAA0D,EAC1D,KAA4B,EAC5B,QAAqB;IAErB,IAAI,cAAc,EAAE;QAClB,IAAI,cAAc,YAAY,uBAAU,EAAE;YACxC,OAAwB,cAAe,CAAC;SACzC;QAED,IAAI,cAAc,CAAC,2BAAkB,CAAC,EAAE;YACtC,OAAO,cAAc,CAAC,2BAAkB,CAAC,EAAE,CAAC;SAC7C;KACF;IAED,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QAC1C,OAAO,IAAI,uBAAU,CAAC,gBAAa,CAAC,CAAC;KACtC;IAED,OAAO,IAAI,uBAAU,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AApBD,oCAoBC"} diff --git a/node_modules/rxjs/internal/util/tryCatch.d.ts b/node_modules/rxjs/internal/util/tryCatch.d.ts new file mode 100644 index 00000000..e241e6eb --- /dev/null +++ b/node_modules/rxjs/internal/util/tryCatch.d.ts @@ -0,0 +1 @@ +export declare function tryCatch(fn: T): T; diff --git a/node_modules/rxjs/internal/util/tryCatch.js b/node_modules/rxjs/internal/util/tryCatch.js new file mode 100644 index 00000000..42f2191f --- /dev/null +++ b/node_modules/rxjs/internal/util/tryCatch.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var errorObject_1 = require("./errorObject"); +var tryCatchTarget; +function tryCatcher() { + errorObject_1.errorObject.e = undefined; + try { + return tryCatchTarget.apply(this, arguments); + } + catch (e) { + errorObject_1.errorObject.e = e; + return errorObject_1.errorObject; + } + finally { + tryCatchTarget = undefined; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} +exports.tryCatch = tryCatch; +//# sourceMappingURL=tryCatch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/internal/util/tryCatch.js.map b/node_modules/rxjs/internal/util/tryCatch.js.map new file mode 100644 index 00000000..4f5ccdef --- /dev/null +++ b/node_modules/rxjs/internal/util/tryCatch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tryCatch.js","sources":["../../src/internal/util/tryCatch.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAE5C,IAAI,cAAwB,CAAC;AAE7B,SAAS,UAAU;IACjB,yBAAW,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1B,IAAI;QACF,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC9C;IAAC,OAAO,CAAC,EAAE;QACV,yBAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,yBAAW,CAAC;KACpB;YAAS;QACR,cAAc,GAAG,SAAS,CAAC;KAC5B;AACH,CAAC;AAED,SAAgB,QAAQ,CAAqB,EAAK;IAChD,cAAc,GAAG,EAAE,CAAC;IACpB,OAAY,UAAU,CAAC;AACzB,CAAC;AAHD,4BAGC"} diff --git a/node_modules/rxjs/migrations/collection.json b/node_modules/rxjs/migrations/collection.json new file mode 100644 index 00000000..7eb11244 --- /dev/null +++ b/node_modules/rxjs/migrations/collection.json @@ -0,0 +1,9 @@ +{ + "schematics": { + "rxjs-migration-01": { + "description": "Adds rxjs-compat package to the project to ensure compatability with RxJS 5", + "version": "6.0.0-rc.0", + "factory": "./update-6_0_0/index#rxjsV6MigrationSchematic" + } + } +} diff --git a/node_modules/rxjs/migrations/update-6_0_0/index.js b/node_modules/rxjs/migrations/update-6_0_0/index.js new file mode 100644 index 00000000..acf57b55 --- /dev/null +++ b/node_modules/rxjs/migrations/update-6_0_0/index.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var schematics_1 = require("@angular-devkit/schematics"); +var tasks_1 = require("@angular-devkit/schematics/tasks"); +var rxjsCompatVersion = '^6.0.0-rc.0'; +function rxjsV6MigrationSchematic(_options) { + return function (tree, context) { + var pkgPath = '/package.json'; + var buffer = tree.read(pkgPath); + if (buffer == null) { + throw new schematics_1.SchematicsException('Could not read package.json'); + } + var content = buffer.toString(); + var pkg = JSON.parse(content); + if (pkg === null || typeof pkg !== 'object' || Array.isArray(pkg)) { + throw new schematics_1.SchematicsException('Error reading package.json'); + } + if (!pkg.dependencies) { + pkg.dependencies = {}; + } + pkg.dependencies['rxjs-compat'] = rxjsCompatVersion; + tree.overwrite(pkgPath, JSON.stringify(pkg, null, 2)); + context.addTask(new tasks_1.NodePackageInstallTask()); + return tree; + }; +} +exports.rxjsV6MigrationSchematic = rxjsV6MigrationSchematic; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/migrations/update-6_0_0/index.js.map b/node_modules/rxjs/migrations/update-6_0_0/index.js.map new file mode 100644 index 00000000..50d6d875 --- /dev/null +++ b/node_modules/rxjs/migrations/update-6_0_0/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../migrations/update-6_0_0/index.ts"],"names":[],"mappings":";;AAAA,yDAAwG;AACxG,0DAA0E;AAE1E,IAAM,iBAAiB,GAAG,aAAa,CAAC;AAExC,SAAgB,wBAAwB,CAAC,QAAa;IACpD,OAAO,UAAC,IAAU,EAAE,OAAyB;QACzC,IAAM,OAAO,GAAG,eAAe,CAAC;QAChC,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,IAAI,gCAAmB,CAAC,6BAA6B,CAAC,CAAC;SAC9D;QACD,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjE,MAAM,IAAI,gCAAmB,CAAC,4BAA4B,CAAC,CAAC;SAC7D;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;YACrB,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC;SACvB;QAED,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,iBAAiB,CAAC;QAEpD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAzBD,4DAyBC"} \ No newline at end of file diff --git a/node_modules/rxjs/observable/ArrayLikeObservable.d.ts b/node_modules/rxjs/observable/ArrayLikeObservable.d.ts new file mode 100644 index 00000000..30da2881 --- /dev/null +++ b/node_modules/rxjs/observable/ArrayLikeObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ArrayLikeObservable'; diff --git a/node_modules/rxjs/observable/ArrayLikeObservable.js b/node_modules/rxjs/observable/ArrayLikeObservable.js new file mode 100644 index 00000000..b280ef6f --- /dev/null +++ b/node_modules/rxjs/observable/ArrayLikeObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/ArrayLikeObservable")); +//# sourceMappingURL=ArrayLikeObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/ArrayLikeObservable.js.map b/node_modules/rxjs/observable/ArrayLikeObservable.js.map new file mode 100644 index 00000000..4012874b --- /dev/null +++ b/node_modules/rxjs/observable/ArrayLikeObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArrayLikeObservable.js","sources":["../src/observable/ArrayLikeObservable.ts"],"names":[],"mappings":";;;;;AAAA,gEAA2D"} diff --git a/node_modules/rxjs/observable/ArrayObservable.d.ts b/node_modules/rxjs/observable/ArrayObservable.d.ts new file mode 100644 index 00000000..ce2da267 --- /dev/null +++ b/node_modules/rxjs/observable/ArrayObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ArrayObservable'; diff --git a/node_modules/rxjs/observable/ArrayObservable.js b/node_modules/rxjs/observable/ArrayObservable.js new file mode 100644 index 00000000..7b3b6287 --- /dev/null +++ b/node_modules/rxjs/observable/ArrayObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/ArrayObservable")); +//# sourceMappingURL=ArrayObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/ArrayObservable.js.map b/node_modules/rxjs/observable/ArrayObservable.js.map new file mode 100644 index 00000000..5ba74a55 --- /dev/null +++ b/node_modules/rxjs/observable/ArrayObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArrayObservable.js","sources":["../src/observable/ArrayObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/BoundCallbackObservable.d.ts b/node_modules/rxjs/observable/BoundCallbackObservable.d.ts new file mode 100644 index 00000000..17903061 --- /dev/null +++ b/node_modules/rxjs/observable/BoundCallbackObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/BoundCallbackObservable'; diff --git a/node_modules/rxjs/observable/BoundCallbackObservable.js b/node_modules/rxjs/observable/BoundCallbackObservable.js new file mode 100644 index 00000000..e68ac033 --- /dev/null +++ b/node_modules/rxjs/observable/BoundCallbackObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/BoundCallbackObservable")); +//# sourceMappingURL=BoundCallbackObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/BoundCallbackObservable.js.map b/node_modules/rxjs/observable/BoundCallbackObservable.js.map new file mode 100644 index 00000000..46f11d4b --- /dev/null +++ b/node_modules/rxjs/observable/BoundCallbackObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BoundCallbackObservable.js","sources":["../src/observable/BoundCallbackObservable.ts"],"names":[],"mappings":";;;;;AAAA,oEAA+D"} diff --git a/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts b/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts new file mode 100644 index 00000000..7d0eb036 --- /dev/null +++ b/node_modules/rxjs/observable/BoundNodeCallbackObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/BoundNodeCallbackObservable'; diff --git a/node_modules/rxjs/observable/BoundNodeCallbackObservable.js b/node_modules/rxjs/observable/BoundNodeCallbackObservable.js new file mode 100644 index 00000000..f6efca63 --- /dev/null +++ b/node_modules/rxjs/observable/BoundNodeCallbackObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/BoundNodeCallbackObservable")); +//# sourceMappingURL=BoundNodeCallbackObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map b/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map new file mode 100644 index 00000000..44975e54 --- /dev/null +++ b/node_modules/rxjs/observable/BoundNodeCallbackObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BoundNodeCallbackObservable.js","sources":["../src/observable/BoundNodeCallbackObservable.ts"],"names":[],"mappings":";;;;;AAAA,wEAAmE"} diff --git a/node_modules/rxjs/observable/ConnectableObservable.d.ts b/node_modules/rxjs/observable/ConnectableObservable.d.ts new file mode 100644 index 00000000..a21b3cc6 --- /dev/null +++ b/node_modules/rxjs/observable/ConnectableObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ConnectableObservable'; diff --git a/node_modules/rxjs/observable/ConnectableObservable.js b/node_modules/rxjs/observable/ConnectableObservable.js new file mode 100644 index 00000000..a90ea58a --- /dev/null +++ b/node_modules/rxjs/observable/ConnectableObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/ConnectableObservable")); +//# sourceMappingURL=ConnectableObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/ConnectableObservable.js.map b/node_modules/rxjs/observable/ConnectableObservable.js.map new file mode 100644 index 00000000..04ca51d5 --- /dev/null +++ b/node_modules/rxjs/observable/ConnectableObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConnectableObservable.js","sources":["../src/observable/ConnectableObservable.ts"],"names":[],"mappings":";;;;;AAAA,kEAA6D"} diff --git a/node_modules/rxjs/observable/DeferObservable.d.ts b/node_modules/rxjs/observable/DeferObservable.d.ts new file mode 100644 index 00000000..cec9147a --- /dev/null +++ b/node_modules/rxjs/observable/DeferObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/DeferObservable'; diff --git a/node_modules/rxjs/observable/DeferObservable.js b/node_modules/rxjs/observable/DeferObservable.js new file mode 100644 index 00000000..e03517fa --- /dev/null +++ b/node_modules/rxjs/observable/DeferObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/DeferObservable")); +//# sourceMappingURL=DeferObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/DeferObservable.js.map b/node_modules/rxjs/observable/DeferObservable.js.map new file mode 100644 index 00000000..7b92c505 --- /dev/null +++ b/node_modules/rxjs/observable/DeferObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DeferObservable.js","sources":["../src/observable/DeferObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/EmptyObservable.d.ts b/node_modules/rxjs/observable/EmptyObservable.d.ts new file mode 100644 index 00000000..6f9f0ba1 --- /dev/null +++ b/node_modules/rxjs/observable/EmptyObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/EmptyObservable'; diff --git a/node_modules/rxjs/observable/EmptyObservable.js b/node_modules/rxjs/observable/EmptyObservable.js new file mode 100644 index 00000000..309ce0cd --- /dev/null +++ b/node_modules/rxjs/observable/EmptyObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/EmptyObservable")); +//# sourceMappingURL=EmptyObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/EmptyObservable.js.map b/node_modules/rxjs/observable/EmptyObservable.js.map new file mode 100644 index 00000000..7d466701 --- /dev/null +++ b/node_modules/rxjs/observable/EmptyObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EmptyObservable.js","sources":["../src/observable/EmptyObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/ErrorObservable.d.ts b/node_modules/rxjs/observable/ErrorObservable.d.ts new file mode 100644 index 00000000..68a7dce9 --- /dev/null +++ b/node_modules/rxjs/observable/ErrorObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ErrorObservable'; diff --git a/node_modules/rxjs/observable/ErrorObservable.js b/node_modules/rxjs/observable/ErrorObservable.js new file mode 100644 index 00000000..1943818f --- /dev/null +++ b/node_modules/rxjs/observable/ErrorObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/ErrorObservable")); +//# sourceMappingURL=ErrorObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/ErrorObservable.js.map b/node_modules/rxjs/observable/ErrorObservable.js.map new file mode 100644 index 00000000..d2637323 --- /dev/null +++ b/node_modules/rxjs/observable/ErrorObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ErrorObservable.js","sources":["../src/observable/ErrorObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/ForkJoinObservable.d.ts b/node_modules/rxjs/observable/ForkJoinObservable.d.ts new file mode 100644 index 00000000..c9fa4dd6 --- /dev/null +++ b/node_modules/rxjs/observable/ForkJoinObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ForkJoinObservable'; diff --git a/node_modules/rxjs/observable/ForkJoinObservable.js b/node_modules/rxjs/observable/ForkJoinObservable.js new file mode 100644 index 00000000..e7962f5c --- /dev/null +++ b/node_modules/rxjs/observable/ForkJoinObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/ForkJoinObservable")); +//# sourceMappingURL=ForkJoinObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/ForkJoinObservable.js.map b/node_modules/rxjs/observable/ForkJoinObservable.js.map new file mode 100644 index 00000000..14eb12ba --- /dev/null +++ b/node_modules/rxjs/observable/ForkJoinObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ForkJoinObservable.js","sources":["../src/observable/ForkJoinObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"} diff --git a/node_modules/rxjs/observable/FromEventObservable.d.ts b/node_modules/rxjs/observable/FromEventObservable.d.ts new file mode 100644 index 00000000..04291abd --- /dev/null +++ b/node_modules/rxjs/observable/FromEventObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromEventObservable'; diff --git a/node_modules/rxjs/observable/FromEventObservable.js b/node_modules/rxjs/observable/FromEventObservable.js new file mode 100644 index 00000000..a25de712 --- /dev/null +++ b/node_modules/rxjs/observable/FromEventObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/FromEventObservable")); +//# sourceMappingURL=FromEventObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/FromEventObservable.js.map b/node_modules/rxjs/observable/FromEventObservable.js.map new file mode 100644 index 00000000..77b8c5e7 --- /dev/null +++ b/node_modules/rxjs/observable/FromEventObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FromEventObservable.js","sources":["../src/observable/FromEventObservable.ts"],"names":[],"mappings":";;;;;AAAA,gEAA2D"} diff --git a/node_modules/rxjs/observable/FromEventPatternObservable.d.ts b/node_modules/rxjs/observable/FromEventPatternObservable.d.ts new file mode 100644 index 00000000..e0a473ca --- /dev/null +++ b/node_modules/rxjs/observable/FromEventPatternObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromEventPatternObservable'; diff --git a/node_modules/rxjs/observable/FromEventPatternObservable.js b/node_modules/rxjs/observable/FromEventPatternObservable.js new file mode 100644 index 00000000..b45e61bc --- /dev/null +++ b/node_modules/rxjs/observable/FromEventPatternObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/FromEventPatternObservable")); +//# sourceMappingURL=FromEventPatternObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/FromEventPatternObservable.js.map b/node_modules/rxjs/observable/FromEventPatternObservable.js.map new file mode 100644 index 00000000..213645a2 --- /dev/null +++ b/node_modules/rxjs/observable/FromEventPatternObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FromEventPatternObservable.js","sources":["../src/observable/FromEventPatternObservable.ts"],"names":[],"mappings":";;;;;AAAA,uEAAkE"} diff --git a/node_modules/rxjs/observable/FromObservable.d.ts b/node_modules/rxjs/observable/FromObservable.d.ts new file mode 100644 index 00000000..c4ec6648 --- /dev/null +++ b/node_modules/rxjs/observable/FromObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromObservable'; diff --git a/node_modules/rxjs/observable/FromObservable.js b/node_modules/rxjs/observable/FromObservable.js new file mode 100644 index 00000000..036e8008 --- /dev/null +++ b/node_modules/rxjs/observable/FromObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/FromObservable")); +//# sourceMappingURL=FromObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/FromObservable.js.map b/node_modules/rxjs/observable/FromObservable.js.map new file mode 100644 index 00000000..63805da0 --- /dev/null +++ b/node_modules/rxjs/observable/FromObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FromObservable.js","sources":["../src/observable/FromObservable.ts"],"names":[],"mappings":";;;;;AAAA,2DAAsD"} diff --git a/node_modules/rxjs/observable/GenerateObservable.d.ts b/node_modules/rxjs/observable/GenerateObservable.d.ts new file mode 100644 index 00000000..8441d24b --- /dev/null +++ b/node_modules/rxjs/observable/GenerateObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/GenerateObservable'; diff --git a/node_modules/rxjs/observable/GenerateObservable.js b/node_modules/rxjs/observable/GenerateObservable.js new file mode 100644 index 00000000..ad7086c3 --- /dev/null +++ b/node_modules/rxjs/observable/GenerateObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/GenerateObservable")); +//# sourceMappingURL=GenerateObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/GenerateObservable.js.map b/node_modules/rxjs/observable/GenerateObservable.js.map new file mode 100644 index 00000000..de2b2a55 --- /dev/null +++ b/node_modules/rxjs/observable/GenerateObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GenerateObservable.js","sources":["../src/observable/GenerateObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"} diff --git a/node_modules/rxjs/observable/IfObservable.d.ts b/node_modules/rxjs/observable/IfObservable.d.ts new file mode 100644 index 00000000..5eb484aa --- /dev/null +++ b/node_modules/rxjs/observable/IfObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IfObservable'; diff --git a/node_modules/rxjs/observable/IfObservable.js b/node_modules/rxjs/observable/IfObservable.js new file mode 100644 index 00000000..cdb4680b --- /dev/null +++ b/node_modules/rxjs/observable/IfObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/IfObservable")); +//# sourceMappingURL=IfObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/IfObservable.js.map b/node_modules/rxjs/observable/IfObservable.js.map new file mode 100644 index 00000000..28c6ea88 --- /dev/null +++ b/node_modules/rxjs/observable/IfObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IfObservable.js","sources":["../src/observable/IfObservable.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/observable/IntervalObservable.d.ts b/node_modules/rxjs/observable/IntervalObservable.d.ts new file mode 100644 index 00000000..dfe181f0 --- /dev/null +++ b/node_modules/rxjs/observable/IntervalObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IntervalObservable'; diff --git a/node_modules/rxjs/observable/IntervalObservable.js b/node_modules/rxjs/observable/IntervalObservable.js new file mode 100644 index 00000000..afc8a952 --- /dev/null +++ b/node_modules/rxjs/observable/IntervalObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/IntervalObservable")); +//# sourceMappingURL=IntervalObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/IntervalObservable.js.map b/node_modules/rxjs/observable/IntervalObservable.js.map new file mode 100644 index 00000000..dcff25ea --- /dev/null +++ b/node_modules/rxjs/observable/IntervalObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IntervalObservable.js","sources":["../src/observable/IntervalObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"} diff --git a/node_modules/rxjs/observable/IteratorObservable.d.ts b/node_modules/rxjs/observable/IteratorObservable.d.ts new file mode 100644 index 00000000..860fbefb --- /dev/null +++ b/node_modules/rxjs/observable/IteratorObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IteratorObservable'; diff --git a/node_modules/rxjs/observable/IteratorObservable.js b/node_modules/rxjs/observable/IteratorObservable.js new file mode 100644 index 00000000..643ea912 --- /dev/null +++ b/node_modules/rxjs/observable/IteratorObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/IteratorObservable")); +//# sourceMappingURL=IteratorObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/IteratorObservable.js.map b/node_modules/rxjs/observable/IteratorObservable.js.map new file mode 100644 index 00000000..1864fbc1 --- /dev/null +++ b/node_modules/rxjs/observable/IteratorObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IteratorObservable.js","sources":["../src/observable/IteratorObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"} diff --git a/node_modules/rxjs/observable/NeverObservable.d.ts b/node_modules/rxjs/observable/NeverObservable.d.ts new file mode 100644 index 00000000..de440577 --- /dev/null +++ b/node_modules/rxjs/observable/NeverObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/NeverObservable'; diff --git a/node_modules/rxjs/observable/NeverObservable.js b/node_modules/rxjs/observable/NeverObservable.js new file mode 100644 index 00000000..a53c68ae --- /dev/null +++ b/node_modules/rxjs/observable/NeverObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/NeverObservable")); +//# sourceMappingURL=NeverObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/NeverObservable.js.map b/node_modules/rxjs/observable/NeverObservable.js.map new file mode 100644 index 00000000..70245d11 --- /dev/null +++ b/node_modules/rxjs/observable/NeverObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NeverObservable.js","sources":["../src/observable/NeverObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/PairsObservable.d.ts b/node_modules/rxjs/observable/PairsObservable.d.ts new file mode 100644 index 00000000..d0307884 --- /dev/null +++ b/node_modules/rxjs/observable/PairsObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/PairsObservable'; diff --git a/node_modules/rxjs/observable/PairsObservable.js b/node_modules/rxjs/observable/PairsObservable.js new file mode 100644 index 00000000..a352afb0 --- /dev/null +++ b/node_modules/rxjs/observable/PairsObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/PairsObservable")); +//# sourceMappingURL=PairsObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/PairsObservable.js.map b/node_modules/rxjs/observable/PairsObservable.js.map new file mode 100644 index 00000000..b35691df --- /dev/null +++ b/node_modules/rxjs/observable/PairsObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PairsObservable.js","sources":["../src/observable/PairsObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/PromiseObservable.d.ts b/node_modules/rxjs/observable/PromiseObservable.d.ts new file mode 100644 index 00000000..ae0aac25 --- /dev/null +++ b/node_modules/rxjs/observable/PromiseObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/PromiseObservable'; diff --git a/node_modules/rxjs/observable/PromiseObservable.js b/node_modules/rxjs/observable/PromiseObservable.js new file mode 100644 index 00000000..2660a27e --- /dev/null +++ b/node_modules/rxjs/observable/PromiseObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/PromiseObservable")); +//# sourceMappingURL=PromiseObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/PromiseObservable.js.map b/node_modules/rxjs/observable/PromiseObservable.js.map new file mode 100644 index 00000000..05f774a4 --- /dev/null +++ b/node_modules/rxjs/observable/PromiseObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PromiseObservable.js","sources":["../src/observable/PromiseObservable.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"} diff --git a/node_modules/rxjs/observable/RangeObservable.d.ts b/node_modules/rxjs/observable/RangeObservable.d.ts new file mode 100644 index 00000000..f500c0a9 --- /dev/null +++ b/node_modules/rxjs/observable/RangeObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/RangeObservable'; diff --git a/node_modules/rxjs/observable/RangeObservable.js b/node_modules/rxjs/observable/RangeObservable.js new file mode 100644 index 00000000..f24002a5 --- /dev/null +++ b/node_modules/rxjs/observable/RangeObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/RangeObservable")); +//# sourceMappingURL=RangeObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/RangeObservable.js.map b/node_modules/rxjs/observable/RangeObservable.js.map new file mode 100644 index 00000000..94325942 --- /dev/null +++ b/node_modules/rxjs/observable/RangeObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RangeObservable.js","sources":["../src/observable/RangeObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/ScalarObservable.d.ts b/node_modules/rxjs/observable/ScalarObservable.d.ts new file mode 100644 index 00000000..a353068a --- /dev/null +++ b/node_modules/rxjs/observable/ScalarObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ScalarObservable'; diff --git a/node_modules/rxjs/observable/ScalarObservable.js b/node_modules/rxjs/observable/ScalarObservable.js new file mode 100644 index 00000000..be97f285 --- /dev/null +++ b/node_modules/rxjs/observable/ScalarObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/ScalarObservable")); +//# sourceMappingURL=ScalarObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/ScalarObservable.js.map b/node_modules/rxjs/observable/ScalarObservable.js.map new file mode 100644 index 00000000..4c560adf --- /dev/null +++ b/node_modules/rxjs/observable/ScalarObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ScalarObservable.js","sources":["../src/observable/ScalarObservable.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"} diff --git a/node_modules/rxjs/observable/SubscribeOnObservable.d.ts b/node_modules/rxjs/observable/SubscribeOnObservable.d.ts new file mode 100644 index 00000000..64357278 --- /dev/null +++ b/node_modules/rxjs/observable/SubscribeOnObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/SubscribeOnObservable'; diff --git a/node_modules/rxjs/observable/SubscribeOnObservable.js b/node_modules/rxjs/observable/SubscribeOnObservable.js new file mode 100644 index 00000000..f354b932 --- /dev/null +++ b/node_modules/rxjs/observable/SubscribeOnObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/SubscribeOnObservable")); +//# sourceMappingURL=SubscribeOnObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/SubscribeOnObservable.js.map b/node_modules/rxjs/observable/SubscribeOnObservable.js.map new file mode 100644 index 00000000..a9f14f3a --- /dev/null +++ b/node_modules/rxjs/observable/SubscribeOnObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscribeOnObservable.js","sources":["../src/observable/SubscribeOnObservable.ts"],"names":[],"mappings":";;;;;AAAA,kEAA6D"} diff --git a/node_modules/rxjs/observable/TimerObservable.d.ts b/node_modules/rxjs/observable/TimerObservable.d.ts new file mode 100644 index 00000000..02b4a513 --- /dev/null +++ b/node_modules/rxjs/observable/TimerObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/TimerObservable'; diff --git a/node_modules/rxjs/observable/TimerObservable.js b/node_modules/rxjs/observable/TimerObservable.js new file mode 100644 index 00000000..5058bef6 --- /dev/null +++ b/node_modules/rxjs/observable/TimerObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/TimerObservable")); +//# sourceMappingURL=TimerObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/TimerObservable.js.map b/node_modules/rxjs/observable/TimerObservable.js.map new file mode 100644 index 00000000..fc5ea45a --- /dev/null +++ b/node_modules/rxjs/observable/TimerObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TimerObservable.js","sources":["../src/observable/TimerObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/UsingObservable.d.ts b/node_modules/rxjs/observable/UsingObservable.d.ts new file mode 100644 index 00000000..c24410f9 --- /dev/null +++ b/node_modules/rxjs/observable/UsingObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/UsingObservable'; diff --git a/node_modules/rxjs/observable/UsingObservable.js b/node_modules/rxjs/observable/UsingObservable.js new file mode 100644 index 00000000..fbb19bc2 --- /dev/null +++ b/node_modules/rxjs/observable/UsingObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/UsingObservable")); +//# sourceMappingURL=UsingObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/UsingObservable.js.map b/node_modules/rxjs/observable/UsingObservable.js.map new file mode 100644 index 00000000..a94931ea --- /dev/null +++ b/node_modules/rxjs/observable/UsingObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UsingObservable.js","sources":["../src/observable/UsingObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/observable/bindCallback.d.ts b/node_modules/rxjs/observable/bindCallback.d.ts new file mode 100644 index 00000000..aab5734d --- /dev/null +++ b/node_modules/rxjs/observable/bindCallback.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/bindCallback'; diff --git a/node_modules/rxjs/observable/bindCallback.js b/node_modules/rxjs/observable/bindCallback.js new file mode 100644 index 00000000..fb1bde47 --- /dev/null +++ b/node_modules/rxjs/observable/bindCallback.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/bindCallback")); +//# sourceMappingURL=bindCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/bindCallback.js.map b/node_modules/rxjs/observable/bindCallback.js.map new file mode 100644 index 00000000..b9438f43 --- /dev/null +++ b/node_modules/rxjs/observable/bindCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindCallback.js","sources":["../src/observable/bindCallback.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/observable/bindNodeCallback.d.ts b/node_modules/rxjs/observable/bindNodeCallback.d.ts new file mode 100644 index 00000000..d5bfe5d9 --- /dev/null +++ b/node_modules/rxjs/observable/bindNodeCallback.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/bindNodeCallback'; diff --git a/node_modules/rxjs/observable/bindNodeCallback.js b/node_modules/rxjs/observable/bindNodeCallback.js new file mode 100644 index 00000000..826c0904 --- /dev/null +++ b/node_modules/rxjs/observable/bindNodeCallback.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/bindNodeCallback")); +//# sourceMappingURL=bindNodeCallback.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/bindNodeCallback.js.map b/node_modules/rxjs/observable/bindNodeCallback.js.map new file mode 100644 index 00000000..e9420efa --- /dev/null +++ b/node_modules/rxjs/observable/bindNodeCallback.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bindNodeCallback.js","sources":["../src/observable/bindNodeCallback.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"} diff --git a/node_modules/rxjs/observable/combineLatest.d.ts b/node_modules/rxjs/observable/combineLatest.d.ts new file mode 100644 index 00000000..d4b70330 --- /dev/null +++ b/node_modules/rxjs/observable/combineLatest.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/combineLatest'; diff --git a/node_modules/rxjs/observable/combineLatest.js b/node_modules/rxjs/observable/combineLatest.js new file mode 100644 index 00000000..e6424b4c --- /dev/null +++ b/node_modules/rxjs/observable/combineLatest.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/combineLatest")); +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/combineLatest.js.map b/node_modules/rxjs/observable/combineLatest.js.map new file mode 100644 index 00000000..bf27da32 --- /dev/null +++ b/node_modules/rxjs/observable/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../src/observable/combineLatest.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/observable/concat.d.ts b/node_modules/rxjs/observable/concat.d.ts new file mode 100644 index 00000000..673b315e --- /dev/null +++ b/node_modules/rxjs/observable/concat.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/concat'; diff --git a/node_modules/rxjs/observable/concat.js b/node_modules/rxjs/observable/concat.js new file mode 100644 index 00000000..766857a4 --- /dev/null +++ b/node_modules/rxjs/observable/concat.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/concat")); +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/concat.js.map b/node_modules/rxjs/observable/concat.js.map new file mode 100644 index 00000000..6b7a0057 --- /dev/null +++ b/node_modules/rxjs/observable/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../src/observable/concat.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/observable/defer.d.ts b/node_modules/rxjs/observable/defer.d.ts new file mode 100644 index 00000000..1a02f81f --- /dev/null +++ b/node_modules/rxjs/observable/defer.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/defer'; diff --git a/node_modules/rxjs/observable/defer.js b/node_modules/rxjs/observable/defer.js new file mode 100644 index 00000000..4ada85e1 --- /dev/null +++ b/node_modules/rxjs/observable/defer.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/defer")); +//# sourceMappingURL=defer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/defer.js.map b/node_modules/rxjs/observable/defer.js.map new file mode 100644 index 00000000..4826a98d --- /dev/null +++ b/node_modules/rxjs/observable/defer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defer.js","sources":["../src/observable/defer.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/dom/AjaxObservable.d.ts b/node_modules/rxjs/observable/dom/AjaxObservable.d.ts new file mode 100644 index 00000000..e216730e --- /dev/null +++ b/node_modules/rxjs/observable/dom/AjaxObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/AjaxObservable'; diff --git a/node_modules/rxjs/observable/dom/AjaxObservable.js b/node_modules/rxjs/observable/dom/AjaxObservable.js new file mode 100644 index 00000000..91ef18a9 --- /dev/null +++ b/node_modules/rxjs/observable/dom/AjaxObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/dom/AjaxObservable")); +//# sourceMappingURL=AjaxObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/dom/AjaxObservable.js.map b/node_modules/rxjs/observable/dom/AjaxObservable.js.map new file mode 100644 index 00000000..2e838d76 --- /dev/null +++ b/node_modules/rxjs/observable/dom/AjaxObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"AjaxObservable.js","sources":["../../src/observable/dom/AjaxObservable.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"} diff --git a/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts b/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts new file mode 100644 index 00000000..d528bf53 --- /dev/null +++ b/node_modules/rxjs/observable/dom/WebSocketSubject.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/WebSocketSubject'; diff --git a/node_modules/rxjs/observable/dom/WebSocketSubject.js b/node_modules/rxjs/observable/dom/WebSocketSubject.js new file mode 100644 index 00000000..bf02ae9f --- /dev/null +++ b/node_modules/rxjs/observable/dom/WebSocketSubject.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/dom/WebSocketSubject")); +//# sourceMappingURL=WebSocketSubject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/dom/WebSocketSubject.js.map b/node_modules/rxjs/observable/dom/WebSocketSubject.js.map new file mode 100644 index 00000000..60a64eed --- /dev/null +++ b/node_modules/rxjs/observable/dom/WebSocketSubject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"WebSocketSubject.js","sources":["../../src/observable/dom/WebSocketSubject.ts"],"names":[],"mappings":";;;;;AAAA,iEAA4D"} diff --git a/node_modules/rxjs/observable/dom/ajax.d.ts b/node_modules/rxjs/observable/dom/ajax.d.ts new file mode 100644 index 00000000..495c98d6 --- /dev/null +++ b/node_modules/rxjs/observable/dom/ajax.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/ajax'; diff --git a/node_modules/rxjs/observable/dom/ajax.js b/node_modules/rxjs/observable/dom/ajax.js new file mode 100644 index 00000000..cd1cc877 --- /dev/null +++ b/node_modules/rxjs/observable/dom/ajax.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/dom/ajax")); +//# sourceMappingURL=ajax.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/dom/ajax.js.map b/node_modules/rxjs/observable/dom/ajax.js.map new file mode 100644 index 00000000..1b339885 --- /dev/null +++ b/node_modules/rxjs/observable/dom/ajax.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.js","sources":["../../src/observable/dom/ajax.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/observable/dom/webSocket.d.ts b/node_modules/rxjs/observable/dom/webSocket.d.ts new file mode 100644 index 00000000..c2fa408d --- /dev/null +++ b/node_modules/rxjs/observable/dom/webSocket.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/webSocket'; diff --git a/node_modules/rxjs/observable/dom/webSocket.js b/node_modules/rxjs/observable/dom/webSocket.js new file mode 100644 index 00000000..36b767b1 --- /dev/null +++ b/node_modules/rxjs/observable/dom/webSocket.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/dom/webSocket")); +//# sourceMappingURL=webSocket.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/dom/webSocket.js.map b/node_modules/rxjs/observable/dom/webSocket.js.map new file mode 100644 index 00000000..6933d74a --- /dev/null +++ b/node_modules/rxjs/observable/dom/webSocket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webSocket.js","sources":["../../src/observable/dom/webSocket.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/observable/empty.d.ts b/node_modules/rxjs/observable/empty.d.ts new file mode 100644 index 00000000..d7ed9cba --- /dev/null +++ b/node_modules/rxjs/observable/empty.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/empty'; diff --git a/node_modules/rxjs/observable/empty.js b/node_modules/rxjs/observable/empty.js new file mode 100644 index 00000000..02a2c464 --- /dev/null +++ b/node_modules/rxjs/observable/empty.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/empty")); +//# sourceMappingURL=empty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/empty.js.map b/node_modules/rxjs/observable/empty.js.map new file mode 100644 index 00000000..27530bfb --- /dev/null +++ b/node_modules/rxjs/observable/empty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"empty.js","sources":["../src/observable/empty.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/forkJoin.d.ts b/node_modules/rxjs/observable/forkJoin.d.ts new file mode 100644 index 00000000..3720625d --- /dev/null +++ b/node_modules/rxjs/observable/forkJoin.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/forkJoin'; diff --git a/node_modules/rxjs/observable/forkJoin.js b/node_modules/rxjs/observable/forkJoin.js new file mode 100644 index 00000000..c036f46a --- /dev/null +++ b/node_modules/rxjs/observable/forkJoin.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/forkJoin")); +//# sourceMappingURL=forkJoin.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/forkJoin.js.map b/node_modules/rxjs/observable/forkJoin.js.map new file mode 100644 index 00000000..53dc3114 --- /dev/null +++ b/node_modules/rxjs/observable/forkJoin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forkJoin.js","sources":["../src/observable/forkJoin.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/observable/from.d.ts b/node_modules/rxjs/observable/from.d.ts new file mode 100644 index 00000000..37d2b3ad --- /dev/null +++ b/node_modules/rxjs/observable/from.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/from'; diff --git a/node_modules/rxjs/observable/from.js b/node_modules/rxjs/observable/from.js new file mode 100644 index 00000000..d9a0f58b --- /dev/null +++ b/node_modules/rxjs/observable/from.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/from")); +//# sourceMappingURL=from.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/from.js.map b/node_modules/rxjs/observable/from.js.map new file mode 100644 index 00000000..f4e79c48 --- /dev/null +++ b/node_modules/rxjs/observable/from.js.map @@ -0,0 +1 @@ +{"version":3,"file":"from.js","sources":["../src/observable/from.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/observable/fromArray.d.ts b/node_modules/rxjs/observable/fromArray.d.ts new file mode 100644 index 00000000..97f8377a --- /dev/null +++ b/node_modules/rxjs/observable/fromArray.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromArray'; diff --git a/node_modules/rxjs/observable/fromArray.js b/node_modules/rxjs/observable/fromArray.js new file mode 100644 index 00000000..cf2bdc8c --- /dev/null +++ b/node_modules/rxjs/observable/fromArray.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/fromArray")); +//# sourceMappingURL=fromArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/fromArray.js.map b/node_modules/rxjs/observable/fromArray.js.map new file mode 100644 index 00000000..bad30db1 --- /dev/null +++ b/node_modules/rxjs/observable/fromArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromArray.js","sources":["../src/observable/fromArray.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/observable/fromEvent.d.ts b/node_modules/rxjs/observable/fromEvent.d.ts new file mode 100644 index 00000000..0312e3e8 --- /dev/null +++ b/node_modules/rxjs/observable/fromEvent.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromEvent'; diff --git a/node_modules/rxjs/observable/fromEvent.js b/node_modules/rxjs/observable/fromEvent.js new file mode 100644 index 00000000..bb8a1b09 --- /dev/null +++ b/node_modules/rxjs/observable/fromEvent.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/fromEvent")); +//# sourceMappingURL=fromEvent.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/fromEvent.js.map b/node_modules/rxjs/observable/fromEvent.js.map new file mode 100644 index 00000000..5417b2b4 --- /dev/null +++ b/node_modules/rxjs/observable/fromEvent.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEvent.js","sources":["../src/observable/fromEvent.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/observable/fromEventPattern.d.ts b/node_modules/rxjs/observable/fromEventPattern.d.ts new file mode 100644 index 00000000..6662550a --- /dev/null +++ b/node_modules/rxjs/observable/fromEventPattern.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromEventPattern'; diff --git a/node_modules/rxjs/observable/fromEventPattern.js b/node_modules/rxjs/observable/fromEventPattern.js new file mode 100644 index 00000000..fe42d970 --- /dev/null +++ b/node_modules/rxjs/observable/fromEventPattern.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/fromEventPattern")); +//# sourceMappingURL=fromEventPattern.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/fromEventPattern.js.map b/node_modules/rxjs/observable/fromEventPattern.js.map new file mode 100644 index 00000000..ae394470 --- /dev/null +++ b/node_modules/rxjs/observable/fromEventPattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromEventPattern.js","sources":["../src/observable/fromEventPattern.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"} diff --git a/node_modules/rxjs/observable/fromIterable.d.ts b/node_modules/rxjs/observable/fromIterable.d.ts new file mode 100644 index 00000000..ee359a26 --- /dev/null +++ b/node_modules/rxjs/observable/fromIterable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromIterable'; diff --git a/node_modules/rxjs/observable/fromIterable.js b/node_modules/rxjs/observable/fromIterable.js new file mode 100644 index 00000000..fe33fa54 --- /dev/null +++ b/node_modules/rxjs/observable/fromIterable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/fromIterable")); +//# sourceMappingURL=fromIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/fromIterable.js.map b/node_modules/rxjs/observable/fromIterable.js.map new file mode 100644 index 00000000..64c2777b --- /dev/null +++ b/node_modules/rxjs/observable/fromIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromIterable.js","sources":["../src/observable/fromIterable.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/observable/fromPromise.d.ts b/node_modules/rxjs/observable/fromPromise.d.ts new file mode 100644 index 00000000..b580adc3 --- /dev/null +++ b/node_modules/rxjs/observable/fromPromise.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromPromise'; diff --git a/node_modules/rxjs/observable/fromPromise.js b/node_modules/rxjs/observable/fromPromise.js new file mode 100644 index 00000000..d0c6e207 --- /dev/null +++ b/node_modules/rxjs/observable/fromPromise.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/fromPromise")); +//# sourceMappingURL=fromPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/fromPromise.js.map b/node_modules/rxjs/observable/fromPromise.js.map new file mode 100644 index 00000000..8affd773 --- /dev/null +++ b/node_modules/rxjs/observable/fromPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"fromPromise.js","sources":["../src/observable/fromPromise.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/observable/generate.d.ts b/node_modules/rxjs/observable/generate.d.ts new file mode 100644 index 00000000..ad23753b --- /dev/null +++ b/node_modules/rxjs/observable/generate.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/generate'; diff --git a/node_modules/rxjs/observable/generate.js b/node_modules/rxjs/observable/generate.js new file mode 100644 index 00000000..719f66fe --- /dev/null +++ b/node_modules/rxjs/observable/generate.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/generate")); +//# sourceMappingURL=generate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/generate.js.map b/node_modules/rxjs/observable/generate.js.map new file mode 100644 index 00000000..ee7be9d4 --- /dev/null +++ b/node_modules/rxjs/observable/generate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"generate.js","sources":["../src/observable/generate.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/observable/if.d.ts b/node_modules/rxjs/observable/if.d.ts new file mode 100644 index 00000000..71a71a42 --- /dev/null +++ b/node_modules/rxjs/observable/if.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/if'; diff --git a/node_modules/rxjs/observable/if.js b/node_modules/rxjs/observable/if.js new file mode 100644 index 00000000..2d260edf --- /dev/null +++ b/node_modules/rxjs/observable/if.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/if")); +//# sourceMappingURL=if.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/if.js.map b/node_modules/rxjs/observable/if.js.map new file mode 100644 index 00000000..d64bec14 --- /dev/null +++ b/node_modules/rxjs/observable/if.js.map @@ -0,0 +1 @@ +{"version":3,"file":"if.js","sources":["../src/observable/if.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/observable/interval.d.ts b/node_modules/rxjs/observable/interval.d.ts new file mode 100644 index 00000000..273374ae --- /dev/null +++ b/node_modules/rxjs/observable/interval.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/interval'; diff --git a/node_modules/rxjs/observable/interval.js b/node_modules/rxjs/observable/interval.js new file mode 100644 index 00000000..b7468659 --- /dev/null +++ b/node_modules/rxjs/observable/interval.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/interval")); +//# sourceMappingURL=interval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/interval.js.map b/node_modules/rxjs/observable/interval.js.map new file mode 100644 index 00000000..ed258a40 --- /dev/null +++ b/node_modules/rxjs/observable/interval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interval.js","sources":["../src/observable/interval.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/observable/merge.d.ts b/node_modules/rxjs/observable/merge.d.ts new file mode 100644 index 00000000..5cbace99 --- /dev/null +++ b/node_modules/rxjs/observable/merge.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/merge'; diff --git a/node_modules/rxjs/observable/merge.js b/node_modules/rxjs/observable/merge.js new file mode 100644 index 00000000..39ccb558 --- /dev/null +++ b/node_modules/rxjs/observable/merge.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/merge")); +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/merge.js.map b/node_modules/rxjs/observable/merge.js.map new file mode 100644 index 00000000..01c6ef49 --- /dev/null +++ b/node_modules/rxjs/observable/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../src/observable/merge.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/never.d.ts b/node_modules/rxjs/observable/never.d.ts new file mode 100644 index 00000000..8d8b24c1 --- /dev/null +++ b/node_modules/rxjs/observable/never.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/never'; diff --git a/node_modules/rxjs/observable/never.js b/node_modules/rxjs/observable/never.js new file mode 100644 index 00000000..dd4b5f6b --- /dev/null +++ b/node_modules/rxjs/observable/never.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/never")); +//# sourceMappingURL=never.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/never.js.map b/node_modules/rxjs/observable/never.js.map new file mode 100644 index 00000000..22eda3db --- /dev/null +++ b/node_modules/rxjs/observable/never.js.map @@ -0,0 +1 @@ +{"version":3,"file":"never.js","sources":["../src/observable/never.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/of.d.ts b/node_modules/rxjs/observable/of.d.ts new file mode 100644 index 00000000..b61ca785 --- /dev/null +++ b/node_modules/rxjs/observable/of.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/of'; diff --git a/node_modules/rxjs/observable/of.js b/node_modules/rxjs/observable/of.js new file mode 100644 index 00000000..7c2d9539 --- /dev/null +++ b/node_modules/rxjs/observable/of.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/of")); +//# sourceMappingURL=of.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/of.js.map b/node_modules/rxjs/observable/of.js.map new file mode 100644 index 00000000..bd1d12e3 --- /dev/null +++ b/node_modules/rxjs/observable/of.js.map @@ -0,0 +1 @@ +{"version":3,"file":"of.js","sources":["../src/observable/of.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/observable/onErrorResumeNext.d.ts b/node_modules/rxjs/observable/onErrorResumeNext.d.ts new file mode 100644 index 00000000..8b46336f --- /dev/null +++ b/node_modules/rxjs/observable/onErrorResumeNext.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/onErrorResumeNext'; diff --git a/node_modules/rxjs/observable/onErrorResumeNext.js b/node_modules/rxjs/observable/onErrorResumeNext.js new file mode 100644 index 00000000..5b4c7e50 --- /dev/null +++ b/node_modules/rxjs/observable/onErrorResumeNext.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/onErrorResumeNext")); +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/onErrorResumeNext.js.map b/node_modules/rxjs/observable/onErrorResumeNext.js.map new file mode 100644 index 00000000..cb1ccc30 --- /dev/null +++ b/node_modules/rxjs/observable/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../src/observable/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"} diff --git a/node_modules/rxjs/observable/pairs.d.ts b/node_modules/rxjs/observable/pairs.d.ts new file mode 100644 index 00000000..59ea93ee --- /dev/null +++ b/node_modules/rxjs/observable/pairs.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/pairs'; diff --git a/node_modules/rxjs/observable/pairs.js b/node_modules/rxjs/observable/pairs.js new file mode 100644 index 00000000..836bddd0 --- /dev/null +++ b/node_modules/rxjs/observable/pairs.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/pairs")); +//# sourceMappingURL=pairs.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/pairs.js.map b/node_modules/rxjs/observable/pairs.js.map new file mode 100644 index 00000000..71bd4e27 --- /dev/null +++ b/node_modules/rxjs/observable/pairs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairs.js","sources":["../src/observable/pairs.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/race.d.ts b/node_modules/rxjs/observable/race.d.ts new file mode 100644 index 00000000..5c05cde5 --- /dev/null +++ b/node_modules/rxjs/observable/race.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/race'; diff --git a/node_modules/rxjs/observable/race.js b/node_modules/rxjs/observable/race.js new file mode 100644 index 00000000..4272a67a --- /dev/null +++ b/node_modules/rxjs/observable/race.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/race")); +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/race.js.map b/node_modules/rxjs/observable/race.js.map new file mode 100644 index 00000000..13c33660 --- /dev/null +++ b/node_modules/rxjs/observable/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../src/observable/race.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/observable/range.d.ts b/node_modules/rxjs/observable/range.d.ts new file mode 100644 index 00000000..297046c9 --- /dev/null +++ b/node_modules/rxjs/observable/range.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/range'; diff --git a/node_modules/rxjs/observable/range.js b/node_modules/rxjs/observable/range.js new file mode 100644 index 00000000..cd4af4aa --- /dev/null +++ b/node_modules/rxjs/observable/range.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/range")); +//# sourceMappingURL=range.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/range.js.map b/node_modules/rxjs/observable/range.js.map new file mode 100644 index 00000000..0fbcf419 --- /dev/null +++ b/node_modules/rxjs/observable/range.js.map @@ -0,0 +1 @@ +{"version":3,"file":"range.js","sources":["../src/observable/range.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/throw.d.ts b/node_modules/rxjs/observable/throw.d.ts new file mode 100644 index 00000000..30d43628 --- /dev/null +++ b/node_modules/rxjs/observable/throw.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/throw'; diff --git a/node_modules/rxjs/observable/throw.js b/node_modules/rxjs/observable/throw.js new file mode 100644 index 00000000..9a2fb7e6 --- /dev/null +++ b/node_modules/rxjs/observable/throw.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/throw")); +//# sourceMappingURL=throw.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/throw.js.map b/node_modules/rxjs/observable/throw.js.map new file mode 100644 index 00000000..b8fee0b0 --- /dev/null +++ b/node_modules/rxjs/observable/throw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throw.js","sources":["../src/observable/throw.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/timer.d.ts b/node_modules/rxjs/observable/timer.d.ts new file mode 100644 index 00000000..ac3d4847 --- /dev/null +++ b/node_modules/rxjs/observable/timer.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/timer'; diff --git a/node_modules/rxjs/observable/timer.js b/node_modules/rxjs/observable/timer.js new file mode 100644 index 00000000..340ae41b --- /dev/null +++ b/node_modules/rxjs/observable/timer.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/timer")); +//# sourceMappingURL=timer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/timer.js.map b/node_modules/rxjs/observable/timer.js.map new file mode 100644 index 00000000..4a5f8b4b --- /dev/null +++ b/node_modules/rxjs/observable/timer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timer.js","sources":["../src/observable/timer.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/using.d.ts b/node_modules/rxjs/observable/using.d.ts new file mode 100644 index 00000000..2a9d0e73 --- /dev/null +++ b/node_modules/rxjs/observable/using.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/using'; diff --git a/node_modules/rxjs/observable/using.js b/node_modules/rxjs/observable/using.js new file mode 100644 index 00000000..423a870c --- /dev/null +++ b/node_modules/rxjs/observable/using.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/using")); +//# sourceMappingURL=using.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/using.js.map b/node_modules/rxjs/observable/using.js.map new file mode 100644 index 00000000..268d1520 --- /dev/null +++ b/node_modules/rxjs/observable/using.js.map @@ -0,0 +1 @@ +{"version":3,"file":"using.js","sources":["../src/observable/using.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/observable/zip.d.ts b/node_modules/rxjs/observable/zip.d.ts new file mode 100644 index 00000000..286e2255 --- /dev/null +++ b/node_modules/rxjs/observable/zip.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/zip'; diff --git a/node_modules/rxjs/observable/zip.js b/node_modules/rxjs/observable/zip.js new file mode 100644 index 00000000..907f8282 --- /dev/null +++ b/node_modules/rxjs/observable/zip.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/observable/zip")); +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/observable/zip.js.map b/node_modules/rxjs/observable/zip.js.map new file mode 100644 index 00000000..45beb4c2 --- /dev/null +++ b/node_modules/rxjs/observable/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../src/observable/zip.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/audit.d.ts b/node_modules/rxjs/operator/audit.d.ts new file mode 100644 index 00000000..f99039c0 --- /dev/null +++ b/node_modules/rxjs/operator/audit.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/audit'; diff --git a/node_modules/rxjs/operator/audit.js b/node_modules/rxjs/operator/audit.js new file mode 100644 index 00000000..88b896ff --- /dev/null +++ b/node_modules/rxjs/operator/audit.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/audit")); +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/audit.js.map b/node_modules/rxjs/operator/audit.js.map new file mode 100644 index 00000000..554885c5 --- /dev/null +++ b/node_modules/rxjs/operator/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sources":["../src/operator/audit.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/auditTime.d.ts b/node_modules/rxjs/operator/auditTime.d.ts new file mode 100644 index 00000000..16dcc218 --- /dev/null +++ b/node_modules/rxjs/operator/auditTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/auditTime'; diff --git a/node_modules/rxjs/operator/auditTime.js b/node_modules/rxjs/operator/auditTime.js new file mode 100644 index 00000000..e263d789 --- /dev/null +++ b/node_modules/rxjs/operator/auditTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/auditTime")); +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/auditTime.js.map b/node_modules/rxjs/operator/auditTime.js.map new file mode 100644 index 00000000..650a7428 --- /dev/null +++ b/node_modules/rxjs/operator/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sources":["../src/operator/auditTime.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/buffer.d.ts b/node_modules/rxjs/operator/buffer.d.ts new file mode 100644 index 00000000..ae0e3495 --- /dev/null +++ b/node_modules/rxjs/operator/buffer.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/buffer'; diff --git a/node_modules/rxjs/operator/buffer.js b/node_modules/rxjs/operator/buffer.js new file mode 100644 index 00000000..77268c1b --- /dev/null +++ b/node_modules/rxjs/operator/buffer.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/buffer")); +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/buffer.js.map b/node_modules/rxjs/operator/buffer.js.map new file mode 100644 index 00000000..eb490205 --- /dev/null +++ b/node_modules/rxjs/operator/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sources":["../src/operator/buffer.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/bufferCount.d.ts b/node_modules/rxjs/operator/bufferCount.d.ts new file mode 100644 index 00000000..9883c587 --- /dev/null +++ b/node_modules/rxjs/operator/bufferCount.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferCount'; diff --git a/node_modules/rxjs/operator/bufferCount.js b/node_modules/rxjs/operator/bufferCount.js new file mode 100644 index 00000000..dfbf90d4 --- /dev/null +++ b/node_modules/rxjs/operator/bufferCount.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/bufferCount")); +//# sourceMappingURL=bufferCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/bufferCount.js.map b/node_modules/rxjs/operator/bufferCount.js.map new file mode 100644 index 00000000..7f5908cc --- /dev/null +++ b/node_modules/rxjs/operator/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sources":["../src/operator/bufferCount.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/bufferTime.d.ts b/node_modules/rxjs/operator/bufferTime.d.ts new file mode 100644 index 00000000..74845b48 --- /dev/null +++ b/node_modules/rxjs/operator/bufferTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferTime'; diff --git a/node_modules/rxjs/operator/bufferTime.js b/node_modules/rxjs/operator/bufferTime.js new file mode 100644 index 00000000..48001904 --- /dev/null +++ b/node_modules/rxjs/operator/bufferTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/bufferTime")); +//# sourceMappingURL=bufferTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/bufferTime.js.map b/node_modules/rxjs/operator/bufferTime.js.map new file mode 100644 index 00000000..732765bc --- /dev/null +++ b/node_modules/rxjs/operator/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sources":["../src/operator/bufferTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/bufferToggle.d.ts b/node_modules/rxjs/operator/bufferToggle.d.ts new file mode 100644 index 00000000..3a3ccff9 --- /dev/null +++ b/node_modules/rxjs/operator/bufferToggle.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferToggle'; diff --git a/node_modules/rxjs/operator/bufferToggle.js b/node_modules/rxjs/operator/bufferToggle.js new file mode 100644 index 00000000..d2d957fd --- /dev/null +++ b/node_modules/rxjs/operator/bufferToggle.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/bufferToggle")); +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/bufferToggle.js.map b/node_modules/rxjs/operator/bufferToggle.js.map new file mode 100644 index 00000000..8e48646f --- /dev/null +++ b/node_modules/rxjs/operator/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sources":["../src/operator/bufferToggle.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operator/bufferWhen.d.ts b/node_modules/rxjs/operator/bufferWhen.d.ts new file mode 100644 index 00000000..f394a588 --- /dev/null +++ b/node_modules/rxjs/operator/bufferWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferWhen'; diff --git a/node_modules/rxjs/operator/bufferWhen.js b/node_modules/rxjs/operator/bufferWhen.js new file mode 100644 index 00000000..dc48cf70 --- /dev/null +++ b/node_modules/rxjs/operator/bufferWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/bufferWhen")); +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/bufferWhen.js.map b/node_modules/rxjs/operator/bufferWhen.js.map new file mode 100644 index 00000000..3f532c00 --- /dev/null +++ b/node_modules/rxjs/operator/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sources":["../src/operator/bufferWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/catch.d.ts b/node_modules/rxjs/operator/catch.d.ts new file mode 100644 index 00000000..39c2412d --- /dev/null +++ b/node_modules/rxjs/operator/catch.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/catch'; diff --git a/node_modules/rxjs/operator/catch.js b/node_modules/rxjs/operator/catch.js new file mode 100644 index 00000000..f9bfb59c --- /dev/null +++ b/node_modules/rxjs/operator/catch.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/catch")); +//# sourceMappingURL=catch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/catch.js.map b/node_modules/rxjs/operator/catch.js.map new file mode 100644 index 00000000..f72afa7d --- /dev/null +++ b/node_modules/rxjs/operator/catch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catch.js","sources":["../src/operator/catch.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/combineAll.d.ts b/node_modules/rxjs/operator/combineAll.d.ts new file mode 100644 index 00000000..47ead4ae --- /dev/null +++ b/node_modules/rxjs/operator/combineAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/combineAll'; diff --git a/node_modules/rxjs/operator/combineAll.js b/node_modules/rxjs/operator/combineAll.js new file mode 100644 index 00000000..febfab5b --- /dev/null +++ b/node_modules/rxjs/operator/combineAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/combineAll")); +//# sourceMappingURL=combineAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/combineAll.js.map b/node_modules/rxjs/operator/combineAll.js.map new file mode 100644 index 00000000..5826513e --- /dev/null +++ b/node_modules/rxjs/operator/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sources":["../src/operator/combineAll.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/combineLatest.d.ts b/node_modules/rxjs/operator/combineLatest.d.ts new file mode 100644 index 00000000..57197968 --- /dev/null +++ b/node_modules/rxjs/operator/combineLatest.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/combineLatest'; diff --git a/node_modules/rxjs/operator/combineLatest.js b/node_modules/rxjs/operator/combineLatest.js new file mode 100644 index 00000000..1ab3ad1e --- /dev/null +++ b/node_modules/rxjs/operator/combineLatest.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/combineLatest")); +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/combineLatest.js.map b/node_modules/rxjs/operator/combineLatest.js.map new file mode 100644 index 00000000..776b9c68 --- /dev/null +++ b/node_modules/rxjs/operator/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../src/operator/combineLatest.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operator/concat.d.ts b/node_modules/rxjs/operator/concat.d.ts new file mode 100644 index 00000000..7937d7ab --- /dev/null +++ b/node_modules/rxjs/operator/concat.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concat'; diff --git a/node_modules/rxjs/operator/concat.js b/node_modules/rxjs/operator/concat.js new file mode 100644 index 00000000..5ab71fa9 --- /dev/null +++ b/node_modules/rxjs/operator/concat.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/concat")); +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/concat.js.map b/node_modules/rxjs/operator/concat.js.map new file mode 100644 index 00000000..64da9676 --- /dev/null +++ b/node_modules/rxjs/operator/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../src/operator/concat.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/concatAll.d.ts b/node_modules/rxjs/operator/concatAll.d.ts new file mode 100644 index 00000000..ac3f2027 --- /dev/null +++ b/node_modules/rxjs/operator/concatAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concatAll'; diff --git a/node_modules/rxjs/operator/concatAll.js b/node_modules/rxjs/operator/concatAll.js new file mode 100644 index 00000000..c7bedea3 --- /dev/null +++ b/node_modules/rxjs/operator/concatAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/concatAll")); +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/concatAll.js.map b/node_modules/rxjs/operator/concatAll.js.map new file mode 100644 index 00000000..7567e9e2 --- /dev/null +++ b/node_modules/rxjs/operator/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sources":["../src/operator/concatAll.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/concatMap.d.ts b/node_modules/rxjs/operator/concatMap.d.ts new file mode 100644 index 00000000..96cf01fb --- /dev/null +++ b/node_modules/rxjs/operator/concatMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concatMap'; diff --git a/node_modules/rxjs/operator/concatMap.js b/node_modules/rxjs/operator/concatMap.js new file mode 100644 index 00000000..80fa9561 --- /dev/null +++ b/node_modules/rxjs/operator/concatMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/concatMap")); +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/concatMap.js.map b/node_modules/rxjs/operator/concatMap.js.map new file mode 100644 index 00000000..6ea83a37 --- /dev/null +++ b/node_modules/rxjs/operator/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sources":["../src/operator/concatMap.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/concatMapTo.d.ts b/node_modules/rxjs/operator/concatMapTo.d.ts new file mode 100644 index 00000000..ccc3cd50 --- /dev/null +++ b/node_modules/rxjs/operator/concatMapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concatMapTo'; diff --git a/node_modules/rxjs/operator/concatMapTo.js b/node_modules/rxjs/operator/concatMapTo.js new file mode 100644 index 00000000..1af3dbce --- /dev/null +++ b/node_modules/rxjs/operator/concatMapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/concatMapTo")); +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/concatMapTo.js.map b/node_modules/rxjs/operator/concatMapTo.js.map new file mode 100644 index 00000000..44c0185e --- /dev/null +++ b/node_modules/rxjs/operator/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sources":["../src/operator/concatMapTo.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/count.d.ts b/node_modules/rxjs/operator/count.d.ts new file mode 100644 index 00000000..d9b4699b --- /dev/null +++ b/node_modules/rxjs/operator/count.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/count'; diff --git a/node_modules/rxjs/operator/count.js b/node_modules/rxjs/operator/count.js new file mode 100644 index 00000000..dced2d36 --- /dev/null +++ b/node_modules/rxjs/operator/count.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/count")); +//# sourceMappingURL=count.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/count.js.map b/node_modules/rxjs/operator/count.js.map new file mode 100644 index 00000000..8464a9f2 --- /dev/null +++ b/node_modules/rxjs/operator/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sources":["../src/operator/count.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/debounce.d.ts b/node_modules/rxjs/operator/debounce.d.ts new file mode 100644 index 00000000..69fffd92 --- /dev/null +++ b/node_modules/rxjs/operator/debounce.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/debounce'; diff --git a/node_modules/rxjs/operator/debounce.js b/node_modules/rxjs/operator/debounce.js new file mode 100644 index 00000000..f79e230d --- /dev/null +++ b/node_modules/rxjs/operator/debounce.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/debounce")); +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/debounce.js.map b/node_modules/rxjs/operator/debounce.js.map new file mode 100644 index 00000000..a79e6acf --- /dev/null +++ b/node_modules/rxjs/operator/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sources":["../src/operator/debounce.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/debounceTime.d.ts b/node_modules/rxjs/operator/debounceTime.d.ts new file mode 100644 index 00000000..5e51c65e --- /dev/null +++ b/node_modules/rxjs/operator/debounceTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/debounceTime'; diff --git a/node_modules/rxjs/operator/debounceTime.js b/node_modules/rxjs/operator/debounceTime.js new file mode 100644 index 00000000..547fcf86 --- /dev/null +++ b/node_modules/rxjs/operator/debounceTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/debounceTime")); +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/debounceTime.js.map b/node_modules/rxjs/operator/debounceTime.js.map new file mode 100644 index 00000000..1d4370be --- /dev/null +++ b/node_modules/rxjs/operator/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sources":["../src/operator/debounceTime.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operator/defaultIfEmpty.d.ts b/node_modules/rxjs/operator/defaultIfEmpty.d.ts new file mode 100644 index 00000000..6f5c6208 --- /dev/null +++ b/node_modules/rxjs/operator/defaultIfEmpty.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/defaultIfEmpty'; diff --git a/node_modules/rxjs/operator/defaultIfEmpty.js b/node_modules/rxjs/operator/defaultIfEmpty.js new file mode 100644 index 00000000..136ea11d --- /dev/null +++ b/node_modules/rxjs/operator/defaultIfEmpty.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/defaultIfEmpty")); +//# sourceMappingURL=defaultIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/defaultIfEmpty.js.map b/node_modules/rxjs/operator/defaultIfEmpty.js.map new file mode 100644 index 00000000..df88f6c0 --- /dev/null +++ b/node_modules/rxjs/operator/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sources":["../src/operator/defaultIfEmpty.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/operator/delay.d.ts b/node_modules/rxjs/operator/delay.d.ts new file mode 100644 index 00000000..823ded33 --- /dev/null +++ b/node_modules/rxjs/operator/delay.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/delay'; diff --git a/node_modules/rxjs/operator/delay.js b/node_modules/rxjs/operator/delay.js new file mode 100644 index 00000000..e5ac4f4f --- /dev/null +++ b/node_modules/rxjs/operator/delay.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/delay")); +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/delay.js.map b/node_modules/rxjs/operator/delay.js.map new file mode 100644 index 00000000..0bde8f58 --- /dev/null +++ b/node_modules/rxjs/operator/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sources":["../src/operator/delay.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/delayWhen.d.ts b/node_modules/rxjs/operator/delayWhen.d.ts new file mode 100644 index 00000000..b28322ad --- /dev/null +++ b/node_modules/rxjs/operator/delayWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/delayWhen'; diff --git a/node_modules/rxjs/operator/delayWhen.js b/node_modules/rxjs/operator/delayWhen.js new file mode 100644 index 00000000..afe0bf45 --- /dev/null +++ b/node_modules/rxjs/operator/delayWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/delayWhen")); +//# sourceMappingURL=delayWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/delayWhen.js.map b/node_modules/rxjs/operator/delayWhen.js.map new file mode 100644 index 00000000..994f496a --- /dev/null +++ b/node_modules/rxjs/operator/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sources":["../src/operator/delayWhen.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/dematerialize.d.ts b/node_modules/rxjs/operator/dematerialize.d.ts new file mode 100644 index 00000000..83f8da9d --- /dev/null +++ b/node_modules/rxjs/operator/dematerialize.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/dematerialize'; diff --git a/node_modules/rxjs/operator/dematerialize.js b/node_modules/rxjs/operator/dematerialize.js new file mode 100644 index 00000000..2092fd45 --- /dev/null +++ b/node_modules/rxjs/operator/dematerialize.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/dematerialize")); +//# sourceMappingURL=dematerialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/dematerialize.js.map b/node_modules/rxjs/operator/dematerialize.js.map new file mode 100644 index 00000000..75c1c99e --- /dev/null +++ b/node_modules/rxjs/operator/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sources":["../src/operator/dematerialize.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operator/distinct.d.ts b/node_modules/rxjs/operator/distinct.d.ts new file mode 100644 index 00000000..b97b8ee9 --- /dev/null +++ b/node_modules/rxjs/operator/distinct.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/distinct'; diff --git a/node_modules/rxjs/operator/distinct.js b/node_modules/rxjs/operator/distinct.js new file mode 100644 index 00000000..5c8afd9e --- /dev/null +++ b/node_modules/rxjs/operator/distinct.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/distinct")); +//# sourceMappingURL=distinct.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/distinct.js.map b/node_modules/rxjs/operator/distinct.js.map new file mode 100644 index 00000000..7e219882 --- /dev/null +++ b/node_modules/rxjs/operator/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sources":["../src/operator/distinct.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/distinctUntilChanged.d.ts b/node_modules/rxjs/operator/distinctUntilChanged.d.ts new file mode 100644 index 00000000..3a5bbc32 --- /dev/null +++ b/node_modules/rxjs/operator/distinctUntilChanged.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/distinctUntilChanged'; diff --git a/node_modules/rxjs/operator/distinctUntilChanged.js b/node_modules/rxjs/operator/distinctUntilChanged.js new file mode 100644 index 00000000..846fb6c5 --- /dev/null +++ b/node_modules/rxjs/operator/distinctUntilChanged.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/distinctUntilChanged")); +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/distinctUntilChanged.js.map b/node_modules/rxjs/operator/distinctUntilChanged.js.map new file mode 100644 index 00000000..2b851f77 --- /dev/null +++ b/node_modules/rxjs/operator/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sources":["../src/operator/distinctUntilChanged.ts"],"names":[],"mappings":";;;;;AAAA,+DAA0D"} diff --git a/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts new file mode 100644 index 00000000..22d42b1f --- /dev/null +++ b/node_modules/rxjs/operator/distinctUntilKeyChanged.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/distinctUntilKeyChanged'; diff --git a/node_modules/rxjs/operator/distinctUntilKeyChanged.js b/node_modules/rxjs/operator/distinctUntilKeyChanged.js new file mode 100644 index 00000000..c6e9dbdd --- /dev/null +++ b/node_modules/rxjs/operator/distinctUntilKeyChanged.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/distinctUntilKeyChanged")); +//# sourceMappingURL=distinctUntilKeyChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map b/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000..5fb6b8d9 --- /dev/null +++ b/node_modules/rxjs/operator/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../src/operator/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;;;;AAAA,kEAA6D"} diff --git a/node_modules/rxjs/operator/do.d.ts b/node_modules/rxjs/operator/do.d.ts new file mode 100644 index 00000000..3b3a79b6 --- /dev/null +++ b/node_modules/rxjs/operator/do.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/do'; diff --git a/node_modules/rxjs/operator/do.js b/node_modules/rxjs/operator/do.js new file mode 100644 index 00000000..27b13bb8 --- /dev/null +++ b/node_modules/rxjs/operator/do.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/do")); +//# sourceMappingURL=do.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/do.js.map b/node_modules/rxjs/operator/do.js.map new file mode 100644 index 00000000..e4984e8d --- /dev/null +++ b/node_modules/rxjs/operator/do.js.map @@ -0,0 +1 @@ +{"version":3,"file":"do.js","sources":["../src/operator/do.ts"],"names":[],"mappings":";;;;;AAAA,6CAAwC"} diff --git a/node_modules/rxjs/operator/elementAt.d.ts b/node_modules/rxjs/operator/elementAt.d.ts new file mode 100644 index 00000000..bcdf7982 --- /dev/null +++ b/node_modules/rxjs/operator/elementAt.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/elementAt'; diff --git a/node_modules/rxjs/operator/elementAt.js b/node_modules/rxjs/operator/elementAt.js new file mode 100644 index 00000000..8536820b --- /dev/null +++ b/node_modules/rxjs/operator/elementAt.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/elementAt")); +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/elementAt.js.map b/node_modules/rxjs/operator/elementAt.js.map new file mode 100644 index 00000000..e2935931 --- /dev/null +++ b/node_modules/rxjs/operator/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sources":["../src/operator/elementAt.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/every.d.ts b/node_modules/rxjs/operator/every.d.ts new file mode 100644 index 00000000..af7e790e --- /dev/null +++ b/node_modules/rxjs/operator/every.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/every'; diff --git a/node_modules/rxjs/operator/every.js b/node_modules/rxjs/operator/every.js new file mode 100644 index 00000000..44ae6ea1 --- /dev/null +++ b/node_modules/rxjs/operator/every.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/every")); +//# sourceMappingURL=every.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/every.js.map b/node_modules/rxjs/operator/every.js.map new file mode 100644 index 00000000..b205b7c5 --- /dev/null +++ b/node_modules/rxjs/operator/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sources":["../src/operator/every.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/exhaust.d.ts b/node_modules/rxjs/operator/exhaust.d.ts new file mode 100644 index 00000000..7af3d2f2 --- /dev/null +++ b/node_modules/rxjs/operator/exhaust.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/exhaust'; diff --git a/node_modules/rxjs/operator/exhaust.js b/node_modules/rxjs/operator/exhaust.js new file mode 100644 index 00000000..20713a36 --- /dev/null +++ b/node_modules/rxjs/operator/exhaust.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/exhaust")); +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/exhaust.js.map b/node_modules/rxjs/operator/exhaust.js.map new file mode 100644 index 00000000..339cfebf --- /dev/null +++ b/node_modules/rxjs/operator/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sources":["../src/operator/exhaust.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operator/exhaustMap.d.ts b/node_modules/rxjs/operator/exhaustMap.d.ts new file mode 100644 index 00000000..822438aa --- /dev/null +++ b/node_modules/rxjs/operator/exhaustMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/exhaustMap'; diff --git a/node_modules/rxjs/operator/exhaustMap.js b/node_modules/rxjs/operator/exhaustMap.js new file mode 100644 index 00000000..203ff368 --- /dev/null +++ b/node_modules/rxjs/operator/exhaustMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/exhaustMap")); +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/exhaustMap.js.map b/node_modules/rxjs/operator/exhaustMap.js.map new file mode 100644 index 00000000..62db5c36 --- /dev/null +++ b/node_modules/rxjs/operator/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sources":["../src/operator/exhaustMap.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/expand.d.ts b/node_modules/rxjs/operator/expand.d.ts new file mode 100644 index 00000000..11df7016 --- /dev/null +++ b/node_modules/rxjs/operator/expand.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/expand'; diff --git a/node_modules/rxjs/operator/expand.js b/node_modules/rxjs/operator/expand.js new file mode 100644 index 00000000..9068f9d9 --- /dev/null +++ b/node_modules/rxjs/operator/expand.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/expand")); +//# sourceMappingURL=expand.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/expand.js.map b/node_modules/rxjs/operator/expand.js.map new file mode 100644 index 00000000..339c0f2c --- /dev/null +++ b/node_modules/rxjs/operator/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sources":["../src/operator/expand.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/filter.d.ts b/node_modules/rxjs/operator/filter.d.ts new file mode 100644 index 00000000..ccc2f245 --- /dev/null +++ b/node_modules/rxjs/operator/filter.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/filter'; diff --git a/node_modules/rxjs/operator/filter.js b/node_modules/rxjs/operator/filter.js new file mode 100644 index 00000000..9c52bd7e --- /dev/null +++ b/node_modules/rxjs/operator/filter.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/filter")); +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/filter.js.map b/node_modules/rxjs/operator/filter.js.map new file mode 100644 index 00000000..6caec4d5 --- /dev/null +++ b/node_modules/rxjs/operator/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sources":["../src/operator/filter.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/finally.d.ts b/node_modules/rxjs/operator/finally.d.ts new file mode 100644 index 00000000..a21b3e1b --- /dev/null +++ b/node_modules/rxjs/operator/finally.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/finally'; diff --git a/node_modules/rxjs/operator/finally.js b/node_modules/rxjs/operator/finally.js new file mode 100644 index 00000000..ab766d98 --- /dev/null +++ b/node_modules/rxjs/operator/finally.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/finally")); +//# sourceMappingURL=finally.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/finally.js.map b/node_modules/rxjs/operator/finally.js.map new file mode 100644 index 00000000..5454dfb2 --- /dev/null +++ b/node_modules/rxjs/operator/finally.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finally.js","sources":["../src/operator/finally.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operator/find.d.ts b/node_modules/rxjs/operator/find.d.ts new file mode 100644 index 00000000..face44bc --- /dev/null +++ b/node_modules/rxjs/operator/find.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/find'; diff --git a/node_modules/rxjs/operator/find.js b/node_modules/rxjs/operator/find.js new file mode 100644 index 00000000..03d1ccd8 --- /dev/null +++ b/node_modules/rxjs/operator/find.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/find")); +//# sourceMappingURL=find.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/find.js.map b/node_modules/rxjs/operator/find.js.map new file mode 100644 index 00000000..1da869d3 --- /dev/null +++ b/node_modules/rxjs/operator/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sources":["../src/operator/find.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operator/findIndex.d.ts b/node_modules/rxjs/operator/findIndex.d.ts new file mode 100644 index 00000000..dd0297a0 --- /dev/null +++ b/node_modules/rxjs/operator/findIndex.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/findIndex'; diff --git a/node_modules/rxjs/operator/findIndex.js b/node_modules/rxjs/operator/findIndex.js new file mode 100644 index 00000000..94311e39 --- /dev/null +++ b/node_modules/rxjs/operator/findIndex.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/findIndex")); +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/findIndex.js.map b/node_modules/rxjs/operator/findIndex.js.map new file mode 100644 index 00000000..a69337ea --- /dev/null +++ b/node_modules/rxjs/operator/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sources":["../src/operator/findIndex.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/first.d.ts b/node_modules/rxjs/operator/first.d.ts new file mode 100644 index 00000000..86843ed3 --- /dev/null +++ b/node_modules/rxjs/operator/first.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/first'; diff --git a/node_modules/rxjs/operator/first.js b/node_modules/rxjs/operator/first.js new file mode 100644 index 00000000..051ee8e2 --- /dev/null +++ b/node_modules/rxjs/operator/first.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/first")); +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/first.js.map b/node_modules/rxjs/operator/first.js.map new file mode 100644 index 00000000..cdadf42e --- /dev/null +++ b/node_modules/rxjs/operator/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sources":["../src/operator/first.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/groupBy.d.ts b/node_modules/rxjs/operator/groupBy.d.ts new file mode 100644 index 00000000..648fac91 --- /dev/null +++ b/node_modules/rxjs/operator/groupBy.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/groupBy'; diff --git a/node_modules/rxjs/operator/groupBy.js b/node_modules/rxjs/operator/groupBy.js new file mode 100644 index 00000000..4bb164a9 --- /dev/null +++ b/node_modules/rxjs/operator/groupBy.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/groupBy")); +//# sourceMappingURL=groupBy.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/groupBy.js.map b/node_modules/rxjs/operator/groupBy.js.map new file mode 100644 index 00000000..64094ed4 --- /dev/null +++ b/node_modules/rxjs/operator/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sources":["../src/operator/groupBy.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operator/ignoreElements.d.ts b/node_modules/rxjs/operator/ignoreElements.d.ts new file mode 100644 index 00000000..b9c3eef0 --- /dev/null +++ b/node_modules/rxjs/operator/ignoreElements.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/ignoreElements'; diff --git a/node_modules/rxjs/operator/ignoreElements.js b/node_modules/rxjs/operator/ignoreElements.js new file mode 100644 index 00000000..99e70f50 --- /dev/null +++ b/node_modules/rxjs/operator/ignoreElements.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/ignoreElements")); +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/ignoreElements.js.map b/node_modules/rxjs/operator/ignoreElements.js.map new file mode 100644 index 00000000..f5c67151 --- /dev/null +++ b/node_modules/rxjs/operator/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sources":["../src/operator/ignoreElements.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/operator/isEmpty.d.ts b/node_modules/rxjs/operator/isEmpty.d.ts new file mode 100644 index 00000000..03da532a --- /dev/null +++ b/node_modules/rxjs/operator/isEmpty.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/isEmpty'; diff --git a/node_modules/rxjs/operator/isEmpty.js b/node_modules/rxjs/operator/isEmpty.js new file mode 100644 index 00000000..ccdc3f3d --- /dev/null +++ b/node_modules/rxjs/operator/isEmpty.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/isEmpty")); +//# sourceMappingURL=isEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/isEmpty.js.map b/node_modules/rxjs/operator/isEmpty.js.map new file mode 100644 index 00000000..f321f6db --- /dev/null +++ b/node_modules/rxjs/operator/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sources":["../src/operator/isEmpty.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operator/last.d.ts b/node_modules/rxjs/operator/last.d.ts new file mode 100644 index 00000000..2d42da81 --- /dev/null +++ b/node_modules/rxjs/operator/last.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/last'; diff --git a/node_modules/rxjs/operator/last.js b/node_modules/rxjs/operator/last.js new file mode 100644 index 00000000..f2e9c4d7 --- /dev/null +++ b/node_modules/rxjs/operator/last.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/last")); +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/last.js.map b/node_modules/rxjs/operator/last.js.map new file mode 100644 index 00000000..df2ee70c --- /dev/null +++ b/node_modules/rxjs/operator/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sources":["../src/operator/last.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operator/let.d.ts b/node_modules/rxjs/operator/let.d.ts new file mode 100644 index 00000000..0f250114 --- /dev/null +++ b/node_modules/rxjs/operator/let.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/let'; diff --git a/node_modules/rxjs/operator/let.js b/node_modules/rxjs/operator/let.js new file mode 100644 index 00000000..0d9ac56b --- /dev/null +++ b/node_modules/rxjs/operator/let.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/let")); +//# sourceMappingURL=let.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/let.js.map b/node_modules/rxjs/operator/let.js.map new file mode 100644 index 00000000..cec78e62 --- /dev/null +++ b/node_modules/rxjs/operator/let.js.map @@ -0,0 +1 @@ +{"version":3,"file":"let.js","sources":["../src/operator/let.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/operator/map.d.ts b/node_modules/rxjs/operator/map.d.ts new file mode 100644 index 00000000..00af2a0b --- /dev/null +++ b/node_modules/rxjs/operator/map.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/map'; diff --git a/node_modules/rxjs/operator/map.js b/node_modules/rxjs/operator/map.js new file mode 100644 index 00000000..00a3de50 --- /dev/null +++ b/node_modules/rxjs/operator/map.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/map")); +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/map.js.map b/node_modules/rxjs/operator/map.js.map new file mode 100644 index 00000000..2e5a3289 --- /dev/null +++ b/node_modules/rxjs/operator/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sources":["../src/operator/map.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/operator/mapTo.d.ts b/node_modules/rxjs/operator/mapTo.d.ts new file mode 100644 index 00000000..ad512743 --- /dev/null +++ b/node_modules/rxjs/operator/mapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mapTo'; diff --git a/node_modules/rxjs/operator/mapTo.js b/node_modules/rxjs/operator/mapTo.js new file mode 100644 index 00000000..bd36257b --- /dev/null +++ b/node_modules/rxjs/operator/mapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/mapTo")); +//# sourceMappingURL=mapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/mapTo.js.map b/node_modules/rxjs/operator/mapTo.js.map new file mode 100644 index 00000000..4e0bb6de --- /dev/null +++ b/node_modules/rxjs/operator/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sources":["../src/operator/mapTo.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/materialize.d.ts b/node_modules/rxjs/operator/materialize.d.ts new file mode 100644 index 00000000..57d501d6 --- /dev/null +++ b/node_modules/rxjs/operator/materialize.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/materialize'; diff --git a/node_modules/rxjs/operator/materialize.js b/node_modules/rxjs/operator/materialize.js new file mode 100644 index 00000000..f9de722a --- /dev/null +++ b/node_modules/rxjs/operator/materialize.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/materialize")); +//# sourceMappingURL=materialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/materialize.js.map b/node_modules/rxjs/operator/materialize.js.map new file mode 100644 index 00000000..86092656 --- /dev/null +++ b/node_modules/rxjs/operator/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sources":["../src/operator/materialize.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/max.d.ts b/node_modules/rxjs/operator/max.d.ts new file mode 100644 index 00000000..e7efcd7d --- /dev/null +++ b/node_modules/rxjs/operator/max.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/max'; diff --git a/node_modules/rxjs/operator/max.js b/node_modules/rxjs/operator/max.js new file mode 100644 index 00000000..abbad54c --- /dev/null +++ b/node_modules/rxjs/operator/max.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/max")); +//# sourceMappingURL=max.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/max.js.map b/node_modules/rxjs/operator/max.js.map new file mode 100644 index 00000000..c359d661 --- /dev/null +++ b/node_modules/rxjs/operator/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sources":["../src/operator/max.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/operator/merge.d.ts b/node_modules/rxjs/operator/merge.d.ts new file mode 100644 index 00000000..039a0d2f --- /dev/null +++ b/node_modules/rxjs/operator/merge.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/merge'; diff --git a/node_modules/rxjs/operator/merge.js b/node_modules/rxjs/operator/merge.js new file mode 100644 index 00000000..00b6dc48 --- /dev/null +++ b/node_modules/rxjs/operator/merge.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/merge")); +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/merge.js.map b/node_modules/rxjs/operator/merge.js.map new file mode 100644 index 00000000..78f822b1 --- /dev/null +++ b/node_modules/rxjs/operator/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../src/operator/merge.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/mergeAll.d.ts b/node_modules/rxjs/operator/mergeAll.d.ts new file mode 100644 index 00000000..1527cc9e --- /dev/null +++ b/node_modules/rxjs/operator/mergeAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeAll'; diff --git a/node_modules/rxjs/operator/mergeAll.js b/node_modules/rxjs/operator/mergeAll.js new file mode 100644 index 00000000..a989c617 --- /dev/null +++ b/node_modules/rxjs/operator/mergeAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/mergeAll")); +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/mergeAll.js.map b/node_modules/rxjs/operator/mergeAll.js.map new file mode 100644 index 00000000..20c167cf --- /dev/null +++ b/node_modules/rxjs/operator/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sources":["../src/operator/mergeAll.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/mergeMap.d.ts b/node_modules/rxjs/operator/mergeMap.d.ts new file mode 100644 index 00000000..d091762a --- /dev/null +++ b/node_modules/rxjs/operator/mergeMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeMap'; diff --git a/node_modules/rxjs/operator/mergeMap.js b/node_modules/rxjs/operator/mergeMap.js new file mode 100644 index 00000000..f980c463 --- /dev/null +++ b/node_modules/rxjs/operator/mergeMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/mergeMap")); +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/mergeMap.js.map b/node_modules/rxjs/operator/mergeMap.js.map new file mode 100644 index 00000000..c371a3ac --- /dev/null +++ b/node_modules/rxjs/operator/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sources":["../src/operator/mergeMap.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/mergeMapTo.d.ts b/node_modules/rxjs/operator/mergeMapTo.d.ts new file mode 100644 index 00000000..2503ab43 --- /dev/null +++ b/node_modules/rxjs/operator/mergeMapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeMapTo'; diff --git a/node_modules/rxjs/operator/mergeMapTo.js b/node_modules/rxjs/operator/mergeMapTo.js new file mode 100644 index 00000000..949cc813 --- /dev/null +++ b/node_modules/rxjs/operator/mergeMapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/mergeMapTo")); +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/mergeMapTo.js.map b/node_modules/rxjs/operator/mergeMapTo.js.map new file mode 100644 index 00000000..78c2f574 --- /dev/null +++ b/node_modules/rxjs/operator/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sources":["../src/operator/mergeMapTo.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/mergeScan.d.ts b/node_modules/rxjs/operator/mergeScan.d.ts new file mode 100644 index 00000000..f8fd1be4 --- /dev/null +++ b/node_modules/rxjs/operator/mergeScan.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeScan'; diff --git a/node_modules/rxjs/operator/mergeScan.js b/node_modules/rxjs/operator/mergeScan.js new file mode 100644 index 00000000..1f004ab5 --- /dev/null +++ b/node_modules/rxjs/operator/mergeScan.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/mergeScan")); +//# sourceMappingURL=mergeScan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/mergeScan.js.map b/node_modules/rxjs/operator/mergeScan.js.map new file mode 100644 index 00000000..83e16009 --- /dev/null +++ b/node_modules/rxjs/operator/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sources":["../src/operator/mergeScan.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/min.d.ts b/node_modules/rxjs/operator/min.d.ts new file mode 100644 index 00000000..b0826668 --- /dev/null +++ b/node_modules/rxjs/operator/min.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/min'; diff --git a/node_modules/rxjs/operator/min.js b/node_modules/rxjs/operator/min.js new file mode 100644 index 00000000..16a81e62 --- /dev/null +++ b/node_modules/rxjs/operator/min.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/min")); +//# sourceMappingURL=min.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/min.js.map b/node_modules/rxjs/operator/min.js.map new file mode 100644 index 00000000..645b413f --- /dev/null +++ b/node_modules/rxjs/operator/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sources":["../src/operator/min.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/operator/multicast.d.ts b/node_modules/rxjs/operator/multicast.d.ts new file mode 100644 index 00000000..16822ab8 --- /dev/null +++ b/node_modules/rxjs/operator/multicast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/multicast'; diff --git a/node_modules/rxjs/operator/multicast.js b/node_modules/rxjs/operator/multicast.js new file mode 100644 index 00000000..f3fca314 --- /dev/null +++ b/node_modules/rxjs/operator/multicast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/multicast")); +//# sourceMappingURL=multicast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/multicast.js.map b/node_modules/rxjs/operator/multicast.js.map new file mode 100644 index 00000000..23aae0a7 --- /dev/null +++ b/node_modules/rxjs/operator/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sources":["../src/operator/multicast.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/observeOn.d.ts b/node_modules/rxjs/operator/observeOn.d.ts new file mode 100644 index 00000000..49d52cf5 --- /dev/null +++ b/node_modules/rxjs/operator/observeOn.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/observeOn'; diff --git a/node_modules/rxjs/operator/observeOn.js b/node_modules/rxjs/operator/observeOn.js new file mode 100644 index 00000000..2f7b7979 --- /dev/null +++ b/node_modules/rxjs/operator/observeOn.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/observeOn")); +//# sourceMappingURL=observeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/observeOn.js.map b/node_modules/rxjs/operator/observeOn.js.map new file mode 100644 index 00000000..ebe37d5c --- /dev/null +++ b/node_modules/rxjs/operator/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sources":["../src/operator/observeOn.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/onErrorResumeNext.d.ts b/node_modules/rxjs/operator/onErrorResumeNext.d.ts new file mode 100644 index 00000000..dee5c58e --- /dev/null +++ b/node_modules/rxjs/operator/onErrorResumeNext.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/onErrorResumeNext'; diff --git a/node_modules/rxjs/operator/onErrorResumeNext.js b/node_modules/rxjs/operator/onErrorResumeNext.js new file mode 100644 index 00000000..e6b1b6b5 --- /dev/null +++ b/node_modules/rxjs/operator/onErrorResumeNext.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/onErrorResumeNext")); +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/onErrorResumeNext.js.map b/node_modules/rxjs/operator/onErrorResumeNext.js.map new file mode 100644 index 00000000..ff363fb4 --- /dev/null +++ b/node_modules/rxjs/operator/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../src/operator/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/operator/pairwise.d.ts b/node_modules/rxjs/operator/pairwise.d.ts new file mode 100644 index 00000000..2db66e09 --- /dev/null +++ b/node_modules/rxjs/operator/pairwise.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/pairwise'; diff --git a/node_modules/rxjs/operator/pairwise.js b/node_modules/rxjs/operator/pairwise.js new file mode 100644 index 00000000..c65339af --- /dev/null +++ b/node_modules/rxjs/operator/pairwise.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/pairwise")); +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/pairwise.js.map b/node_modules/rxjs/operator/pairwise.js.map new file mode 100644 index 00000000..2bcd50dc --- /dev/null +++ b/node_modules/rxjs/operator/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sources":["../src/operator/pairwise.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/partition.d.ts b/node_modules/rxjs/operator/partition.d.ts new file mode 100644 index 00000000..ffb693b8 --- /dev/null +++ b/node_modules/rxjs/operator/partition.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/partition'; diff --git a/node_modules/rxjs/operator/partition.js b/node_modules/rxjs/operator/partition.js new file mode 100644 index 00000000..5127c151 --- /dev/null +++ b/node_modules/rxjs/operator/partition.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/partition")); +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/partition.js.map b/node_modules/rxjs/operator/partition.js.map new file mode 100644 index 00000000..1a025cac --- /dev/null +++ b/node_modules/rxjs/operator/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../src/operator/partition.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/pluck.d.ts b/node_modules/rxjs/operator/pluck.d.ts new file mode 100644 index 00000000..cd308f26 --- /dev/null +++ b/node_modules/rxjs/operator/pluck.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/pluck'; diff --git a/node_modules/rxjs/operator/pluck.js b/node_modules/rxjs/operator/pluck.js new file mode 100644 index 00000000..023f73dc --- /dev/null +++ b/node_modules/rxjs/operator/pluck.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/pluck")); +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/pluck.js.map b/node_modules/rxjs/operator/pluck.js.map new file mode 100644 index 00000000..1dd7d98c --- /dev/null +++ b/node_modules/rxjs/operator/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sources":["../src/operator/pluck.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/publish.d.ts b/node_modules/rxjs/operator/publish.d.ts new file mode 100644 index 00000000..44f7a522 --- /dev/null +++ b/node_modules/rxjs/operator/publish.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publish'; diff --git a/node_modules/rxjs/operator/publish.js b/node_modules/rxjs/operator/publish.js new file mode 100644 index 00000000..d7ba9918 --- /dev/null +++ b/node_modules/rxjs/operator/publish.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/publish")); +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/publish.js.map b/node_modules/rxjs/operator/publish.js.map new file mode 100644 index 00000000..a28014f1 --- /dev/null +++ b/node_modules/rxjs/operator/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sources":["../src/operator/publish.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operator/publishBehavior.d.ts b/node_modules/rxjs/operator/publishBehavior.d.ts new file mode 100644 index 00000000..ae6df513 --- /dev/null +++ b/node_modules/rxjs/operator/publishBehavior.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publishBehavior'; diff --git a/node_modules/rxjs/operator/publishBehavior.js b/node_modules/rxjs/operator/publishBehavior.js new file mode 100644 index 00000000..c5060711 --- /dev/null +++ b/node_modules/rxjs/operator/publishBehavior.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/publishBehavior")); +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/publishBehavior.js.map b/node_modules/rxjs/operator/publishBehavior.js.map new file mode 100644 index 00000000..2e064168 --- /dev/null +++ b/node_modules/rxjs/operator/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sources":["../src/operator/publishBehavior.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/operator/publishLast.d.ts b/node_modules/rxjs/operator/publishLast.d.ts new file mode 100644 index 00000000..b8b857f6 --- /dev/null +++ b/node_modules/rxjs/operator/publishLast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publishLast'; diff --git a/node_modules/rxjs/operator/publishLast.js b/node_modules/rxjs/operator/publishLast.js new file mode 100644 index 00000000..c627f746 --- /dev/null +++ b/node_modules/rxjs/operator/publishLast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/publishLast")); +//# sourceMappingURL=publishLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/publishLast.js.map b/node_modules/rxjs/operator/publishLast.js.map new file mode 100644 index 00000000..7a5491e3 --- /dev/null +++ b/node_modules/rxjs/operator/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sources":["../src/operator/publishLast.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/publishReplay.d.ts b/node_modules/rxjs/operator/publishReplay.d.ts new file mode 100644 index 00000000..d515665a --- /dev/null +++ b/node_modules/rxjs/operator/publishReplay.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publishReplay'; diff --git a/node_modules/rxjs/operator/publishReplay.js b/node_modules/rxjs/operator/publishReplay.js new file mode 100644 index 00000000..5c1e4bd6 --- /dev/null +++ b/node_modules/rxjs/operator/publishReplay.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/publishReplay")); +//# sourceMappingURL=publishReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/publishReplay.js.map b/node_modules/rxjs/operator/publishReplay.js.map new file mode 100644 index 00000000..cc770ca4 --- /dev/null +++ b/node_modules/rxjs/operator/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sources":["../src/operator/publishReplay.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operator/race.d.ts b/node_modules/rxjs/operator/race.d.ts new file mode 100644 index 00000000..13712302 --- /dev/null +++ b/node_modules/rxjs/operator/race.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/race'; diff --git a/node_modules/rxjs/operator/race.js b/node_modules/rxjs/operator/race.js new file mode 100644 index 00000000..038bf340 --- /dev/null +++ b/node_modules/rxjs/operator/race.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/race")); +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/race.js.map b/node_modules/rxjs/operator/race.js.map new file mode 100644 index 00000000..374e4157 --- /dev/null +++ b/node_modules/rxjs/operator/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../src/operator/race.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operator/reduce.d.ts b/node_modules/rxjs/operator/reduce.d.ts new file mode 100644 index 00000000..3051a597 --- /dev/null +++ b/node_modules/rxjs/operator/reduce.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/reduce'; diff --git a/node_modules/rxjs/operator/reduce.js b/node_modules/rxjs/operator/reduce.js new file mode 100644 index 00000000..47c60029 --- /dev/null +++ b/node_modules/rxjs/operator/reduce.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/reduce")); +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/reduce.js.map b/node_modules/rxjs/operator/reduce.js.map new file mode 100644 index 00000000..af7569e1 --- /dev/null +++ b/node_modules/rxjs/operator/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sources":["../src/operator/reduce.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/repeat.d.ts b/node_modules/rxjs/operator/repeat.d.ts new file mode 100644 index 00000000..3cf8344c --- /dev/null +++ b/node_modules/rxjs/operator/repeat.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/repeat'; diff --git a/node_modules/rxjs/operator/repeat.js b/node_modules/rxjs/operator/repeat.js new file mode 100644 index 00000000..8ab3b5aa --- /dev/null +++ b/node_modules/rxjs/operator/repeat.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/repeat")); +//# sourceMappingURL=repeat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/repeat.js.map b/node_modules/rxjs/operator/repeat.js.map new file mode 100644 index 00000000..b1b305d3 --- /dev/null +++ b/node_modules/rxjs/operator/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sources":["../src/operator/repeat.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/repeatWhen.d.ts b/node_modules/rxjs/operator/repeatWhen.d.ts new file mode 100644 index 00000000..c8ab4033 --- /dev/null +++ b/node_modules/rxjs/operator/repeatWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/repeatWhen'; diff --git a/node_modules/rxjs/operator/repeatWhen.js b/node_modules/rxjs/operator/repeatWhen.js new file mode 100644 index 00000000..12851963 --- /dev/null +++ b/node_modules/rxjs/operator/repeatWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/repeatWhen")); +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/repeatWhen.js.map b/node_modules/rxjs/operator/repeatWhen.js.map new file mode 100644 index 00000000..83becb32 --- /dev/null +++ b/node_modules/rxjs/operator/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sources":["../src/operator/repeatWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/retry.d.ts b/node_modules/rxjs/operator/retry.d.ts new file mode 100644 index 00000000..ea769327 --- /dev/null +++ b/node_modules/rxjs/operator/retry.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/retry'; diff --git a/node_modules/rxjs/operator/retry.js b/node_modules/rxjs/operator/retry.js new file mode 100644 index 00000000..7c8febb0 --- /dev/null +++ b/node_modules/rxjs/operator/retry.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/retry")); +//# sourceMappingURL=retry.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/retry.js.map b/node_modules/rxjs/operator/retry.js.map new file mode 100644 index 00000000..d27a2625 --- /dev/null +++ b/node_modules/rxjs/operator/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sources":["../src/operator/retry.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/retryWhen.d.ts b/node_modules/rxjs/operator/retryWhen.d.ts new file mode 100644 index 00000000..c1c4a4d1 --- /dev/null +++ b/node_modules/rxjs/operator/retryWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/retryWhen'; diff --git a/node_modules/rxjs/operator/retryWhen.js b/node_modules/rxjs/operator/retryWhen.js new file mode 100644 index 00000000..918d1777 --- /dev/null +++ b/node_modules/rxjs/operator/retryWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/retryWhen")); +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/retryWhen.js.map b/node_modules/rxjs/operator/retryWhen.js.map new file mode 100644 index 00000000..e6126f69 --- /dev/null +++ b/node_modules/rxjs/operator/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sources":["../src/operator/retryWhen.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/sample.d.ts b/node_modules/rxjs/operator/sample.d.ts new file mode 100644 index 00000000..50c44856 --- /dev/null +++ b/node_modules/rxjs/operator/sample.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/sample'; diff --git a/node_modules/rxjs/operator/sample.js b/node_modules/rxjs/operator/sample.js new file mode 100644 index 00000000..f0b65f7b --- /dev/null +++ b/node_modules/rxjs/operator/sample.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/sample")); +//# sourceMappingURL=sample.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/sample.js.map b/node_modules/rxjs/operator/sample.js.map new file mode 100644 index 00000000..1f24b84e --- /dev/null +++ b/node_modules/rxjs/operator/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sources":["../src/operator/sample.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/sampleTime.d.ts b/node_modules/rxjs/operator/sampleTime.d.ts new file mode 100644 index 00000000..6a88266e --- /dev/null +++ b/node_modules/rxjs/operator/sampleTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/sampleTime'; diff --git a/node_modules/rxjs/operator/sampleTime.js b/node_modules/rxjs/operator/sampleTime.js new file mode 100644 index 00000000..b46e3b3e --- /dev/null +++ b/node_modules/rxjs/operator/sampleTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/sampleTime")); +//# sourceMappingURL=sampleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/sampleTime.js.map b/node_modules/rxjs/operator/sampleTime.js.map new file mode 100644 index 00000000..383ebf07 --- /dev/null +++ b/node_modules/rxjs/operator/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sources":["../src/operator/sampleTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/scan.d.ts b/node_modules/rxjs/operator/scan.d.ts new file mode 100644 index 00000000..07d5f63a --- /dev/null +++ b/node_modules/rxjs/operator/scan.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/scan'; diff --git a/node_modules/rxjs/operator/scan.js b/node_modules/rxjs/operator/scan.js new file mode 100644 index 00000000..09347a2d --- /dev/null +++ b/node_modules/rxjs/operator/scan.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/scan")); +//# sourceMappingURL=scan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/scan.js.map b/node_modules/rxjs/operator/scan.js.map new file mode 100644 index 00000000..cec991ea --- /dev/null +++ b/node_modules/rxjs/operator/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sources":["../src/operator/scan.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operator/sequenceEqual.d.ts b/node_modules/rxjs/operator/sequenceEqual.d.ts new file mode 100644 index 00000000..8a324c28 --- /dev/null +++ b/node_modules/rxjs/operator/sequenceEqual.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/sequenceEqual'; diff --git a/node_modules/rxjs/operator/sequenceEqual.js b/node_modules/rxjs/operator/sequenceEqual.js new file mode 100644 index 00000000..42e3723c --- /dev/null +++ b/node_modules/rxjs/operator/sequenceEqual.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/sequenceEqual")); +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/sequenceEqual.js.map b/node_modules/rxjs/operator/sequenceEqual.js.map new file mode 100644 index 00000000..18a613d2 --- /dev/null +++ b/node_modules/rxjs/operator/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sources":["../src/operator/sequenceEqual.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operator/share.d.ts b/node_modules/rxjs/operator/share.d.ts new file mode 100644 index 00000000..7dcde394 --- /dev/null +++ b/node_modules/rxjs/operator/share.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/share'; diff --git a/node_modules/rxjs/operator/share.js b/node_modules/rxjs/operator/share.js new file mode 100644 index 00000000..d94a634b --- /dev/null +++ b/node_modules/rxjs/operator/share.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/share")); +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/share.js.map b/node_modules/rxjs/operator/share.js.map new file mode 100644 index 00000000..c5eb0b56 --- /dev/null +++ b/node_modules/rxjs/operator/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sources":["../src/operator/share.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operator/shareReplay.d.ts b/node_modules/rxjs/operator/shareReplay.d.ts new file mode 100644 index 00000000..78890293 --- /dev/null +++ b/node_modules/rxjs/operator/shareReplay.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/shareReplay'; diff --git a/node_modules/rxjs/operator/shareReplay.js b/node_modules/rxjs/operator/shareReplay.js new file mode 100644 index 00000000..d3a17177 --- /dev/null +++ b/node_modules/rxjs/operator/shareReplay.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/shareReplay")); +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/shareReplay.js.map b/node_modules/rxjs/operator/shareReplay.js.map new file mode 100644 index 00000000..9c032b99 --- /dev/null +++ b/node_modules/rxjs/operator/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sources":["../src/operator/shareReplay.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/single.d.ts b/node_modules/rxjs/operator/single.d.ts new file mode 100644 index 00000000..0b289da1 --- /dev/null +++ b/node_modules/rxjs/operator/single.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/single'; diff --git a/node_modules/rxjs/operator/single.js b/node_modules/rxjs/operator/single.js new file mode 100644 index 00000000..0d9761e3 --- /dev/null +++ b/node_modules/rxjs/operator/single.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/single")); +//# sourceMappingURL=single.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/single.js.map b/node_modules/rxjs/operator/single.js.map new file mode 100644 index 00000000..477a990f --- /dev/null +++ b/node_modules/rxjs/operator/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sources":["../src/operator/single.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/skip.d.ts b/node_modules/rxjs/operator/skip.d.ts new file mode 100644 index 00000000..830890c2 --- /dev/null +++ b/node_modules/rxjs/operator/skip.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skip'; diff --git a/node_modules/rxjs/operator/skip.js b/node_modules/rxjs/operator/skip.js new file mode 100644 index 00000000..955b4513 --- /dev/null +++ b/node_modules/rxjs/operator/skip.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/skip")); +//# sourceMappingURL=skip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/skip.js.map b/node_modules/rxjs/operator/skip.js.map new file mode 100644 index 00000000..31c10108 --- /dev/null +++ b/node_modules/rxjs/operator/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sources":["../src/operator/skip.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operator/skipLast.d.ts b/node_modules/rxjs/operator/skipLast.d.ts new file mode 100644 index 00000000..504d7d70 --- /dev/null +++ b/node_modules/rxjs/operator/skipLast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skipLast'; diff --git a/node_modules/rxjs/operator/skipLast.js b/node_modules/rxjs/operator/skipLast.js new file mode 100644 index 00000000..3e7d601d --- /dev/null +++ b/node_modules/rxjs/operator/skipLast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/skipLast")); +//# sourceMappingURL=skipLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/skipLast.js.map b/node_modules/rxjs/operator/skipLast.js.map new file mode 100644 index 00000000..1a84e511 --- /dev/null +++ b/node_modules/rxjs/operator/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sources":["../src/operator/skipLast.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/skipUntil.d.ts b/node_modules/rxjs/operator/skipUntil.d.ts new file mode 100644 index 00000000..c942abc3 --- /dev/null +++ b/node_modules/rxjs/operator/skipUntil.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skipUntil'; diff --git a/node_modules/rxjs/operator/skipUntil.js b/node_modules/rxjs/operator/skipUntil.js new file mode 100644 index 00000000..b4e7b0e7 --- /dev/null +++ b/node_modules/rxjs/operator/skipUntil.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/skipUntil")); +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/skipUntil.js.map b/node_modules/rxjs/operator/skipUntil.js.map new file mode 100644 index 00000000..4b9a445c --- /dev/null +++ b/node_modules/rxjs/operator/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sources":["../src/operator/skipUntil.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/skipWhile.d.ts b/node_modules/rxjs/operator/skipWhile.d.ts new file mode 100644 index 00000000..1ec1baff --- /dev/null +++ b/node_modules/rxjs/operator/skipWhile.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skipWhile'; diff --git a/node_modules/rxjs/operator/skipWhile.js b/node_modules/rxjs/operator/skipWhile.js new file mode 100644 index 00000000..d7379104 --- /dev/null +++ b/node_modules/rxjs/operator/skipWhile.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/skipWhile")); +//# sourceMappingURL=skipWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/skipWhile.js.map b/node_modules/rxjs/operator/skipWhile.js.map new file mode 100644 index 00000000..89540c4a --- /dev/null +++ b/node_modules/rxjs/operator/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sources":["../src/operator/skipWhile.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/startWith.d.ts b/node_modules/rxjs/operator/startWith.d.ts new file mode 100644 index 00000000..88b22fb8 --- /dev/null +++ b/node_modules/rxjs/operator/startWith.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/startWith'; diff --git a/node_modules/rxjs/operator/startWith.js b/node_modules/rxjs/operator/startWith.js new file mode 100644 index 00000000..f4f88ab3 --- /dev/null +++ b/node_modules/rxjs/operator/startWith.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/startWith")); +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/startWith.js.map b/node_modules/rxjs/operator/startWith.js.map new file mode 100644 index 00000000..c8c02e29 --- /dev/null +++ b/node_modules/rxjs/operator/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sources":["../src/operator/startWith.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/subscribeOn.d.ts b/node_modules/rxjs/operator/subscribeOn.d.ts new file mode 100644 index 00000000..d5fe5c3b --- /dev/null +++ b/node_modules/rxjs/operator/subscribeOn.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/subscribeOn'; diff --git a/node_modules/rxjs/operator/subscribeOn.js b/node_modules/rxjs/operator/subscribeOn.js new file mode 100644 index 00000000..bd9c58c9 --- /dev/null +++ b/node_modules/rxjs/operator/subscribeOn.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/subscribeOn")); +//# sourceMappingURL=subscribeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/subscribeOn.js.map b/node_modules/rxjs/operator/subscribeOn.js.map new file mode 100644 index 00000000..359d96f1 --- /dev/null +++ b/node_modules/rxjs/operator/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sources":["../src/operator/subscribeOn.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/switch.d.ts b/node_modules/rxjs/operator/switch.d.ts new file mode 100644 index 00000000..2cbae8fa --- /dev/null +++ b/node_modules/rxjs/operator/switch.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/switch'; diff --git a/node_modules/rxjs/operator/switch.js b/node_modules/rxjs/operator/switch.js new file mode 100644 index 00000000..d08843aa --- /dev/null +++ b/node_modules/rxjs/operator/switch.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/switch")); +//# sourceMappingURL=switch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/switch.js.map b/node_modules/rxjs/operator/switch.js.map new file mode 100644 index 00000000..7967958f --- /dev/null +++ b/node_modules/rxjs/operator/switch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switch.js","sources":["../src/operator/switch.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/switchMap.d.ts b/node_modules/rxjs/operator/switchMap.d.ts new file mode 100644 index 00000000..cd5ce95f --- /dev/null +++ b/node_modules/rxjs/operator/switchMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/switchMap'; diff --git a/node_modules/rxjs/operator/switchMap.js b/node_modules/rxjs/operator/switchMap.js new file mode 100644 index 00000000..5cca87e3 --- /dev/null +++ b/node_modules/rxjs/operator/switchMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/switchMap")); +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/switchMap.js.map b/node_modules/rxjs/operator/switchMap.js.map new file mode 100644 index 00000000..fc40d12e --- /dev/null +++ b/node_modules/rxjs/operator/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sources":["../src/operator/switchMap.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/switchMapTo.d.ts b/node_modules/rxjs/operator/switchMapTo.d.ts new file mode 100644 index 00000000..bd59ce37 --- /dev/null +++ b/node_modules/rxjs/operator/switchMapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/switchMapTo'; diff --git a/node_modules/rxjs/operator/switchMapTo.js b/node_modules/rxjs/operator/switchMapTo.js new file mode 100644 index 00000000..855a06e5 --- /dev/null +++ b/node_modules/rxjs/operator/switchMapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/switchMapTo")); +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/switchMapTo.js.map b/node_modules/rxjs/operator/switchMapTo.js.map new file mode 100644 index 00000000..d5f1d4b4 --- /dev/null +++ b/node_modules/rxjs/operator/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sources":["../src/operator/switchMapTo.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/take.d.ts b/node_modules/rxjs/operator/take.d.ts new file mode 100644 index 00000000..c915fc3c --- /dev/null +++ b/node_modules/rxjs/operator/take.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/take'; diff --git a/node_modules/rxjs/operator/take.js b/node_modules/rxjs/operator/take.js new file mode 100644 index 00000000..71296c3b --- /dev/null +++ b/node_modules/rxjs/operator/take.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/take")); +//# sourceMappingURL=take.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/take.js.map b/node_modules/rxjs/operator/take.js.map new file mode 100644 index 00000000..44e394ac --- /dev/null +++ b/node_modules/rxjs/operator/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sources":["../src/operator/take.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operator/takeLast.d.ts b/node_modules/rxjs/operator/takeLast.d.ts new file mode 100644 index 00000000..78509e54 --- /dev/null +++ b/node_modules/rxjs/operator/takeLast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/takeLast'; diff --git a/node_modules/rxjs/operator/takeLast.js b/node_modules/rxjs/operator/takeLast.js new file mode 100644 index 00000000..0bc2a2b3 --- /dev/null +++ b/node_modules/rxjs/operator/takeLast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/takeLast")); +//# sourceMappingURL=takeLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/takeLast.js.map b/node_modules/rxjs/operator/takeLast.js.map new file mode 100644 index 00000000..cb94a1c7 --- /dev/null +++ b/node_modules/rxjs/operator/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sources":["../src/operator/takeLast.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/takeUntil.d.ts b/node_modules/rxjs/operator/takeUntil.d.ts new file mode 100644 index 00000000..38b927b5 --- /dev/null +++ b/node_modules/rxjs/operator/takeUntil.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/takeUntil'; diff --git a/node_modules/rxjs/operator/takeUntil.js b/node_modules/rxjs/operator/takeUntil.js new file mode 100644 index 00000000..107586c4 --- /dev/null +++ b/node_modules/rxjs/operator/takeUntil.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/takeUntil")); +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/takeUntil.js.map b/node_modules/rxjs/operator/takeUntil.js.map new file mode 100644 index 00000000..f2d2c0b6 --- /dev/null +++ b/node_modules/rxjs/operator/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sources":["../src/operator/takeUntil.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/takeWhile.d.ts b/node_modules/rxjs/operator/takeWhile.d.ts new file mode 100644 index 00000000..b1772bd8 --- /dev/null +++ b/node_modules/rxjs/operator/takeWhile.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/takeWhile'; diff --git a/node_modules/rxjs/operator/takeWhile.js b/node_modules/rxjs/operator/takeWhile.js new file mode 100644 index 00000000..95bf1698 --- /dev/null +++ b/node_modules/rxjs/operator/takeWhile.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/takeWhile")); +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/takeWhile.js.map b/node_modules/rxjs/operator/takeWhile.js.map new file mode 100644 index 00000000..f81cc023 --- /dev/null +++ b/node_modules/rxjs/operator/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sources":["../src/operator/takeWhile.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/throttle.d.ts b/node_modules/rxjs/operator/throttle.d.ts new file mode 100644 index 00000000..9c2effcb --- /dev/null +++ b/node_modules/rxjs/operator/throttle.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/throttle'; diff --git a/node_modules/rxjs/operator/throttle.js b/node_modules/rxjs/operator/throttle.js new file mode 100644 index 00000000..00ba9132 --- /dev/null +++ b/node_modules/rxjs/operator/throttle.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/throttle")); +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/throttle.js.map b/node_modules/rxjs/operator/throttle.js.map new file mode 100644 index 00000000..52f17f5a --- /dev/null +++ b/node_modules/rxjs/operator/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sources":["../src/operator/throttle.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operator/throttleTime.d.ts b/node_modules/rxjs/operator/throttleTime.d.ts new file mode 100644 index 00000000..7385eb08 --- /dev/null +++ b/node_modules/rxjs/operator/throttleTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/throttleTime'; diff --git a/node_modules/rxjs/operator/throttleTime.js b/node_modules/rxjs/operator/throttleTime.js new file mode 100644 index 00000000..27308d09 --- /dev/null +++ b/node_modules/rxjs/operator/throttleTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/throttleTime")); +//# sourceMappingURL=throttleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/throttleTime.js.map b/node_modules/rxjs/operator/throttleTime.js.map new file mode 100644 index 00000000..136f9fe4 --- /dev/null +++ b/node_modules/rxjs/operator/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sources":["../src/operator/throttleTime.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operator/timeInterval.d.ts b/node_modules/rxjs/operator/timeInterval.d.ts new file mode 100644 index 00000000..5f5283bb --- /dev/null +++ b/node_modules/rxjs/operator/timeInterval.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timeInterval'; diff --git a/node_modules/rxjs/operator/timeInterval.js b/node_modules/rxjs/operator/timeInterval.js new file mode 100644 index 00000000..ca7eec1d --- /dev/null +++ b/node_modules/rxjs/operator/timeInterval.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/timeInterval")); +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/timeInterval.js.map b/node_modules/rxjs/operator/timeInterval.js.map new file mode 100644 index 00000000..26966726 --- /dev/null +++ b/node_modules/rxjs/operator/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sources":["../src/operator/timeInterval.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operator/timeout.d.ts b/node_modules/rxjs/operator/timeout.d.ts new file mode 100644 index 00000000..56e0cc33 --- /dev/null +++ b/node_modules/rxjs/operator/timeout.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timeout'; diff --git a/node_modules/rxjs/operator/timeout.js b/node_modules/rxjs/operator/timeout.js new file mode 100644 index 00000000..f2a7dd4d --- /dev/null +++ b/node_modules/rxjs/operator/timeout.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/timeout")); +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/timeout.js.map b/node_modules/rxjs/operator/timeout.js.map new file mode 100644 index 00000000..05fb8482 --- /dev/null +++ b/node_modules/rxjs/operator/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sources":["../src/operator/timeout.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operator/timeoutWith.d.ts b/node_modules/rxjs/operator/timeoutWith.d.ts new file mode 100644 index 00000000..e746c05b --- /dev/null +++ b/node_modules/rxjs/operator/timeoutWith.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timeoutWith'; diff --git a/node_modules/rxjs/operator/timeoutWith.js b/node_modules/rxjs/operator/timeoutWith.js new file mode 100644 index 00000000..fb52eed3 --- /dev/null +++ b/node_modules/rxjs/operator/timeoutWith.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/timeoutWith")); +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/timeoutWith.js.map b/node_modules/rxjs/operator/timeoutWith.js.map new file mode 100644 index 00000000..ee855d41 --- /dev/null +++ b/node_modules/rxjs/operator/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sources":["../src/operator/timeoutWith.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/timestamp.d.ts b/node_modules/rxjs/operator/timestamp.d.ts new file mode 100644 index 00000000..77a94e82 --- /dev/null +++ b/node_modules/rxjs/operator/timestamp.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timestamp'; diff --git a/node_modules/rxjs/operator/timestamp.js b/node_modules/rxjs/operator/timestamp.js new file mode 100644 index 00000000..bd874511 --- /dev/null +++ b/node_modules/rxjs/operator/timestamp.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/timestamp")); +//# sourceMappingURL=timestamp.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/timestamp.js.map b/node_modules/rxjs/operator/timestamp.js.map new file mode 100644 index 00000000..81a1dc1f --- /dev/null +++ b/node_modules/rxjs/operator/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sources":["../src/operator/timestamp.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/toArray.d.ts b/node_modules/rxjs/operator/toArray.d.ts new file mode 100644 index 00000000..57c8ee17 --- /dev/null +++ b/node_modules/rxjs/operator/toArray.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/toArray'; diff --git a/node_modules/rxjs/operator/toArray.js b/node_modules/rxjs/operator/toArray.js new file mode 100644 index 00000000..297835e2 --- /dev/null +++ b/node_modules/rxjs/operator/toArray.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/toArray")); +//# sourceMappingURL=toArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/toArray.js.map b/node_modules/rxjs/operator/toArray.js.map new file mode 100644 index 00000000..0de61155 --- /dev/null +++ b/node_modules/rxjs/operator/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sources":["../src/operator/toArray.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operator/toPromise.d.ts b/node_modules/rxjs/operator/toPromise.d.ts new file mode 100644 index 00000000..b9f8cae2 --- /dev/null +++ b/node_modules/rxjs/operator/toPromise.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/toPromise'; diff --git a/node_modules/rxjs/operator/toPromise.js b/node_modules/rxjs/operator/toPromise.js new file mode 100644 index 00000000..c1a450cd --- /dev/null +++ b/node_modules/rxjs/operator/toPromise.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/toPromise")); +//# sourceMappingURL=toPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/toPromise.js.map b/node_modules/rxjs/operator/toPromise.js.map new file mode 100644 index 00000000..d7395a30 --- /dev/null +++ b/node_modules/rxjs/operator/toPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toPromise.js","sources":["../src/operator/toPromise.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operator/window.d.ts b/node_modules/rxjs/operator/window.d.ts new file mode 100644 index 00000000..937f1746 --- /dev/null +++ b/node_modules/rxjs/operator/window.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/window'; diff --git a/node_modules/rxjs/operator/window.js b/node_modules/rxjs/operator/window.js new file mode 100644 index 00000000..b43e00d9 --- /dev/null +++ b/node_modules/rxjs/operator/window.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/window")); +//# sourceMappingURL=window.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/window.js.map b/node_modules/rxjs/operator/window.js.map new file mode 100644 index 00000000..b4bdbc31 --- /dev/null +++ b/node_modules/rxjs/operator/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sources":["../src/operator/window.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operator/windowCount.d.ts b/node_modules/rxjs/operator/windowCount.d.ts new file mode 100644 index 00000000..87392c7c --- /dev/null +++ b/node_modules/rxjs/operator/windowCount.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowCount'; diff --git a/node_modules/rxjs/operator/windowCount.js b/node_modules/rxjs/operator/windowCount.js new file mode 100644 index 00000000..bce9e1bd --- /dev/null +++ b/node_modules/rxjs/operator/windowCount.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/windowCount")); +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/windowCount.js.map b/node_modules/rxjs/operator/windowCount.js.map new file mode 100644 index 00000000..6dd2b1af --- /dev/null +++ b/node_modules/rxjs/operator/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sources":["../src/operator/windowCount.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operator/windowTime.d.ts b/node_modules/rxjs/operator/windowTime.d.ts new file mode 100644 index 00000000..52798df4 --- /dev/null +++ b/node_modules/rxjs/operator/windowTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowTime'; diff --git a/node_modules/rxjs/operator/windowTime.js b/node_modules/rxjs/operator/windowTime.js new file mode 100644 index 00000000..1652b4b2 --- /dev/null +++ b/node_modules/rxjs/operator/windowTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/windowTime")); +//# sourceMappingURL=windowTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/windowTime.js.map b/node_modules/rxjs/operator/windowTime.js.map new file mode 100644 index 00000000..6ab686ee --- /dev/null +++ b/node_modules/rxjs/operator/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sources":["../src/operator/windowTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/windowToggle.d.ts b/node_modules/rxjs/operator/windowToggle.d.ts new file mode 100644 index 00000000..c2d8b4e2 --- /dev/null +++ b/node_modules/rxjs/operator/windowToggle.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowToggle'; diff --git a/node_modules/rxjs/operator/windowToggle.js b/node_modules/rxjs/operator/windowToggle.js new file mode 100644 index 00000000..55339971 --- /dev/null +++ b/node_modules/rxjs/operator/windowToggle.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/windowToggle")); +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/windowToggle.js.map b/node_modules/rxjs/operator/windowToggle.js.map new file mode 100644 index 00000000..ac16ccf3 --- /dev/null +++ b/node_modules/rxjs/operator/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sources":["../src/operator/windowToggle.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operator/windowWhen.d.ts b/node_modules/rxjs/operator/windowWhen.d.ts new file mode 100644 index 00000000..1d4e2efa --- /dev/null +++ b/node_modules/rxjs/operator/windowWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowWhen'; diff --git a/node_modules/rxjs/operator/windowWhen.js b/node_modules/rxjs/operator/windowWhen.js new file mode 100644 index 00000000..3623a02f --- /dev/null +++ b/node_modules/rxjs/operator/windowWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/windowWhen")); +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/windowWhen.js.map b/node_modules/rxjs/operator/windowWhen.js.map new file mode 100644 index 00000000..7793ae22 --- /dev/null +++ b/node_modules/rxjs/operator/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sources":["../src/operator/windowWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operator/withLatestFrom.d.ts b/node_modules/rxjs/operator/withLatestFrom.d.ts new file mode 100644 index 00000000..b31197a3 --- /dev/null +++ b/node_modules/rxjs/operator/withLatestFrom.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/withLatestFrom'; diff --git a/node_modules/rxjs/operator/withLatestFrom.js b/node_modules/rxjs/operator/withLatestFrom.js new file mode 100644 index 00000000..889291af --- /dev/null +++ b/node_modules/rxjs/operator/withLatestFrom.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/withLatestFrom")); +//# sourceMappingURL=withLatestFrom.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/withLatestFrom.js.map b/node_modules/rxjs/operator/withLatestFrom.js.map new file mode 100644 index 00000000..4104e3a9 --- /dev/null +++ b/node_modules/rxjs/operator/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sources":["../src/operator/withLatestFrom.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/operator/zip.d.ts b/node_modules/rxjs/operator/zip.d.ts new file mode 100644 index 00000000..25eea262 --- /dev/null +++ b/node_modules/rxjs/operator/zip.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/zip'; diff --git a/node_modules/rxjs/operator/zip.js b/node_modules/rxjs/operator/zip.js new file mode 100644 index 00000000..be4b2054 --- /dev/null +++ b/node_modules/rxjs/operator/zip.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/zip")); +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/zip.js.map b/node_modules/rxjs/operator/zip.js.map new file mode 100644 index 00000000..ec900012 --- /dev/null +++ b/node_modules/rxjs/operator/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../src/operator/zip.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/operator/zipAll.d.ts b/node_modules/rxjs/operator/zipAll.d.ts new file mode 100644 index 00000000..1098d9de --- /dev/null +++ b/node_modules/rxjs/operator/zipAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/zipAll'; diff --git a/node_modules/rxjs/operator/zipAll.js b/node_modules/rxjs/operator/zipAll.js new file mode 100644 index 00000000..5b99781c --- /dev/null +++ b/node_modules/rxjs/operator/zipAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operator/zipAll")); +//# sourceMappingURL=zipAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operator/zipAll.js.map b/node_modules/rxjs/operator/zipAll.js.map new file mode 100644 index 00000000..9895fc4a --- /dev/null +++ b/node_modules/rxjs/operator/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sources":["../src/operator/zipAll.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/audit.d.ts b/node_modules/rxjs/operators/audit.d.ts new file mode 100644 index 00000000..0e5b597d --- /dev/null +++ b/node_modules/rxjs/operators/audit.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/audit'; diff --git a/node_modules/rxjs/operators/audit.js b/node_modules/rxjs/operators/audit.js new file mode 100644 index 00000000..37a4ad6a --- /dev/null +++ b/node_modules/rxjs/operators/audit.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/audit")); +//# sourceMappingURL=audit.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/audit.js.map b/node_modules/rxjs/operators/audit.js.map new file mode 100644 index 00000000..4d64b1e0 --- /dev/null +++ b/node_modules/rxjs/operators/audit.js.map @@ -0,0 +1 @@ +{"version":3,"file":"audit.js","sources":["../src/operators/audit.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/auditTime.d.ts b/node_modules/rxjs/operators/auditTime.d.ts new file mode 100644 index 00000000..72a4c000 --- /dev/null +++ b/node_modules/rxjs/operators/auditTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/auditTime'; diff --git a/node_modules/rxjs/operators/auditTime.js b/node_modules/rxjs/operators/auditTime.js new file mode 100644 index 00000000..25543c37 --- /dev/null +++ b/node_modules/rxjs/operators/auditTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/auditTime")); +//# sourceMappingURL=auditTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/auditTime.js.map b/node_modules/rxjs/operators/auditTime.js.map new file mode 100644 index 00000000..007138c6 --- /dev/null +++ b/node_modules/rxjs/operators/auditTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"auditTime.js","sources":["../src/operators/auditTime.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/buffer.d.ts b/node_modules/rxjs/operators/buffer.d.ts new file mode 100644 index 00000000..7007461e --- /dev/null +++ b/node_modules/rxjs/operators/buffer.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/buffer'; diff --git a/node_modules/rxjs/operators/buffer.js b/node_modules/rxjs/operators/buffer.js new file mode 100644 index 00000000..5feb7da0 --- /dev/null +++ b/node_modules/rxjs/operators/buffer.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/buffer")); +//# sourceMappingURL=buffer.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/buffer.js.map b/node_modules/rxjs/operators/buffer.js.map new file mode 100644 index 00000000..9f503ddd --- /dev/null +++ b/node_modules/rxjs/operators/buffer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"buffer.js","sources":["../src/operators/buffer.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/bufferCount.d.ts b/node_modules/rxjs/operators/bufferCount.d.ts new file mode 100644 index 00000000..767b33c0 --- /dev/null +++ b/node_modules/rxjs/operators/bufferCount.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferCount'; diff --git a/node_modules/rxjs/operators/bufferCount.js b/node_modules/rxjs/operators/bufferCount.js new file mode 100644 index 00000000..935b8e3f --- /dev/null +++ b/node_modules/rxjs/operators/bufferCount.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/bufferCount")); +//# sourceMappingURL=bufferCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/bufferCount.js.map b/node_modules/rxjs/operators/bufferCount.js.map new file mode 100644 index 00000000..32139967 --- /dev/null +++ b/node_modules/rxjs/operators/bufferCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferCount.js","sources":["../src/operators/bufferCount.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/bufferTime.d.ts b/node_modules/rxjs/operators/bufferTime.d.ts new file mode 100644 index 00000000..085acfb9 --- /dev/null +++ b/node_modules/rxjs/operators/bufferTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferTime'; diff --git a/node_modules/rxjs/operators/bufferTime.js b/node_modules/rxjs/operators/bufferTime.js new file mode 100644 index 00000000..393865b0 --- /dev/null +++ b/node_modules/rxjs/operators/bufferTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/bufferTime")); +//# sourceMappingURL=bufferTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/bufferTime.js.map b/node_modules/rxjs/operators/bufferTime.js.map new file mode 100644 index 00000000..36c2a330 --- /dev/null +++ b/node_modules/rxjs/operators/bufferTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferTime.js","sources":["../src/operators/bufferTime.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/bufferToggle.d.ts b/node_modules/rxjs/operators/bufferToggle.d.ts new file mode 100644 index 00000000..f554f731 --- /dev/null +++ b/node_modules/rxjs/operators/bufferToggle.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferToggle'; diff --git a/node_modules/rxjs/operators/bufferToggle.js b/node_modules/rxjs/operators/bufferToggle.js new file mode 100644 index 00000000..261ab0f6 --- /dev/null +++ b/node_modules/rxjs/operators/bufferToggle.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/bufferToggle")); +//# sourceMappingURL=bufferToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/bufferToggle.js.map b/node_modules/rxjs/operators/bufferToggle.js.map new file mode 100644 index 00000000..eeabae9e --- /dev/null +++ b/node_modules/rxjs/operators/bufferToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferToggle.js","sources":["../src/operators/bufferToggle.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operators/bufferWhen.d.ts b/node_modules/rxjs/operators/bufferWhen.d.ts new file mode 100644 index 00000000..7e0b79f1 --- /dev/null +++ b/node_modules/rxjs/operators/bufferWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferWhen'; diff --git a/node_modules/rxjs/operators/bufferWhen.js b/node_modules/rxjs/operators/bufferWhen.js new file mode 100644 index 00000000..5007f941 --- /dev/null +++ b/node_modules/rxjs/operators/bufferWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/bufferWhen")); +//# sourceMappingURL=bufferWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/bufferWhen.js.map b/node_modules/rxjs/operators/bufferWhen.js.map new file mode 100644 index 00000000..8664e61d --- /dev/null +++ b/node_modules/rxjs/operators/bufferWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bufferWhen.js","sources":["../src/operators/bufferWhen.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/catchError.d.ts b/node_modules/rxjs/operators/catchError.d.ts new file mode 100644 index 00000000..4ea93514 --- /dev/null +++ b/node_modules/rxjs/operators/catchError.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/catchError'; diff --git a/node_modules/rxjs/operators/catchError.js b/node_modules/rxjs/operators/catchError.js new file mode 100644 index 00000000..344f887c --- /dev/null +++ b/node_modules/rxjs/operators/catchError.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/catchError")); +//# sourceMappingURL=catchError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/catchError.js.map b/node_modules/rxjs/operators/catchError.js.map new file mode 100644 index 00000000..4eaac478 --- /dev/null +++ b/node_modules/rxjs/operators/catchError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"catchError.js","sources":["../src/operators/catchError.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/combineAll.d.ts b/node_modules/rxjs/operators/combineAll.d.ts new file mode 100644 index 00000000..13f2758a --- /dev/null +++ b/node_modules/rxjs/operators/combineAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/combineAll'; diff --git a/node_modules/rxjs/operators/combineAll.js b/node_modules/rxjs/operators/combineAll.js new file mode 100644 index 00000000..4f1d2703 --- /dev/null +++ b/node_modules/rxjs/operators/combineAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/combineAll")); +//# sourceMappingURL=combineAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/combineAll.js.map b/node_modules/rxjs/operators/combineAll.js.map new file mode 100644 index 00000000..be088745 --- /dev/null +++ b/node_modules/rxjs/operators/combineAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineAll.js","sources":["../src/operators/combineAll.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/combineLatest.d.ts b/node_modules/rxjs/operators/combineLatest.d.ts new file mode 100644 index 00000000..cefd4d07 --- /dev/null +++ b/node_modules/rxjs/operators/combineLatest.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/combineLatest'; diff --git a/node_modules/rxjs/operators/combineLatest.js b/node_modules/rxjs/operators/combineLatest.js new file mode 100644 index 00000000..b6a775fc --- /dev/null +++ b/node_modules/rxjs/operators/combineLatest.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/combineLatest")); +//# sourceMappingURL=combineLatest.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/combineLatest.js.map b/node_modules/rxjs/operators/combineLatest.js.map new file mode 100644 index 00000000..07d62482 --- /dev/null +++ b/node_modules/rxjs/operators/combineLatest.js.map @@ -0,0 +1 @@ +{"version":3,"file":"combineLatest.js","sources":["../src/operators/combineLatest.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/operators/concat.d.ts b/node_modules/rxjs/operators/concat.d.ts new file mode 100644 index 00000000..e2fae807 --- /dev/null +++ b/node_modules/rxjs/operators/concat.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concat'; diff --git a/node_modules/rxjs/operators/concat.js b/node_modules/rxjs/operators/concat.js new file mode 100644 index 00000000..7082e98e --- /dev/null +++ b/node_modules/rxjs/operators/concat.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/concat")); +//# sourceMappingURL=concat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/concat.js.map b/node_modules/rxjs/operators/concat.js.map new file mode 100644 index 00000000..86ab7979 --- /dev/null +++ b/node_modules/rxjs/operators/concat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concat.js","sources":["../src/operators/concat.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/concatAll.d.ts b/node_modules/rxjs/operators/concatAll.d.ts new file mode 100644 index 00000000..4e90bf3a --- /dev/null +++ b/node_modules/rxjs/operators/concatAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concatAll'; diff --git a/node_modules/rxjs/operators/concatAll.js b/node_modules/rxjs/operators/concatAll.js new file mode 100644 index 00000000..bc95de8d --- /dev/null +++ b/node_modules/rxjs/operators/concatAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/concatAll")); +//# sourceMappingURL=concatAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/concatAll.js.map b/node_modules/rxjs/operators/concatAll.js.map new file mode 100644 index 00000000..243d55da --- /dev/null +++ b/node_modules/rxjs/operators/concatAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatAll.js","sources":["../src/operators/concatAll.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/concatMap.d.ts b/node_modules/rxjs/operators/concatMap.d.ts new file mode 100644 index 00000000..fb26bc0c --- /dev/null +++ b/node_modules/rxjs/operators/concatMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concatMap'; diff --git a/node_modules/rxjs/operators/concatMap.js b/node_modules/rxjs/operators/concatMap.js new file mode 100644 index 00000000..a5ff3088 --- /dev/null +++ b/node_modules/rxjs/operators/concatMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/concatMap")); +//# sourceMappingURL=concatMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/concatMap.js.map b/node_modules/rxjs/operators/concatMap.js.map new file mode 100644 index 00000000..db045ca9 --- /dev/null +++ b/node_modules/rxjs/operators/concatMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMap.js","sources":["../src/operators/concatMap.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/concatMapTo.d.ts b/node_modules/rxjs/operators/concatMapTo.d.ts new file mode 100644 index 00000000..f5aef409 --- /dev/null +++ b/node_modules/rxjs/operators/concatMapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concatMapTo'; diff --git a/node_modules/rxjs/operators/concatMapTo.js b/node_modules/rxjs/operators/concatMapTo.js new file mode 100644 index 00000000..c24370a2 --- /dev/null +++ b/node_modules/rxjs/operators/concatMapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/concatMapTo")); +//# sourceMappingURL=concatMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/concatMapTo.js.map b/node_modules/rxjs/operators/concatMapTo.js.map new file mode 100644 index 00000000..0d92af1e --- /dev/null +++ b/node_modules/rxjs/operators/concatMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"concatMapTo.js","sources":["../src/operators/concatMapTo.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/count.d.ts b/node_modules/rxjs/operators/count.d.ts new file mode 100644 index 00000000..db7cfe3d --- /dev/null +++ b/node_modules/rxjs/operators/count.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/count'; diff --git a/node_modules/rxjs/operators/count.js b/node_modules/rxjs/operators/count.js new file mode 100644 index 00000000..e909f541 --- /dev/null +++ b/node_modules/rxjs/operators/count.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/count")); +//# sourceMappingURL=count.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/count.js.map b/node_modules/rxjs/operators/count.js.map new file mode 100644 index 00000000..b899345a --- /dev/null +++ b/node_modules/rxjs/operators/count.js.map @@ -0,0 +1 @@ +{"version":3,"file":"count.js","sources":["../src/operators/count.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/debounce.d.ts b/node_modules/rxjs/operators/debounce.d.ts new file mode 100644 index 00000000..ed62cb8b --- /dev/null +++ b/node_modules/rxjs/operators/debounce.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/debounce'; diff --git a/node_modules/rxjs/operators/debounce.js b/node_modules/rxjs/operators/debounce.js new file mode 100644 index 00000000..ce3a18e7 --- /dev/null +++ b/node_modules/rxjs/operators/debounce.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/debounce")); +//# sourceMappingURL=debounce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/debounce.js.map b/node_modules/rxjs/operators/debounce.js.map new file mode 100644 index 00000000..24240e34 --- /dev/null +++ b/node_modules/rxjs/operators/debounce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounce.js","sources":["../src/operators/debounce.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/debounceTime.d.ts b/node_modules/rxjs/operators/debounceTime.d.ts new file mode 100644 index 00000000..fb73d334 --- /dev/null +++ b/node_modules/rxjs/operators/debounceTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/debounceTime'; diff --git a/node_modules/rxjs/operators/debounceTime.js b/node_modules/rxjs/operators/debounceTime.js new file mode 100644 index 00000000..0332391f --- /dev/null +++ b/node_modules/rxjs/operators/debounceTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/debounceTime")); +//# sourceMappingURL=debounceTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/debounceTime.js.map b/node_modules/rxjs/operators/debounceTime.js.map new file mode 100644 index 00000000..40494b20 --- /dev/null +++ b/node_modules/rxjs/operators/debounceTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debounceTime.js","sources":["../src/operators/debounceTime.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operators/defaultIfEmpty.d.ts b/node_modules/rxjs/operators/defaultIfEmpty.d.ts new file mode 100644 index 00000000..04b9e612 --- /dev/null +++ b/node_modules/rxjs/operators/defaultIfEmpty.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/defaultIfEmpty'; diff --git a/node_modules/rxjs/operators/defaultIfEmpty.js b/node_modules/rxjs/operators/defaultIfEmpty.js new file mode 100644 index 00000000..59a8decd --- /dev/null +++ b/node_modules/rxjs/operators/defaultIfEmpty.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/defaultIfEmpty")); +//# sourceMappingURL=defaultIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/defaultIfEmpty.js.map b/node_modules/rxjs/operators/defaultIfEmpty.js.map new file mode 100644 index 00000000..7e3e29b3 --- /dev/null +++ b/node_modules/rxjs/operators/defaultIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"defaultIfEmpty.js","sources":["../src/operators/defaultIfEmpty.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/operators/delay.d.ts b/node_modules/rxjs/operators/delay.d.ts new file mode 100644 index 00000000..d34f33d2 --- /dev/null +++ b/node_modules/rxjs/operators/delay.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/delay'; diff --git a/node_modules/rxjs/operators/delay.js b/node_modules/rxjs/operators/delay.js new file mode 100644 index 00000000..2c431dfa --- /dev/null +++ b/node_modules/rxjs/operators/delay.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/delay")); +//# sourceMappingURL=delay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/delay.js.map b/node_modules/rxjs/operators/delay.js.map new file mode 100644 index 00000000..6acb0263 --- /dev/null +++ b/node_modules/rxjs/operators/delay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delay.js","sources":["../src/operators/delay.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/delayWhen.d.ts b/node_modules/rxjs/operators/delayWhen.d.ts new file mode 100644 index 00000000..4de14529 --- /dev/null +++ b/node_modules/rxjs/operators/delayWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/delayWhen'; diff --git a/node_modules/rxjs/operators/delayWhen.js b/node_modules/rxjs/operators/delayWhen.js new file mode 100644 index 00000000..18de036e --- /dev/null +++ b/node_modules/rxjs/operators/delayWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/delayWhen")); +//# sourceMappingURL=delayWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/delayWhen.js.map b/node_modules/rxjs/operators/delayWhen.js.map new file mode 100644 index 00000000..9d11aa8a --- /dev/null +++ b/node_modules/rxjs/operators/delayWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delayWhen.js","sources":["../src/operators/delayWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/dematerialize.d.ts b/node_modules/rxjs/operators/dematerialize.d.ts new file mode 100644 index 00000000..a689bf08 --- /dev/null +++ b/node_modules/rxjs/operators/dematerialize.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/dematerialize'; diff --git a/node_modules/rxjs/operators/dematerialize.js b/node_modules/rxjs/operators/dematerialize.js new file mode 100644 index 00000000..eeb1107d --- /dev/null +++ b/node_modules/rxjs/operators/dematerialize.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/dematerialize")); +//# sourceMappingURL=dematerialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/dematerialize.js.map b/node_modules/rxjs/operators/dematerialize.js.map new file mode 100644 index 00000000..6306ce07 --- /dev/null +++ b/node_modules/rxjs/operators/dematerialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dematerialize.js","sources":["../src/operators/dematerialize.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/operators/distinct.d.ts b/node_modules/rxjs/operators/distinct.d.ts new file mode 100644 index 00000000..9d8288a4 --- /dev/null +++ b/node_modules/rxjs/operators/distinct.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/distinct'; diff --git a/node_modules/rxjs/operators/distinct.js b/node_modules/rxjs/operators/distinct.js new file mode 100644 index 00000000..c5b7eee8 --- /dev/null +++ b/node_modules/rxjs/operators/distinct.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/distinct")); +//# sourceMappingURL=distinct.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/distinct.js.map b/node_modules/rxjs/operators/distinct.js.map new file mode 100644 index 00000000..7e6f21c4 --- /dev/null +++ b/node_modules/rxjs/operators/distinct.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinct.js","sources":["../src/operators/distinct.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/distinctUntilChanged.d.ts b/node_modules/rxjs/operators/distinctUntilChanged.d.ts new file mode 100644 index 00000000..1fc4eda8 --- /dev/null +++ b/node_modules/rxjs/operators/distinctUntilChanged.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/distinctUntilChanged'; diff --git a/node_modules/rxjs/operators/distinctUntilChanged.js b/node_modules/rxjs/operators/distinctUntilChanged.js new file mode 100644 index 00000000..b311cc3a --- /dev/null +++ b/node_modules/rxjs/operators/distinctUntilChanged.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/distinctUntilChanged")); +//# sourceMappingURL=distinctUntilChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/distinctUntilChanged.js.map b/node_modules/rxjs/operators/distinctUntilChanged.js.map new file mode 100644 index 00000000..b762a0cb --- /dev/null +++ b/node_modules/rxjs/operators/distinctUntilChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilChanged.js","sources":["../src/operators/distinctUntilChanged.ts"],"names":[],"mappings":";;;;;AAAA,gEAA2D"} diff --git a/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts b/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts new file mode 100644 index 00000000..d8fa76ae --- /dev/null +++ b/node_modules/rxjs/operators/distinctUntilKeyChanged.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/distinctUntilKeyChanged'; diff --git a/node_modules/rxjs/operators/distinctUntilKeyChanged.js b/node_modules/rxjs/operators/distinctUntilKeyChanged.js new file mode 100644 index 00000000..86a90f8b --- /dev/null +++ b/node_modules/rxjs/operators/distinctUntilKeyChanged.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/distinctUntilKeyChanged")); +//# sourceMappingURL=distinctUntilKeyChanged.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map b/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map new file mode 100644 index 00000000..cf3ad899 --- /dev/null +++ b/node_modules/rxjs/operators/distinctUntilKeyChanged.js.map @@ -0,0 +1 @@ +{"version":3,"file":"distinctUntilKeyChanged.js","sources":["../src/operators/distinctUntilKeyChanged.ts"],"names":[],"mappings":";;;;;AAAA,mEAA8D"} diff --git a/node_modules/rxjs/operators/elementAt.d.ts b/node_modules/rxjs/operators/elementAt.d.ts new file mode 100644 index 00000000..4f5d5b37 --- /dev/null +++ b/node_modules/rxjs/operators/elementAt.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/elementAt'; diff --git a/node_modules/rxjs/operators/elementAt.js b/node_modules/rxjs/operators/elementAt.js new file mode 100644 index 00000000..b8088a2a --- /dev/null +++ b/node_modules/rxjs/operators/elementAt.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/elementAt")); +//# sourceMappingURL=elementAt.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/elementAt.js.map b/node_modules/rxjs/operators/elementAt.js.map new file mode 100644 index 00000000..9a1673a2 --- /dev/null +++ b/node_modules/rxjs/operators/elementAt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"elementAt.js","sources":["../src/operators/elementAt.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/every.d.ts b/node_modules/rxjs/operators/every.d.ts new file mode 100644 index 00000000..15b9f46f --- /dev/null +++ b/node_modules/rxjs/operators/every.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/every'; diff --git a/node_modules/rxjs/operators/every.js b/node_modules/rxjs/operators/every.js new file mode 100644 index 00000000..164b9375 --- /dev/null +++ b/node_modules/rxjs/operators/every.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/every")); +//# sourceMappingURL=every.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/every.js.map b/node_modules/rxjs/operators/every.js.map new file mode 100644 index 00000000..0cff6cdc --- /dev/null +++ b/node_modules/rxjs/operators/every.js.map @@ -0,0 +1 @@ +{"version":3,"file":"every.js","sources":["../src/operators/every.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/exhaust.d.ts b/node_modules/rxjs/operators/exhaust.d.ts new file mode 100644 index 00000000..19a3637c --- /dev/null +++ b/node_modules/rxjs/operators/exhaust.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/exhaust'; diff --git a/node_modules/rxjs/operators/exhaust.js b/node_modules/rxjs/operators/exhaust.js new file mode 100644 index 00000000..f0cc429c --- /dev/null +++ b/node_modules/rxjs/operators/exhaust.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/exhaust")); +//# sourceMappingURL=exhaust.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/exhaust.js.map b/node_modules/rxjs/operators/exhaust.js.map new file mode 100644 index 00000000..212e77ea --- /dev/null +++ b/node_modules/rxjs/operators/exhaust.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaust.js","sources":["../src/operators/exhaust.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operators/exhaustMap.d.ts b/node_modules/rxjs/operators/exhaustMap.d.ts new file mode 100644 index 00000000..cf4ae30b --- /dev/null +++ b/node_modules/rxjs/operators/exhaustMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/exhaustMap'; diff --git a/node_modules/rxjs/operators/exhaustMap.js b/node_modules/rxjs/operators/exhaustMap.js new file mode 100644 index 00000000..6a4d4f20 --- /dev/null +++ b/node_modules/rxjs/operators/exhaustMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/exhaustMap")); +//# sourceMappingURL=exhaustMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/exhaustMap.js.map b/node_modules/rxjs/operators/exhaustMap.js.map new file mode 100644 index 00000000..0a4cd452 --- /dev/null +++ b/node_modules/rxjs/operators/exhaustMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exhaustMap.js","sources":["../src/operators/exhaustMap.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/expand.d.ts b/node_modules/rxjs/operators/expand.d.ts new file mode 100644 index 00000000..0cef04ce --- /dev/null +++ b/node_modules/rxjs/operators/expand.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/expand'; diff --git a/node_modules/rxjs/operators/expand.js b/node_modules/rxjs/operators/expand.js new file mode 100644 index 00000000..cbb1caa8 --- /dev/null +++ b/node_modules/rxjs/operators/expand.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/expand")); +//# sourceMappingURL=expand.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/expand.js.map b/node_modules/rxjs/operators/expand.js.map new file mode 100644 index 00000000..1a3d2b88 --- /dev/null +++ b/node_modules/rxjs/operators/expand.js.map @@ -0,0 +1 @@ +{"version":3,"file":"expand.js","sources":["../src/operators/expand.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/filter.d.ts b/node_modules/rxjs/operators/filter.d.ts new file mode 100644 index 00000000..23b8666d --- /dev/null +++ b/node_modules/rxjs/operators/filter.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/filter'; diff --git a/node_modules/rxjs/operators/filter.js b/node_modules/rxjs/operators/filter.js new file mode 100644 index 00000000..a784384b --- /dev/null +++ b/node_modules/rxjs/operators/filter.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/filter")); +//# sourceMappingURL=filter.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/filter.js.map b/node_modules/rxjs/operators/filter.js.map new file mode 100644 index 00000000..f21633b7 --- /dev/null +++ b/node_modules/rxjs/operators/filter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter.js","sources":["../src/operators/filter.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/finalize.d.ts b/node_modules/rxjs/operators/finalize.d.ts new file mode 100644 index 00000000..9c32dfcf --- /dev/null +++ b/node_modules/rxjs/operators/finalize.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/finalize'; diff --git a/node_modules/rxjs/operators/finalize.js b/node_modules/rxjs/operators/finalize.js new file mode 100644 index 00000000..73fc9726 --- /dev/null +++ b/node_modules/rxjs/operators/finalize.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/finalize")); +//# sourceMappingURL=finalize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/finalize.js.map b/node_modules/rxjs/operators/finalize.js.map new file mode 100644 index 00000000..92a552de --- /dev/null +++ b/node_modules/rxjs/operators/finalize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"finalize.js","sources":["../src/operators/finalize.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/find.d.ts b/node_modules/rxjs/operators/find.d.ts new file mode 100644 index 00000000..98a272d7 --- /dev/null +++ b/node_modules/rxjs/operators/find.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/find'; diff --git a/node_modules/rxjs/operators/find.js b/node_modules/rxjs/operators/find.js new file mode 100644 index 00000000..62f15d43 --- /dev/null +++ b/node_modules/rxjs/operators/find.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/find")); +//# sourceMappingURL=find.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/find.js.map b/node_modules/rxjs/operators/find.js.map new file mode 100644 index 00000000..b830080f --- /dev/null +++ b/node_modules/rxjs/operators/find.js.map @@ -0,0 +1 @@ +{"version":3,"file":"find.js","sources":["../src/operators/find.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operators/findIndex.d.ts b/node_modules/rxjs/operators/findIndex.d.ts new file mode 100644 index 00000000..167707fb --- /dev/null +++ b/node_modules/rxjs/operators/findIndex.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/findIndex'; diff --git a/node_modules/rxjs/operators/findIndex.js b/node_modules/rxjs/operators/findIndex.js new file mode 100644 index 00000000..1a455c22 --- /dev/null +++ b/node_modules/rxjs/operators/findIndex.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/findIndex")); +//# sourceMappingURL=findIndex.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/findIndex.js.map b/node_modules/rxjs/operators/findIndex.js.map new file mode 100644 index 00000000..71628caa --- /dev/null +++ b/node_modules/rxjs/operators/findIndex.js.map @@ -0,0 +1 @@ +{"version":3,"file":"findIndex.js","sources":["../src/operators/findIndex.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/first.d.ts b/node_modules/rxjs/operators/first.d.ts new file mode 100644 index 00000000..c0266e31 --- /dev/null +++ b/node_modules/rxjs/operators/first.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/first'; diff --git a/node_modules/rxjs/operators/first.js b/node_modules/rxjs/operators/first.js new file mode 100644 index 00000000..cbab035c --- /dev/null +++ b/node_modules/rxjs/operators/first.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/first")); +//# sourceMappingURL=first.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/first.js.map b/node_modules/rxjs/operators/first.js.map new file mode 100644 index 00000000..b972107f --- /dev/null +++ b/node_modules/rxjs/operators/first.js.map @@ -0,0 +1 @@ +{"version":3,"file":"first.js","sources":["../src/operators/first.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/groupBy.d.ts b/node_modules/rxjs/operators/groupBy.d.ts new file mode 100644 index 00000000..52c6f584 --- /dev/null +++ b/node_modules/rxjs/operators/groupBy.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/groupBy'; diff --git a/node_modules/rxjs/operators/groupBy.js b/node_modules/rxjs/operators/groupBy.js new file mode 100644 index 00000000..86f796af --- /dev/null +++ b/node_modules/rxjs/operators/groupBy.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/groupBy")); +//# sourceMappingURL=groupBy.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/groupBy.js.map b/node_modules/rxjs/operators/groupBy.js.map new file mode 100644 index 00000000..bf036777 --- /dev/null +++ b/node_modules/rxjs/operators/groupBy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"groupBy.js","sources":["../src/operators/groupBy.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operators/ignoreElements.d.ts b/node_modules/rxjs/operators/ignoreElements.d.ts new file mode 100644 index 00000000..590bf883 --- /dev/null +++ b/node_modules/rxjs/operators/ignoreElements.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/ignoreElements'; diff --git a/node_modules/rxjs/operators/ignoreElements.js b/node_modules/rxjs/operators/ignoreElements.js new file mode 100644 index 00000000..a2cd5ba4 --- /dev/null +++ b/node_modules/rxjs/operators/ignoreElements.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/ignoreElements")); +//# sourceMappingURL=ignoreElements.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/ignoreElements.js.map b/node_modules/rxjs/operators/ignoreElements.js.map new file mode 100644 index 00000000..730e49ed --- /dev/null +++ b/node_modules/rxjs/operators/ignoreElements.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignoreElements.js","sources":["../src/operators/ignoreElements.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/operators/index.d.ts b/node_modules/rxjs/operators/index.d.ts new file mode 100644 index 00000000..58692042 --- /dev/null +++ b/node_modules/rxjs/operators/index.d.ts @@ -0,0 +1,103 @@ +export { audit } from '../internal/operators/audit'; +export { auditTime } from '../internal/operators/auditTime'; +export { buffer } from '../internal/operators/buffer'; +export { bufferCount } from '../internal/operators/bufferCount'; +export { bufferTime } from '../internal/operators/bufferTime'; +export { bufferToggle } from '../internal/operators/bufferToggle'; +export { bufferWhen } from '../internal/operators/bufferWhen'; +export { catchError } from '../internal/operators/catchError'; +export { combineAll } from '../internal/operators/combineAll'; +export { combineLatest } from '../internal/operators/combineLatest'; +export { concat } from '../internal/operators/concat'; +export { concatAll } from '../internal/operators/concatAll'; +export { concatMap } from '../internal/operators/concatMap'; +export { concatMapTo } from '../internal/operators/concatMapTo'; +export { count } from '../internal/operators/count'; +export { debounce } from '../internal/operators/debounce'; +export { debounceTime } from '../internal/operators/debounceTime'; +export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty'; +export { delay } from '../internal/operators/delay'; +export { delayWhen } from '../internal/operators/delayWhen'; +export { dematerialize } from '../internal/operators/dematerialize'; +export { distinct } from '../internal/operators/distinct'; +export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged'; +export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged'; +export { elementAt } from '../internal/operators/elementAt'; +export { endWith } from '../internal/operators/endWith'; +export { every } from '../internal/operators/every'; +export { exhaust } from '../internal/operators/exhaust'; +export { exhaustMap } from '../internal/operators/exhaustMap'; +export { expand } from '../internal/operators/expand'; +export { filter } from '../internal/operators/filter'; +export { finalize } from '../internal/operators/finalize'; +export { find } from '../internal/operators/find'; +export { findIndex } from '../internal/operators/findIndex'; +export { first } from '../internal/operators/first'; +export { groupBy } from '../internal/operators/groupBy'; +export { ignoreElements } from '../internal/operators/ignoreElements'; +export { isEmpty } from '../internal/operators/isEmpty'; +export { last } from '../internal/operators/last'; +export { map } from '../internal/operators/map'; +export { mapTo } from '../internal/operators/mapTo'; +export { materialize } from '../internal/operators/materialize'; +export { max } from '../internal/operators/max'; +export { merge } from '../internal/operators/merge'; +export { mergeAll } from '../internal/operators/mergeAll'; +export { mergeMap, flatMap } from '../internal/operators/mergeMap'; +export { mergeMapTo } from '../internal/operators/mergeMapTo'; +export { mergeScan } from '../internal/operators/mergeScan'; +export { min } from '../internal/operators/min'; +export { multicast } from '../internal/operators/multicast'; +export { observeOn } from '../internal/operators/observeOn'; +export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext'; +export { pairwise } from '../internal/operators/pairwise'; +export { partition } from '../internal/operators/partition'; +export { pluck } from '../internal/operators/pluck'; +export { publish } from '../internal/operators/publish'; +export { publishBehavior } from '../internal/operators/publishBehavior'; +export { publishLast } from '../internal/operators/publishLast'; +export { publishReplay } from '../internal/operators/publishReplay'; +export { race } from '../internal/operators/race'; +export { reduce } from '../internal/operators/reduce'; +export { repeat } from '../internal/operators/repeat'; +export { repeatWhen } from '../internal/operators/repeatWhen'; +export { retry } from '../internal/operators/retry'; +export { retryWhen } from '../internal/operators/retryWhen'; +export { refCount } from '../internal/operators/refCount'; +export { sample } from '../internal/operators/sample'; +export { sampleTime } from '../internal/operators/sampleTime'; +export { scan } from '../internal/operators/scan'; +export { sequenceEqual } from '../internal/operators/sequenceEqual'; +export { share } from '../internal/operators/share'; +export { shareReplay } from '../internal/operators/shareReplay'; +export { single } from '../internal/operators/single'; +export { skip } from '../internal/operators/skip'; +export { skipLast } from '../internal/operators/skipLast'; +export { skipUntil } from '../internal/operators/skipUntil'; +export { skipWhile } from '../internal/operators/skipWhile'; +export { startWith } from '../internal/operators/startWith'; +export { subscribeOn } from '../internal/operators/subscribeOn'; +export { switchAll } from '../internal/operators/switchAll'; +export { switchMap } from '../internal/operators/switchMap'; +export { switchMapTo } from '../internal/operators/switchMapTo'; +export { take } from '../internal/operators/take'; +export { takeLast } from '../internal/operators/takeLast'; +export { takeUntil } from '../internal/operators/takeUntil'; +export { takeWhile } from '../internal/operators/takeWhile'; +export { tap } from '../internal/operators/tap'; +export { throttle } from '../internal/operators/throttle'; +export { throttleTime } from '../internal/operators/throttleTime'; +export { throwIfEmpty } from '../internal/operators/throwIfEmpty'; +export { timeInterval } from '../internal/operators/timeInterval'; +export { timeout } from '../internal/operators/timeout'; +export { timeoutWith } from '../internal/operators/timeoutWith'; +export { timestamp } from '../internal/operators/timestamp'; +export { toArray } from '../internal/operators/toArray'; +export { window } from '../internal/operators/window'; +export { windowCount } from '../internal/operators/windowCount'; +export { windowTime } from '../internal/operators/windowTime'; +export { windowToggle } from '../internal/operators/windowToggle'; +export { windowWhen } from '../internal/operators/windowWhen'; +export { withLatestFrom } from '../internal/operators/withLatestFrom'; +export { zip } from '../internal/operators/zip'; +export { zipAll } from '../internal/operators/zipAll'; diff --git a/node_modules/rxjs/operators/index.js b/node_modules/rxjs/operators/index.js new file mode 100644 index 00000000..23e12bb5 --- /dev/null +++ b/node_modules/rxjs/operators/index.js @@ -0,0 +1,210 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var audit_1 = require("../internal/operators/audit"); +exports.audit = audit_1.audit; +var auditTime_1 = require("../internal/operators/auditTime"); +exports.auditTime = auditTime_1.auditTime; +var buffer_1 = require("../internal/operators/buffer"); +exports.buffer = buffer_1.buffer; +var bufferCount_1 = require("../internal/operators/bufferCount"); +exports.bufferCount = bufferCount_1.bufferCount; +var bufferTime_1 = require("../internal/operators/bufferTime"); +exports.bufferTime = bufferTime_1.bufferTime; +var bufferToggle_1 = require("../internal/operators/bufferToggle"); +exports.bufferToggle = bufferToggle_1.bufferToggle; +var bufferWhen_1 = require("../internal/operators/bufferWhen"); +exports.bufferWhen = bufferWhen_1.bufferWhen; +var catchError_1 = require("../internal/operators/catchError"); +exports.catchError = catchError_1.catchError; +var combineAll_1 = require("../internal/operators/combineAll"); +exports.combineAll = combineAll_1.combineAll; +var combineLatest_1 = require("../internal/operators/combineLatest"); +exports.combineLatest = combineLatest_1.combineLatest; +var concat_1 = require("../internal/operators/concat"); +exports.concat = concat_1.concat; +var concatAll_1 = require("../internal/operators/concatAll"); +exports.concatAll = concatAll_1.concatAll; +var concatMap_1 = require("../internal/operators/concatMap"); +exports.concatMap = concatMap_1.concatMap; +var concatMapTo_1 = require("../internal/operators/concatMapTo"); +exports.concatMapTo = concatMapTo_1.concatMapTo; +var count_1 = require("../internal/operators/count"); +exports.count = count_1.count; +var debounce_1 = require("../internal/operators/debounce"); +exports.debounce = debounce_1.debounce; +var debounceTime_1 = require("../internal/operators/debounceTime"); +exports.debounceTime = debounceTime_1.debounceTime; +var defaultIfEmpty_1 = require("../internal/operators/defaultIfEmpty"); +exports.defaultIfEmpty = defaultIfEmpty_1.defaultIfEmpty; +var delay_1 = require("../internal/operators/delay"); +exports.delay = delay_1.delay; +var delayWhen_1 = require("../internal/operators/delayWhen"); +exports.delayWhen = delayWhen_1.delayWhen; +var dematerialize_1 = require("../internal/operators/dematerialize"); +exports.dematerialize = dematerialize_1.dematerialize; +var distinct_1 = require("../internal/operators/distinct"); +exports.distinct = distinct_1.distinct; +var distinctUntilChanged_1 = require("../internal/operators/distinctUntilChanged"); +exports.distinctUntilChanged = distinctUntilChanged_1.distinctUntilChanged; +var distinctUntilKeyChanged_1 = require("../internal/operators/distinctUntilKeyChanged"); +exports.distinctUntilKeyChanged = distinctUntilKeyChanged_1.distinctUntilKeyChanged; +var elementAt_1 = require("../internal/operators/elementAt"); +exports.elementAt = elementAt_1.elementAt; +var endWith_1 = require("../internal/operators/endWith"); +exports.endWith = endWith_1.endWith; +var every_1 = require("../internal/operators/every"); +exports.every = every_1.every; +var exhaust_1 = require("../internal/operators/exhaust"); +exports.exhaust = exhaust_1.exhaust; +var exhaustMap_1 = require("../internal/operators/exhaustMap"); +exports.exhaustMap = exhaustMap_1.exhaustMap; +var expand_1 = require("../internal/operators/expand"); +exports.expand = expand_1.expand; +var filter_1 = require("../internal/operators/filter"); +exports.filter = filter_1.filter; +var finalize_1 = require("../internal/operators/finalize"); +exports.finalize = finalize_1.finalize; +var find_1 = require("../internal/operators/find"); +exports.find = find_1.find; +var findIndex_1 = require("../internal/operators/findIndex"); +exports.findIndex = findIndex_1.findIndex; +var first_1 = require("../internal/operators/first"); +exports.first = first_1.first; +var groupBy_1 = require("../internal/operators/groupBy"); +exports.groupBy = groupBy_1.groupBy; +var ignoreElements_1 = require("../internal/operators/ignoreElements"); +exports.ignoreElements = ignoreElements_1.ignoreElements; +var isEmpty_1 = require("../internal/operators/isEmpty"); +exports.isEmpty = isEmpty_1.isEmpty; +var last_1 = require("../internal/operators/last"); +exports.last = last_1.last; +var map_1 = require("../internal/operators/map"); +exports.map = map_1.map; +var mapTo_1 = require("../internal/operators/mapTo"); +exports.mapTo = mapTo_1.mapTo; +var materialize_1 = require("../internal/operators/materialize"); +exports.materialize = materialize_1.materialize; +var max_1 = require("../internal/operators/max"); +exports.max = max_1.max; +var merge_1 = require("../internal/operators/merge"); +exports.merge = merge_1.merge; +var mergeAll_1 = require("../internal/operators/mergeAll"); +exports.mergeAll = mergeAll_1.mergeAll; +var mergeMap_1 = require("../internal/operators/mergeMap"); +exports.mergeMap = mergeMap_1.mergeMap; +exports.flatMap = mergeMap_1.flatMap; +var mergeMapTo_1 = require("../internal/operators/mergeMapTo"); +exports.mergeMapTo = mergeMapTo_1.mergeMapTo; +var mergeScan_1 = require("../internal/operators/mergeScan"); +exports.mergeScan = mergeScan_1.mergeScan; +var min_1 = require("../internal/operators/min"); +exports.min = min_1.min; +var multicast_1 = require("../internal/operators/multicast"); +exports.multicast = multicast_1.multicast; +var observeOn_1 = require("../internal/operators/observeOn"); +exports.observeOn = observeOn_1.observeOn; +var onErrorResumeNext_1 = require("../internal/operators/onErrorResumeNext"); +exports.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext; +var pairwise_1 = require("../internal/operators/pairwise"); +exports.pairwise = pairwise_1.pairwise; +var partition_1 = require("../internal/operators/partition"); +exports.partition = partition_1.partition; +var pluck_1 = require("../internal/operators/pluck"); +exports.pluck = pluck_1.pluck; +var publish_1 = require("../internal/operators/publish"); +exports.publish = publish_1.publish; +var publishBehavior_1 = require("../internal/operators/publishBehavior"); +exports.publishBehavior = publishBehavior_1.publishBehavior; +var publishLast_1 = require("../internal/operators/publishLast"); +exports.publishLast = publishLast_1.publishLast; +var publishReplay_1 = require("../internal/operators/publishReplay"); +exports.publishReplay = publishReplay_1.publishReplay; +var race_1 = require("../internal/operators/race"); +exports.race = race_1.race; +var reduce_1 = require("../internal/operators/reduce"); +exports.reduce = reduce_1.reduce; +var repeat_1 = require("../internal/operators/repeat"); +exports.repeat = repeat_1.repeat; +var repeatWhen_1 = require("../internal/operators/repeatWhen"); +exports.repeatWhen = repeatWhen_1.repeatWhen; +var retry_1 = require("../internal/operators/retry"); +exports.retry = retry_1.retry; +var retryWhen_1 = require("../internal/operators/retryWhen"); +exports.retryWhen = retryWhen_1.retryWhen; +var refCount_1 = require("../internal/operators/refCount"); +exports.refCount = refCount_1.refCount; +var sample_1 = require("../internal/operators/sample"); +exports.sample = sample_1.sample; +var sampleTime_1 = require("../internal/operators/sampleTime"); +exports.sampleTime = sampleTime_1.sampleTime; +var scan_1 = require("../internal/operators/scan"); +exports.scan = scan_1.scan; +var sequenceEqual_1 = require("../internal/operators/sequenceEqual"); +exports.sequenceEqual = sequenceEqual_1.sequenceEqual; +var share_1 = require("../internal/operators/share"); +exports.share = share_1.share; +var shareReplay_1 = require("../internal/operators/shareReplay"); +exports.shareReplay = shareReplay_1.shareReplay; +var single_1 = require("../internal/operators/single"); +exports.single = single_1.single; +var skip_1 = require("../internal/operators/skip"); +exports.skip = skip_1.skip; +var skipLast_1 = require("../internal/operators/skipLast"); +exports.skipLast = skipLast_1.skipLast; +var skipUntil_1 = require("../internal/operators/skipUntil"); +exports.skipUntil = skipUntil_1.skipUntil; +var skipWhile_1 = require("../internal/operators/skipWhile"); +exports.skipWhile = skipWhile_1.skipWhile; +var startWith_1 = require("../internal/operators/startWith"); +exports.startWith = startWith_1.startWith; +var subscribeOn_1 = require("../internal/operators/subscribeOn"); +exports.subscribeOn = subscribeOn_1.subscribeOn; +var switchAll_1 = require("../internal/operators/switchAll"); +exports.switchAll = switchAll_1.switchAll; +var switchMap_1 = require("../internal/operators/switchMap"); +exports.switchMap = switchMap_1.switchMap; +var switchMapTo_1 = require("../internal/operators/switchMapTo"); +exports.switchMapTo = switchMapTo_1.switchMapTo; +var take_1 = require("../internal/operators/take"); +exports.take = take_1.take; +var takeLast_1 = require("../internal/operators/takeLast"); +exports.takeLast = takeLast_1.takeLast; +var takeUntil_1 = require("../internal/operators/takeUntil"); +exports.takeUntil = takeUntil_1.takeUntil; +var takeWhile_1 = require("../internal/operators/takeWhile"); +exports.takeWhile = takeWhile_1.takeWhile; +var tap_1 = require("../internal/operators/tap"); +exports.tap = tap_1.tap; +var throttle_1 = require("../internal/operators/throttle"); +exports.throttle = throttle_1.throttle; +var throttleTime_1 = require("../internal/operators/throttleTime"); +exports.throttleTime = throttleTime_1.throttleTime; +var throwIfEmpty_1 = require("../internal/operators/throwIfEmpty"); +exports.throwIfEmpty = throwIfEmpty_1.throwIfEmpty; +var timeInterval_1 = require("../internal/operators/timeInterval"); +exports.timeInterval = timeInterval_1.timeInterval; +var timeout_1 = require("../internal/operators/timeout"); +exports.timeout = timeout_1.timeout; +var timeoutWith_1 = require("../internal/operators/timeoutWith"); +exports.timeoutWith = timeoutWith_1.timeoutWith; +var timestamp_1 = require("../internal/operators/timestamp"); +exports.timestamp = timestamp_1.timestamp; +var toArray_1 = require("../internal/operators/toArray"); +exports.toArray = toArray_1.toArray; +var window_1 = require("../internal/operators/window"); +exports.window = window_1.window; +var windowCount_1 = require("../internal/operators/windowCount"); +exports.windowCount = windowCount_1.windowCount; +var windowTime_1 = require("../internal/operators/windowTime"); +exports.windowTime = windowTime_1.windowTime; +var windowToggle_1 = require("../internal/operators/windowToggle"); +exports.windowToggle = windowToggle_1.windowToggle; +var windowWhen_1 = require("../internal/operators/windowWhen"); +exports.windowWhen = windowWhen_1.windowWhen; +var withLatestFrom_1 = require("../internal/operators/withLatestFrom"); +exports.withLatestFrom = withLatestFrom_1.withLatestFrom; +var zip_1 = require("../internal/operators/zip"); +exports.zip = zip_1.zip; +var zipAll_1 = require("../internal/operators/zipAll"); +exports.zipAll = zipAll_1.zipAll; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/index.js.map b/node_modules/rxjs/operators/index.js.map new file mode 100644 index 00000000..047e4129 --- /dev/null +++ b/node_modules/rxjs/operators/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/operators/index.ts"],"names":[],"mappings":"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"} diff --git a/node_modules/rxjs/operators/isEmpty.d.ts b/node_modules/rxjs/operators/isEmpty.d.ts new file mode 100644 index 00000000..fd1d1afc --- /dev/null +++ b/node_modules/rxjs/operators/isEmpty.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/isEmpty'; diff --git a/node_modules/rxjs/operators/isEmpty.js b/node_modules/rxjs/operators/isEmpty.js new file mode 100644 index 00000000..2defbb26 --- /dev/null +++ b/node_modules/rxjs/operators/isEmpty.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/isEmpty")); +//# sourceMappingURL=isEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/isEmpty.js.map b/node_modules/rxjs/operators/isEmpty.js.map new file mode 100644 index 00000000..48e47ebc --- /dev/null +++ b/node_modules/rxjs/operators/isEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isEmpty.js","sources":["../src/operators/isEmpty.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operators/last.d.ts b/node_modules/rxjs/operators/last.d.ts new file mode 100644 index 00000000..c8464bf4 --- /dev/null +++ b/node_modules/rxjs/operators/last.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/last'; diff --git a/node_modules/rxjs/operators/last.js b/node_modules/rxjs/operators/last.js new file mode 100644 index 00000000..caebab4f --- /dev/null +++ b/node_modules/rxjs/operators/last.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/last")); +//# sourceMappingURL=last.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/last.js.map b/node_modules/rxjs/operators/last.js.map new file mode 100644 index 00000000..c47a0124 --- /dev/null +++ b/node_modules/rxjs/operators/last.js.map @@ -0,0 +1 @@ +{"version":3,"file":"last.js","sources":["../src/operators/last.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operators/map.d.ts b/node_modules/rxjs/operators/map.d.ts new file mode 100644 index 00000000..7e8cb1f8 --- /dev/null +++ b/node_modules/rxjs/operators/map.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/map'; diff --git a/node_modules/rxjs/operators/map.js b/node_modules/rxjs/operators/map.js new file mode 100644 index 00000000..38d90af9 --- /dev/null +++ b/node_modules/rxjs/operators/map.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/map")); +//# sourceMappingURL=map.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/map.js.map b/node_modules/rxjs/operators/map.js.map new file mode 100644 index 00000000..a8743250 --- /dev/null +++ b/node_modules/rxjs/operators/map.js.map @@ -0,0 +1 @@ +{"version":3,"file":"map.js","sources":["../src/operators/map.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operators/mapTo.d.ts b/node_modules/rxjs/operators/mapTo.d.ts new file mode 100644 index 00000000..72b4d9e5 --- /dev/null +++ b/node_modules/rxjs/operators/mapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mapTo'; diff --git a/node_modules/rxjs/operators/mapTo.js b/node_modules/rxjs/operators/mapTo.js new file mode 100644 index 00000000..9433d0c1 --- /dev/null +++ b/node_modules/rxjs/operators/mapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/mapTo")); +//# sourceMappingURL=mapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/mapTo.js.map b/node_modules/rxjs/operators/mapTo.js.map new file mode 100644 index 00000000..a0c6b031 --- /dev/null +++ b/node_modules/rxjs/operators/mapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mapTo.js","sources":["../src/operators/mapTo.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/materialize.d.ts b/node_modules/rxjs/operators/materialize.d.ts new file mode 100644 index 00000000..e050f1e7 --- /dev/null +++ b/node_modules/rxjs/operators/materialize.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/materialize'; diff --git a/node_modules/rxjs/operators/materialize.js b/node_modules/rxjs/operators/materialize.js new file mode 100644 index 00000000..d0e32678 --- /dev/null +++ b/node_modules/rxjs/operators/materialize.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/materialize")); +//# sourceMappingURL=materialize.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/materialize.js.map b/node_modules/rxjs/operators/materialize.js.map new file mode 100644 index 00000000..de58757f --- /dev/null +++ b/node_modules/rxjs/operators/materialize.js.map @@ -0,0 +1 @@ +{"version":3,"file":"materialize.js","sources":["../src/operators/materialize.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/max.d.ts b/node_modules/rxjs/operators/max.d.ts new file mode 100644 index 00000000..044da470 --- /dev/null +++ b/node_modules/rxjs/operators/max.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/max'; diff --git a/node_modules/rxjs/operators/max.js b/node_modules/rxjs/operators/max.js new file mode 100644 index 00000000..e4e8ef45 --- /dev/null +++ b/node_modules/rxjs/operators/max.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/max")); +//# sourceMappingURL=max.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/max.js.map b/node_modules/rxjs/operators/max.js.map new file mode 100644 index 00000000..4600fdbe --- /dev/null +++ b/node_modules/rxjs/operators/max.js.map @@ -0,0 +1 @@ +{"version":3,"file":"max.js","sources":["../src/operators/max.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operators/merge.d.ts b/node_modules/rxjs/operators/merge.d.ts new file mode 100644 index 00000000..7583aee6 --- /dev/null +++ b/node_modules/rxjs/operators/merge.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/merge'; diff --git a/node_modules/rxjs/operators/merge.js b/node_modules/rxjs/operators/merge.js new file mode 100644 index 00000000..4a417286 --- /dev/null +++ b/node_modules/rxjs/operators/merge.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/merge")); +//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/merge.js.map b/node_modules/rxjs/operators/merge.js.map new file mode 100644 index 00000000..d95ebb97 --- /dev/null +++ b/node_modules/rxjs/operators/merge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"merge.js","sources":["../src/operators/merge.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/mergeAll.d.ts b/node_modules/rxjs/operators/mergeAll.d.ts new file mode 100644 index 00000000..b5c5b38f --- /dev/null +++ b/node_modules/rxjs/operators/mergeAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeAll'; diff --git a/node_modules/rxjs/operators/mergeAll.js b/node_modules/rxjs/operators/mergeAll.js new file mode 100644 index 00000000..574fd440 --- /dev/null +++ b/node_modules/rxjs/operators/mergeAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/mergeAll")); +//# sourceMappingURL=mergeAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/mergeAll.js.map b/node_modules/rxjs/operators/mergeAll.js.map new file mode 100644 index 00000000..7cb38bdd --- /dev/null +++ b/node_modules/rxjs/operators/mergeAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeAll.js","sources":["../src/operators/mergeAll.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/mergeMap.d.ts b/node_modules/rxjs/operators/mergeMap.d.ts new file mode 100644 index 00000000..af5c7c15 --- /dev/null +++ b/node_modules/rxjs/operators/mergeMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeMap'; diff --git a/node_modules/rxjs/operators/mergeMap.js b/node_modules/rxjs/operators/mergeMap.js new file mode 100644 index 00000000..a711dec8 --- /dev/null +++ b/node_modules/rxjs/operators/mergeMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/mergeMap")); +//# sourceMappingURL=mergeMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/mergeMap.js.map b/node_modules/rxjs/operators/mergeMap.js.map new file mode 100644 index 00000000..b484a449 --- /dev/null +++ b/node_modules/rxjs/operators/mergeMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMap.js","sources":["../src/operators/mergeMap.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/mergeMapTo.d.ts b/node_modules/rxjs/operators/mergeMapTo.d.ts new file mode 100644 index 00000000..67b6cb7b --- /dev/null +++ b/node_modules/rxjs/operators/mergeMapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeMapTo'; diff --git a/node_modules/rxjs/operators/mergeMapTo.js b/node_modules/rxjs/operators/mergeMapTo.js new file mode 100644 index 00000000..13f37f09 --- /dev/null +++ b/node_modules/rxjs/operators/mergeMapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/mergeMapTo")); +//# sourceMappingURL=mergeMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/mergeMapTo.js.map b/node_modules/rxjs/operators/mergeMapTo.js.map new file mode 100644 index 00000000..dae529f7 --- /dev/null +++ b/node_modules/rxjs/operators/mergeMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeMapTo.js","sources":["../src/operators/mergeMapTo.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/mergeScan.d.ts b/node_modules/rxjs/operators/mergeScan.d.ts new file mode 100644 index 00000000..ef73adcb --- /dev/null +++ b/node_modules/rxjs/operators/mergeScan.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeScan'; diff --git a/node_modules/rxjs/operators/mergeScan.js b/node_modules/rxjs/operators/mergeScan.js new file mode 100644 index 00000000..3bde4ec6 --- /dev/null +++ b/node_modules/rxjs/operators/mergeScan.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/mergeScan")); +//# sourceMappingURL=mergeScan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/mergeScan.js.map b/node_modules/rxjs/operators/mergeScan.js.map new file mode 100644 index 00000000..00177d79 --- /dev/null +++ b/node_modules/rxjs/operators/mergeScan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mergeScan.js","sources":["../src/operators/mergeScan.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/min.d.ts b/node_modules/rxjs/operators/min.d.ts new file mode 100644 index 00000000..3706e3fc --- /dev/null +++ b/node_modules/rxjs/operators/min.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/min'; diff --git a/node_modules/rxjs/operators/min.js b/node_modules/rxjs/operators/min.js new file mode 100644 index 00000000..f9ae8e9b --- /dev/null +++ b/node_modules/rxjs/operators/min.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/min")); +//# sourceMappingURL=min.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/min.js.map b/node_modules/rxjs/operators/min.js.map new file mode 100644 index 00000000..8343640a --- /dev/null +++ b/node_modules/rxjs/operators/min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"min.js","sources":["../src/operators/min.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operators/multicast.d.ts b/node_modules/rxjs/operators/multicast.d.ts new file mode 100644 index 00000000..94702843 --- /dev/null +++ b/node_modules/rxjs/operators/multicast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/multicast'; diff --git a/node_modules/rxjs/operators/multicast.js b/node_modules/rxjs/operators/multicast.js new file mode 100644 index 00000000..50944ec2 --- /dev/null +++ b/node_modules/rxjs/operators/multicast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/multicast")); +//# sourceMappingURL=multicast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/multicast.js.map b/node_modules/rxjs/operators/multicast.js.map new file mode 100644 index 00000000..81a2af03 --- /dev/null +++ b/node_modules/rxjs/operators/multicast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"multicast.js","sources":["../src/operators/multicast.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/observeOn.d.ts b/node_modules/rxjs/operators/observeOn.d.ts new file mode 100644 index 00000000..0f6d4140 --- /dev/null +++ b/node_modules/rxjs/operators/observeOn.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/observeOn'; diff --git a/node_modules/rxjs/operators/observeOn.js b/node_modules/rxjs/operators/observeOn.js new file mode 100644 index 00000000..6750c7e3 --- /dev/null +++ b/node_modules/rxjs/operators/observeOn.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/observeOn")); +//# sourceMappingURL=observeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/observeOn.js.map b/node_modules/rxjs/operators/observeOn.js.map new file mode 100644 index 00000000..8586b76d --- /dev/null +++ b/node_modules/rxjs/operators/observeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observeOn.js","sources":["../src/operators/observeOn.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/onErrorResumeNext.d.ts b/node_modules/rxjs/operators/onErrorResumeNext.d.ts new file mode 100644 index 00000000..0b19815c --- /dev/null +++ b/node_modules/rxjs/operators/onErrorResumeNext.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/onErrorResumeNext'; diff --git a/node_modules/rxjs/operators/onErrorResumeNext.js b/node_modules/rxjs/operators/onErrorResumeNext.js new file mode 100644 index 00000000..d112fc4d --- /dev/null +++ b/node_modules/rxjs/operators/onErrorResumeNext.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/onErrorResumeNext")); +//# sourceMappingURL=onErrorResumeNext.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/onErrorResumeNext.js.map b/node_modules/rxjs/operators/onErrorResumeNext.js.map new file mode 100644 index 00000000..8ddaa189 --- /dev/null +++ b/node_modules/rxjs/operators/onErrorResumeNext.js.map @@ -0,0 +1 @@ +{"version":3,"file":"onErrorResumeNext.js","sources":["../src/operators/onErrorResumeNext.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD"} diff --git a/node_modules/rxjs/operators/package.json b/node_modules/rxjs/operators/package.json new file mode 100644 index 00000000..eefac38c --- /dev/null +++ b/node_modules/rxjs/operators/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/operators", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/operators/index.js", + "es2015": "../_esm2015/operators/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/operators/pairwise.d.ts b/node_modules/rxjs/operators/pairwise.d.ts new file mode 100644 index 00000000..f83f7320 --- /dev/null +++ b/node_modules/rxjs/operators/pairwise.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/pairwise'; diff --git a/node_modules/rxjs/operators/pairwise.js b/node_modules/rxjs/operators/pairwise.js new file mode 100644 index 00000000..c2c1c476 --- /dev/null +++ b/node_modules/rxjs/operators/pairwise.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/pairwise")); +//# sourceMappingURL=pairwise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/pairwise.js.map b/node_modules/rxjs/operators/pairwise.js.map new file mode 100644 index 00000000..fcd346ec --- /dev/null +++ b/node_modules/rxjs/operators/pairwise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pairwise.js","sources":["../src/operators/pairwise.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/partition.d.ts b/node_modules/rxjs/operators/partition.d.ts new file mode 100644 index 00000000..3c828434 --- /dev/null +++ b/node_modules/rxjs/operators/partition.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/partition'; diff --git a/node_modules/rxjs/operators/partition.js b/node_modules/rxjs/operators/partition.js new file mode 100644 index 00000000..aebe7506 --- /dev/null +++ b/node_modules/rxjs/operators/partition.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/partition")); +//# sourceMappingURL=partition.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/partition.js.map b/node_modules/rxjs/operators/partition.js.map new file mode 100644 index 00000000..bcaac0bf --- /dev/null +++ b/node_modules/rxjs/operators/partition.js.map @@ -0,0 +1 @@ +{"version":3,"file":"partition.js","sources":["../src/operators/partition.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/pluck.d.ts b/node_modules/rxjs/operators/pluck.d.ts new file mode 100644 index 00000000..2ac910af --- /dev/null +++ b/node_modules/rxjs/operators/pluck.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/pluck'; diff --git a/node_modules/rxjs/operators/pluck.js b/node_modules/rxjs/operators/pluck.js new file mode 100644 index 00000000..55abcab6 --- /dev/null +++ b/node_modules/rxjs/operators/pluck.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/pluck")); +//# sourceMappingURL=pluck.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/pluck.js.map b/node_modules/rxjs/operators/pluck.js.map new file mode 100644 index 00000000..a9a2a496 --- /dev/null +++ b/node_modules/rxjs/operators/pluck.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pluck.js","sources":["../src/operators/pluck.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/publish.d.ts b/node_modules/rxjs/operators/publish.d.ts new file mode 100644 index 00000000..a21951d7 --- /dev/null +++ b/node_modules/rxjs/operators/publish.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publish'; diff --git a/node_modules/rxjs/operators/publish.js b/node_modules/rxjs/operators/publish.js new file mode 100644 index 00000000..7af4aeac --- /dev/null +++ b/node_modules/rxjs/operators/publish.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/publish")); +//# sourceMappingURL=publish.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/publish.js.map b/node_modules/rxjs/operators/publish.js.map new file mode 100644 index 00000000..40530d74 --- /dev/null +++ b/node_modules/rxjs/operators/publish.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publish.js","sources":["../src/operators/publish.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operators/publishBehavior.d.ts b/node_modules/rxjs/operators/publishBehavior.d.ts new file mode 100644 index 00000000..53cbc378 --- /dev/null +++ b/node_modules/rxjs/operators/publishBehavior.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publishBehavior'; diff --git a/node_modules/rxjs/operators/publishBehavior.js b/node_modules/rxjs/operators/publishBehavior.js new file mode 100644 index 00000000..cc52d3a8 --- /dev/null +++ b/node_modules/rxjs/operators/publishBehavior.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/publishBehavior")); +//# sourceMappingURL=publishBehavior.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/publishBehavior.js.map b/node_modules/rxjs/operators/publishBehavior.js.map new file mode 100644 index 00000000..3bca777f --- /dev/null +++ b/node_modules/rxjs/operators/publishBehavior.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishBehavior.js","sources":["../src/operators/publishBehavior.ts"],"names":[],"mappings":";;;;;AAAA,2DAAsD"} diff --git a/node_modules/rxjs/operators/publishLast.d.ts b/node_modules/rxjs/operators/publishLast.d.ts new file mode 100644 index 00000000..0fcb4399 --- /dev/null +++ b/node_modules/rxjs/operators/publishLast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publishLast'; diff --git a/node_modules/rxjs/operators/publishLast.js b/node_modules/rxjs/operators/publishLast.js new file mode 100644 index 00000000..e9c94d66 --- /dev/null +++ b/node_modules/rxjs/operators/publishLast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/publishLast")); +//# sourceMappingURL=publishLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/publishLast.js.map b/node_modules/rxjs/operators/publishLast.js.map new file mode 100644 index 00000000..f3fab1af --- /dev/null +++ b/node_modules/rxjs/operators/publishLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishLast.js","sources":["../src/operators/publishLast.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/publishReplay.d.ts b/node_modules/rxjs/operators/publishReplay.d.ts new file mode 100644 index 00000000..ff87a2d8 --- /dev/null +++ b/node_modules/rxjs/operators/publishReplay.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publishReplay'; diff --git a/node_modules/rxjs/operators/publishReplay.js b/node_modules/rxjs/operators/publishReplay.js new file mode 100644 index 00000000..f280e186 --- /dev/null +++ b/node_modules/rxjs/operators/publishReplay.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/publishReplay")); +//# sourceMappingURL=publishReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/publishReplay.js.map b/node_modules/rxjs/operators/publishReplay.js.map new file mode 100644 index 00000000..50c73163 --- /dev/null +++ b/node_modules/rxjs/operators/publishReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"publishReplay.js","sources":["../src/operators/publishReplay.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/operators/race.d.ts b/node_modules/rxjs/operators/race.d.ts new file mode 100644 index 00000000..95047c74 --- /dev/null +++ b/node_modules/rxjs/operators/race.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/race'; diff --git a/node_modules/rxjs/operators/race.js b/node_modules/rxjs/operators/race.js new file mode 100644 index 00000000..dae67760 --- /dev/null +++ b/node_modules/rxjs/operators/race.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/race")); +//# sourceMappingURL=race.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/race.js.map b/node_modules/rxjs/operators/race.js.map new file mode 100644 index 00000000..4e142459 --- /dev/null +++ b/node_modules/rxjs/operators/race.js.map @@ -0,0 +1 @@ +{"version":3,"file":"race.js","sources":["../src/operators/race.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operators/reduce.d.ts b/node_modules/rxjs/operators/reduce.d.ts new file mode 100644 index 00000000..abb05c3e --- /dev/null +++ b/node_modules/rxjs/operators/reduce.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/reduce'; diff --git a/node_modules/rxjs/operators/reduce.js b/node_modules/rxjs/operators/reduce.js new file mode 100644 index 00000000..83c2fab3 --- /dev/null +++ b/node_modules/rxjs/operators/reduce.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/reduce")); +//# sourceMappingURL=reduce.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/reduce.js.map b/node_modules/rxjs/operators/reduce.js.map new file mode 100644 index 00000000..c1424d3d --- /dev/null +++ b/node_modules/rxjs/operators/reduce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"reduce.js","sources":["../src/operators/reduce.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/refCount.d.ts b/node_modules/rxjs/operators/refCount.d.ts new file mode 100644 index 00000000..3c38baa1 --- /dev/null +++ b/node_modules/rxjs/operators/refCount.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/refCount'; diff --git a/node_modules/rxjs/operators/refCount.js b/node_modules/rxjs/operators/refCount.js new file mode 100644 index 00000000..7dc9b93f --- /dev/null +++ b/node_modules/rxjs/operators/refCount.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/refCount")); +//# sourceMappingURL=refCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/refCount.js.map b/node_modules/rxjs/operators/refCount.js.map new file mode 100644 index 00000000..03f81ae2 --- /dev/null +++ b/node_modules/rxjs/operators/refCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refCount.js","sources":["../src/operators/refCount.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/repeat.d.ts b/node_modules/rxjs/operators/repeat.d.ts new file mode 100644 index 00000000..1f363536 --- /dev/null +++ b/node_modules/rxjs/operators/repeat.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/repeat'; diff --git a/node_modules/rxjs/operators/repeat.js b/node_modules/rxjs/operators/repeat.js new file mode 100644 index 00000000..614eee67 --- /dev/null +++ b/node_modules/rxjs/operators/repeat.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/repeat")); +//# sourceMappingURL=repeat.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/repeat.js.map b/node_modules/rxjs/operators/repeat.js.map new file mode 100644 index 00000000..05719378 --- /dev/null +++ b/node_modules/rxjs/operators/repeat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeat.js","sources":["../src/operators/repeat.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/repeatWhen.d.ts b/node_modules/rxjs/operators/repeatWhen.d.ts new file mode 100644 index 00000000..df052ac0 --- /dev/null +++ b/node_modules/rxjs/operators/repeatWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/repeatWhen'; diff --git a/node_modules/rxjs/operators/repeatWhen.js b/node_modules/rxjs/operators/repeatWhen.js new file mode 100644 index 00000000..25b5348d --- /dev/null +++ b/node_modules/rxjs/operators/repeatWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/repeatWhen")); +//# sourceMappingURL=repeatWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/repeatWhen.js.map b/node_modules/rxjs/operators/repeatWhen.js.map new file mode 100644 index 00000000..261d64fd --- /dev/null +++ b/node_modules/rxjs/operators/repeatWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"repeatWhen.js","sources":["../src/operators/repeatWhen.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/retry.d.ts b/node_modules/rxjs/operators/retry.d.ts new file mode 100644 index 00000000..b8d2feeb --- /dev/null +++ b/node_modules/rxjs/operators/retry.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/retry'; diff --git a/node_modules/rxjs/operators/retry.js b/node_modules/rxjs/operators/retry.js new file mode 100644 index 00000000..32e814ea --- /dev/null +++ b/node_modules/rxjs/operators/retry.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/retry")); +//# sourceMappingURL=retry.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/retry.js.map b/node_modules/rxjs/operators/retry.js.map new file mode 100644 index 00000000..e714e353 --- /dev/null +++ b/node_modules/rxjs/operators/retry.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retry.js","sources":["../src/operators/retry.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/retryWhen.d.ts b/node_modules/rxjs/operators/retryWhen.d.ts new file mode 100644 index 00000000..00f9bdfd --- /dev/null +++ b/node_modules/rxjs/operators/retryWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/retryWhen'; diff --git a/node_modules/rxjs/operators/retryWhen.js b/node_modules/rxjs/operators/retryWhen.js new file mode 100644 index 00000000..1f2912e2 --- /dev/null +++ b/node_modules/rxjs/operators/retryWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/retryWhen")); +//# sourceMappingURL=retryWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/retryWhen.js.map b/node_modules/rxjs/operators/retryWhen.js.map new file mode 100644 index 00000000..8d736e44 --- /dev/null +++ b/node_modules/rxjs/operators/retryWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"retryWhen.js","sources":["../src/operators/retryWhen.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/sample.d.ts b/node_modules/rxjs/operators/sample.d.ts new file mode 100644 index 00000000..0e05a4ba --- /dev/null +++ b/node_modules/rxjs/operators/sample.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/sample'; diff --git a/node_modules/rxjs/operators/sample.js b/node_modules/rxjs/operators/sample.js new file mode 100644 index 00000000..0160e205 --- /dev/null +++ b/node_modules/rxjs/operators/sample.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/sample")); +//# sourceMappingURL=sample.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/sample.js.map b/node_modules/rxjs/operators/sample.js.map new file mode 100644 index 00000000..5d09870d --- /dev/null +++ b/node_modules/rxjs/operators/sample.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sample.js","sources":["../src/operators/sample.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/sampleTime.d.ts b/node_modules/rxjs/operators/sampleTime.d.ts new file mode 100644 index 00000000..5041a513 --- /dev/null +++ b/node_modules/rxjs/operators/sampleTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/sampleTime'; diff --git a/node_modules/rxjs/operators/sampleTime.js b/node_modules/rxjs/operators/sampleTime.js new file mode 100644 index 00000000..8686c551 --- /dev/null +++ b/node_modules/rxjs/operators/sampleTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/sampleTime")); +//# sourceMappingURL=sampleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/sampleTime.js.map b/node_modules/rxjs/operators/sampleTime.js.map new file mode 100644 index 00000000..986c3d6d --- /dev/null +++ b/node_modules/rxjs/operators/sampleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sampleTime.js","sources":["../src/operators/sampleTime.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/scan.d.ts b/node_modules/rxjs/operators/scan.d.ts new file mode 100644 index 00000000..acaee73d --- /dev/null +++ b/node_modules/rxjs/operators/scan.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/scan'; diff --git a/node_modules/rxjs/operators/scan.js b/node_modules/rxjs/operators/scan.js new file mode 100644 index 00000000..68d24832 --- /dev/null +++ b/node_modules/rxjs/operators/scan.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/scan")); +//# sourceMappingURL=scan.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/scan.js.map b/node_modules/rxjs/operators/scan.js.map new file mode 100644 index 00000000..322d5c05 --- /dev/null +++ b/node_modules/rxjs/operators/scan.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.js","sources":["../src/operators/scan.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operators/sequenceEqual.d.ts b/node_modules/rxjs/operators/sequenceEqual.d.ts new file mode 100644 index 00000000..0a6e3cbc --- /dev/null +++ b/node_modules/rxjs/operators/sequenceEqual.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/sequenceEqual'; diff --git a/node_modules/rxjs/operators/sequenceEqual.js b/node_modules/rxjs/operators/sequenceEqual.js new file mode 100644 index 00000000..1a7bc9c8 --- /dev/null +++ b/node_modules/rxjs/operators/sequenceEqual.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/sequenceEqual")); +//# sourceMappingURL=sequenceEqual.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/sequenceEqual.js.map b/node_modules/rxjs/operators/sequenceEqual.js.map new file mode 100644 index 00000000..0eb76409 --- /dev/null +++ b/node_modules/rxjs/operators/sequenceEqual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sequenceEqual.js","sources":["../src/operators/sequenceEqual.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/operators/share.d.ts b/node_modules/rxjs/operators/share.d.ts new file mode 100644 index 00000000..fd113fda --- /dev/null +++ b/node_modules/rxjs/operators/share.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/share'; diff --git a/node_modules/rxjs/operators/share.js b/node_modules/rxjs/operators/share.js new file mode 100644 index 00000000..1884717e --- /dev/null +++ b/node_modules/rxjs/operators/share.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/share")); +//# sourceMappingURL=share.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/share.js.map b/node_modules/rxjs/operators/share.js.map new file mode 100644 index 00000000..31089f1d --- /dev/null +++ b/node_modules/rxjs/operators/share.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share.js","sources":["../src/operators/share.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/operators/shareReplay.d.ts b/node_modules/rxjs/operators/shareReplay.d.ts new file mode 100644 index 00000000..d489c810 --- /dev/null +++ b/node_modules/rxjs/operators/shareReplay.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/shareReplay'; diff --git a/node_modules/rxjs/operators/shareReplay.js b/node_modules/rxjs/operators/shareReplay.js new file mode 100644 index 00000000..4cd6e792 --- /dev/null +++ b/node_modules/rxjs/operators/shareReplay.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/shareReplay")); +//# sourceMappingURL=shareReplay.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/shareReplay.js.map b/node_modules/rxjs/operators/shareReplay.js.map new file mode 100644 index 00000000..e21e1fab --- /dev/null +++ b/node_modules/rxjs/operators/shareReplay.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shareReplay.js","sources":["../src/operators/shareReplay.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/single.d.ts b/node_modules/rxjs/operators/single.d.ts new file mode 100644 index 00000000..096d4b42 --- /dev/null +++ b/node_modules/rxjs/operators/single.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/single'; diff --git a/node_modules/rxjs/operators/single.js b/node_modules/rxjs/operators/single.js new file mode 100644 index 00000000..8558c1a7 --- /dev/null +++ b/node_modules/rxjs/operators/single.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/single")); +//# sourceMappingURL=single.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/single.js.map b/node_modules/rxjs/operators/single.js.map new file mode 100644 index 00000000..177faade --- /dev/null +++ b/node_modules/rxjs/operators/single.js.map @@ -0,0 +1 @@ +{"version":3,"file":"single.js","sources":["../src/operators/single.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/skip.d.ts b/node_modules/rxjs/operators/skip.d.ts new file mode 100644 index 00000000..002baeb9 --- /dev/null +++ b/node_modules/rxjs/operators/skip.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skip'; diff --git a/node_modules/rxjs/operators/skip.js b/node_modules/rxjs/operators/skip.js new file mode 100644 index 00000000..36aedaf5 --- /dev/null +++ b/node_modules/rxjs/operators/skip.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/skip")); +//# sourceMappingURL=skip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/skip.js.map b/node_modules/rxjs/operators/skip.js.map new file mode 100644 index 00000000..c205efa5 --- /dev/null +++ b/node_modules/rxjs/operators/skip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skip.js","sources":["../src/operators/skip.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operators/skipLast.d.ts b/node_modules/rxjs/operators/skipLast.d.ts new file mode 100644 index 00000000..15d1c496 --- /dev/null +++ b/node_modules/rxjs/operators/skipLast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skipLast'; diff --git a/node_modules/rxjs/operators/skipLast.js b/node_modules/rxjs/operators/skipLast.js new file mode 100644 index 00000000..1cc0d95f --- /dev/null +++ b/node_modules/rxjs/operators/skipLast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/skipLast")); +//# sourceMappingURL=skipLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/skipLast.js.map b/node_modules/rxjs/operators/skipLast.js.map new file mode 100644 index 00000000..3681a823 --- /dev/null +++ b/node_modules/rxjs/operators/skipLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipLast.js","sources":["../src/operators/skipLast.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/skipUntil.d.ts b/node_modules/rxjs/operators/skipUntil.d.ts new file mode 100644 index 00000000..4193fe2c --- /dev/null +++ b/node_modules/rxjs/operators/skipUntil.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skipUntil'; diff --git a/node_modules/rxjs/operators/skipUntil.js b/node_modules/rxjs/operators/skipUntil.js new file mode 100644 index 00000000..8c3a835b --- /dev/null +++ b/node_modules/rxjs/operators/skipUntil.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/skipUntil")); +//# sourceMappingURL=skipUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/skipUntil.js.map b/node_modules/rxjs/operators/skipUntil.js.map new file mode 100644 index 00000000..7a5b4030 --- /dev/null +++ b/node_modules/rxjs/operators/skipUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipUntil.js","sources":["../src/operators/skipUntil.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/skipWhile.d.ts b/node_modules/rxjs/operators/skipWhile.d.ts new file mode 100644 index 00000000..34fb4d65 --- /dev/null +++ b/node_modules/rxjs/operators/skipWhile.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skipWhile'; diff --git a/node_modules/rxjs/operators/skipWhile.js b/node_modules/rxjs/operators/skipWhile.js new file mode 100644 index 00000000..ef5af628 --- /dev/null +++ b/node_modules/rxjs/operators/skipWhile.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/skipWhile")); +//# sourceMappingURL=skipWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/skipWhile.js.map b/node_modules/rxjs/operators/skipWhile.js.map new file mode 100644 index 00000000..af6476f6 --- /dev/null +++ b/node_modules/rxjs/operators/skipWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"skipWhile.js","sources":["../src/operators/skipWhile.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/startWith.d.ts b/node_modules/rxjs/operators/startWith.d.ts new file mode 100644 index 00000000..901bbbae --- /dev/null +++ b/node_modules/rxjs/operators/startWith.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/startWith'; diff --git a/node_modules/rxjs/operators/startWith.js b/node_modules/rxjs/operators/startWith.js new file mode 100644 index 00000000..91f8d0fb --- /dev/null +++ b/node_modules/rxjs/operators/startWith.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/startWith")); +//# sourceMappingURL=startWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/startWith.js.map b/node_modules/rxjs/operators/startWith.js.map new file mode 100644 index 00000000..df03b11c --- /dev/null +++ b/node_modules/rxjs/operators/startWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"startWith.js","sources":["../src/operators/startWith.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/subscribeOn.d.ts b/node_modules/rxjs/operators/subscribeOn.d.ts new file mode 100644 index 00000000..eb1c2336 --- /dev/null +++ b/node_modules/rxjs/operators/subscribeOn.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/subscribeOn'; diff --git a/node_modules/rxjs/operators/subscribeOn.js b/node_modules/rxjs/operators/subscribeOn.js new file mode 100644 index 00000000..76672d66 --- /dev/null +++ b/node_modules/rxjs/operators/subscribeOn.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/subscribeOn")); +//# sourceMappingURL=subscribeOn.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/subscribeOn.js.map b/node_modules/rxjs/operators/subscribeOn.js.map new file mode 100644 index 00000000..347c48ee --- /dev/null +++ b/node_modules/rxjs/operators/subscribeOn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeOn.js","sources":["../src/operators/subscribeOn.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/switchAll.d.ts b/node_modules/rxjs/operators/switchAll.d.ts new file mode 100644 index 00000000..37a8c202 --- /dev/null +++ b/node_modules/rxjs/operators/switchAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/switchAll'; diff --git a/node_modules/rxjs/operators/switchAll.js b/node_modules/rxjs/operators/switchAll.js new file mode 100644 index 00000000..5545f36d --- /dev/null +++ b/node_modules/rxjs/operators/switchAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/switchAll")); +//# sourceMappingURL=switchAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/switchAll.js.map b/node_modules/rxjs/operators/switchAll.js.map new file mode 100644 index 00000000..b2c25f75 --- /dev/null +++ b/node_modules/rxjs/operators/switchAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchAll.js","sources":["../src/operators/switchAll.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/switchMap.d.ts b/node_modules/rxjs/operators/switchMap.d.ts new file mode 100644 index 00000000..840c2c71 --- /dev/null +++ b/node_modules/rxjs/operators/switchMap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/switchMap'; diff --git a/node_modules/rxjs/operators/switchMap.js b/node_modules/rxjs/operators/switchMap.js new file mode 100644 index 00000000..0b32cedc --- /dev/null +++ b/node_modules/rxjs/operators/switchMap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/switchMap")); +//# sourceMappingURL=switchMap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/switchMap.js.map b/node_modules/rxjs/operators/switchMap.js.map new file mode 100644 index 00000000..6cf7fe05 --- /dev/null +++ b/node_modules/rxjs/operators/switchMap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMap.js","sources":["../src/operators/switchMap.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/switchMapTo.d.ts b/node_modules/rxjs/operators/switchMapTo.d.ts new file mode 100644 index 00000000..fbefdfe1 --- /dev/null +++ b/node_modules/rxjs/operators/switchMapTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/switchMapTo'; diff --git a/node_modules/rxjs/operators/switchMapTo.js b/node_modules/rxjs/operators/switchMapTo.js new file mode 100644 index 00000000..73735d7c --- /dev/null +++ b/node_modules/rxjs/operators/switchMapTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/switchMapTo")); +//# sourceMappingURL=switchMapTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/switchMapTo.js.map b/node_modules/rxjs/operators/switchMapTo.js.map new file mode 100644 index 00000000..45d2c8ba --- /dev/null +++ b/node_modules/rxjs/operators/switchMapTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"switchMapTo.js","sources":["../src/operators/switchMapTo.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/take.d.ts b/node_modules/rxjs/operators/take.d.ts new file mode 100644 index 00000000..1176ad74 --- /dev/null +++ b/node_modules/rxjs/operators/take.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/take'; diff --git a/node_modules/rxjs/operators/take.js b/node_modules/rxjs/operators/take.js new file mode 100644 index 00000000..8877ecd5 --- /dev/null +++ b/node_modules/rxjs/operators/take.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/take")); +//# sourceMappingURL=take.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/take.js.map b/node_modules/rxjs/operators/take.js.map new file mode 100644 index 00000000..f577342c --- /dev/null +++ b/node_modules/rxjs/operators/take.js.map @@ -0,0 +1 @@ +{"version":3,"file":"take.js","sources":["../src/operators/take.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/operators/takeLast.d.ts b/node_modules/rxjs/operators/takeLast.d.ts new file mode 100644 index 00000000..35e85f2d --- /dev/null +++ b/node_modules/rxjs/operators/takeLast.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/takeLast'; diff --git a/node_modules/rxjs/operators/takeLast.js b/node_modules/rxjs/operators/takeLast.js new file mode 100644 index 00000000..4f0c1c7e --- /dev/null +++ b/node_modules/rxjs/operators/takeLast.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/takeLast")); +//# sourceMappingURL=takeLast.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/takeLast.js.map b/node_modules/rxjs/operators/takeLast.js.map new file mode 100644 index 00000000..3d8dd406 --- /dev/null +++ b/node_modules/rxjs/operators/takeLast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeLast.js","sources":["../src/operators/takeLast.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/takeUntil.d.ts b/node_modules/rxjs/operators/takeUntil.d.ts new file mode 100644 index 00000000..828abef5 --- /dev/null +++ b/node_modules/rxjs/operators/takeUntil.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/takeUntil'; diff --git a/node_modules/rxjs/operators/takeUntil.js b/node_modules/rxjs/operators/takeUntil.js new file mode 100644 index 00000000..e22bd65e --- /dev/null +++ b/node_modules/rxjs/operators/takeUntil.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/takeUntil")); +//# sourceMappingURL=takeUntil.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/takeUntil.js.map b/node_modules/rxjs/operators/takeUntil.js.map new file mode 100644 index 00000000..e1866a76 --- /dev/null +++ b/node_modules/rxjs/operators/takeUntil.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeUntil.js","sources":["../src/operators/takeUntil.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/takeWhile.d.ts b/node_modules/rxjs/operators/takeWhile.d.ts new file mode 100644 index 00000000..c3edb4e3 --- /dev/null +++ b/node_modules/rxjs/operators/takeWhile.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/takeWhile'; diff --git a/node_modules/rxjs/operators/takeWhile.js b/node_modules/rxjs/operators/takeWhile.js new file mode 100644 index 00000000..57dd0bd1 --- /dev/null +++ b/node_modules/rxjs/operators/takeWhile.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/takeWhile")); +//# sourceMappingURL=takeWhile.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/takeWhile.js.map b/node_modules/rxjs/operators/takeWhile.js.map new file mode 100644 index 00000000..bcb90c46 --- /dev/null +++ b/node_modules/rxjs/operators/takeWhile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"takeWhile.js","sources":["../src/operators/takeWhile.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/tap.d.ts b/node_modules/rxjs/operators/tap.d.ts new file mode 100644 index 00000000..6190e75e --- /dev/null +++ b/node_modules/rxjs/operators/tap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/tap'; diff --git a/node_modules/rxjs/operators/tap.js b/node_modules/rxjs/operators/tap.js new file mode 100644 index 00000000..03e5305d --- /dev/null +++ b/node_modules/rxjs/operators/tap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/tap")); +//# sourceMappingURL=tap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/tap.js.map b/node_modules/rxjs/operators/tap.js.map new file mode 100644 index 00000000..fbbdbcc8 --- /dev/null +++ b/node_modules/rxjs/operators/tap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tap.js","sources":["../src/operators/tap.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operators/throttle.d.ts b/node_modules/rxjs/operators/throttle.d.ts new file mode 100644 index 00000000..f887a2fe --- /dev/null +++ b/node_modules/rxjs/operators/throttle.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/throttle'; diff --git a/node_modules/rxjs/operators/throttle.js b/node_modules/rxjs/operators/throttle.js new file mode 100644 index 00000000..6d22ee18 --- /dev/null +++ b/node_modules/rxjs/operators/throttle.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/throttle")); +//# sourceMappingURL=throttle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/throttle.js.map b/node_modules/rxjs/operators/throttle.js.map new file mode 100644 index 00000000..719fa202 --- /dev/null +++ b/node_modules/rxjs/operators/throttle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttle.js","sources":["../src/operators/throttle.ts"],"names":[],"mappings":";;;;;AAAA,oDAA+C"} diff --git a/node_modules/rxjs/operators/throttleTime.d.ts b/node_modules/rxjs/operators/throttleTime.d.ts new file mode 100644 index 00000000..8fbd3c88 --- /dev/null +++ b/node_modules/rxjs/operators/throttleTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/throttleTime'; diff --git a/node_modules/rxjs/operators/throttleTime.js b/node_modules/rxjs/operators/throttleTime.js new file mode 100644 index 00000000..f8678a76 --- /dev/null +++ b/node_modules/rxjs/operators/throttleTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/throttleTime")); +//# sourceMappingURL=throttleTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/throttleTime.js.map b/node_modules/rxjs/operators/throttleTime.js.map new file mode 100644 index 00000000..b72849c2 --- /dev/null +++ b/node_modules/rxjs/operators/throttleTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throttleTime.js","sources":["../src/operators/throttleTime.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operators/throwIfEmpty.d.ts b/node_modules/rxjs/operators/throwIfEmpty.d.ts new file mode 100644 index 00000000..6bb64cd3 --- /dev/null +++ b/node_modules/rxjs/operators/throwIfEmpty.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/throwIfEmpty'; diff --git a/node_modules/rxjs/operators/throwIfEmpty.js b/node_modules/rxjs/operators/throwIfEmpty.js new file mode 100644 index 00000000..cbbedaf1 --- /dev/null +++ b/node_modules/rxjs/operators/throwIfEmpty.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/throwIfEmpty")); +//# sourceMappingURL=throwIfEmpty.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/throwIfEmpty.js.map b/node_modules/rxjs/operators/throwIfEmpty.js.map new file mode 100644 index 00000000..97ff196f --- /dev/null +++ b/node_modules/rxjs/operators/throwIfEmpty.js.map @@ -0,0 +1 @@ +{"version":3,"file":"throwIfEmpty.js","sources":["../src/operators/throwIfEmpty.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operators/timeInterval.d.ts b/node_modules/rxjs/operators/timeInterval.d.ts new file mode 100644 index 00000000..6af39119 --- /dev/null +++ b/node_modules/rxjs/operators/timeInterval.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timeInterval'; diff --git a/node_modules/rxjs/operators/timeInterval.js b/node_modules/rxjs/operators/timeInterval.js new file mode 100644 index 00000000..a26261c3 --- /dev/null +++ b/node_modules/rxjs/operators/timeInterval.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/timeInterval")); +//# sourceMappingURL=timeInterval.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/timeInterval.js.map b/node_modules/rxjs/operators/timeInterval.js.map new file mode 100644 index 00000000..dbc2e592 --- /dev/null +++ b/node_modules/rxjs/operators/timeInterval.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeInterval.js","sources":["../src/operators/timeInterval.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operators/timeout.d.ts b/node_modules/rxjs/operators/timeout.d.ts new file mode 100644 index 00000000..c4a43f1c --- /dev/null +++ b/node_modules/rxjs/operators/timeout.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timeout'; diff --git a/node_modules/rxjs/operators/timeout.js b/node_modules/rxjs/operators/timeout.js new file mode 100644 index 00000000..f16b42e9 --- /dev/null +++ b/node_modules/rxjs/operators/timeout.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/timeout")); +//# sourceMappingURL=timeout.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/timeout.js.map b/node_modules/rxjs/operators/timeout.js.map new file mode 100644 index 00000000..d7840c65 --- /dev/null +++ b/node_modules/rxjs/operators/timeout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeout.js","sources":["../src/operators/timeout.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operators/timeoutWith.d.ts b/node_modules/rxjs/operators/timeoutWith.d.ts new file mode 100644 index 00000000..2cfcad86 --- /dev/null +++ b/node_modules/rxjs/operators/timeoutWith.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timeoutWith'; diff --git a/node_modules/rxjs/operators/timeoutWith.js b/node_modules/rxjs/operators/timeoutWith.js new file mode 100644 index 00000000..44b98a6d --- /dev/null +++ b/node_modules/rxjs/operators/timeoutWith.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/timeoutWith")); +//# sourceMappingURL=timeoutWith.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/timeoutWith.js.map b/node_modules/rxjs/operators/timeoutWith.js.map new file mode 100644 index 00000000..e0d8e13a --- /dev/null +++ b/node_modules/rxjs/operators/timeoutWith.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timeoutWith.js","sources":["../src/operators/timeoutWith.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/timestamp.d.ts b/node_modules/rxjs/operators/timestamp.d.ts new file mode 100644 index 00000000..6580e38e --- /dev/null +++ b/node_modules/rxjs/operators/timestamp.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timestamp'; diff --git a/node_modules/rxjs/operators/timestamp.js b/node_modules/rxjs/operators/timestamp.js new file mode 100644 index 00000000..503edd0e --- /dev/null +++ b/node_modules/rxjs/operators/timestamp.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/timestamp")); +//# sourceMappingURL=timestamp.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/timestamp.js.map b/node_modules/rxjs/operators/timestamp.js.map new file mode 100644 index 00000000..1b998168 --- /dev/null +++ b/node_modules/rxjs/operators/timestamp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"timestamp.js","sources":["../src/operators/timestamp.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/operators/toArray.d.ts b/node_modules/rxjs/operators/toArray.d.ts new file mode 100644 index 00000000..7f678db1 --- /dev/null +++ b/node_modules/rxjs/operators/toArray.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/toArray'; diff --git a/node_modules/rxjs/operators/toArray.js b/node_modules/rxjs/operators/toArray.js new file mode 100644 index 00000000..c7ddd806 --- /dev/null +++ b/node_modules/rxjs/operators/toArray.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/toArray")); +//# sourceMappingURL=toArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/toArray.js.map b/node_modules/rxjs/operators/toArray.js.map new file mode 100644 index 00000000..fde0f548 --- /dev/null +++ b/node_modules/rxjs/operators/toArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toArray.js","sources":["../src/operators/toArray.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/operators/window.d.ts b/node_modules/rxjs/operators/window.d.ts new file mode 100644 index 00000000..2642141b --- /dev/null +++ b/node_modules/rxjs/operators/window.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/window'; diff --git a/node_modules/rxjs/operators/window.js b/node_modules/rxjs/operators/window.js new file mode 100644 index 00000000..a9a47f1f --- /dev/null +++ b/node_modules/rxjs/operators/window.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/window")); +//# sourceMappingURL=window.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/window.js.map b/node_modules/rxjs/operators/window.js.map new file mode 100644 index 00000000..826df0dc --- /dev/null +++ b/node_modules/rxjs/operators/window.js.map @@ -0,0 +1 @@ +{"version":3,"file":"window.js","sources":["../src/operators/window.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/operators/windowCount.d.ts b/node_modules/rxjs/operators/windowCount.d.ts new file mode 100644 index 00000000..b7747077 --- /dev/null +++ b/node_modules/rxjs/operators/windowCount.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowCount'; diff --git a/node_modules/rxjs/operators/windowCount.js b/node_modules/rxjs/operators/windowCount.js new file mode 100644 index 00000000..fce57b94 --- /dev/null +++ b/node_modules/rxjs/operators/windowCount.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/windowCount")); +//# sourceMappingURL=windowCount.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/windowCount.js.map b/node_modules/rxjs/operators/windowCount.js.map new file mode 100644 index 00000000..413156ae --- /dev/null +++ b/node_modules/rxjs/operators/windowCount.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowCount.js","sources":["../src/operators/windowCount.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/operators/windowTime.d.ts b/node_modules/rxjs/operators/windowTime.d.ts new file mode 100644 index 00000000..2cbf76fc --- /dev/null +++ b/node_modules/rxjs/operators/windowTime.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowTime'; diff --git a/node_modules/rxjs/operators/windowTime.js b/node_modules/rxjs/operators/windowTime.js new file mode 100644 index 00000000..3befdf0f --- /dev/null +++ b/node_modules/rxjs/operators/windowTime.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/windowTime")); +//# sourceMappingURL=windowTime.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/windowTime.js.map b/node_modules/rxjs/operators/windowTime.js.map new file mode 100644 index 00000000..4da17995 --- /dev/null +++ b/node_modules/rxjs/operators/windowTime.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowTime.js","sources":["../src/operators/windowTime.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/windowToggle.d.ts b/node_modules/rxjs/operators/windowToggle.d.ts new file mode 100644 index 00000000..b116f17e --- /dev/null +++ b/node_modules/rxjs/operators/windowToggle.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowToggle'; diff --git a/node_modules/rxjs/operators/windowToggle.js b/node_modules/rxjs/operators/windowToggle.js new file mode 100644 index 00000000..d055c841 --- /dev/null +++ b/node_modules/rxjs/operators/windowToggle.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/windowToggle")); +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/windowToggle.js.map b/node_modules/rxjs/operators/windowToggle.js.map new file mode 100644 index 00000000..8724be94 --- /dev/null +++ b/node_modules/rxjs/operators/windowToggle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowToggle.js","sources":["../src/operators/windowToggle.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/operators/windowWhen.d.ts b/node_modules/rxjs/operators/windowWhen.d.ts new file mode 100644 index 00000000..782d4dc0 --- /dev/null +++ b/node_modules/rxjs/operators/windowWhen.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowWhen'; diff --git a/node_modules/rxjs/operators/windowWhen.js b/node_modules/rxjs/operators/windowWhen.js new file mode 100644 index 00000000..f7863340 --- /dev/null +++ b/node_modules/rxjs/operators/windowWhen.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/windowWhen")); +//# sourceMappingURL=windowWhen.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/windowWhen.js.map b/node_modules/rxjs/operators/windowWhen.js.map new file mode 100644 index 00000000..f05c5ae7 --- /dev/null +++ b/node_modules/rxjs/operators/windowWhen.js.map @@ -0,0 +1 @@ +{"version":3,"file":"windowWhen.js","sources":["../src/operators/windowWhen.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/operators/withLatestFrom.d.ts b/node_modules/rxjs/operators/withLatestFrom.d.ts new file mode 100644 index 00000000..15f7450b --- /dev/null +++ b/node_modules/rxjs/operators/withLatestFrom.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/withLatestFrom'; diff --git a/node_modules/rxjs/operators/withLatestFrom.js b/node_modules/rxjs/operators/withLatestFrom.js new file mode 100644 index 00000000..f39e3dec --- /dev/null +++ b/node_modules/rxjs/operators/withLatestFrom.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/withLatestFrom")); +//# sourceMappingURL=withLatestFrom.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/withLatestFrom.js.map b/node_modules/rxjs/operators/withLatestFrom.js.map new file mode 100644 index 00000000..1175b2e0 --- /dev/null +++ b/node_modules/rxjs/operators/withLatestFrom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"withLatestFrom.js","sources":["../src/operators/withLatestFrom.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/operators/zip.d.ts b/node_modules/rxjs/operators/zip.d.ts new file mode 100644 index 00000000..c75d56f1 --- /dev/null +++ b/node_modules/rxjs/operators/zip.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/zip'; diff --git a/node_modules/rxjs/operators/zip.js b/node_modules/rxjs/operators/zip.js new file mode 100644 index 00000000..eabdfa45 --- /dev/null +++ b/node_modules/rxjs/operators/zip.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/zip")); +//# sourceMappingURL=zip.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/zip.js.map b/node_modules/rxjs/operators/zip.js.map new file mode 100644 index 00000000..24f8f226 --- /dev/null +++ b/node_modules/rxjs/operators/zip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zip.js","sources":["../src/operators/zip.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/operators/zipAll.d.ts b/node_modules/rxjs/operators/zipAll.d.ts new file mode 100644 index 00000000..3e69835c --- /dev/null +++ b/node_modules/rxjs/operators/zipAll.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/zipAll'; diff --git a/node_modules/rxjs/operators/zipAll.js b/node_modules/rxjs/operators/zipAll.js new file mode 100644 index 00000000..2a5ebe65 --- /dev/null +++ b/node_modules/rxjs/operators/zipAll.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/operators/zipAll")); +//# sourceMappingURL=zipAll.js.map \ No newline at end of file diff --git a/node_modules/rxjs/operators/zipAll.js.map b/node_modules/rxjs/operators/zipAll.js.map new file mode 100644 index 00000000..c6e01685 --- /dev/null +++ b/node_modules/rxjs/operators/zipAll.js.map @@ -0,0 +1 @@ +{"version":3,"file":"zipAll.js","sources":["../src/operators/zipAll.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/package.json b/node_modules/rxjs/package.json new file mode 100644 index 00000000..c2113e0f --- /dev/null +++ b/node_modules/rxjs/package.json @@ -0,0 +1,210 @@ +{ + "_from": "rxjs@^6.5.2", + "_id": "rxjs@6.6.3", + "_inBundle": false, + "_integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "_location": "/rxjs", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "rxjs@^6.5.2", + "name": "rxjs", + "escapedName": "rxjs", + "rawSpec": "^6.5.2", + "saveSpec": null, + "fetchSpec": "^6.5.2" + }, + "_requiredBy": [ + "/concurrently" + ], + "_resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "_shasum": "8ca84635c4daa900c0d3967a6ee7ac60271ee552", + "_spec": "rxjs@^6.5.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\concurrently", + "author": { + "name": "Ben Lesh", + "email": "ben@benlesh.com" + }, + "bugs": { + "url": "https://github.com/ReactiveX/RxJS/issues" + }, + "bundleDependencies": false, + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } + }, + "contributors": [ + { + "name": "Ben Lesh", + "email": "ben@benlesh.com" + }, + { + "name": "Paul Taylor", + "email": "paul.e.taylor@me.com" + }, + { + "name": "Jeff Cross", + "email": "crossj@google.com" + }, + { + "name": "Matthew Podwysocki", + "email": "matthewp@microsoft.com" + }, + { + "name": "OJ Kwon", + "email": "kwon.ohjoong@gmail.com" + }, + { + "name": "Andre Staltz", + "email": "andre@staltz.com" + } + ], + "dependencies": { + "tslib": "^1.9.0" + }, + "deprecated": false, + "description": "Reactive Extensions for modern JavaScript", + "devDependencies": { + "@angular-devkit/build-optimizer": "0.4.6", + "@angular-devkit/schematics": "^0.5.4", + "@types/chai": "4.1.2", + "@types/lodash": "4.14.102", + "@types/mocha": "2.2.48", + "@types/node": "9.4.5", + "@types/sinon": "4.1.3", + "@types/sinon-chai": "2.7.29", + "@types/source-map": "^0.5.2", + "babel-polyfill": "6.26.0", + "benchmark": "2.1.0", + "benchpress": "2.0.0-beta.1", + "chai": "4.1.2", + "check-side-effects": "0.0.20", + "color": "3.0.0", + "colors": "1.1.2", + "commitizen": "2.9.6", + "coveralls": "3.0.0", + "cross-env": "5.1.3", + "cz-conventional-changelog": "1.2.0", + "danger": "1.1.0", + "dependency-cruiser": "2.13.0", + "doctoc": "1.3.0", + "dtslint": "0.6.1", + "escape-string-regexp": "1.0.5", + "esdoc": "0.4.7", + "eslint": "4.17.0", + "eslint-plugin-jasmine": "^2.10.1", + "fs-extra": "5.0.0", + "get-folder-size": "1.0.1", + "glob": "7.1.2", + "gm": "1.23.1", + "google-closure-compiler-js": "20170218.0.0", + "gzip-size": "4.1.0", + "http-server": "0.11.1", + "husky": "0.14.3", + "klaw-sync": "3.0.2", + "lint-staged": "7.1.1", + "lodash": "4.17.5", + "markdown-doctest": "0.9.1", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "mocha": "5.0.0", + "mocha-in-sauce": "0.0.1", + "npm-run-all": "4.1.2", + "nyc": "11.4.1", + "opn-cli": "3.1.0", + "platform": "1.3.5", + "promise": "8.0.1", + "protractor": "3.1.1", + "rollup": "0.66.6", + "rollup-plugin-alias": "1.4.0", + "rollup-plugin-inject": "2.0.0", + "rollup-plugin-node-resolve": "2.0.0", + "rx": "latest", + "rxjs": "^5.5.7", + "shx": "^0.3.2", + "sinon": "4.3.0", + "sinon-chai": "2.14.0", + "source-map-support": "0.5.3", + "symbol-observable": "1.0.1", + "systemjs": "^0.21.0", + "ts-api-guardian": "^0.5.0", + "ts-node": "6.1.0", + "tsconfig-paths": "3.2.0", + "tslint": "5.9.1", + "tslint-etc": "1.2.6", + "tslint-no-toplevel-property-access": "0.0.2", + "tslint-no-unused-expression-chai": "0.0.3", + "typescript": "^3.0.1", + "validate-commit-msg": "2.14.0", + "webpack": "1.13.1", + "xmlhttprequest": "1.8.0" + }, + "engines": { + "npm": ">=2.0.0" + }, + "es2015": "./_esm2015/index.js", + "homepage": "https://github.com/ReactiveX/RxJS", + "keywords": [ + "Rx", + "RxJS", + "ReactiveX", + "ReactiveExtensions", + "Streams", + "Observables", + "Observable", + "Stream", + "ES6", + "ES2015" + ], + "license": "Apache-2.0", + "lint-staged": { + "linters": { + "*.@(js)": [ + "eslint --fix", + "git add" + ], + "*.@(ts)": [ + "tslint --fix", + "git add" + ] + }, + "ignore": [ + "spec-dtslint/**/*.{js,ts}", + "api_guard/**/*.{js,ts}" + ] + }, + "main": "./index.js", + "module": "./_esm5/index.js", + "name": "rxjs", + "ng-update": { + "migrations": "./migrations/collection.json" + }, + "nyc": { + "include": [ + "src/*.ts", + "src/**/*.ts" + ], + "exclude": [ + "node_modules", + "dist", + "*.d.ts", + "src/**/MiscJSDoc.ts" + ], + "extension": [ + ".ts" + ], + "reporter": [ + "html" + ], + "all": true + }, + "repository": { + "type": "git", + "url": "git+https://github.com/reactivex/rxjs.git" + }, + "sideEffects": false, + "typings": "./index.d.ts", + "version": "6.6.3" +} diff --git a/node_modules/rxjs/scheduler/animationFrame.d.ts b/node_modules/rxjs/scheduler/animationFrame.d.ts new file mode 100644 index 00000000..f2936244 --- /dev/null +++ b/node_modules/rxjs/scheduler/animationFrame.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/animationFrame'; diff --git a/node_modules/rxjs/scheduler/animationFrame.js b/node_modules/rxjs/scheduler/animationFrame.js new file mode 100644 index 00000000..c010af9d --- /dev/null +++ b/node_modules/rxjs/scheduler/animationFrame.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/scheduler/animationFrame")); +//# sourceMappingURL=animationFrame.js.map \ No newline at end of file diff --git a/node_modules/rxjs/scheduler/animationFrame.js.map b/node_modules/rxjs/scheduler/animationFrame.js.map new file mode 100644 index 00000000..9e0de765 --- /dev/null +++ b/node_modules/rxjs/scheduler/animationFrame.js.map @@ -0,0 +1 @@ +{"version":3,"file":"animationFrame.js","sources":["../src/scheduler/animationFrame.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/scheduler/asap.d.ts b/node_modules/rxjs/scheduler/asap.d.ts new file mode 100644 index 00000000..934d4b55 --- /dev/null +++ b/node_modules/rxjs/scheduler/asap.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/asap'; diff --git a/node_modules/rxjs/scheduler/asap.js b/node_modules/rxjs/scheduler/asap.js new file mode 100644 index 00000000..287a6f88 --- /dev/null +++ b/node_modules/rxjs/scheduler/asap.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/scheduler/asap")); +//# sourceMappingURL=asap.js.map \ No newline at end of file diff --git a/node_modules/rxjs/scheduler/asap.js.map b/node_modules/rxjs/scheduler/asap.js.map new file mode 100644 index 00000000..115c33e7 --- /dev/null +++ b/node_modules/rxjs/scheduler/asap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"asap.js","sources":["../src/scheduler/asap.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/scheduler/async.d.ts b/node_modules/rxjs/scheduler/async.d.ts new file mode 100644 index 00000000..ed5a6138 --- /dev/null +++ b/node_modules/rxjs/scheduler/async.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/async'; diff --git a/node_modules/rxjs/scheduler/async.js b/node_modules/rxjs/scheduler/async.js new file mode 100644 index 00000000..a60a16c3 --- /dev/null +++ b/node_modules/rxjs/scheduler/async.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/scheduler/async")); +//# sourceMappingURL=async.js.map \ No newline at end of file diff --git a/node_modules/rxjs/scheduler/async.js.map b/node_modules/rxjs/scheduler/async.js.map new file mode 100644 index 00000000..35f600b0 --- /dev/null +++ b/node_modules/rxjs/scheduler/async.js.map @@ -0,0 +1 @@ +{"version":3,"file":"async.js","sources":["../src/scheduler/async.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/scheduler/queue.d.ts b/node_modules/rxjs/scheduler/queue.d.ts new file mode 100644 index 00000000..daea5845 --- /dev/null +++ b/node_modules/rxjs/scheduler/queue.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/queue'; diff --git a/node_modules/rxjs/scheduler/queue.js b/node_modules/rxjs/scheduler/queue.js new file mode 100644 index 00000000..3d8dcb9c --- /dev/null +++ b/node_modules/rxjs/scheduler/queue.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/scheduler/queue")); +//# sourceMappingURL=queue.js.map \ No newline at end of file diff --git a/node_modules/rxjs/scheduler/queue.js.map b/node_modules/rxjs/scheduler/queue.js.map new file mode 100644 index 00000000..2278582a --- /dev/null +++ b/node_modules/rxjs/scheduler/queue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"queue.js","sources":["../src/scheduler/queue.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/src/AsyncSubject.ts b/node_modules/rxjs/src/AsyncSubject.ts new file mode 100644 index 00000000..2c4d977f --- /dev/null +++ b/node_modules/rxjs/src/AsyncSubject.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/AsyncSubject'; diff --git a/node_modules/rxjs/src/BehaviorSubject.ts b/node_modules/rxjs/src/BehaviorSubject.ts new file mode 100644 index 00000000..f8b4f44d --- /dev/null +++ b/node_modules/rxjs/src/BehaviorSubject.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/BehaviorSubject'; diff --git a/node_modules/rxjs/src/InnerSubscriber.ts b/node_modules/rxjs/src/InnerSubscriber.ts new file mode 100644 index 00000000..79e3b4a2 --- /dev/null +++ b/node_modules/rxjs/src/InnerSubscriber.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/InnerSubscriber'; diff --git a/node_modules/rxjs/src/LICENSE.txt b/node_modules/rxjs/src/LICENSE.txt new file mode 100644 index 00000000..031ce381 --- /dev/null +++ b/node_modules/rxjs/src/LICENSE.txt @@ -0,0 +1,202 @@ + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + 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. + diff --git a/node_modules/rxjs/src/MiscJSDoc.ts b/node_modules/rxjs/src/MiscJSDoc.ts new file mode 100644 index 00000000..5cf5d67f --- /dev/null +++ b/node_modules/rxjs/src/MiscJSDoc.ts @@ -0,0 +1,451 @@ +/* + * This file and its definitions are needed just so that ESDoc sees these + * JSDoc documentation comments. Originally they were meant for some TypeScript + * interfaces, but TypeScript strips away JSDoc comments near interfaces. Hence, + * we need these bogus classes, which are not stripped away. This file on the + * other hand, is not included in the release bundle. + */ +import { Observer, TeardownLogic } from './internal/types'; +import { Observable } from './internal/Observable'; +import './internal/observable/dom/MiscJSDoc'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class ObservableDoc { + /** + * Creates a new Observable, that will execute the specified function when an + * {@link Observer} subscribes to it. + * + * Create custom Observable, that does whatever you like. + * + * ![](create.png) + * + * `create` converts an `onSubscription` function to an actual Observable. + * Whenever someone subscribes to that Observable, the function will be called + * with an {@link Observer} instance as a first and only parameter. `onSubscription` should + * then invoke the Observers `next`, `error` and `complete` methods. + * + * Calling `next` with a value will emit that value to the observer. Calling `complete` + * means that Observable finished emitting and will not do anything else. + * Calling `error` means that something went wrong - value passed to `error` method should + * provide details on what exactly happened. + * + * A well-formed Observable can emit as many values as it needs via `next` method, + * but `complete` and `error` methods can be called only once and nothing else can be called + * thereafter. If you try to invoke `next`, `complete` or `error` methods after created + * Observable already completed or ended with an error, these calls will be ignored to + * preserve so called *Observable Contract*. Note that you are not required to call + * `complete` at any point - it is perfectly fine to create an Observable that never ends, + * depending on your needs. + * + * `onSubscription` can optionally return either a function or an object with + * `unsubscribe` method. In both cases function or method will be called when + * subscription to Observable is being cancelled and should be used to clean up all + * resources. So, for example, if you are using `setTimeout` in your custom + * Observable, when someone unsubscribes, you can clear planned timeout, so that + * it does not fire needlessly and browser (or other environment) does not waste + * computing power on timing event that no one will listen to anyways. + * + * Most of the times you should not need to use `create`, because existing + * operators allow you to create an Observable for most of the use cases. + * That being said, `create` is low-level mechanism allowing you to create + * any Observable, if you have very specific needs. + * + * **TypeScript signature issue** + * + * Because Observable extends class which already has defined static `create` function, + * but with different type signature, it was impossible to assign proper signature to + * `Observable.create`. Because of that, it has very general type `Function` and thus + * function passed to `create` will not be type checked, unless you explicitly state + * what signature it should have. + * + * When using TypeScript we recommend to declare type signature of function passed to + * `create` as `(observer: Observer) => TeardownLogic`, where {@link Observer} + * and {@link TeardownLogic} are interfaces provided by the library. + * + * @example Emit three numbers, then complete. + * var observable = Rx.Observable.create(function (observer) { + * observer.next(1); + * observer.next(2); + * observer.next(3); + * observer.complete(); + * }); + * observable.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('this is the end') + * ); + * + * // Logs + * // 1 + * // 2 + * // 3 + * // "this is the end" + * + * + * @example Emit an error + * const observable = Rx.Observable.create((observer) => { + * observer.error('something went really wrong...'); + * }); + * + * observable.subscribe( + * value => console.log(value), // will never be called + * err => console.log(err), + * () => console.log('complete') // will never be called + * ); + * + * // Logs + * // "something went really wrong..." + * + * + * @example Return unsubscribe function + * + * const observable = Rx.Observable.create(observer => { + * const id = setTimeout(() => observer.next('...'), 5000); // emit value after 5s + * + * return () => { clearTimeout(id); console.log('cleared!'); }; + * }); + * + * const subscription = observable.subscribe(value => console.log(value)); + * + * setTimeout(() => subscription.unsubscribe(), 3000); // cancel subscription after 3s + * + * // Logs: + * // "cleared!" after 3s + * + * // Never logs "..." + * + * + * @see {@link empty} + * @see {@link never} + * @see {@link of} + * @see {@link throw} + * + * @param {function(observer: Observer): TeardownLogic} onSubscription A + * function that accepts an Observer, and invokes its `next`, + * `error`, and `complete` methods as appropriate, and optionally returns some + * logic for cleaning up resources. + * @return {Observable} An Observable that, whenever subscribed, will execute the + * specified function. + * @static true + * @name create + * @owner Observable + * @nocollapse + */ + static create(onSubscription: (observer: Observer) => TeardownLogic): Observable { + return new Observable(onSubscription); + } +} + +/** + * An interface for a consumer of push-based notifications delivered by an + * {@link Observable}. + * + * ```ts + * interface Observer { + * closed?: boolean; + * next: (value: T) => void; + * error: (err: any) => void; + * complete: () => void; + * } + * ``` + * + * An object conforming to the Observer interface is usually + * given to the `observable.subscribe(observer)` method, and the Observable will + * call the Observer's `next(value)` method to provide notifications. A + * well-behaved Observable will call an Observer's `complete()` method exactly + * once or the Observer's `error(err)` method exactly once, as the last + * notification delivered. + * + * @interface + * @name Observer + * @noimport true + */ +export class ObserverDoc { + /** + * An optional flag to indicate whether this Observer, when used as a + * subscriber, has already been unsubscribed from its Observable. + * @type {boolean} + */ + closed: boolean = false; + /** + * The callback to receive notifications of type `next` from the Observable, + * with a value. The Observable may call this method 0 or more times. + * @param {T} value The `next` value. + * @return {void} + */ + next(value: T): void { + return void 0; + } + /** + * The callback to receive notifications of type `error` from the Observable, + * with an attached {@link Error}. Notifies the Observer that the Observable + * has experienced an error condition. + * @param {any} err The `error` exception. + * @return {void} + */ + error(err: any): void { + return void 0; + } + /** + * The callback to receive a valueless notification of type `complete` from + * the Observable. Notifies the Observer that the Observable has finished + * sending push-based notifications. + * @return {void} + */ + complete(): void { + return void 0; + } +} + +/** + * `SubscribableOrPromise` interface describes values that behave like either + * Observables or Promises. Every operator that accepts arguments annotated + * with this interface, can be also used with parameters that are not necessarily + * RxJS Observables. + * + * Following types of values might be passed to operators expecting this interface: + * + * ## Observable + * + * RxJS {@link Observable} instance. + * + * ## Observable-like (Subscribable) + * + * This might be any object that has `Symbol.observable` method. This method, + * when called, should return object with `subscribe` method on it, which should + * behave the same as RxJS `Observable.subscribe`. + * + * `Symbol.observable` is part of https://github.com/tc39/proposal-observable proposal. + * Since currently it is not supported natively, and every symbol is equal only to itself, + * you should use https://github.com/blesh/symbol-observable polyfill, when implementing + * custom Observable-likes. + * + * **TypeScript Subscribable interface issue** + * + * Although TypeScript interface claims that Subscribable is an object that has `subscribe` + * method declared directly on it, passing custom objects that have `subscribe` + * method but not `Symbol.observable` method will fail at runtime. Conversely, passing + * objects with `Symbol.observable` but without `subscribe` will fail at compile time + * (if you use TypeScript). + * + * TypeScript has problem supporting interfaces with methods defined as symbol + * properties. To get around that, you should implement `subscribe` directly on + * passed object, and make `Symbol.observable` method simply return `this`. That way + * everything will work as expected, and compiler will not complain. If you really + * do not want to put `subscribe` directly on your object, you will have to type cast + * it to `any`, before passing it to an operator. + * + * When this issue is resolved, Subscribable interface will only permit Observable-like + * objects with `Symbol.observable` defined, no matter if they themselves implement + * `subscribe` method or not. + * + * ## ES6 Promise + * + * Promise can be interpreted as Observable that emits value and completes + * when it is resolved or errors when it is rejected. + * + * ## Promise-like (Thenable) + * + * Promises passed to operators do not have to be native ES6 Promises. + * They can be implementations from popular Promise libraries, polyfills + * or even custom ones. They just need to have `then` method that works + * as the same as ES6 Promise `then`. + * + * @example Use merge and then map with non-RxJS observable + * const nonRxJSObservable = { + * subscribe(observer) { + * observer.next(1000); + * observer.complete(); + * }, + * [Symbol.observable]() { + * return this; + * } + * }; + * + * Rx.Observable.merge(nonRxJSObservable) + * .map(value => "This value is " + value) + * .subscribe(result => console.log(result)); // Logs "This value is 1000" + * + * + * @example Use combineLatest with ES6 Promise + * Rx.Observable.combineLatest(Promise.resolve(5), Promise.resolve(10), Promise.resolve(15)) + * .subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('the end!') + * ); + * // Logs + * // [5, 10, 15] + * // "the end!" + * + * + * @interface + * @name SubscribableOrPromise + * @noimport true + */ +export class SubscribableOrPromiseDoc { + +} + +/** + * `ObservableInput` interface describes all values that are either an + * {@link SubscribableOrPromise} or some kind of collection of values that + * can be transformed to Observable emitting that values. Every operator that + * accepts arguments annotated with this interface, can be also used with + * parameters that are not necessarily RxJS Observables. + * + * `ObservableInput` extends {@link SubscribableOrPromise} with following types: + * + * ## Array + * + * Arrays can be interpreted as observables that emit all values in array one by one, + * from left to right, and then complete immediately. + * + * ## Array-like + * + * Arrays passed to operators do not have to be built-in JavaScript Arrays. They + * can be also, for example, `arguments` property available inside every function, + * [DOM NodeList](https://developer.mozilla.org/pl/docs/Web/API/NodeList), + * or, actually, any object that has `length` property (which is a number) + * and stores values under non-negative (zero and up) integers. + * + * ## ES6 Iterable + * + * Operators will accept both built-in and custom ES6 Iterables, by treating them as + * observables that emit all its values in order of iteration and then complete + * when iteration ends. Note that contrary to arrays, Iterables do not have to + * necessarily be finite, so creating Observables that never complete is possible as well. + * + * Note that you can make iterator an instance of Iterable by having it return itself + * in `Symbol.iterator` method. It means that every operator accepting Iterables accepts, + * though indirectly, iterators themselves as well. All native ES6 iterators are instances + * of Iterable by default, so you do not have to implement their `Symbol.iterator` method + * yourself. + * + * **TypeScript Iterable interface issue** + * + * TypeScript `ObservableInput` interface actually lacks type signature for Iterables, + * because of issues it caused in some projects (see [this issue](https://github.com/ReactiveX/rxjs/issues/2306)). + * If you want to use Iterable as argument for operator, cast it to `any` first. + * Remember of course that, because of casting, you have to yourself ensure that passed + * argument really implements said interface. + * + * + * @example Use merge with arrays + * Rx.Observable.merge([1, 2], [4], [5, 6]) + * .subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('ta dam!') + * ); + * + * // Logs + * // 1 + * // 2 + * // 3 + * // 4 + * // 5 + * // 6 + * // "ta dam!" + * + * + * @example Use merge with array-like + * Rx.Observable.merge({0: 1, 1: 2, length: 2}, {0: 3, length: 1}) + * .subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('nice, huh?') + * ); + * + * // Logs + * // 1 + * // 2 + * // 3 + * // "nice, huh?" + * + * @example Use merge with an Iterable (Map) + * const firstMap = new Map([[1, 'a'], [2, 'b']]); + * const secondMap = new Map([[3, 'c'], [4, 'd']]); + * + * Rx.Observable.merge( + * firstMap, // pass Iterable + * secondMap.values() // pass iterator, which is itself an Iterable + * ).subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('yup!') + * ); + * + * // Logs + * // [1, "a"] + * // [2, "b"] + * // "c" + * // "d" + * // "yup!" + * + * @example Use from with generator (returning infinite iterator) + * // infinite stream of incrementing numbers + * const infinite = function* () { + * let i = 0; + * + * while (true) { + * yield i++; + * } + * }; + * + * Rx.Observable.from(infinite()) + * .take(3) // only take 3, cause this is infinite + * .subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('ta dam!') + * ); + * + * // Logs + * // 0 + * // 1 + * // 2 + * // "ta dam!" + * + * @interface + * @name ObservableInput + * @noimport true + */ +export class ObservableInputDoc { + +} + +/** + * + * This interface describes what should be returned by function passed to Observable + * constructor or static {@link create} function. Value of that interface will be used + * to cancel subscription for given Observable. + * + * `TeardownLogic` can be: + * + * ## Function + * + * Function that takes no parameters. When consumer of created Observable calls `unsubscribe`, + * that function will be called + * + * ## AnonymousSubscription + * + * `AnonymousSubscription` is simply an object with `unsubscribe` method on it. That method + * will work the same as function + * + * ## void + * + * If created Observable does not have any resources to clean up, function does not have to + * return anything. + * + * @interface + * @name TeardownLogic + * @noimport true + */ +export class TeardownLogicDoc { + +} diff --git a/node_modules/rxjs/src/Notification.ts b/node_modules/rxjs/src/Notification.ts new file mode 100644 index 00000000..5d9956d1 --- /dev/null +++ b/node_modules/rxjs/src/Notification.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Notification'; diff --git a/node_modules/rxjs/src/Observable.ts b/node_modules/rxjs/src/Observable.ts new file mode 100644 index 00000000..cc1e68df --- /dev/null +++ b/node_modules/rxjs/src/Observable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Observable'; diff --git a/node_modules/rxjs/src/Observer.ts b/node_modules/rxjs/src/Observer.ts new file mode 100644 index 00000000..867ce2f9 --- /dev/null +++ b/node_modules/rxjs/src/Observer.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Observer'; diff --git a/node_modules/rxjs/src/Operator.ts b/node_modules/rxjs/src/Operator.ts new file mode 100644 index 00000000..fb9a9f99 --- /dev/null +++ b/node_modules/rxjs/src/Operator.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Operator'; diff --git a/node_modules/rxjs/src/OuterSubscriber.ts b/node_modules/rxjs/src/OuterSubscriber.ts new file mode 100644 index 00000000..9060ae77 --- /dev/null +++ b/node_modules/rxjs/src/OuterSubscriber.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/OuterSubscriber'; diff --git a/node_modules/rxjs/src/README.md b/node_modules/rxjs/src/README.md new file mode 100644 index 00000000..f92dafde --- /dev/null +++ b/node_modules/rxjs/src/README.md @@ -0,0 +1,147 @@ +# RxJS Logo RxJS: Reactive Extensions For JavaScript + +[![CircleCI](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x.svg?style=svg)](https://circleci.com/gh/ReactiveX/rxjs/tree/6.x) +[![npm version](https://badge.fury.io/js/%40reactivex%2Frxjs.svg)](http://badge.fury.io/js/%40reactivex%2Frxjs) +[![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +# RxJS 6 Stable + +### MIGRATION AND RELEASE INFORMATION: + +Find out how to update to v6, **automatically update your TypeScript code**, and more! + +- [Current home is MIGRATION.md](./docs_app/content/guide/v6/migration.md) + +### FOR V 5.X PLEASE GO TO [THE 5.0 BRANCH](https://github.com/ReactiveX/rxjs/tree/5.x) + +Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. + +[Apache 2.0 License](LICENSE.txt) + +- [Code of Conduct](CODE_OF_CONDUCT.md) +- [Contribution Guidelines](CONTRIBUTING.md) +- [Maintainer Guidelines](doc_app/content/maintainer-guidelines.md) +- [API Documentation](https://rxjs.dev/) + +## Versions In This Repository + +- [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current, unreleased work, which is against v6 of RxJS right now +- [stable](https://github.com/ReactiveX/rxjs/commits/stable) - This is the branch for the latest version you'd get if you do `npm install rxjs` + +## Important + +By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity. + +## Installation and Usage + +### ES6 via npm + +```sh +npm install rxjs +``` + +It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. And you can pull in any operator you need from one spot, under `'rxjs/operators'`. + +```ts +import { range } from "rxjs"; +import { map, filter } from "rxjs/operators"; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +Here, we're using the built-in `pipe` method on Observables to combine operators. See [pipeable operators](https://github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md) for more information. + +### CommonJS via npm + +To install this library for CommonJS (CJS) usage, use the following command: + +```sh +npm install rxjs +``` + +(Note: destructuring available in Node 8+) + +```js +const { range } = require('rxjs'); +const { map, filter } = require('rxjs/operators'); + +range(1, 200).pipe( + filter(x => x % 2 === 1), + map(x => x + x) +).subscribe(x => console.log(x)); +``` + +### CDN + +For CDN, you can use [unpkg](https://unpkg.com/): + +https://unpkg.com/rxjs/bundles/rxjs.umd.min.js + +The global namespace for rxjs is `rxjs`: + +```js +const { range } = rxjs; +const { map, filter } = rxjs.operators; + +range(1, 200) + .pipe( + filter(x => x % 2 === 1), + map(x => x + x) + ) + .subscribe(x => console.log(x)); +``` + +## Goals + +- Smaller overall bundles sizes +- Provide better performance than preceding versions of RxJS +- To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable +- Provide more modular file structure in a variety of formats +- Provide more debuggable call stacks than preceding versions of RxJS + +## Building/Testing + +- `npm run build_all` - builds everything +- `npm test` - runs tests +- `npm run test_no_cache` - run test with `ts-node` set to false + +## Performance Tests + +Run `npm run build_perf` or `npm run perf` to run the performance tests with `protractor`. + +Run `npm run perf_micro [operator]` to run micro performance test benchmarking operator. + +## Adding documentation + +We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app). + +## Generating PNG marble diagrams + +The script `npm run tests2png` requires some native packages installed locally: `imagemagick`, `graphicsmagick`, and `ghostscript`. + +For Mac OS X with [Homebrew](http://brew.sh/): + +- `brew install imagemagick` +- `brew install graphicsmagick` +- `brew install ghostscript` +- You may need to install the Ghostscript fonts manually: + - Download the tarball from the [gs-fonts project](https://sourceforge.net/projects/gs-fonts) + - `mkdir -p /usr/local/share/ghostscript && tar zxvf /path/to/ghostscript-fonts.tar.gz -C /usr/local/share/ghostscript` + +For Debian Linux: + +- `sudo add-apt-repository ppa:dhor/myway` +- `apt-get install imagemagick` +- `apt-get install graphicsmagick` +- `apt-get install ghostscript` + +For Windows and other Operating Systems, check the download instructions here: + +- http://imagemagick.org +- http://www.graphicsmagick.org +- http://www.ghostscript.com/ diff --git a/node_modules/rxjs/src/ReplaySubject.ts b/node_modules/rxjs/src/ReplaySubject.ts new file mode 100644 index 00000000..b66aea96 --- /dev/null +++ b/node_modules/rxjs/src/ReplaySubject.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/ReplaySubject'; diff --git a/node_modules/rxjs/src/Rx.global.js b/node_modules/rxjs/src/Rx.global.js new file mode 100644 index 00000000..d75682b2 --- /dev/null +++ b/node_modules/rxjs/src/Rx.global.js @@ -0,0 +1,5 @@ +(function (root, factory) { + root.Rx = factory(); +})(window || global || this, function () { + return require('../dist/package/Rx'); +}); \ No newline at end of file diff --git a/node_modules/rxjs/src/Rx.ts b/node_modules/rxjs/src/Rx.ts new file mode 100644 index 00000000..e04c752c --- /dev/null +++ b/node_modules/rxjs/src/Rx.ts @@ -0,0 +1,2 @@ + +export * from 'rxjs-compat'; diff --git a/node_modules/rxjs/src/Scheduler.ts b/node_modules/rxjs/src/Scheduler.ts new file mode 100644 index 00000000..c21eb1fe --- /dev/null +++ b/node_modules/rxjs/src/Scheduler.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Scheduler'; diff --git a/node_modules/rxjs/src/Subject.ts b/node_modules/rxjs/src/Subject.ts new file mode 100644 index 00000000..7448233e --- /dev/null +++ b/node_modules/rxjs/src/Subject.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Subject'; diff --git a/node_modules/rxjs/src/SubjectSubscription.ts b/node_modules/rxjs/src/SubjectSubscription.ts new file mode 100644 index 00000000..4f481ced --- /dev/null +++ b/node_modules/rxjs/src/SubjectSubscription.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/SubjectSubscription'; diff --git a/node_modules/rxjs/src/Subscriber.ts b/node_modules/rxjs/src/Subscriber.ts new file mode 100644 index 00000000..15356d52 --- /dev/null +++ b/node_modules/rxjs/src/Subscriber.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Subscriber'; diff --git a/node_modules/rxjs/src/Subscription.ts b/node_modules/rxjs/src/Subscription.ts new file mode 100644 index 00000000..028cf4c7 --- /dev/null +++ b/node_modules/rxjs/src/Subscription.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/Subscription'; diff --git a/node_modules/rxjs/src/add/observable/bindCallback.ts b/node_modules/rxjs/src/add/observable/bindCallback.ts new file mode 100644 index 00000000..7926a093 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/bindCallback.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/bindCallback'; diff --git a/node_modules/rxjs/src/add/observable/bindNodeCallback.ts b/node_modules/rxjs/src/add/observable/bindNodeCallback.ts new file mode 100644 index 00000000..049f9a7c --- /dev/null +++ b/node_modules/rxjs/src/add/observable/bindNodeCallback.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/bindNodeCallback'; diff --git a/node_modules/rxjs/src/add/observable/combineLatest.ts b/node_modules/rxjs/src/add/observable/combineLatest.ts new file mode 100644 index 00000000..7163d7a9 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/combineLatest.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/combineLatest'; diff --git a/node_modules/rxjs/src/add/observable/concat.ts b/node_modules/rxjs/src/add/observable/concat.ts new file mode 100644 index 00000000..b392cb2e --- /dev/null +++ b/node_modules/rxjs/src/add/observable/concat.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/concat'; diff --git a/node_modules/rxjs/src/add/observable/defer.ts b/node_modules/rxjs/src/add/observable/defer.ts new file mode 100644 index 00000000..b4e29662 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/defer.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/defer'; diff --git a/node_modules/rxjs/src/add/observable/dom/ajax.ts b/node_modules/rxjs/src/add/observable/dom/ajax.ts new file mode 100644 index 00000000..2b32efef --- /dev/null +++ b/node_modules/rxjs/src/add/observable/dom/ajax.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/dom/ajax'; diff --git a/node_modules/rxjs/src/add/observable/dom/webSocket.ts b/node_modules/rxjs/src/add/observable/dom/webSocket.ts new file mode 100644 index 00000000..bc5d3f32 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/dom/webSocket.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/dom/webSocket'; diff --git a/node_modules/rxjs/src/add/observable/empty.ts b/node_modules/rxjs/src/add/observable/empty.ts new file mode 100644 index 00000000..d261ad7f --- /dev/null +++ b/node_modules/rxjs/src/add/observable/empty.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/empty'; diff --git a/node_modules/rxjs/src/add/observable/forkJoin.ts b/node_modules/rxjs/src/add/observable/forkJoin.ts new file mode 100644 index 00000000..2a581e29 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/forkJoin.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/forkJoin'; diff --git a/node_modules/rxjs/src/add/observable/from.ts b/node_modules/rxjs/src/add/observable/from.ts new file mode 100644 index 00000000..06572d87 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/from.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/from'; diff --git a/node_modules/rxjs/src/add/observable/fromEvent.ts b/node_modules/rxjs/src/add/observable/fromEvent.ts new file mode 100644 index 00000000..0d6e05b3 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/fromEvent.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/fromEvent'; diff --git a/node_modules/rxjs/src/add/observable/fromEventPattern.ts b/node_modules/rxjs/src/add/observable/fromEventPattern.ts new file mode 100644 index 00000000..c7241f86 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/fromEventPattern.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/fromEventPattern'; diff --git a/node_modules/rxjs/src/add/observable/fromPromise.ts b/node_modules/rxjs/src/add/observable/fromPromise.ts new file mode 100644 index 00000000..c2622426 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/fromPromise.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/fromPromise'; diff --git a/node_modules/rxjs/src/add/observable/generate.ts b/node_modules/rxjs/src/add/observable/generate.ts new file mode 100644 index 00000000..3203a9b6 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/generate.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/generate'; diff --git a/node_modules/rxjs/src/add/observable/if.ts b/node_modules/rxjs/src/add/observable/if.ts new file mode 100644 index 00000000..5767d74c --- /dev/null +++ b/node_modules/rxjs/src/add/observable/if.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/if'; diff --git a/node_modules/rxjs/src/add/observable/interval.ts b/node_modules/rxjs/src/add/observable/interval.ts new file mode 100644 index 00000000..6cd2b31d --- /dev/null +++ b/node_modules/rxjs/src/add/observable/interval.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/interval'; diff --git a/node_modules/rxjs/src/add/observable/merge.ts b/node_modules/rxjs/src/add/observable/merge.ts new file mode 100644 index 00000000..7a111a5d --- /dev/null +++ b/node_modules/rxjs/src/add/observable/merge.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/merge'; diff --git a/node_modules/rxjs/src/add/observable/never.ts b/node_modules/rxjs/src/add/observable/never.ts new file mode 100644 index 00000000..4c464d09 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/never.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/never'; diff --git a/node_modules/rxjs/src/add/observable/of.ts b/node_modules/rxjs/src/add/observable/of.ts new file mode 100644 index 00000000..c0720f6a --- /dev/null +++ b/node_modules/rxjs/src/add/observable/of.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/of'; diff --git a/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts b/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts new file mode 100644 index 00000000..80a4d91a --- /dev/null +++ b/node_modules/rxjs/src/add/observable/onErrorResumeNext.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/onErrorResumeNext'; diff --git a/node_modules/rxjs/src/add/observable/pairs.ts b/node_modules/rxjs/src/add/observable/pairs.ts new file mode 100644 index 00000000..3af25b6b --- /dev/null +++ b/node_modules/rxjs/src/add/observable/pairs.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/pairs'; diff --git a/node_modules/rxjs/src/add/observable/race.ts b/node_modules/rxjs/src/add/observable/race.ts new file mode 100644 index 00000000..9b45c4e3 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/race.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/race'; diff --git a/node_modules/rxjs/src/add/observable/range.ts b/node_modules/rxjs/src/add/observable/range.ts new file mode 100644 index 00000000..2ae274ed --- /dev/null +++ b/node_modules/rxjs/src/add/observable/range.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/range'; diff --git a/node_modules/rxjs/src/add/observable/throw.ts b/node_modules/rxjs/src/add/observable/throw.ts new file mode 100644 index 00000000..7405653d --- /dev/null +++ b/node_modules/rxjs/src/add/observable/throw.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/throw'; diff --git a/node_modules/rxjs/src/add/observable/timer.ts b/node_modules/rxjs/src/add/observable/timer.ts new file mode 100644 index 00000000..60e2f9b4 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/timer.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/timer'; diff --git a/node_modules/rxjs/src/add/observable/using.ts b/node_modules/rxjs/src/add/observable/using.ts new file mode 100644 index 00000000..c7ac49a4 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/using.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/using'; diff --git a/node_modules/rxjs/src/add/observable/zip.ts b/node_modules/rxjs/src/add/observable/zip.ts new file mode 100644 index 00000000..5c720416 --- /dev/null +++ b/node_modules/rxjs/src/add/observable/zip.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/observable/zip'; diff --git a/node_modules/rxjs/src/add/operator/audit.ts b/node_modules/rxjs/src/add/operator/audit.ts new file mode 100644 index 00000000..a3eb5a4b --- /dev/null +++ b/node_modules/rxjs/src/add/operator/audit.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/audit'; diff --git a/node_modules/rxjs/src/add/operator/auditTime.ts b/node_modules/rxjs/src/add/operator/auditTime.ts new file mode 100644 index 00000000..41f68da2 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/auditTime.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/auditTime'; diff --git a/node_modules/rxjs/src/add/operator/buffer.ts b/node_modules/rxjs/src/add/operator/buffer.ts new file mode 100644 index 00000000..b501cae1 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/buffer.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/buffer'; diff --git a/node_modules/rxjs/src/add/operator/bufferCount.ts b/node_modules/rxjs/src/add/operator/bufferCount.ts new file mode 100644 index 00000000..96237e56 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/bufferCount.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferCount'; diff --git a/node_modules/rxjs/src/add/operator/bufferTime.ts b/node_modules/rxjs/src/add/operator/bufferTime.ts new file mode 100644 index 00000000..abd78ab8 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/bufferTime.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferTime'; diff --git a/node_modules/rxjs/src/add/operator/bufferToggle.ts b/node_modules/rxjs/src/add/operator/bufferToggle.ts new file mode 100644 index 00000000..2dbdf86e --- /dev/null +++ b/node_modules/rxjs/src/add/operator/bufferToggle.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferToggle'; diff --git a/node_modules/rxjs/src/add/operator/bufferWhen.ts b/node_modules/rxjs/src/add/operator/bufferWhen.ts new file mode 100644 index 00000000..4ad636f8 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/bufferWhen.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/bufferWhen'; diff --git a/node_modules/rxjs/src/add/operator/catch.ts b/node_modules/rxjs/src/add/operator/catch.ts new file mode 100644 index 00000000..316a29ee --- /dev/null +++ b/node_modules/rxjs/src/add/operator/catch.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/catch'; diff --git a/node_modules/rxjs/src/add/operator/combineAll.ts b/node_modules/rxjs/src/add/operator/combineAll.ts new file mode 100644 index 00000000..0cf4be81 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/combineAll.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/combineAll'; diff --git a/node_modules/rxjs/src/add/operator/combineLatest.ts b/node_modules/rxjs/src/add/operator/combineLatest.ts new file mode 100644 index 00000000..88333e72 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/combineLatest.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/combineLatest'; diff --git a/node_modules/rxjs/src/add/operator/concat.ts b/node_modules/rxjs/src/add/operator/concat.ts new file mode 100644 index 00000000..c743a6b4 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/concat.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concat'; diff --git a/node_modules/rxjs/src/add/operator/concatAll.ts b/node_modules/rxjs/src/add/operator/concatAll.ts new file mode 100644 index 00000000..cf9157fd --- /dev/null +++ b/node_modules/rxjs/src/add/operator/concatAll.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concatAll'; diff --git a/node_modules/rxjs/src/add/operator/concatMap.ts b/node_modules/rxjs/src/add/operator/concatMap.ts new file mode 100644 index 00000000..dadc7220 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/concatMap.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concatMap'; diff --git a/node_modules/rxjs/src/add/operator/concatMapTo.ts b/node_modules/rxjs/src/add/operator/concatMapTo.ts new file mode 100644 index 00000000..9a843a60 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/concatMapTo.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/concatMapTo'; diff --git a/node_modules/rxjs/src/add/operator/count.ts b/node_modules/rxjs/src/add/operator/count.ts new file mode 100644 index 00000000..85c68323 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/count.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/count'; diff --git a/node_modules/rxjs/src/add/operator/debounce.ts b/node_modules/rxjs/src/add/operator/debounce.ts new file mode 100644 index 00000000..e5ff5dbd --- /dev/null +++ b/node_modules/rxjs/src/add/operator/debounce.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/debounce'; diff --git a/node_modules/rxjs/src/add/operator/debounceTime.ts b/node_modules/rxjs/src/add/operator/debounceTime.ts new file mode 100644 index 00000000..8ffedf91 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/debounceTime.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/debounceTime'; diff --git a/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts b/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts new file mode 100644 index 00000000..d8e00700 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/defaultIfEmpty.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/defaultIfEmpty'; diff --git a/node_modules/rxjs/src/add/operator/delay.ts b/node_modules/rxjs/src/add/operator/delay.ts new file mode 100644 index 00000000..96d20172 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/delay.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/delay'; diff --git a/node_modules/rxjs/src/add/operator/delayWhen.ts b/node_modules/rxjs/src/add/operator/delayWhen.ts new file mode 100644 index 00000000..a50cebb0 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/delayWhen.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/delayWhen'; diff --git a/node_modules/rxjs/src/add/operator/dematerialize.ts b/node_modules/rxjs/src/add/operator/dematerialize.ts new file mode 100644 index 00000000..18f368b9 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/dematerialize.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/dematerialize'; diff --git a/node_modules/rxjs/src/add/operator/distinct.ts b/node_modules/rxjs/src/add/operator/distinct.ts new file mode 100644 index 00000000..330f8f9a --- /dev/null +++ b/node_modules/rxjs/src/add/operator/distinct.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/distinct'; diff --git a/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts b/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts new file mode 100644 index 00000000..8273e9e8 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/distinctUntilChanged.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/distinctUntilChanged'; diff --git a/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts new file mode 100644 index 00000000..f556b829 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/distinctUntilKeyChanged.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/distinctUntilKeyChanged'; diff --git a/node_modules/rxjs/src/add/operator/do.ts b/node_modules/rxjs/src/add/operator/do.ts new file mode 100644 index 00000000..9eee7cd5 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/do.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/do'; diff --git a/node_modules/rxjs/src/add/operator/elementAt.ts b/node_modules/rxjs/src/add/operator/elementAt.ts new file mode 100644 index 00000000..8fe8f29a --- /dev/null +++ b/node_modules/rxjs/src/add/operator/elementAt.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/elementAt'; diff --git a/node_modules/rxjs/src/add/operator/every.ts b/node_modules/rxjs/src/add/operator/every.ts new file mode 100644 index 00000000..789d3c14 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/every.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/every'; diff --git a/node_modules/rxjs/src/add/operator/exhaust.ts b/node_modules/rxjs/src/add/operator/exhaust.ts new file mode 100644 index 00000000..d0cae896 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/exhaust.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/exhaust'; diff --git a/node_modules/rxjs/src/add/operator/exhaustMap.ts b/node_modules/rxjs/src/add/operator/exhaustMap.ts new file mode 100644 index 00000000..6e231be4 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/exhaustMap.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/exhaustMap'; diff --git a/node_modules/rxjs/src/add/operator/expand.ts b/node_modules/rxjs/src/add/operator/expand.ts new file mode 100644 index 00000000..035ea496 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/expand.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/expand'; diff --git a/node_modules/rxjs/src/add/operator/filter.ts b/node_modules/rxjs/src/add/operator/filter.ts new file mode 100644 index 00000000..1cfe74a7 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/filter.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/filter'; diff --git a/node_modules/rxjs/src/add/operator/finally.ts b/node_modules/rxjs/src/add/operator/finally.ts new file mode 100644 index 00000000..7db9d996 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/finally.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/finally'; diff --git a/node_modules/rxjs/src/add/operator/find.ts b/node_modules/rxjs/src/add/operator/find.ts new file mode 100644 index 00000000..2255ba45 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/find.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/find'; diff --git a/node_modules/rxjs/src/add/operator/findIndex.ts b/node_modules/rxjs/src/add/operator/findIndex.ts new file mode 100644 index 00000000..8d984696 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/findIndex.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/findIndex'; diff --git a/node_modules/rxjs/src/add/operator/first.ts b/node_modules/rxjs/src/add/operator/first.ts new file mode 100644 index 00000000..b12264fc --- /dev/null +++ b/node_modules/rxjs/src/add/operator/first.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/first'; diff --git a/node_modules/rxjs/src/add/operator/groupBy.ts b/node_modules/rxjs/src/add/operator/groupBy.ts new file mode 100644 index 00000000..932d1f46 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/groupBy.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/groupBy'; diff --git a/node_modules/rxjs/src/add/operator/ignoreElements.ts b/node_modules/rxjs/src/add/operator/ignoreElements.ts new file mode 100644 index 00000000..28b04ba0 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/ignoreElements.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/ignoreElements'; diff --git a/node_modules/rxjs/src/add/operator/isEmpty.ts b/node_modules/rxjs/src/add/operator/isEmpty.ts new file mode 100644 index 00000000..b84aaa9f --- /dev/null +++ b/node_modules/rxjs/src/add/operator/isEmpty.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/isEmpty'; diff --git a/node_modules/rxjs/src/add/operator/last.ts b/node_modules/rxjs/src/add/operator/last.ts new file mode 100644 index 00000000..0b222df5 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/last.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/last'; diff --git a/node_modules/rxjs/src/add/operator/let.ts b/node_modules/rxjs/src/add/operator/let.ts new file mode 100644 index 00000000..5b920151 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/let.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/let'; diff --git a/node_modules/rxjs/src/add/operator/map.ts b/node_modules/rxjs/src/add/operator/map.ts new file mode 100644 index 00000000..e9f2a7f4 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/map.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/map'; diff --git a/node_modules/rxjs/src/add/operator/mapTo.ts b/node_modules/rxjs/src/add/operator/mapTo.ts new file mode 100644 index 00000000..a49f787c --- /dev/null +++ b/node_modules/rxjs/src/add/operator/mapTo.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mapTo'; diff --git a/node_modules/rxjs/src/add/operator/materialize.ts b/node_modules/rxjs/src/add/operator/materialize.ts new file mode 100644 index 00000000..e7731991 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/materialize.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/materialize'; diff --git a/node_modules/rxjs/src/add/operator/max.ts b/node_modules/rxjs/src/add/operator/max.ts new file mode 100644 index 00000000..c66f7aea --- /dev/null +++ b/node_modules/rxjs/src/add/operator/max.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/max'; diff --git a/node_modules/rxjs/src/add/operator/merge.ts b/node_modules/rxjs/src/add/operator/merge.ts new file mode 100644 index 00000000..dfa5c463 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/merge.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/merge'; diff --git a/node_modules/rxjs/src/add/operator/mergeAll.ts b/node_modules/rxjs/src/add/operator/mergeAll.ts new file mode 100644 index 00000000..06cdc4fa --- /dev/null +++ b/node_modules/rxjs/src/add/operator/mergeAll.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeAll'; diff --git a/node_modules/rxjs/src/add/operator/mergeMap.ts b/node_modules/rxjs/src/add/operator/mergeMap.ts new file mode 100644 index 00000000..d8ec3cc4 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/mergeMap.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeMap'; diff --git a/node_modules/rxjs/src/add/operator/mergeMapTo.ts b/node_modules/rxjs/src/add/operator/mergeMapTo.ts new file mode 100644 index 00000000..0d8e15fb --- /dev/null +++ b/node_modules/rxjs/src/add/operator/mergeMapTo.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeMapTo'; diff --git a/node_modules/rxjs/src/add/operator/mergeScan.ts b/node_modules/rxjs/src/add/operator/mergeScan.ts new file mode 100644 index 00000000..17c5fcc1 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/mergeScan.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/mergeScan'; diff --git a/node_modules/rxjs/src/add/operator/min.ts b/node_modules/rxjs/src/add/operator/min.ts new file mode 100644 index 00000000..5fa91d52 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/min.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/min'; diff --git a/node_modules/rxjs/src/add/operator/multicast.ts b/node_modules/rxjs/src/add/operator/multicast.ts new file mode 100644 index 00000000..03b0670b --- /dev/null +++ b/node_modules/rxjs/src/add/operator/multicast.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/multicast'; diff --git a/node_modules/rxjs/src/add/operator/observeOn.ts b/node_modules/rxjs/src/add/operator/observeOn.ts new file mode 100644 index 00000000..4ade0859 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/observeOn.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/observeOn'; diff --git a/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts b/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts new file mode 100644 index 00000000..0d2aa976 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/onErrorResumeNext.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/onErrorResumeNext'; diff --git a/node_modules/rxjs/src/add/operator/pairwise.ts b/node_modules/rxjs/src/add/operator/pairwise.ts new file mode 100644 index 00000000..2930fd30 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/pairwise.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/pairwise'; diff --git a/node_modules/rxjs/src/add/operator/partition.ts b/node_modules/rxjs/src/add/operator/partition.ts new file mode 100644 index 00000000..7b8c869f --- /dev/null +++ b/node_modules/rxjs/src/add/operator/partition.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/partition'; diff --git a/node_modules/rxjs/src/add/operator/pluck.ts b/node_modules/rxjs/src/add/operator/pluck.ts new file mode 100644 index 00000000..0af0f3b6 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/pluck.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/pluck'; diff --git a/node_modules/rxjs/src/add/operator/publish.ts b/node_modules/rxjs/src/add/operator/publish.ts new file mode 100644 index 00000000..b7198cc9 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/publish.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publish'; diff --git a/node_modules/rxjs/src/add/operator/publishBehavior.ts b/node_modules/rxjs/src/add/operator/publishBehavior.ts new file mode 100644 index 00000000..3bc5e01a --- /dev/null +++ b/node_modules/rxjs/src/add/operator/publishBehavior.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publishBehavior'; diff --git a/node_modules/rxjs/src/add/operator/publishLast.ts b/node_modules/rxjs/src/add/operator/publishLast.ts new file mode 100644 index 00000000..243d07cf --- /dev/null +++ b/node_modules/rxjs/src/add/operator/publishLast.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publishLast'; diff --git a/node_modules/rxjs/src/add/operator/publishReplay.ts b/node_modules/rxjs/src/add/operator/publishReplay.ts new file mode 100644 index 00000000..06bc9223 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/publishReplay.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/publishReplay'; diff --git a/node_modules/rxjs/src/add/operator/race.ts b/node_modules/rxjs/src/add/operator/race.ts new file mode 100644 index 00000000..b1134669 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/race.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/race'; diff --git a/node_modules/rxjs/src/add/operator/reduce.ts b/node_modules/rxjs/src/add/operator/reduce.ts new file mode 100644 index 00000000..c8db530e --- /dev/null +++ b/node_modules/rxjs/src/add/operator/reduce.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/reduce'; diff --git a/node_modules/rxjs/src/add/operator/repeat.ts b/node_modules/rxjs/src/add/operator/repeat.ts new file mode 100644 index 00000000..4290613b --- /dev/null +++ b/node_modules/rxjs/src/add/operator/repeat.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/repeat'; diff --git a/node_modules/rxjs/src/add/operator/repeatWhen.ts b/node_modules/rxjs/src/add/operator/repeatWhen.ts new file mode 100644 index 00000000..ca5471a3 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/repeatWhen.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/repeatWhen'; diff --git a/node_modules/rxjs/src/add/operator/retry.ts b/node_modules/rxjs/src/add/operator/retry.ts new file mode 100644 index 00000000..fb9316b3 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/retry.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/retry'; diff --git a/node_modules/rxjs/src/add/operator/retryWhen.ts b/node_modules/rxjs/src/add/operator/retryWhen.ts new file mode 100644 index 00000000..c4553374 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/retryWhen.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/retryWhen'; diff --git a/node_modules/rxjs/src/add/operator/sample.ts b/node_modules/rxjs/src/add/operator/sample.ts new file mode 100644 index 00000000..441255f3 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/sample.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/sample'; diff --git a/node_modules/rxjs/src/add/operator/sampleTime.ts b/node_modules/rxjs/src/add/operator/sampleTime.ts new file mode 100644 index 00000000..153d8b01 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/sampleTime.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/sampleTime'; diff --git a/node_modules/rxjs/src/add/operator/scan.ts b/node_modules/rxjs/src/add/operator/scan.ts new file mode 100644 index 00000000..baf81625 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/scan.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/scan'; diff --git a/node_modules/rxjs/src/add/operator/sequenceEqual.ts b/node_modules/rxjs/src/add/operator/sequenceEqual.ts new file mode 100644 index 00000000..f47a31dc --- /dev/null +++ b/node_modules/rxjs/src/add/operator/sequenceEqual.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/sequenceEqual'; diff --git a/node_modules/rxjs/src/add/operator/share.ts b/node_modules/rxjs/src/add/operator/share.ts new file mode 100644 index 00000000..6db65af4 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/share.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/share'; diff --git a/node_modules/rxjs/src/add/operator/shareReplay.ts b/node_modules/rxjs/src/add/operator/shareReplay.ts new file mode 100644 index 00000000..7f31ff4b --- /dev/null +++ b/node_modules/rxjs/src/add/operator/shareReplay.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/shareReplay'; diff --git a/node_modules/rxjs/src/add/operator/single.ts b/node_modules/rxjs/src/add/operator/single.ts new file mode 100644 index 00000000..d35b3cd6 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/single.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/single'; diff --git a/node_modules/rxjs/src/add/operator/skip.ts b/node_modules/rxjs/src/add/operator/skip.ts new file mode 100644 index 00000000..1456f1e5 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/skip.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skip'; diff --git a/node_modules/rxjs/src/add/operator/skipLast.ts b/node_modules/rxjs/src/add/operator/skipLast.ts new file mode 100644 index 00000000..0c432c9c --- /dev/null +++ b/node_modules/rxjs/src/add/operator/skipLast.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skipLast'; diff --git a/node_modules/rxjs/src/add/operator/skipUntil.ts b/node_modules/rxjs/src/add/operator/skipUntil.ts new file mode 100644 index 00000000..21ea6b2b --- /dev/null +++ b/node_modules/rxjs/src/add/operator/skipUntil.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skipUntil'; diff --git a/node_modules/rxjs/src/add/operator/skipWhile.ts b/node_modules/rxjs/src/add/operator/skipWhile.ts new file mode 100644 index 00000000..496218b0 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/skipWhile.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/skipWhile'; diff --git a/node_modules/rxjs/src/add/operator/startWith.ts b/node_modules/rxjs/src/add/operator/startWith.ts new file mode 100644 index 00000000..9c9e670e --- /dev/null +++ b/node_modules/rxjs/src/add/operator/startWith.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/startWith'; diff --git a/node_modules/rxjs/src/add/operator/subscribeOn.ts b/node_modules/rxjs/src/add/operator/subscribeOn.ts new file mode 100644 index 00000000..a1b5d6d4 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/subscribeOn.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/subscribeOn'; diff --git a/node_modules/rxjs/src/add/operator/switch.ts b/node_modules/rxjs/src/add/operator/switch.ts new file mode 100644 index 00000000..d2d3f48e --- /dev/null +++ b/node_modules/rxjs/src/add/operator/switch.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/switch'; diff --git a/node_modules/rxjs/src/add/operator/switchMap.ts b/node_modules/rxjs/src/add/operator/switchMap.ts new file mode 100644 index 00000000..b1dfdfa1 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/switchMap.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/switchMap'; diff --git a/node_modules/rxjs/src/add/operator/switchMapTo.ts b/node_modules/rxjs/src/add/operator/switchMapTo.ts new file mode 100644 index 00000000..320b8443 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/switchMapTo.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/switchMapTo'; diff --git a/node_modules/rxjs/src/add/operator/take.ts b/node_modules/rxjs/src/add/operator/take.ts new file mode 100644 index 00000000..08c3bcb2 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/take.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/take'; diff --git a/node_modules/rxjs/src/add/operator/takeLast.ts b/node_modules/rxjs/src/add/operator/takeLast.ts new file mode 100644 index 00000000..13d0816c --- /dev/null +++ b/node_modules/rxjs/src/add/operator/takeLast.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/takeLast'; diff --git a/node_modules/rxjs/src/add/operator/takeUntil.ts b/node_modules/rxjs/src/add/operator/takeUntil.ts new file mode 100644 index 00000000..78c8e553 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/takeUntil.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/takeUntil'; diff --git a/node_modules/rxjs/src/add/operator/takeWhile.ts b/node_modules/rxjs/src/add/operator/takeWhile.ts new file mode 100644 index 00000000..06ff1740 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/takeWhile.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/takeWhile'; diff --git a/node_modules/rxjs/src/add/operator/throttle.ts b/node_modules/rxjs/src/add/operator/throttle.ts new file mode 100644 index 00000000..825457b9 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/throttle.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/throttle'; diff --git a/node_modules/rxjs/src/add/operator/throttleTime.ts b/node_modules/rxjs/src/add/operator/throttleTime.ts new file mode 100644 index 00000000..c683297a --- /dev/null +++ b/node_modules/rxjs/src/add/operator/throttleTime.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/throttleTime'; diff --git a/node_modules/rxjs/src/add/operator/timeInterval.ts b/node_modules/rxjs/src/add/operator/timeInterval.ts new file mode 100644 index 00000000..198a616a --- /dev/null +++ b/node_modules/rxjs/src/add/operator/timeInterval.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timeInterval'; diff --git a/node_modules/rxjs/src/add/operator/timeout.ts b/node_modules/rxjs/src/add/operator/timeout.ts new file mode 100644 index 00000000..2a69ffdc --- /dev/null +++ b/node_modules/rxjs/src/add/operator/timeout.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timeout'; diff --git a/node_modules/rxjs/src/add/operator/timeoutWith.ts b/node_modules/rxjs/src/add/operator/timeoutWith.ts new file mode 100644 index 00000000..cd4ec44d --- /dev/null +++ b/node_modules/rxjs/src/add/operator/timeoutWith.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timeoutWith'; diff --git a/node_modules/rxjs/src/add/operator/timestamp.ts b/node_modules/rxjs/src/add/operator/timestamp.ts new file mode 100644 index 00000000..16402c81 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/timestamp.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/timestamp'; diff --git a/node_modules/rxjs/src/add/operator/toArray.ts b/node_modules/rxjs/src/add/operator/toArray.ts new file mode 100644 index 00000000..a0f1a4fc --- /dev/null +++ b/node_modules/rxjs/src/add/operator/toArray.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/toArray'; diff --git a/node_modules/rxjs/src/add/operator/toPromise.ts b/node_modules/rxjs/src/add/operator/toPromise.ts new file mode 100644 index 00000000..cc7b16e2 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/toPromise.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/toPromise'; diff --git a/node_modules/rxjs/src/add/operator/window.ts b/node_modules/rxjs/src/add/operator/window.ts new file mode 100644 index 00000000..450c41f2 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/window.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/window'; diff --git a/node_modules/rxjs/src/add/operator/windowCount.ts b/node_modules/rxjs/src/add/operator/windowCount.ts new file mode 100644 index 00000000..da7eccfe --- /dev/null +++ b/node_modules/rxjs/src/add/operator/windowCount.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowCount'; diff --git a/node_modules/rxjs/src/add/operator/windowTime.ts b/node_modules/rxjs/src/add/operator/windowTime.ts new file mode 100644 index 00000000..1d82ec67 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/windowTime.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowTime'; diff --git a/node_modules/rxjs/src/add/operator/windowToggle.ts b/node_modules/rxjs/src/add/operator/windowToggle.ts new file mode 100644 index 00000000..9ed25dfb --- /dev/null +++ b/node_modules/rxjs/src/add/operator/windowToggle.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowToggle'; diff --git a/node_modules/rxjs/src/add/operator/windowWhen.ts b/node_modules/rxjs/src/add/operator/windowWhen.ts new file mode 100644 index 00000000..f5d85640 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/windowWhen.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/windowWhen'; diff --git a/node_modules/rxjs/src/add/operator/withLatestFrom.ts b/node_modules/rxjs/src/add/operator/withLatestFrom.ts new file mode 100644 index 00000000..9f715749 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/withLatestFrom.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/withLatestFrom'; diff --git a/node_modules/rxjs/src/add/operator/zip.ts b/node_modules/rxjs/src/add/operator/zip.ts new file mode 100644 index 00000000..414202af --- /dev/null +++ b/node_modules/rxjs/src/add/operator/zip.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/zip'; diff --git a/node_modules/rxjs/src/add/operator/zipAll.ts b/node_modules/rxjs/src/add/operator/zipAll.ts new file mode 100644 index 00000000..cf8877f0 --- /dev/null +++ b/node_modules/rxjs/src/add/operator/zipAll.ts @@ -0,0 +1 @@ +import 'rxjs-compat/add/operator/zipAll'; diff --git a/node_modules/rxjs/src/ajax/index.ts b/node_modules/rxjs/src/ajax/index.ts new file mode 100644 index 00000000..73cb0cc8 --- /dev/null +++ b/node_modules/rxjs/src/ajax/index.ts @@ -0,0 +1,2 @@ +export { ajax } from '../internal/observable/dom/ajax'; +export { AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; diff --git a/node_modules/rxjs/src/ajax/package.json b/node_modules/rxjs/src/ajax/package.json new file mode 100644 index 00000000..898cd05d --- /dev/null +++ b/node_modules/rxjs/src/ajax/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/ajax", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/ajax/index.js", + "es2015": "../_esm2015/ajax/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/src/fetch/index.ts b/node_modules/rxjs/src/fetch/index.ts new file mode 100644 index 00000000..e6ff01da --- /dev/null +++ b/node_modules/rxjs/src/fetch/index.ts @@ -0,0 +1 @@ +export { fromFetch } from '../internal/observable/dom/fetch'; diff --git a/node_modules/rxjs/src/fetch/package.json b/node_modules/rxjs/src/fetch/package.json new file mode 100644 index 00000000..dff55196 --- /dev/null +++ b/node_modules/rxjs/src/fetch/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/fetch", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/fetch/index.js", + "es2015": "../_esm2015/fetch/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/src/index.ts b/node_modules/rxjs/src/index.ts new file mode 100644 index 00000000..9e8c94d7 --- /dev/null +++ b/node_modules/rxjs/src/index.ts @@ -0,0 +1,78 @@ +/* Observable */ +export { Observable } from './internal/Observable'; +export { ConnectableObservable } from './internal/observable/ConnectableObservable'; +export { GroupedObservable } from './internal/operators/groupBy'; +export { Operator } from './internal/Operator'; +export { observable } from './internal/symbol/observable'; + +/* Subjects */ +export { Subject } from './internal/Subject'; +export { BehaviorSubject } from './internal/BehaviorSubject'; +export { ReplaySubject } from './internal/ReplaySubject'; +export { AsyncSubject } from './internal/AsyncSubject'; + +/* Schedulers */ +export { asap, asapScheduler } from './internal/scheduler/asap'; +export { async, asyncScheduler } from './internal/scheduler/async'; +export { queue, queueScheduler } from './internal/scheduler/queue'; +export { animationFrame, animationFrameScheduler } from './internal/scheduler/animationFrame'; +export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler'; +export { Scheduler } from './internal/Scheduler'; + +/* Subscription */ +export { Subscription } from './internal/Subscription'; +export { Subscriber } from './internal/Subscriber'; + +/* Notification */ +export { Notification, NotificationKind } from './internal/Notification'; + +/* Utils */ +export { pipe } from './internal/util/pipe'; +export { noop } from './internal/util/noop'; +export { identity } from './internal/util/identity'; +export { isObservable } from './internal/util/isObservable'; + +/* Error types */ +export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from './internal/util/EmptyError'; +export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError'; +export { UnsubscriptionError } from './internal/util/UnsubscriptionError'; +export { TimeoutError } from './internal/util/TimeoutError'; + +/* Static observable creation exports */ +export { bindCallback } from './internal/observable/bindCallback'; +export { bindNodeCallback } from './internal/observable/bindNodeCallback'; +export { combineLatest } from './internal/observable/combineLatest'; +export { concat } from './internal/observable/concat'; +export { defer } from './internal/observable/defer'; +export { empty } from './internal/observable/empty'; +export { forkJoin } from './internal/observable/forkJoin'; +export { from } from './internal/observable/from'; +export { fromEvent } from './internal/observable/fromEvent'; +export { fromEventPattern } from './internal/observable/fromEventPattern'; +export { generate } from './internal/observable/generate'; +export { iif } from './internal/observable/iif'; +export { interval } from './internal/observable/interval'; +export { merge } from './internal/observable/merge'; +export { never } from './internal/observable/never'; +export { of } from './internal/observable/of'; +export { onErrorResumeNext } from './internal/observable/onErrorResumeNext'; +export { pairs } from './internal/observable/pairs'; +export { partition } from './internal/observable/partition'; +export { race } from './internal/observable/race'; +export { range } from './internal/observable/range'; +export { throwError } from './internal/observable/throwError'; +export { timer } from './internal/observable/timer'; +export { using } from './internal/observable/using'; +export { zip } from './internal/observable/zip'; +export { scheduled } from './internal/scheduled/scheduled'; + +/* Constants */ +export { EMPTY } from './internal/observable/empty'; +export { NEVER } from './internal/observable/never'; + +/* Types */ +export * from './internal/types'; + +/* Config */ +export { config } from './internal/config'; diff --git a/node_modules/rxjs/src/interfaces.ts b/node_modules/rxjs/src/interfaces.ts new file mode 100644 index 00000000..5d5821d2 --- /dev/null +++ b/node_modules/rxjs/src/interfaces.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/interfaces'; diff --git a/node_modules/rxjs/src/internal-compatibility/index.ts b/node_modules/rxjs/src/internal-compatibility/index.ts new file mode 100644 index 00000000..c7b00582 --- /dev/null +++ b/node_modules/rxjs/src/internal-compatibility/index.ts @@ -0,0 +1,64 @@ + +export { config } from '../internal/config'; +export { InnerSubscriber } from '../internal/InnerSubscriber'; +export { OuterSubscriber } from '../internal/OuterSubscriber'; +export { Scheduler } from '../internal/Scheduler'; +export { AnonymousSubject } from '../internal/Subject'; +export { SubjectSubscription } from '../internal/SubjectSubscription'; +export { Subscriber } from '../internal/Subscriber'; + +export { fromPromise } from '../internal/observable/fromPromise'; +export { fromIterable } from '../internal/observable/fromIterable'; +export { ajax } from '../internal/observable/dom/ajax'; +export { webSocket } from '../internal/observable/dom/webSocket'; +export { AjaxRequest, AjaxCreationMethod, ajaxGet, ajaxPost, ajaxDelete, ajaxPut, ajaxPatch, ajaxGetJSON, + AjaxObservable, AjaxSubscriber, AjaxResponse, AjaxError, AjaxTimeoutError } from '../internal/observable/dom/AjaxObservable'; +export { WebSocketSubjectConfig, WebSocketSubject } from '../internal/observable/dom/WebSocketSubject'; +export { CombineLatestOperator } from '../internal/observable/combineLatest'; +export { EventTargetLike } from '../internal/observable/fromEvent'; +export { ConditionFunc, IterateFunc, ResultFunc, GenerateBaseOptions, GenerateOptions } from '../internal/observable/generate'; +export { dispatch } from '../internal/observable/range'; +export { SubscribeOnObservable } from '../internal/observable/SubscribeOnObservable'; + +export { Timestamp } from '../internal/operators/timestamp'; +export { TimeInterval } from '../internal/operators/timeInterval'; +export { GroupedObservable } from '../internal/operators/groupBy'; +export { ShareReplayConfig } from '../internal/operators/shareReplay'; +export { ThrottleConfig, defaultThrottleConfig } from '../internal/operators/throttle'; + +export { rxSubscriber } from '../internal/symbol/rxSubscriber'; +export { iterator } from '../internal/symbol/iterator'; +export { observable } from '../internal/symbol/observable'; + +export { ArgumentOutOfRangeError } from '../internal/util/ArgumentOutOfRangeError'; +export { EmptyError } from '../internal/util/EmptyError'; +export { Immediate } from '../internal/util/Immediate'; +export { ObjectUnsubscribedError } from '../internal/util/ObjectUnsubscribedError'; +export { TimeoutError } from '../internal/util/TimeoutError'; +export { UnsubscriptionError } from '../internal/util/UnsubscriptionError'; +export { applyMixins } from '../internal/util/applyMixins'; +export { errorObject } from '../internal/util/errorObject'; +export { hostReportError } from '../internal/util/hostReportError'; +export { identity } from '../internal/util/identity'; +export { isArray } from '../internal/util/isArray'; +export { isArrayLike } from '../internal/util/isArrayLike'; +export { isDate } from '../internal/util/isDate'; +export { isFunction } from '../internal/util/isFunction'; +export { isIterable } from '../internal/util/isIterable'; +export { isNumeric } from '../internal/util/isNumeric'; +export { isObject } from '../internal/util/isObject'; +export { isInteropObservable as isObservable } from '../internal/util/isInteropObservable'; +export { isPromise } from '../internal/util/isPromise'; +export { isScheduler } from '../internal/util/isScheduler'; +export { noop } from '../internal/util/noop'; +export { not } from '../internal/util/not'; +export { pipe } from '../internal/util/pipe'; +export { root } from '../internal/util/root'; +export { subscribeTo } from '../internal/util/subscribeTo'; +export { subscribeToArray } from '../internal/util/subscribeToArray'; +export { subscribeToIterable } from '../internal/util/subscribeToIterable'; +export { subscribeToObservable } from '../internal/util/subscribeToObservable'; +export { subscribeToPromise } from '../internal/util/subscribeToPromise'; +export { subscribeToResult } from '../internal/util/subscribeToResult'; +export { toSubscriber } from '../internal/util/toSubscriber'; +export { tryCatch } from '../internal/util/tryCatch'; diff --git a/node_modules/rxjs/src/internal-compatibility/package.json b/node_modules/rxjs/src/internal-compatibility/package.json new file mode 100644 index 00000000..5ff05a69 --- /dev/null +++ b/node_modules/rxjs/src/internal-compatibility/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/internal-compatibility", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/internal-compatibility/index.js", + "es2015": "../_esm2015/internal-compatibility/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/src/internal/AsyncSubject.ts b/node_modules/rxjs/src/internal/AsyncSubject.ts new file mode 100644 index 00000000..218e8d21 --- /dev/null +++ b/node_modules/rxjs/src/internal/AsyncSubject.ts @@ -0,0 +1,49 @@ +import { Subject } from './Subject'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; + +/** + * A variant of Subject that only emits a value when it completes. It will emit + * its latest value to all its observers on completion. + * + * @class AsyncSubject + */ +export class AsyncSubject extends Subject { + private value: T = null; + private hasNext: boolean = false; + private hasCompleted: boolean = false; + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription { + if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } else if (this.hasCompleted && this.hasNext) { + subscriber.next(this.value); + subscriber.complete(); + return Subscription.EMPTY; + } + return super._subscribe(subscriber); + } + + next(value: T): void { + if (!this.hasCompleted) { + this.value = value; + this.hasNext = true; + } + } + + error(error: any): void { + if (!this.hasCompleted) { + super.error(error); + } + } + + complete(): void { + this.hasCompleted = true; + if (this.hasNext) { + super.next(this.value); + } + super.complete(); + } +} diff --git a/node_modules/rxjs/src/internal/BehaviorSubject.ts b/node_modules/rxjs/src/internal/BehaviorSubject.ts new file mode 100644 index 00000000..20de21c6 --- /dev/null +++ b/node_modules/rxjs/src/internal/BehaviorSubject.ts @@ -0,0 +1,45 @@ +import { Subject } from './Subject'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { SubscriptionLike } from './types'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; + +/** + * A variant of Subject that requires an initial value and emits its current + * value whenever it is subscribed to. + * + * @class BehaviorSubject + */ +export class BehaviorSubject extends Subject { + + constructor(private _value: T) { + super(); + } + + get value(): T { + return this.getValue(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription { + const subscription = super._subscribe(subscriber); + if (subscription && !(subscription).closed) { + subscriber.next(this._value); + } + return subscription; + } + + getValue(): T { + if (this.hasError) { + throw this.thrownError; + } else if (this.closed) { + throw new ObjectUnsubscribedError(); + } else { + return this._value; + } + } + + next(value: T): void { + super.next(this._value = value); + } +} diff --git a/node_modules/rxjs/src/internal/InnerSubscriber.ts b/node_modules/rxjs/src/internal/InnerSubscriber.ts new file mode 100644 index 00000000..048e9a37 --- /dev/null +++ b/node_modules/rxjs/src/internal/InnerSubscriber.ts @@ -0,0 +1,29 @@ +import { Subscriber } from './Subscriber'; +import { OuterSubscriber } from './OuterSubscriber'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class InnerSubscriber extends Subscriber { + private index = 0; + + constructor(private parent: OuterSubscriber, public outerValue: T, public outerIndex: number) { + super(); + } + + protected _next(value: R): void { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); + } + + protected _error(error: any): void { + this.parent.notifyError(error, this); + this.unsubscribe(); + } + + protected _complete(): void { + this.parent.notifyComplete(this); + this.unsubscribe(); + } +} diff --git a/node_modules/rxjs/src/internal/Notification.ts b/node_modules/rxjs/src/internal/Notification.ts new file mode 100644 index 00000000..f65f70cd --- /dev/null +++ b/node_modules/rxjs/src/internal/Notification.ts @@ -0,0 +1,148 @@ +import { PartialObserver } from './types'; +import { Observable } from './Observable'; +import { empty } from './observable/empty'; +import { of } from './observable/of'; +import { throwError } from './observable/throwError'; +import { deprecate } from 'util'; + +// TODO: When this enum is removed, replace it with a type alias. See #4556. +/** + * @deprecated NotificationKind is deprecated as const enums are not compatible with isolated modules. Use a string literal instead. + */ +export enum NotificationKind { + NEXT = 'N', + ERROR = 'E', + COMPLETE = 'C', +} + +/** + * Represents a push-based event or value that an {@link Observable} can emit. + * This class is particularly useful for operators that manage notifications, + * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and + * others. Besides wrapping the actual delivered value, it also annotates it + * with metadata of, for instance, what type of push message it is (`next`, + * `error`, or `complete`). + * + * @see {@link materialize} + * @see {@link dematerialize} + * @see {@link observeOn} + * + * @class Notification + */ +export class Notification { + hasValue: boolean; + + constructor(public kind: 'N' | 'E' | 'C', public value?: T, public error?: any) { + this.hasValue = kind === 'N'; + } + + /** + * Delivers to the given `observer` the value wrapped by this Notification. + * @param {Observer} observer + * @return + */ + observe(observer: PartialObserver): any { + switch (this.kind) { + case 'N': + return observer.next && observer.next(this.value); + case 'E': + return observer.error && observer.error(this.error); + case 'C': + return observer.complete && observer.complete(); + } + } + + /** + * Given some {@link Observer} callbacks, deliver the value represented by the + * current Notification to the correctly corresponding callback. + * @param {function(value: T): void} next An Observer `next` callback. + * @param {function(err: any): void} [error] An Observer `error` callback. + * @param {function(): void} [complete] An Observer `complete` callback. + * @return {any} + */ + do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any { + const kind = this.kind; + switch (kind) { + case 'N': + return next && next(this.value); + case 'E': + return error && error(this.error); + case 'C': + return complete && complete(); + } + } + + /** + * Takes an Observer or its individual callback functions, and calls `observe` + * or `do` methods accordingly. + * @param {Observer|function(value: T): void} nextOrObserver An Observer or + * the `next` callback. + * @param {function(err: any): void} [error] An Observer `error` callback. + * @param {function(): void} [complete] An Observer `complete` callback. + * @return {any} + */ + accept(nextOrObserver: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void) { + if (nextOrObserver && typeof (>nextOrObserver).next === 'function') { + return this.observe(>nextOrObserver); + } else { + return this.do(<(value: T) => void>nextOrObserver, error, complete); + } + } + + /** + * Returns a simple Observable that just delivers the notification represented + * by this Notification instance. + * @return {any} + */ + toObservable(): Observable { + const kind = this.kind; + switch (kind) { + case 'N': + return of(this.value); + case 'E': + return throwError(this.error); + case 'C': + return empty(); + } + throw new Error('unexpected notification kind value'); + } + + private static completeNotification: Notification = new Notification('C'); + private static undefinedValueNotification: Notification = new Notification('N', undefined); + + /** + * A shortcut to create a Notification instance of the type `next` from a + * given value. + * @param {T} value The `next` value. + * @return {Notification} The "next" Notification representing the + * argument. + * @nocollapse + */ + static createNext(value: T): Notification { + if (typeof value !== 'undefined') { + return new Notification('N', value); + } + return Notification.undefinedValueNotification; + } + + /** + * A shortcut to create a Notification instance of the type `error` from a + * given error. + * @param {any} [err] The `error` error. + * @return {Notification} The "error" Notification representing the + * argument. + * @nocollapse + */ + static createError(err?: any): Notification { + return new Notification('E', undefined, err); + } + + /** + * A shortcut to create a Notification instance of the type `complete`. + * @return {Notification} The valueless "complete" Notification. + * @nocollapse + */ + static createComplete(): Notification { + return Notification.completeNotification; + } +} diff --git a/node_modules/rxjs/src/internal/Observable.ts b/node_modules/rxjs/src/internal/Observable.ts new file mode 100644 index 00000000..c6774280 --- /dev/null +++ b/node_modules/rxjs/src/internal/Observable.ts @@ -0,0 +1,382 @@ +import { Operator } from './Operator'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types'; +import { canReportError } from './util/canReportError'; +import { toSubscriber } from './util/toSubscriber'; +import { iif } from './observable/iif'; +import { throwError } from './observable/throwError'; +import { observable as Symbol_observable } from './symbol/observable'; +import { pipeFromArray } from './util/pipe'; +import { config } from './config'; + +/** + * A representation of any set of values over any amount of time. This is the most basic building block + * of RxJS. + * + * @class Observable + */ +export class Observable implements Subscribable { + + /** Internal implementation detail, do not use directly. */ + public _isScalar: boolean = false; + + /** @deprecated This is an internal implementation detail, do not use. */ + source: Observable; + + /** @deprecated This is an internal implementation detail, do not use. */ + operator: Operator; + + /** + * @constructor + * @param {Function} subscribe the function that is called when the Observable is + * initially subscribed to. This function is given a Subscriber, to which new values + * can be `next`ed, or an `error` method can be called to raise an error, or + * `complete` can be called to notify of a successful completion. + */ + constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) { + if (subscribe) { + this._subscribe = subscribe; + } + } + + // HACK: Since TypeScript inherits static properties too, we have to + // fight against TypeScript here so Subject can have a different static create signature + /** + * Creates a new cold Observable by calling the Observable constructor + * @static true + * @owner Observable + * @method create + * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor + * @return {Observable} a new cold observable + * @nocollapse + * @deprecated use new Observable() instead + */ + static create: Function = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => { + return new Observable(subscribe); + } + + /** + * Creates a new Observable, with this Observable as the source, and the passed + * operator defined as the new observable's operator. + * @method lift + * @param {Operator} operator the operator defining the operation to take on the observable + * @return {Observable} a new observable with the Operator applied + */ + lift(operator: Operator): Observable { + const observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; + } + + subscribe(observer?: PartialObserver): Subscription; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription; + /** @deprecated Use an observer instead of an error callback */ + subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription; + subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription; + /** + * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit. + * + * Use it when you have all these Observables, but still nothing is happening. + * + * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It + * might be for example a function that you passed to Observable's constructor, but most of the time it is + * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means + * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often + * the thought. + * + * Apart from starting the execution of an Observable, this method allows you to listen for values + * that an Observable emits, as well as for when it completes or errors. You can achieve this in two + * of the following ways. + * + * The first way is creating an object that implements {@link Observer} interface. It should have methods + * defined by that interface, but note that it should be just a regular JavaScript object, which you can create + * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do + * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also + * that your object does not have to implement all methods. If you find yourself creating a method that doesn't + * do anything, you can simply omit it. Note however, if the `error` method is not provided, all errors will + * be left uncaught. + * + * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods. + * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent + * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of Observer, + * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`, + * since `subscribe` recognizes these functions by where they were placed in function call. When it comes + * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown. + * + * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object. + * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean + * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback + * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable. + * + * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously. + * It is an Observable itself that decides when these functions will be called. For example {@link of} + * by default emits all its values synchronously. Always check documentation for how given Observable + * will behave when subscribed and if its default behavior can be modified with a `scheduler`. + * + * ## Example + * ### Subscribe with an Observer + * ```ts + * import { of } from 'rxjs'; + * + * const sumObserver = { + * sum: 0, + * next(value) { + * console.log('Adding: ' + value); + * this.sum = this.sum + value; + * }, + * error() { + * // We actually could just remove this method, + * // since we do not really care about errors right now. + * }, + * complete() { + * console.log('Sum equals: ' + this.sum); + * } + * }; + * + * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes. + * .subscribe(sumObserver); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * ``` + * + * ### Subscribe with functions + * ```ts + * import { of } from 'rxjs' + * + * let sum = 0; + * + * of(1, 2, 3).subscribe( + * value => { + * console.log('Adding: ' + value); + * sum = sum + value; + * }, + * undefined, + * () => console.log('Sum equals: ' + sum) + * ); + * + * // Logs: + * // "Adding: 1" + * // "Adding: 2" + * // "Adding: 3" + * // "Sum equals: 6" + * ``` + * + * ### Cancel a subscription + * ```ts + * import { interval } from 'rxjs'; + * + * const subscription = interval(1000).subscribe( + * num => console.log(num), + * undefined, + * () => { + * // Will not be called, even when cancelling subscription. + * console.log('completed!'); + * } + * ); + * + * setTimeout(() => { + * subscription.unsubscribe(); + * console.log('unsubscribed!'); + * }, 2500); + * + * // Logs: + * // 0 after 1s + * // 1 after 2s + * // "unsubscribed!" after 2.5s + * ``` + * + * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called, + * or the first of three possible handlers, which is the handler for each value emitted from the subscribed + * Observable. + * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided, + * the error will be thrown as unhandled. + * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion. + * @return {ISubscription} a subscription reference to the registered handlers + * @method subscribe + */ + subscribe(observerOrNext?: PartialObserver | ((value: T) => void), + error?: (error: any) => void, + complete?: () => void): Subscription { + + const { operator } = this; + const sink = toSubscriber(observerOrNext, error, complete); + + if (operator) { + sink.add(operator.call(sink, this.source)); + } else { + sink.add( + this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink) + ); + } + + if (config.useDeprecatedSynchronousErrorHandling) { + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } + } + } + + return sink; + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _trySubscribe(sink: Subscriber): TeardownLogic { + try { + return this._subscribe(sink); + } catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; + } + if (canReportError(sink)) { + sink.error(err); + } else { + console.warn(err); + } + } + } + + /** + * @method forEach + * @param {Function} next a handler for each value emitted by the observable + * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise + * @return {Promise} a promise that either resolves on observable completion or + * rejects with the handled error + */ + forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise { + promiseCtor = getPromiseCtor(promiseCtor); + + return new promiseCtor((resolve, reject) => { + // Must be declared in a separate statement to avoid a ReferenceError when + // accessing subscription below in the closure due to Temporal Dead Zone. + let subscription: Subscription; + subscription = this.subscribe((value) => { + try { + next(value); + } catch (err) { + reject(err); + if (subscription) { + subscription.unsubscribe(); + } + } + }, reject, resolve); + }) as Promise; + } + + /** @internal This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): TeardownLogic { + const { source } = this; + return source && source.subscribe(subscriber); + } + + // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in + // favor of iif and throwError functions. + /** + * @nocollapse + * @deprecated In favor of iif creation function: import { iif } from 'rxjs'; + */ + static if: typeof iif; + /** + * @nocollapse + * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs'; + */ + static throw: typeof throwError; + + /** + * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable + * @method Symbol.observable + * @return {Observable} this instance of the observable + */ + [Symbol_observable]() { + return this; + } + + /* tslint:disable:max-line-length */ + pipe(): Observable; + pipe
(op1: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable; + pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[]): Observable<{}>; + /* tslint:enable:max-line-length */ + + /** + * Used to stitch together functional operators into a chain. + * @method pipe + * @return {Observable} the Observable result of all of the operators having + * been called in the order they were passed in. + * + * ### Example + * ```ts + * import { interval } from 'rxjs'; + * import { map, filter, scan } from 'rxjs/operators'; + * + * interval(1000) + * .pipe( + * filter(x => x % 2 === 0), + * map(x => x + x), + * scan((acc, x) => acc + x) + * ) + * .subscribe(x => console.log(x)) + * ``` + */ + pipe(...operations: OperatorFunction[]): Observable { + if (operations.length === 0) { + return this as any; + } + + return pipeFromArray(operations)(this); + } + + /* tslint:disable:max-line-length */ + toPromise(this: Observable): Promise; + toPromise(this: Observable, PromiseCtor: typeof Promise): Promise; + toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise; + /* tslint:enable:max-line-length */ + + toPromise(promiseCtor?: PromiseConstructorLike): Promise { + promiseCtor = getPromiseCtor(promiseCtor); + + return new promiseCtor((resolve, reject) => { + let value: any; + this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value)); + }) as Promise; + } +} + +/** + * Decides between a passed promise constructor from consuming code, + * A default configured promise constructor, and the native promise + * constructor and returns it. If nothing can be found, it will throw + * an error. + * @param promiseCtor The optional promise constructor to passed by consuming code + */ +function getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) { + if (!promiseCtor) { + promiseCtor = config.Promise || Promise; + } + + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + + return promiseCtor; +} diff --git a/node_modules/rxjs/src/internal/Observer.ts b/node_modules/rxjs/src/internal/Observer.ts new file mode 100644 index 00000000..3ae9243c --- /dev/null +++ b/node_modules/rxjs/src/internal/Observer.ts @@ -0,0 +1,16 @@ +import { Observer } from './types'; +import { config } from './config'; +import { hostReportError } from './util/hostReportError'; + +export const empty: Observer = { + closed: true, + next(value: any): void { /* noop */}, + error(err: any): void { + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } else { + hostReportError(err); + } + }, + complete(): void { /*noop*/ } +}; diff --git a/node_modules/rxjs/src/internal/Operator.ts b/node_modules/rxjs/src/internal/Operator.ts new file mode 100644 index 00000000..93b65e64 --- /dev/null +++ b/node_modules/rxjs/src/internal/Operator.ts @@ -0,0 +1,6 @@ +import { Subscriber } from './Subscriber'; +import { TeardownLogic } from './types'; + +export interface Operator { + call(subscriber: Subscriber, source: any): TeardownLogic; +} diff --git a/node_modules/rxjs/src/internal/OuterSubscriber.ts b/node_modules/rxjs/src/internal/OuterSubscriber.ts new file mode 100644 index 00000000..b0513217 --- /dev/null +++ b/node_modules/rxjs/src/internal/OuterSubscriber.ts @@ -0,0 +1,23 @@ +import { Subscriber } from './Subscriber'; +import { InnerSubscriber } from './InnerSubscriber'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class OuterSubscriber extends Subscriber { + notifyNext(outerValue: T, innerValue: R, + outerIndex: number, innerIndex: number, + innerSub: InnerSubscriber): void { + this.destination.next(innerValue); + } + + notifyError(error: any, innerSub: InnerSubscriber): void { + this.destination.error(error); + } + + notifyComplete(innerSub: InnerSubscriber): void { + this.destination.complete(); + } +} diff --git a/node_modules/rxjs/src/internal/ReplaySubject.ts b/node_modules/rxjs/src/internal/ReplaySubject.ts new file mode 100644 index 00000000..7a91bdde --- /dev/null +++ b/node_modules/rxjs/src/internal/ReplaySubject.ts @@ -0,0 +1,138 @@ +import { Subject } from './Subject'; +import { SchedulerLike } from './types'; +import { queue } from './scheduler/queue'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { ObserveOnSubscriber } from './operators/observeOn'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +import { SubjectSubscription } from './SubjectSubscription'; +/** + * A variant of Subject that "replays" or emits old values to new subscribers. + * It buffers a set number of values and will emit those values immediately to + * any new subscribers in addition to emitting new values to existing subscribers. + * + * @class ReplaySubject + */ +export class ReplaySubject extends Subject { + private _events: (ReplayEvent | T)[] = []; + private _bufferSize: number; + private _windowTime: number; + private _infiniteTimeWindow: boolean = false; + + constructor(bufferSize: number = Number.POSITIVE_INFINITY, + windowTime: number = Number.POSITIVE_INFINITY, + private scheduler?: SchedulerLike) { + super(); + this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + this._windowTime = windowTime < 1 ? 1 : windowTime; + + if (windowTime === Number.POSITIVE_INFINITY) { + this._infiniteTimeWindow = true; + this.next = this.nextInfiniteTimeWindow; + } else { + this.next = this.nextTimeWindow; + } + } + + private nextInfiniteTimeWindow(value: T): void { + if (!this.isStopped) { + const _events = this._events; + _events.push(value); + // Since this method is invoked in every next() call than the buffer + // can overgrow the max size only by one item + if (_events.length > this._bufferSize) { + _events.shift(); + } + } + super.next(value); + } + + private nextTimeWindow(value: T): void { + if (!this.isStopped) { + this._events.push(new ReplayEvent(this._getNow(), value)); + this._trimBufferThenGetEvents(); + } + super.next(value); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription { + // When `_infiniteTimeWindow === true` then the buffer is already trimmed + const _infiniteTimeWindow = this._infiniteTimeWindow; + const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); + const scheduler = this.scheduler; + const len = _events.length; + let subscription: Subscription; + + if (this.closed) { + throw new ObjectUnsubscribedError(); + } else if (this.isStopped || this.hasError) { + subscription = Subscription.EMPTY; + } else { + this.observers.push(subscriber); + subscription = new SubjectSubscription(this, subscriber); + } + + if (scheduler) { + subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler)); + } + + if (_infiniteTimeWindow) { + for (let i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i]); + } + } else { + for (let i = 0; i < len && !subscriber.closed; i++) { + subscriber.next((>_events[i]).value); + } + } + + if (this.hasError) { + subscriber.error(this.thrownError); + } else if (this.isStopped) { + subscriber.complete(); + } + + return subscription; + } + + _getNow(): number { + return (this.scheduler || queue).now(); + } + + private _trimBufferThenGetEvents(): ReplayEvent[] { + const now = this._getNow(); + const _bufferSize = this._bufferSize; + const _windowTime = this._windowTime; + const _events = []>this._events; + + const eventsCount = _events.length; + let spliceCount = 0; + + // Trim events that fall out of the time window. + // Start at the front of the list. Break early once + // we encounter an event that falls within the window. + while (spliceCount < eventsCount) { + if ((now - _events[spliceCount].time) < _windowTime) { + break; + } + spliceCount++; + } + + if (eventsCount > _bufferSize) { + spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); + } + + if (spliceCount > 0) { + _events.splice(0, spliceCount); + } + + return _events; + } + +} + +class ReplayEvent { + constructor(public time: number, public value: T) { + } +} diff --git a/node_modules/rxjs/src/internal/Rx.ts b/node_modules/rxjs/src/internal/Rx.ts new file mode 100644 index 00000000..ee6ef897 --- /dev/null +++ b/node_modules/rxjs/src/internal/Rx.ts @@ -0,0 +1,228 @@ +/* tslint:disable:no-unused-variable */ +// Subject imported before Observable to bypass circular dependency issue since +// Subject extends Observable and Observable references Subject in it's +// definition +export {Subject, AnonymousSubject} from './Subject'; +/* tslint:enable:no-unused-variable */ +export {Observable} from './Observable'; + +export { config } from './config'; + +// statics +/* tslint:disable:no-use-before-declare */ +import 'rxjs-compat/add/observable/bindCallback'; +import 'rxjs-compat/add/observable/bindNodeCallback'; +import 'rxjs-compat/add/observable/combineLatest'; +import 'rxjs-compat/add/observable/concat'; +import 'rxjs-compat/add/observable/defer'; +import 'rxjs-compat/add/observable/empty'; +import 'rxjs-compat/add/observable/forkJoin'; +import 'rxjs-compat/add/observable/from'; +import 'rxjs-compat/add/observable/fromEvent'; +import 'rxjs-compat/add/observable/fromEventPattern'; +import 'rxjs-compat/add/observable/fromPromise'; +import 'rxjs-compat/add/observable/generate'; +import 'rxjs-compat/add/observable/if'; +import 'rxjs-compat/add/observable/interval'; +import 'rxjs-compat/add/observable/merge'; +import 'rxjs-compat/add/observable/race'; +import 'rxjs-compat/add/observable/never'; +import 'rxjs-compat/add/observable/of'; +import 'rxjs-compat/add/observable/onErrorResumeNext'; +import 'rxjs-compat/add/observable/pairs'; +import 'rxjs-compat/add/observable/range'; +import 'rxjs-compat/add/observable/using'; +import 'rxjs-compat/add/observable/throw'; +import 'rxjs-compat/add/observable/timer'; +import 'rxjs-compat/add/observable/zip'; + +//dom +import 'rxjs-compat/add/observable/dom/ajax'; +import 'rxjs-compat/add/observable/dom/webSocket'; + +//internal/operators +import 'rxjs-compat/add/operator/buffer'; +import 'rxjs-compat/add/operator/bufferCount'; +import 'rxjs-compat/add/operator/bufferTime'; +import 'rxjs-compat/add/operator/bufferToggle'; +import 'rxjs-compat/add/operator/bufferWhen'; +import 'rxjs-compat/add/operator/catch'; +import 'rxjs-compat/add/operator/combineAll'; +import 'rxjs-compat/add/operator/combineLatest'; +import 'rxjs-compat/add/operator/concat'; +import 'rxjs-compat/add/operator/concatAll'; +import 'rxjs-compat/add/operator/concatMap'; +import 'rxjs-compat/add/operator/concatMapTo'; +import 'rxjs-compat/add/operator/count'; +import 'rxjs-compat/add/operator/dematerialize'; +import 'rxjs-compat/add/operator/debounce'; +import 'rxjs-compat/add/operator/debounceTime'; +import 'rxjs-compat/add/operator/defaultIfEmpty'; +import 'rxjs-compat/add/operator/delay'; +import 'rxjs-compat/add/operator/delayWhen'; +import 'rxjs-compat/add/operator/distinct'; +import 'rxjs-compat/add/operator/distinctUntilChanged'; +import 'rxjs-compat/add/operator/distinctUntilKeyChanged'; +import 'rxjs-compat/add/operator/do'; +import 'rxjs-compat/add/operator/exhaust'; +import 'rxjs-compat/add/operator/exhaustMap'; +import 'rxjs-compat/add/operator/expand'; +import 'rxjs-compat/add/operator/elementAt'; +import 'rxjs-compat/add/operator/filter'; +import 'rxjs-compat/add/operator/finally'; +import 'rxjs-compat/add/operator/find'; +import 'rxjs-compat/add/operator/findIndex'; +import 'rxjs-compat/add/operator/first'; +import 'rxjs-compat/add/operator/groupBy'; +import 'rxjs-compat/add/operator/ignoreElements'; +import 'rxjs-compat/add/operator/isEmpty'; +import 'rxjs-compat/add/operator/audit'; +import 'rxjs-compat/add/operator/auditTime'; +import 'rxjs-compat/add/operator/last'; +import 'rxjs-compat/add/operator/let'; +import 'rxjs-compat/add/operator/every'; +import 'rxjs-compat/add/operator/map'; +import 'rxjs-compat/add/operator/mapTo'; +import 'rxjs-compat/add/operator/materialize'; +import 'rxjs-compat/add/operator/max'; +import 'rxjs-compat/add/operator/merge'; +import 'rxjs-compat/add/operator/mergeAll'; +import 'rxjs-compat/add/operator/mergeMap'; +import 'rxjs-compat/add/operator/mergeMapTo'; +import 'rxjs-compat/add/operator/mergeScan'; +import 'rxjs-compat/add/operator/min'; +import 'rxjs-compat/add/operator/multicast'; +import 'rxjs-compat/add/operator/observeOn'; +import 'rxjs-compat/add/operator/onErrorResumeNext'; +import 'rxjs-compat/add/operator/pairwise'; +import 'rxjs-compat/add/operator/partition'; +import 'rxjs-compat/add/operator/pluck'; +import 'rxjs-compat/add/operator/publish'; +import 'rxjs-compat/add/operator/publishBehavior'; +import 'rxjs-compat/add/operator/publishReplay'; +import 'rxjs-compat/add/operator/publishLast'; +import 'rxjs-compat/add/operator/race'; +import 'rxjs-compat/add/operator/reduce'; +import 'rxjs-compat/add/operator/repeat'; +import 'rxjs-compat/add/operator/repeatWhen'; +import 'rxjs-compat/add/operator/retry'; +import 'rxjs-compat/add/operator/retryWhen'; +import 'rxjs-compat/add/operator/sample'; +import 'rxjs-compat/add/operator/sampleTime'; +import 'rxjs-compat/add/operator/scan'; +import 'rxjs-compat/add/operator/sequenceEqual'; +import 'rxjs-compat/add/operator/share'; +import 'rxjs-compat/add/operator/shareReplay'; +import 'rxjs-compat/add/operator/single'; +import 'rxjs-compat/add/operator/skip'; +import 'rxjs-compat/add/operator/skipLast'; +import 'rxjs-compat/add/operator/skipUntil'; +import 'rxjs-compat/add/operator/skipWhile'; +import 'rxjs-compat/add/operator/startWith'; +import 'rxjs-compat/add/operator/subscribeOn'; +import 'rxjs-compat/add/operator/switch'; +import 'rxjs-compat/add/operator/switchMap'; +import 'rxjs-compat/add/operator/switchMapTo'; +import 'rxjs-compat/add/operator/take'; +import 'rxjs-compat/add/operator/takeLast'; +import 'rxjs-compat/add/operator/takeUntil'; +import 'rxjs-compat/add/operator/takeWhile'; +import 'rxjs-compat/add/operator/throttle'; +import 'rxjs-compat/add/operator/throttleTime'; +import 'rxjs-compat/add/operator/timeInterval'; +import 'rxjs-compat/add/operator/timeout'; +import 'rxjs-compat/add/operator/timeoutWith'; +import 'rxjs-compat/add/operator/timestamp'; +import 'rxjs-compat/add/operator/toArray'; +import 'rxjs-compat/add/operator/toPromise'; +import 'rxjs-compat/add/operator/window'; +import 'rxjs-compat/add/operator/windowCount'; +import 'rxjs-compat/add/operator/windowTime'; +import 'rxjs-compat/add/operator/windowToggle'; +import 'rxjs-compat/add/operator/windowWhen'; +import 'rxjs-compat/add/operator/withLatestFrom'; +import 'rxjs-compat/add/operator/zip'; +import 'rxjs-compat/add/operator/zipAll'; + +/* tslint:disable:no-unused-variable */ +export {Operator} from './Operator'; +export {Observer} from './types'; +export {Subscription} from './Subscription'; +export {Subscriber} from './Subscriber'; +export {AsyncSubject} from './AsyncSubject'; +export {ReplaySubject} from './ReplaySubject'; +export {BehaviorSubject} from './BehaviorSubject'; +export {ConnectableObservable} from './observable/ConnectableObservable'; +export {Notification, NotificationKind} from './Notification'; +export {EmptyError} from './util/EmptyError'; +export {ArgumentOutOfRangeError} from './util/ArgumentOutOfRangeError'; +export {ObjectUnsubscribedError} from './util/ObjectUnsubscribedError'; +export {TimeoutError} from './util/TimeoutError'; +export {UnsubscriptionError} from './util/UnsubscriptionError'; +export {TimeInterval} from './operators/timeInterval'; +export {Timestamp} from './operators/timestamp'; +export {TestScheduler} from './testing/TestScheduler'; +export {VirtualTimeScheduler} from './scheduler/VirtualTimeScheduler'; +export {AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError} from './observable/dom/AjaxObservable'; +export { pipe } from './util/pipe'; + +import { asap } from './scheduler/asap'; +import { async } from './scheduler/async'; +import { queue } from './scheduler/queue'; +import { animationFrame } from './scheduler/animationFrame'; +import { AsapScheduler } from './scheduler/AsapScheduler'; +import { AsyncScheduler } from './scheduler/AsyncScheduler'; +import { QueueScheduler } from './scheduler/QueueScheduler'; +import { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler'; +import { rxSubscriber } from './symbol/rxSubscriber'; +import { iterator } from './symbol/iterator'; +import { observable } from './symbol/observable'; + +import * as _operators from './operators/index'; + +export const operators = _operators; + +/* tslint:enable:no-unused-variable */ + +/** + * @typedef {Object} Rx.Scheduler + * @property {SchedulerLike} asap Schedules on the micro task queue, which is the same + * queue used for promises. Basically after the current job, but before the next job. + * Use this for asynchronous conversions. + * @property {SchedulerLike} queue Schedules on a queue in the current event frame + * (trampoline scheduler). Use this for iteration operations. + * @property {SchedulerLike} animationFrame Schedules work with `requestAnimationFrame`. + * Use this for synchronizing with the platform's painting. + * @property {SchedulerLike} async Schedules work with `setInterval`. Use this for + * time-based operations. + */ +let Scheduler = { + asap, + queue, + animationFrame, + async +}; + +/** + * @typedef {Object} Rx.Symbol + * @property {Symbol|string} rxSubscriber A symbol to use as a property name to + * retrieve an "Rx safe" Observer from an object. "Rx safety" can be defined as + * an object that has all of the traits of an Rx Subscriber, including the + * ability to add and remove subscriptions to the subscription chain and + * guarantees involving event triggering (can't "next" after unsubscription, + * etc). + * @property {Symbol|string} observable A symbol to use as a property name to + * retrieve an Observable as defined by the [ECMAScript "Observable" spec](https://github.com/zenparsing/es-observable). + * @property {Symbol|string} iterator The ES6 symbol to use as a property name + * to retrieve an iterator from an object. + */ +let Symbol = { + rxSubscriber, + observable, + iterator +}; + +export { + Scheduler, + Symbol +}; diff --git a/node_modules/rxjs/src/internal/Scheduler.ts b/node_modules/rxjs/src/internal/Scheduler.ts new file mode 100644 index 00000000..e41e41ba --- /dev/null +++ b/node_modules/rxjs/src/internal/Scheduler.ts @@ -0,0 +1,68 @@ +import { Action } from './scheduler/Action'; +import { Subscription } from './Subscription'; +import { SchedulerLike, SchedulerAction } from './types'; + +/** + * An execution context and a data structure to order tasks and schedule their + * execution. Provides a notion of (potentially virtual) time, through the + * `now()` getter method. + * + * Each unit of work in a Scheduler is called an `Action`. + * + * ```ts + * class Scheduler { + * now(): number; + * schedule(work, delay?, state?): Subscription; + * } + * ``` + * + * @class Scheduler + * @deprecated Scheduler is an internal implementation detail of RxJS, and + * should not be used directly. Rather, create your own class and implement + * {@link SchedulerLike} + */ +export class Scheduler implements SchedulerLike { + + /** + * Note: the extra arrow function wrapper is to make testing by overriding + * Date.now easier. + * @nocollapse + */ + public static now: () => number = () => Date.now(); + + constructor(private SchedulerAction: typeof Action, + now: () => number = Scheduler.now) { + this.now = now; + } + + /** + * A getter method that returns a number representing the current time + * (at the time this function was called) according to the scheduler's own + * internal clock. + * @return {number} A number that represents the current time. May or may not + * have a relation to wall-clock time. May or may not refer to a time unit + * (e.g. milliseconds). + */ + public now: () => number; + + /** + * Schedules a function, `work`, for execution. May happen at some point in + * the future, according to the `delay` parameter, if specified. May be passed + * some context object, `state`, which will be passed to the `work` function. + * + * The given arguments will be processed an stored as an Action object in a + * queue of actions. + * + * @param {function(state: ?T): ?Subscription} work A function representing a + * task, or some unit of work to be executed by the Scheduler. + * @param {number} [delay] Time to wait before executing the work, where the + * time unit is implicit and defined by the Scheduler itself. + * @param {T} [state] Some contextual data that the `work` function uses when + * called by the Scheduler. + * @return {Subscription} A subscription in order to be able to unsubscribe + * the scheduled work. + */ + public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription { + return new this.SchedulerAction(this, work).schedule(state, delay); + } +} diff --git a/node_modules/rxjs/src/internal/Subject.ts b/node_modules/rxjs/src/internal/Subject.ts new file mode 100644 index 00000000..d5b47343 --- /dev/null +++ b/node_modules/rxjs/src/internal/Subject.ts @@ -0,0 +1,188 @@ +import { Operator } from './Operator'; +import { Observable } from './Observable'; +import { Subscriber } from './Subscriber'; +import { Subscription } from './Subscription'; +import { Observer, SubscriptionLike, TeardownLogic } from './types'; +import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; +import { SubjectSubscription } from './SubjectSubscription'; +import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber'; + +/** + * @class SubjectSubscriber + */ +export class SubjectSubscriber extends Subscriber { + constructor(protected destination: Subject) { + super(destination); + } +} + +/** + * A Subject is a special type of Observable that allows values to be + * multicasted to many Observers. Subjects are like EventEmitters. + * + * Every Subject is an Observable and an Observer. You can subscribe to a + * Subject, and you can call next to feed values as well as error and complete. + * + * @class Subject + */ +export class Subject extends Observable implements SubscriptionLike { + + [rxSubscriberSymbol]() { + return new SubjectSubscriber(this); + } + + observers: Observer[] = []; + + closed = false; + + isStopped = false; + + hasError = false; + + thrownError: any = null; + + constructor() { + super(); + } + + /**@nocollapse + * @deprecated use new Subject() instead + */ + static create: Function = (destination: Observer, source: Observable): AnonymousSubject => { + return new AnonymousSubject(destination, source); + } + + lift(operator: Operator): Observable { + const subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + } + + next(value?: T) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + if (!this.isStopped) { + const { observers } = this; + const len = observers.length; + const copy = observers.slice(); + for (let i = 0; i < len; i++) { + copy[i].next(value); + } + } + } + + error(err: any) { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.hasError = true; + this.thrownError = err; + this.isStopped = true; + const { observers } = this; + const len = observers.length; + const copy = observers.slice(); + for (let i = 0; i < len; i++) { + copy[i].error(err); + } + this.observers.length = 0; + } + + complete() { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } + this.isStopped = true; + const { observers } = this; + const len = observers.length; + const copy = observers.slice(); + for (let i = 0; i < len; i++) { + copy[i].complete(); + } + this.observers.length = 0; + } + + unsubscribe() { + this.isStopped = true; + this.closed = true; + this.observers = null; + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _trySubscribe(subscriber: Subscriber): TeardownLogic { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } else { + return super._trySubscribe(subscriber); + } + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription { + if (this.closed) { + throw new ObjectUnsubscribedError(); + } else if (this.hasError) { + subscriber.error(this.thrownError); + return Subscription.EMPTY; + } else if (this.isStopped) { + subscriber.complete(); + return Subscription.EMPTY; + } else { + this.observers.push(subscriber); + return new SubjectSubscription(this, subscriber); + } + } + + /** + * Creates a new Observable with this Subject as the source. You can do this + * to create customize Observer-side logic of the Subject and conceal it from + * code that uses the Observable. + * @return {Observable} Observable that the Subject casts to + */ + asObservable(): Observable { + const observable = new Observable(); + (observable).source = this; + return observable; + } +} + +/** + * @class AnonymousSubject + */ +export class AnonymousSubject extends Subject { + constructor(protected destination?: Observer, source?: Observable) { + super(); + this.source = source; + } + + next(value: T) { + const { destination } = this; + if (destination && destination.next) { + destination.next(value); + } + } + + error(err: any) { + const { destination } = this; + if (destination && destination.error) { + this.destination.error(err); + } + } + + complete() { + const { destination } = this; + if (destination && destination.complete) { + this.destination.complete(); + } + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription { + const { source } = this; + if (source) { + return this.source.subscribe(subscriber); + } else { + return Subscription.EMPTY; + } + } +} diff --git a/node_modules/rxjs/src/internal/SubjectSubscription.ts b/node_modules/rxjs/src/internal/SubjectSubscription.ts new file mode 100644 index 00000000..99af066d --- /dev/null +++ b/node_modules/rxjs/src/internal/SubjectSubscription.ts @@ -0,0 +1,39 @@ +import { Subject } from './Subject'; +import { Observer } from './types'; +import { Subscription } from './Subscription'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class SubjectSubscription extends Subscription { + closed: boolean = false; + + constructor(public subject: Subject, public subscriber: Observer) { + super(); + } + + unsubscribe() { + if (this.closed) { + return; + } + + this.closed = true; + + const subject = this.subject; + const observers = subject.observers; + + this.subject = null; + + if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { + return; + } + + const subscriberIndex = observers.indexOf(this.subscriber); + + if (subscriberIndex !== -1) { + observers.splice(subscriberIndex, 1); + } + } +} diff --git a/node_modules/rxjs/src/internal/Subscriber.ts b/node_modules/rxjs/src/internal/Subscriber.ts new file mode 100644 index 00000000..4e655841 --- /dev/null +++ b/node_modules/rxjs/src/internal/Subscriber.ts @@ -0,0 +1,302 @@ +import { isFunction } from './util/isFunction'; +import { empty as emptyObserver } from './Observer'; +import { Observer, PartialObserver, TeardownLogic } from './types'; +import { Subscription } from './Subscription'; +import { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber'; +import { config } from './config'; +import { hostReportError } from './util/hostReportError'; + +/** + * Implements the {@link Observer} interface and extends the + * {@link Subscription} class. While the {@link Observer} is the public API for + * consuming the values of an {@link Observable}, all Observers get converted to + * a Subscriber, in order to provide Subscription-like capabilities such as + * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for + * implementing operators, but it is rarely used as a public API. + * + * @class Subscriber + */ +export class Subscriber extends Subscription implements Observer { + + [rxSubscriberSymbol]() { return this; } + + /** + * A static factory for a Subscriber, given a (potentially partial) definition + * of an Observer. + * @param {function(x: ?T): void} [next] The `next` callback of an Observer. + * @param {function(e: ?any): void} [error] The `error` callback of an + * Observer. + * @param {function(): void} [complete] The `complete` callback of an + * Observer. + * @return {Subscriber} A Subscriber wrapping the (partially defined) + * Observer represented by the given arguments. + * @nocollapse + */ + static create(next?: (x?: T) => void, + error?: (e?: any) => void, + complete?: () => void): Subscriber { + const subscriber = new Subscriber(next, error, complete); + subscriber.syncErrorThrowable = false; + return subscriber; + } + + /** @internal */ syncErrorValue: any = null; + /** @internal */ syncErrorThrown: boolean = false; + /** @internal */ syncErrorThrowable: boolean = false; + + protected isStopped: boolean = false; + protected destination: PartialObserver | Subscriber; // this `any` is the escape hatch to erase extra type param (e.g. R) + + /** + * @param {Observer|function(value: T): void} [destinationOrNext] A partially + * defined Observer or a `next` callback function. + * @param {function(e: ?any): void} [error] The `error` callback of an + * Observer. + * @param {function(): void} [complete] The `complete` callback of an + * Observer. + */ + constructor(destinationOrNext?: PartialObserver | ((value: T) => void), + error?: (e?: any) => void, + complete?: () => void) { + super(); + + switch (arguments.length) { + case 0: + this.destination = emptyObserver; + break; + case 1: + if (!destinationOrNext) { + this.destination = emptyObserver; + break; + } + if (typeof destinationOrNext === 'object') { + if (destinationOrNext instanceof Subscriber) { + this.syncErrorThrowable = destinationOrNext.syncErrorThrowable; + this.destination = destinationOrNext; + destinationOrNext.add(this); + } else { + this.syncErrorThrowable = true; + this.destination = new SafeSubscriber(this, > destinationOrNext); + } + break; + } + default: + this.syncErrorThrowable = true; + this.destination = new SafeSubscriber(this, <((value: T) => void)> destinationOrNext, error, complete); + break; + } + } + + /** + * The {@link Observer} callback to receive notifications of type `next` from + * the Observable, with a value. The Observable may call this method 0 or more + * times. + * @param {T} [value] The `next` value. + * @return {void} + */ + next(value?: T): void { + if (!this.isStopped) { + this._next(value); + } + } + + /** + * The {@link Observer} callback to receive notifications of type `error` from + * the Observable, with an attached `Error`. Notifies the Observer that + * the Observable has experienced an error condition. + * @param {any} [err] The `error` exception. + * @return {void} + */ + error(err?: any): void { + if (!this.isStopped) { + this.isStopped = true; + this._error(err); + } + } + + /** + * The {@link Observer} callback to receive a valueless notification of type + * `complete` from the Observable. Notifies the Observer that the Observable + * has finished sending push-based notifications. + * @return {void} + */ + complete(): void { + if (!this.isStopped) { + this.isStopped = true; + this._complete(); + } + } + + unsubscribe(): void { + if (this.closed) { + return; + } + this.isStopped = true; + super.unsubscribe(); + } + + protected _next(value: T): void { + this.destination.next(value); + } + + protected _error(err: any): void { + this.destination.error(err); + this.unsubscribe(); + } + + protected _complete(): void { + this.destination.complete(); + this.unsubscribe(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribeAndRecycle(): Subscriber { + const { _parentOrParents } = this; + this._parentOrParents = null; + this.unsubscribe(); + this.closed = false; + this.isStopped = false; + this._parentOrParents = _parentOrParents; + return this; + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class SafeSubscriber extends Subscriber { + + private _context: any; + + constructor(private _parentSubscriber: Subscriber, + observerOrNext?: PartialObserver | ((value: T) => void), + error?: (e?: any) => void, + complete?: () => void) { + super(); + + let next: ((value: T) => void); + let context: any = this; + + if (isFunction(observerOrNext)) { + next = (<((value: T) => void)> observerOrNext); + } else if (observerOrNext) { + next = (> observerOrNext).next; + error = (> observerOrNext).error; + complete = (> observerOrNext).complete; + if (observerOrNext !== emptyObserver) { + context = Object.create(observerOrNext); + if (isFunction(context.unsubscribe)) { + this.add(<() => void> context.unsubscribe.bind(context)); + } + context.unsubscribe = this.unsubscribe.bind(this); + } + } + + this._context = context; + this._next = next; + this._error = error; + this._complete = complete; + } + + next(value?: T): void { + if (!this.isStopped && this._next) { + const { _parentSubscriber } = this; + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._next, value); + } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) { + this.unsubscribe(); + } + } + } + + error(err?: any): void { + if (!this.isStopped) { + const { _parentSubscriber } = this; + const { useDeprecatedSynchronousErrorHandling } = config; + if (this._error) { + if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(this._error, err); + this.unsubscribe(); + } else { + this.__tryOrSetError(_parentSubscriber, this._error, err); + this.unsubscribe(); + } + } else if (!_parentSubscriber.syncErrorThrowable) { + this.unsubscribe(); + if (useDeprecatedSynchronousErrorHandling) { + throw err; + } + hostReportError(err); + } else { + if (useDeprecatedSynchronousErrorHandling) { + _parentSubscriber.syncErrorValue = err; + _parentSubscriber.syncErrorThrown = true; + } else { + hostReportError(err); + } + this.unsubscribe(); + } + } + } + + complete(): void { + if (!this.isStopped) { + const { _parentSubscriber } = this; + if (this._complete) { + const wrappedComplete = () => this._complete.call(this._context); + + if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) { + this.__tryOrUnsub(wrappedComplete); + this.unsubscribe(); + } else { + this.__tryOrSetError(_parentSubscriber, wrappedComplete); + this.unsubscribe(); + } + } else { + this.unsubscribe(); + } + } + } + + private __tryOrUnsub(fn: Function, value?: any): void { + try { + fn.call(this._context, value); + } catch (err) { + this.unsubscribe(); + if (config.useDeprecatedSynchronousErrorHandling) { + throw err; + } else { + hostReportError(err); + } + } + } + + private __tryOrSetError(parent: Subscriber, fn: Function, value?: any): boolean { + if (!config.useDeprecatedSynchronousErrorHandling) { + throw new Error('bad call'); + } + try { + fn.call(this._context, value); + } catch (err) { + if (config.useDeprecatedSynchronousErrorHandling) { + parent.syncErrorValue = err; + parent.syncErrorThrown = true; + return true; + } else { + hostReportError(err); + return true; + } + } + return false; + } + + /** @internal This is an internal implementation detail, do not use. */ + _unsubscribe(): void { + const { _parentSubscriber } = this; + this._context = null; + this._parentSubscriber = null; + _parentSubscriber.unsubscribe(); + } +} diff --git a/node_modules/rxjs/src/internal/Subscription.ts b/node_modules/rxjs/src/internal/Subscription.ts new file mode 100644 index 00000000..0c97812f --- /dev/null +++ b/node_modules/rxjs/src/internal/Subscription.ts @@ -0,0 +1,224 @@ +import { isArray } from './util/isArray'; +import { isObject } from './util/isObject'; +import { isFunction } from './util/isFunction'; +import { UnsubscriptionError } from './util/UnsubscriptionError'; +import { SubscriptionLike, TeardownLogic } from './types'; + +/** + * Represents a disposable resource, such as the execution of an Observable. A + * Subscription has one important method, `unsubscribe`, that takes no argument + * and just disposes the resource held by the subscription. + * + * Additionally, subscriptions may be grouped together through the `add()` + * method, which will attach a child Subscription to the current Subscription. + * When a Subscription is unsubscribed, all its children (and its grandchildren) + * will be unsubscribed as well. + * + * @class Subscription + */ +export class Subscription implements SubscriptionLike { + /** @nocollapse */ + public static EMPTY: Subscription = (function(empty: any) { + empty.closed = true; + return empty; + }(new Subscription())); + + /** + * A flag to indicate whether this Subscription has already been unsubscribed. + * @type {boolean} + */ + public closed: boolean = false; + + /** @internal */ + protected _parentOrParents: Subscription | Subscription[] = null; + /** @internal */ + private _subscriptions: SubscriptionLike[] = null; + + /** + * @param {function(): void} [unsubscribe] A function describing how to + * perform the disposal of resources when the `unsubscribe` method is called. + */ + constructor(unsubscribe?: () => void) { + if (unsubscribe) { + (this as any)._ctorUnsubscribe = true; + (this as any)._unsubscribe = unsubscribe; + } + } + + /** + * Disposes the resources held by the subscription. May, for instance, cancel + * an ongoing Observable execution or cancel any other type of work that + * started when the Subscription was created. + * @return {void} + */ + unsubscribe(): void { + let errors: any[]; + + if (this.closed) { + return; + } + + let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = (this as any); + + this.closed = true; + this._parentOrParents = null; + // null out _subscriptions first so any child subscriptions that attempt + // to remove themselves from this subscription will noop + this._subscriptions = null; + + if (_parentOrParents instanceof Subscription) { + _parentOrParents.remove(this); + } else if (_parentOrParents !== null) { + for (let index = 0; index < _parentOrParents.length; ++index) { + const parent = _parentOrParents[index]; + parent.remove(this); + } + } + + if (isFunction(_unsubscribe)) { + // It's only possible to null _unsubscribe - to release the reference to + // any teardown function passed in the constructor - if the property was + // actually assigned in the constructor, as there are some classes that + // are derived from Subscriber (which derives from Subscription) that + // implement an _unsubscribe method as a mechanism for obtaining + // unsubscription notifications and some of those subscribers are + // recycled. Also, in some of those subscribers, _unsubscribe switches + // from a prototype method to an instance property - see notifyNext in + // RetryWhenSubscriber. + if (_ctorUnsubscribe) { + (this as any)._unsubscribe = undefined; + } + try { + _unsubscribe.call(this); + } catch (e) { + errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e]; + } + } + + if (isArray(_subscriptions)) { + let index = -1; + let len = _subscriptions.length; + + while (++index < len) { + const sub = _subscriptions[index]; + if (isObject(sub)) { + try { + sub.unsubscribe(); + } catch (e) { + errors = errors || []; + if (e instanceof UnsubscriptionError) { + errors = errors.concat(flattenUnsubscriptionErrors(e.errors)); + } else { + errors.push(e); + } + } + } + } + } + + if (errors) { + throw new UnsubscriptionError(errors); + } + } + + /** + * Adds a tear down to be called during the unsubscribe() of this + * Subscription. Can also be used to add a child subscription. + * + * If the tear down being added is a subscription that is already + * unsubscribed, is the same reference `add` is being called on, or is + * `Subscription.EMPTY`, it will not be added. + * + * If this subscription is already in an `closed` state, the passed + * tear down logic will be executed immediately. + * + * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed. + * + * @param {TeardownLogic} teardown The additional logic to execute on + * teardown. + * @return {Subscription} Returns the Subscription used or created to be + * added to the inner subscriptions list. This Subscription can be used with + * `remove()` to remove the passed teardown logic from the inner subscriptions + * list. + */ + add(teardown: TeardownLogic): Subscription { + let subscription = (teardown); + + if (!teardown) { + return Subscription.EMPTY; + } + + switch (typeof teardown) { + case 'function': + subscription = new Subscription(<(() => void)>teardown); + case 'object': + if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') { + // This also covers the case where `subscription` is `Subscription.EMPTY`, which is always in `closed` state. + return subscription; + } else if (this.closed) { + subscription.unsubscribe(); + return subscription; + } else if (!(subscription instanceof Subscription)) { + const tmp = subscription; + subscription = new Subscription(); + subscription._subscriptions = [tmp]; + } + break; + default: { + throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.'); + } + } + + // Add `this` as parent of `subscription` if that's not already the case. + let { _parentOrParents } = subscription; + if (_parentOrParents === null) { + // If we don't have a parent, then set `subscription._parents` to + // the `this`, which is the common case that we optimize for. + subscription._parentOrParents = this; + } else if (_parentOrParents instanceof Subscription) { + if (_parentOrParents === this) { + // The `subscription` already has `this` as a parent. + return subscription; + } + // If there's already one parent, but not multiple, allocate an + // Array to store the rest of the parent Subscriptions. + subscription._parentOrParents = [_parentOrParents, this]; + } else if (_parentOrParents.indexOf(this) === -1) { + // Only add `this` to the _parentOrParents list if it's not already there. + _parentOrParents.push(this); + } else { + // The `subscription` already has `this` as a parent. + return subscription; + } + + // Optimize for the common case when adding the first subscription. + const subscriptions = this._subscriptions; + if (subscriptions === null) { + this._subscriptions = [subscription]; + } else { + subscriptions.push(subscription); + } + + return subscription; + } + + /** + * Removes a Subscription from the internal list of subscriptions that will + * unsubscribe during the unsubscribe process of this Subscription. + * @param {Subscription} subscription The subscription to remove. + * @return {void} + */ + remove(subscription: Subscription): void { + const subscriptions = this._subscriptions; + if (subscriptions) { + const subscriptionIndex = subscriptions.indexOf(subscription); + if (subscriptionIndex !== -1) { + subscriptions.splice(subscriptionIndex, 1); + } + } + } +} + +function flattenUnsubscriptionErrors(errors: any[]) { + return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []); +} diff --git a/node_modules/rxjs/src/internal/config.ts b/node_modules/rxjs/src/internal/config.ts new file mode 100644 index 00000000..bb380082 --- /dev/null +++ b/node_modules/rxjs/src/internal/config.ts @@ -0,0 +1,35 @@ +let _enable_super_gross_mode_that_will_cause_bad_things = false; + +/** + * The global configuration object for RxJS, used to configure things + * like what Promise contructor should used to create Promises + */ +export const config = { + /** + * The promise constructor used by default for methods such as + * {@link toPromise} and {@link forEach} + */ + Promise: undefined as PromiseConstructorLike, + + /** + * If true, turns on synchronous error rethrowing, which is a deprecated behavior + * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe + * call in a try/catch block. It also enables producer interference, a nasty bug + * where a multicast can be broken for all observers by a downstream consumer with + * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME + * FOR MIGRATION REASONS. + */ + set useDeprecatedSynchronousErrorHandling(value: boolean) { + if (value) { + const error = new Error(); + console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); + } else if (_enable_super_gross_mode_that_will_cause_bad_things) { + console.log('RxJS: Back to a better error behavior. Thank you. <3'); + } + _enable_super_gross_mode_that_will_cause_bad_things = value; + }, + + get useDeprecatedSynchronousErrorHandling() { + return _enable_super_gross_mode_that_will_cause_bad_things; + }, +}; diff --git a/node_modules/rxjs/src/internal/innerSubscribe.ts b/node_modules/rxjs/src/internal/innerSubscribe.ts new file mode 100644 index 00000000..53311c52 --- /dev/null +++ b/node_modules/rxjs/src/internal/innerSubscribe.ts @@ -0,0 +1,114 @@ +/** @prettier */ +import { Subscription } from './Subscription'; +import { Subscriber } from './Subscriber'; +import { Observable } from './Observable'; +import { subscribeTo } from './util/subscribeTo'; + +interface SimpleOuterSubscriberLike { + /** + * A handler for inner next notifications from the inner subscription + * @param innerValue the value nexted by the inner producer + */ + notifyNext(innerValue: T): void; + /** + * A handler for inner error notifications from the inner subscription + * @param err the error from the inner producer + */ + notifyError(err: any): void; + /** + * A handler for inner complete notifications from the inner subscription. + */ + notifyComplete(): void; +} + +export class SimpleInnerSubscriber extends Subscriber { + constructor(private parent: SimpleOuterSubscriberLike) { + super(); + } + + protected _next(value: T): void { + this.parent.notifyNext(value); + } + + protected _error(error: any): void { + this.parent.notifyError(error); + this.unsubscribe(); + } + + protected _complete(): void { + this.parent.notifyComplete(); + this.unsubscribe(); + } +} + +export class ComplexInnerSubscriber extends Subscriber { + constructor(private parent: ComplexOuterSubscriber, public outerValue: T, public outerIndex: number) { + super(); + } + + protected _next(value: R): void { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this); + } + + protected _error(error: any): void { + this.parent.notifyError(error); + this.unsubscribe(); + } + + protected _complete(): void { + this.parent.notifyComplete(this); + this.unsubscribe(); + } +} + +export class SimpleOuterSubscriber extends Subscriber implements SimpleOuterSubscriberLike { + notifyNext(innerValue: R): void { + this.destination.next(innerValue); + } + + notifyError(err: any): void { + this.destination.error(err); + } + + notifyComplete(): void { + this.destination.complete(); + } +} + +/** + * DO NOT USE (formerly "OuterSubscriber") + * TODO: We want to refactor this and remove it. It is retaining values it shouldn't for long + * periods of time. + */ +export class ComplexOuterSubscriber extends Subscriber { + /** + * @param _outerValue Used by: bufferToggle, delayWhen, windowToggle + * @param innerValue Used by: subclass default, combineLatest, race, bufferToggle, windowToggle, withLatestFrom + * @param _outerIndex Used by: combineLatest, race, withLatestFrom + * @param _innerSub Used by: delayWhen + */ + notifyNext(_outerValue: T, innerValue: R, _outerIndex: number, _innerSub: ComplexInnerSubscriber): void { + this.destination.next(innerValue); + } + + notifyError(error: any): void { + this.destination.error(error); + } + + /** + * @param _innerSub Used by: race, bufferToggle, delayWhen, windowToggle, windowWhen + */ + notifyComplete(_innerSub: ComplexInnerSubscriber): void { + this.destination.complete(); + } +} + +export function innerSubscribe(result: any, innerSubscriber: Subscriber): Subscription | undefined { + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber) as Subscription; +} diff --git a/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts b/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts new file mode 100644 index 00000000..4e7ffbfb --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/ConnectableObservable.ts @@ -0,0 +1,182 @@ +import { Subject, SubjectSubscriber } from '../Subject'; +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { TeardownLogic } from '../types'; +import { refCount as higherOrderRefCount } from '../operators/refCount'; + +/** + * @class ConnectableObservable + */ +export class ConnectableObservable extends Observable { + + protected _subject: Subject; + protected _refCount: number = 0; + protected _connection: Subscription; + /** @internal */ + _isComplete = false; + + constructor(public source: Observable, + protected subjectFactory: () => Subject) { + super(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber) { + return this.getSubject().subscribe(subscriber); + } + + protected getSubject(): Subject { + const subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + } + + connect(): Subscription { + let connection = this._connection; + if (!connection) { + this._isComplete = false; + connection = this._connection = new Subscription(); + connection.add(this.source + .subscribe(new ConnectableSubscriber(this.getSubject(), this))); + if (connection.closed) { + this._connection = null; + connection = Subscription.EMPTY; + } + } + return connection; + } + + refCount(): Observable { + return higherOrderRefCount()(this) as Observable; + } +} + +export const connectableObservableDescriptor: PropertyDescriptorMap = (() => { + const connectableProto = ConnectableObservable.prototype; + return { + operator: { value: null as null }, + _refCount: { value: 0, writable: true }, + _subject: { value: null as null, writable: true }, + _connection: { value: null as null, writable: true }, + _subscribe: { value: connectableProto._subscribe }, + _isComplete: { value: connectableProto._isComplete, writable: true }, + getSubject: { value: connectableProto.getSubject }, + connect: { value: connectableProto.connect }, + refCount: { value: connectableProto.refCount } + }; +})(); + +class ConnectableSubscriber extends SubjectSubscriber { + constructor(destination: Subject, + private connectable: ConnectableObservable) { + super(destination); + } + protected _error(err: any): void { + this._unsubscribe(); + super._error(err); + } + protected _complete(): void { + this.connectable._isComplete = true; + this._unsubscribe(); + super._complete(); + } + protected _unsubscribe() { + const connectable = this.connectable; + if (connectable) { + this.connectable = null; + const connection = connectable._connection; + connectable._refCount = 0; + connectable._subject = null; + connectable._connection = null; + if (connection) { + connection.unsubscribe(); + } + } + } +} + +class RefCountOperator implements Operator { + constructor(private connectable: ConnectableObservable) { + } + call(subscriber: Subscriber, source: any): TeardownLogic { + + const { connectable } = this; + ( connectable)._refCount++; + + const refCounter = new RefCountSubscriber(subscriber, connectable); + const subscription = source.subscribe(refCounter); + + if (!refCounter.closed) { + ( refCounter).connection = connectable.connect(); + } + + return subscription; + } +} + +class RefCountSubscriber extends Subscriber { + + private connection: Subscription; + + constructor(destination: Subscriber, + private connectable: ConnectableObservable) { + super(destination); + } + + protected _unsubscribe() { + + const { connectable } = this; + if (!connectable) { + this.connection = null; + return; + } + + this.connectable = null; + const refCount = ( connectable)._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + + ( connectable)._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + + /// + // Compare the local RefCountSubscriber's connection Subscription to the + // connection Subscription on the shared ConnectableObservable. In cases + // where the ConnectableObservable source synchronously emits values, and + // the RefCountSubscriber's downstream Observers synchronously unsubscribe, + // execution continues to here before the RefCountOperator has a chance to + // supply the RefCountSubscriber with the shared connection Subscription. + // For example: + // ``` + // range(0, 10).pipe( + // publish(), + // refCount(), + // take(5), + // ).subscribe(); + // ``` + // In order to account for this case, RefCountSubscriber should only dispose + // the ConnectableObservable's shared connection Subscription if the + // connection Subscription exists, *and* either: + // a. RefCountSubscriber doesn't have a reference to the shared connection + // Subscription yet, or, + // b. RefCountSubscriber's connection Subscription reference is identical + // to the shared connection Subscription + /// + const { connection } = this; + const sharedConnection = ( connectable)._connection; + this.connection = null; + + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + } +} diff --git a/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts b/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts new file mode 100644 index 00000000..d66e3b10 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts @@ -0,0 +1,52 @@ +import { SchedulerLike, SchedulerAction } from '../types'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +import { asap } from '../scheduler/asap'; +import { isNumeric } from '../util/isNumeric'; + +export interface DispatchArg { + source: Observable; + subscriber: Subscriber; +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class SubscribeOnObservable extends Observable { + /** @nocollapse */ + static create(source: Observable, delay: number = 0, scheduler: SchedulerLike = asap): Observable { + return new SubscribeOnObservable(source, delay, scheduler); + } + + /** @nocollapse */ + static dispatch(this: SchedulerAction, arg: DispatchArg): Subscription { + const { source, subscriber } = arg; + return this.add(source.subscribe(subscriber)); + } + + constructor(public source: Observable, + private delayTime: number = 0, + private scheduler: SchedulerLike = asap) { + super(); + if (!isNumeric(delayTime) || delayTime < 0) { + this.delayTime = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + this.scheduler = asap; + } + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber) { + const delay = this.delayTime; + const source = this.source; + const scheduler = this.scheduler; + + return scheduler.schedule>(SubscribeOnObservable.dispatch, delay, { + source, subscriber + }); + } +} diff --git a/node_modules/rxjs/src/internal/observable/bindCallback.ts b/node_modules/rxjs/src/internal/observable/bindCallback.ts new file mode 100644 index 00000000..b48801d9 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/bindCallback.ts @@ -0,0 +1,290 @@ +import { SchedulerLike, SchedulerAction } from '../types'; +import { Observable } from '../Observable'; +import { AsyncSubject } from '../AsyncSubject'; +import { Subscriber } from '../Subscriber'; +import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; +import { isArray } from '../util/isArray'; +import { isScheduler } from '../util/isScheduler'; + +// tslint:disable:max-line-length +/** @deprecated resultSelector is no longer supported, use a mapping function. */ +export function bindCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; + +export function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): () => Observable; +export function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>; +export function bindCallback(callbackFunc: (callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>; +export function bindCallback(callbackFunc: (callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable; +export function bindCallback(callbackFunc: (callback: () => any) => any, scheduler?: SchedulerLike): () => Observable; + +export function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>; +export function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>; +export function bindCallback(callbackFunc: (arg1: A1, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; + +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; + +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; + +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; + +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export function bindCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: () => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; + +export function bindCallback(callbackFunc: (...args: Array any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable; +export function bindCallback(callbackFunc: (...args: Array any)>) => any, scheduler?: SchedulerLike): (...args: A[]) => Observable; + +export function bindCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; + +// tslint:enable:max-line-length + +/** + * Converts a callback API to a function that returns an Observable. + * + * Give it a function `f` of type `f(x, callback)` and + * it will return a function `g` that when called as `g(x)` will output an + * Observable. + * + * `bindCallback` is not an operator because its input and output are not + * Observables. The input is a function `func` with some parameters. The + * last parameter must be a callback function that `func` calls when it is + * done. + * + * The output of `bindCallback` is a function that takes the same parameters + * as `func`, except the last one (the callback). When the output function + * is called with arguments it will return an Observable. If function `func` + * calls its callback with one argument, the Observable will emit that value. + * If on the other hand the callback is called with multiple values the resulting + * Observable will emit an array with said values as arguments. + * + * It is **very important** to remember that input function `func` is not called + * when the output function is, but rather when the Observable returned by the output + * function is subscribed. This means if `func` makes an AJAX request, that request + * will be made every time someone subscribes to the resulting Observable, but not before. + * + * The last optional parameter - `scheduler` - can be used to control when the call + * to `func` happens after someone subscribes to Observable, as well as when results + * passed to callback will be emitted. By default, the subscription to an Observable calls `func` + * synchronously, but using {@link asyncScheduler} as the last parameter will defer the call to `func`, + * just like wrapping the call in `setTimeout` with a timeout of `0` would. If you were to use the async Scheduler + * and call `subscribe` on the output Observable, all function calls that are currently executing + * will end before `func` is invoked. + * + * By default, results passed to the callback are emitted immediately after `func` invokes the callback. + * In particular, if the callback is called synchronously, then the subscription of the resulting Observable + * will call the `next` function synchronously as well. If you want to defer that call, + * you may use {@link asyncScheduler} just as before. This means that by using `Scheduler.async` you can + * ensure that `func` always calls its callback asynchronously, thus avoiding terrifying Zalgo. + * + * Note that the Observable created by the output function will always emit a single value + * and then complete immediately. If `func` calls the callback multiple times, values from subsequent + * calls will not appear in the stream. If you need to listen for multiple calls, + * you probably want to use {@link fromEvent} or {@link fromEventPattern} instead. + * + * If `func` depends on some context (`this` property) and is not already bound, the context of `func` + * will be the context that the output function has at call time. In particular, if `func` + * is called as a method of some objec and if `func` is not already bound, in order to preserve the context + * it is recommended that the context of the output function is set to that object as well. + * + * If the input function calls its callback in the "node style" (i.e. first argument to callback is + * optional error parameter signaling whether the call failed or not), {@link bindNodeCallback} + * provides convenient error handling and probably is a better choice. + * `bindCallback` will treat such functions the same as any other and error parameters + * (whether passed or not) will always be interpreted as regular callback argument. + * + * ## Examples + * + * ### Convert jQuery's getJSON to an Observable API + * ```ts + * import { bindCallback } from 'rxjs'; + * import * as jQuery from 'jquery'; + * + * // Suppose we have jQuery.getJSON('/my/url', callback) + * const getJSONAsObservable = bindCallback(jQuery.getJSON); + * const result = getJSONAsObservable('/my/url'); + * result.subscribe(x => console.log(x), e => console.error(e)); + * ``` + * + * ### Receive an array of arguments passed to a callback + * ```ts + * import { bindCallback } from 'rxjs'; + * + * const someFunction = (a, b, c) => { + * console.log(a); // 5 + * console.log(b); // 'some string' + * console.log(c); // {someProperty: 'someValue'} + * }; + * + * const boundSomeFunction = bindCallback(someFunction); + * boundSomeFunction().subscribe(values => { + * console.log(values) // [5, 'some string', {someProperty: 'someValue'}] + * }); + * ``` + * + * ### Compare behaviour with and without async Scheduler + * ```ts + * import { bindCallback } from 'rxjs'; + * + * function iCallMyCallbackSynchronously(cb) { + * cb(); + * } + * + * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously); + * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, Rx.Scheduler.async); + * + * boundSyncFn().subscribe(() => console.log('I was sync!')); + * boundAsyncFn().subscribe(() => console.log('I was async!')); + * console.log('This happened...'); + * + * // Logs: + * // I was sync! + * // This happened... + * // I was async! + * ``` + * + * ### Use bindCallback on an object method + * ```ts + * import { bindCallback } from 'rxjs'; + * + * const boundMethod = bindCallback(someObject.methodWithCallback); + * boundMethod.call(someObject) // make sure methodWithCallback has access to someObject + * .subscribe(subscriber); + * ``` + * + * @see {@link bindNodeCallback} + * @see {@link from} + * + * @param {function} func A function with a callback as the last parameter. + * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the + * callbacks. + * @return {function(...params: *): Observable} A function which returns the + * Observable that delivers the same values the callback would deliver. + * @name bindCallback + */ +export function bindCallback( + callbackFunc: Function, + resultSelector?: Function|SchedulerLike, + scheduler?: SchedulerLike +): (...args: any[]) => Observable { + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } else { + // DEPRECATED PATH + return (...args: any[]) => bindCallback(callbackFunc, scheduler)(...args).pipe( + map((args) => isArray(args) ? resultSelector(...args) : resultSelector(args)), + ); + } + } + + return function (this: any, ...args: any[]): Observable { + const context = this; + let subject: AsyncSubject; + const params = { + context, + subject, + callbackFunc, + scheduler, + }; + return new Observable(subscriber => { + if (!scheduler) { + if (!subject) { + subject = new AsyncSubject(); + const handler = (...innerArgs: any[]) => { + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + + try { + callbackFunc.apply(context, [...args, handler]); + } catch (err) { + if (canReportError(subject)) { + subject.error(err); + } else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } else { + const state: DispatchState = { + args, subscriber, params, + }; + return scheduler.schedule>(dispatch, 0, state); + } + }); + }; +} + +interface DispatchState { + args: any[]; + subscriber: Subscriber; + params: ParamsContext; +} + +interface ParamsContext { + callbackFunc: Function; + scheduler: SchedulerLike; + context: any; + subject: AsyncSubject; +} + +function dispatch(this: SchedulerAction>, state: DispatchState) { + const self = this; + const { args, subscriber, params } = state; + const { callbackFunc, context, scheduler } = params; + let { subject } = params; + if (!subject) { + subject = params.subject = new AsyncSubject(); + + const handler = (...innerArgs: any[]) => { + const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + this.add(scheduler.schedule>(dispatchNext, 0, { value, subject })); + }; + + try { + callbackFunc.apply(context, [...args, handler]); + } catch (err) { + subject.error(err); + } + } + + this.add(subject.subscribe(subscriber)); +} + +interface NextState { + subject: AsyncSubject; + value: T; +} + +function dispatchNext(this: SchedulerAction>, state: NextState) { + const { value, subject } = state; + subject.next(value); + subject.complete(); +} + +interface ErrorState { + subject: AsyncSubject; + err: any; +} + +function dispatchError(this: SchedulerAction>, state: ErrorState) { + const { err, subject } = state; + subject.error(err); +} diff --git a/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts b/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts new file mode 100644 index 00000000..605961a9 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/bindNodeCallback.ts @@ -0,0 +1,278 @@ +import { Observable } from '../Observable'; +import { AsyncSubject } from '../AsyncSubject'; +import { Subscriber } from '../Subscriber'; +import { SchedulerAction, SchedulerLike } from '../types'; +import { map } from '../operators/map'; +import { canReportError } from '../util/canReportError'; +import { isScheduler } from '../util/isScheduler'; +import { isArray } from '../util/isArray'; + +/* tslint:disable:max-line-length */ +/** @deprecated resultSelector is deprecated, pipe to map instead */ +export function bindNodeCallback(callbackFunc: Function, resultSelector: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; + +export function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2, R3]>; +export function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): () => Observable<[R1, R2]>; +export function bindNodeCallback(callbackFunc: (callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): () => Observable; +export function bindNodeCallback(callbackFunc: (callback: (err: any) => any) => any, scheduler?: SchedulerLike): () => Observable; + +export function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2, R3]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable<[R1, R2]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1) => Observable; + +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2, R3]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable<[R1, R2]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2) => Observable; + +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2, R3]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable<[R1, R2]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3) => Observable; + +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2, R3]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable<[R1, R2]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Observable; + +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3, res4: R4, ...args: any[]) => any) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2, res3: R3) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2, R3]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1, res2: R2) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable<[R1, R2]>; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any, res1: R1) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; +export function bindNodeCallback(callbackFunc: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: (err: any) => any) => any, scheduler?: SchedulerLike): (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Observable; /* tslint:enable:max-line-length */ + +export function bindNodeCallback(callbackFunc: Function, scheduler?: SchedulerLike): (...args: any[]) => Observable; +/** + * Converts a Node.js-style callback API to a function that returns an + * Observable. + * + * It's just like {@link bindCallback}, but the + * callback is expected to be of type `callback(error, result)`. + * + * `bindNodeCallback` is not an operator because its input and output are not + * Observables. The input is a function `func` with some parameters, but the + * last parameter must be a callback function that `func` calls when it is + * done. The callback function is expected to follow Node.js conventions, + * where the first argument to the callback is an error object, signaling + * whether call was successful. If that object is passed to callback, it means + * something went wrong. + * + * The output of `bindNodeCallback` is a function that takes the same + * parameters as `func`, except the last one (the callback). When the output + * function is called with arguments, it will return an Observable. + * If `func` calls its callback with error parameter present, Observable will + * error with that value as well. If error parameter is not passed, Observable will emit + * second parameter. If there are more parameters (third and so on), + * Observable will emit an array with all arguments, except first error argument. + * + * Note that `func` will not be called at the same time output function is, + * but rather whenever resulting Observable is subscribed. By default call to + * `func` will happen synchronously after subscription, but that can be changed + * with proper `scheduler` provided as optional third parameter. {@link SchedulerLike} + * can also control when values from callback will be emitted by Observable. + * To find out more, check out documentation for {@link bindCallback}, where + * {@link SchedulerLike} works exactly the same. + * + * As in {@link bindCallback}, context (`this` property) of input function will be set to context + * of returned function, when it is called. + * + * After Observable emits value, it will complete immediately. This means + * even if `func` calls callback again, values from second and consecutive + * calls will never appear on the stream. If you need to handle functions + * that call callbacks multiple times, check out {@link fromEvent} or + * {@link fromEventPattern} instead. + * + * Note that `bindNodeCallback` can be used in non-Node.js environments as well. + * "Node.js-style" callbacks are just a convention, so if you write for + * browsers or any other environment and API you use implements that callback style, + * `bindNodeCallback` can be safely used on that API functions as well. + * + * Remember that Error object passed to callback does not have to be an instance + * of JavaScript built-in `Error` object. In fact, it does not even have to an object. + * Error parameter of callback function is interpreted as "present", when value + * of that parameter is truthy. It could be, for example, non-zero number, non-empty + * string or boolean `true`. In all of these cases resulting Observable would error + * with that value. This means usually regular style callbacks will fail very often when + * `bindNodeCallback` is used. If your Observable errors much more often then you + * would expect, check if callback really is called in Node.js-style and, if not, + * switch to {@link bindCallback} instead. + * + * Note that even if error parameter is technically present in callback, but its value + * is falsy, it still won't appear in array emitted by Observable. + * + * ## Examples + * ### Read a file from the filesystem and get the data as an Observable + * ```ts + * import * as fs from 'fs'; + * const readFileAsObservable = bindNodeCallback(fs.readFile); + * const result = readFileAsObservable('./roadNames.txt', 'utf8'); + * result.subscribe(x => console.log(x), e => console.error(e)); + * ``` + * + * ### Use on function calling callback with multiple arguments + * ```ts + * someFunction((err, a, b) => { + * console.log(err); // null + * console.log(a); // 5 + * console.log(b); // "some string" + * }); + * const boundSomeFunction = bindNodeCallback(someFunction); + * boundSomeFunction() + * .subscribe(value => { + * console.log(value); // [5, "some string"] + * }); + * ``` + * + * ### Use on function calling callback in regular style + * ```ts + * someFunction(a => { + * console.log(a); // 5 + * }); + * const boundSomeFunction = bindNodeCallback(someFunction); + * boundSomeFunction() + * .subscribe( + * value => {} // never gets called + * err => console.log(err) // 5 + * ); + * ``` + * + * @see {@link bindCallback} + * @see {@link from} + * + * @param {function} func Function with a Node.js-style callback as the last parameter. + * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the + * callbacks. + * @return {function(...params: *): Observable} A function which returns the + * Observable that delivers the same values the Node.js callback would + * deliver. + * @name bindNodeCallback + */ +export function bindNodeCallback( + callbackFunc: Function, + resultSelector: Function|SchedulerLike, + scheduler?: SchedulerLike +): (...args: any[]) => Observable { + + if (resultSelector) { + if (isScheduler(resultSelector)) { + scheduler = resultSelector; + } else { + // DEPRECATED PATH + return (...args: any[]) => bindNodeCallback(callbackFunc, scheduler)(...args).pipe( + map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)) + ); + } + } + + return function(this: any, ...args: any[]): Observable { + const params: ParamsState = { + subject: undefined, + args, + callbackFunc, + scheduler, + context: this, + }; + return new Observable(subscriber => { + const { context } = params; + let { subject } = params; + if (!scheduler) { + if (!subject) { + subject = params.subject = new AsyncSubject(); + const handler = (...innerArgs: any[]) => { + const err = innerArgs.shift(); + + if (err) { + subject.error(err); + return; + } + + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + + try { + callbackFunc.apply(context, [...args, handler]); + } catch (err) { + if (canReportError(subject)) { + subject.error(err); + } else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } else { + return scheduler.schedule>(dispatch, 0, { params, subscriber, context }); + } + }); + }; +} + +interface DispatchState { + subscriber: Subscriber; + context: any; + params: ParamsState; +} + +interface ParamsState { + callbackFunc: Function; + args: any[]; + scheduler: SchedulerLike; + subject: AsyncSubject; + context: any; +} + +function dispatch(this: SchedulerAction>, state: DispatchState) { + const { params, subscriber, context } = state; + const { callbackFunc, args, scheduler } = params; + let subject = params.subject; + + if (!subject) { + subject = params.subject = new AsyncSubject(); + + const handler = (...innerArgs: any[]) => { + const err = innerArgs.shift(); + if (err) { + this.add(scheduler.schedule>(dispatchError, 0, { err, subject })); + } else { + const value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + this.add(scheduler.schedule>(dispatchNext, 0, { value, subject })); + } + }; + + try { + callbackFunc.apply(context, [...args, handler]); + } catch (err) { + this.add(scheduler.schedule>(dispatchError, 0, { err, subject })); + } + } + + this.add(subject.subscribe(subscriber)); +} + +interface DispatchNextArg { + subject: AsyncSubject; + value: T; +} + +function dispatchNext(arg: DispatchNextArg) { + const { value, subject } = arg; + subject.next(value); + subject.complete(); +} + +interface DispatchErrorArg { + subject: AsyncSubject; + err: any; +} + +function dispatchError(arg: DispatchErrorArg) { + const { err, subject } = arg; + subject.error(err); +} diff --git a/node_modules/rxjs/src/internal/observable/combineLatest.ts b/node_modules/rxjs/src/internal/observable/combineLatest.ts new file mode 100644 index 00000000..ac5e6ea0 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/combineLatest.ts @@ -0,0 +1,327 @@ +import { Observable } from '../Observable'; +import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; +import { isScheduler } from '../util/isScheduler'; +import { isArray } from '../util/isArray'; +import { Subscriber } from '../Subscriber'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { Operator } from '../Operator'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { fromArray } from './fromArray'; + +const NONE = {}; + +/* tslint:disable:max-line-length */ + +// If called with a single array, it "auto-spreads" the array, with result selector +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, R>(sources: [O1], resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, R>(sources: [O1, O2], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(sources: [O1, O2, O3], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(sources: [O1, O2, O3, O4], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(sources: [O1, O2, O3, O4, O5, O6], resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, R>(sources: O[], resultSelector: (...args: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable; + +// standard call, but with a result selector +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R, scheduler?: SchedulerLike): Observable; + +// With a scheduler (deprecated) +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest>(sources: [O1], scheduler: SchedulerLike): Observable<[ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest, O2 extends ObservableInput>(sources: [O1, O2], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6], scheduler: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest>(sources: O[], scheduler: SchedulerLike): Observable[]>; + +// Best case +export function combineLatest>(sources: [O1]): Observable<[ObservedValueOf]>; +export function combineLatest, O2 extends ObservableInput>(sources: [O1, O2]): Observable<[ObservedValueOf, ObservedValueOf]>; +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(sources: [O1, O2, O3]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(sources: [O1, O2, O3, O4]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(sources: [O1, O2, O3, O4, O5]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(sources: [O1, O2, O3, O4, O5, O6]): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function combineLatest>(sources: O[]): Observable[]>; + +// Standard calls +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest>(v1: O1, scheduler?: SchedulerLike): Observable<[ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler?: SchedulerLike): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; + +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest>(...observables: O[]): Observable; + +/** @deprecated Pass arguments in a single array instead `combineLatest([a, b, c])` */ +export function combineLatest, R>(...observables: Array | ((...values: Array) => R)>): Observable; + +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function combineLatest, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R, scheduler?: SchedulerLike): Observable; + +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest>(...observables: Array): Observable; + +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest, R>(...observables: Array[]) => R) | SchedulerLike>): Observable; + +/** @deprecated Passing a scheduler here is deprecated, use {@link subscribeOn} and/or {@link observeOn} instead */ +export function combineLatest(...observables: Array | ((...values: Array) => R) | SchedulerLike>): Observable; +/* tslint:enable:max-line-length */ + +/** + * Combines multiple Observables to create an Observable whose values are + * calculated from the latest values of each of its input Observables. + * + * Whenever any input Observable emits a value, it + * computes a formula using the latest values from all the inputs, then emits + * the output of that formula. + * + * ![](combineLatest.png) + * + * `combineLatest` combines the values from all the Observables passed as + * arguments. This is done by subscribing to each Observable in order and, + * whenever any Observable emits, collecting an array of the most recent + * values from each Observable. So if you pass `n` Observables to operator, + * returned Observable will always emit an array of `n` values, in order + * corresponding to order of passed Observables (value from the first Observable + * on the first place and so on). + * + * Static version of `combineLatest` accepts either an array of Observables + * or each Observable can be put directly as an argument. Note that array of + * Observables is good choice, if you don't know beforehand how many Observables + * you will combine. Passing empty array will result in Observable that + * completes immediately. + * + * To ensure output array has always the same length, `combineLatest` will + * actually wait for all input Observables to emit at least once, + * before it starts emitting results. This means if some Observable emits + * values before other Observables started emitting, all these values but the last + * will be lost. On the other hand, if some Observable does not emit a value but + * completes, resulting Observable will complete at the same moment without + * emitting anything, since it will be now impossible to include value from + * completed Observable in resulting array. Also, if some input Observable does + * not emit any value and never completes, `combineLatest` will also never emit + * and never complete, since, again, it will wait for all streams to emit some + * value. + * + * If at least one Observable was passed to `combineLatest` and all passed Observables + * emitted something, resulting Observable will complete when all combined + * streams complete. So even if some Observable completes, result of + * `combineLatest` will still emit values when other Observables do. In case + * of completed Observable, its value from now on will always be the last + * emitted value. On the other hand, if any Observable errors, `combineLatest` + * will error immediately as well, and all other Observables will be unsubscribed. + * + * `combineLatest` accepts as optional parameter `project` function, which takes + * as arguments all values that would normally be emitted by resulting Observable. + * `project` can return any kind of value, which will be then emitted by Observable + * instead of default array. Note that `project` does not take as argument that array + * of values, but values themselves. That means default `project` can be imagined + * as function that takes all its arguments and puts them into an array. + * + * ## Examples + * ### Combine two timer Observables + * ```ts + * import { combineLatest, timer } from 'rxjs'; + * + * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now + * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now + * const combinedTimers = combineLatest(firstTimer, secondTimer); + * combinedTimers.subscribe(value => console.log(value)); + * // Logs + * // [0, 0] after 0.5s + * // [1, 0] after 1s + * // [1, 1] after 1.5s + * // [2, 1] after 2s + * ``` + * + * ### Combine an array of Observables + * ```ts + * import { combineLatest, of } from 'rxjs'; + * import { delay, starWith } from 'rxjs/operators'; + * + * const observables = [1, 5, 10].map( + * n => of(n).pipe( + * delay(n * 1000), // emit 0 and then emit n after n seconds + * startWith(0), + * ) + * ); + * const combined = combineLatest(observables); + * combined.subscribe(value => console.log(value)); + * // Logs + * // [0, 0, 0] immediately + * // [1, 0, 0] after 1s + * // [1, 5, 0] after 5s + * // [1, 5, 10] after 10s + * ``` + * + * + * ### Use project function to dynamically calculate the Body-Mass Index + * ```ts + * import { combineLatest, of } from 'rxjs'; + * import { map } from 'rxjs/operators'; + * + * const weight = of(70, 72, 76, 79, 75); + * const height = of(1.76, 1.77, 1.78); + * const bmi = combineLatest(weight, height).pipe( + * map(([w, h]) => w / (h * h)), + * ); + * bmi.subscribe(x => console.log('BMI is ' + x)); + * + * // With output to console: + * // BMI is 24.212293388429753 + * // BMI is 23.93948099205209 + * // BMI is 23.671253629592222 + * ``` + * + * @see {@link combineAll} + * @see {@link merge} + * @see {@link withLatestFrom} + * + * @param {ObservableInput} observable1 An input Observable to combine with other Observables. + * @param {ObservableInput} observable2 An input Observable to combine with other Observables. + * More than one input Observables may be given as arguments + * or an array of Observables may be given as the first argument. + * @param {function} [project] An optional function to project the values from + * the combined latest values into a new value on the output Observable. + * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to + * each input Observable. + * @return {Observable} An Observable of projected values from the most recent + * values from each input Observable, or an array of the most recent values from + * each input Observable. + */ +export function combineLatest, R>( + ...observables: (O | ((...values: ObservedValueOf[]) => R) | SchedulerLike)[] +): Observable { + let resultSelector: ((...values: Array) => R) | undefined = undefined; + let scheduler: SchedulerLike|undefined = undefined; + + if (isScheduler(observables[observables.length - 1])) { + scheduler = observables.pop() as SchedulerLike; + } + + if (typeof observables[observables.length - 1] === 'function') { + resultSelector = observables.pop() as (...values: Array) => R; + } + + // if the first and only other argument besides the resultSelector is an array + // assume it's been called with `combineLatest([obs1, obs2, obs3], resultSelector)` + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0] as any; + } + + return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); +} + +export class CombineLatestOperator implements Operator { + constructor(private resultSelector?: (...values: Array) => R) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class CombineLatestSubscriber extends OuterSubscriber { + private active: number = 0; + private values: any[] = []; + private observables: any[] = []; + private toRespond?: number; + + constructor(destination: Subscriber, private resultSelector?: (...values: Array) => R) { + super(destination); + } + + protected _next(observable: any) { + this.values.push(NONE); + this.observables.push(observable); + } + + protected _complete() { + const observables = this.observables; + const len = observables.length; + if (len === 0) { + this.destination.complete!(); + } else { + this.active = len; + this.toRespond = len; + for (let i = 0; i < len; i++) { + const observable = observables[i]; + this.add(subscribeToResult(this, observable, undefined, i)); + } + } + } + + notifyComplete(unused: Subscriber): void { + if ((this.active -= 1) === 0) { + this.destination.complete!(); + } + } + + notifyNext(_outerValue: T, innerValue: R, + outerIndex: number): void { + const values = this.values; + const oldVal = values[outerIndex]; + const toRespond = !this.toRespond + ? 0 + : oldVal === NONE ? --this.toRespond : this.toRespond; + values[outerIndex] = innerValue; + + if (toRespond === 0) { + if (this.resultSelector) { + this._tryResultSelector(values); + } else { + this.destination.next!(values.slice()); + } + } + } + + private _tryResultSelector(values: any[]) { + let result: any; + try { + result = this.resultSelector!.apply(this, values); + } catch (err) { + this.destination.error!(err); + return; + } + this.destination.next!(result); + } +} diff --git a/node_modules/rxjs/src/internal/observable/concat.ts b/node_modules/rxjs/src/internal/observable/concat.ts new file mode 100644 index 00000000..59497421 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/concat.ts @@ -0,0 +1,147 @@ +import { Observable } from '../Observable'; +import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; +import { isScheduler } from '../util/isScheduler'; +import { of } from './of'; +import { from } from './from'; +import { concatAll } from '../operators/concatAll'; + +/* tslint:disable:max-line-length */ +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat>(v1: O1, scheduler: SchedulerLike): Observable>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat, O2 extends ObservableInput>(v1: O1, v2: O2, scheduler: SchedulerLike): Observable | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; + +export function concat>(v1: O1): Observable>; +export function concat, O2 extends ObservableInput>(v1: O1, v2: O2): Observable | ObservedValueOf>; +export function concat, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable | ObservedValueOf | ObservedValueOf>; +export function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +export function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +export function concat, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf | ObservedValueOf>; +export function concat>(...observables: O[]): Observable>; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat>(...observables: (O | SchedulerLike)[]): Observable>; +export function concat(...observables: ObservableInput[]): Observable; +/** @deprecated Use {@link scheduled} and {@link concatAll} (e.g. `scheduled([o1, o2, o3], scheduler).pipe(concatAll())`) */ +export function concat(...observables: (ObservableInput | SchedulerLike)[]): Observable; +/* tslint:enable:max-line-length */ +/** + * Creates an output Observable which sequentially emits all values from given + * Observable and then moves on to the next. + * + * Concatenates multiple Observables together by + * sequentially emitting their values, one Observable after the other. + * + * ![](concat.png) + * + * `concat` joins multiple Observables together, by subscribing to them one at a time and + * merging their results into the output Observable. You can pass either an array of + * Observables, or put them directly as arguments. Passing an empty array will result + * in Observable that completes immediately. + * + * `concat` will subscribe to first input Observable and emit all its values, without + * changing or affecting them in any way. When that Observable completes, it will + * subscribe to then next Observable passed and, again, emit its values. This will be + * repeated, until the operator runs out of Observables. When last input Observable completes, + * `concat` will complete as well. At any given moment only one Observable passed to operator + * emits values. If you would like to emit values from passed Observables concurrently, check out + * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact, + * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`. + * + * Note that if some input Observable never completes, `concat` will also never complete + * and Observables following the one that did not complete will never be subscribed. On the other + * hand, if some Observable simply completes immediately after it is subscribed, it will be + * invisible for `concat`, which will just move on to the next Observable. + * + * If any Observable in chain errors, instead of passing control to the next Observable, + * `concat` will error immediately as well. Observables that would be subscribed after + * the one that emitted error, never will. + * + * If you pass to `concat` the same Observable many times, its stream of values + * will be "replayed" on every subscription, which means you can repeat given Observable + * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious, + * you can always use {@link repeat}. + * + * ## Examples + * ### Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10 + * ```ts + * import { concat, interval, range } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const timer = interval(1000).pipe(take(4)); + * const sequence = range(1, 10); + * const result = concat(timer, sequence); + * result.subscribe(x => console.log(x)); + * + * // results in: + * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10 + * ``` + * + * ### Concatenate 3 Observables + * ```ts + * import { concat, interval } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const timer1 = interval(1000).pipe(take(10)); + * const timer2 = interval(2000).pipe(take(6)); + * const timer3 = interval(500).pipe(take(10)); + * + * const result = concat(timer1, timer2, timer3); + * result.subscribe(x => console.log(x)); + * + * // results in the following: + * // (Prints to console sequentially) + * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9 + * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5 + * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9 + * ``` + * + * ### Concatenate the same Observable to repeat it + * ```ts + * import { concat, interval } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const timer = interval(1000).pipe(take(2)); + * + * concat(timer, timer) // concatenating the same Observable! + * .subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('...and it is done!') + * ); + * + * // Logs: + * // 0 after 1s + * // 1 after 2s + * // 0 after 3s + * // 1 after 4s + * // "...and it is done!" also after 4s + * ``` + * + * @see {@link concatAll} + * @see {@link concatMap} + * @see {@link concatMapTo} + * @see {@link startWith} + * @see {@link endWith} + * + * @param {ObservableInput} input1 An input Observable to concatenate with others. + * @param {ObservableInput} input2 An input Observable to concatenate with others. + * More than one input Observables may be given as argument. + * @param {SchedulerLike} [scheduler=null] An optional {@link SchedulerLike} to schedule each + * Observable subscription on. + * @return {Observable} All values of each passed Observable merged into a + * single Observable, in order, in serial fashion. + * @static true + * @name concat + * @owner Observable + */ +export function concat, R>(...observables: Array): Observable | R> { + return concatAll()(of(...observables)); +} diff --git a/node_modules/rxjs/src/internal/observable/defer.ts b/node_modules/rxjs/src/internal/observable/defer.ts new file mode 100644 index 00000000..df6c7aa6 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/defer.ts @@ -0,0 +1,67 @@ +import { Observable } from '../Observable'; +import { SubscribableOrPromise, ObservedValueOf, ObservableInput } from '../types'; +import { from } from './from'; // lol +import { empty } from './empty'; + +/** + * Creates an Observable that, on subscribe, calls an Observable factory to + * make an Observable for each new Observer. + * + * Creates the Observable lazily, that is, only when it + * is subscribed. + * + * + * ![](defer.png) + * + * `defer` allows you to create the Observable only when the Observer + * subscribes, and create a fresh Observable for each Observer. It waits until + * an Observer subscribes to it, and then it generates an Observable, + * typically with an Observable factory function. It does this afresh for each + * subscriber, so although each subscriber may think it is subscribing to the + * same Observable, in fact each subscriber gets its own individual + * Observable. + * + * ## Example + * ### Subscribe to either an Observable of clicks or an Observable of interval, at random + * ```ts + * import { defer, fromEvent, interval } from 'rxjs'; + * + * const clicksOrInterval = defer(function () { + * return Math.random() > 0.5 + * ? fromEvent(document, 'click') + * : interval(1000); + * }); + * clicksOrInterval.subscribe(x => console.log(x)); + * + * // Results in the following behavior: + * // If the result of Math.random() is greater than 0.5 it will listen + * // for clicks anywhere on the "document"; when document is clicked it + * // will log a MouseEvent object to the console. If the result is less + * // than 0.5 it will emit ascending numbers, one every second(1000ms). + * ``` + * + * @see {@link Observable} + * + * @param {function(): SubscribableOrPromise} observableFactory The Observable + * factory function to invoke for each Observer that subscribes to the output + * Observable. May also return a Promise, which will be converted on the fly + * to an Observable. + * @return {Observable} An Observable whose Observers' subscriptions trigger + * an invocation of the given Observable factory function. + * @static true + * @name defer + * @owner Observable + */ +export function defer | void>(observableFactory: () => R): Observable> { + return new Observable>(subscriber => { + let input: R | void; + try { + input = observableFactory(); + } catch (err) { + subscriber.error(err); + return undefined; + } + const source = input ? from(input as ObservableInput>) : empty(); + return source.subscribe(subscriber); + }); +} diff --git a/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts b/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts new file mode 100644 index 00000000..d1f3f918 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts @@ -0,0 +1,550 @@ +import { root } from '../../util/root'; +import { Observable } from '../../Observable'; +import { Subscriber } from '../../Subscriber'; +import { TeardownLogic } from '../../types'; +import { map } from '../../operators/map'; + +export interface AjaxRequest { + url?: string; + body?: any; + user?: string; + async?: boolean; + method?: string; + headers?: Object; + timeout?: number; + password?: string; + hasContent?: boolean; + crossDomain?: boolean; + withCredentials?: boolean; + createXHR?: () => XMLHttpRequest; + progressSubscriber?: Subscriber; + responseType?: string; +} + +function getCORSRequest(): XMLHttpRequest { + if (root.XMLHttpRequest) { + return new root.XMLHttpRequest(); + } else if (!!root.XDomainRequest) { + return new root.XDomainRequest(); + } else { + throw new Error('CORS is not supported by your browser'); + } +} + +function getXMLHttpRequest(): XMLHttpRequest { + if (root.XMLHttpRequest) { + return new root.XMLHttpRequest(); + } else { + let progId: string; + try { + const progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; + for (let i = 0; i < 3; i++) { + try { + progId = progIds[i]; + if (new root.ActiveXObject(progId)) { + break; + } + } catch (e) { + //suppress exceptions + } + } + return new root.ActiveXObject(progId); + } catch (e) { + throw new Error('XMLHttpRequest is not supported by your browser'); + } + } +} + +export interface AjaxCreationMethod { + (urlOrRequest: string | AjaxRequest): Observable; + get(url: string, headers?: Object): Observable; + post(url: string, body?: any, headers?: Object): Observable; + put(url: string, body?: any, headers?: Object): Observable; + patch(url: string, body?: any, headers?: Object): Observable; + delete(url: string, headers?: Object): Observable; + getJSON(url: string, headers?: Object): Observable; +} + +export function ajaxGet(url: string, headers: Object = null) { + return new AjaxObservable({ method: 'GET', url, headers }); +} + +export function ajaxPost(url: string, body?: any, headers?: Object): Observable { + return new AjaxObservable({ method: 'POST', url, body, headers }); +} + +export function ajaxDelete(url: string, headers?: Object): Observable { + return new AjaxObservable({ method: 'DELETE', url, headers }); +} + +export function ajaxPut(url: string, body?: any, headers?: Object): Observable { + return new AjaxObservable({ method: 'PUT', url, body, headers }); +} + +export function ajaxPatch(url: string, body?: any, headers?: Object): Observable { + return new AjaxObservable({ method: 'PATCH', url, body, headers }); +} + +const mapResponse = map((x: AjaxResponse, index: number) => x.response); + +export function ajaxGetJSON(url: string, headers?: Object): Observable { + return mapResponse( + new AjaxObservable({ + method: 'GET', + url, + responseType: 'json', + headers + }) + ); +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @extends {Ignored} + * @hide true + */ +export class AjaxObservable extends Observable { + /** + * Creates an observable for an Ajax request with either a request object with + * url, headers, etc or a string for a URL. + * + * ## Example + * ```ts + * import { ajax } from 'rxjs/ajax'; + * + * const source1 = ajax('/products'); + * const source2 = ajax({ url: 'products', method: 'GET' }); + * ``` + * + * @param {string|Object} request Can be one of the following: + * A string of the URL to make the Ajax call. + * An object with the following properties + * - url: URL of the request + * - body: The body of the request + * - method: Method of the request, such as GET, POST, PUT, PATCH, DELETE + * - async: Whether the request is async + * - headers: Optional headers + * - crossDomain: true if a cross domain request, else false + * - createXHR: a function to override if you need to use an alternate + * XMLHttpRequest implementation. + * - resultSelector: a function to use to alter the output value type of + * the Observable. Gets {@link AjaxResponse} as an argument. + * @return {Observable} An observable sequence containing the XMLHttpRequest. + * @static true + * @name ajax + * @owner Observable + * @nocollapse + */ + static create: AjaxCreationMethod = (() => { + const create: any = (urlOrRequest: string | AjaxRequest) => { + return new AjaxObservable(urlOrRequest); + }; + + create.get = ajaxGet; + create.post = ajaxPost; + create.delete = ajaxDelete; + create.put = ajaxPut; + create.patch = ajaxPatch; + create.getJSON = ajaxGetJSON; + + return create; + })(); + + private request: AjaxRequest; + + constructor(urlOrRequest: string | AjaxRequest) { + super(); + + const request: AjaxRequest = { + async: true, + createXHR: function(this: AjaxRequest) { + return this.crossDomain ? getCORSRequest() : getXMLHttpRequest(); + }, + crossDomain: true, + withCredentials: false, + headers: {}, + method: 'GET', + responseType: 'json', + timeout: 0 + }; + + if (typeof urlOrRequest === 'string') { + request.url = urlOrRequest; + } else { + for (const prop in urlOrRequest) { + if (urlOrRequest.hasOwnProperty(prop)) { + request[prop] = urlOrRequest[prop]; + } + } + } + + this.request = request; + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): TeardownLogic { + return new AjaxSubscriber(subscriber, this.request); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class AjaxSubscriber extends Subscriber { + private xhr: XMLHttpRequest; + private done: boolean = false; + + constructor(destination: Subscriber, public request: AjaxRequest) { + super(destination); + + const headers = request.headers = request.headers || {}; + + // force CORS if requested + if (!request.crossDomain && !this.getHeader(headers, 'X-Requested-With')) { + headers['X-Requested-With'] = 'XMLHttpRequest'; + } + + // ensure content type is set + let contentTypeHeader = this.getHeader(headers, 'Content-Type'); + if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') { + headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + } + + // properly serialize body + request.body = this.serializeBody(request.body, this.getHeader(request.headers, 'Content-Type')); + + this.send(); + } + + next(e: Event): void { + this.done = true; + const { xhr, request, destination } = this; + let result; + try { + result = new AjaxResponse(e, xhr, request); + } catch (err) { + return destination.error(err); + } + destination.next(result); + } + + private send(): void { + const { + request, + request: { user, method, url, async, password, headers, body } + } = this; + try { + const xhr = this.xhr = request.createXHR(); + + // set up the events before open XHR + // https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest + // You need to add the event listeners before calling open() on the request. + // Otherwise the progress events will not fire. + this.setupEvents(xhr, request); + // open XHR + if (user) { + xhr.open(method, url, async, user, password); + } else { + xhr.open(method, url, async); + } + + // timeout, responseType and withCredentials can be set once the XHR is open + if (async) { + xhr.timeout = request.timeout; + xhr.responseType = request.responseType as any; + } + + if ('withCredentials' in xhr) { + xhr.withCredentials = !!request.withCredentials; + } + + // set headers + this.setHeaders(xhr, headers); + + // finally send the request + if (body) { + xhr.send(body); + } else { + xhr.send(); + } + } catch (err) { + this.error(err); + } + } + + private serializeBody(body: any, contentType?: string) { + if (!body || typeof body === 'string') { + return body; + } else if (root.FormData && body instanceof root.FormData) { + return body; + } + + if (contentType) { + const splitIndex = contentType.indexOf(';'); + if (splitIndex !== -1) { + contentType = contentType.substring(0, splitIndex); + } + } + + switch (contentType) { + case 'application/x-www-form-urlencoded': + return Object.keys(body).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(body[key])}`).join('&'); + case 'application/json': + return JSON.stringify(body); + default: + return body; + } + } + + private setHeaders(xhr: XMLHttpRequest, headers: Object) { + for (let key in headers) { + if (headers.hasOwnProperty(key)) { + xhr.setRequestHeader(key, headers[key]); + } + } + } + + private getHeader(headers: {}, headerName: string): any { + for (let key in headers) { + if (key.toLowerCase() === headerName.toLowerCase()) { + return headers[key]; + } + } + + return undefined; + } + + private setupEvents(xhr: XMLHttpRequest, request: AjaxRequest) { + const progressSubscriber = request.progressSubscriber; + + function xhrTimeout(this: XMLHttpRequest, e: ProgressEvent): void { + const {subscriber, progressSubscriber, request } = (xhrTimeout); + if (progressSubscriber) { + progressSubscriber.error(e); + } + let error; + try { + error = new AjaxTimeoutError(this, request); // TODO: Make betterer. + } catch (err) { + error = err; + } + subscriber.error(error); + } + xhr.ontimeout = xhrTimeout; + (xhrTimeout).request = request; + (xhrTimeout).subscriber = this; + (xhrTimeout).progressSubscriber = progressSubscriber; + if (xhr.upload && 'withCredentials' in xhr) { + if (progressSubscriber) { + let xhrProgress: (e: ProgressEvent) => void; + xhrProgress = function(e: ProgressEvent) { + const { progressSubscriber } = (xhrProgress); + progressSubscriber.next(e); + }; + if (root.XDomainRequest) { + xhr.onprogress = xhrProgress; + } else { + xhr.upload.onprogress = xhrProgress; + } + (xhrProgress).progressSubscriber = progressSubscriber; + } + let xhrError: (e: any) => void; + xhrError = function(this: XMLHttpRequest, e: ErrorEvent) { + const { progressSubscriber, subscriber, request } = (xhrError); + if (progressSubscriber) { + progressSubscriber.error(e); + } + let error; + try { + error = new AjaxError('ajax error', this, request); + } catch (err) { + error = err; + } + subscriber.error(error); + }; + xhr.onerror = xhrError; + (xhrError).request = request; + (xhrError).subscriber = this; + (xhrError).progressSubscriber = progressSubscriber; + } + + function xhrReadyStateChange(this: XMLHttpRequest, e: Event) { + return; + } + xhr.onreadystatechange = xhrReadyStateChange; + (xhrReadyStateChange).subscriber = this; + (xhrReadyStateChange).progressSubscriber = progressSubscriber; + (xhrReadyStateChange).request = request; + + function xhrLoad(this: XMLHttpRequest, e: Event) { + const { subscriber, progressSubscriber, request } = (xhrLoad); + if (this.readyState === 4) { + // normalize IE9 bug (http://bugs.jquery.com/ticket/1450) + let status: number = this.status === 1223 ? 204 : this.status; + let response: any = (this.responseType === 'text' ? ( + this.response || this.responseText) : this.response); + + // fix status code when it is 0 (0 status is undocumented). + // Occurs when accessing file resources or on Android 4.1 stock browser + // while retrieving files from application cache. + if (status === 0) { + status = response ? 200 : 0; + } + + // 4xx and 5xx should error (https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) + if (status < 400) { + if (progressSubscriber) { + progressSubscriber.complete(); + } + subscriber.next(e); + subscriber.complete(); + } else { + if (progressSubscriber) { + progressSubscriber.error(e); + } + let error; + try { + error = new AjaxError('ajax error ' + status, this, request); + } catch (err) { + error = err; + } + subscriber.error(error); + } + } + } + xhr.onload = xhrLoad; + (xhrLoad).subscriber = this; + (xhrLoad).progressSubscriber = progressSubscriber; + (xhrLoad).request = request; + } + + unsubscribe() { + const { done, xhr } = this; + if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') { + xhr.abort(); + } + super.unsubscribe(); + } +} + +/** + * A normalized AJAX response. + * + * @see {@link ajax} + * + * @class AjaxResponse + */ +export class AjaxResponse { + /** @type {number} The HTTP status code */ + status: number; + + /** @type {string|ArrayBuffer|Document|object|any} The response data */ + response: any; + + /** @type {string} The raw responseText */ + responseText: string; + + /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */ + responseType: string; + + constructor(public originalEvent: Event, public xhr: XMLHttpRequest, public request: AjaxRequest) { + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + } +} + +export type AjaxErrorNames = 'AjaxError' | 'AjaxTimeoutError'; + +/** + * A normalized AJAX error. + * + * @see {@link ajax} + * + * @class AjaxError + */ +export interface AjaxError extends Error { + /** @type {XMLHttpRequest} The XHR instance associated with the error */ + xhr: XMLHttpRequest; + + /** @type {AjaxRequest} The AjaxRequest associated with the error */ + request: AjaxRequest; + + /** @type {number} The HTTP status code */ + status: number; + + /** @type {string} The responseType (e.g. 'json', 'arraybuffer', or 'xml') */ + responseType: string; + + /** @type {string|ArrayBuffer|Document|object|any} The response data */ + response: any; +} + +export interface AjaxErrorCtor { + new(message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError; +} + +const AjaxErrorImpl = (() => { + function AjaxErrorImpl(this: any, message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError { + Error.call(this); + this.message = message; + this.name = 'AjaxError'; + this.xhr = xhr; + this.request = request; + this.status = xhr.status; + this.responseType = xhr.responseType || request.responseType; + this.response = parseXhrResponse(this.responseType, xhr); + return this; + } + AjaxErrorImpl.prototype = Object.create(Error.prototype); + return AjaxErrorImpl; +})(); + +export const AjaxError: AjaxErrorCtor = AjaxErrorImpl as any; + +function parseJson(xhr: XMLHttpRequest) { + // HACK(benlesh): TypeScript shennanigans + // tslint:disable-next-line:no-any XMLHttpRequest is defined to always have 'response' inferring xhr as never for the else clause. + if ('response' in (xhr as any)) { + //IE does not support json as responseType, parse it internally + return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null'); + } else { + return JSON.parse((xhr as any).responseText || 'null'); + } +} + +function parseXhrResponse(responseType: string, xhr: XMLHttpRequest) { + switch (responseType) { + case 'json': + return parseJson(xhr); + case 'xml': + return xhr.responseXML; + case 'text': + default: + // HACK(benlesh): TypeScript shennanigans + // tslint:disable-next-line:no-any XMLHttpRequest is defined to always have 'response' inferring xhr as never for the else sub-expression. + return ('response' in (xhr as any)) ? xhr.response : xhr.responseText; + } +} + +export interface AjaxTimeoutError extends AjaxError { +} + +export interface AjaxTimeoutErrorCtor { + new(xhr: XMLHttpRequest, request: AjaxRequest): AjaxTimeoutError; +} + +function AjaxTimeoutErrorImpl(this: any, xhr: XMLHttpRequest, request: AjaxRequest) { + AjaxError.call(this, 'ajax timeout', xhr, request); + this.name = 'AjaxTimeoutError'; + return this; +} + +/** + * @see {@link ajax} + * + * @class AjaxTimeoutError + */ +export const AjaxTimeoutError: AjaxTimeoutErrorCtor = AjaxTimeoutErrorImpl as any; diff --git a/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts b/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts new file mode 100644 index 00000000..6fe7e819 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/dom/MiscJSDoc.ts @@ -0,0 +1,77 @@ +import { Subscriber } from '../../Subscriber'; +import { AjaxResponse } from './AjaxObservable'; + +/** + * @see {@link ajax} + * + * @interface + * @name AjaxRequest + * @noimport true + */ +export class AjaxRequestDoc { + /** + * @type {string} + */ + url: string = ''; + /** + * @type {number} + */ + body: any = 0; + /** + * @type {string} + */ + user: string = ''; + /** + * @type {boolean} + */ + async: boolean = false; + /** + * @type {string} + */ + method: string = ''; + /** + * @type {Object} + */ + headers: Object = null; + /** + * @type {number} + */ + timeout: number = 0; + /** + * @type {string} + */ + password: string = ''; + /** + * @type {boolean} + */ + hasContent: boolean = false; + /** + * @type {boolean} + */ + crossDomain: boolean = false; + /** + * @type {boolean} + */ + withCredentials: boolean = false; + /** + * @return {XMLHttpRequest} + */ + createXHR(): XMLHttpRequest { + return null; + } + /** + * @type {Subscriber} + */ + progressSubscriber: Subscriber = null; + /** + * @param {AjaxResponse} response + * @return {T} + */ + resultSelector(response: AjaxResponse): T { + return null; + } + /** + * @type {string} + */ + responseType: string = ''; +} diff --git a/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts b/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts new file mode 100644 index 00000000..07003822 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts @@ -0,0 +1,387 @@ +import { Subject, AnonymousSubject } from '../../Subject'; +import { Subscriber } from '../../Subscriber'; +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { Operator } from '../../Operator'; +import { ReplaySubject } from '../../ReplaySubject'; +import { Observer, NextObserver } from '../../types'; + +/** + * WebSocketSubjectConfig is a plain Object that allows us to make our + * webSocket configurable. + * + * Provides flexibility to {@link webSocket} + * + * It defines a set of properties to provide custom behavior in specific + * moments of the socket's lifecycle. When the connection opens we can + * use `openObserver`, when the connection is closed `closeObserver`, if we + * are interested in listening for data comming from server: `deserializer`, + * which allows us to customize the deserialization strategy of data before passing it + * to the socket client. By default `deserializer` is going to apply `JSON.parse` to each message comming + * from the Server. + * + * ## Example + * **deserializer**, the default for this property is `JSON.parse` but since there are just two options + * for incomming data, either be text or binarydata. We can apply a custom deserialization strategy + * or just simply skip the default behaviour. + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * //Apply any transformation of your choice. + * deserializer: ({data}) => data + * }); + * + * wsSubject.subscribe(console.log); + * + * // Let's suppose we have this on the Server: ws.send("This is a msg from the server") + * //output + * // + * // This is a msg from the server + * ``` + * + * **serializer** allows us tom apply custom serialization strategy but for the outgoing messages + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * //Apply any transformation of your choice. + * serializer: msg => JSON.stringify({channel: "webDevelopment", msg: msg}) + * }); + * + * wsSubject.subscribe(() => subject.next("msg to the server")); + * + * // Let's suppose we have this on the Server: ws.send("This is a msg from the server") + * //output + * // + * // {"channel":"webDevelopment","msg":"msg to the server"} + * ``` + * + * **closeObserver** allows us to set a custom error when an error raise up. + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * closeObserver: { + next(closeEvent) { + const customError = { code: 6666, reason: "Custom evil reason" } + console.log(`code: ${customError.code}, reason: ${customError.reason}`); + } + } + * }); + * + * //output + * // code: 6666, reason: Custom evil reason + * ``` + * + * **openObserver**, Let's say we need to make some kind of init task before sending/receiving msgs to the + * webSocket or sending notification that the connection was successful, this is when + * openObserver is usefull for. + * ```ts + * import { webSocket } from 'rxjs/webSocket'; + * + * const wsSubject = webSocket({ + * url: 'ws://localhost:8081', + * openObserver: { + * next: () => { + * console.log('connetion ok'); + * } + * }, + * }); + * + * //output + * // connetion ok` + * ``` + * */ + +export interface WebSocketSubjectConfig { + /** The url of the socket server to connect to */ + url: string; + /** The protocol to use to connect */ + protocol?: string | Array; + /** @deprecated use {@link deserializer} */ + resultSelector?: (e: MessageEvent) => T; + /** + * A serializer used to create messages from passed values before the + * messages are sent to the server. Defaults to JSON.stringify. + */ + serializer?: (value: T) => WebSocketMessage; + /** + * A deserializer used for messages arriving on the socket from the + * server. Defaults to JSON.parse. + */ + deserializer?: (e: MessageEvent) => T; + /** + * An Observer that watches when open events occur on the underlying web socket. + */ + openObserver?: NextObserver; + /** + * An Observer than watches when close events occur on the underlying webSocket + */ + closeObserver?: NextObserver; + /** + * An Observer that watches when a close is about to occur due to + * unsubscription. + */ + closingObserver?: NextObserver; + /** + * A WebSocket constructor to use. This is useful for situations like using a + * WebSocket impl in Node (WebSocket is a DOM API), or for mocking a WebSocket + * for testing purposes + */ + WebSocketCtor?: { new(url: string, protocols?: string|string[]): WebSocket }; + /** Sets the `binaryType` property of the underlying WebSocket. */ + binaryType?: 'blob' | 'arraybuffer'; +} + +const DEFAULT_WEBSOCKET_CONFIG: WebSocketSubjectConfig = { + url: '', + deserializer: (e: MessageEvent) => JSON.parse(e.data), + serializer: (value: any) => JSON.stringify(value), +}; + +const WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = + 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }'; + +export type WebSocketMessage = string | ArrayBuffer | Blob | ArrayBufferView; + +export class WebSocketSubject extends AnonymousSubject { + + private _config: WebSocketSubjectConfig; + + /** @deprecated This is an internal implementation detail, do not use. */ + _output: Subject; + + private _socket: WebSocket; + + constructor(urlConfigOrSource: string | WebSocketSubjectConfig | Observable, destination?: Observer) { + super(); + if (urlConfigOrSource instanceof Observable) { + this.destination = destination; + this.source = urlConfigOrSource as Observable; + } else { + const config = this._config = { ...DEFAULT_WEBSOCKET_CONFIG }; + this._output = new Subject(); + if (typeof urlConfigOrSource === 'string') { + config.url = urlConfigOrSource; + } else { + for (let key in urlConfigOrSource) { + if (urlConfigOrSource.hasOwnProperty(key)) { + config[key] = urlConfigOrSource[key]; + } + } + } + + if (!config.WebSocketCtor && WebSocket) { + config.WebSocketCtor = WebSocket; + } else if (!config.WebSocketCtor) { + throw new Error('no WebSocket constructor can be found'); + } + this.destination = new ReplaySubject(); + } + } + + lift(operator: Operator): WebSocketSubject { + const sock = new WebSocketSubject(this._config as WebSocketSubjectConfig, this.destination); + sock.operator = operator; + sock.source = this; + return sock; + } + + private _resetState() { + this._socket = null; + if (!this.source) { + this.destination = new ReplaySubject(); + } + this._output = new Subject(); + } + + /** + * Creates an {@link Observable}, that when subscribed to, sends a message, + * defined by the `subMsg` function, to the server over the socket to begin a + * subscription to data over that socket. Once data arrives, the + * `messageFilter` argument will be used to select the appropriate data for + * the resulting Observable. When teardown occurs, either due to + * unsubscription, completion or error, a message defined by the `unsubMsg` + * argument will be send to the server over the WebSocketSubject. + * + * @param subMsg A function to generate the subscription message to be sent to + * the server. This will still be processed by the serializer in the + * WebSocketSubject's config. (Which defaults to JSON serialization) + * @param unsubMsg A function to generate the unsubscription message to be + * sent to the server at teardown. This will still be processed by the + * serializer in the WebSocketSubject's config. + * @param messageFilter A predicate for selecting the appropriate messages + * from the server for the output stream. + */ + multiplex(subMsg: () => any, unsubMsg: () => any, messageFilter: (value: T) => boolean) { + const self = this; + return new Observable((observer: Observer) => { + try { + self.next(subMsg()); + } catch (err) { + observer.error(err); + } + + const subscription = self.subscribe(x => { + try { + if (messageFilter(x)) { + observer.next(x); + } + } catch (err) { + observer.error(err); + } + }, + err => observer.error(err), + () => observer.complete()); + + return () => { + try { + self.next(unsubMsg()); + } catch (err) { + observer.error(err); + } + subscription.unsubscribe(); + }; + }); + } + + private _connectSocket() { + const { WebSocketCtor, protocol, url, binaryType } = this._config; + const observer = this._output; + + let socket: WebSocket = null; + try { + socket = protocol ? + new WebSocketCtor(url, protocol) : + new WebSocketCtor(url); + this._socket = socket; + if (binaryType) { + this._socket.binaryType = binaryType; + } + } catch (e) { + observer.error(e); + return; + } + + const subscription = new Subscription(() => { + this._socket = null; + if (socket && socket.readyState === 1) { + socket.close(); + } + }); + + socket.onopen = (e: Event) => { + const { _socket } = this; + if (!_socket) { + socket.close(); + this._resetState(); + return; + } + const { openObserver } = this._config; + if (openObserver) { + openObserver.next(e); + } + + const queue = this.destination; + + this.destination = Subscriber.create( + (x) => { + if (socket.readyState === 1) { + try { + const { serializer } = this._config; + socket.send(serializer(x)); + } catch (e) { + this.destination.error(e); + } + } + }, + (e) => { + const { closingObserver } = this._config; + if (closingObserver) { + closingObserver.next(undefined); + } + if (e && e.code) { + socket.close(e.code, e.reason); + } else { + observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT)); + } + this._resetState(); + }, + () => { + const { closingObserver } = this._config; + if (closingObserver) { + closingObserver.next(undefined); + } + socket.close(); + this._resetState(); + } + ) as Subscriber; + + if (queue && queue instanceof ReplaySubject) { + subscription.add((>queue).subscribe(this.destination)); + } + }; + + socket.onerror = (e: Event) => { + this._resetState(); + observer.error(e); + }; + + socket.onclose = (e: CloseEvent) => { + this._resetState(); + const { closeObserver } = this._config; + if (closeObserver) { + closeObserver.next(e); + } + if (e.wasClean) { + observer.complete(); + } else { + observer.error(e); + } + }; + + socket.onmessage = (e: MessageEvent) => { + try { + const { deserializer } = this._config; + observer.next(deserializer(e)); + } catch (err) { + observer.error(err); + } + }; + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription { + const { source } = this; + if (source) { + return source.subscribe(subscriber); + } + if (!this._socket) { + this._connectSocket(); + } + this._output.subscribe(subscriber); + subscriber.add(() => { + const { _socket } = this; + if (this._output.observers.length === 0) { + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + this._resetState(); + } + }); + return subscriber; + } + + unsubscribe() { + const { _socket } = this; + if (_socket && _socket.readyState === 1) { + _socket.close(); + } + this._resetState(); + super.unsubscribe(); + } +} diff --git a/node_modules/rxjs/src/internal/observable/dom/ajax.ts b/node_modules/rxjs/src/internal/observable/dom/ajax.ts new file mode 100644 index 00000000..d0885c1d --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/dom/ajax.ts @@ -0,0 +1,82 @@ +import { AjaxObservable, AjaxCreationMethod } from './AjaxObservable'; +/** + * There is an ajax operator on the Rx object. + * + * It creates an observable for an Ajax request with either a request object with + * url, headers, etc or a string for a URL. + * + * + * ## Using ajax() to fetch the response object that is being returned from API. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { map, catchError } from 'rxjs/operators'; + * import { of } from 'rxjs'; + * + * const obs$ = ajax(`https://api.github.com/users?per_page=5`).pipe( + * map(userResponse => console.log('users: ', userResponse)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + * + * ## Using ajax.getJSON() to fetch data from API. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { map, catchError } from 'rxjs/operators'; + * import { of } from 'rxjs'; + * + * const obs$ = ajax.getJSON(`https://api.github.com/users?per_page=5`).pipe( + * map(userResponse => console.log('users: ', userResponse)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + * + * ## Using ajax() with object as argument and method POST with a two seconds delay. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { of } from 'rxjs'; + * + * const users = ajax({ + * url: 'https://httpbin.org/delay/2', + * method: 'POST', + * headers: { + * 'Content-Type': 'application/json', + * 'rxjs-custom-header': 'Rxjs' + * }, + * body: { + * rxjs: 'Hello World!' + * } + * }).pipe( + * map(response => console.log('response: ', response)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + * + * ## Using ajax() to fetch. An error object that is being returned from the request. + * ```ts + * import { ajax } from 'rxjs/ajax'; + * import { map, catchError } from 'rxjs/operators'; + * import { of } from 'rxjs'; + * + * const obs$ = ajax(`https://api.github.com/404`).pipe( + * map(userResponse => console.log('users: ', userResponse)), + * catchError(error => { + * console.log('error: ', error); + * return of(error); + * }) + * ); + * + * ``` + */ +export const ajax: AjaxCreationMethod = (() => AjaxObservable.create)(); diff --git a/node_modules/rxjs/src/internal/observable/dom/fetch.ts b/node_modules/rxjs/src/internal/observable/dom/fetch.ts new file mode 100644 index 00000000..5ff824bf --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/dom/fetch.ts @@ -0,0 +1,173 @@ +import { Observable } from '../../Observable'; +import { Subscription } from '../../Subscription'; +import { from } from '../../observable/from'; +import { ObservableInput } from '../../types'; + +export function fromFetch( + input: string | Request, + init: RequestInit & { + selector: (response: Response) => ObservableInput + } +): Observable; + +export function fromFetch( + input: string | Request, + init?: RequestInit +): Observable; + +/** + * Uses [the Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to + * make an HTTP request. + * + * **WARNING** Parts of the fetch API are still experimental. `AbortController` is + * required for this implementation to work and use cancellation appropriately. + * + * Will automatically set up an internal [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) + * in order to teardown the internal `fetch` when the subscription tears down. + * + * If a `signal` is provided via the `init` argument, it will behave like it usually does with + * `fetch`. If the provided `signal` aborts, the error that `fetch` normally rejects with + * in that scenario will be emitted as an error from the observable. + * + * ### Basic Use + * + * ```ts + * import { of } from 'rxjs'; + * import { fromFetch } from 'rxjs/fetch'; + * import { switchMap, catchError } from 'rxjs/operators'; + * + * const data$ = fromFetch('https://api.github.com/users?per_page=5').pipe( + * switchMap(response => { + * if (response.ok) { + * // OK return data + * return response.json(); + * } else { + * // Server is returning a status requiring the client to try something else. + * return of({ error: true, message: `Error ${response.status}` }); + * } + * }), + * catchError(err => { + * // Network or other error, handle appropriately + * console.error(err); + * return of({ error: true, message: err.message }) + * }) + * ); + * + * data$.subscribe({ + * next: result => console.log(result), + * complete: () => console.log('done') + * }); + * ``` + * + * ### Use with Chunked Transfer Encoding + * + * With HTTP responses that use [chunked transfer encoding](https://tools.ietf.org/html/rfc7230#section-3.3.1), + * the promise returned by `fetch` will resolve as soon as the response's headers are + * received. + * + * That means the `fromFetch` observable will emit a `Response` - and will + * then complete - before the body is received. When one of the methods on the + * `Response` - like `text()` or `json()` - is called, the returned promise will not + * resolve until the entire body has been received. Unsubscribing from any observable + * that uses the promise as an observable input will not abort the request. + * + * To facilitate aborting the retrieval of responses that use chunked transfer encoding, + * a `selector` can be specified via the `init` parameter: + * + * ```ts + * import { of } from 'rxjs'; + * import { fromFetch } from 'rxjs/fetch'; + * + * const data$ = fromFetch('https://api.github.com/users?per_page=5', { + * selector: response => response.json() + * }); + * + * data$.subscribe({ + * next: result => console.log(result), + * complete: () => console.log('done') + * }); + * ``` + * + * @param input The resource you would like to fetch. Can be a url or a request object. + * @param init A configuration object for the fetch. + * [See MDN for more details](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters) + * @returns An Observable, that when subscribed to performs an HTTP request using the native `fetch` + * function. The {@link Subscription} is tied to an `AbortController` for the the fetch. + */ +export function fromFetch( + input: string | Request, + initWithSelector: RequestInit & { + selector?: (response: Response) => ObservableInput + } = {} +): Observable { + const { selector, ...init } = initWithSelector; + return new Observable(subscriber => { + const controller = new AbortController(); + const signal = controller.signal; + let abortable = true; + let unsubscribed = false; + + const subscription = new Subscription(); + subscription.add(() => { + unsubscribed = true; + if (abortable) { + controller.abort(); + } + }); + + let perSubscriberInit: RequestInit; + if (init) { + // If a signal is provided, just have it teardown. It's a cancellation token, basically. + if (init.signal) { + if (init.signal.aborted) { + controller.abort(); + } else { + const outerSignal = init.signal; + const outerSignalHandler = () => { + if (!signal.aborted) { + controller.abort(); + } + }; + outerSignal.addEventListener('abort', outerSignalHandler); + subscription.add(() => outerSignal.removeEventListener('abort', outerSignalHandler)); + } + } + // init cannot be mutated or reassigned as it's closed over by the + // subscriber callback and is shared between subscribers. + perSubscriberInit = { ...init, signal }; + } else { + perSubscriberInit = { signal }; + } + + fetch(input, perSubscriberInit).then(response => { + if (selector) { + subscription.add(from(selector(response)).subscribe( + value => subscriber.next(value), + err => { + abortable = false; + if (!unsubscribed) { + // Only forward the error if it wasn't an abort. + subscriber.error(err); + } + }, + () => { + abortable = false; + subscriber.complete(); + } + )); + } else { + abortable = false; + subscriber.next(response); + subscriber.complete(); + } + }).catch(err => { + abortable = false; + if (!unsubscribed) { + // Only forward the error if it wasn't an abort. + subscriber.error(err); + } + }); + + return subscription; + }); +} diff --git a/node_modules/rxjs/src/internal/observable/dom/webSocket.ts b/node_modules/rxjs/src/internal/observable/dom/webSocket.ts new file mode 100644 index 00000000..e1156074 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/dom/webSocket.ts @@ -0,0 +1,156 @@ +import { WebSocketSubject, WebSocketSubjectConfig } from './WebSocketSubject'; + +/** + * Wrapper around the w3c-compatible WebSocket object provided by the browser. + * + * {@link Subject} that communicates with a server via WebSocket + * + * `webSocket` is a factory function that produces a `WebSocketSubject`, + * which can be used to make WebSocket connection with an arbitrary endpoint. + * `webSocket` accepts as an argument either a string with url of WebSocket endpoint, or an + * {@link WebSocketSubjectConfig} object for providing additional configuration, as + * well as Observers for tracking lifecycle of WebSocket connection. + * + * When `WebSocketSubject` is subscribed, it attempts to make a socket connection, + * unless there is one made already. This means that many subscribers will always listen + * on the same socket, thus saving resources. If however, two instances are made of `WebSocketSubject`, + * even if these two were provided with the same url, they will attempt to make separate + * connections. When consumer of a `WebSocketSubject` unsubscribes, socket connection is closed, + * only if there are no more subscribers still listening. If after some time a consumer starts + * subscribing again, connection is reestablished. + * + * Once connection is made, whenever a new message comes from the server, `WebSocketSubject` will emit that + * message as a value in the stream. By default, a message from the socket is parsed via `JSON.parse`. If you + * want to customize how deserialization is handled (if at all), you can provide custom `resultSelector` + * function in {@link WebSocketSubject}. When connection closes, stream will complete, provided it happened without + * any errors. If at any point (starting, maintaining or closing a connection) there is an error, + * stream will also error with whatever WebSocket API has thrown. + * + * By virtue of being a {@link Subject}, `WebSocketSubject` allows for receiving and sending messages from the server. In order + * to communicate with a connected endpoint, use `next`, `error` and `complete` methods. `next` sends a value to the server, so bear in mind + * that this value will not be serialized beforehand. Because of This, `JSON.stringify` will have to be called on a value by hand, + * before calling `next` with a result. Note also that if at the moment of nexting value + * there is no socket connection (for example no one is subscribing), those values will be buffered, and sent when connection + * is finally established. `complete` method closes socket connection. `error` does the same, + * as well as notifying the server that something went wrong via status code and string with details of what happened. + * Since status code is required in WebSocket API, `WebSocketSubject` does not allow, like regular `Subject`, + * arbitrary values being passed to the `error` method. It needs to be called with an object that has `code` + * property with status code number and optional `reason` property with string describing details + * of an error. + * + * Calling `next` does not affect subscribers of `WebSocketSubject` - they have no + * information that something was sent to the server (unless of course the server + * responds somehow to a message). On the other hand, since calling `complete` triggers + * an attempt to close socket connection. If that connection is closed without any errors, stream will + * complete, thus notifying all subscribers. And since calling `error` closes + * socket connection as well, just with a different status code for the server, if closing itself proceeds + * without errors, subscribed Observable will not error, as one might expect, but complete as usual. In both cases + * (calling `complete` or `error`), if process of closing socket connection results in some errors, *then* stream + * will error. + * + * **Multiplexing** + * + * `WebSocketSubject` has an additional operator, not found in other Subjects. It is called `multiplex` and it is + * used to simulate opening several socket connections, while in reality maintaining only one. + * For example, an application has both chat panel and real-time notifications about sport news. Since these are two distinct functions, + * it would make sense to have two separate connections for each. Perhaps there could even be two separate services with WebSocket + * endpoints, running on separate machines with only GUI combining them together. Having a socket connection + * for each functionality could become too resource expensive. It is a common pattern to have single + * WebSocket endpoint that acts as a gateway for the other services (in this case chat and sport news services). + * Even though there is a single connection in a client app, having the ability to manipulate streams as if it + * were two separate sockets is desirable. This eliminates manually registering and unregistering in a gateway for + * given service and filter out messages of interest. This is exactly what `multiplex` method is for. + * + * Method accepts three parameters. First two are functions returning subscription and unsubscription messages + * respectively. These are messages that will be sent to the server, whenever consumer of resulting Observable + * subscribes and unsubscribes. Server can use them to verify that some kind of messages should start or stop + * being forwarded to the client. In case of the above example application, after getting subscription message with proper identifier, + * gateway server can decide that it should connect to real sport news service and start forwarding messages from it. + * Note that both messages will be sent as returned by the functions, they are by default serialized using JSON.stringify, just + * as messages pushed via `next`. Also bear in mind that these messages will be sent on *every* subscription and + * unsubscription. This is potentially dangerous, because one consumer of an Observable may unsubscribe and the server + * might stop sending messages, since it got unsubscription message. This needs to be handled + * on the server or using {@link publish} on a Observable returned from 'multiplex'. + * + * Last argument to `multiplex` is a `messageFilter` function which should return a boolean. It is used to filter out messages + * sent by the server to only those that belong to simulated WebSocket stream. For example, server might mark these + * messages with some kind of string identifier on a message object and `messageFilter` would return `true` + * if there is such identifier on an object emitted by the socket. Messages which returns `false` in `messageFilter` are simply skipped, + * and are not passed down the stream. + * + * Return value of `multiplex` is an Observable with messages incoming from emulated socket connection. Note that this + * is not a `WebSocketSubject`, so calling `next` or `multiplex` again will fail. For pushing values to the + * server, use root `WebSocketSubject`. + * + * ### Examples + * #### Listening for messages from the server + * ```ts + * import { webSocket } from "rxjs/webSocket"; + * const subject = webSocket("ws://localhost:8081"); + * + * subject.subscribe( + * msg => console.log('message received: ' + msg), // Called whenever there is a message from the server. + * err => console.log(err), // Called if at any point WebSocket API signals some kind of error. + * () => console.log('complete') // Called when connection is closed (for whatever reason). + * ); + * ``` + * + * #### Pushing messages to the server + * ```ts + * import { webSocket } from "rxjs/webSocket"; + * const subject = webSocket('ws://localhost:8081'); + * + * subject.subscribe(); + * // Note that at least one consumer has to subscribe to the created subject - otherwise "nexted" values will be just buffered and not sent, + * // since no connection was established! + * + * subject.next({message: 'some message'}); + * // This will send a message to the server once a connection is made. Remember value is serialized with JSON.stringify by default! + * + * subject.complete(); // Closes the connection. + * + * subject.error({code: 4000, reason: 'I think our app just broke!'}); + * // Also closes the connection, but let's the server know that this closing is caused by some error. + * ``` + * + * #### Multiplexing WebSocket + * ```ts + * import { webSocket } from "rxjs/webSocket"; + * const subject = webSocket('ws://localhost:8081'); + * + * const observableA = subject.multiplex( + * () => ({subscribe: 'A'}), // When server gets this message, it will start sending messages for 'A'... + * () => ({unsubscribe: 'A'}), // ...and when gets this one, it will stop. + * message => message.type === 'A' // If the function returns `true` message is passed down the stream. Skipped if the function returns false. + * ); + * + * const observableB = subject.multiplex( // And the same goes for 'B'. + * () => ({subscribe: 'B'}), + * () => ({unsubscribe: 'B'}), + * message => message.type === 'B' + * ); + * + * const subA = observableA.subscribe(messageForA => console.log(messageForA)); + * // At this moment WebSocket connection is established. Server gets '{"subscribe": "A"}' message and starts sending messages for 'A', + * // which we log here. + * + * const subB = observableB.subscribe(messageForB => console.log(messageForB)); + * // Since we already have a connection, we just send '{"subscribe": "B"}' message to the server. It starts sending messages for 'B', + * // which we log here. + * + * subB.unsubscribe(); + * // Message '{"unsubscribe": "B"}' is sent to the server, which stops sending 'B' messages. + * + * subA.unsubscribe(); + * // Message '{"unsubscribe": "A"}' makes the server stop sending messages for 'A'. Since there is no more subscribers to root Subject, + * // socket connection closes. + * ``` + * + * + * @param {string|WebSocketSubjectConfig} urlConfigOrSource The WebSocket endpoint as an url or an object with + * configuration and additional Observers. + * @return {WebSocketSubject} Subject which allows to both send and receive messages via WebSocket connection. + */ +export function webSocket(urlConfigOrSource: string | WebSocketSubjectConfig): WebSocketSubject { + return new WebSocketSubject(urlConfigOrSource); +} diff --git a/node_modules/rxjs/src/internal/observable/empty.ts b/node_modules/rxjs/src/internal/observable/empty.ts new file mode 100644 index 00000000..179afe68 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/empty.ts @@ -0,0 +1,68 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; + +/** + * The same Observable instance returned by any call to {@link empty} without a + * `scheduler`. It is preferrable to use this over `empty()`. + */ +export const EMPTY = new Observable(subscriber => subscriber.complete()); + +/** + * Creates an Observable that emits no items to the Observer and immediately + * emits a complete notification. + * + * Just emits 'complete', and nothing else. + * + * + * ![](empty.png) + * + * This static operator is useful for creating a simple Observable that only + * emits the complete notification. It can be used for composing with other + * Observables, such as in a {@link mergeMap}. + * + * ## Examples + * ### Emit the number 7, then complete + * ```ts + * import { empty } from 'rxjs'; + * import { startWith } from 'rxjs/operators'; + * + * const result = empty().pipe(startWith(7)); + * result.subscribe(x => console.log(x)); + * ``` + * + * ### Map and flatten only odd numbers to the sequence 'a', 'b', 'c' + * ```ts + * import { empty, interval, of } from 'rxjs'; + * import { mergeMap } from 'rxjs/operators'; + * + * const interval$ = interval(1000); + * const result = interval$.pipe( + * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : empty()), + * ); + * result.subscribe(x => console.log(x)); + * + * // Results in the following to the console: + * // x is equal to the count on the interval eg(0,1,2,3,...) + * // x will occur every 1000ms + * // if x % 2 is equal to 1 print abc + * // if x % 2 is not equal to 1 nothing will be output + * ``` + * + * @see {@link Observable} + * @see {@link never} + * @see {@link of} + * @see {@link throwError} + * + * @param scheduler A {@link SchedulerLike} to use for scheduling + * the emission of the complete notification. + * @return An "empty" Observable: emits only the complete + * notification. + * @deprecated Deprecated in favor of using {@link EMPTY} constant, or {@link scheduled} (e.g. `scheduled([], scheduler)`) + */ +export function empty(scheduler?: SchedulerLike) { + return scheduler ? emptyScheduled(scheduler) : EMPTY; +} + +function emptyScheduled(scheduler: SchedulerLike) { + return new Observable(subscriber => scheduler.schedule(() => subscriber.complete())); +} diff --git a/node_modules/rxjs/src/internal/observable/forkJoin.ts b/node_modules/rxjs/src/internal/observable/forkJoin.ts new file mode 100644 index 00000000..400e54f8 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/forkJoin.ts @@ -0,0 +1,204 @@ +import { Observable } from '../Observable'; +import { ObservableInput, ObservedValuesFromArray, ObservedValueOf, SubscribableOrPromise } from '../types'; +import { isArray } from '../util/isArray'; +import { map } from '../operators/map'; +import { isObject } from '../util/isObject'; +import { isObservable } from '../util/isObservable'; +import { from } from './from'; + +/* tslint:disable:max-line-length */ + +// forkJoin(a$, b$, c$) +/** @deprecated Use the version that takes an array of Observables instead */ +export function forkJoin(v1: SubscribableOrPromise): Observable<[T]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export function forkJoin(v1: ObservableInput, v2: ObservableInput): Observable<[T, T2]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable<[T, T2, T3]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable<[T, T2, T3, T4]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable<[T, T2, T3, T4, T5]>; +/** @deprecated Use the version that takes an array of Observables instead */ +export function forkJoin(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable<[T, T2, T3, T4, T5, T6]>; + +// forkJoin([a$, b$, c$]); +// TODO(benlesh): Uncomment for TS 3.0 +// export function forkJoin(sources: []): Observable; +export function forkJoin(sources: [ObservableInput]): Observable<[A]>; +export function forkJoin(sources: [ObservableInput, ObservableInput]): Observable<[A, B]>; +export function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C]>; +export function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D]>; +export function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E]>; +export function forkJoin(sources: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable<[A, B, C, D, E, F]>; +export function forkJoin[]>(sources: A): Observable[]>; + +// forkJoin({}) +export function forkJoin(sourcesObject: {}): Observable; +export function forkJoin(sourcesObject: T): Observable<{ [K in keyof T]: ObservedValueOf }>; + +/** @deprecated resultSelector is deprecated, pipe to map instead */ +export function forkJoin(...args: Array|Function>): Observable; +/** @deprecated Use the version that takes an array of Observables instead */ +export function forkJoin(...sources: ObservableInput[]): Observable; +/* tslint:enable:max-line-length */ + +/** + * Accepts an `Array` of {@link ObservableInput} or a dictionary `Object` of {@link ObservableInput} and returns + * an {@link Observable} that emits either an array of values in the exact same order as the passed array, + * or a dictionary of values in the same shape as the passed dictionary. + * + * Wait for Observables to complete and then combine last values they emitted. + * + * ![](forkJoin.png) + * + * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array + * or a dictionary of input observables. If no input observables are provided, resulting stream will complete + * immediately. + * + * `forkJoin` will wait for all passed observables to complete and then it will emit an array or an object with last + * values from corresponding observables. + * + * If you pass an array of `n` observables to the operator, resulting + * array will have `n` values, where first value is the last thing emitted by the first observable, + * second value is the last thing emitted by the second observable and so on. + * + * If you pass a dictionary of observables to the operator, resulting + * objects will have the same keys as the dictionary passed, with their last values they've emitted + * located at the corresponding key. + * + * That means `forkJoin` will not emit more than once and it will complete after that. If you need to emit combined + * values not only at the end of lifecycle of passed observables, but also throughout it, try out {@link combineLatest} + * or {@link zip} instead. + * + * In order for resulting array to have the same length as the number of input observables, whenever any of + * that observables completes without emitting any value, `forkJoin` will complete at that moment as well + * and it will not emit anything either, even if it already has some last values from other observables. + * Conversely, if there is an observable that never completes, `forkJoin` will never complete as well, + * unless at any point some other observable completes without emitting value, which brings us back to + * the previous case. Overall, in order for `forkJoin` to emit a value, all observables passed as arguments + * have to emit something at least once and complete. + * + * If any input observable errors at some point, `forkJoin` will error as well and all other observables + * will be immediately unsubscribed. + * + * Optionally `forkJoin` accepts project function, that will be called with values which normally + * would land in emitted array. Whatever is returned by project function, will appear in output + * observable instead. This means that default project can be thought of as a function that takes + * all its arguments and puts them into an array. Note that project function will be called only + * when output observable is supposed to emit a result. + * + * ## Examples + * + * ### Use forkJoin with a dictionary of observable inputs + * ```ts + * import { forkJoin, of, timer } from 'rxjs'; + * + * const observable = forkJoin({ + * foo: of(1, 2, 3, 4), + * bar: Promise.resolve(8), + * baz: timer(4000), + * }); + * observable.subscribe({ + * next: value => console.log(value), + * complete: () => console.log('This is how it ends!'), + * }); + * + * // Logs: + * // { foo: 4, bar: 8, baz: 0 } after 4 seconds + * // "This is how it ends!" immediately after + * ``` + * + * ### Use forkJoin with an array of observable inputs + * ```ts + * import { forkJoin, of } from 'rxjs'; + * + * const observable = forkJoin([ + * of(1, 2, 3, 4), + * Promise.resolve(8), + * timer(4000), + * ]); + * observable.subscribe({ + * next: value => console.log(value), + * complete: () => console.log('This is how it ends!'), + * }); + * + * // Logs: + * // [4, 8, 0] after 4 seconds + * // "This is how it ends!" immediately after + * ``` + * + * @see {@link combineLatest} + * @see {@link zip} + * + * @param {...ObservableInput} sources Any number of Observables provided either as an array or as an arguments + * passed directly to the operator. + * @param {function} [project] Function that takes values emitted by input Observables and returns value + * that will appear in resulting Observable instead of default array. + * @return {Observable} Observable emitting either an array of last values emitted by passed Observables + * or value from project function. + */ +export function forkJoin( + ...sources: any[] +): Observable { + if (sources.length === 1) { + const first = sources[0]; + if (isArray(first)) { + return forkJoinInternal(first, null); + } + // TODO(benlesh): isObservable check will not be necessary when deprecated path is removed. + if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) { + const keys = Object.keys(first); + return forkJoinInternal(keys.map(key => first[key]), keys); + } + } + + // DEPRECATED PATHS BELOW HERE + if (typeof sources[sources.length - 1] === 'function') { + const resultSelector = sources.pop() as Function; + sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources; + return forkJoinInternal(sources, null).pipe( + map((args: any[]) => resultSelector(...args)) + ); + } + + return forkJoinInternal(sources, null); +} + +function forkJoinInternal(sources: ObservableInput[], keys: string[] | null): Observable { + return new Observable(subscriber => { + const len = sources.length; + if (len === 0) { + subscriber.complete(); + return; + } + const values = new Array(len); + let completed = 0; + let emitted = 0; + for (let i = 0; i < len; i++) { + const source = from(sources[i]); + let hasValue = false; + subscriber.add(source.subscribe({ + next: value => { + if (!hasValue) { + hasValue = true; + emitted++; + } + values[i] = value; + }, + error: err => subscriber.error(err), + complete: () => { + completed++; + if (completed === len || !hasValue) { + if (emitted === len) { + subscriber.next(keys ? + keys.reduce((result, key, i) => (result[key] = values[i], result), {}) : + values); + } + subscriber.complete(); + } + } + })); + } + }); +} diff --git a/node_modules/rxjs/src/internal/observable/from.ts b/node_modules/rxjs/src/internal/observable/from.ts new file mode 100644 index 00000000..697e9286 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/from.ts @@ -0,0 +1,118 @@ +import { Observable } from '../Observable'; +import { subscribeTo } from '../util/subscribeTo'; +import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; +import { scheduled } from '../scheduled/scheduled'; + +export function from>(input: O): Observable>; +/** @deprecated use {@link scheduled} instead. */ +export function from>(input: O, scheduler: SchedulerLike): Observable>; + +/** + * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object. + * + * Converts almost anything to an Observable. + * + * ![](from.png) + * + * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an + * iterable + * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated + * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be + * converted through this operator. + * + * ## Examples + * + * ### Converts an array to an Observable + * + * ```ts + * import { from } from 'rxjs'; + * + * const array = [10, 20, 30]; + * const result = from(array); + * + * result.subscribe(x => console.log(x)); + * + * // Logs: + * // 10 + * // 20 + * // 30 + * ``` + * + * --- + * + * ### Convert an infinite iterable (from a generator) to an Observable + * + * ```ts + * import { from } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * function* generateDoubles(seed) { + * let i = seed; + * while (true) { + * yield i; + * i = 2 * i; // double it + * } + * } + * + * const iterator = generateDoubles(3); + * const result = from(iterator).pipe(take(10)); + * + * result.subscribe(x => console.log(x)); + * + * // Logs: + * // 3 + * // 6 + * // 12 + * // 24 + * // 48 + * // 96 + * // 192 + * // 384 + * // 768 + * // 1536 + * ``` + * + * --- + * + * ### With async scheduler + * + * ```ts + * import { from, asyncScheduler } from 'rxjs'; + * + * console.log('start'); + * + * const array = [10, 20, 30]; + * const result = from(array, asyncScheduler); + * + * result.subscribe(x => console.log(x)); + * + * console.log('end'); + * + * // Logs: + * // start + * // end + * // 10 + * // 20 + * // 30 + * ``` + * + * @see {@link fromEvent} + * @see {@link fromEventPattern} + * + * @param {ObservableInput} A subscription object, a Promise, an Observable-like, + * an Array, an iterable, or an array-like object to be converted. + * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values. + * @return {Observable} + * @name from + * @owner Observable + */ +export function from(input: ObservableInput, scheduler?: SchedulerLike): Observable { + if (!scheduler) { + if (input instanceof Observable) { + return input; + } + return new Observable(subscribeTo(input)); + } else { + return scheduled(input, scheduler); + } +} diff --git a/node_modules/rxjs/src/internal/observable/fromArray.ts b/node_modules/rxjs/src/internal/observable/fromArray.ts new file mode 100644 index 00000000..b5953beb --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/fromArray.ts @@ -0,0 +1,12 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +import { subscribeToArray } from '../util/subscribeToArray'; +import { scheduleArray } from '../scheduled/scheduleArray'; + +export function fromArray(input: ArrayLike, scheduler?: SchedulerLike) { + if (!scheduler) { + return new Observable(subscribeToArray(input)); + } else { + return scheduleArray(input, scheduler); + } +} diff --git a/node_modules/rxjs/src/internal/observable/fromEvent.ts b/node_modules/rxjs/src/internal/observable/fromEvent.ts new file mode 100644 index 00000000..015f56cc --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/fromEvent.ts @@ -0,0 +1,245 @@ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { isFunction } from '../util/isFunction'; +import { Subscriber } from '../Subscriber'; +import { map } from '../operators/map'; + +const toString: Function = (() => Object.prototype.toString)(); + +export interface NodeStyleEventEmitter { + addListener: (eventName: string | symbol, handler: NodeEventHandler) => this; + removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this; +} + +export type NodeEventHandler = (...args: any[]) => void; + +// For APIs that implement `addListener` and `removeListener` methods that may +// not use the same arguments or return EventEmitter values +// such as React Native +export interface NodeCompatibleEventEmitter { + addListener: (eventName: string, handler: NodeEventHandler) => void | {}; + removeListener: (eventName: string, handler: NodeEventHandler) => void | {}; +} + +export interface JQueryStyleEventEmitter { + on: (eventName: string, handler: Function) => void; + off: (eventName: string, handler: Function) => void; +} + +export interface HasEventTargetAddRemove { + addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void; +} + +export type EventTargetLike = HasEventTargetAddRemove | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter; + +export type FromEventTarget = EventTargetLike | ArrayLike>; + +export interface EventListenerOptions { + capture?: boolean; + passive?: boolean; + once?: boolean; +} + +export interface AddEventListenerOptions extends EventListenerOptions { + once?: boolean; + passive?: boolean; +} + +/* tslint:disable:max-line-length */ +export function fromEvent(target: FromEventTarget, eventName: string): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function fromEvent(target: FromEventTarget, eventName: string, resultSelector: (...args: any[]) => T): Observable; +export function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable; +/* tslint:enable:max-line-length */ + +/** + * Creates an Observable that emits events of a specific type coming from the + * given event target. + * + * Creates an Observable from DOM events, or Node.js + * EventEmitter events or others. + * + * ![](fromEvent.png) + * + * `fromEvent` accepts as a first argument event target, which is an object with methods + * for registering event handler functions. As a second argument it takes string that indicates + * type of event we want to listen for. `fromEvent` supports selected types of event targets, + * which are described in detail below. If your event target does not match any of the ones listed, + * you should use {@link fromEventPattern}, which can be used on arbitrary APIs. + * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event + * handler functions have different names, but they all accept a string describing event type + * and function itself, which will be called whenever said event happens. + * + * Every time resulting Observable is subscribed, event handler function will be registered + * to event target on given event type. When that event fires, value + * passed as a first argument to registered function will be emitted by output Observable. + * When Observable is unsubscribed, function will be unregistered from event target. + * + * Note that if event target calls registered function with more than one argument, second + * and following arguments will not appear in resulting stream. In order to get access to them, + * you can pass to `fromEvent` optional project function, which will be called with all arguments + * passed to event handler. Output Observable will then emit value returned by project function, + * instead of the usual value. + * + * Remember that event targets listed below are checked via duck typing. It means that + * no matter what kind of object you have and no matter what environment you work in, + * you can safely use `fromEvent` on that object if it exposes described methods (provided + * of course they behave as was described above). So for example if Node.js library exposes + * event target which has the same method names as DOM EventTarget, `fromEvent` is still + * a good choice. + * + * If the API you use is more callback then event handler oriented (subscribed + * callback function fires only once and thus there is no need to manually + * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback} + * instead. + * + * `fromEvent` supports following types of event targets: + * + * **DOM EventTarget** + * + * This is an object with `addEventListener` and `removeEventListener` methods. + * + * In the browser, `addEventListener` accepts - apart from event type string and event + * handler function arguments - optional third parameter, which is either an object or boolean, + * both used for additional configuration how and when passed function will be called. When + * `fromEvent` is used with event target of that type, you can provide this values + * as third parameter as well. + * + * **Node.js EventEmitter** + * + * An object with `addListener` and `removeListener` methods. + * + * **JQuery-style event target** + * + * An object with `on` and `off` methods + * + * **DOM NodeList** + * + * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`. + * + * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes + * it contains and install event handler function in every of them. When returned Observable + * is unsubscribed, function will be removed from all Nodes. + * + * **DOM HtmlCollection** + * + * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is + * installed and removed in each of elements. + * + * + * ## Examples + * ### Emits clicks happening on the DOM document + * ```ts + * import { fromEvent } from 'rxjs'; + * + * const clicks = fromEvent(document, 'click'); + * clicks.subscribe(x => console.log(x)); + * + * // Results in: + * // MouseEvent object logged to console every time a click + * // occurs on the document. + * ``` + * + * ### Use addEventListener with capture option + * ```ts + * import { fromEvent } from 'rxjs'; + * + * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter + * // which will be passed to addEventListener + * const clicksInDiv = fromEvent(someDivInDocument, 'click'); + * + * clicksInDocument.subscribe(() => console.log('document')); + * clicksInDiv.subscribe(() => console.log('div')); + * + * // By default events bubble UP in DOM tree, so normally + * // when we would click on div in document + * // "div" would be logged first and then "document". + * // Since we specified optional `capture` option, document + * // will catch event when it goes DOWN DOM tree, so console + * // will log "document" and then "div". + * ``` + * + * @see {@link bindCallback} + * @see {@link bindNodeCallback} + * @see {@link fromEventPattern} + * + * @param {FromEventTarget} target The DOM EventTarget, Node.js + * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to. + * @param {string} eventName The event name of interest, being emitted by the + * `target`. + * @param {EventListenerOptions} [options] Options to pass through to addEventListener + * @return {Observable} + * @name fromEvent + */ +export function fromEvent( + target: FromEventTarget, + eventName: string, + options?: EventListenerOptions | ((...args: any[]) => T), + resultSelector?: ((...args: any[]) => T) +): Observable { + + if (isFunction(options)) { + // DEPRECATED PATH + resultSelector = options; + options = undefined; + } + if (resultSelector) { + // DEPRECATED PATH + return fromEvent(target, eventName, options).pipe( + map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)) + ); + } + + return new Observable(subscriber => { + function handler(e: T) { + if (arguments.length > 1) { + subscriber.next(Array.prototype.slice.call(arguments)); + } else { + subscriber.next(e); + } + } + setupSubscription(target, eventName, handler, subscriber, options as EventListenerOptions); + }); +} + +function setupSubscription(sourceObj: FromEventTarget, eventName: string, + handler: (...args: any[]) => void, subscriber: Subscriber, + options?: EventListenerOptions) { + let unsubscribe: () => void; + if (isEventTarget(sourceObj)) { + const source = sourceObj; + sourceObj.addEventListener(eventName, handler, options); + unsubscribe = () => source.removeEventListener(eventName, handler, options); + } else if (isJQueryStyleEventEmitter(sourceObj)) { + const source = sourceObj; + sourceObj.on(eventName, handler); + unsubscribe = () => source.off(eventName, handler); + } else if (isNodeStyleEventEmitter(sourceObj)) { + const source = sourceObj; + sourceObj.addListener(eventName, handler as NodeEventHandler); + unsubscribe = () => source.removeListener(eventName, handler as NodeEventHandler); + } else if (sourceObj && (sourceObj as any).length) { + for (let i = 0, len = (sourceObj as any).length; i < len; i++) { + setupSubscription(sourceObj[i], eventName, handler, subscriber, options); + } + } else { + throw new TypeError('Invalid event target'); + } + + subscriber.add(unsubscribe); +} + +function isNodeStyleEventEmitter(sourceObj: any): sourceObj is NodeStyleEventEmitter { + return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; +} + +function isJQueryStyleEventEmitter(sourceObj: any): sourceObj is JQueryStyleEventEmitter { + return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; +} + +function isEventTarget(sourceObj: any): sourceObj is HasEventTargetAddRemove { + return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; +} diff --git a/node_modules/rxjs/src/internal/observable/fromEventPattern.ts b/node_modules/rxjs/src/internal/observable/fromEventPattern.ts new file mode 100644 index 00000000..f83b8d42 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/fromEventPattern.ts @@ -0,0 +1,169 @@ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { isFunction } from '../util/isFunction'; +import { NodeEventHandler } from './fromEvent'; +import { map } from '../operators/map'; + +/* tslint:disable:max-line-length */ +export function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable; +/** @deprecated resultSelector no longer supported, pipe to map instead */ +export function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable; +/* tslint:enable:max-line-length */ + +/** + * Creates an Observable from an arbitrary API for registering event handlers. + * + * When that method for adding event handler was something {@link fromEvent} + * was not prepared for. + * + * ![](fromEventPattern.png) + * + * `fromEventPattern` allows you to convert into an Observable any API that supports registering handler functions + * for events. It is similar to {@link fromEvent}, but far + * more flexible. In fact, all use cases of {@link fromEvent} could be easily handled by + * `fromEventPattern` (although in slightly more verbose way). + * + * This operator accepts as a first argument an `addHandler` function, which will be injected with + * handler parameter. That handler is actually an event handler function that you now can pass + * to API expecting it. `addHandler` will be called whenever Observable + * returned by the operator is subscribed, so registering handler in API will not + * necessarily happen when `fromEventPattern` is called. + * + * After registration, every time an event that we listen to happens, + * Observable returned by `fromEventPattern` will emit value that event handler + * function was called with. Note that if event handler was called with more + * then one argument, second and following arguments will not appear in the Observable. + * + * If API you are using allows to unregister event handlers as well, you can pass to `fromEventPattern` + * another function - `removeHandler` - as a second parameter. It will be injected + * with the same handler function as before, which now you can use to unregister + * it from the API. `removeHandler` will be called when consumer of resulting Observable + * unsubscribes from it. + * + * In some APIs unregistering is actually handled differently. Method registering an event handler + * returns some kind of token, which is later used to identify which function should + * be unregistered or it itself has method that unregisters event handler. + * If that is the case with your API, make sure token returned + * by registering method is returned by `addHandler`. Then it will be passed + * as a second argument to `removeHandler`, where you will be able to use it. + * + * If you need access to all event handler parameters (not only the first one), + * or you need to transform them in any way, you can call `fromEventPattern` with optional + * third parameter - project function which will accept all arguments passed to + * event handler when it is called. Whatever is returned from project function will appear on + * resulting stream instead of usual event handlers first argument. This means + * that default project can be thought of as function that takes its first parameter + * and ignores the rest. + * + * ## Example + * ### Emits clicks happening on the DOM document + * + * ```ts + * import { fromEventPattern } from 'rxjs'; + * + * function addClickHandler(handler) { + * document.addEventListener('click', handler); + * } + * + * function removeClickHandler(handler) { + * document.removeEventListener('click', handler); + * } + * + * const clicks = fromEventPattern( + * addClickHandler, + * removeClickHandler + * ); + * clicks.subscribe(x => console.log(x)); + * + * // Whenever you click anywhere in the browser, DOM MouseEvent + * // object will be logged. + * ``` + * + * ## Example + * ### Use with API that returns cancellation token + * + * ```ts + * import { fromEventPattern } from 'rxjs'; + * + * const token = someAPI.registerEventHandler(function() {}); + * someAPI.unregisterEventHandler(token); // this APIs cancellation method accepts + * // not handler itself, but special token. + * + * const someAPIObservable = fromEventPattern( + * function(handler) { return someAPI.registerEventHandler(handler); }, // Note that we return the token here... + * function(handler, token) { someAPI.unregisterEventHandler(token); } // ...to then use it here. + * ); + * ``` + * + * ## Example + * ### Use with project function + * + * ```ts + * import { fromEventPattern } from 'rxjs'; + * + * someAPI.registerEventHandler((eventType, eventMessage) => { + * console.log(eventType, eventMessage); // Logs "EVENT_TYPE" "EVENT_MESSAGE" to console. + * }); + * + * const someAPIObservable = fromEventPattern( + * handler => someAPI.registerEventHandler(handler), + * handler => someAPI.unregisterEventHandler(handler) + * (eventType, eventMessage) => eventType + " --- " + eventMessage // without that function only "EVENT_TYPE" + * ); // would be emitted by the Observable + * + * someAPIObservable.subscribe(value => console.log(value)); + * + * // Logs: + * // "EVENT_TYPE --- EVENT_MESSAGE" + * ``` + * + * @see {@link fromEvent} + * @see {@link bindCallback} + * @see {@link bindNodeCallback} + * + * @param {function(handler: Function): any} addHandler A function that takes + * a `handler` function as argument and attaches it somehow to the actual + * source of events. + * @param {function(handler: Function, token?: any): void} [removeHandler] A function that + * takes a `handler` function as an argument and removes it from the event source. If `addHandler` + * returns some kind of token, `removeHandler` function will have it as a second parameter. + * @param {function(...args: any): T} [project] A function to + * transform results. It takes the arguments from the event handler and + * should return a single value. + * @return {Observable} Observable which, when an event happens, emits first parameter + * passed to registered event handler. Alternatively it emits whatever project function returns + * at that moment. + * @static true + * @name fromEventPattern + * @owner Observable + */ + +export function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, + removeHandler?: (handler: NodeEventHandler, signal?: any) => void, + resultSelector?: (...args: any[]) => T): Observable { + + if (resultSelector) { + // DEPRECATED PATH + return fromEventPattern(addHandler, removeHandler).pipe( + map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)) + ); + } + + return new Observable(subscriber => { + const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e); + + let retValue: any; + try { + retValue = addHandler(handler); + } catch (err) { + subscriber.error(err); + return undefined; + } + + if (!isFunction(removeHandler)) { + return undefined; + } + + return () => removeHandler(handler, retValue) ; + }); +} diff --git a/node_modules/rxjs/src/internal/observable/fromIterable.ts b/node_modules/rxjs/src/internal/observable/fromIterable.ts new file mode 100644 index 00000000..e7ffd2b2 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/fromIterable.ts @@ -0,0 +1,15 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +import { subscribeToIterable } from '../util/subscribeToIterable'; +import { scheduleIterable } from '../scheduled/scheduleIterable'; + +export function fromIterable(input: Iterable, scheduler?: SchedulerLike) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + if (!scheduler) { + return new Observable(subscribeToIterable(input)); + } else { + return scheduleIterable(input, scheduler); + } +} diff --git a/node_modules/rxjs/src/internal/observable/fromObservable.ts b/node_modules/rxjs/src/internal/observable/fromObservable.ts new file mode 100644 index 00000000..6a297b44 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/fromObservable.ts @@ -0,0 +1,12 @@ +import { Observable } from '../Observable'; +import { subscribeToObservable } from '../util/subscribeToObservable'; +import { InteropObservable, SchedulerLike } from '../types'; +import { scheduleObservable } from '../scheduled/scheduleObservable'; + +export function fromObservable(input: InteropObservable, scheduler?: SchedulerLike) { + if (!scheduler) { + return new Observable(subscribeToObservable(input)); + } else { + return scheduleObservable(input, scheduler); + } +} diff --git a/node_modules/rxjs/src/internal/observable/fromPromise.ts b/node_modules/rxjs/src/internal/observable/fromPromise.ts new file mode 100644 index 00000000..28ebef65 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/fromPromise.ts @@ -0,0 +1,12 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +import { subscribeToPromise } from '../util/subscribeToPromise'; +import { schedulePromise } from '../scheduled/schedulePromise'; + +export function fromPromise(input: PromiseLike, scheduler?: SchedulerLike) { + if (!scheduler) { + return new Observable(subscribeToPromise(input)); + } else { + return schedulePromise(input, scheduler); + } +} diff --git a/node_modules/rxjs/src/internal/observable/generate.ts b/node_modules/rxjs/src/internal/observable/generate.ts new file mode 100644 index 00000000..c160c183 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/generate.ts @@ -0,0 +1,379 @@ +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { identity } from '../util/identity'; +import { SchedulerAction, SchedulerLike } from '../types'; +import { isScheduler } from '../util/isScheduler'; + +export type ConditionFunc = (state: S) => boolean; +export type IterateFunc = (state: S) => S; +export type ResultFunc = (state: S) => T; + +interface SchedulerState { + needIterate?: boolean; + state: S; + subscriber: Subscriber; + condition?: ConditionFunc; + iterate: IterateFunc; + resultSelector: ResultFunc; +} + +export interface GenerateBaseOptions { + /** + * Initial state. + */ + initialState: S; + /** + * Condition function that accepts state and returns boolean. + * When it returns false, the generator stops. + * If not specified, a generator never stops. + */ + condition?: ConditionFunc; + /** + * Iterate function that accepts state and returns new state. + */ + iterate: IterateFunc; + /** + * SchedulerLike to use for generation process. + * By default, a generator starts immediately. + */ + scheduler?: SchedulerLike; +} + +export interface GenerateOptions extends GenerateBaseOptions { + /** + * Result selection function that accepts state and returns a value to emit. + */ + resultSelector: ResultFunc; +} + +/** + * Generates an observable sequence by running a state-driven loop + * producing the sequence's elements, using the specified scheduler + * to send out observer messages. + * + * ![](generate.png) + * + * @example Produces sequence of 0, 1, 2, ... 9, then completes. + * const res = generate(0, x => x < 10, x => x + 1, x => x); + * + * @example Using asap scheduler, produces sequence of 2, 3, 5, then completes. + * const res = generate(1, x => x < 5, x => x * 2, x => x + 1, asap); + * + * @see {@link from} + * @see {@link Observable} + * + * @param {S} initialState Initial state. + * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false). + * @param {function (state: S): S} iterate Iteration step function. + * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated) + * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately. + * @returns {Observable} The generated sequence. + */ + export function generate(initialState: S, + condition: ConditionFunc, + iterate: IterateFunc, + resultSelector: ResultFunc, + scheduler?: SchedulerLike): Observable; + +/** + * Generates an Observable by running a state-driven loop + * that emits an element on each iteration. + * + * Use it instead of nexting values in a for loop. + * + * + * + * `generate` allows you to create stream of values generated with a loop very similar to + * traditional for loop. First argument of `generate` is a beginning value. Second argument + * is a function that accepts this value and tests if some condition still holds. If it does, + * loop continues, if not, it stops. Third value is a function which takes previously defined + * value and modifies it in some way on each iteration. Note how these three parameters + * are direct equivalents of three expressions in regular for loop: first expression + * initializes some state (for example numeric index), second tests if loop can make next + * iteration (for example if index is lower than 10) and third states how defined value + * will be modified on every step (index will be incremented by one). + * + * Return value of a `generate` operator is an Observable that on each loop iteration + * emits a value. First, condition function is ran. If it returned true, Observable + * emits currently stored value (initial value at the first iteration) and then updates + * that value with iterate function. If at some point condition returned false, Observable + * completes at that moment. + * + * Optionally you can pass fourth parameter to `generate` - a result selector function which allows you + * to immediately map value that would normally be emitted by an Observable. + * + * If you find three anonymous functions in `generate` call hard to read, you can provide + * single object to the operator instead. That object has properties: `initialState`, + * `condition`, `iterate` and `resultSelector`, which should have respective values that you + * would normally pass to `generate`. `resultSelector` is still optional, but that form + * of calling `generate` allows you to omit `condition` as well. If you omit it, that means + * condition always holds, so output Observable will never complete. + * + * Both forms of `generate` can optionally accept a scheduler. In case of multi-parameter call, + * scheduler simply comes as a last argument (no matter if there is resultSelector + * function or not). In case of single-parameter call, you can provide it as a + * `scheduler` property on object passed to the operator. In both cases scheduler decides when + * next iteration of the loop will happen and therefore when next value will be emitted + * by the Observable. For example to ensure that each value is pushed to the observer + * on separate task in event loop, you could use `async` scheduler. Note that + * by default (when no scheduler is passed) values are simply emitted synchronously. + * + * + * @example Use with condition and iterate functions. + * const generated = generate(0, x => x < 3, x => x + 1); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') + * ); + * + * // Logs: + * // 0 + * // 1 + * // 2 + * // "Yo!" + * + * + * @example Use with condition, iterate and resultSelector functions. + * const generated = generate(0, x => x < 3, x => x + 1, x => x * 1000); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') + * ); + * + * // Logs: + * // 0 + * // 1000 + * // 2000 + * // "Yo!" + * + * + * @example Use with options object. + * const generated = generate({ + * initialState: 0, + * condition(value) { return value < 3; }, + * iterate(value) { return value + 1; }, + * resultSelector(value) { return value * 1000; } + * }); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') + * ); + * + * // Logs: + * // 0 + * // 1000 + * // 2000 + * // "Yo!" + * + * @example Use options object without condition function. + * const generated = generate({ + * initialState: 0, + * iterate(value) { return value + 1; }, + * resultSelector(value) { return value * 1000; } + * }); + * + * generated.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('Yo!') // This will never run. + * ); + * + * // Logs: + * // 0 + * // 1000 + * // 2000 + * // 3000 + * // ...and never stops. + * + * + * @see {@link from} + * @see {@link index/Observable.create} + * + * @param {S} initialState Initial state. + * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false). + * @param {function (state: S): S} iterate Iteration step function. + * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence. + * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately. + * @return {Observable} The generated sequence. + */ +export function generate(initialState: S, + condition: ConditionFunc, + iterate: IterateFunc, + scheduler?: SchedulerLike): Observable; + +/** + * Generates an observable sequence by running a state-driven loop + * producing the sequence's elements, using the specified scheduler + * to send out observer messages. + * The overload accepts options object that might contain initial state, iterate, + * condition and scheduler. + * + * ![](generate.png) + * + * @example Produces sequence of 0, 1, 2, ... 9, then completes. + * const res = generate({ + * initialState: 0, + * condition: x => x < 10, + * iterate: x => x + 1, + * }); + * + * @see {@link from} + * @see {@link Observable} + * + * @param {GenerateBaseOptions} options Object that must contain initialState, iterate and might contain condition and scheduler. + * @returns {Observable} The generated sequence. + */ +export function generate(options: GenerateBaseOptions): Observable; + +/** + * Generates an observable sequence by running a state-driven loop + * producing the sequence's elements, using the specified scheduler + * to send out observer messages. + * The overload accepts options object that might contain initial state, iterate, + * condition, result selector and scheduler. + * + * ![](generate.png) + * + * @example Produces sequence of 0, 1, 2, ... 9, then completes. + * const res = generate({ + * initialState: 0, + * condition: x => x < 10, + * iterate: x => x + 1, + * resultSelector: x => x, + * }); + * + * @see {@link from} + * @see {@link Observable} + * + * @param {GenerateOptions} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler. + * @returns {Observable} The generated sequence. + */ +export function generate(options: GenerateOptions): Observable; + +export function generate(initialStateOrOptions: S | GenerateOptions, + condition?: ConditionFunc, + iterate?: IterateFunc, + resultSelectorOrObservable?: (ResultFunc) | SchedulerLike, + scheduler?: SchedulerLike): Observable { + + let resultSelector: ResultFunc; + let initialState: S; + + if (arguments.length == 1) { + const options = initialStateOrOptions as GenerateOptions; + initialState = options.initialState; + condition = options.condition; + iterate = options.iterate; + resultSelector = options.resultSelector || identity as ResultFunc; + scheduler = options.scheduler; + } else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) { + initialState = initialStateOrOptions as S; + resultSelector = identity as ResultFunc; + scheduler = resultSelectorOrObservable as SchedulerLike; + } else { + initialState = initialStateOrOptions as S; + resultSelector = resultSelectorOrObservable as ResultFunc; + } + + return new Observable(subscriber => { + let state = initialState; + if (scheduler) { + return scheduler.schedule>(dispatch, 0, { + subscriber, + iterate, + condition, + resultSelector, + state + }); + } + + do { + if (condition) { + let conditionResult: boolean; + try { + conditionResult = condition(state); + } catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + let value: T; + try { + value = resultSelector(state); + } catch (err) { + subscriber.error(err); + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } catch (err) { + subscriber.error(err); + return undefined; + } + } while (true); + + return undefined; + }); +} + +function dispatch(this: SchedulerAction>, state: SchedulerState) { + const { subscriber, condition } = state; + if (subscriber.closed) { + return undefined; + } + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } catch (err) { + subscriber.error(err); + return undefined; + } + } else { + state.needIterate = true; + } + if (condition) { + let conditionResult: boolean; + try { + conditionResult = condition(state.state); + } catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + } + let value: T; + try { + value = state.resultSelector(state.state); + } catch (err) { + subscriber.error(err); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + return undefined; + } + return this.schedule(state); +} diff --git a/node_modules/rxjs/src/internal/observable/iif.ts b/node_modules/rxjs/src/internal/observable/iif.ts new file mode 100644 index 00000000..66187392 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/iif.ts @@ -0,0 +1,100 @@ +import { Observable } from '../Observable'; +import { defer } from './defer'; +import { EMPTY } from './empty'; +import { SubscribableOrPromise } from '../types'; + +/** + * Decides at subscription time which Observable will actually be subscribed. + * + * `If` statement for Observables. + * + * `iif` accepts a condition function and two Observables. When + * an Observable returned by the operator is subscribed, condition function will be called. + * Based on what boolean it returns at that moment, consumer will subscribe either to + * the first Observable (if condition was true) or to the second (if condition was false). Condition + * function may also not return anything - in that case condition will be evaluated as false and + * second Observable will be subscribed. + * + * Note that Observables for both cases (true and false) are optional. If condition points to an Observable that + * was left undefined, resulting stream will simply complete immediately. That allows you to, rather + * than controlling which Observable will be subscribed, decide at runtime if consumer should have access + * to given Observable or not. + * + * If you have more complex logic that requires decision between more than two Observables, {@link defer} + * will probably be a better choice. Actually `iif` can be easily implemented with {@link defer} + * and exists only for convenience and readability reasons. + * + * + * ## Examples + * ### Change at runtime which Observable will be subscribed + * ```ts + * import { iif, of } from 'rxjs'; + * + * let subscribeToFirst; + * const firstOrSecond = iif( + * () => subscribeToFirst, + * of('first'), + * of('second'), + * ); + * + * subscribeToFirst = true; + * firstOrSecond.subscribe(value => console.log(value)); + * + * // Logs: + * // "first" + * + * subscribeToFirst = false; + * firstOrSecond.subscribe(value => console.log(value)); + * + * // Logs: + * // "second" + * + * ``` + * + * ### Control an access to an Observable + * ```ts + * let accessGranted; + * const observableIfYouHaveAccess = iif( + * () => accessGranted, + * of('It seems you have an access...'), // Note that only one Observable is passed to the operator. + * ); + * + * accessGranted = true; + * observableIfYouHaveAccess.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('The end'), + * ); + * + * // Logs: + * // "It seems you have an access..." + * // "The end" + * + * accessGranted = false; + * observableIfYouHaveAccess.subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('The end'), + * ); + * + * // Logs: + * // "The end" + * ``` + * + * @see {@link defer} + * + * @param {function(): boolean} condition Condition which Observable should be chosen. + * @param {Observable} [trueObservable] An Observable that will be subscribed if condition is true. + * @param {Observable} [falseObservable] An Observable that will be subscribed if condition is false. + * @return {Observable} Either first or second Observable, depending on condition. + * @static true + * @name iif + * @owner Observable +*/ +export function iif( + condition: () => boolean, + trueResult: SubscribableOrPromise = EMPTY, + falseResult: SubscribableOrPromise = EMPTY +): Observable { + return defer(() => condition() ? trueResult : falseResult); +} diff --git a/node_modules/rxjs/src/internal/observable/interval.ts b/node_modules/rxjs/src/internal/observable/interval.ts new file mode 100644 index 00000000..fc9d3f9b --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/interval.ts @@ -0,0 +1,83 @@ +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +import { SchedulerAction, SchedulerLike } from '../types'; +import { isNumeric } from '../util/isNumeric'; +import { Subscriber } from '../Subscriber'; + +/** + * Creates an Observable that emits sequential numbers every specified + * interval of time, on a specified {@link SchedulerLike}. + * + * Emits incremental numbers periodically in time. + * + * + * ![](interval.png) + * + * `interval` returns an Observable that emits an infinite sequence of + * ascending integers, with a constant interval of time of your choosing + * between those emissions. The first emission is not sent immediately, but + * only after the first period has passed. By default, this operator uses the + * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any + * {@link SchedulerLike} to it. + * + * ## Example + * Emits ascending numbers, one every second (1000ms) up to the number 3 + * ```ts + * import { interval } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const numbers = interval(1000); + * + * const takeFourNumbers = numbers.pipe(take(4)); + * + * takeFourNumbers.subscribe(x => console.log('Next: ', x)); + * + * // Logs: + * // Next: 0 + * // Next: 1 + * // Next: 2 + * // Next: 3 + * ``` + * + * @see {@link timer} + * @see {@link delay} + * + * @param {number} [period=0] The interval size in milliseconds (by default) + * or the time unit determined by the scheduler's clock. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling + * the emission of values, and providing a notion of "time". + * @return {Observable} An Observable that emits a sequential number each time + * interval. + * @static true + * @name interval + * @owner Observable + */ +export function interval(period = 0, + scheduler: SchedulerLike = async): Observable { + if (!isNumeric(period) || period < 0) { + period = 0; + } + + if (!scheduler || typeof scheduler.schedule !== 'function') { + scheduler = async; + } + + return new Observable(subscriber => { + subscriber.add( + scheduler.schedule(dispatch, period, { subscriber, counter: 0, period }) + ); + return subscriber; + }); +} + +function dispatch(this: SchedulerAction, state: IntervalState) { + const { subscriber, counter, period } = state; + subscriber.next(counter); + this.schedule({ subscriber, counter: counter + 1, period }, period); +} + +interface IntervalState { + subscriber: Subscriber; + counter: number; + period: number; +} diff --git a/node_modules/rxjs/src/internal/observable/merge.ts b/node_modules/rxjs/src/internal/observable/merge.ts new file mode 100644 index 00000000..789a285c --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/merge.ts @@ -0,0 +1,140 @@ +import { Observable } from '../Observable'; +import { ObservableInput, SchedulerLike} from '../types'; +import { isScheduler } from '../util/isScheduler'; +import { mergeAll } from '../operators/mergeAll'; +import { fromArray } from './fromArray'; + +/* tslint:disable:max-line-length */ +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent: number, scheduler: SchedulerLike): Observable; + +export function merge(v1: ObservableInput): Observable; +export function merge(v1: ObservableInput, concurrent?: number): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, concurrent?: number): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, concurrent?: number): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable; +export function merge(v1: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number): Observable; +export function merge(...observables: (ObservableInput | number)[]): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable; +export function merge(...observables: (ObservableInput | number)[]): Observable; +/** @deprecated use {@link scheduled} and {@link mergeAll} (e.g. `scheduled([ob1, ob2, ob3], scheduled).pipe(mergeAll())*/ +export function merge(...observables: (ObservableInput | SchedulerLike | number)[]): Observable; +/* tslint:enable:max-line-length */ +/** + * Creates an output Observable which concurrently emits all values from every + * given input Observable. + * + * Flattens multiple Observables together by blending + * their values into one Observable. + * + * ![](merge.png) + * + * `merge` subscribes to each given input Observable (as arguments), and simply + * forwards (without doing any transformation) all the values from all the input + * Observables to the output Observable. The output Observable only completes + * once all input Observables have completed. Any error delivered by an input + * Observable will be immediately emitted on the output Observable. + * + * ## Examples + * ### Merge together two Observables: 1s interval and clicks + * ```ts + * import { merge, fromEvent, interval } from 'rxjs'; + * + * const clicks = fromEvent(document, 'click'); + * const timer = interval(1000); + * const clicksOrTimer = merge(clicks, timer); + * clicksOrTimer.subscribe(x => console.log(x)); + * + * // Results in the following: + * // timer will emit ascending values, one every second(1000ms) to console + * // clicks logs MouseEvents to console everytime the "document" is clicked + * // Since the two streams are merged you see these happening + * // as they occur. + * ``` + * + * ### Merge together 3 Observables, but only 2 run concurrently + * ```ts + * import { merge, interval } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const timer1 = interval(1000).pipe(take(10)); + * const timer2 = interval(2000).pipe(take(6)); + * const timer3 = interval(500).pipe(take(10)); + * const concurrent = 2; // the argument + * const merged = merge(timer1, timer2, timer3, concurrent); + * merged.subscribe(x => console.log(x)); + * + * // Results in the following: + * // - First timer1 and timer2 will run concurrently + * // - timer1 will emit a value every 1000ms for 10 iterations + * // - timer2 will emit a value every 2000ms for 6 iterations + * // - after timer1 hits its max iteration, timer2 will + * // continue, and timer3 will start to run concurrently with timer2 + * // - when timer2 hits its max iteration it terminates, and + * // timer3 will continue to emit a value every 500ms until it is complete + * ``` + * + * @see {@link mergeAll} + * @see {@link mergeMap} + * @see {@link mergeMapTo} + * @see {@link mergeScan} + * + * @param {...ObservableInput} observables Input Observables to merge together. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input + * Observables being subscribed to concurrently. + * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for managing + * concurrency of input Observables. + * @return {Observable} an Observable that emits items that are the result of + * every input Observable. + * @static true + * @name merge + * @owner Observable + */ +export function merge(...observables: Array | SchedulerLike | number>): Observable { + let concurrent = Number.POSITIVE_INFINITY; + let scheduler: SchedulerLike = null; + let last: any = observables[observables.length - 1]; + if (isScheduler(last)) { + scheduler = observables.pop(); + if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { + concurrent = observables.pop(); + } + } else if (typeof last === 'number') { + concurrent = observables.pop(); + } + + if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) { + return >observables[0]; + } + + return mergeAll(concurrent)(fromArray(observables, scheduler)); +} diff --git a/node_modules/rxjs/src/internal/observable/never.ts b/node_modules/rxjs/src/internal/observable/never.ts new file mode 100644 index 00000000..280ea4ed --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/never.ts @@ -0,0 +1,41 @@ +import { Observable } from '../Observable'; +import { noop } from '../util/noop'; + +/** + * An Observable that emits no items to the Observer and never completes. + * + * ![](never.png) + * + * A simple Observable that emits neither values nor errors nor the completion + * notification. It can be used for testing purposes or for composing with other + * Observables. Please note that by never emitting a complete notification, this + * Observable keeps the subscription from being disposed automatically. + * Subscriptions need to be manually disposed. + * + * ## Example + * ### Emit the number 7, then never emit anything else (not even complete) + * ```ts + * import { NEVER } from 'rxjs'; + * import { startWith } from 'rxjs/operators'; + * + * function info() { + * console.log('Will not be called'); + * } + * const result = NEVER.pipe(startWith(7)); + * result.subscribe(x => console.log(x), info, info); + * + * ``` + * + * @see {@link Observable} + * @see {@link index/EMPTY} + * @see {@link of} + * @see {@link throwError} + */ +export const NEVER = new Observable(noop); + +/** + * @deprecated Deprecated in favor of using {@link NEVER} constant. + */ +export function never () { + return NEVER; +} diff --git a/node_modules/rxjs/src/internal/observable/of.ts b/node_modules/rxjs/src/internal/observable/of.ts new file mode 100644 index 00000000..752d4a26 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/of.ts @@ -0,0 +1,110 @@ +import { SchedulerLike } from '../types'; +import { isScheduler } from '../util/isScheduler'; +import { fromArray } from './fromArray'; +import { Observable } from '../Observable'; +import { scheduleArray } from '../scheduled/scheduleArray'; + +/* tslint:disable:max-line-length */ +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, c: T3, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, c: T3, d: T4, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, c: T3, d: T4, e: T5, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, scheduler: SchedulerLike): Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, scheduler: SchedulerLike): + Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, scheduler: SchedulerLike): + Observable; +/** @deprecated use {@link scheduled} instead `scheduled([a, b, c], scheduler)` */ +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9, scheduler: SchedulerLike): + Observable; +export function of(...args: (T | SchedulerLike)[]): Observable; + +// TODO(benlesh): Update the typings for this when we can switch to TS 3.x +export function of(a: T): Observable; +export function of(a: T, b: T2): Observable; +export function of(a: T, b: T2, c: T3): Observable; +export function of(a: T, b: T2, c: T3, d: T4): Observable; +export function of(a: T, b: T2, c: T3, d: T4, e: T5): Observable; +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6): Observable; +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7): + Observable; +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8): + Observable; +export function of(a: T, b: T2, c: T3, d: T4, e: T5, f: T6, g: T7, h: T8, i: T9): + Observable; +export function of(...args: T[]): Observable; +/* tslint:enable:max-line-length */ + +/** + * Converts the arguments to an observable sequence. + * + * Each argument becomes a `next` notification. + * + * ![](of.png) + * + * Unlike {@link from}, it does not do any flattening and emits each argument in whole + * as a separate `next` notification. + * + * ## Examples + * + * Emit the values `10, 20, 30` + * + * ```ts + * import { of } from 'rxjs'; + * + * of(10, 20, 30) + * .subscribe( + * next => console.log('next:', next), + * err => console.log('error:', err), + * () => console.log('the end'), + * ); + * // result: + * // 'next: 10' + * // 'next: 20' + * // 'next: 30' + * + * ``` + * + * Emit the array `[1,2,3]` + * + * ```ts + * import { of } from 'rxjs'; + * + * of([1,2,3]) + * .subscribe( + * next => console.log('next:', next), + * err => console.log('error:', err), + * () => console.log('the end'), + * ); + * // result: + * // 'next: [1,2,3]' + * ``` + * + * @see {@link from} + * @see {@link range} + * + * @param {...T} values A comma separated list of arguments you want to be emitted + * @return {Observable} An Observable that emits the arguments + * described above and then completes. + * @method of + * @owner Observable + */ + +export function of(...args: Array): Observable { + let scheduler = args[args.length - 1] as SchedulerLike; + if (isScheduler(scheduler)) { + args.pop(); + return scheduleArray(args as T[], scheduler); + } else { + return fromArray(args as T[]); + } +} diff --git a/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts b/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts new file mode 100644 index 00000000..9f0900e4 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts @@ -0,0 +1,102 @@ +import { Observable } from '../Observable'; +import { ObservableInput } from '../types'; +import { from } from './from'; +import { isArray } from '../util/isArray'; +import { EMPTY } from './empty'; + +/* tslint:disable:max-line-length */ +export function onErrorResumeNext(v: ObservableInput): Observable; +export function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput): Observable; +export function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable; +export function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable; +export function onErrorResumeNext(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable; + +export function onErrorResumeNext(...observables: Array | ((...values: Array) => R)>): Observable; +export function onErrorResumeNext(array: ObservableInput[]): Observable; +/* tslint:enable:max-line-length */ + +/** + * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one + * that was passed. + * + * Execute series of Observables no matter what, even if it means swallowing errors. + * + * ![](onErrorResumeNext.png) + * + * `onErrorResumeNext` Will subscribe to each observable source it is provided, in order. + * If the source it's subscribed to emits an error or completes, it will move to the next source + * without error. + * + * If `onErrorResumeNext` is provided no arguments, or a single, empty array, it will return {@link index/EMPTY}. + * + * `onErrorResumeNext` is basically {@link concat}, only it will continue, even if one of its + * sources emits an error. + * + * Note that there is no way to handle any errors thrown by sources via the result of + * `onErrorResumeNext`. If you want to handle errors thrown in any given source, you can + * always use the {@link catchError} operator on them before passing them into `onErrorResumeNext`. + * + * ## Example + * Subscribe to the next Observable after map fails + * ```ts + * import { onErrorResumeNext, of } from 'rxjs'; + * import { map } from 'rxjs/operators'; + * + * onErrorResumeNext( + * of(1, 2, 3, 0).pipe( + * map(x => { + * if (x === 0) throw Error(); + * return 10 / x; + * }) + * ), + * of(1, 2, 3), + * ) + * .subscribe( + * val => console.log(val), + * err => console.log(err), // Will never be called. + * () => console.log('done'), + * ); + * + * // Logs: + * // 10 + * // 5 + * // 3.3333333333333335 + * // 1 + * // 2 + * // 3 + * // "done" + * ``` + * + * @see {@link concat} + * @see {@link catchError} + * + * @param {...ObservableInput} sources Observables (or anything that *is* observable) passed either directly or as an array. + * @return {Observable} An Observable that concatenates all sources, one after the other, + * ignoring all errors, such that any error causes it to move on to the next source. + */ +export function onErrorResumeNext(...sources: Array | + Array> | + ((...values: Array) => R)>): Observable { + + if (sources.length === 0) { + return EMPTY; + } + + const [ first, ...remainder ] = sources; + + if (sources.length === 1 && isArray(first)) { + return onErrorResumeNext(...first); + } + + return new Observable(subscriber => { + const subNext = () => subscriber.add( + onErrorResumeNext(...remainder).subscribe(subscriber) + ); + + return from(first).subscribe({ + next(value) { subscriber.next(value); }, + error: subNext, + complete: subNext, + }); + }); +} diff --git a/node_modules/rxjs/src/internal/observable/pairs.ts b/node_modules/rxjs/src/internal/observable/pairs.ts new file mode 100644 index 00000000..85bd81c5 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/pairs.ts @@ -0,0 +1,91 @@ +import { Observable } from '../Observable'; +import { SchedulerAction, SchedulerLike } from '../types'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; + +/** + * Convert an object into an Observable of `[key, value]` pairs. + * + * Turn entries of an object into a stream. + * + * + * + * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each + * emitted array has exactly two elements - the first is a key from the object + * and the second is a value corresponding to that key. Keys are extracted from + * an object via `Object.keys` function, which means that they will be only + * enumerable keys that are present on an object directly - not ones inherited + * via prototype chain. + * + * By default these arrays are emitted synchronously. To change that you can + * pass a {@link SchedulerLike} as a second argument to `pairs`. + * + * @example Converts a javascript object to an Observable + * ```ts + * import { pairs } from 'rxjs'; + * + * const obj = { + * foo: 42, + * bar: 56, + * baz: 78 + * }; + * + * pairs(obj) + * .subscribe( + * value => console.log(value), + * err => {}, + * () => console.log('the end!') + * ); + * + * // Logs: + * // ["foo", 42], + * // ["bar", 56], + * // ["baz", 78], + * // "the end!" + * ``` + * + * @param {Object} obj The object to inspect and turn into an + * Observable sequence. + * @param {Scheduler} [scheduler] An optional IScheduler to schedule + * when resulting Observable will emit values. + * @returns {(Observable>)} An observable sequence of + * [key, value] pairs from the object. + */ +export function pairs(obj: Object, scheduler?: SchedulerLike): Observable<[string, T]> { + if (!scheduler) { + return new Observable<[string, T]>(subscriber => { + const keys = Object.keys(obj); + for (let i = 0; i < keys.length && !subscriber.closed; i++) { + const key = keys[i]; + if (obj.hasOwnProperty(key)) { + subscriber.next([key, obj[key]]); + } + } + subscriber.complete(); + }); + } else { + return new Observable<[string, T]>(subscriber => { + const keys = Object.keys(obj); + const subscription = new Subscription(); + subscription.add( + scheduler.schedule<{ keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }> + (dispatch, 0, { keys, index: 0, subscriber, subscription, obj })); + return subscription; + }); + } +} + +/** @internal */ +export function dispatch(this: SchedulerAction, + state: { keys: string[], index: number, subscriber: Subscriber<[string, T]>, subscription: Subscription, obj: Object }) { + const { keys, index, subscriber, subscription, obj } = state; + if (!subscriber.closed) { + if (index < keys.length) { + const key = keys[index]; + subscriber.next([key, obj[key]]); + subscription.add(this.schedule({ keys, index: index + 1, subscriber, subscription, obj })); + } else { + subscriber.complete(); + } + } +} diff --git a/node_modules/rxjs/src/internal/observable/partition.ts b/node_modules/rxjs/src/internal/observable/partition.ts new file mode 100644 index 00000000..637172fc --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/partition.ts @@ -0,0 +1,67 @@ +import { not } from '../util/not'; +import { subscribeTo } from '../util/subscribeTo'; +import { filter } from '../operators/filter'; +import { ObservableInput } from '../types'; +import { Observable } from '../Observable'; + +/** + * Splits the source Observable into two, one with values that satisfy a + * predicate, and another with values that don't satisfy the predicate. + * + * It's like {@link filter}, but returns two Observables: + * one like the output of {@link filter}, and the other with values that did not + * pass the condition. + * + * ![](partition.png) + * + * `partition` outputs an array with two Observables that partition the values + * from the source Observable through the given `predicate` function. The first + * Observable in that array emits source values for which the predicate argument + * returns true. The second Observable emits source values for which the + * predicate returns false. The first behaves like {@link filter} and the second + * behaves like {@link filter} with the predicate negated. + * + * ## Example + * Partition a set of numbers into odds and evens observables + * ```ts + * import { of, partition } from 'rxjs'; + * + * const observableValues = of(1, 2, 3, 4, 5, 6); + * const [evens$, odds$] = partition(observableValues, (value, index) => value % 2 === 0); + * + * odds$.subscribe(x => console.log('odds', x)); + * evens$.subscribe(x => console.log('evens', x)); + * + * // Logs: + * // odds 1 + * // odds 3 + * // odds 5 + * // evens 2 + * // evens 4 + * // evens 6 + * ``` + * + * @see {@link filter} + * + * @param {function(value: T, index: number): boolean} predicate A function that + * evaluates each value emitted by the source Observable. If it returns `true`, + * the value is emitted on the first Observable in the returned array, if + * `false` the value is emitted on the second Observable in the array. The + * `index` parameter is the number `i` for the i-th source emission that has + * happened since the subscription, starting from the number `0`. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {[Observable, Observable]} An array with two Observables: one + * with values that passed the predicate, and another with values that did not + * pass the predicate. + */ +export function partition( + source: ObservableInput, + predicate: (value: T, index: number) => boolean, + thisArg?: any +): [Observable, Observable] { + return [ + filter(predicate, thisArg)(new Observable(subscribeTo(source))), + filter(not(predicate, thisArg) as any)(new Observable(subscribeTo(source))) + ] as [Observable, Observable]; +} diff --git a/node_modules/rxjs/src/internal/observable/race.ts b/node_modules/rxjs/src/internal/observable/race.ts new file mode 100644 index 00000000..06b587c2 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/race.ts @@ -0,0 +1,139 @@ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { fromArray } from './fromArray'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { TeardownLogic, ObservableInput } from '../types'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; + +// tslint:disable:max-line-length +export function race(arg: [ObservableInput]): Observable; +export function race(arg: [ObservableInput, ObservableInput]): Observable; +export function race(arg: [ObservableInput, ObservableInput, ObservableInput]): Observable; +export function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable; +export function race(arg: [ObservableInput, ObservableInput, ObservableInput, ObservableInput, ObservableInput]): Observable; +export function race(arg: ObservableInput[]): Observable; +export function race(arg: ObservableInput[]): Observable<{}>; + +export function race(a: ObservableInput): Observable; +export function race(a: ObservableInput, b: ObservableInput): Observable; +export function race(a: ObservableInput, b: ObservableInput, c: ObservableInput): Observable; +export function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput): Observable; +export function race(a: ObservableInput, b: ObservableInput, c: ObservableInput, d: ObservableInput, e: ObservableInput): Observable; +// tslint:enable:max-line-length + +export function race(observables: ObservableInput[]): Observable; +export function race(observables: ObservableInput[]): Observable<{}>; +export function race(...observables: ObservableInput[]): Observable; +export function race(...observables: ObservableInput[]): Observable<{}>; + +/** + * Returns an Observable that mirrors the first source Observable to emit an item. + * + * ## Example + * ### Subscribes to the observable that was the first to start emitting. + * + * ```ts + * import { race, interval } from 'rxjs'; + * import { mapTo } from 'rxjs/operators'; + * + * const obs1 = interval(1000).pipe(mapTo('fast one')); + * const obs2 = interval(3000).pipe(mapTo('medium one')); + * const obs3 = interval(5000).pipe(mapTo('slow one')); + * + * race(obs3, obs1, obs2) + * .subscribe( + * winner => console.log(winner) + * ); + * + * // result: + * // a series of 'fast one' + * ``` + * + * @param {...Observables} ...observables sources used to race for which Observable emits first. + * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item. + * @static true + * @name race + * @owner Observable + */ +export function race(...observables: ObservableInput[]): Observable { + // if the only argument is an array, it was most likely called with + // `race([obs1, obs2, ...])` + if (observables.length === 1) { + if (isArray(observables[0])) { + observables = observables[0] as Observable[]; + } else { + return observables[0] as Observable; + } + } + + return fromArray(observables, undefined).lift(new RaceOperator()); +} + +export class RaceOperator implements Operator { + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new RaceSubscriber(subscriber)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class RaceSubscriber extends OuterSubscriber { + private hasFirst: boolean = false; + private observables: Observable[] = []; + private subscriptions: Subscription[] = []; + + constructor(destination: Subscriber) { + super(destination); + } + + protected _next(observable: any): void { + this.observables.push(observable); + } + + protected _complete() { + const observables = this.observables; + const len = observables.length; + + if (len === 0) { + this.destination.complete!(); + } else { + for (let i = 0; i < len && !this.hasFirst; i++) { + const observable = observables[i]; + const subscription = subscribeToResult(this, observable, undefined, i)!; + + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null!; + } + } + + notifyNext(_outerValue: T, innerValue: T, + outerIndex: number): void { + if (!this.hasFirst) { + this.hasFirst = true; + + for (let i = 0; i < this.subscriptions.length; i++) { + if (i !== outerIndex) { + let subscription = this.subscriptions[i]; + + subscription.unsubscribe(); + this.remove(subscription); + } + } + + this.subscriptions = null!; + } + + this.destination.next!(innerValue); + } +} diff --git a/node_modules/rxjs/src/internal/observable/range.ts b/node_modules/rxjs/src/internal/observable/range.ts new file mode 100644 index 00000000..316d378f --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/range.ts @@ -0,0 +1,90 @@ +import { SchedulerAction, SchedulerLike } from '../types'; +import { Observable } from '../Observable'; + +/** + * Creates an Observable that emits a sequence of numbers within a specified + * range. + * + * Emits a sequence of numbers in a range. + * + * ![](range.png) + * + * `range` operator emits a range of sequential integers, in order, where you + * select the `start` of the range and its `length`. By default, uses no + * {@link SchedulerLike} and just delivers the notifications synchronously, but may use + * an optional {@link SchedulerLike} to regulate those deliveries. + * + * ## Example + * Emits the numbers 1 to 10 + * ```ts + * import { range } from 'rxjs'; + * + * const numbers = range(1, 10); + * numbers.subscribe(x => console.log(x)); + * ``` + * @see {@link timer} + * @see {@link index/interval} + * + * @param {number} [start=0] The value of the first integer in the sequence. + * @param {number} count The number of sequential integers to generate. + * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling + * the emissions of the notifications. + * @return {Observable} An Observable of numbers that emits a finite range of + * sequential integers. + * @static true + * @name range + * @owner Observable + */ +export function range(start: number = 0, + count?: number, + scheduler?: SchedulerLike): Observable { + return new Observable(subscriber => { + if (count === undefined) { + count = start; + start = 0; + } + + let index = 0; + let current = start; + + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + index, count, start, subscriber + }); + } else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(current++); + if (subscriber.closed) { + break; + } + } while (true); + } + + return undefined; + }); +} + +/** @internal */ +export function dispatch(this: SchedulerAction, state: any) { + const { start, index, count, subscriber } = state; + + if (index >= count) { + subscriber.complete(); + return; + } + + subscriber.next(start); + + if (subscriber.closed) { + return; + } + + state.index = index + 1; + state.start = start + 1; + + this.schedule(state); +} diff --git a/node_modules/rxjs/src/internal/observable/throwError.ts b/node_modules/rxjs/src/internal/observable/throwError.ts new file mode 100644 index 00000000..4beb3974 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/throwError.ts @@ -0,0 +1,84 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +import { Subscriber } from '../Subscriber'; + +/** + * Creates an Observable that emits no items to the Observer and immediately + * emits an error notification. + * + * Just emits 'error', and nothing else. + * + * + * ![](throw.png) + * + * This static operator is useful for creating a simple Observable that only + * emits the error notification. It can be used for composing with other + * Observables, such as in a {@link mergeMap}. + * + * ## Examples + * ### Emit the number 7, then emit an error + * ```ts + * import { throwError, concat, of } from 'rxjs'; + * + * const result = concat(of(7), throwError(new Error('oops!'))); + * result.subscribe(x => console.log(x), e => console.error(e)); + * + * // Logs: + * // 7 + * // Error: oops! + * ``` + * + * --- + * + * ### Map and flatten numbers to the sequence 'a', 'b', 'c', but throw an error for 2 + * ```ts + * import { throwError, interval, of } from 'rxjs'; + * import { mergeMap } from 'rxjs/operators'; + * + * interval(1000).pipe( + * mergeMap(x => x === 2 + * ? throwError('Twos are bad') + * : of('a', 'b', 'c') + * ), + * ).subscribe(x => console.log(x), e => console.error(e)); + * + * // Logs: + * // a + * // b + * // c + * // a + * // b + * // c + * // Twos are bad + * ``` + * + * @see {@link Observable} + * @see {@link empty} + * @see {@link never} + * @see {@link of} + * + * @param {any} error The particular Error to pass to the error notification. + * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling + * the emission of the error notification. + * @return {Observable} An error Observable: emits only the error notification + * using the given error argument. + * @static true + * @name throwError + * @owner Observable + */ +export function throwError(error: any, scheduler?: SchedulerLike): Observable { + if (!scheduler) { + return new Observable(subscriber => subscriber.error(error)); + } else { + return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber })); + } +} + +interface DispatchArg { + error: any; + subscriber: Subscriber; +} + +function dispatch({ error, subscriber }: DispatchArg) { + subscriber.error(error); +} diff --git a/node_modules/rxjs/src/internal/observable/timer.ts b/node_modules/rxjs/src/internal/observable/timer.ts new file mode 100644 index 00000000..a0610607 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/timer.ts @@ -0,0 +1,101 @@ +import { Observable } from '../Observable'; +import { SchedulerAction, SchedulerLike } from '../types'; +import { async } from '../scheduler/async'; +import { isNumeric } from '../util/isNumeric'; +import { isScheduler } from '../util/isScheduler'; +import { Subscriber } from '../Subscriber'; + +/** + * Creates an Observable that starts emitting after an `dueTime` and + * emits ever increasing numbers after each `period` of time thereafter. + * + * Its like {@link index/interval}, but you can specify when + * should the emissions start. + * + * ![](timer.png) + * + * `timer` returns an Observable that emits an infinite sequence of ascending + * integers, with a constant interval of time, `period` of your choosing + * between those emissions. The first emission happens after the specified + * `dueTime`. The initial delay may be a `Date`. By default, this + * operator uses the {@link asyncScheduler} {@link SchedulerLike} to provide a notion of time, but you + * may pass any {@link SchedulerLike} to it. If `period` is not specified, the output + * Observable emits only one value, `0`. Otherwise, it emits an infinite + * sequence. + * + * ## Examples + * ### Emits ascending numbers, one every second (1000ms), starting after 3 seconds + * ```ts + * import { timer } from 'rxjs'; + * + * const numbers = timer(3000, 1000); + * numbers.subscribe(x => console.log(x)); + * ``` + * + * ### Emits one number after five seconds + * ```ts + * import { timer } from 'rxjs'; + * + * const numbers = timer(5000); + * numbers.subscribe(x => console.log(x)); + * ``` + * @see {@link index/interval} + * @see {@link delay} + * + * @param {number|Date} [dueTime] The initial delay time specified as a Date object or as an integer denoting + * milliseconds to wait before emitting the first value of 0`. + * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the + * subsequent numbers. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling + * the emission of values, and providing a notion of "time". + * @return {Observable} An Observable that emits a `0` after the + * `dueTime` and ever increasing numbers after each `period` of time + * thereafter. + * @static true + * @name timer + * @owner Observable + */ +export function timer(dueTime: number | Date = 0, + periodOrScheduler?: number | SchedulerLike, + scheduler?: SchedulerLike): Observable { + let period = -1; + if (isNumeric(periodOrScheduler)) { + period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); + } else if (isScheduler(periodOrScheduler)) { + scheduler = periodOrScheduler as any; + } + + if (!isScheduler(scheduler)) { + scheduler = async; + } + + return new Observable(subscriber => { + const due = isNumeric(dueTime) + ? (dueTime as number) + : (+dueTime - scheduler.now()); + + return scheduler.schedule(dispatch, due, { + index: 0, period, subscriber + }); + }); +} + +interface TimerState { + index: number; + period: number; + subscriber: Subscriber; +} + +function dispatch(this: SchedulerAction, state: TimerState) { + const { index, period, subscriber } = state; + subscriber.next(index); + + if (subscriber.closed) { + return; + } else if (period === -1) { + return subscriber.complete(); + } + + state.index = index + 1; + this.schedule(state, period); +} diff --git a/node_modules/rxjs/src/internal/observable/using.ts b/node_modules/rxjs/src/internal/observable/using.ts new file mode 100644 index 00000000..568d7a89 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/using.ts @@ -0,0 +1,63 @@ +import { Observable } from '../Observable'; +import { Unsubscribable, ObservableInput } from '../types'; +import { from } from './from'; // from from from! LAWL +import { EMPTY } from './empty'; + +/** + * Creates an Observable that uses a resource which will be disposed at the same time as the Observable. + * + * Use it when you catch yourself cleaning up after an Observable. + * + * `using` is a factory operator, which accepts two functions. First function returns a disposable resource. + * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with + * that object and should return an Observable. That Observable can use resource object during its execution. + * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor + * resource object will be shared in any way between subscriptions. + * + * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed + * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output + * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself, + * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which + * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone + * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make + * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time. + * + * @see {@link defer} + * + * @param {function(): ISubscription} resourceFactory A function which creates any resource object + * that implements `unsubscribe` method. + * @param {function(resource: ISubscription): Observable} observableFactory A function which + * creates an Observable, that can use injected resource object. + * @return {Observable} An Observable that behaves the same as Observable returned by `observableFactory`, but + * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object. + */ +export function using(resourceFactory: () => Unsubscribable | void, + observableFactory: (resource: Unsubscribable | void) => ObservableInput | void): Observable { + return new Observable(subscriber => { + let resource: Unsubscribable | void; + + try { + resource = resourceFactory(); + } catch (err) { + subscriber.error(err); + return undefined; + } + + let result: ObservableInput | void; + try { + result = observableFactory(resource); + } catch (err) { + subscriber.error(err); + return undefined; + } + + const source = result ? from(result) : EMPTY; + const subscription = source.subscribe(subscriber); + return () => { + subscription.unsubscribe(); + if (resource) { + resource.unsubscribe(); + } + }; + }); +} diff --git a/node_modules/rxjs/src/internal/observable/zip.ts b/node_modules/rxjs/src/internal/observable/zip.ts new file mode 100644 index 00000000..1f03caa3 --- /dev/null +++ b/node_modules/rxjs/src/internal/observable/zip.ts @@ -0,0 +1,323 @@ +import { Observable } from '../Observable'; +import { fromArray } from './fromArray'; +import { isArray } from '../util/isArray'; +import { Operator } from '../Operator'; +import { ObservableInput, PartialObserver, ObservedValueOf } from '../types'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { iterator as Symbol_iterator } from '../../internal/symbol/iterator'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip, R>(v1: O1, resultSelector: (v1: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip, O2 extends ObservableInput, R>(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip, O2 extends ObservableInput, O3 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): Observable; + +export function zip, O2 extends ObservableInput>(v1: O1, v2: O2): Observable<[ObservedValueOf, ObservedValueOf]>; +export function zip, O2 extends ObservableInput, O3 extends ObservableInput>(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function zip, O2 extends ObservableInput, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; + +export function zip>(array: O[]): Observable[]>; +export function zip(array: ObservableInput[]): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip, R>(array: O[], resultSelector: (...values: ObservedValueOf[]) => R): Observable; +/** @deprecated resultSelector is no longer supported, pipe to map instead */ +export function zip(array: ObservableInput[], resultSelector: (...values: any[]) => R): Observable; + +export function zip>(...observables: O[]): Observable[]>; +export function zip, R>(...observables: Array[]) => R)>): Observable; +export function zip(...observables: Array | ((...values: Array) => R)>): Observable; +/* tslint:enable:max-line-length */ + +/** + * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each + * of its input Observables. + * + * If the last parameter is a function, this function is used to compute the created value from the input values. + * Otherwise, an array of the input values is returned. + * + * ## Example + * Combine age and name from different sources + * ```ts + * import { zip, of } from 'rxjs'; + * import { map } from 'rxjs/operators'; + * + * let age$ = of(27, 25, 29); + * let name$ = of('Foo', 'Bar', 'Beer'); + * let isDev$ = of(true, true, false); + * + * zip(age$, name$, isDev$).pipe( + * map(([age, name, isDev]) => ({ age, name, isDev })), + * ) + * .subscribe(x => console.log(x)); + * + * // outputs + * // { age: 27, name: 'Foo', isDev: true } + * // { age: 25, name: 'Bar', isDev: true } + * // { age: 29, name: 'Beer', isDev: false } + * ``` + * @param observables + * @return {Observable} + * @static true + * @name zip + * @owner Observable + */ +export function zip, R>( + ...observables: Array[]) => R)> +): Observable[]|R> { + const resultSelector = <((...ys: Array) => R)> observables[observables.length - 1]; + if (typeof resultSelector === 'function') { + observables.pop(); + } + return fromArray(observables, undefined).lift(new ZipOperator(resultSelector)); +} + +export class ZipOperator implements Operator { + + resultSelector?: (...values: Array) => R; + + constructor(resultSelector?: (...values: Array) => R) { + this.resultSelector = resultSelector; + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class ZipSubscriber extends Subscriber { + private iterators: LookAheadIterator[] = []; + private active = 0; + + constructor(destination: Subscriber, + private resultSelector?: (...values: Array) => R, + values: any = Object.create(null)) { + super(destination); + this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined; + } + + protected _next(value: any) { + const iterators = this.iterators; + if (isArray(value)) { + iterators.push(new StaticArrayIterator(value)); + } else if (typeof value[Symbol_iterator] === 'function') { + iterators.push(new StaticIterator(value[Symbol_iterator]())); + } else { + iterators.push(new ZipBufferIterator(this.destination, this, value)); + } + } + + protected _complete() { + const iterators = this.iterators; + const len = iterators.length; + + this.unsubscribe(); + + if (len === 0) { + this.destination.complete!(); + return; + } + + this.active = len; + for (let i = 0; i < len; i++) { + let iterator: ZipBufferIterator = iterators[i]; + if (iterator.stillUnsubscribed) { + const destination = this.destination as Subscription; + destination.add(iterator.subscribe()); + } else { + this.active--; // not an observable + } + } + } + + notifyInactive() { + this.active--; + if (this.active === 0) { + this.destination.complete!(); + } + } + + checkIterators() { + const iterators = this.iterators; + const len = iterators.length; + const destination = this.destination; + + // abort if not all of them have values + for (let i = 0; i < len; i++) { + let iterator = iterators[i]; + if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { + return; + } + } + + let shouldComplete = false; + const args: any[] = []; + for (let i = 0; i < len; i++) { + let iterator = iterators[i]; + let result = iterator.next(); + + // check to see if it's completed now that you've gotten + // the next value. + if (iterator.hasCompleted()) { + shouldComplete = true; + } + + if (result.done) { + destination.complete!(); + return; + } + + args.push(result.value); + } + + if (this.resultSelector) { + this._tryresultSelector(args); + } else { + destination.next!(args); + } + + if (shouldComplete) { + destination.complete!(); + } + } + + protected _tryresultSelector(args: any[]) { + let result: any; + try { + result = this.resultSelector!.apply(this, args); + } catch (err) { + this.destination.error!(err); + return; + } + this.destination.next!(result); + } +} + +interface LookAheadIterator extends Iterator { + hasValue(): boolean; + hasCompleted(): boolean; +} + +class StaticIterator implements LookAheadIterator { + private nextResult: IteratorResult; + + constructor(private iterator: Iterator) { + this.nextResult = iterator.next(); + } + + hasValue() { + return true; + } + + next(): IteratorResult { + const result = this.nextResult; + this.nextResult = this.iterator.next(); + return result; + } + + hasCompleted(): boolean { + const nextResult = this.nextResult; + return Boolean(nextResult && nextResult.done); + } +} + +class StaticArrayIterator implements LookAheadIterator { + private index = 0; + private length = 0; + + constructor(private array: T[]) { + this.length = array.length; + } + + [Symbol_iterator]() { + return this; + } + + next(value?: any): IteratorResult { + const i = this.index++; + const array = this.array; + return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + } + + hasValue() { + return this.array.length > this.index; + } + + hasCompleted() { + return this.array.length === this.index; + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class ZipBufferIterator extends SimpleOuterSubscriber implements LookAheadIterator { + stillUnsubscribed = true; + buffer: T[] = []; + isComplete = false; + + constructor(destination: PartialObserver, + private parent: ZipSubscriber, + private observable: Observable) { + super(destination); + } + + [Symbol_iterator]() { + return this; + } + + // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next + // this is legit because `next()` will never be called by a subscription in this case. + next(): IteratorResult { + const buffer = this.buffer; + if (buffer.length === 0 && this.isComplete) { + return { value: null, done: true }; + } else { + return { value: buffer.shift()!, done: false }; + } + } + + hasValue() { + return this.buffer.length > 0; + } + + hasCompleted() { + return this.buffer.length === 0 && this.isComplete; + } + + notifyComplete() { + if (this.buffer.length > 0) { + this.isComplete = true; + this.parent.notifyInactive(); + } else { + this.destination.complete!(); + } + } + + notifyNext(innerValue: any): void { + this.buffer.push(innerValue); + this.parent.checkIterators(); + } + + subscribe() { + return innerSubscribe(this.observable, new SimpleInnerSubscriber(this)); + } +} diff --git a/node_modules/rxjs/src/internal/operators/audit.ts b/node_modules/rxjs/src/internal/operators/audit.ts new file mode 100644 index 00000000..9418ff99 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/audit.ts @@ -0,0 +1,126 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Ignores source values for a duration determined by another Observable, then + * emits the most recent value from the source Observable, then repeats this + * process. + * + * It's like {@link auditTime}, but the silencing + * duration is determined by a second Observable. + * + * ![](audit.png) + * + * `audit` is similar to `throttle`, but emits the last value from the silenced + * time window, instead of the first value. `audit` emits the most recent value + * from the source Observable on the output Observable as soon as its internal + * timer becomes disabled, and ignores source values while the timer is enabled. + * Initially, the timer is disabled. As soon as the first source value arrives, + * the timer is enabled by calling the `durationSelector` function with the + * source value, which returns the "duration" Observable. When the duration + * Observable emits a value or completes, the timer is disabled, then the most + * recent source value is emitted on the output Observable, and this process + * repeats for the next source value. + * + * ## Example + * + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { audit } from 'rxjs/operators' + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(audit(ev => interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * @see {@link auditTime} + * @see {@link debounce} + * @see {@link delayWhen} + * @see {@link sample} + * @see {@link throttle} + * + * @param {function(value: T): SubscribableOrPromise} durationSelector A function + * that receives a value from the source Observable, for computing the silencing + * duration, returned as an Observable or a Promise. + * @return {Observable} An Observable that performs rate-limiting of + * emissions from the source Observable. + * @method audit + * @owner Observable + */ +export function audit(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction { + return function auditOperatorFunction(source: Observable) { + return source.lift(new AuditOperator(durationSelector)); + }; +} + +class AuditOperator implements Operator { + constructor(private durationSelector: (value: T) => SubscribableOrPromise) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class AuditSubscriber extends SimpleOuterSubscriber { + + private value?: T; + private hasValue: boolean = false; + private throttled?: Subscription; + + constructor(destination: Subscriber, + private durationSelector: (value: T) => SubscribableOrPromise) { + super(destination); + } + + protected _next(value: T): void { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + let duration; + try { + const { durationSelector } = this; + duration = durationSelector(value); + } catch (err) { + return this.destination.error!(err); + } + const innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (!innerSubscription || innerSubscription.closed) { + this.clearThrottle(); + } else { + this.add(this.throttled = innerSubscription); + } + } + } + + clearThrottle() { + const { value, hasValue, throttled } = this; + if (throttled) { + this.remove(throttled); + this.throttled = undefined; + throttled.unsubscribe(); + } + if (hasValue) { + this.value = undefined; + this.hasValue = false; + this.destination.next!(value); + } + } + + notifyNext(): void { + this.clearThrottle(); + } + + notifyComplete(): void { + this.clearThrottle(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/auditTime.ts b/node_modules/rxjs/src/internal/operators/auditTime.ts new file mode 100644 index 00000000..50facdc9 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/auditTime.ts @@ -0,0 +1,57 @@ +import { async } from '../scheduler/async'; +import { audit } from './audit'; +import { timer } from '../observable/timer'; +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; + +/** + * Ignores source values for `duration` milliseconds, then emits the most recent + * value from the source Observable, then repeats this process. + * + * When it sees a source value, it ignores that plus + * the next ones for `duration` milliseconds, and then it emits the most recent + * value from the source. + * + * ![](auditTime.png) + * + * `auditTime` is similar to `throttleTime`, but emits the last value from the + * silenced time window, instead of the first value. `auditTime` emits the most + * recent value from the source Observable on the output Observable as soon as + * its internal timer becomes disabled, and ignores source values while the + * timer is enabled. Initially, the timer is disabled. As soon as the first + * source value arrives, the timer is enabled. After `duration` milliseconds (or + * the time unit determined internally by the optional `scheduler`) has passed, + * the timer is disabled, then the most recent source value is emitted on the + * output Observable, and this process repeats for the next source value. + * Optionally takes a {@link SchedulerLike} for managing timers. + * + * ## Example + * + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { auditTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(auditTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounceTime} + * @see {@link delay} + * @see {@link sampleTime} + * @see {@link throttleTime} + * + * @param {number} duration Time to wait before emitting the most recent source + * value, measured in milliseconds or the time unit determined internally + * by the optional `scheduler`. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the rate-limiting behavior. + * @return {Observable} An Observable that performs rate-limiting of + * emissions from the source Observable. + * @method auditTime + * @owner Observable + */ +export function auditTime(duration: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction { + return audit(() => timer(duration, scheduler)); +} diff --git a/node_modules/rxjs/src/internal/operators/buffer.ts b/node_modules/rxjs/src/internal/operators/buffer.ts new file mode 100644 index 00000000..d3bb274e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/buffer.ts @@ -0,0 +1,85 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Buffers the source Observable values until `closingNotifier` emits. + * + * Collects values from the past as an array, and emits + * that array only when another Observable emits. + * + * ![](buffer.png) + * + * Buffers the incoming Observable values until the given `closingNotifier` + * Observable emits a value, at which point it emits the buffer on the output + * Observable and starts a new buffer internally, awaiting the next time + * `closingNotifier` emits. + * + * ## Example + * + * On every click, emit array of most recent interval events + * + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { buffer } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const intervalEvents = interval(1000); + * const buffered = intervalEvents.pipe(buffer(clicks)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * @see {@link bufferCount} + * @see {@link bufferTime} + * @see {@link bufferToggle} + * @see {@link bufferWhen} + * @see {@link window} + * + * @param {Observable} closingNotifier An Observable that signals the + * buffer to be emitted on the output Observable. + * @return {Observable} An Observable of buffers, which are arrays of + * values. + * @method buffer + * @owner Observable + */ +export function buffer(closingNotifier: Observable): OperatorFunction { + return function bufferOperatorFunction(source: Observable) { + return source.lift(new BufferOperator(closingNotifier)); + }; +} + +class BufferOperator implements Operator { + + constructor(private closingNotifier: Observable) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferSubscriber extends SimpleOuterSubscriber { + private buffer: T[] = []; + + constructor(destination: Subscriber, closingNotifier: Observable) { + super(destination); + this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this))); + } + + protected _next(value: T) { + this.buffer.push(value); + } + + notifyNext(): void { + const buffer = this.buffer; + this.buffer = []; + this.destination.next!(buffer); + } +} diff --git a/node_modules/rxjs/src/internal/operators/bufferCount.ts b/node_modules/rxjs/src/internal/operators/bufferCount.ts new file mode 100644 index 00000000..ea01b6a6 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/bufferCount.ts @@ -0,0 +1,158 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OperatorFunction, TeardownLogic } from '../types'; + +/** + * Buffers the source Observable values until the size hits the maximum + * `bufferSize` given. + * + * Collects values from the past as an array, and emits + * that array only when its size reaches `bufferSize`. + * + * ![](bufferCount.png) + * + * Buffers a number of values from the source Observable by `bufferSize` then + * emits the buffer and clears it, and starts a new buffer each + * `startBufferEvery` values. If `startBufferEvery` is not provided or is + * `null`, then new buffers are started immediately at the start of the source + * and when each buffer closes and is emitted. + * + * ## Examples + * + * Emit the last two click events as an array + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { bufferCount } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferCount(2)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * On every click, emit the last two click events as an array + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { bufferCount } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferCount(2, 1)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * @see {@link buffer} + * @see {@link bufferTime} + * @see {@link bufferToggle} + * @see {@link bufferWhen} + * @see {@link pairwise} + * @see {@link windowCount} + * + * @param {number} bufferSize The maximum size of the buffer emitted. + * @param {number} [startBufferEvery] Interval at which to start a new buffer. + * For example if `startBufferEvery` is `2`, then a new buffer will be started + * on every other value from the source. A new buffer is started at the + * beginning of the source by default. + * @return {Observable} An Observable of arrays of buffered values. + * @method bufferCount + * @owner Observable + */ +export function bufferCount(bufferSize: number, startBufferEvery: number = null): OperatorFunction { + return function bufferCountOperatorFunction(source: Observable) { + return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); + }; +} + +class BufferCountOperator implements Operator { + private subscriberClass: any; + + constructor(private bufferSize: number, private startBufferEvery: number) { + if (!startBufferEvery || bufferSize === startBufferEvery) { + this.subscriberClass = BufferCountSubscriber; + } else { + this.subscriberClass = BufferSkipCountSubscriber; + } + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferCountSubscriber extends Subscriber { + private buffer: T[] = []; + + constructor(destination: Subscriber, private bufferSize: number) { + super(destination); + } + + protected _next(value: T): void { + const buffer = this.buffer; + + buffer.push(value); + + if (buffer.length == this.bufferSize) { + this.destination.next(buffer); + this.buffer = []; + } + } + + protected _complete(): void { + const buffer = this.buffer; + if (buffer.length > 0) { + this.destination.next(buffer); + } + super._complete(); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferSkipCountSubscriber extends Subscriber { + private buffers: Array = []; + private count: number = 0; + + constructor(destination: Subscriber, private bufferSize: number, private startBufferEvery: number) { + super(destination); + } + + protected _next(value: T): void { + const { bufferSize, startBufferEvery, buffers, count } = this; + + this.count++; + if (count % startBufferEvery === 0) { + buffers.push([]); + } + + for (let i = buffers.length; i--; ) { + const buffer = buffers[i]; + buffer.push(value); + if (buffer.length === bufferSize) { + buffers.splice(i, 1); + this.destination.next(buffer); + } + } + } + + protected _complete(): void { + const { buffers, destination } = this; + + while (buffers.length > 0) { + let buffer = buffers.shift(); + if (buffer.length > 0) { + destination.next(buffer); + } + } + super._complete(); + } + +} diff --git a/node_modules/rxjs/src/internal/operators/bufferTime.ts b/node_modules/rxjs/src/internal/operators/bufferTime.ts new file mode 100644 index 00000000..6edc64bd --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/bufferTime.ts @@ -0,0 +1,250 @@ +import { Operator } from '../Operator'; +import { async } from '../scheduler/async'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { isScheduler } from '../util/isScheduler'; +import { OperatorFunction, SchedulerAction, SchedulerLike } from '../types'; + +/* tslint:disable:max-line-length */ +export function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction; +export function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction; +export function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Buffers the source Observable values for a specific time period. + * + * Collects values from the past as an array, and emits + * those arrays periodically in time. + * + * ![](bufferTime.png) + * + * Buffers values from the source for a specific time duration `bufferTimeSpan`. + * Unless the optional argument `bufferCreationInterval` is given, it emits and + * resets the buffer every `bufferTimeSpan` milliseconds. If + * `bufferCreationInterval` is given, this operator opens the buffer every + * `bufferCreationInterval` milliseconds and closes (emits and resets) the + * buffer every `bufferTimeSpan` milliseconds. When the optional argument + * `maxBufferSize` is specified, the buffer will be closed either after + * `bufferTimeSpan` milliseconds or when it contains `maxBufferSize` elements. + * + * ## Examples + * + * Every second, emit an array of the recent click events + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { bufferTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferTime(1000)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * Every 5 seconds, emit the click events from the next 2 seconds + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { bufferTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferTime(2000, 5000)); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * @see {@link buffer} + * @see {@link bufferCount} + * @see {@link bufferToggle} + * @see {@link bufferWhen} + * @see {@link windowTime} + * + * @param {number} bufferTimeSpan The amount of time to fill each buffer array. + * @param {number} [bufferCreationInterval] The interval at which to start new + * buffers. + * @param {number} [maxBufferSize] The maximum buffer size. + * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the + * intervals that determine buffer boundaries. + * @return {Observable} An observable of arrays of buffered values. + * @method bufferTime + * @owner Observable + */ +export function bufferTime(bufferTimeSpan: number): OperatorFunction { + let length: number = arguments.length; + + let scheduler: SchedulerLike = async; + if (isScheduler(arguments[arguments.length - 1])) { + scheduler = arguments[arguments.length - 1]; + length--; + } + + let bufferCreationInterval: number = null; + if (length >= 2) { + bufferCreationInterval = arguments[1]; + } + + let maxBufferSize: number = Number.POSITIVE_INFINITY; + if (length >= 3) { + maxBufferSize = arguments[2]; + } + + return function bufferTimeOperatorFunction(source: Observable) { + return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); + }; +} + +class BufferTimeOperator implements Operator { + constructor(private bufferTimeSpan: number, + private bufferCreationInterval: number, + private maxBufferSize: number, + private scheduler: SchedulerLike) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new BufferTimeSubscriber( + subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler + )); + } +} + +class Context { + buffer: T[] = []; + closeAction: Subscription; +} + +interface DispatchCreateArg { + bufferTimeSpan: number; + bufferCreationInterval: number; + subscriber: BufferTimeSubscriber; + scheduler: SchedulerLike; +} + +interface DispatchCloseArg { + subscriber: BufferTimeSubscriber; + context: Context; +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferTimeSubscriber extends Subscriber { + private contexts: Array> = []; + private timespanOnly: boolean; + + constructor(destination: Subscriber, + private bufferTimeSpan: number, + private bufferCreationInterval: number, + private maxBufferSize: number, + private scheduler: SchedulerLike) { + super(destination); + const context = this.openContext(); + this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; + if (this.timespanOnly) { + const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan }; + this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } else { + const closeState = { subscriber: this, context }; + const creationState: DispatchCreateArg = { bufferTimeSpan, bufferCreationInterval, subscriber: this, scheduler }; + this.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, closeState)); + this.add(scheduler.schedule>(dispatchBufferCreation, bufferCreationInterval, creationState)); + } + } + + protected _next(value: T) { + const contexts = this.contexts; + const len = contexts.length; + let filledBufferContext: Context; + for (let i = 0; i < len; i++) { + const context = contexts[i]; + const buffer = context.buffer; + buffer.push(value); + if (buffer.length == this.maxBufferSize) { + filledBufferContext = context; + } + } + + if (filledBufferContext) { + this.onBufferFull(filledBufferContext); + } + } + + protected _error(err: any) { + this.contexts.length = 0; + super._error(err); + } + + protected _complete() { + const { contexts, destination } = this; + while (contexts.length > 0) { + const context = contexts.shift(); + destination.next(context.buffer); + } + super._complete(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + this.contexts = null; + } + + protected onBufferFull(context: Context) { + this.closeContext(context); + const closeAction = context.closeAction; + closeAction.unsubscribe(); + this.remove(closeAction); + + if (!this.closed && this.timespanOnly) { + context = this.openContext(); + const bufferTimeSpan = this.bufferTimeSpan; + const timeSpanOnlyState = { subscriber: this, context, bufferTimeSpan }; + this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + } + + openContext(): Context { + const context: Context = new Context(); + this.contexts.push(context); + return context; + } + + closeContext(context: Context) { + this.destination.next(context.buffer); + const contexts = this.contexts; + + const spliceIndex = contexts ? contexts.indexOf(context) : -1; + if (spliceIndex >= 0) { + contexts.splice(contexts.indexOf(context), 1); + } + } +} + +function dispatchBufferTimeSpanOnly(this: SchedulerAction, state: any) { + const subscriber: BufferTimeSubscriber = state.subscriber; + + const prevContext = state.context; + if (prevContext) { + subscriber.closeContext(prevContext); + } + + if (!subscriber.closed) { + state.context = subscriber.openContext(); + state.context.closeAction = this.schedule(state, state.bufferTimeSpan); + } +} + +function dispatchBufferCreation(this: SchedulerAction>, state: DispatchCreateArg) { + const { bufferCreationInterval, bufferTimeSpan, subscriber, scheduler } = state; + const context = subscriber.openContext(); + const action = >>this; + if (!subscriber.closed) { + subscriber.add(context.closeAction = scheduler.schedule>(dispatchBufferClose, bufferTimeSpan, { subscriber, context })); + action.schedule(state, bufferCreationInterval); + } +} + +function dispatchBufferClose(arg: DispatchCloseArg) { + const { subscriber, context } = arg; + subscriber.closeContext(context); +} diff --git a/node_modules/rxjs/src/internal/operators/bufferToggle.ts b/node_modules/rxjs/src/internal/operators/bufferToggle.ts new file mode 100644 index 00000000..19c5c894 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/bufferToggle.ts @@ -0,0 +1,180 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { OperatorFunction, SubscribableOrPromise } from '../types'; + +/** + * Buffers the source Observable values starting from an emission from + * `openings` and ending when the output of `closingSelector` emits. + * + * Collects values from the past as an array. Starts + * collecting only when `opening` emits, and calls the `closingSelector` + * function to get an Observable that tells when to close the buffer. + * + * ![](bufferToggle.png) + * + * Buffers values from the source by opening the buffer via signals from an + * Observable provided to `openings`, and closing and sending the buffers when + * a Subscribable or Promise returned by the `closingSelector` function emits. + * + * ## Example + * + * Every other second, emit the click events from the next 500ms + * + * ```ts + * import { fromEvent, interval, EMPTY } from 'rxjs'; + * import { bufferToggle } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const openings = interval(1000); + * const buffered = clicks.pipe(bufferToggle(openings, i => + * i % 2 ? interval(500) : EMPTY + * )); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * @see {@link buffer} + * @see {@link bufferCount} + * @see {@link bufferTime} + * @see {@link bufferWhen} + * @see {@link windowToggle} + * + * @param {SubscribableOrPromise} openings A Subscribable or Promise of notifications to start new + * buffers. + * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes + * the value emitted by the `openings` observable and returns a Subscribable or Promise, + * which, when it emits, signals that the associated buffer should be emitted + * and cleared. + * @return {Observable} An observable of arrays of buffered values. + * @method bufferToggle + * @owner Observable + */ +export function bufferToggle( + openings: SubscribableOrPromise, + closingSelector: (value: O) => SubscribableOrPromise +): OperatorFunction { + return function bufferToggleOperatorFunction(source: Observable) { + return source.lift(new BufferToggleOperator(openings, closingSelector)); + }; +} + +class BufferToggleOperator implements Operator { + + constructor(private openings: SubscribableOrPromise, + private closingSelector: (value: O) => SubscribableOrPromise) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); + } +} + +interface BufferContext { + buffer: T[]; + subscription: Subscription; +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferToggleSubscriber extends OuterSubscriber { + private contexts: Array> = []; + + constructor(destination: Subscriber, + openings: SubscribableOrPromise, + private closingSelector: (value: O) => SubscribableOrPromise | void) { + super(destination); + this.add(subscribeToResult(this, openings)); + } + + protected _next(value: T): void { + const contexts = this.contexts; + const len = contexts.length; + for (let i = 0; i < len; i++) { + contexts[i].buffer.push(value); + } + } + + protected _error(err: any): void { + const contexts = this.contexts; + while (contexts.length > 0) { + const context = contexts.shift()!; + context.subscription.unsubscribe(); + context.buffer = null!; + context.subscription = null!; + } + this.contexts = null!; + super._error(err); + } + + protected _complete(): void { + const contexts = this.contexts; + while (contexts.length > 0) { + const context = contexts.shift()!; + this.destination.next!(context.buffer); + context.subscription.unsubscribe(); + context.buffer = null!; + context.subscription = null!; + } + this.contexts = null!; + super._complete(); + } + + notifyNext(outerValue: any, innerValue: O): void { + outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); + } + + notifyComplete(innerSub: InnerSubscriber): void { + this.closeBuffer(( innerSub).context); + } + + private openBuffer(value: O): void { + try { + const closingSelector = this.closingSelector; + const closingNotifier = closingSelector.call(this, value); + if (closingNotifier) { + this.trySubscribe(closingNotifier); + } + } catch (err) { + this._error(err); + } + } + + private closeBuffer(context: BufferContext): void { + const contexts = this.contexts; + + if (contexts && context) { + const { buffer, subscription } = context; + this.destination.next!(buffer); + contexts.splice(contexts.indexOf(context), 1); + this.remove(subscription); + subscription.unsubscribe(); + } + } + + private trySubscribe(closingNotifier: any): void { + const contexts = this.contexts; + + const buffer: Array = []; + const subscription = new Subscription(); + const context = { buffer, subscription }; + contexts.push(context); + + const innerSubscription = subscribeToResult(this, closingNotifier, context as any); + + if (!innerSubscription || innerSubscription.closed) { + this.closeBuffer(context); + } else { + (innerSubscription as any).context = context; + + this.add(innerSubscription); + subscription.add(innerSubscription); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/bufferWhen.ts b/node_modules/rxjs/src/internal/operators/bufferWhen.ts new file mode 100644 index 00000000..3ea01692 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/bufferWhen.ts @@ -0,0 +1,140 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { OperatorFunction } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Buffers the source Observable values, using a factory function of closing + * Observables to determine when to close, emit, and reset the buffer. + * + * Collects values from the past as an array. When it + * starts collecting values, it calls a function that returns an Observable that + * tells when to close the buffer and restart collecting. + * + * ![](bufferWhen.png) + * + * Opens a buffer immediately, then closes the buffer when the observable + * returned by calling `closingSelector` function emits a value. When it closes + * the buffer, it immediately opens a new buffer and repeats the process. + * + * ## Example + * + * Emit an array of the last clicks every [1-5] random seconds + * + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { bufferWhen } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const buffered = clicks.pipe(bufferWhen(() => + * interval(1000 + Math.random() * 4000) + * )); + * buffered.subscribe(x => console.log(x)); + * ``` + * + * + * @see {@link buffer} + * @see {@link bufferCount} + * @see {@link bufferTime} + * @see {@link bufferToggle} + * @see {@link windowWhen} + * + * @param {function(): Observable} closingSelector A function that takes no + * arguments and returns an Observable that signals buffer closure. + * @return {Observable} An observable of arrays of buffered values. + * @method bufferWhen + * @owner Observable + */ +export function bufferWhen(closingSelector: () => Observable): OperatorFunction { + return function (source: Observable) { + return source.lift(new BufferWhenOperator(closingSelector)); + }; +} + +class BufferWhenOperator implements Operator { + + constructor(private closingSelector: () => Observable) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class BufferWhenSubscriber extends SimpleOuterSubscriber { + private buffer?: T[]; + private subscribing: boolean = false; + private closingSubscription?: Subscription; + + constructor(destination: Subscriber, private closingSelector: () => Observable) { + super(destination); + this.openBuffer(); + } + + protected _next(value: T) { + this.buffer!.push(value); + } + + protected _complete() { + const buffer = this.buffer; + if (buffer) { + this.destination.next!(buffer); + } + super._complete(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + this.buffer = undefined; + this.subscribing = false; + } + + notifyNext(): void { + this.openBuffer(); + } + + notifyComplete(): void { + if (this.subscribing) { + this.complete(); + } else { + this.openBuffer(); + } + } + + openBuffer() { + let { closingSubscription } = this; + + if (closingSubscription) { + this.remove(closingSubscription); + closingSubscription.unsubscribe(); + } + + const buffer = this.buffer; + if (this.buffer) { + this.destination.next!(buffer); + } + + this.buffer = []; + + let closingNotifier; + try { + const { closingSelector } = this; + closingNotifier = closingSelector(); + } catch (err) { + return this.error(err); + } + closingSubscription = new Subscription(); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this))); + this.subscribing = false; + } +} diff --git a/node_modules/rxjs/src/internal/operators/catchError.ts b/node_modules/rxjs/src/internal/operators/catchError.ts new file mode 100644 index 00000000..af36ed7f --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/catchError.ts @@ -0,0 +1,147 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; + +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +export function catchError>(selector: (err: any, caught: Observable) => O): OperatorFunction>; +/* tslint:enable:max-line-length */ + +/** + * Catches errors on the observable to be handled by returning a new observable or throwing an error. + * + * ![](catch.png) + * + * ## Examples + * Continues with a different Observable when there's an error + * + * ```ts + * import { of } from 'rxjs'; + * import { map, catchError } from 'rxjs/operators'; + * + * of(1, 2, 3, 4, 5).pipe( + * map(n => { + * if (n === 4) { + * throw 'four!'; + * } + * return n; + * }), + * catchError(err => of('I', 'II', 'III', 'IV', 'V')), + * ) + * .subscribe(x => console.log(x)); + * // 1, 2, 3, I, II, III, IV, V + * ``` + * + * Retries the caught source Observable again in case of error, similar to retry() operator + * + * ```ts + * import { of } from 'rxjs'; + * import { map, catchError, take } from 'rxjs/operators'; + * + * of(1, 2, 3, 4, 5).pipe( + * map(n => { + * if (n === 4) { + * throw 'four!'; + * } + * return n; + * }), + * catchError((err, caught) => caught), + * take(30), + * ) + * .subscribe(x => console.log(x)); + * // 1, 2, 3, 1, 2, 3, ... + * ``` + * + * Throws a new error when the source Observable throws an error + * + * ```ts + * import { of } from 'rxjs'; + * import { map, catchError } from 'rxjs/operators'; + * + * of(1, 2, 3, 4, 5).pipe( + * map(n => { + * if (n === 4) { + * throw 'four!'; + * } + * return n; + * }), + * catchError(err => { + * throw 'error in source. Details: ' + err; + * }), + * ) + * .subscribe( + * x => console.log(x), + * err => console.log(err) + * ); + * // 1, 2, 3, error in source. Details: four! + * ``` + * + * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which + * is the source observable, in case you'd like to "retry" that observable by returning it again. Whatever observable + * is returned by the `selector` will be used to continue the observable chain. + * @return {Observable} An observable that originates from either the source or the observable returned by the + * catch `selector` function. + * @name catchError + */ +export function catchError>( + selector: (err: any, caught: Observable) => O +): OperatorFunction> { + return function catchErrorOperatorFunction(source: Observable): Observable> { + const operator = new CatchOperator(selector); + const caught = source.lift(operator); + return (operator.caught = caught as Observable); + }; +} + +class CatchOperator implements Operator { + caught: Observable; + + constructor(private selector: (err: any, caught: Observable) => ObservableInput) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class CatchSubscriber extends SimpleOuterSubscriber { + constructor(destination: Subscriber, + private selector: (err: any, caught: Observable) => ObservableInput, + private caught: Observable) { + super(destination); + } + + // NOTE: overriding `error` instead of `_error` because we don't want + // to have this flag this subscriber as `isStopped`. We can mimic the + // behavior of the RetrySubscriber (from the `retry` operator), where + // we unsubscribe from our source chain, reset our Subscriber flags, + // then subscribe to the selector result. + error(err: any) { + if (!this.isStopped) { + let result: any; + try { + result = this.selector(err, this.caught); + } catch (err2) { + super.error(err2); + return; + } + this._unsubscribeAndRecycle(); + const innerSubscriber = new SimpleInnerSubscriber(this); + this.add(innerSubscriber); + const innerSubscription = innerSubscribe(result, innerSubscriber); + // The returned subscription will usually be the subscriber that was + // passed. However, interop subscribers will be wrapped and for + // unsubscriptions to chain correctly, the wrapper needs to be added, too. + if (innerSubscription !== innerSubscriber) { + this.add(innerSubscription); + } + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/combineAll.ts b/node_modules/rxjs/src/internal/operators/combineAll.ts new file mode 100644 index 00000000..f6960003 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/combineAll.ts @@ -0,0 +1,57 @@ +import { CombineLatestOperator } from '../observable/combineLatest'; +import { Observable } from '../Observable'; +import { OperatorFunction, ObservableInput } from '../types'; + +export function combineAll(): OperatorFunction, T[]>; +export function combineAll(): OperatorFunction; +export function combineAll(project: (...values: T[]) => R): OperatorFunction, R>; +export function combineAll(project: (...values: Array) => R): OperatorFunction; +/** + * Flattens an Observable-of-Observables by applying {@link combineLatest} when the Observable-of-Observables completes. + * + * ![](combineAll.png) + * + * `combineAll` takes an Observable of Observables, and collects all Observables from it. Once the outer Observable completes, + * it subscribes to all collected Observables and combines their values using the {@link combineLatest} strategy, such that: + * + * * Every time an inner Observable emits, the output Observable emits + * * When the returned observable emits, it emits all of the latest values by: + * * If a `project` function is provided, it is called with each recent value from each inner Observable in whatever order they + * arrived, and the result of the `project` function is what is emitted by the output Observable. + * * If there is no `project` function, an array of all the most recent values is emitted by the output Observable. + * + * --- + * + * ## Examples + * + * ### Map two click events to a finite interval Observable, then apply `combineAll` + * + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { map, combineAll, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const higherOrder = clicks.pipe( + * map(ev => + * interval(Math.random() * 2000).pipe(take(3)) + * ), + * take(2) + * ); + * const result = higherOrder.pipe( + * combineAll() + * ); + * + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link combineLatest} + * @see {@link mergeAll} + * + * @param {function(...values: Array)} An optional function to map the most recent values from each inner Observable into a new result. + * Takes each of the most recent values from each collected inner Observable as arguments, in order. + * @return {Observable} + * @name combineAll + */ +export function combineAll(project?: (...values: Array) => R): OperatorFunction { + return (source: Observable) => source.lift(new CombineLatestOperator(project)); +} diff --git a/node_modules/rxjs/src/internal/operators/combineLatest.ts b/node_modules/rxjs/src/internal/operators/combineLatest.ts new file mode 100644 index 00000000..ad984f64 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/combineLatest.ts @@ -0,0 +1,59 @@ + +import { isArray } from '../util/isArray'; +import { CombineLatestOperator } from '../observable/combineLatest'; +import { from } from '../observable/from'; +import { Observable } from '../Observable'; +import { ObservableInput, OperatorFunction } from '../types'; + +const none = {}; + +/* tslint:disable:max-line-length */ +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(project: (v1: T) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(...observables: Array | ((...values: Array) => R)>): OperatorFunction; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(array: ObservableInput[]): OperatorFunction>; +/** @deprecated Deprecated in favor of static combineLatest. */ +export function combineLatest(array: ObservableInput[], project: (v1: T, ...values: Array) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * @deprecated Deprecated in favor of static {@link combineLatest}. + */ +export function combineLatest(...observables: Array | + Array> | + ((...values: Array) => R)>): OperatorFunction { + let project: (...values: Array) => R = null; + if (typeof observables[observables.length - 1] === 'function') { + project = <(...values: Array) => R>observables.pop(); + } + + // if the first and only other argument besides the resultSelector is an array + // assume it's been called with `combineLatest([obs1, obs2, obs3], project)` + if (observables.length === 1 && isArray(observables[0])) { + observables = (observables[0]).slice(); + } + + return (source: Observable) => source.lift.call(from([source, ...observables]), new CombineLatestOperator(project)); +} diff --git a/node_modules/rxjs/src/internal/operators/concat.ts b/node_modules/rxjs/src/internal/operators/concat.ts new file mode 100644 index 00000000..aee64666 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/concat.ts @@ -0,0 +1,29 @@ +import { concat as concatStatic } from '../observable/concat'; +import { Observable } from '../Observable'; +import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types'; + +/* tslint:disable:max-line-length */ +/** @deprecated Deprecated in favor of static concat. */ +export function concat(scheduler?: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export function concat(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export function concat(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export function concat(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export function concat(...observables: Array | SchedulerLike>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static concat. */ +export function concat(...observables: Array | SchedulerLike>): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * @deprecated Deprecated in favor of static {@link concat}. + */ +export function concat(...observables: Array | SchedulerLike>): OperatorFunction { + return (source: Observable) => source.lift.call(concatStatic(source, ...observables)); +} diff --git a/node_modules/rxjs/src/internal/operators/concatAll.ts b/node_modules/rxjs/src/internal/operators/concatAll.ts new file mode 100644 index 00000000..a6716bb5 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/concatAll.ts @@ -0,0 +1,68 @@ + +import { mergeAll } from './mergeAll'; +import { OperatorFunction, ObservableInput } from '../types'; + +export function concatAll(): OperatorFunction, T>; +export function concatAll(): OperatorFunction; + +/** + * Converts a higher-order Observable into a first-order Observable by + * concatenating the inner Observables in order. + * + * Flattens an Observable-of-Observables by putting one + * inner Observable after the other. + * + * ![](concatAll.png) + * + * Joins every Observable emitted by the source (a higher-order Observable), in + * a serial fashion. It subscribes to each inner Observable only after the + * previous inner Observable has completed, and merges all of their values into + * the returned observable. + * + * __Warning:__ If the source Observable emits Observables quickly and + * endlessly, and the inner Observables it emits generally complete slower than + * the source emits, you can run into memory issues as the incoming Observables + * collect in an unbounded buffer. + * + * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set + * to `1`. + * + * ## Example + * + * For each click event, tick every second from 0 to 3, with no concurrency + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { map, take, concatAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const higherOrder = clicks.pipe( + * map(ev => interval(1000).pipe(take(4))), + * ); + * const firstOrder = higherOrder.pipe(concatAll()); + * firstOrder.subscribe(x => console.log(x)); + * + * // Results in the following: + * // (results are not concurrent) + * // For every click on the "document" it will emit values 0 to 3 spaced + * // on a 1000ms interval + * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 + * ``` + * + * @see {@link combineAll} + * @see {@link concat} + * @see {@link concatMap} + * @see {@link concatMapTo} + * @see {@link exhaust} + * @see {@link mergeAll} + * @see {@link switchAll} + * @see {@link switchMap} + * @see {@link zipAll} + * + * @return {Observable} An Observable emitting values from all the inner + * Observables concatenated. + * @method concatAll + * @owner Observable + */ +export function concatAll(): OperatorFunction, T> { + return mergeAll(1); +} diff --git a/node_modules/rxjs/src/internal/operators/concatMap.ts b/node_modules/rxjs/src/internal/operators/concatMap.ts new file mode 100644 index 00000000..64b0ba0f --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/concatMap.ts @@ -0,0 +1,77 @@ +import { mergeMap } from './mergeMap'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; + +/* tslint:disable:max-line-length */ +export function concatMap>(project: (value: T, index: number) => O): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export function concatMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export function concatMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Projects each source value to an Observable which is merged in the output + * Observable, in a serialized fashion waiting for each one to complete before + * merging the next. + * + * Maps each value to an Observable, then flattens all of + * these inner Observables using {@link concatAll}. + * + * ![](concatMap.png) + * + * Returns an Observable that emits items based on applying a function that you + * supply to each item emitted by the source Observable, where that function + * returns an (so-called "inner") Observable. Each new inner Observable is + * concatenated with the previous inner Observable. + * + * __Warning:__ if source values arrive endlessly and faster than their + * corresponding inner Observables can complete, it will result in memory issues + * as inner Observables amass in an unbounded buffer waiting for their turn to + * be subscribed to. + * + * Note: `concatMap` is equivalent to `mergeMap` with concurrency parameter set + * to `1`. + * + * ## Example + * For each click event, tick every second from 0 to 3, with no concurrency + * + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { concatMap, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * concatMap(ev => interval(1000).pipe(take(4))) + * ); + * result.subscribe(x => console.log(x)); + * + * // Results in the following: + * // (results are not concurrent) + * // For every click on the "document" it will emit values 0 to 3 spaced + * // on a 1000ms interval + * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 + * ``` + * + * @see {@link concat} + * @see {@link concatAll} + * @see {@link concatMapTo} + * @see {@link exhaustMap} + * @see {@link mergeMap} + * @see {@link switchMap} + * + * @param {function(value: T, ?index: number): ObservableInput} project A function + * that, when applied to an item emitted by the source Observable, returns an + * Observable. + * @return {Observable} An Observable that emits the result of applying the + * projection function (and the optional deprecated `resultSelector`) to each item emitted + * by the source Observable and taking values from each projected inner + * Observable sequentially. + * @method concatMap + * @owner Observable + */ +export function concatMap>( + project: (value: T, index: number) => O, + resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R +): OperatorFunction|R> { + return mergeMap(project, resultSelector, 1); +} diff --git a/node_modules/rxjs/src/internal/operators/concatMapTo.ts b/node_modules/rxjs/src/internal/operators/concatMapTo.ts new file mode 100644 index 00000000..3f52fc68 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/concatMapTo.ts @@ -0,0 +1,73 @@ +import { concatMap } from './concatMap'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; + +/* tslint:disable:max-line-length */ +export function concatMapTo>(observable: O): OperatorFunction>; +/** @deprecated */ +export function concatMapTo>(observable: O, resultSelector: undefined): OperatorFunction>; +/** @deprecated */ +export function concatMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Projects each source value to the same Observable which is merged multiple + * times in a serialized fashion on the output Observable. + * + * It's like {@link concatMap}, but maps each value + * always to the same inner Observable. + * + * ![](concatMapTo.png) + * + * Maps each source value to the given Observable `innerObservable` regardless + * of the source value, and then flattens those resulting Observables into one + * single Observable, which is the output Observable. Each new `innerObservable` + * instance emitted on the output Observable is concatenated with the previous + * `innerObservable` instance. + * + * __Warning:__ if source values arrive endlessly and faster than their + * corresponding inner Observables can complete, it will result in memory issues + * as inner Observables amass in an unbounded buffer waiting for their turn to + * be subscribed to. + * + * Note: `concatMapTo` is equivalent to `mergeMapTo` with concurrency parameter + * set to `1`. + * + * ## Example + * For each click event, tick every second from 0 to 3, with no concurrency + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { concatMapTo, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * concatMapTo(interval(1000).pipe(take(4))), + * ); + * result.subscribe(x => console.log(x)); + * + * // Results in the following: + * // (results are not concurrent) + * // For every click on the "document" it will emit values 0 to 3 spaced + * // on a 1000ms interval + * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 + * ``` + * + * @see {@link concat} + * @see {@link concatAll} + * @see {@link concatMap} + * @see {@link mergeMapTo} + * @see {@link switchMapTo} + * + * @param {ObservableInput} innerObservable An Observable to replace each value from + * the source Observable. + * @return {Observable} An observable of values merged together by joining the + * passed observable with itself, one after the other, for each value emitted + * from the source. + * @method concatMapTo + * @owner Observable + */ +export function concatMapTo>( + innerObservable: O, + resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R +): OperatorFunction|R> { + return concatMap(() => innerObservable, resultSelector); +} diff --git a/node_modules/rxjs/src/internal/operators/count.ts b/node_modules/rxjs/src/internal/operators/count.ts new file mode 100644 index 00000000..1c33a9a4 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/count.ts @@ -0,0 +1,121 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Observer, OperatorFunction } from '../types'; +import { Subscriber } from '../Subscriber'; +/** + * Counts the number of emissions on the source and emits that number when the + * source completes. + * + * Tells how many values were emitted, when the source + * completes. + * + * ![](count.png) + * + * `count` transforms an Observable that emits values into an Observable that + * emits a single value that represents the number of values emitted by the + * source Observable. If the source Observable terminates with an error, `count` + * will pass this error notification along without emitting a value first. If + * the source Observable does not terminate at all, `count` will neither emit + * a value nor terminate. This operator takes an optional `predicate` function + * as argument, in which case the output emission will represent the number of + * source values that matched `true` with the `predicate`. + * + * ## Examples + * + * Counts how many seconds have passed before the first click happened + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { count, takeUntil } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * const clicks = fromEvent(document, 'click'); + * const secondsBeforeClick = seconds.pipe(takeUntil(clicks)); + * const result = secondsBeforeClick.pipe(count()); + * result.subscribe(x => console.log(x)); + * ``` + * + * Counts how many odd numbers are there between 1 and 7 + * ```ts + * import { range } from 'rxjs'; + * import { count } from 'rxjs/operators'; + * + * const numbers = range(1, 7); + * const result = numbers.pipe(count(i => i % 2 === 1)); + * result.subscribe(x => console.log(x)); + * // Results in: + * // 4 + * ``` + * + * @see {@link max} + * @see {@link min} + * @see {@link reduce} + * + * @param {function(value: T, i: number, source: Observable): boolean} [predicate] A + * boolean function to select what values are to be counted. It is provided with + * arguments of: + * - `value`: the value from the source Observable. + * - `index`: the (zero-based) "index" of the value from the source Observable. + * - `source`: the source Observable instance itself. + * @return {Observable} An Observable of one number that represents the count as + * described above. + * @method count + * @owner Observable + */ + +export function count(predicate?: (value: T, index: number, source: Observable) => boolean): OperatorFunction { + return (source: Observable) => source.lift(new CountOperator(predicate, source)); +} + +class CountOperator implements Operator { + constructor(private predicate?: (value: T, index: number, source: Observable) => boolean, + private source?: Observable) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class CountSubscriber extends Subscriber { + private count: number = 0; + private index: number = 0; + + constructor(destination: Observer, + private predicate?: (value: T, index: number, source: Observable) => boolean, + private source?: Observable) { + super(destination); + } + + protected _next(value: T): void { + if (this.predicate) { + this._tryPredicate(value); + } else { + this.count++; + } + } + + private _tryPredicate(value: T) { + let result: any; + + try { + result = this.predicate(value, this.index++, this.source); + } catch (err) { + this.destination.error(err); + return; + } + + if (result) { + this.count++; + } + } + + protected _complete(): void { + this.destination.next(this.count); + this.destination.complete(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/debounce.ts b/node_modules/rxjs/src/internal/operators/debounce.ts new file mode 100644 index 00000000..78fad34c --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/debounce.ts @@ -0,0 +1,143 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Emits a value from the source Observable only after a particular time span + * determined by another Observable has passed without another source emission. + * + * It's like {@link debounceTime}, but the time span of + * emission silence is determined by a second Observable. + * + * ![](debounce.png) + * + * `debounce` delays values emitted by the source Observable, but drops previous + * pending delayed emissions if a new value arrives on the source Observable. + * This operator keeps track of the most recent value from the source + * Observable, and spawns a duration Observable by calling the + * `durationSelector` function. The value is emitted only when the duration + * Observable emits a value or completes, and if no other value was emitted on + * the source Observable since the duration Observable was spawned. If a new + * value appears before the duration Observable emits, the previous value will + * be dropped and will not be emitted on the output Observable. + * + * Like {@link debounceTime}, this is a rate-limiting operator, and also a + * delay-like operator since output emissions do not necessarily occur at the + * same time as they did on the source Observable. + * + * ## Example + * Emit the most recent click after a burst of clicks + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { debounce } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(debounce(() => interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounceTime} + * @see {@link delayWhen} + * @see {@link throttle} + * + * @param {function(value: T): SubscribableOrPromise} durationSelector A function + * that receives a value from the source Observable, for computing the timeout + * duration for each source value, returned as an Observable or a Promise. + * @return {Observable} An Observable that delays the emissions of the source + * Observable by the specified duration Observable returned by + * `durationSelector`, and may drop some values if they occur too frequently. + * @method debounce + * @owner Observable + */ +export function debounce(durationSelector: (value: T) => SubscribableOrPromise): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new DebounceOperator(durationSelector)); +} + +class DebounceOperator implements Operator { + constructor(private durationSelector: (value: T) => SubscribableOrPromise) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DebounceSubscriber extends SimpleOuterSubscriber { + private value?: T; + private hasValue = false; + private durationSubscription?: Subscription; + + constructor(destination: Subscriber, + private durationSelector: (value: T) => SubscribableOrPromise) { + super(destination); + } + + protected _next(value: T): void { + try { + const result = this.durationSelector.call(this, value); + + if (result) { + this._tryNext(value, result); + } + } catch (err) { + this.destination.error!(err); + } + } + + protected _complete(): void { + this.emitValue(); + this.destination.complete!(); + } + + private _tryNext(value: T, duration: SubscribableOrPromise): void { + let subscription = this.durationSubscription; + this.value = value; + this.hasValue = true; + if (subscription) { + subscription.unsubscribe(); + this.remove(subscription); + } + + subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this)); + if (subscription && !subscription.closed) { + this.add(this.durationSubscription = subscription); + } + } + + notifyNext(): void { + this.emitValue(); + } + + notifyComplete(): void { + this.emitValue(); + } + + emitValue(): void { + if (this.hasValue) { + const value = this.value; + const subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = undefined; + subscription.unsubscribe(); + this.remove(subscription); + } + // This must be done *before* passing the value + // along to the destination because it's possible for + // the value to synchronously re-enter this operator + // recursively if the duration selector Observable + // emits synchronously + this.value = undefined; + this.hasValue = false; + super._next(value!); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/debounceTime.ts b/node_modules/rxjs/src/internal/operators/debounceTime.ts new file mode 100644 index 00000000..8244d49a --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/debounceTime.ts @@ -0,0 +1,130 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { async } from '../scheduler/async'; +import { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types'; + +/** + * Emits a value from the source Observable only after a particular time span + * has passed without another source emission. + * + * It's like {@link delay}, but passes only the most + * recent value from each burst of emissions. + * + * ![](debounceTime.png) + * + * `debounceTime` delays values emitted by the source Observable, but drops + * previous pending delayed emissions if a new value arrives on the source + * Observable. This operator keeps track of the most recent value from the + * source Observable, and emits that only when `dueTime` enough time has passed + * without any other value appearing on the source Observable. If a new value + * appears before `dueTime` silence occurs, the previous value will be dropped + * and will not be emitted on the output Observable. + * + * This is a rate-limiting operator, because it is impossible for more than one + * value to be emitted in any time window of duration `dueTime`, but it is also + * a delay-like operator since output emissions do not occur at the same time as + * they did on the source Observable. Optionally takes a {@link SchedulerLike} for + * managing timers. + * + * ## Example + * Emit the most recent click after a burst of clicks + * ```ts + * import { fromEvent } from 'rxjs'; + * import { debounceTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(debounceTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link auditTime} + * @see {@link debounce} + * @see {@link delay} + * @see {@link sampleTime} + * @see {@link throttleTime} + * + * @param {number} dueTime The timeout duration in milliseconds (or the time + * unit determined internally by the optional `scheduler`) for the window of + * time required to wait for emission silence before emitting the most recent + * source value. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the timeout for each value. + * @return {Observable} An Observable that delays the emissions of the source + * Observable by the specified `dueTime`, and may drop some values if they occur + * too frequently. + * @method debounceTime + * @owner Observable + */ +export function debounceTime(dueTime: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new DebounceTimeOperator(dueTime, scheduler)); +} + +class DebounceTimeOperator implements Operator { + constructor(private dueTime: number, private scheduler: SchedulerLike) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DebounceTimeSubscriber extends Subscriber { + private debouncedSubscription: Subscription = null; + private lastValue: T = null; + private hasValue: boolean = false; + + constructor(destination: Subscriber, + private dueTime: number, + private scheduler: SchedulerLike) { + super(destination); + } + + protected _next(value: T) { + this.clearDebounce(); + this.lastValue = value; + this.hasValue = true; + this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); + } + + protected _complete() { + this.debouncedNext(); + this.destination.complete(); + } + + debouncedNext(): void { + this.clearDebounce(); + + if (this.hasValue) { + const { lastValue } = this; + // This must be done *before* passing the value + // along to the destination because it's possible for + // the value to synchronously re-enter this operator + // recursively when scheduled with things like + // VirtualScheduler/TestScheduler. + this.lastValue = null; + this.hasValue = false; + this.destination.next(lastValue); + } + } + + private clearDebounce(): void { + const debouncedSubscription = this.debouncedSubscription; + + if (debouncedSubscription !== null) { + this.remove(debouncedSubscription); + debouncedSubscription.unsubscribe(); + this.debouncedSubscription = null; + } + } +} + +function dispatchNext(subscriber: DebounceTimeSubscriber) { + subscriber.debouncedNext(); +} diff --git a/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts b/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts new file mode 100644 index 00000000..6d6123ea --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts @@ -0,0 +1,84 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; + +/* tslint:disable:max-line-length */ +export function defaultIfEmpty(defaultValue?: T): MonoTypeOperatorFunction; +export function defaultIfEmpty(defaultValue?: R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Emits a given value if the source Observable completes without emitting any + * `next` value, otherwise mirrors the source Observable. + * + * If the source Observable turns out to be empty, then + * this operator will emit a default value. + * + * ![](defaultIfEmpty.png) + * + * `defaultIfEmpty` emits the values emitted by the source Observable or a + * specified default value if the source Observable is empty (completes without + * having emitted any `next` value). + * + * ## Example + * If no clicks happen in 5 seconds, then emit "no clicks" + * ```ts + * import { fromEvent } from 'rxjs'; + * import { defaultIfEmpty, takeUntil } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000))); + * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks')); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link empty} + * @see {@link last} + * + * @param {any} [defaultValue=null] The default value used if the source + * Observable is empty. + * @return {Observable} An Observable that emits either the specified + * `defaultValue` if the source Observable emits no items, or the values emitted + * by the source Observable. + * @method defaultIfEmpty + * @owner Observable + */ +export function defaultIfEmpty(defaultValue: R = null): OperatorFunction { + return (source: Observable) => source.lift(new DefaultIfEmptyOperator(defaultValue)) as Observable; +} + +class DefaultIfEmptyOperator implements Operator { + + constructor(private defaultValue: R) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DefaultIfEmptySubscriber extends Subscriber { + private isEmpty: boolean = true; + + constructor(destination: Subscriber, private defaultValue: R) { + super(destination); + } + + protected _next(value: T): void { + this.isEmpty = false; + this.destination.next(value); + } + + protected _complete(): void { + if (this.isEmpty) { + this.destination.next(this.defaultValue); + } + this.destination.complete(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/delay.ts b/node_modules/rxjs/src/internal/operators/delay.ts new file mode 100644 index 00000000..0f10f18d --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/delay.ts @@ -0,0 +1,161 @@ +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Notification } from '../Notification'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; + +/** + * Delays the emission of items from the source Observable by a given timeout or + * until a given Date. + * + * Time shifts each item by some specified amount of + * milliseconds. + * + * ![](delay.png) + * + * If the delay argument is a Number, this operator time shifts the source + * Observable by that amount of time expressed in milliseconds. The relative + * time intervals between the values are preserved. + * + * If the delay argument is a Date, this operator time shifts the start of the + * Observable execution until the given date occurs. + * + * ## Examples + * Delay each click by one second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { delay } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second + * delayedClicks.subscribe(x => console.log(x)); + * ``` + * + * Delay all clicks until a future date happens + * ```ts + * import { fromEvent } from 'rxjs'; + * import { delay } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const date = new Date('March 15, 2050 12:00:00'); // in the future + * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date + * delayedClicks.subscribe(x => console.log(x)); + * ``` + * + * @see {@link debounceTime} + * @see {@link delayWhen} + * + * @param {number|Date} delay The delay duration in milliseconds (a `number`) or + * a `Date` until which the emission of the source items is delayed. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the time-shift for each item. + * @return {Observable} An Observable that delays the emissions of the source + * Observable by the specified timeout or Date. + * @method delay + * @owner Observable + */ +export function delay(delay: number|Date, + scheduler: SchedulerLike = async): MonoTypeOperatorFunction { + const absoluteDelay = isDate(delay); + const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); + return (source: Observable) => source.lift(new DelayOperator(delayFor, scheduler)); +} + +class DelayOperator implements Operator { + constructor(private delay: number, + private scheduler: SchedulerLike) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); + } +} + +interface DelayState { + source: DelaySubscriber; + destination: PartialObserver; + scheduler: SchedulerLike; +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DelaySubscriber extends Subscriber { + private queue: Array> = []; + private active: boolean = false; + private errored: boolean = false; + + private static dispatch(this: SchedulerAction>, state: DelayState): void { + const source = state.source; + const queue = source.queue; + const scheduler = state.scheduler; + const destination = state.destination; + + while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { + queue.shift().notification.observe(destination); + } + + if (queue.length > 0) { + const delay = Math.max(0, queue[0].time - scheduler.now()); + this.schedule(state, delay); + } else { + this.unsubscribe(); + source.active = false; + } + } + + constructor(destination: Subscriber, + private delay: number, + private scheduler: SchedulerLike) { + super(destination); + } + + private _schedule(scheduler: SchedulerLike): void { + this.active = true; + const destination = this.destination as Subscription; + destination.add(scheduler.schedule>(DelaySubscriber.dispatch, this.delay, { + source: this, destination: this.destination, scheduler: scheduler + })); + } + + private scheduleNotification(notification: Notification): void { + if (this.errored === true) { + return; + } + + const scheduler = this.scheduler; + const message = new DelayMessage(scheduler.now() + this.delay, notification); + this.queue.push(message); + + if (this.active === false) { + this._schedule(scheduler); + } + } + + protected _next(value: T) { + this.scheduleNotification(Notification.createNext(value)); + } + + protected _error(err: any) { + this.errored = true; + this.queue = []; + this.destination.error(err); + this.unsubscribe(); + } + + protected _complete() { + this.scheduleNotification(Notification.createComplete()); + this.unsubscribe(); + } +} + +class DelayMessage { + constructor(public readonly time: number, + public readonly notification: Notification) { + } +} diff --git a/node_modules/rxjs/src/internal/operators/delayWhen.ts b/node_modules/rxjs/src/internal/operators/delayWhen.ts new file mode 100644 index 00000000..33cc4488 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/delayWhen.ts @@ -0,0 +1,225 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/* tslint:disable:max-line-length */ +/** @deprecated In future versions, empty notifiers will no longer re-emit the source value on the output observable. */ +export function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction; +export function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable): MonoTypeOperatorFunction; +/* tslint:disable:max-line-length */ + +/** + * Delays the emission of items from the source Observable by a given time span + * determined by the emissions of another Observable. + * + * It's like {@link delay}, but the time span of the + * delay duration is determined by a second Observable. + * + * ![](delayWhen.png) + * + * `delayWhen` time shifts each emitted value from the source Observable by a + * time span determined by another Observable. When the source emits a value, + * the `delayDurationSelector` function is called with the source value as + * argument, and should return an Observable, called the "duration" Observable. + * The source value is emitted on the output Observable only when the duration + * Observable emits a value or completes. + * The completion of the notifier triggering the emission of the source value + * is deprecated behavior and will be removed in future versions. + * + * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which + * is an Observable. When `subscriptionDelay` emits its first value or + * completes, the source Observable is subscribed to and starts behaving like + * described in the previous paragraph. If `subscriptionDelay` is not provided, + * `delayWhen` will subscribe to the source Observable as soon as the output + * Observable is subscribed. + * + * ## Example + * Delay each click by a random amount of time, between 0 and 5 seconds + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { delayWhen } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const delayedClicks = clicks.pipe( + * delayWhen(event => interval(Math.random() * 5000)), + * ); + * delayedClicks.subscribe(x => console.log(x)); + * ``` + * + * @see {@link delay} + * @see {@link throttle} + * @see {@link throttleTime} + * @see {@link debounce} + * @see {@link debounceTime} + * @see {@link sample} + * @see {@link sampleTime} + * @see {@link audit} + * @see {@link auditTime} + * + * @param {function(value: T, index: number): Observable} delayDurationSelector A function that + * returns an Observable for each value emitted by the source Observable, which + * is then used to delay the emission of that item on the output Observable + * until the Observable returned from this function emits a value. + * @param {Observable} subscriptionDelay An Observable that triggers the + * subscription to the source Observable once it emits any value. + * @return {Observable} An Observable that delays the emissions of the source + * Observable by an amount of time specified by the Observable returned by + * `delayDurationSelector`. + * @method delayWhen + * @owner Observable + */ +export function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, + subscriptionDelay?: Observable): MonoTypeOperatorFunction { + if (subscriptionDelay) { + return (source: Observable) => + new SubscriptionDelayObservable(source, subscriptionDelay) + .lift(new DelayWhenOperator(delayDurationSelector)); + } + return (source: Observable) => source.lift(new DelayWhenOperator(delayDurationSelector)); +} + +class DelayWhenOperator implements Operator { + constructor(private delayDurationSelector: (value: T, index: number) => Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DelayWhenSubscriber extends OuterSubscriber { + private completed: boolean = false; + private delayNotifierSubscriptions: Array = []; + private index: number = 0; + + constructor(destination: Subscriber, + private delayDurationSelector: (value: T, index: number) => Observable) { + super(destination); + } + + notifyNext(outerValue: T, _innerValue: any, + _outerIndex: number, _innerIndex: number, + innerSub: InnerSubscriber): void { + this.destination.next!(outerValue); + this.removeSubscription(innerSub); + this.tryComplete(); + } + + notifyError(error: any, innerSub: InnerSubscriber): void { + this._error(error); + } + + notifyComplete(innerSub: InnerSubscriber): void { + const value = this.removeSubscription(innerSub); + if (value) { + this.destination.next!(value); + } + this.tryComplete(); + } + + protected _next(value: T): void { + const index = this.index++; + try { + const delayNotifier = this.delayDurationSelector(value, index); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); + } + } catch (err) { + this.destination.error!(err); + } + } + + protected _complete(): void { + this.completed = true; + this.tryComplete(); + this.unsubscribe(); + } + + private removeSubscription(subscription: InnerSubscriber): T { + subscription.unsubscribe(); + + const subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + if (subscriptionIdx !== -1) { + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); + } + + return subscription.outerValue; + } + + private tryDelay(delayNotifier: Observable, value: T): void { + const notifierSubscription = subscribeToResult(this, delayNotifier, value); + + if (notifierSubscription && !notifierSubscription.closed) { + const destination = this.destination as Subscription; + destination.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + } + + private tryComplete(): void { + if (this.completed && this.delayNotifierSubscriptions.length === 0) { + this.destination.complete!(); + } + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SubscriptionDelayObservable extends Observable { + constructor(public source: Observable, private subscriptionDelay: Observable) { + super(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SubscriptionDelaySubscriber extends Subscriber { + private sourceSubscribed: boolean = false; + + constructor(private parent: Subscriber, private source: Observable) { + super(); + } + + protected _next(unused: any) { + this.subscribeToSource(); + } + + protected _error(err: any) { + this.unsubscribe(); + this.parent.error(err); + } + + protected _complete() { + this.unsubscribe(); + this.subscribeToSource(); + } + + private subscribeToSource(): void { + if (!this.sourceSubscribed) { + this.sourceSubscribed = true; + this.unsubscribe(); + this.source.subscribe(this.parent); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/dematerialize.ts b/node_modules/rxjs/src/internal/operators/dematerialize.ts new file mode 100644 index 00000000..ba1dcb17 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/dematerialize.ts @@ -0,0 +1,78 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +import { OperatorFunction } from '../types'; + +/** + * Converts an Observable of {@link Notification} objects into the emissions + * that they represent. + * + * Unwraps {@link Notification} objects as actual `next`, + * `error` and `complete` emissions. The opposite of {@link materialize}. + * + * ![](dematerialize.png) + * + * `dematerialize` is assumed to operate an Observable that only emits + * {@link Notification} objects as `next` emissions, and does not emit any + * `error`. Such Observable is the output of a `materialize` operation. Those + * notifications are then unwrapped using the metadata they contain, and emitted + * as `next`, `error`, and `complete` on the output Observable. + * + * Use this operator in conjunction with {@link materialize}. + * + * ## Example + * Convert an Observable of Notifications to an actual Observable + * ```ts + * import { of, Notification } from 'rxjs'; + * import { dematerialize } from 'rxjs/operators'; + * + * const notifA = new Notification('N', 'A'); + * const notifB = new Notification('N', 'B'); + * const notifE = new Notification('E', undefined, + * new TypeError('x.toUpperCase is not a function') + * ); + * const materialized = of(notifA, notifB, notifE); + * const upperCase = materialized.pipe(dematerialize()); + * upperCase.subscribe(x => console.log(x), e => console.error(e)); + * + * // Results in: + * // A + * // B + * // TypeError: x.toUpperCase is not a function + * ``` + * + * @see {@link Notification} + * @see {@link materialize} + * + * @return {Observable} An Observable that emits items and notifications + * embedded in Notification objects emitted by the source Observable. + * @method dematerialize + * @owner Observable + */ +export function dematerialize(): OperatorFunction, T> { + return function dematerializeOperatorFunction(source: Observable>) { + return source.lift(new DeMaterializeOperator()); + }; +} + +class DeMaterializeOperator, R> implements Operator { + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DeMaterializeSubscriber> extends Subscriber { + constructor(destination: Subscriber) { + super(destination); + } + + protected _next(value: T) { + value.observe(this.destination); + } +} diff --git a/node_modules/rxjs/src/internal/operators/distinct.ts b/node_modules/rxjs/src/internal/operators/distinct.ts new file mode 100644 index 00000000..7a9f9bee --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/distinct.ts @@ -0,0 +1,131 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items. + * + * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will + * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the + * source observable directly with an equality check against previous values. + * + * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking. + * + * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the + * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct` + * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so + * that the internal `Set` can be "flushed", basically clearing it of values. + * + * ## Examples + * A simple example with numbers + * ```ts + * import { of } from 'rxjs'; + * import { distinct } from 'rxjs/operators'; + * + * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1).pipe( + * distinct(), + * ) + * .subscribe(x => console.log(x)); // 1, 2, 3, 4 + * ``` + * + * An example using a keySelector function + * ```typescript + * import { of } from 'rxjs'; + * import { distinct } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * + * of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}, + * ).pipe( + * distinct((p: Person) => p.name), + * ) + * .subscribe(x => console.log(x)); + * + * // displays: + * // { age: 4, name: 'Foo' } + * // { age: 7, name: 'Bar' } + * ``` + * @see {@link distinctUntilChanged} + * @see {@link distinctUntilKeyChanged} + * + * @param {function} [keySelector] Optional function to select which value you want to check as distinct. + * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator. + * @return {Observable} An Observable that emits items from the source Observable with distinct values. + * @method distinct + * @owner Observable + */ +export function distinct(keySelector?: (value: T) => K, + flushes?: Observable): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new DistinctOperator(keySelector, flushes)); +} + +class DistinctOperator implements Operator { + constructor(private keySelector?: (value: T) => K, private flushes?: Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class DistinctSubscriber extends SimpleOuterSubscriber { + private values = new Set(); + + constructor(destination: Subscriber, private keySelector?: (value: T) => K, flushes?: Observable) { + super(destination); + + if (flushes) { + this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(this))); + } + } + + notifyNext(): void { + this.values.clear(); + } + + notifyError(error: any): void { + this._error(error); + } + + protected _next(value: T): void { + if (this.keySelector) { + this._useKeySelector(value); + } else { + this._finalizeNext(value, value); + } + } + + private _useKeySelector(value: T): void { + let key: K; + const { destination } = this; + try { + key = this.keySelector!(value); + } catch (err) { + destination.error!(err); + return; + } + this._finalizeNext(key, value); + } + + private _finalizeNext(key: K|T, value: T) { + const { values } = this; + if (!values.has(key)) { + values.add(key); + this.destination.next!(value); + } + } + +} diff --git a/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts b/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts new file mode 100644 index 00000000..6eef0b2e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts @@ -0,0 +1,124 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/* tslint:disable:max-line-length */ +export function distinctUntilChanged(compare?: (x: T, y: T) => boolean): MonoTypeOperatorFunction; +export function distinctUntilChanged(compare: (x: K, y: K) => boolean, keySelector: (x: T) => K): MonoTypeOperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item. + * + * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted. + * + * If a comparator function is not provided, an equality check is used by default. + * + * ## Example + * A simple example with numbers + * ```ts + * import { of } from 'rxjs'; + * import { distinctUntilChanged } from 'rxjs/operators'; + * + * of(1, 1, 2, 2, 2, 1, 1, 2, 3, 3, 4).pipe( + * distinctUntilChanged(), + * ) + * .subscribe(x => console.log(x)); // 1, 2, 1, 2, 3, 4 + * ``` + * + * An example using a compare function + * ```typescript + * import { of } from 'rxjs'; + * import { distinctUntilChanged } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * + * of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}, + * { age: 6, name: 'Foo'}, + * ).pipe( + * distinctUntilChanged((p: Person, q: Person) => p.name === q.name), + * ) + * .subscribe(x => console.log(x)); + * + * // displays: + * // { age: 4, name: 'Foo' } + * // { age: 7, name: 'Bar' } + * // { age: 5, name: 'Foo' } + * ``` + * + * @see {@link distinct} + * @see {@link distinctUntilKeyChanged} + * + * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source. + * @return {Observable} An Observable that emits items from the source Observable with distinct values. + * @method distinctUntilChanged + * @owner Observable + */ +export function distinctUntilChanged(compare?: (x: K, y: K) => boolean, keySelector?: (x: T) => K): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new DistinctUntilChangedOperator(compare, keySelector)); +} + +class DistinctUntilChangedOperator implements Operator { + constructor(private compare: (x: K, y: K) => boolean, + private keySelector: (x: T) => K) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class DistinctUntilChangedSubscriber extends Subscriber { + private key: K; + private hasKey: boolean = false; + + constructor(destination: Subscriber, + compare: (x: K, y: K) => boolean, + private keySelector: (x: T) => K) { + super(destination); + if (typeof compare === 'function') { + this.compare = compare; + } + } + + private compare(x: any, y: any): boolean { + return x === y; + } + + protected _next(value: T): void { + let key: any; + try { + const { keySelector } = this; + key = keySelector ? keySelector(value) : value; + } catch (err) { + return this.destination.error(err); + } + let result = false; + if (this.hasKey) { + try { + const { compare } = this; + result = compare(this.key, key); + } catch (err) { + return this.destination.error(err); + } + } else { + this.hasKey = true; + } + if (!result) { + this.key = key; + this.destination.next(value); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts new file mode 100644 index 00000000..b649fc5a --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts @@ -0,0 +1,81 @@ +import { distinctUntilChanged } from './distinctUntilChanged'; +import { MonoTypeOperatorFunction } from '../types'; + +/* tslint:disable:max-line-length */ +export function distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction; +export function distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item, + * using a property accessed by using the key provided to check if the two items are distinct. + * + * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted. + * + * If a comparator function is not provided, an equality check is used by default. + * + * ## Examples + * An example comparing the name of persons + * ```typescript + * import { of } from 'rxjs'; + * import { distinctUntilKeyChanged } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * + * of( + * { age: 4, name: 'Foo'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo'}, + * { age: 6, name: 'Foo'}, + * ).pipe( + * distinctUntilKeyChanged('name'), + * ) + * .subscribe(x => console.log(x)); + * + * // displays: + * // { age: 4, name: 'Foo' } + * // { age: 7, name: 'Bar' } + * // { age: 5, name: 'Foo' } + * ``` + * + * An example comparing the first letters of the name + * ```typescript + * import { of } from 'rxjs'; + * import { distinctUntilKeyChanged } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * + * of( + * { age: 4, name: 'Foo1'}, + * { age: 7, name: 'Bar'}, + * { age: 5, name: 'Foo2'}, + * { age: 6, name: 'Foo3'}, + * ).pipe( + * distinctUntilKeyChanged('name', (x: string, y: string) => x.substring(0, 3) === y.substring(0, 3)), + * ) + * .subscribe(x => console.log(x)); + * + * // displays: + * // { age: 4, name: 'Foo1' } + * // { age: 7, name: 'Bar' } + * // { age: 5, name: 'Foo2' } + * ``` + * + * @see {@link distinct} + * @see {@link distinctUntilChanged} + * + * @param {string} key String key for object property lookup on each item. + * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source. + * @return {Observable} An Observable that emits items from the source Observable with distinct values based on the key specified. + * @method distinctUntilKeyChanged + * @owner Observable + */ +export function distinctUntilKeyChanged(key: K, compare?: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction { + return distinctUntilChanged((x: T, y: T) => compare ? compare(x[key], y[key]) : x[key] === y[key]); +} diff --git a/node_modules/rxjs/src/internal/operators/elementAt.ts b/node_modules/rxjs/src/internal/operators/elementAt.ts new file mode 100644 index 00000000..5cee9830 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/elementAt.ts @@ -0,0 +1,69 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { filter } from './filter'; +import { throwIfEmpty } from './throwIfEmpty'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { take } from './take'; + +/** + * Emits the single value at the specified `index` in a sequence of emissions + * from the source Observable. + * + * Emits only the i-th value, then completes. + * + * ![](elementAt.png) + * + * `elementAt` returns an Observable that emits the item at the specified + * `index` in the source Observable, or a default value if that `index` is out + * of range and the `default` argument is provided. If the `default` argument is + * not given and the `index` is out of range, the output Observable will emit an + * `ArgumentOutOfRangeError` error. + * + * ## Example + * Emit only the third click event + * ```ts + * import { fromEvent } from 'rxjs'; + * import { elementAt } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(elementAt(2)); + * result.subscribe(x => console.log(x)); + * + * // Results in: + * // click 1 = nothing + * // click 2 = nothing + * // click 3 = MouseEvent object logged to console + * ``` + * + * @see {@link first} + * @see {@link last} + * @see {@link skip} + * @see {@link single} + * @see {@link take} + * + * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an + * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the + * Observable has completed before emitting the i-th `next` notification. + * + * @param {number} index Is the number `i` for the i-th source emission that has + * happened since the subscription, starting from the number `0`. + * @param {T} [defaultValue] The default value returned for missing indices. + * @return {Observable} An Observable that emits a single item, if it is found. + * Otherwise, will emit the default value if given. If not, then emits an error. + * @method elementAt + * @owner Observable + */ +export function elementAt(index: number, defaultValue?: T): MonoTypeOperatorFunction { + if (index < 0) { throw new ArgumentOutOfRangeError(); } + const hasDefaultValue = arguments.length >= 2; + return (source: Observable) => source.pipe( + filter((v, i) => i === index), + take(1), + hasDefaultValue + ? defaultIfEmpty(defaultValue) + : throwIfEmpty(() => new ArgumentOutOfRangeError()), + ); +} diff --git a/node_modules/rxjs/src/internal/operators/endWith.ts b/node_modules/rxjs/src/internal/operators/endWith.ts new file mode 100644 index 00000000..46aa651e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/endWith.ts @@ -0,0 +1,67 @@ +import { Observable } from '../Observable'; +import { concat } from '../observable/concat'; +import { of } from '../observable/of'; +import { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction } from '../types'; + +/* tslint:disable:max-line-length */ +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(scheduler: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(v1: A, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(v1: A, v2: B, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(v1: A, v2: B, v3: C, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(v1: A, v2: B, v3: C, v4: D, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F, scheduler: SchedulerLike): OperatorFunction; + +export function endWith(v1: A): OperatorFunction; +export function endWith(v1: A, v2: B): OperatorFunction; +export function endWith(v1: A, v2: B, v3: C): OperatorFunction; +export function endWith(v1: A, v2: B, v3: C, v4: D): OperatorFunction; +export function endWith(v1: A, v2: B, v3: C, v4: D, v5: E): OperatorFunction; +export function endWith(v1: A, v2: B, v3: C, v4: D, v5: E, v6: F): OperatorFunction; +export function endWith(...array: Z[]): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([source, [a, b, c]], scheduler).pipe(concatAll())`) */ +export function endWith(...array: Array): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Returns an Observable that emits the items you specify as arguments after it finishes emitting + * items emitted by the source Observable. + * + * ![](endWith.png) + * + * ## Example + * ### After the source observable completes, appends an emission and then completes too. + * + * ```ts + * import { of } from 'rxjs'; + * import { endWith } from 'rxjs/operators'; + * + * of('hi', 'how are you?', 'sorry, I have to go now').pipe( + * endWith('goodbye!'), + * ) + * .subscribe(word => console.log(word)); + * // result: + * // 'hi' + * // 'how are you?' + * // 'sorry, I have to go now' + * // 'goodbye!' + * ``` + * + * @param {...T} values - Items you want the modified Observable to emit last. + * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling + * the emissions of the `next` notifications. + * @return {Observable} An Observable that emits the items emitted by the source Observable + * and then emits the items in the specified Iterable. + * @method endWith + * @owner Observable + */ +export function endWith(...array: Array): MonoTypeOperatorFunction { + return (source: Observable) => concat(source, of(...array)) as Observable; +} diff --git a/node_modules/rxjs/src/internal/operators/every.ts b/node_modules/rxjs/src/internal/operators/every.ts new file mode 100644 index 00000000..5e2c9a65 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/every.ts @@ -0,0 +1,81 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Observer, OperatorFunction } from '../types'; + +/** + * Returns an Observable that emits whether or not every item of the source satisfies the condition specified. + * + * ## Example + * A simple example emitting true if all elements are less than 5, false otherwise + * ```ts + * import { of } from 'rxjs'; + * import { every } from 'rxjs/operators'; + * + * of(1, 2, 3, 4, 5, 6).pipe( + * every(x => x < 5), + * ) + * .subscribe(x => console.log(x)); // -> false + * ``` + * + * @param {function} predicate A function for determining if an item meets a specified condition. + * @param {any} [thisArg] Optional object to use for `this` in the callback. + * @return {Observable} An Observable of booleans that determines if all items of the source Observable meet the condition specified. + * @method every + * @owner Observable + */ +export function every(predicate: (value: T, index: number, source: Observable) => boolean, + thisArg?: any): OperatorFunction { + return (source: Observable) => source.lift(new EveryOperator(predicate, thisArg, source)); +} + +class EveryOperator implements Operator { + constructor(private predicate: (value: T, index: number, source: Observable) => boolean, + private thisArg?: any, + private source?: Observable) { + } + + call(observer: Subscriber, source: any): any { + return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class EverySubscriber extends Subscriber { + private index: number = 0; + + constructor(destination: Observer, + private predicate: (value: T, index: number, source: Observable) => boolean, + private thisArg: any, + private source?: Observable) { + super(destination); + this.thisArg = thisArg || this; + } + + private notifyComplete(everyValueMatch: boolean): void { + this.destination.next(everyValueMatch); + this.destination.complete(); + } + + protected _next(value: T): void { + let result = false; + try { + result = this.predicate.call(this.thisArg, value, this.index++, this.source); + } catch (err) { + this.destination.error(err); + return; + } + + if (!result) { + this.notifyComplete(false); + } + } + + protected _complete(): void { + this.notifyComplete(true); + } +} diff --git a/node_modules/rxjs/src/internal/operators/exhaust.ts b/node_modules/rxjs/src/internal/operators/exhaust.ts new file mode 100644 index 00000000..54c5002a --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/exhaust.ts @@ -0,0 +1,97 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { ObservableInput, OperatorFunction, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +export function exhaust(): OperatorFunction, T>; +export function exhaust(): OperatorFunction; + +/** + * Converts a higher-order Observable into a first-order Observable by dropping + * inner Observables while the previous inner Observable has not yet completed. + * + * Flattens an Observable-of-Observables by dropping the + * next inner Observables while the current inner is still executing. + * + * ![](exhaust.png) + * + * `exhaust` subscribes to an Observable that emits Observables, also known as a + * higher-order Observable. Each time it observes one of these emitted inner + * Observables, the output Observable begins emitting the items emitted by that + * inner Observable. So far, it behaves like {@link mergeAll}. However, + * `exhaust` ignores every new inner Observable if the previous Observable has + * not yet completed. Once that one completes, it will accept and flatten the + * next inner Observable and repeat this process. + * + * ## Example + * Run a finite timer for each click, only if there is no currently active timer + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { exhaust, map, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const higherOrder = clicks.pipe( + * map((ev) => interval(1000).pipe(take(5))), + * ); + * const result = higherOrder.pipe(exhaust()); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link combineAll} + * @see {@link concatAll} + * @see {@link switchAll} + * @see {@link switchMap} + * @see {@link mergeAll} + * @see {@link exhaustMap} + * @see {@link zipAll} + * + * @return {Observable} An Observable that takes a source of Observables and propagates the first observable + * exclusively until it completes before subscribing to the next. + * @method exhaust + * @owner Observable + */ +export function exhaust(): OperatorFunction { + return (source: Observable) => source.lift(new SwitchFirstOperator()); +} + +class SwitchFirstOperator implements Operator { + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SwitchFirstSubscriber extends SimpleOuterSubscriber { + private hasCompleted: boolean = false; + private hasSubscription: boolean = false; + + constructor(destination: Subscriber) { + super(destination); + } + + protected _next(value: T): void { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(innerSubscribe(value, new SimpleInnerSubscriber(this))); + } + } + + protected _complete(): void { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete!(); + } + } + + notifyComplete(): void { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete!(); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/exhaustMap.ts b/node_modules/rxjs/src/internal/operators/exhaustMap.ts new file mode 100644 index 00000000..9a50669c --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/exhaustMap.ts @@ -0,0 +1,157 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +export function exhaustMap>(project: (value: T, index: number) => O): OperatorFunction>; +/** @deprecated resultSelector is no longer supported. Use inner map instead. */ +export function exhaustMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; +/** @deprecated resultSelector is no longer supported. Use inner map instead. */ +export function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Projects each source value to an Observable which is merged in the output + * Observable only if the previous projected Observable has completed. + * + * Maps each value to an Observable, then flattens all of + * these inner Observables using {@link exhaust}. + * + * ![](exhaustMap.png) + * + * Returns an Observable that emits items based on applying a function that you + * supply to each item emitted by the source Observable, where that function + * returns an (so-called "inner") Observable. When it projects a source value to + * an Observable, the output Observable begins emitting the items emitted by + * that projected Observable. However, `exhaustMap` ignores every new projected + * Observable if the previous projected Observable has not yet completed. Once + * that one completes, it will accept and flatten the next projected Observable + * and repeat this process. + * + * ## Example + * Run a finite timer for each click, only if there is no currently active timer + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { exhaustMap, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * exhaustMap(ev => interval(1000).pipe(take(5))) + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link concatMap} + * @see {@link exhaust} + * @see {@link mergeMap} + * @see {@link switchMap} + * + * @param {function(value: T, ?index: number): ObservableInput} project A function + * that, when applied to an item emitted by the source Observable, returns an + * Observable. + * @return {Observable} An Observable containing projected Observables + * of each item of the source, ignoring projected Observables that start before + * their preceding Observable has completed. + * @method exhaustMap + * @owner Observable + */ +export function exhaustMap>( + project: (value: T, index: number) => O, + resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, +): OperatorFunction|R> { + if (resultSelector) { + // DEPRECATED PATH + return (source: Observable) => source.pipe( + exhaustMap((a, i) => from(project(a, i)).pipe( + map((b: any, ii: any) => resultSelector(a, b, i, ii)), + )), + ); + } + return (source: Observable) => + source.lift(new ExhaustMapOperator(project)); +} + +class ExhaustMapOperator implements Operator { + constructor(private project: (value: T, index: number) => ObservableInput) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class ExhaustMapSubscriber extends SimpleOuterSubscriber { + private hasSubscription = false; + private hasCompleted = false; + private index = 0; + + constructor(destination: Subscriber, + private project: (value: T, index: number) => ObservableInput) { + super(destination); + } + + protected _next(value: T): void { + if (!this.hasSubscription) { + this.tryNext(value); + } + } + + private tryNext(value: T): void { + let result: ObservableInput; + const index = this.index++; + try { + result = this.project(value, index); + } catch (err) { + this.destination.error!(err); + return; + } + this.hasSubscription = true; + this._innerSub(result); + } + + private _innerSub(result: ObservableInput): void { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(result, innerSubscriber); + // The returned subscription will usually be the subscriber that was + // passed. However, interop subscribers will be wrapped and for + // unsubscriptions to chain correctly, the wrapper needs to be added, too. + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + + protected _complete(): void { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete!(); + } + this.unsubscribe(); + } + + notifyNext(innerValue: R): void { + this.destination.next!(innerValue); + } + + notifyError(err: any): void { + this.destination.error!(err); + } + + notifyComplete(): void { + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete!(); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/expand.ts b/node_modules/rxjs/src/internal/operators/expand.ts new file mode 100644 index 00000000..2047a780 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/expand.ts @@ -0,0 +1,174 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { MonoTypeOperatorFunction, OperatorFunction, ObservableInput, SchedulerLike } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +export function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +export function expand(project: (value: T, index: number) => ObservableInput, concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Recursively projects each source value to an Observable which is merged in + * the output Observable. + * + * It's similar to {@link mergeMap}, but applies the + * projection function to every source value as well as every output value. + * It's recursive. + * + * ![](expand.png) + * + * Returns an Observable that emits items based on applying a function that you + * supply to each item emitted by the source Observable, where that function + * returns an Observable, and then merging those resulting Observables and + * emitting the results of this merger. *Expand* will re-emit on the output + * Observable every source value. Then, each output value is given to the + * `project` function which returns an inner Observable to be merged on the + * output Observable. Those output values resulting from the projection are also + * given to the `project` function to produce new output values. This is how + * *expand* behaves recursively. + * + * ## Example + * Start emitting the powers of two on every click, at most 10 of them + * ```ts + * import { fromEvent, of } from 'rxjs'; + * import { expand, mapTo, delay, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const powersOfTwo = clicks.pipe( + * mapTo(1), + * expand(x => of(2 * x).pipe(delay(1000))), + * take(10), + * ); + * powersOfTwo.subscribe(x => console.log(x)); + * ``` + * + * @see {@link mergeMap} + * @see {@link mergeScan} + * + * @param {function(value: T, index: number) => Observable} project A function + * that, when applied to an item emitted by the source or the output Observable, + * returns an Observable. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input + * Observables being subscribed to concurrently. + * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to + * each projected inner Observable. + * @return {Observable} An Observable that emits the source values and also + * result of applying the projection function to each value emitted on the + * output Observable and and merging the results of the Observables obtained + * from this transformation. + * @method expand + * @owner Observable + */ +export function expand(project: (value: T, index: number) => ObservableInput, + concurrent: number = Number.POSITIVE_INFINITY, + scheduler?: SchedulerLike): OperatorFunction { + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + + return (source: Observable) => source.lift(new ExpandOperator(project, concurrent, scheduler)); +} + +export class ExpandOperator implements Operator { + constructor(private project: (value: T, index: number) => ObservableInput, + private concurrent: number, + private scheduler?: SchedulerLike) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); + } +} + +interface DispatchArg { + subscriber: ExpandSubscriber; + result: ObservableInput; + value: any; + index: number; +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class ExpandSubscriber extends SimpleOuterSubscriber { + private index: number = 0; + private active: number = 0; + private hasCompleted: boolean = false; + private buffer?: any[]; + + constructor(destination: Subscriber, + private project: (value: T, index: number) => ObservableInput, + private concurrent: number, + private scheduler?: SchedulerLike) { + super(destination); + if (concurrent < Number.POSITIVE_INFINITY) { + this.buffer = []; + } + } + + private static dispatch(arg: DispatchArg): void { + const {subscriber, result, value, index} = arg; + subscriber.subscribeToProjection(result, value, index); + } + + protected _next(value: any): void { + const destination = this.destination; + + if (destination.closed) { + this._complete(); + return; + } + + const index = this.index++; + if (this.active < this.concurrent) { + destination.next!(value); + try { + const { project } = this; + const result = project(value, index); + if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } else { + const state: DispatchArg = { subscriber: this, result, value, index }; + const destination = this.destination as Subscription; + destination.add(this.scheduler.schedule>(ExpandSubscriber.dispatch as any, 0, state)); + } + } catch (e) { + destination.error!(e); + } + } else { + this.buffer!.push(value); + } + } + + private subscribeToProjection(result: any, value: T, index: number): void { + this.active++; + const destination = this.destination as Subscription; + destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this))); + } + + protected _complete(): void { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete!(); + } + this.unsubscribe(); + } + + notifyNext(innerValue: R): void { + this._next(innerValue); + } + + notifyComplete(): void { + const buffer = this.buffer; + this.active--; + if (buffer && buffer.length > 0) { + this._next(buffer.shift()); + } + if (this.hasCompleted && this.active === 0) { + this.destination.complete!(); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/filter.ts b/node_modules/rxjs/src/internal/operators/filter.ts new file mode 100644 index 00000000..953aacc3 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/filter.ts @@ -0,0 +1,104 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/* tslint:disable:max-line-length */ +export function filter(predicate: (value: T, index: number) => value is S, + thisArg?: any): OperatorFunction; +export function filter(predicate: (value: T, index: number) => boolean, + thisArg?: any): MonoTypeOperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Filter items emitted by the source Observable by only emitting those that + * satisfy a specified predicate. + * + * Like + * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), + * it only emits a value from the source if it passes a criterion function. + * + * ![](filter.png) + * + * Similar to the well-known `Array.prototype.filter` method, this operator + * takes values from the source Observable, passes them through a `predicate` + * function and only emits those values that yielded `true`. + * + * ## Example + * Emit only click events whose target was a DIV element + * ```ts + * import { fromEvent } from 'rxjs'; + * import { filter } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const clicksOnDivs = clicks.pipe(filter(ev => ev.target.tagName === 'DIV')); + * clicksOnDivs.subscribe(x => console.log(x)); + * ``` + * + * @see {@link distinct} + * @see {@link distinctUntilChanged} + * @see {@link distinctUntilKeyChanged} + * @see {@link ignoreElements} + * @see {@link partition} + * @see {@link skip} + * + * @param {function(value: T, index: number): boolean} predicate A function that + * evaluates each value emitted by the source Observable. If it returns `true`, + * the value is emitted, if `false` the value is not passed to the output + * Observable. The `index` parameter is the number `i` for the i-th source + * emission that has happened since the subscription, starting from the number + * `0`. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {Observable} An Observable of values from the source that were + * allowed by the `predicate` function. + * @method filter + * @owner Observable + */ +export function filter(predicate: (value: T, index: number) => boolean, + thisArg?: any): MonoTypeOperatorFunction { + return function filterOperatorFunction(source: Observable): Observable { + return source.lift(new FilterOperator(predicate, thisArg)); + }; +} + +class FilterOperator implements Operator { + constructor(private predicate: (value: T, index: number) => boolean, + private thisArg?: any) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class FilterSubscriber extends Subscriber { + + count: number = 0; + + constructor(destination: Subscriber, + private predicate: (value: T, index: number) => boolean, + private thisArg: any) { + super(destination); + } + + // the try catch block below is left specifically for + // optimization and perf reasons. a tryCatcher is not necessary here. + protected _next(value: T) { + let result: any; + try { + result = this.predicate.call(this.thisArg, value, this.count++); + } catch (err) { + this.destination.error(err); + return; + } + if (result) { + this.destination.next(value); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/finalize.ts b/node_modules/rxjs/src/internal/operators/finalize.ts new file mode 100644 index 00000000..d19d6131 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/finalize.ts @@ -0,0 +1,38 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Returns an Observable that mirrors the source Observable, but will call a specified function when + * the source terminates on complete or error. + * @param {function} callback Function to be called when source terminates. + * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination. + * @method finally + * @owner Observable + */ +export function finalize(callback: () => void): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new FinallyOperator(callback)); +} + +class FinallyOperator implements Operator { + constructor(private callback: () => void) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new FinallySubscriber(subscriber, this.callback)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class FinallySubscriber extends Subscriber { + constructor(destination: Subscriber, callback: () => void) { + super(destination); + this.add(new Subscription(callback)); + } +} diff --git a/node_modules/rxjs/src/internal/operators/find.ts b/node_modules/rxjs/src/internal/operators/find.ts new file mode 100644 index 00000000..31cd7cc8 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/find.ts @@ -0,0 +1,109 @@ +import {Observable} from '../Observable'; +import {Operator} from '../Operator'; +import {Subscriber} from '../Subscriber'; +import {OperatorFunction} from '../types'; + +export function find(predicate: (value: T, index: number, source: Observable) => value is S, + thisArg?: any): OperatorFunction; +export function find(predicate: (value: T, index: number, source: Observable) => boolean, + thisArg?: any): OperatorFunction; +/** + * Emits only the first value emitted by the source Observable that meets some + * condition. + * + * Finds the first value that passes some test and emits + * that. + * + * ![](find.png) + * + * `find` searches for the first item in the source Observable that matches the + * specified condition embodied by the `predicate`, and returns the first + * occurrence in the source. Unlike {@link first}, the `predicate` is required + * in `find`, and does not emit an error if a valid value is not found. + * + * ## Example + * Find and emit the first click that happens on a DIV element + * ```ts + * import { fromEvent } from 'rxjs'; + * import { find } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(find(ev => ev.target.tagName === 'DIV')); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link filter} + * @see {@link first} + * @see {@link findIndex} + * @see {@link take} + * + * @param {function(value: T, index: number, source: Observable): boolean} predicate + * A function called with each item to test for condition matching. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {Observable} An Observable of the first item that matches the + * condition. + * @method find + * @owner Observable + */ +export function find(predicate: (value: T, index: number, source: Observable) => boolean, + thisArg?: any): OperatorFunction { + if (typeof predicate !== 'function') { + throw new TypeError('predicate is not a function'); + } + return (source: Observable) => source.lift(new FindValueOperator(predicate, source, false, thisArg)) as Observable; +} + +export class FindValueOperator implements Operator { + constructor(private predicate: (value: T, index: number, source: Observable) => boolean, + private source: Observable, + private yieldIndex: boolean, + private thisArg?: any) { + } + + call(observer: Subscriber, source: any): any { + return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class FindValueSubscriber extends Subscriber { + private index: number = 0; + + constructor(destination: Subscriber, + private predicate: (value: T, index: number, source: Observable) => boolean, + private source: Observable, + private yieldIndex: boolean, + private thisArg?: any) { + super(destination); + } + + private notifyComplete(value: any): void { + const destination = this.destination; + + destination.next(value); + destination.complete(); + this.unsubscribe(); + } + + protected _next(value: T): void { + const {predicate, thisArg} = this; + const index = this.index++; + try { + const result = predicate.call(thisArg || this, value, index, this.source); + if (result) { + this.notifyComplete(this.yieldIndex ? index : value); + } + } catch (err) { + this.destination.error(err); + } + } + + protected _complete(): void { + this.notifyComplete(this.yieldIndex ? -1 : undefined); + } +} diff --git a/node_modules/rxjs/src/internal/operators/findIndex.ts b/node_modules/rxjs/src/internal/operators/findIndex.ts new file mode 100644 index 00000000..bdb62d45 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/findIndex.ts @@ -0,0 +1,47 @@ +import { Observable } from '../Observable'; +import { FindValueOperator } from '../operators/find'; +import { OperatorFunction } from '../types'; +/** + * Emits only the index of the first value emitted by the source Observable that + * meets some condition. + * + * It's like {@link find}, but emits the index of the + * found value, not the value itself. + * + * ![](findIndex.png) + * + * `findIndex` searches for the first item in the source Observable that matches + * the specified condition embodied by the `predicate`, and returns the + * (zero-based) index of the first occurrence in the source. Unlike + * {@link first}, the `predicate` is required in `findIndex`, and does not emit + * an error if a valid value is not found. + * + * ## Example + * Emit the index of first click that happens on a DIV element + * ```ts + * import { fromEvent } from 'rxjs'; + * import { findIndex } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(findIndex(ev => ev.target.tagName === 'DIV')); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link filter} + * @see {@link find} + * @see {@link first} + * @see {@link take} + * + * @param {function(value: T, index: number, source: Observable): boolean} predicate + * A function called with each item to test for condition matching. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {Observable} An Observable of the index of the first item that + * matches the condition. + * @method find + * @owner Observable + */ +export function findIndex(predicate: (value: T, index: number, source: Observable) => boolean, + thisArg?: any): OperatorFunction { + return (source: Observable) => source.lift(new FindValueOperator(predicate, source, true, thisArg)) as Observable; +} diff --git a/node_modules/rxjs/src/internal/operators/first.ts b/node_modules/rxjs/src/internal/operators/first.ts new file mode 100644 index 00000000..80ad1112 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/first.ts @@ -0,0 +1,91 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; +import { OperatorFunction } from '../../internal/types'; +import { filter } from './filter'; +import { take } from './take'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { throwIfEmpty } from './throwIfEmpty'; +import { identity } from '../util/identity'; + +/* tslint:disable:max-line-length */ +export function first( + predicate?: null, + defaultValue?: D +): OperatorFunction; +export function first( + predicate: (value: T, index: number, source: Observable) => value is S, + defaultValue?: S +): OperatorFunction; +export function first( + predicate: (value: T, index: number, source: Observable) => boolean, + defaultValue?: D +): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Emits only the first value (or the first value that meets some condition) + * emitted by the source Observable. + * + * Emits only the first value. Or emits only the first + * value that passes some test. + * + * ![](first.png) + * + * If called with no arguments, `first` emits the first value of the source + * Observable, then completes. If called with a `predicate` function, `first` + * emits the first value of the source that matches the specified condition. It + * may also take a deprecated `resultSelector` function to produce the output + * value from the input value, and a `defaultValue` to emit in case the source + * completes before it is able to emit a valid value. Throws an error if + * `defaultValue` was not provided and a matching element is not found. + * + * ## Examples + * Emit only the first click that happens on the DOM + * ```ts + * import { fromEvent } from 'rxjs'; + * import { first } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(first()); + * result.subscribe(x => console.log(x)); + * ``` + * + * Emits the first click that happens on a DIV + * ```ts + * import { fromEvent } from 'rxjs'; + * import { first } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(first(ev => ev.target.tagName === 'DIV')); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link filter} + * @see {@link find} + * @see {@link take} + * + * @throws {EmptyError} Delivers an EmptyError to the Observer's `error` + * callback if the Observable completes before any `next` notification was sent. + * + * @param {function(value: T, index: number, source: Observable): boolean} [predicate] + * An optional function called with each item to test for condition matching. + * @param {R} [defaultValue] The default value emitted in case no valid value + * was found on the source. + * @return {Observable} An Observable of the first item that matches the + * condition. + * @method first + * @owner Observable + */ +export function first( + predicate?: ((value: T, index: number, source: Observable) => boolean) | null, + defaultValue?: D +): OperatorFunction { + const hasDefaultValue = arguments.length >= 2; + return (source: Observable) => source.pipe( + predicate ? filter((v, i) => predicate(v, i, source)) : identity, + take(1), + hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()), + ); +} diff --git a/node_modules/rxjs/src/internal/operators/groupBy.ts b/node_modules/rxjs/src/internal/operators/groupBy.ts new file mode 100644 index 00000000..3f6343fc --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/groupBy.ts @@ -0,0 +1,319 @@ +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subject } from '../Subject'; +import { OperatorFunction } from '../types'; + +/* tslint:disable:max-line-length */ +export function groupBy(keySelector: (value: T) => K): OperatorFunction>; +export function groupBy(keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable) => Observable): OperatorFunction>; +export function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable): OperatorFunction>; +export function groupBy(keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable, subjectSelector?: () => Subject): OperatorFunction>; +/* tslint:enable:max-line-length */ + +/** + * Groups the items emitted by an Observable according to a specified criterion, + * and emits these grouped items as `GroupedObservables`, one + * {@link GroupedObservable} per group. + * + * ![](groupBy.png) + * + * When the Observable emits an item, a key is computed for this item with the keySelector function. + * + * If a {@link GroupedObservable} for this key exists, this {@link GroupedObservable} emits. Elsewhere, a new + * {@link GroupedObservable} for this key is created and emits. + * + * A {@link GroupedObservable} represents values belonging to the same group represented by a common key. The common + * key is available as the key field of a {@link GroupedObservable} instance. + * + * The elements emitted by {@link GroupedObservable}s are by default the items emitted by the Observable, or elements + * returned by the elementSelector function. + * + * ## Examples + * + * ### Group objects by id and return as array + * + * ```ts + * import { of } from 'rxjs'; + * import { mergeMap, groupBy, reduce } from 'rxjs/operators'; + * + * of( + * {id: 1, name: 'JavaScript'}, + * {id: 2, name: 'Parcel'}, + * {id: 2, name: 'webpack'}, + * {id: 1, name: 'TypeScript'}, + * {id: 3, name: 'TSLint'} + * ).pipe( + * groupBy(p => p.id), + * mergeMap((group$) => group$.pipe(reduce((acc, cur) => [...acc, cur], []))), + * ) + * .subscribe(p => console.log(p)); + * + * // displays: + * // [ { id: 1, name: 'JavaScript'}, + * // { id: 1, name: 'TypeScript'} ] + * // + * // [ { id: 2, name: 'Parcel'}, + * // { id: 2, name: 'webpack'} ] + * // + * // [ { id: 3, name: 'TSLint'} ] + * ``` + * + * ### Pivot data on the id field + * + * ```ts + * import { of } from 'rxjs'; + * import { groupBy, map, mergeMap, reduce } from 'rxjs/operators'; + * + * of( + * { id: 1, name: 'JavaScript' }, + * { id: 2, name: 'Parcel' }, + * { id: 2, name: 'webpack' }, + * { id: 1, name: 'TypeScript' }, + * { id: 3, name: 'TSLint' } + * ) + * .pipe( + * groupBy(p => p.id, p => p.name), + * mergeMap(group$ => + * group$.pipe(reduce((acc, cur) => [...acc, cur], [`${group$.key}`])) + * ), + * map(arr => ({ id: parseInt(arr[0], 10), values: arr.slice(1) })) + * ) + * .subscribe(p => console.log(p)); + * + * // displays: + * // { id: 1, values: [ 'JavaScript', 'TypeScript' ] } + * // { id: 2, values: [ 'Parcel', 'webpack' ] } + * // { id: 3, values: [ 'TSLint' ] } + * ``` + * + * @param {function(value: T): K} keySelector A function that extracts the key + * for each item. + * @param {function(value: T): R} [elementSelector] A function that extracts the + * return element for each item. + * @param {function(grouped: GroupedObservable): Observable} [durationSelector] + * A function that returns an Observable to determine how long each group should + * exist. + * @return {Observable>} An Observable that emits + * GroupedObservables, each of which corresponds to a unique key value and each + * of which emits those items from the source Observable that share that key + * value. + * @method groupBy + * @owner Observable + */ +export function groupBy(keySelector: (value: T) => K, + elementSelector?: ((value: T) => R) | void, + durationSelector?: (grouped: GroupedObservable) => Observable, + subjectSelector?: () => Subject): OperatorFunction> { + return (source: Observable) => + source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); +} + +export interface RefCountSubscription { + count: number; + unsubscribe: () => void; + closed: boolean; + attemptedToUnsubscribe: boolean; +} + +class GroupByOperator implements Operator> { + constructor(private keySelector: (value: T) => K, + private elementSelector?: ((value: T) => R) | void, + private durationSelector?: (grouped: GroupedObservable) => Observable, + private subjectSelector?: () => Subject) { + } + + call(subscriber: Subscriber>, source: any): any { + return source.subscribe(new GroupBySubscriber( + subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector + )); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class GroupBySubscriber extends Subscriber implements RefCountSubscription { + private groups: Map> = null; + public attemptedToUnsubscribe: boolean = false; + public count: number = 0; + + constructor(destination: Subscriber>, + private keySelector: (value: T) => K, + private elementSelector?: ((value: T) => R) | void, + private durationSelector?: (grouped: GroupedObservable) => Observable, + private subjectSelector?: () => Subject) { + super(destination); + } + + protected _next(value: T): void { + let key: K; + try { + key = this.keySelector(value); + } catch (err) { + this.error(err); + return; + } + + this._group(value, key); + } + + private _group(value: T, key: K) { + let groups = this.groups; + + if (!groups) { + groups = this.groups = new Map>(); + } + + let group = groups.get(key); + + let element: R; + if (this.elementSelector) { + try { + element = this.elementSelector(value); + } catch (err) { + this.error(err); + } + } else { + element = value; + } + + if (!group) { + group = (this.subjectSelector ? this.subjectSelector() : new Subject()) as Subject; + groups.set(key, group); + const groupedObservable = new GroupedObservable(key, group, this); + this.destination.next(groupedObservable); + if (this.durationSelector) { + let duration: any; + try { + duration = this.durationSelector(new GroupedObservable(key, >group)); + } catch (err) { + this.error(err); + return; + } + this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); + } + } + + if (!group.closed) { + group.next(element); + } + } + + protected _error(err: any): void { + const groups = this.groups; + if (groups) { + groups.forEach((group, key) => { + group.error(err); + }); + + groups.clear(); + } + this.destination.error(err); + } + + protected _complete(): void { + const groups = this.groups; + if (groups) { + groups.forEach((group, key) => { + group.complete(); + }); + + groups.clear(); + } + this.destination.complete(); + } + + removeGroup(key: K): void { + this.groups.delete(key); + } + + unsubscribe() { + if (!this.closed) { + this.attemptedToUnsubscribe = true; + if (this.count === 0) { + super.unsubscribe(); + } + } + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class GroupDurationSubscriber extends Subscriber { + constructor(private key: K, + private group: Subject, + private parent: GroupBySubscriber) { + super(group); + } + + protected _next(value: T): void { + this.complete(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + const { parent, key } = this; + this.key = this.parent = null; + if (parent) { + parent.removeGroup(key); + } + } +} + +/** + * An Observable representing values belonging to the same group represented by + * a common key. The values emitted by a GroupedObservable come from the source + * Observable. The common key is available as the field `key` on a + * GroupedObservable instance. + * + * @class GroupedObservable + */ +export class GroupedObservable extends Observable { + /** @deprecated Do not construct this type. Internal use only */ + constructor(public key: K, + private groupSubject: Subject, + private refCountSubscription?: RefCountSubscription) { + super(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber) { + const subscription = new Subscription(); + const { refCountSubscription, groupSubject } = this; + if (refCountSubscription && !refCountSubscription.closed) { + subscription.add(new InnerRefCountSubscription(refCountSubscription)); + } + subscription.add(groupSubject.subscribe(subscriber)); + return subscription; + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class InnerRefCountSubscription extends Subscription { + constructor(private parent: RefCountSubscription) { + super(); + parent.count++; + } + + unsubscribe() { + const parent = this.parent; + if (!parent.closed && !this.closed) { + super.unsubscribe(); + parent.count -= 1; + if (parent.count === 0 && parent.attemptedToUnsubscribe) { + parent.unsubscribe(); + } + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/ignoreElements.ts b/node_modules/rxjs/src/internal/operators/ignoreElements.ts new file mode 100644 index 00000000..e153e774 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/ignoreElements.ts @@ -0,0 +1,54 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { OperatorFunction } from '../types'; + +/** + * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`. + * + * ![](ignoreElements.png) + * + * ## Examples + * ### Ignores emitted values, reacts to observable's completion. + * ```ts + * import { of } from 'rxjs'; + * import { ignoreElements } from 'rxjs/operators'; + * + * of('you', 'talking', 'to', 'me').pipe( + * ignoreElements(), + * ) + * .subscribe( + * word => console.log(word), + * err => console.log('error:', err), + * () => console.log('the end'), + * ); + * // result: + * // 'the end' + * ``` + * @return {Observable} An empty Observable that only calls `complete` + * or `error`, based on which one is called by the source Observable. + * @method ignoreElements + * @owner Observable + */ +export function ignoreElements(): OperatorFunction { + return function ignoreElementsOperatorFunction(source: Observable) { + return source.lift(new IgnoreElementsOperator()); + }; +} + +class IgnoreElementsOperator implements Operator { + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class IgnoreElementsSubscriber extends Subscriber { + protected _next(unused: T): void { + // Do nothing + } +} diff --git a/node_modules/rxjs/src/internal/operators/index.ts b/node_modules/rxjs/src/internal/operators/index.ts new file mode 100644 index 00000000..73215595 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/index.ts @@ -0,0 +1,102 @@ +export { audit } from './audit'; +export { auditTime } from './auditTime'; +export { buffer } from './buffer'; +export { bufferCount } from './bufferCount'; +export { bufferTime } from './bufferTime'; +export { bufferToggle } from './bufferToggle'; +export { bufferWhen } from './bufferWhen'; +export { catchError } from './catchError'; +export { combineAll } from './combineAll'; +export { combineLatest } from './combineLatest'; +export { concat } from './concat'; +export { concatAll } from './concatAll'; +export { concatMap } from './concatMap'; +export { concatMapTo } from './concatMapTo'; +export { count } from './count'; +export { debounce } from './debounce'; +export { debounceTime } from './debounceTime'; +export { defaultIfEmpty } from './defaultIfEmpty'; +export { delay } from './delay'; +export { delayWhen } from './delayWhen'; +export { dematerialize } from './dematerialize'; +export { distinct } from './distinct'; +export { distinctUntilChanged } from './distinctUntilChanged'; +export { distinctUntilKeyChanged } from './distinctUntilKeyChanged'; +export { elementAt } from './elementAt'; +export { every } from './every'; +export { exhaust } from './exhaust'; +export { exhaustMap } from './exhaustMap'; +export { expand } from './expand'; +export { filter } from './filter'; +export { finalize } from './finalize'; +export { find } from './find'; +export { findIndex } from './findIndex'; +export { first } from './first'; +export { groupBy } from './groupBy'; +export { ignoreElements } from './ignoreElements'; +export { isEmpty } from './isEmpty'; +export { last } from './last'; +export { map } from './map'; +export { mapTo } from './mapTo'; +export { materialize } from './materialize'; +export { max } from './max'; +export { merge } from './merge'; +export { mergeAll } from './mergeAll'; +export { mergeMap } from './mergeMap'; +export { mergeMap as flatMap } from './mergeMap'; +export { mergeMapTo } from './mergeMapTo'; +export { mergeScan } from './mergeScan'; +export { min } from './min'; +export { multicast } from './multicast'; +export { observeOn } from './observeOn'; +export { onErrorResumeNext } from './onErrorResumeNext'; +export { pairwise } from './pairwise'; +export { partition } from './partition'; +export { pluck } from './pluck'; +export { publish } from './publish'; +export { publishBehavior } from './publishBehavior'; +export { publishLast } from './publishLast'; +export { publishReplay } from './publishReplay'; +export { race } from './race'; +export { reduce } from './reduce'; +export { repeat } from './repeat'; +export { repeatWhen } from './repeatWhen'; +export { retry } from './retry'; +export { retryWhen } from './retryWhen'; +export { refCount } from './refCount'; +export { sample } from './sample'; +export { sampleTime } from './sampleTime'; +export { scan } from './scan'; +export { sequenceEqual } from './sequenceEqual'; +export { share } from './share'; +export { shareReplay } from './shareReplay'; +export { single } from './single'; +export { skip } from './skip'; +export { skipLast } from './skipLast'; +export { skipUntil } from './skipUntil'; +export { skipWhile } from './skipWhile'; +export { startWith } from './startWith'; +export { subscribeOn } from './subscribeOn'; +export { switchAll } from './switchAll'; +export { switchMap } from './switchMap'; +export { switchMapTo } from './switchMapTo'; +export { take } from './take'; +export { takeLast } from './takeLast'; +export { takeUntil } from './takeUntil'; +export { takeWhile } from './takeWhile'; +export { tap } from './tap'; +export { throttle } from './throttle'; +export { throttleTime } from './throttleTime'; +export { timeInterval } from './timeInterval'; +export { timeout } from './timeout'; +export { timeoutWith } from './timeoutWith'; +export { timestamp } from './timestamp'; +export { toArray } from './toArray'; +export { window } from './window'; +export { windowCount } from './windowCount'; +export { windowTime } from './windowTime'; +export { windowToggle } from './windowToggle'; +export { windowWhen } from './windowWhen'; +export { withLatestFrom } from './withLatestFrom'; +export { zip } from './zip'; +export { zipAll } from './zipAll'; diff --git a/node_modules/rxjs/src/internal/operators/isEmpty.ts b/node_modules/rxjs/src/internal/operators/isEmpty.ts new file mode 100644 index 00000000..37a04678 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/isEmpty.ts @@ -0,0 +1,100 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; + +/** + * Emits false if the input observable emits any values, or emits true if the + * input observable completes without emitting any values. + * + * Tells whether any values are emitted by an observable + * + * ![](isEmpty.png) + * + * `isEmpty` transforms an Observable that emits values into an Observable that + * emits a single boolean value representing whether or not any values were + * emitted by the source Observable. As soon as the source Observable emits a + * value, `isEmpty` will emit a `false` and complete. If the source Observable + * completes having not emitted anything, `isEmpty` will emit a `true` and + * complete. + * + * A similar effect could be achieved with {@link count}, but `isEmpty` can emit + * a `false` value sooner. + * + * ## Examples + * + * Emit `false` for a non-empty Observable + * ```javascript + * import { Subject } from 'rxjs'; + * import { isEmpty } from 'rxjs/operators'; + * + * const source = new Subject(); + * const result = source.pipe(isEmpty()); + * source.subscribe(x => console.log(x)); + * result.subscribe(x => console.log(x)); + * source.next('a'); + * source.next('b'); + * source.next('c'); + * source.complete(); + * + * // Results in: + * // a + * // false + * // b + * // c + * ``` + * + * Emit `true` for an empty Observable + * ```javascript + * import { EMPTY } from 'rxjs'; + * import { isEmpty } from 'rxjs/operators'; + * + * const result = EMPTY.pipe(isEmpty()); + * result.subscribe(x => console.log(x)); + * // Results in: + * // true + * ``` + * + * @see {@link count} + * @see {@link EMPTY} + * + * @return {OperatorFunction} An Observable of a boolean value indicating whether observable was empty or not + * @method isEmpty + * @owner Observable + */ + +export function isEmpty(): OperatorFunction { + return (source: Observable) => source.lift(new IsEmptyOperator()); +} + +class IsEmptyOperator implements Operator { + call (observer: Subscriber, source: any): any { + return source.subscribe(new IsEmptySubscriber(observer)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class IsEmptySubscriber extends Subscriber { + constructor(destination: Subscriber) { + super(destination); + } + + private notifyComplete(isEmpty: boolean): void { + const destination = this.destination; + + destination.next(isEmpty); + destination.complete(); + } + + protected _next(value: boolean) { + this.notifyComplete(false); + } + + protected _complete() { + this.notifyComplete(true); + } +} diff --git a/node_modules/rxjs/src/internal/operators/last.ts b/node_modules/rxjs/src/internal/operators/last.ts new file mode 100644 index 00000000..23626c57 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/last.ts @@ -0,0 +1,54 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; +import { OperatorFunction } from '../../internal/types'; +import { filter } from './filter'; +import { takeLast } from './takeLast'; +import { throwIfEmpty } from './throwIfEmpty'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { identity } from '../util/identity'; + +/* tslint:disable:max-line-length */ +export function last( + predicate?: null, + defaultValue?: D +): OperatorFunction; +export function last( + predicate: (value: T, index: number, source: Observable) => value is S, + defaultValue?: S +): OperatorFunction; +export function last( + predicate: (value: T, index: number, source: Observable) => boolean, + defaultValue?: D +): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Returns an Observable that emits only the last item emitted by the source Observable. + * It optionally takes a predicate function as a parameter, in which case, rather than emitting + * the last item from the source Observable, the resulting Observable will emit the last item + * from the source Observable that satisfies the predicate. + * + * ![](last.png) + * + * @throws {EmptyError} Delivers an EmptyError to the Observer's `error` + * callback if the Observable completes before any `next` notification was sent. + * @param {function} [predicate] - The condition any source emitted item has to satisfy. + * @param {any} [defaultValue] - An optional default value to provide if last + * predicate isn't met or no values were emitted. + * @return {Observable} An Observable that emits only the last item satisfying the given condition + * from the source, or an NoSuchElementException if no such items are emitted. + * @throws - Throws if no items that match the predicate are emitted by the source Observable. + */ +export function last( + predicate?: ((value: T, index: number, source: Observable) => boolean) | null, + defaultValue?: D +): OperatorFunction { + const hasDefaultValue = arguments.length >= 2; + return (source: Observable) => source.pipe( + predicate ? filter((v, i) => predicate(v, i, source)) : identity, + takeLast(1), + hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()), + ); +} diff --git a/node_modules/rxjs/src/internal/operators/map.ts b/node_modules/rxjs/src/internal/operators/map.ts new file mode 100644 index 00000000..f969ed6c --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/map.ts @@ -0,0 +1,91 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; + +/** + * Applies a given `project` function to each value emitted by the source + * Observable, and emits the resulting values as an Observable. + * + * Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map), + * it passes each source value through a transformation function to get + * corresponding output values. + * + * ![](map.png) + * + * Similar to the well known `Array.prototype.map` function, this operator + * applies a projection to each value and emits that projection in the output + * Observable. + * + * ## Example + * Map every click to the clientX position of that click + * ```ts + * import { fromEvent } from 'rxjs'; + * import { map } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const positions = clicks.pipe(map(ev => ev.clientX)); + * positions.subscribe(x => console.log(x)); + * ``` + * + * @see {@link mapTo} + * @see {@link pluck} + * + * @param {function(value: T, index: number): R} project The function to apply + * to each `value` emitted by the source Observable. The `index` parameter is + * the number `i` for the i-th emission that has happened since the + * subscription, starting from the number `0`. + * @param {any} [thisArg] An optional argument to define what `this` is in the + * `project` function. + * @return {Observable} An Observable that emits the values from the source + * Observable transformed by the given `project` function. + * @method map + * @owner Observable + */ +export function map(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction { + return function mapOperation(source: Observable): Observable { + if (typeof project !== 'function') { + throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); + } + return source.lift(new MapOperator(project, thisArg)); + }; +} + +export class MapOperator implements Operator { + constructor(private project: (value: T, index: number) => R, private thisArg: any) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class MapSubscriber extends Subscriber { + count: number = 0; + private thisArg: any; + + constructor(destination: Subscriber, + private project: (value: T, index: number) => R, + thisArg: any) { + super(destination); + this.thisArg = thisArg || this; + } + + // NOTE: This looks unoptimized, but it's actually purposefully NOT + // using try/catch optimizations. + protected _next(value: T) { + let result: R; + try { + result = this.project.call(this.thisArg, value, this.count++); + } catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + } +} diff --git a/node_modules/rxjs/src/internal/operators/mapTo.ts b/node_modules/rxjs/src/internal/operators/mapTo.ts new file mode 100644 index 00000000..a072604d --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/mapTo.ts @@ -0,0 +1,72 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; + +/** + * Emits the given constant value on the output Observable every time the source + * Observable emits a value. + * + * Like {@link map}, but it maps every source value to + * the same output value every time. + * + * ![](mapTo.png) + * + * Takes a constant `value` as argument, and emits that whenever the source + * Observable emits a value. In other words, ignores the actual source value, + * and simply uses the emission moment to know when to emit the given `value`. + * + * ## Example + * Map every click to the string 'Hi' + * ```ts + * import { fromEvent } from 'rxjs'; + * import { mapTo } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const greetings = clicks.pipe(mapTo('Hi')); + * greetings.subscribe(x => console.log(x)); + * ``` + * + * @see {@link map} + * + * @param {any} value The value to map each source value to. + * @return {Observable} An Observable that emits the given `value` every time + * the source Observable emits something. + * @method mapTo + * @owner Observable + */ +export function mapTo(value: R): OperatorFunction { + return (source: Observable) => source.lift(new MapToOperator(value)); +} + +class MapToOperator implements Operator { + + value: R; + + constructor(value: R) { + this.value = value; + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new MapToSubscriber(subscriber, this.value)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class MapToSubscriber extends Subscriber { + + value: R; + + constructor(destination: Subscriber, value: R) { + super(destination); + this.value = value; + } + + protected _next(x: T) { + this.destination.next(this.value); + } +} diff --git a/node_modules/rxjs/src/internal/operators/materialize.ts b/node_modules/rxjs/src/internal/operators/materialize.ts new file mode 100644 index 00000000..deff345e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/materialize.ts @@ -0,0 +1,94 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Notification } from '../Notification'; +import { OperatorFunction } from '../types'; + +/** + * Represents all of the notifications from the source Observable as `next` + * emissions marked with their original types within {@link Notification} + * objects. + * + * Wraps `next`, `error` and `complete` emissions in + * {@link Notification} objects, emitted as `next` on the output Observable. + * + * + * ![](materialize.png) + * + * `materialize` returns an Observable that emits a `next` notification for each + * `next`, `error`, or `complete` emission of the source Observable. When the + * source Observable emits `complete`, the output Observable will emit `next` as + * a Notification of type "complete", and then it will emit `complete` as well. + * When the source Observable emits `error`, the output will emit `next` as a + * Notification of type "error", and then `complete`. + * + * This operator is useful for producing metadata of the source Observable, to + * be consumed as `next` emissions. Use it in conjunction with + * {@link dematerialize}. + * + * ## Example + * Convert a faulty Observable to an Observable of Notifications + * ```ts + * import { of } from 'rxjs'; + * import { materialize, map } from 'rxjs/operators'; + * + * const letters = of('a', 'b', 13, 'd'); + * const upperCase = letters.pipe(map(x => x.toUpperCase())); + * const materialized = upperCase.pipe(materialize()); + * materialized.subscribe(x => console.log(x)); + * + * // Results in the following: + * // - Notification {kind: "N", value: "A", error: undefined, hasValue: true} + * // - Notification {kind: "N", value: "B", error: undefined, hasValue: true} + * // - Notification {kind: "E", value: undefined, error: TypeError: + * // x.toUpperCase is not a function at MapSubscriber.letters.map.x + * // [as project] (http://1…, hasValue: false} + * ``` + * + * @see {@link Notification} + * @see {@link dematerialize} + * + * @return {Observable>} An Observable that emits + * {@link Notification} objects that wrap the original emissions from the source + * Observable with metadata. + * @method materialize + * @owner Observable + */ +export function materialize(): OperatorFunction> { + return function materializeOperatorFunction(source: Observable) { + return source.lift(new MaterializeOperator()); + }; +} + +class MaterializeOperator implements Operator> { + call(subscriber: Subscriber>, source: any): any { + return source.subscribe(new MaterializeSubscriber(subscriber)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class MaterializeSubscriber extends Subscriber { + constructor(destination: Subscriber>) { + super(destination); + } + + protected _next(value: T) { + this.destination.next(Notification.createNext(value)); + } + + protected _error(err: any) { + const destination = this.destination; + destination.next(Notification.createError(err)); + destination.complete(); + } + + protected _complete() { + const destination = this.destination; + destination.next(Notification.createComplete()); + destination.complete(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/max.ts b/node_modules/rxjs/src/internal/operators/max.ts new file mode 100644 index 00000000..d135aa6d --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/max.ts @@ -0,0 +1,55 @@ +import { reduce } from './reduce'; +import { MonoTypeOperatorFunction } from '../types'; + +/** + * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function), + * and when source Observable completes it emits a single item: the item with the largest value. + * + * ![](max.png) + * + * ## Examples + * Get the maximal value of a series of numbers + * ```ts + * import { of } from 'rxjs'; + * import { max } from 'rxjs/operators'; + * + * of(5, 4, 7, 2, 8).pipe( + * max(), + * ) + * .subscribe(x => console.log(x)); // -> 8 + * ``` + * + * Use a comparer function to get the maximal item + * ```typescript + * import { of } from 'rxjs'; + * import { max } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * of( + * {age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}, + * ).pipe( + * max((a: Person, b: Person) => a.age < b.age ? -1 : 1), + * ) + * .subscribe((x: Person) => console.log(x.name)); // -> 'Beer' + * ``` + * + * @see {@link min} + * + * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the + * value of two items. + * @return {Observable} An Observable that emits item with the largest value. + * @method max + * @owner Observable + */ +export function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction { + const max: (x: T, y: T) => T = (typeof comparer === 'function') + ? (x, y) => comparer(x, y) > 0 ? x : y + : (x, y) => x > y ? x : y; + + return reduce(max); +} diff --git a/node_modules/rxjs/src/internal/operators/merge.ts b/node_modules/rxjs/src/internal/operators/merge.ts new file mode 100644 index 00000000..cb628cfd --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/merge.ts @@ -0,0 +1,41 @@ +import { merge as mergeStatic } from '../observable/merge'; +import { Observable } from '../Observable'; +import { ObservableInput, OperatorFunction, MonoTypeOperatorFunction, SchedulerLike } from '../types'; + +/* tslint:disable:max-line-length */ +/** @deprecated Deprecated in favor of static merge. */ +export function merge(scheduler?: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(concurrent?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(...observables: Array | SchedulerLike | number>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static merge. */ +export function merge(...observables: Array | SchedulerLike | number>): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * @deprecated Deprecated in favor of static {@link merge}. + */ +export function merge(...observables: Array | SchedulerLike | number>): OperatorFunction { + return (source: Observable) => source.lift.call(mergeStatic(source, ...observables)); +} diff --git a/node_modules/rxjs/src/internal/operators/mergeAll.ts b/node_modules/rxjs/src/internal/operators/mergeAll.ts new file mode 100644 index 00000000..6659290f --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/mergeAll.ts @@ -0,0 +1,66 @@ + +import { mergeMap } from './mergeMap'; +import { identity } from '../util/identity'; +import { OperatorFunction, ObservableInput } from '../types'; + +/** + * Converts a higher-order Observable into a first-order Observable which + * concurrently delivers all values that are emitted on the inner Observables. + * + * Flattens an Observable-of-Observables. + * + * ![](mergeAll.png) + * + * `mergeAll` subscribes to an Observable that emits Observables, also known as + * a higher-order Observable. Each time it observes one of these emitted inner + * Observables, it subscribes to that and delivers all the values from the + * inner Observable on the output Observable. The output Observable only + * completes once all inner Observables have completed. Any error delivered by + * a inner Observable will be immediately emitted on the output Observable. + * + * ## Examples + * Spawn a new interval Observable for each click event, and blend their outputs as one Observable + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { map, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const higherOrder = clicks.pipe(map((ev) => interval(1000))); + * const firstOrder = higherOrder.pipe(mergeAll()); + * firstOrder.subscribe(x => console.log(x)); + * ``` + * + * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { take, map, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const higherOrder = clicks.pipe( + * map((ev) => interval(1000).pipe(take(10))), + * ); + * const firstOrder = higherOrder.pipe(mergeAll(2)); + * firstOrder.subscribe(x => console.log(x)); + * ``` + * + * @see {@link combineAll} + * @see {@link concatAll} + * @see {@link exhaust} + * @see {@link merge} + * @see {@link mergeMap} + * @see {@link mergeMapTo} + * @see {@link mergeScan} + * @see {@link switchAll} + * @see {@link switchMap} + * @see {@link zipAll} + * + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner + * Observables being subscribed to concurrently. + * @return {Observable} An Observable that emits values coming from all the + * inner Observables emitted by the source Observable. + * @method mergeAll + * @owner Observable + */ +export function mergeAll(concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction, T> { + return mergeMap(identity, concurrent); +} diff --git a/node_modules/rxjs/src/internal/operators/mergeMap.ts b/node_modules/rxjs/src/internal/operators/mergeMap.ts new file mode 100644 index 00000000..d8858462 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/mergeMap.ts @@ -0,0 +1,179 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +export function mergeMap>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export function mergeMap>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction>; +/** @deprecated resultSelector no longer supported, use inner map instead */ +export function mergeMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Projects each source value to an Observable which is merged in the output + * Observable. + * + * Maps each value to an Observable, then flattens all of + * these inner Observables using {@link mergeAll}. + * + * ![](mergeMap.png) + * + * Returns an Observable that emits items based on applying a function that you + * supply to each item emitted by the source Observable, where that function + * returns an Observable, and then merging those resulting Observables and + * emitting the results of this merger. + * + * ## Example + * Map and flatten each letter to an Observable ticking every 1 second + * ```ts + * import { of, interval } from 'rxjs'; + * import { mergeMap, map } from 'rxjs/operators'; + * + * const letters = of('a', 'b', 'c'); + * const result = letters.pipe( + * mergeMap(x => interval(1000).pipe(map(i => x+i))), + * ); + * result.subscribe(x => console.log(x)); + * + * // Results in the following: + * // a0 + * // b0 + * // c0 + * // a1 + * // b1 + * // c1 + * // continues to list a,b,c with respective ascending integers + * ``` + * + * @see {@link concatMap} + * @see {@link exhaustMap} + * @see {@link merge} + * @see {@link mergeAll} + * @see {@link mergeMapTo} + * @see {@link mergeScan} + * @see {@link switchMap} + * + * @param {function(value: T, ?index: number): ObservableInput} project A function + * that, when applied to an item emitted by the source Observable, returns an + * Observable. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input + * Observables being subscribed to concurrently. + * @return {Observable} An Observable that emits the result of applying the + * projection function (and the optional deprecated `resultSelector`) to each item + * emitted by the source Observable and merging the results of the Observables + * obtained from this transformation. + */ +export function mergeMap>( + project: (value: T, index: number) => O, + resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number, + concurrent: number = Number.POSITIVE_INFINITY +): OperatorFunction|R> { + if (typeof resultSelector === 'function') { + // DEPRECATED PATH + return (source: Observable) => source.pipe( + mergeMap((a, i) => from(project(a, i)).pipe( + map((b: any, ii: number) => resultSelector(a, b, i, ii)), + ), concurrent) + ); + } else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return (source: Observable) => source.lift(new MergeMapOperator(project, concurrent)); +} + +export class MergeMapOperator implements Operator { + constructor(private project: (value: T, index: number) => ObservableInput, + private concurrent: number = Number.POSITIVE_INFINITY) { + } + + call(observer: Subscriber, source: any): any { + return source.subscribe(new MergeMapSubscriber( + observer, this.project, this.concurrent + )); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class MergeMapSubscriber extends SimpleOuterSubscriber { + private hasCompleted: boolean = false; + private buffer: T[] = []; + private active: number = 0; + protected index: number = 0; + + constructor(destination: Subscriber, + private project: (value: T, index: number) => ObservableInput, + private concurrent: number = Number.POSITIVE_INFINITY) { + super(destination); + } + + protected _next(value: T): void { + if (this.active < this.concurrent) { + this._tryNext(value); + } else { + this.buffer.push(value); + } + } + + protected _tryNext(value: T) { + let result: ObservableInput; + const index = this.index++; + try { + result = this.project(value, index); + } catch (err) { + this.destination.error!(err); + return; + } + this.active++; + this._innerSub(result); + } + + private _innerSub(ish: ObservableInput): void { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(ish, innerSubscriber); + // The returned subscription will usually be the subscriber that was + // passed. However, interop subscribers will be wrapped and for + // unsubscriptions to chain correctly, the wrapper needs to be added, too. + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + + protected _complete(): void { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + this.destination.complete!(); + } + this.unsubscribe(); + } + + notifyNext(innerValue: R): void { + this.destination.next!(innerValue); + } + + notifyComplete(): void { + const buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()!); + } else if (this.active === 0 && this.hasCompleted) { + this.destination.complete!(); + } + } +} + +/** + * @deprecated renamed. Use {@link mergeMap} + */ +export const flatMap = mergeMap; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/operators/mergeMapTo.ts b/node_modules/rxjs/src/internal/operators/mergeMapTo.ts new file mode 100644 index 00000000..6f7e62fb --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/mergeMapTo.ts @@ -0,0 +1,64 @@ +import { Observable } from '../Observable'; +import { OperatorFunction, ObservedValueOf } from '../../internal/types'; +import { mergeMap } from './mergeMap'; +import { ObservableInput } from '../types'; + +/* tslint:disable:max-line-length */ +export function mergeMapTo>(innerObservable: O, concurrent?: number): OperatorFunction>; +/** @deprecated */ +export function mergeMapTo>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Projects each source value to the same Observable which is merged multiple + * times in the output Observable. + * + * It's like {@link mergeMap}, but maps each value always + * to the same inner Observable. + * + * ![](mergeMapTo.png) + * + * Maps each source value to the given Observable `innerObservable` regardless + * of the source value, and then merges those resulting Observables into one + * single Observable, which is the output Observable. + * + * ## Example + * For each click event, start an interval Observable ticking every 1 second + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { mergeMapTo } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(mergeMapTo(interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link concatMapTo} + * @see {@link merge} + * @see {@link mergeAll} + * @see {@link mergeMap} + * @see {@link mergeScan} + * @see {@link switchMapTo} + * + * @param {ObservableInput} innerObservable An Observable to replace each value from + * the source Observable. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input + * Observables being subscribed to concurrently. + * @return {Observable} An Observable that emits items from the given + * `innerObservable` + * @method mergeMapTo + * @owner Observable + */ +export function mergeMapTo>( + innerObservable: O, + resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number, + concurrent: number = Number.POSITIVE_INFINITY +): OperatorFunction|R> { + if (typeof resultSelector === 'function') { + return mergeMap(() => innerObservable, resultSelector, concurrent); + } + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return mergeMap(() => innerObservable, concurrent); +} diff --git a/node_modules/rxjs/src/internal/operators/mergeScan.ts b/node_modules/rxjs/src/internal/operators/mergeScan.ts new file mode 100644 index 00000000..c7348521 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/mergeScan.ts @@ -0,0 +1,146 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { ObservableInput, OperatorFunction } from '../types'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/** + * Applies an accumulator function over the source Observable where the + * accumulator function itself returns an Observable, then each intermediate + * Observable returned is merged into the output Observable. + * + * It's like {@link scan}, but the Observables returned + * by the accumulator are merged into the outer Observable. + * + * ## Example + * Count the number of click events + * ```ts + * import { fromEvent, of } from 'rxjs'; + * import { mapTo, mergeScan } from 'rxjs/operators'; + * + * const click$ = fromEvent(document, 'click'); + * const one$ = click$.pipe(mapTo(1)); + * const seed = 0; + * const count$ = one$.pipe( + * mergeScan((acc, one) => of(acc + one), seed), + * ); + * count$.subscribe(x => console.log(x)); + * + * // Results: + * // 1 + * // 2 + * // 3 + * // 4 + * // ...and so on for each click + * ``` + * + * @param {function(acc: R, value: T): Observable} accumulator + * The accumulator function called on each source value. + * @param seed The initial accumulation value. + * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of + * input Observables being subscribed to concurrently. + * @return {Observable} An observable of the accumulated values. + * @method mergeScan + * @owner Observable + */ +export function mergeScan(accumulator: (acc: R, value: T, index: number) => ObservableInput, + seed: R, + concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction { + return (source: Observable) => source.lift(new MergeScanOperator(accumulator, seed, concurrent)); +} + +export class MergeScanOperator implements Operator { + constructor(private accumulator: (acc: R, value: T, index: number) => ObservableInput, + private seed: R, + private concurrent: number) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new MergeScanSubscriber( + subscriber, this.accumulator, this.seed, this.concurrent + )); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class MergeScanSubscriber extends SimpleOuterSubscriber { + private hasValue: boolean = false; + private hasCompleted: boolean = false; + private buffer: Observable[] = []; + private active: number = 0; + protected index: number = 0; + + constructor(destination: Subscriber, + private accumulator: (acc: R, value: T, index: number) => ObservableInput, + private acc: R, + private concurrent: number) { + super(destination); + } + + protected _next(value: any): void { + if (this.active < this.concurrent) { + const index = this.index++; + const destination = this.destination; + let ish; + try { + const { accumulator } = this; + ish = accumulator(this.acc, value, index); + } catch (e) { + return destination.error!(e); + } + this.active++; + this._innerSub(ish); + } else { + this.buffer.push(value); + } + } + + private _innerSub(ish: any): void { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(ish, innerSubscriber); + // The returned subscription will usually be the subscriber that was + // passed. However, interop subscribers will be wrapped and for + // unsubscriptions to chain correctly, the wrapper needs to be added, too. + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } + + protected _complete(): void { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next!(this.acc); + } + this.destination.complete!(); + } + this.unsubscribe(); + } + + notifyNext(innerValue: R): void { + const { destination } = this; + this.acc = innerValue; + this.hasValue = true; + destination.next!(innerValue); + } + + notifyComplete(): void { + const buffer = this.buffer; + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } else if (this.active === 0 && this.hasCompleted) { + if (this.hasValue === false) { + this.destination.next!(this.acc); + } + this.destination.complete!(); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/min.ts b/node_modules/rxjs/src/internal/operators/min.ts new file mode 100644 index 00000000..c7c0e2cc --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/min.ts @@ -0,0 +1,53 @@ +import { reduce } from './reduce'; +import { MonoTypeOperatorFunction } from '../types'; + +/** + * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function), + * and when source Observable completes it emits a single item: the item with the smallest value. + * + * ![](min.png) + * + * ## Examples + * Get the minimal value of a series of numbers + * ```ts + * import { of } from 'rxjs'; + * import { min } from 'rxjs/operators'; + * + * of(5, 4, 7, 2, 8).pipe( + * min(), + * ) + * .subscribe(x => console.log(x)); // -> 2 + * ``` + * + * Use a comparer function to get the minimal item + * ```typescript + * import { of } from 'rxjs'; + * import { min } from 'rxjs/operators'; + * + * interface Person { + * age: number, + * name: string + * } + * of( + * {age: 7, name: 'Foo'}, + * {age: 5, name: 'Bar'}, + * {age: 9, name: 'Beer'}, + * ).pipe( + * min( (a: Person, b: Person) => a.age < b.age ? -1 : 1), + * ) + * .subscribe((x: Person) => console.log(x.name)); // -> 'Bar' + * ``` + * @see {@link max} + * + * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the + * value of two items. + * @return {Observable} An Observable that emits item with the smallest value. + * @method min + * @owner Observable + */ +export function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction { + const min: (x: T, y: T) => T = (typeof comparer === 'function') + ? (x, y) => comparer(x, y) < 0 ? x : y + : (x, y) => x < y ? x : y; + return reduce(min); +} diff --git a/node_modules/rxjs/src/internal/operators/multicast.ts b/node_modules/rxjs/src/internal/operators/multicast.ts new file mode 100644 index 00000000..97d28d55 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/multicast.ts @@ -0,0 +1,69 @@ +import { Subject } from '../Subject'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { ConnectableObservable, connectableObservableDescriptor } from '../observable/ConnectableObservable'; +import { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types'; + +/* tslint:disable:max-line-length */ +export function multicast(subject: Subject): UnaryFunction, ConnectableObservable>; +export function multicast>(subject: Subject, selector: (shared: Observable) => O): UnaryFunction, ConnectableObservable>>; +export function multicast(subjectFactory: (this: Observable) => Subject): UnaryFunction, ConnectableObservable>; +export function multicast>(SubjectFactory: (this: Observable) => Subject, selector: (shared: Observable) => O): OperatorFunction>; +/* tslint:enable:max-line-length */ + +/** + * Returns an Observable that emits the results of invoking a specified selector on items + * emitted by a ConnectableObservable that shares a single subscription to the underlying stream. + * + * ![](multicast.png) + * + * @param {Function|Subject} subjectOrSubjectFactory - Factory function to create an intermediate subject through + * which the source sequence's elements will be multicast to the selector function + * or Subject to push source elements into. + * @param {Function} [selector] - Optional selector function that can use the multicasted source stream + * as many times as needed, without causing multiple subscriptions to the source stream. + * Subscribers to the given source will receive all notifications of the source from the + * time of the subscription forward. + * @return {Observable} An Observable that emits the results of invoking the selector + * on the items emitted by a `ConnectableObservable` that shares a single subscription to + * the underlying stream. + * @method multicast + * @owner Observable + */ +export function multicast(subjectOrSubjectFactory: Subject | (() => Subject), + selector?: (source: Observable) => Observable): OperatorFunction { + return function multicastOperatorFunction(source: Observable): Observable { + let subjectFactory: () => Subject; + if (typeof subjectOrSubjectFactory === 'function') { + subjectFactory = <() => Subject>subjectOrSubjectFactory; + } else { + subjectFactory = function subjectFactory() { + return >subjectOrSubjectFactory; + }; + } + + if (typeof selector === 'function') { + return source.lift(new MulticastOperator(subjectFactory, selector)); + } + + const connectable: any = Object.create(source, connectableObservableDescriptor); + connectable.source = source; + connectable.subjectFactory = subjectFactory; + + return > connectable; + }; +} + +export class MulticastOperator implements Operator { + constructor(private subjectFactory: () => Subject, + private selector: (source: Observable) => Observable) { + } + call(subscriber: Subscriber, source: any): any { + const { selector } = this; + const subject = this.subjectFactory(); + const subscription = selector(subject).subscribe(subscriber); + subscription.add(source.subscribe(subject)); + return subscription; + } +} diff --git a/node_modules/rxjs/src/internal/operators/observeOn.ts b/node_modules/rxjs/src/internal/operators/observeOn.ts new file mode 100644 index 00000000..8a5bd664 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/observeOn.ts @@ -0,0 +1,122 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Notification } from '../Notification'; +import { MonoTypeOperatorFunction, PartialObserver, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; + +/** + * + * Re-emits all notifications from source Observable with specified scheduler. + * + * Ensure a specific scheduler is used, from outside of an Observable. + * + * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule + * notifications emitted by the source Observable. It might be useful, if you do not have control over + * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless. + * + * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable, + * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal + * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits + * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`. + * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split + * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source + * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a + * little bit more, to ensure that they are emitted at expected moments. + * + * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications + * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn` + * will delay all notifications - including error notifications - while `delay` will pass through error + * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator + * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used + * for notification emissions in general. + * + * ## Example + * Ensure values in subscribe are called just before browser repaint. + * ```ts + * import { interval } from 'rxjs'; + * import { observeOn } from 'rxjs/operators'; + * + * const intervals = interval(10); // Intervals are scheduled + * // with async scheduler by default... + * intervals.pipe( + * observeOn(animationFrameScheduler), // ...but we will observe on animationFrame + * ) // scheduler to ensure smooth animation. + * .subscribe(val => { + * someDiv.style.height = val + 'px'; + * }); + * ``` + * + * @see {@link delay} + * + * @param {SchedulerLike} scheduler Scheduler that will be used to reschedule notifications from source Observable. + * @param {number} [delay] Number of milliseconds that states with what delay every notification should be rescheduled. + * @return {Observable} Observable that emits the same notifications as the source Observable, + * but with provided scheduler. + * + * @method observeOn + * @owner Observable + */ +export function observeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction { + return function observeOnOperatorFunction(source: Observable): Observable { + return source.lift(new ObserveOnOperator(scheduler, delay)); + }; +} + +export class ObserveOnOperator implements Operator { + constructor(private scheduler: SchedulerLike, private delay: number = 0) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class ObserveOnSubscriber extends Subscriber { + /** @nocollapse */ + static dispatch(this: SchedulerAction, arg: ObserveOnMessage) { + const { notification, destination } = arg; + notification.observe(destination); + this.unsubscribe(); + } + + constructor(destination: Subscriber, + private scheduler: SchedulerLike, + private delay: number = 0) { + super(destination); + } + + private scheduleMessage(notification: Notification): void { + const destination = this.destination as Subscription; + destination.add(this.scheduler.schedule( + ObserveOnSubscriber.dispatch, + this.delay, + new ObserveOnMessage(notification, this.destination) + )); + } + + protected _next(value: T): void { + this.scheduleMessage(Notification.createNext(value)); + } + + protected _error(err: any): void { + this.scheduleMessage(Notification.createError(err)); + this.unsubscribe(); + } + + protected _complete(): void { + this.scheduleMessage(Notification.createComplete()); + this.unsubscribe(); + } +} + +export class ObserveOnMessage { + constructor(public notification: Notification, + public destination: PartialObserver) { + } +} diff --git a/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts b/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts new file mode 100644 index 00000000..104ed9f5 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts @@ -0,0 +1,175 @@ +import { Observable } from '../Observable'; +import { from } from '../observable/from'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { isArray } from '../util/isArray'; +import { ObservableInput, OperatorFunction } from '../types'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +export function onErrorResumeNext(): OperatorFunction; +export function onErrorResumeNext(v: ObservableInput): OperatorFunction; +export function onErrorResumeNext(v: ObservableInput, v2: ObservableInput): OperatorFunction; +export function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput): OperatorFunction; +export function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction; +export function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction; +export function onErrorResumeNext(v: ObservableInput, v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction; +export function onErrorResumeNext(...observables: Array>): OperatorFunction; +export function onErrorResumeNext(array: ObservableInput[]): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one + * that was passed. + * + * Execute series of Observables no matter what, even if it means swallowing errors. + * + * ![](onErrorResumeNext.png) + * + * `onErrorResumeNext` is an operator that accepts a series of Observables, provided either directly as + * arguments or as an array. If no single Observable is provided, returned Observable will simply behave the same + * as the source. + * + * `onErrorResumeNext` returns an Observable that starts by subscribing and re-emitting values from the source Observable. + * When its stream of values ends - no matter if Observable completed or emitted an error - `onErrorResumeNext` + * will subscribe to the first Observable that was passed as an argument to the method. It will start re-emitting + * its values as well and - again - when that stream ends, `onErrorResumeNext` will proceed to subscribing yet another + * Observable in provided series, no matter if previous Observable completed or ended with an error. This will + * be happening until there is no more Observables left in the series, at which point returned Observable will + * complete - even if the last subscribed stream ended with an error. + * + * `onErrorResumeNext` can be therefore thought of as version of {@link concat} operator, which is more permissive + * when it comes to the errors emitted by its input Observables. While `concat` subscribes to the next Observable + * in series only if previous one successfully completed, `onErrorResumeNext` subscribes even if it ended with + * an error. + * + * Note that you do not get any access to errors emitted by the Observables. In particular do not + * expect these errors to appear in error callback passed to {@link Observable#subscribe}. If you want to take + * specific actions based on what error was emitted by an Observable, you should try out {@link catchError} instead. + * + * + * ## Example + * Subscribe to the next Observable after map fails + * ```ts + * import { of } from 'rxjs'; + * import { onErrorResumeNext, map } from 'rxjs/operators'; + * + * of(1, 2, 3, 0).pipe( + * map(x => { + * if (x === 0) { throw Error(); } + * return 10 / x; + * }), + * onErrorResumeNext(of(1, 2, 3)), + * ) + * .subscribe( + * val => console.log(val), + * err => console.log(err), // Will never be called. + * () => console.log('that\'s it!') + * ); + * + * // Logs: + * // 10 + * // 5 + * // 3.3333333333333335 + * // 1 + * // 2 + * // 3 + * // "that's it!" + * ``` + * + * @see {@link concat} + * @see {@link catchError} + * + * @param {...ObservableInput} observables Observables passed either directly or as an array. + * @return {Observable} An Observable that emits values from source Observable, but - if it errors - subscribes + * to the next passed Observable and so on, until it completes or runs out of Observables. + * @method onErrorResumeNext + * @owner Observable + */ + +export function onErrorResumeNext(...nextSources: Array | + Array>>): OperatorFunction { + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = >>nextSources[0]; + } + + return (source: Observable) => source.lift(new OnErrorResumeNextOperator(nextSources)); +} + +/* tslint:disable:max-line-length */ +export function onErrorResumeNextStatic(v: ObservableInput): Observable; +export function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput): Observable; +export function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): Observable; +export function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): Observable; +export function onErrorResumeNextStatic(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): Observable; + +export function onErrorResumeNextStatic(...observables: Array | ((...values: Array) => R)>): Observable; +export function onErrorResumeNextStatic(array: ObservableInput[]): Observable; +/* tslint:enable:max-line-length */ + +export function onErrorResumeNextStatic(...nextSources: Array | + Array> | + ((...values: Array) => R)>): Observable { + let source: ObservableInput|undefined = undefined; + + if (nextSources.length === 1 && isArray(nextSources[0])) { + nextSources = nextSources[0] as ObservableInput[]; + } + // TODO: resolve issue with passing no arguments. + source = nextSources.shift()!; + + return from(source).lift(new OnErrorResumeNextOperator(nextSources)); +} + +class OnErrorResumeNextOperator implements Operator { + constructor(private nextSources: Array>) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); + } +} + +class OnErrorResumeNextSubscriber extends SimpleOuterSubscriber { + constructor(protected destination: Subscriber, + private nextSources: Array>) { + super(destination); + } + + notifyError(): void { + this.subscribeToNextSource(); + } + + notifyComplete(): void { + this.subscribeToNextSource(); + } + + protected _error(err: any): void { + this.subscribeToNextSource(); + this.unsubscribe(); + } + + protected _complete(): void { + this.subscribeToNextSource(); + this.unsubscribe(); + } + + private subscribeToNextSource(): void { + const next = this.nextSources.shift(); + if (!!next) { + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); + const innerSubscription = innerSubscribe(next, innerSubscriber); + // The returned subscription will usually be the subscriber that was + // passed. However, interop subscribers will be wrapped and for + // unsubscriptions to chain correctly, the wrapper needs to be added, too. + if (innerSubscription !== innerSubscriber) { + destination.add(innerSubscription); + } + } else { + this.destination.complete(); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/pairwise.ts b/node_modules/rxjs/src/internal/operators/pairwise.ts new file mode 100644 index 00000000..8c2eb26a --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/pairwise.ts @@ -0,0 +1,87 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { OperatorFunction } from '../types'; + +/** + * Groups pairs of consecutive emissions together and emits them as an array of + * two values. + * + * Puts the current value and previous value together as + * an array, and emits that. + * + * ![](pairwise.png) + * + * The Nth emission from the source Observable will cause the output Observable + * to emit an array [(N-1)th, Nth] of the previous and the current value, as a + * pair. For this reason, `pairwise` emits on the second and subsequent + * emissions from the source Observable, but not on the first emission, because + * there is no previous value in that case. + * + * ## Example + * On every click (starting from the second), emit the relative distance to the previous click + * ```ts + * import { fromEvent } from 'rxjs'; + * import { pairwise, map } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const pairs = clicks.pipe(pairwise()); + * const distance = pairs.pipe( + * map(pair => { + * const x0 = pair[0].clientX; + * const y0 = pair[0].clientY; + * const x1 = pair[1].clientX; + * const y1 = pair[1].clientY; + * return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2)); + * }), + * ); + * distance.subscribe(x => console.log(x)); + * ``` + * + * @see {@link buffer} + * @see {@link bufferCount} + * + * @return {Observable>} An Observable of pairs (as arrays) of + * consecutive values from the source Observable. + * @method pairwise + * @owner Observable + */ +export function pairwise(): OperatorFunction { + return (source: Observable) => source.lift(new PairwiseOperator()); +} + +class PairwiseOperator implements Operator { + call(subscriber: Subscriber<[T, T]>, source: any): any { + return source.subscribe(new PairwiseSubscriber(subscriber)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class PairwiseSubscriber extends Subscriber { + private prev: T; + private hasPrev: boolean = false; + + constructor(destination: Subscriber<[T, T]>) { + super(destination); + } + + _next(value: T): void { + let pair: [T, T] | undefined; + + if (this.hasPrev) { + pair = [this.prev, value]; + } else { + this.hasPrev = true; + } + + this.prev = value; + + if (pair) { + this.destination.next(pair); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/partition.ts b/node_modules/rxjs/src/internal/operators/partition.ts new file mode 100644 index 00000000..c2aef152 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/partition.ts @@ -0,0 +1,60 @@ +import { not } from '../util/not'; +import { filter } from './filter'; +import { Observable } from '../Observable'; +import { UnaryFunction } from '../types'; + +/** + * Splits the source Observable into two, one with values that satisfy a + * predicate, and another with values that don't satisfy the predicate. + * + * It's like {@link filter}, but returns two Observables: + * one like the output of {@link filter}, and the other with values that did not + * pass the condition. + * + * ![](partition.png) + * + * `partition` outputs an array with two Observables that partition the values + * from the source Observable through the given `predicate` function. The first + * Observable in that array emits source values for which the predicate argument + * returns true. The second Observable emits source values for which the + * predicate returns false. The first behaves like {@link filter} and the second + * behaves like {@link filter} with the predicate negated. + * + * ## Example + * Partition click events into those on DIV elements and those elsewhere + * ```ts + * import { fromEvent } from 'rxjs'; + * import { partition } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const parts = clicks.pipe(partition(ev => ev.target.tagName === 'DIV')); + * const clicksOnDivs = parts[0]; + * const clicksElsewhere = parts[1]; + * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x)); + * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x)); + * ``` + * + * @see {@link filter} + * + * @param {function(value: T, index: number): boolean} predicate A function that + * evaluates each value emitted by the source Observable. If it returns `true`, + * the value is emitted on the first Observable in the returned array, if + * `false` the value is emitted on the second Observable in the array. The + * `index` parameter is the number `i` for the i-th source emission that has + * happened since the subscription, starting from the number `0`. + * @param {any} [thisArg] An optional argument to determine the value of `this` + * in the `predicate` function. + * @return {[Observable, Observable]} An array with two Observables: one + * with values that passed the predicate, and another with values that did not + * pass the predicate. + * @method partition + * @owner Observable + * @deprecated use `partition` static creation function instead + */ +export function partition(predicate: (value: T, index: number) => boolean, + thisArg?: any): UnaryFunction, [Observable, Observable]> { + return (source: Observable) => [ + filter(predicate, thisArg)(source), + filter(not(predicate, thisArg) as any)(source) + ] as [Observable, Observable]; +} diff --git a/node_modules/rxjs/src/internal/operators/pluck.ts b/node_modules/rxjs/src/internal/operators/pluck.ts new file mode 100644 index 00000000..543f0d71 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/pluck.ts @@ -0,0 +1,70 @@ +import { Observable } from '../Observable'; +import { map } from './map'; +import { OperatorFunction } from '../types'; + +/* tslint:disable:max-line-length */ +export function pluck(k1: K1): OperatorFunction; +export function pluck(k1: K1, k2: K2): OperatorFunction; +export function pluck(k1: K1, k2: K2, k3: K3): OperatorFunction; +export function pluck(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction; +export function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction; +export function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction; +export function pluck(...properties: string[]): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Maps each source value (an object) to its specified nested property. + * + * Like {@link map}, but meant only for picking one of + * the nested properties of every emitted object. + * + * ![](pluck.png) + * + * Given a list of strings describing a path to an object property, retrieves + * the value of a specified nested property from all values in the source + * Observable. If a property can't be resolved, it will return `undefined` for + * that value. + * + * ## Example + * Map every click to the tagName of the clicked target element + * ```ts + * import { fromEvent } from 'rxjs'; + * import { pluck } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const tagNames = clicks.pipe(pluck('target', 'tagName')); + * tagNames.subscribe(x => console.log(x)); + * ``` + * + * @see {@link map} + * + * @param {...string} properties The nested properties to pluck from each source + * value (an object). + * @return {Observable} A new Observable of property values from the source values. + * @method pluck + * @owner Observable + */ +export function pluck(...properties: string[]): OperatorFunction { + const length = properties.length; + if (length === 0) { + throw new Error('list of properties cannot be empty.'); + } + return (source: Observable) => map(plucker(properties, length))(source as any); +} + +function plucker(props: string[], length: number): (x: string) => any { + const mapper = (x: string) => { + let currentProp = x; + for (let i = 0; i < length; i++) { + const p = currentProp != null ? currentProp[props[i]] : undefined; + if (p !== void 0) { + currentProp = p; + } else { + return undefined; + } + } + return currentProp; + }; + + return mapper; +} diff --git a/node_modules/rxjs/src/internal/operators/publish.ts b/node_modules/rxjs/src/internal/operators/publish.ts new file mode 100644 index 00000000..e4596f30 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/publish.ts @@ -0,0 +1,67 @@ +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { multicast } from './multicast'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types'; + +/* tslint:disable:max-line-length */ +export function publish(): UnaryFunction, ConnectableObservable>; +export function publish>(selector: (shared: Observable) => O): OperatorFunction>; +export function publish(selector: MonoTypeOperatorFunction): MonoTypeOperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called + * before it begins emitting items to those Observers that have subscribed to it. + * + * Makes a cold Observable hot + * + * ![](publish.png) + * + * ## Examples + * Make source$ hot by applying publish operator, then merge each inner observable into a single one + * and subscribe. + * ```ts + * import { of, zip, interval, merge } from "rxjs"; + * import { map, publish, tap } from "rxjs/operators"; + * + * const source$ = zip(interval(2000), of(1, 2, 3, 4, 5, 6, 7, 8, 9)).pipe( + * map(values => values[1]) + * ); + * + * source$ + * .pipe( + * publish(multicasted$ => + * merge( + * multicasted$.pipe(tap(x => console.log('Stream 1:', x))), + * multicasted$.pipe(tap(x => console.log('Stream 2:', x))), + * multicasted$.pipe(tap(x => console.log('Stream 3:', x))), + * ) + * ) + * ) + * .subscribe(); + * + * // Results every two seconds + * // Stream 1: 1 + * // Stream 2: 1 + * // Stream 3: 1 + * // ... + * // Stream 1: 9 + * // Stream 2: 9 + * // Stream 3: 9 + * ``` + * + * @param {Function} [selector] - Optional selector function which can use the multicasted source sequence as many times + * as needed, without causing multiple subscriptions to the source sequence. + * Subscribers to the given source will receive all notifications of the source from the time of the subscription on. + * @return A ConnectableObservable that upon connection causes the source Observable to emit items to its Observers. + * @method publish + * @owner Observable + * + * + */ +export function publish(selector?: OperatorFunction): MonoTypeOperatorFunction | OperatorFunction { + return selector ? + multicast(() => new Subject(), selector) : + multicast(new Subject()); +} diff --git a/node_modules/rxjs/src/internal/operators/publishBehavior.ts b/node_modules/rxjs/src/internal/operators/publishBehavior.ts new file mode 100644 index 00000000..792b3151 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/publishBehavior.ts @@ -0,0 +1,15 @@ +import { Observable } from '../Observable'; +import { BehaviorSubject } from '../BehaviorSubject'; +import { multicast } from './multicast'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { UnaryFunction } from '../types'; + +/** + * @param value + * @return {ConnectableObservable} + * @method publishBehavior + * @owner Observable + */ +export function publishBehavior(value: T): UnaryFunction, ConnectableObservable> { + return (source: Observable) => multicast(new BehaviorSubject(value))(source) as ConnectableObservable; +} diff --git a/node_modules/rxjs/src/internal/operators/publishLast.ts b/node_modules/rxjs/src/internal/operators/publishLast.ts new file mode 100644 index 00000000..e431657c --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/publishLast.ts @@ -0,0 +1,67 @@ +import { Observable } from '../Observable'; +import { AsyncSubject } from '../AsyncSubject'; +import { multicast } from './multicast'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { UnaryFunction } from '../types'; + +/** + * Returns a connectable observable sequence that shares a single subscription to the + * underlying sequence containing only the last notification. + * + * ![](publishLast.png) + * + * Similar to {@link publish}, but it waits until the source observable completes and stores + * the last emitted value. + * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last + * value even if it has no more subscribers. If subsequent subscriptions happen, they will + * immediately get that last stored value and complete. + * + * ## Example + * + * ```ts + * import { interval } from 'rxjs'; + * import { publishLast, tap, take } from 'rxjs/operators'; + * + * const connectable = + * interval(1000) + * .pipe( + * tap(x => console.log("side effect", x)), + * take(3), + * publishLast()); + * + * connectable.subscribe( + * x => console.log( "Sub. A", x), + * err => console.log("Sub. A Error", err), + * () => console.log( "Sub. A Complete")); + * + * connectable.subscribe( + * x => console.log( "Sub. B", x), + * err => console.log("Sub. B Error", err), + * () => console.log( "Sub. B Complete")); + * + * connectable.connect(); + * + * // Results: + * // "side effect 0" + * // "side effect 1" + * // "side effect 2" + * // "Sub. A 2" + * // "Sub. B 2" + * // "Sub. A Complete" + * // "Sub. B Complete" + * ``` + * + * @see {@link ConnectableObservable} + * @see {@link publish} + * @see {@link publishReplay} + * @see {@link publishBehavior} + * + * @return {ConnectableObservable} An observable sequence that contains the elements of a + * sequence produced by multicasting the source sequence. + * @method publishLast + * @owner Observable + */ + +export function publishLast(): UnaryFunction, ConnectableObservable> { + return (source: Observable) => multicast(new AsyncSubject())(source); +} diff --git a/node_modules/rxjs/src/internal/operators/publishReplay.ts b/node_modules/rxjs/src/internal/operators/publishReplay.ts new file mode 100644 index 00000000..a64b52a1 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/publishReplay.ts @@ -0,0 +1,25 @@ +import { Observable } from '../Observable'; +import { ReplaySubject } from '../ReplaySubject'; +import { multicast } from './multicast'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types'; + +/* tslint:disable:max-line-length */ +export function publishReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; +export function publishReplay>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable) => O, scheduler?: SchedulerLike): OperatorFunction>; +/* tslint:enable:max-line-length */ + +export function publishReplay(bufferSize?: number, + windowTime?: number, + selectorOrScheduler?: SchedulerLike | OperatorFunction, + scheduler?: SchedulerLike): UnaryFunction, ConnectableObservable> { + + if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { + scheduler = selectorOrScheduler; + } + + const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; + const subject = new ReplaySubject(bufferSize, windowTime, scheduler); + + return (source: Observable) => multicast(() => subject, selector)(source) as ConnectableObservable; +} diff --git a/node_modules/rxjs/src/internal/operators/race.ts b/node_modules/rxjs/src/internal/operators/race.ts new file mode 100644 index 00000000..75b51d34 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/race.ts @@ -0,0 +1,36 @@ +import { Observable } from '../Observable'; +import { isArray } from '../util/isArray'; +import { MonoTypeOperatorFunction, OperatorFunction } from '../types'; +import { race as raceStatic } from '../observable/race'; + +/* tslint:disable:max-line-length */ +/** @deprecated Deprecated in favor of static race. */ +export function race(observables: Array>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static race. */ +export function race(observables: Array>): OperatorFunction; +/** @deprecated Deprecated in favor of static race. */ +export function race(...observables: Array | Array>>): MonoTypeOperatorFunction; +/** @deprecated Deprecated in favor of static race. */ +export function race(...observables: Array | Array>>): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Returns an Observable that mirrors the first source Observable to emit a next, + * error or complete notification from the combination of this Observable and supplied Observables. + * @param {...Observables} ...observables Sources used to race for which Observable emits first. + * @return {Observable} An Observable that mirrors the output of the first Observable to emit an item. + * @method race + * @owner Observable + * @deprecated Deprecated in favor of static {@link race}. + */ +export function race(...observables: (Observable | Observable[])[]): MonoTypeOperatorFunction { + return function raceOperatorFunction(source: Observable) { + // if the only argument is an array, it was most likely called with + // `pair([obs1, obs2, ...])` + if (observables.length === 1 && isArray(observables[0])) { + observables = observables[0] as Observable[]; + } + + return source.lift.call(raceStatic(source, ...(observables as Observable[]))); + }; +} diff --git a/node_modules/rxjs/src/internal/operators/reduce.ts b/node_modules/rxjs/src/internal/operators/reduce.ts new file mode 100644 index 00000000..6039fdb1 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/reduce.ts @@ -0,0 +1,82 @@ +import { Observable } from '../Observable'; +import { scan } from './scan'; +import { takeLast } from './takeLast'; +import { defaultIfEmpty } from './defaultIfEmpty'; +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; +import { pipe } from '../util/pipe'; + +/* tslint:disable:max-line-length */ +export function reduce(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction; +export function reduce(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction; +export function reduce(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Applies an accumulator function over the source Observable, and returns the + * accumulated result when the source completes, given an optional seed value. + * + * Combines together all values emitted on the source, + * using an accumulator function that knows how to join a new source value into + * the accumulation from the past. + * + * ![](reduce.png) + * + * Like + * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce), + * `reduce` applies an `accumulator` function against an accumulation and each + * value of the source Observable (from the past) to reduce it to a single + * value, emitted on the output Observable. Note that `reduce` will only emit + * one value, only when the source Observable completes. It is equivalent to + * applying operator {@link scan} followed by operator {@link last}. + * + * Returns an Observable that applies a specified `accumulator` function to each + * item emitted by the source Observable. If a `seed` value is specified, then + * that value will be used as the initial value for the accumulator. If no seed + * value is specified, the first item of the source is used as the seed. + * + * ## Example + * Count the number of click events that happened in 5 seconds + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { reduce, takeUntil, mapTo } from 'rxjs/operators'; + * + * const clicksInFiveSeconds = fromEvent(document, 'click').pipe( + * takeUntil(interval(5000)), + * ); + * const ones = clicksInFiveSeconds.pipe(mapTo(1)); + * const seed = 0; + * const count = ones.pipe(reduce((acc, one) => acc + one, seed)); + * count.subscribe(x => console.log(x)); + * ``` + * + * @see {@link count} + * @see {@link expand} + * @see {@link mergeScan} + * @see {@link scan} + * + * @param {function(acc: R, value: T, index: number): R} accumulator The accumulator function + * called on each source value. + * @param {R} [seed] The initial accumulation value. + * @return {Observable} An Observable that emits a single value that is the + * result of accumulating the values emitted by the source Observable. + * @method reduce + * @owner Observable + */ +export function reduce(accumulator: (acc: T | R, value: T, index?: number) => T | R, seed?: T | R): OperatorFunction { + // providing a seed of `undefined` *should* be valid and trigger + // hasSeed! so don't use `seed !== undefined` checks! + // For this reason, we have to check it here at the original call site + // otherwise inside Operator/Subscriber we won't know if `undefined` + // means they didn't provide anything or if they literally provided `undefined` + if (arguments.length >= 2) { + return function reduceOperatorFunctionWithSeed(source: Observable): Observable { + return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source); + }; + } + return function reduceOperatorFunction(source: Observable): Observable { + return pipe( + scan((acc, value, index) => accumulator(acc, value, index + 1)), + takeLast(1), + )(source); + }; +} diff --git a/node_modules/rxjs/src/internal/operators/refCount.ts b/node_modules/rxjs/src/internal/operators/refCount.ts new file mode 100644 index 00000000..227c3668 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/refCount.ts @@ -0,0 +1,148 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { ConnectableObservable } from '../observable/ConnectableObservable'; +import { Observable } from '../Observable'; + +/** + * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way + * you can connect to it. + * + * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if + * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it + * unsubscribes from the source. This way you can make sure that everything before the *published* + * refCount has only a single subscription independently of the number of subscribers to the target + * observable. + * + * Note that using the {@link share} operator is exactly the same as using the *publish* operator + * (making the observable hot) and the *refCount* operator in a sequence. + * + * ![](refCount.png) + * + * ## Example + * + * In the following example there are two intervals turned into connectable observables + * by using the *publish* operator. The first one uses the *refCount* operator, the + * second one does not use it. You will notice that a connectable observable does nothing + * until you call its connect function. + * + * ```ts + * import { interval } from 'rxjs'; + * import { tap, publish, refCount } from 'rxjs/operators'; + * + * // Turn the interval observable into a ConnectableObservable (hot) + * const refCountInterval = interval(400).pipe( + * tap((num) => console.log(`refCount ${num}`)), + * publish(), + * refCount() + * ); + * + * const publishedInterval = interval(400).pipe( + * tap((num) => console.log(`publish ${num}`)), + * publish() + * ); + * + * refCountInterval.subscribe(); + * refCountInterval.subscribe(); + * // 'refCount 0' -----> 'refCount 1' -----> etc + * // All subscriptions will receive the same value and the tap (and + * // every other operator) before the publish operator will be executed + * // only once per event independently of the number of subscriptions. + * + * publishedInterval.subscribe(); + * // Nothing happens until you call .connect() on the observable. + * ``` + * + * @see {@link ConnectableObservable} + * @see {@link share} + * @see {@link publish} + */ +export function refCount(): MonoTypeOperatorFunction { + return function refCountOperatorFunction(source: ConnectableObservable): Observable { + return source.lift(new RefCountOperator(source)); + } as MonoTypeOperatorFunction; +} + +class RefCountOperator implements Operator { + constructor(private connectable: ConnectableObservable) { + } + call(subscriber: Subscriber, source: any): TeardownLogic { + + const { connectable } = this; + ( connectable)._refCount++; + + const refCounter = new RefCountSubscriber(subscriber, connectable); + const subscription = source.subscribe(refCounter); + + if (!refCounter.closed) { + ( refCounter).connection = connectable.connect(); + } + + return subscription; + } +} + +class RefCountSubscriber extends Subscriber { + + private connection: Subscription; + + constructor(destination: Subscriber, + private connectable: ConnectableObservable) { + super(destination); + } + + protected _unsubscribe() { + + const { connectable } = this; + if (!connectable) { + this.connection = null; + return; + } + + this.connectable = null; + const refCount = ( connectable)._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + + ( connectable)._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + + /// + // Compare the local RefCountSubscriber's connection Subscription to the + // connection Subscription on the shared ConnectableObservable. In cases + // where the ConnectableObservable source synchronously emits values, and + // the RefCountSubscriber's downstream Observers synchronously unsubscribe, + // execution continues to here before the RefCountOperator has a chance to + // supply the RefCountSubscriber with the shared connection Subscription. + // For example: + // ``` + // range(0, 10).pipe( + // publish(), + // refCount(), + // take(5), + // ) + // .subscribe(); + // ``` + // In order to account for this case, RefCountSubscriber should only dispose + // the ConnectableObservable's shared connection Subscription if the + // connection Subscription exists, *and* either: + // a. RefCountSubscriber doesn't have a reference to the shared connection + // Subscription yet, or, + // b. RefCountSubscriber's connection Subscription reference is identical + // to the shared connection Subscription + /// + const { connection } = this; + const sharedConnection = ( connectable)._connection; + this.connection = null; + + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/repeat.ts b/node_modules/rxjs/src/internal/operators/repeat.ts new file mode 100644 index 00000000..7bde309a --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/repeat.ts @@ -0,0 +1,106 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { empty } from '../observable/empty'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Returns an Observable that will resubscribe to the source stream when the source stream completes, at most count times. + * + * Repeats all values emitted on the source. It's like {@link retry}, but for non error cases. + * + * ![](repeat.png) + * + * Similar to {@link retry}, this operator repeats the stream of items emitted by the source for non error cases. + * Repeat can be useful for creating observables that are meant to have some repeated pattern or rhythm. + * + * Note: `repeat(0)` returns an empty observable and `repeat()` will repeat forever + * + * ## Example + * Repeat a message stream + * ```ts + * import { of } from 'rxjs'; + * import { repeat, delay } from 'rxjs/operators'; + * + * const source = of('Repeat message'); + * const example = source.pipe(repeat(3)); + * example.subscribe(x => console.log(x)); + * + * // Results + * // Repeat message + * // Repeat message + * // Repeat message + * ``` + * + * Repeat 3 values, 2 times + * ```ts + * import { interval } from 'rxjs'; + * import { repeat, take } from 'rxjs/operators'; + * + * const source = interval(1000); + * const example = source.pipe(take(3), repeat(2)); + * example.subscribe(x => console.log(x)); + * + * // Results every second + * // 0 + * // 1 + * // 2 + * // 0 + * // 1 + * // 2 + * ``` + * + * @see {@link repeatWhen} + * @see {@link retry} + * + * @param {number} [count] The number of times the source Observable items are repeated, a count of 0 will yield + * an empty Observable. + * @return {Observable} An Observable that will resubscribe to the source stream when the source stream completes + * , at most count times. + * @method repeat + * @owner Observable + */ +export function repeat(count: number = -1): MonoTypeOperatorFunction { + return (source: Observable) => { + if (count === 0) { + return empty(); + } else if (count < 0) { + return source.lift(new RepeatOperator(-1, source)); + } else { + return source.lift(new RepeatOperator(count - 1, source)); + } + }; +} + +class RepeatOperator implements Operator { + constructor(private count: number, + private source: Observable) { + } + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class RepeatSubscriber extends Subscriber { + constructor(destination: Subscriber, + private count: number, + private source: Observable) { + super(destination); + } + complete() { + if (!this.isStopped) { + const { source, count } = this; + if (count === 0) { + return super.complete(); + } else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/repeatWhen.ts b/node_modules/rxjs/src/internal/operators/repeatWhen.ts new file mode 100644 index 00000000..744ec4b2 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/repeatWhen.ts @@ -0,0 +1,135 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; + +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source + * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable + * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise + * this method will resubscribe to the source Observable. + * + * ![](repeatWhen.png) + * + * ## Example + * Repeat a message stream on click + * ```ts + * import { of, fromEvent } from 'rxjs'; + * import { repeatWhen } from 'rxjs/operators'; + * + * const source = of('Repeat message'); + * const documentClick$ = fromEvent(document, 'click'); + * + * source.pipe(repeatWhen(() => documentClick$) + * ).subscribe(data => console.log(data)) + * ``` + * @see {@link repeat} + * @see {@link retry} + * @see {@link retryWhen} + * + * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with + * which a user can `complete` or `error`, aborting the repetition. + * @return {Observable} The source Observable modified with repeat logic. + * @method repeatWhen + * @owner Observable + */ +export function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new RepeatWhenOperator(notifier)); +} + +class RepeatWhenOperator implements Operator { + constructor(protected notifier: (notifications: Observable) => Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class RepeatWhenSubscriber extends SimpleOuterSubscriber { + + private notifications?: Subject; + private retries?: Observable; + private retriesSubscription?: Subscription; + private sourceIsBeingSubscribedTo: boolean = true; + + constructor(destination: Subscriber, + private notifier: (notifications: Observable) => Observable, + private source: Observable) { + super(destination); + } + + notifyNext(): void { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); + } + + notifyComplete(): void { + if (this.sourceIsBeingSubscribedTo === false) { + return super.complete(); + } + } + + complete() { + this.sourceIsBeingSubscribedTo = false; + + if (!this.isStopped) { + if (!this.retries) { + this.subscribeToRetries(); + } + if (!this.retriesSubscription || this.retriesSubscription.closed) { + return super.complete(); + } + + this._unsubscribeAndRecycle(); + this.notifications!.next(undefined); + } + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + const { notifications, retriesSubscription } = this; + if (notifications) { + notifications.unsubscribe(); + this.notifications = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribeAndRecycle(): Subscriber { + const { _unsubscribe } = this; + + this._unsubscribe = null!; + super._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + + return this; + } + + private subscribeToRetries() { + this.notifications = new Subject(); + let retries; + try { + const { notifier } = this; + retries = notifier(this.notifications); + } catch (e) { + return super.complete(); + } + this.retries = retries; + this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + } +} diff --git a/node_modules/rxjs/src/internal/operators/retry.ts b/node_modules/rxjs/src/internal/operators/retry.ts new file mode 100644 index 00000000..a6ce566e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/retry.ts @@ -0,0 +1,89 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; + +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable + * calls `error`, this method will resubscribe to the source Observable for a maximum of `count` resubscriptions (given + * as a number parameter) rather than propagating the `error` call. + * + * ![](retry.png) + * + * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted + * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second + * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications + * would be: [1, 2, 1, 2, 3, 4, 5, `complete`]. + * + * ## Example + * ```ts + * import { interval, of, throwError } from 'rxjs'; + * import { mergeMap, retry } from 'rxjs/operators'; + * + * const source = interval(1000); + * const example = source.pipe( + * mergeMap(val => { + * if(val > 5){ + * return throwError('Error!'); + * } + * return of(val); + * }), + * //retry 2 times on error + * retry(2) + * ); + * + * const subscribe = example.subscribe({ + * next: val => console.log(val), + * error: val => console.log(`${val}: Retried 2 times then quit!`) + * }); + * + * // Output: + * // 0..1..2..3..4..5.. + * // 0..1..2..3..4..5.. + * // 0..1..2..3..4..5.. + * // "Error!: Retried 2 times then quit!" + * ``` + * + * @param {number} count - Number of retry attempts before failing. + * @return {Observable} The source Observable modified with the retry logic. + * @method retry + * @owner Observable + */ +export function retry(count: number = -1): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new RetryOperator(count, source)); +} + +class RetryOperator implements Operator { + constructor(private count: number, + private source: Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class RetrySubscriber extends Subscriber { + constructor(destination: Subscriber, + private count: number, + private source: Observable) { + super(destination); + } + error(err: any) { + if (!this.isStopped) { + const { source, count } = this; + if (count === 0) { + return super.error(err); + } else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/retryWhen.ts b/node_modules/rxjs/src/internal/operators/retryWhen.ts new file mode 100644 index 00000000..3be9fed7 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/retryWhen.ts @@ -0,0 +1,109 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; + +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable + * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`. + * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child + * subscription. Otherwise this method will resubscribe to the source Observable. + * + * ![](retryWhen.png) + * + * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a + * user can `complete` or `error`, aborting the retry. + * @return {Observable} The source Observable modified with retry logic. + * @method retryWhen + * @owner Observable + */ +export function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new RetryWhenOperator(notifier, source)); +} + +class RetryWhenOperator implements Operator { + constructor(protected notifier: (errors: Observable) => Observable, + protected source: Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class RetryWhenSubscriber extends SimpleOuterSubscriber { + + private errors?: Subject; + private retries?: Observable; + private retriesSubscription?: Subscription; + + constructor(destination: Subscriber, + private notifier: (errors: Observable) => Observable, + private source: Observable) { + super(destination); + } + + error(err: any) { + if (!this.isStopped) { + + let errors = this.errors; + let retries: any = this.retries; + let retriesSubscription = this.retriesSubscription; + + if (!retries) { + errors = new Subject(); + try { + const { notifier } = this; + retries = notifier(errors); + } catch (e) { + return super.error(e); + } + retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this)); + } else { + this.errors = undefined; + this.retriesSubscription = undefined; + } + + this._unsubscribeAndRecycle(); + + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + + errors!.next(err); + } + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + const { errors, retriesSubscription } = this; + if (errors) { + errors.unsubscribe(); + this.errors = undefined; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = undefined; + } + this.retries = undefined; + } + + notifyNext(): void { + const { _unsubscribe } = this; + + this._unsubscribe = null!; + this._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + + this.source.subscribe(this); + } +} diff --git a/node_modules/rxjs/src/internal/operators/sample.ts b/node_modules/rxjs/src/internal/operators/sample.ts new file mode 100644 index 00000000..1a26baff --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/sample.ts @@ -0,0 +1,92 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; + +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Emits the most recently emitted value from the source Observable whenever + * another Observable, the `notifier`, emits. + * + * It's like {@link sampleTime}, but samples whenever + * the `notifier` Observable emits something. + * + * ![](sample.png) + * + * Whenever the `notifier` Observable emits a value or completes, `sample` + * looks at the source Observable and emits whichever value it has most recently + * emitted since the previous sampling, unless the source has not emitted + * anything since the previous sampling. The `notifier` is subscribed to as soon + * as the output Observable is subscribed. + * + * ## Example + * On every click, sample the most recent "seconds" timer + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { sample } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * const clicks = fromEvent(document, 'click'); + * const result = seconds.pipe(sample(clicks)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounce} + * @see {@link sampleTime} + * @see {@link throttle} + * + * @param {Observable} notifier The Observable to use for sampling the + * source Observable. + * @return {Observable} An Observable that emits the results of sampling the + * values emitted by the source Observable whenever the notifier Observable + * emits value or completes. + * @method sample + * @owner Observable + */ +export function sample(notifier: Observable): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new SampleOperator(notifier)); +} + +class SampleOperator implements Operator { + constructor(private notifier: Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + const sampleSubscriber = new SampleSubscriber(subscriber); + const subscription = source.subscribe(sampleSubscriber); + subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber))); + return subscription; + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SampleSubscriber extends SimpleOuterSubscriber { + private value?: T; + private hasValue: boolean = false; + + protected _next(value: T) { + this.value = value; + this.hasValue = true; + } + + notifyNext(): void { + this.emitValue(); + } + + notifyComplete(): void { + this.emitValue(); + } + + emitValue() { + if (this.hasValue) { + this.hasValue = false; + this.destination.next!(this.value!); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/sampleTime.ts b/node_modules/rxjs/src/internal/operators/sampleTime.ts new file mode 100644 index 00000000..0ff12275 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/sampleTime.ts @@ -0,0 +1,96 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +import { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; + +/** + * Emits the most recently emitted value from the source Observable within + * periodic time intervals. + * + * Samples the source Observable at periodic time + * intervals, emitting what it samples. + * + * ![](sampleTime.png) + * + * `sampleTime` periodically looks at the source Observable and emits whichever + * value it has most recently emitted since the previous sampling, unless the + * source has not emitted anything since the previous sampling. The sampling + * happens periodically in time every `period` milliseconds (or the time unit + * defined by the optional `scheduler` argument). The sampling starts as soon as + * the output Observable is subscribed. + * + * ## Example + * Every second, emit the most recent click at most once + * ```ts + * import { fromEvent } from 'rxjs'; + * import { sampleTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(sampleTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link auditTime} + * @see {@link debounceTime} + * @see {@link delay} + * @see {@link sample} + * @see {@link throttleTime} + * + * @param {number} period The sampling period expressed in milliseconds or the + * time unit determined internally by the optional `scheduler`. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the sampling. + * @return {Observable} An Observable that emits the results of sampling the + * values emitted by the source Observable at the specified time interval. + * @method sampleTime + * @owner Observable + */ +export function sampleTime(period: number, scheduler: SchedulerLike = async): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new SampleTimeOperator(period, scheduler)); +} + +class SampleTimeOperator implements Operator { + constructor(private period: number, + private scheduler: SchedulerLike) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SampleTimeSubscriber extends Subscriber { + lastValue: T; + hasValue: boolean = false; + + constructor(destination: Subscriber, + private period: number, + private scheduler: SchedulerLike) { + super(destination); + this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period })); + } + + protected _next(value: T) { + this.lastValue = value; + this.hasValue = true; + } + + notifyNext() { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.lastValue); + } + } +} + +function dispatchNotification(this: SchedulerAction, state: any) { + let { subscriber, period } = state; + subscriber.notifyNext(); + this.schedule(state, period); +} diff --git a/node_modules/rxjs/src/internal/operators/scan.ts b/node_modules/rxjs/src/internal/operators/scan.ts new file mode 100644 index 00000000..a1eb511e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/scan.ts @@ -0,0 +1,121 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { OperatorFunction, MonoTypeOperatorFunction } from '../types'; + +/* tslint:disable:max-line-length */ +export function scan(accumulator: (acc: R, value: T, index: number) => R, seed: R): OperatorFunction; +export function scan(accumulator: (acc: T, value: T, index: number) => T, seed?: T): MonoTypeOperatorFunction; +export function scan(accumulator: (acc: R, value: T, index: number) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Applies an accumulator function over the source Observable, and returns each + * intermediate result, with an optional seed value. + * + * It's like {@link reduce}, but emits the current + * accumulation whenever the source emits a value. + * + * ![](scan.png) + * + * Combines together all values emitted on the source, using an accumulator + * function that knows how to join a new source value into the accumulation from + * the past. Is similar to {@link reduce}, but emits the intermediate + * accumulations. + * + * Returns an Observable that applies a specified `accumulator` function to each + * item emitted by the source Observable. If a `seed` value is specified, then + * that value will be used as the initial value for the accumulator. If no seed + * value is specified, the first item of the source is used as the seed. + * + * ## Example + * Count the number of click events + * ```ts + * import { fromEvent } from 'rxjs'; + * import { scan, mapTo } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const ones = clicks.pipe(mapTo(1)); + * const seed = 0; + * const count = ones.pipe(scan((acc, one) => acc + one, seed)); + * count.subscribe(x => console.log(x)); + * ``` + * + * @see {@link expand} + * @see {@link mergeScan} + * @see {@link reduce} + * + * @param {function(acc: R, value: T, index: number): R} accumulator + * The accumulator function called on each source value. + * @param {T|R} [seed] The initial accumulation value. + * @return {Observable} An observable of the accumulated values. + * @method scan + * @owner Observable + */ +export function scan(accumulator: (acc: R, value: T, index: number) => R, seed?: T | R): OperatorFunction { + let hasSeed = false; + // providing a seed of `undefined` *should* be valid and trigger + // hasSeed! so don't use `seed !== undefined` checks! + // For this reason, we have to check it here at the original call site + // otherwise inside Operator/Subscriber we won't know if `undefined` + // means they didn't provide anything or if they literally provided `undefined` + if (arguments.length >= 2) { + hasSeed = true; + } + + return function scanOperatorFunction(source: Observable): Observable { + return source.lift(new ScanOperator(accumulator, seed, hasSeed)); + }; +} + +class ScanOperator implements Operator { + constructor(private accumulator: (acc: R, value: T, index: number) => R, private seed?: T | R, private hasSeed: boolean = false) {} + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class ScanSubscriber extends Subscriber { + private index: number = 0; + + get seed(): T | R { + return this._seed; + } + + set seed(value: T | R) { + this.hasSeed = true; + this._seed = value; + } + + constructor(destination: Subscriber, private accumulator: (acc: R, value: T, index: number) => R, private _seed: T | R, + private hasSeed: boolean) { + super(destination); + } + + protected _next(value: T): void { + if (!this.hasSeed) { + this.seed = value; + this.destination.next(value); + } else { + return this._tryNext(value); + } + } + + private _tryNext(value: T): void { + const index = this.index++; + let result: any; + try { + result = this.accumulator(this.seed, value, index); + } catch (err) { + this.destination.error(err); + } + this.seed = result; + this.destination.next(result); + } +} diff --git a/node_modules/rxjs/src/internal/operators/sequenceEqual.ts b/node_modules/rxjs/src/internal/operators/sequenceEqual.ts new file mode 100644 index 00000000..a614c493 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/sequenceEqual.ts @@ -0,0 +1,174 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; + +import { Observer, OperatorFunction } from '../types'; + +/** + * Compares all values of two observables in sequence using an optional comparator function + * and returns an observable of a single boolean value representing whether or not the two sequences + * are equal. + * + * Checks to see of all values emitted by both observables are equal, in order. + * + * ![](sequenceEqual.png) + * + * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either + * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom + * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the + * observables completes, the operator will wait for the other observable to complete; If the other + * observable emits before completing, the returned observable will emit `false` and complete. If one observable never + * completes or emits after the other complets, the returned observable will never complete. + * + * ## Example + * figure out if the Konami code matches + * ```ts + * import { from, fromEvent } from 'rxjs'; + * import { sequenceEqual, bufferCount, mergeMap, map } from 'rxjs/operators'; + * + * const codes = from([ + * 'ArrowUp', + * 'ArrowUp', + * 'ArrowDown', + * 'ArrowDown', + * 'ArrowLeft', + * 'ArrowRight', + * 'ArrowLeft', + * 'ArrowRight', + * 'KeyB', + * 'KeyA', + * 'Enter', // no start key, clearly. + * ]); + * + * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code)); + * const matches = keys.pipe( + * bufferCount(11, 1), + * mergeMap( + * last11 => from(last11).pipe(sequenceEqual(codes)), + * ), + * ); + * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched)); + * ``` + * + * @see {@link combineLatest} + * @see {@link zip} + * @see {@link withLatestFrom} + * + * @param {Observable} compareTo The observable sequence to compare the source sequence to. + * @param {function} [comparator] An optional function to compare each value pair + * @return {Observable} An Observable of a single boolean value representing whether or not + * the values emitted by both observables were equal in sequence. + * @method sequenceEqual + * @owner Observable + */ +export function sequenceEqual(compareTo: Observable, + comparator?: (a: T, b: T) => boolean): OperatorFunction { + return (source: Observable) => source.lift(new SequenceEqualOperator(compareTo, comparator)); +} + +export class SequenceEqualOperator implements Operator { + constructor(private compareTo: Observable, + private comparator: (a: T, b: T) => boolean) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class SequenceEqualSubscriber extends Subscriber { + private _a: T[] = []; + private _b: T[] = []; + private _oneComplete = false; + + constructor(destination: Observer, + private compareTo: Observable, + private comparator: (a: T, b: T) => boolean) { + super(destination); + (this.destination as Subscription).add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this))); + } + + protected _next(value: T): void { + if (this._oneComplete && this._b.length === 0) { + this.emit(false); + } else { + this._a.push(value); + this.checkValues(); + } + } + + public _complete(): void { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } else { + this._oneComplete = true; + } + this.unsubscribe(); + } + + checkValues() { + const { _a, _b, comparator } = this; + while (_a.length > 0 && _b.length > 0) { + let a = _a.shift(); + let b = _b.shift(); + let areEqual = false; + try { + areEqual = comparator ? comparator(a, b) : a === b; + } catch (e) { + this.destination.error(e); + } + if (!areEqual) { + this.emit(false); + } + } + } + + emit(value: boolean) { + const { destination } = this; + destination.next(value); + destination.complete(); + } + + nextB(value: T) { + if (this._oneComplete && this._a.length === 0) { + this.emit(false); + } else { + this._b.push(value); + this.checkValues(); + } + } + + completeB() { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } else { + this._oneComplete = true; + } + } +} + +class SequenceEqualCompareToSubscriber extends Subscriber { + constructor(destination: Observer, private parent: SequenceEqualSubscriber) { + super(destination); + } + + protected _next(value: T): void { + this.parent.nextB(value); + } + + protected _error(err: any): void { + this.parent.error(err); + this.unsubscribe(); + } + + protected _complete(): void { + this.parent.completeB(); + this.unsubscribe(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/share.ts b/node_modules/rxjs/src/internal/operators/share.ts new file mode 100644 index 00000000..f0559687 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/share.ts @@ -0,0 +1,26 @@ +import { Observable } from '../Observable'; +import { multicast } from './multicast'; +import { refCount } from './refCount'; +import { Subject } from '../Subject'; + +import { MonoTypeOperatorFunction } from '../types'; + +function shareSubjectFactory() { + return new Subject(); +} + +/** + * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one + * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will + * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`. + * This is an alias for `multicast(() => new Subject()), refCount()`. + * + * ![](share.png) + * + * @return {Observable} An Observable that upon connection causes the source Observable to emit items to its Observers. + * @method share + * @owner Observable + */ +export function share(): MonoTypeOperatorFunction { + return (source: Observable) => refCount()(multicast(shareSubjectFactory)(source)) as Observable; +} diff --git a/node_modules/rxjs/src/internal/operators/shareReplay.ts b/node_modules/rxjs/src/internal/operators/shareReplay.ts new file mode 100644 index 00000000..e8976b3c --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/shareReplay.ts @@ -0,0 +1,125 @@ +import { Observable } from '../Observable'; +import { ReplaySubject } from '../ReplaySubject'; +import { Subscription } from '../Subscription'; +import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; +import { Subscriber } from '../Subscriber'; + +export interface ShareReplayConfig { + bufferSize?: number; + windowTime?: number; + refCount: boolean; + scheduler?: SchedulerLike; +} + +/** + * Share source and replay specified number of emissions on subscription. + * + * This operator is a specialization of `replay` that connects to a source observable + * and multicasts through a `ReplaySubject` constructed with the specified arguments. + * A successfully completed source will stay cached in the `shareReplayed observable` forever, + * but an errored source can be retried. + * + * ## Why use shareReplay? + * You generally want to use `shareReplay` when you have side-effects or taxing computations + * that you do not wish to be executed amongst multiple subscribers. + * It may also be valuable in situations where you know you will have late subscribers to + * a stream that need access to previously emitted values. + * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`. + * + * ![](shareReplay.png) + * + * ## Example + * ```ts + * import { interval } from 'rxjs'; + * import { shareReplay, take } from 'rxjs/operators'; + * + * const obs$ = interval(1000); + * const shared$ = obs$.pipe( + * take(4), + * shareReplay(3) + * ); + * shared$.subscribe(x => console.log('source A: ', x)); + * shared$.subscribe(y => console.log('source B: ', y)); + * + * ``` + * + * @see {@link publish} + * @see {@link share} + * @see {@link publishReplay} + * + * @param {Number} [bufferSize=Number.POSITIVE_INFINITY] Maximum element count of the replay buffer. + * @param {Number} [windowTime=Number.POSITIVE_INFINITY] Maximum time length of the replay buffer in milliseconds. + * @param {Scheduler} [scheduler] Scheduler where connected observers within the selector function + * will be invoked on. + * @return {Observable} An observable sequence that contains the elements of a sequence produced + * by multicasting the source sequence within a selector function. + * @method shareReplay + * @owner Observable + */ +export function shareReplay(config: ShareReplayConfig): MonoTypeOperatorFunction; +export function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; +export function shareReplay( + configOrBufferSize?: ShareReplayConfig | number, + windowTime?: number, + scheduler?: SchedulerLike +): MonoTypeOperatorFunction { + let config: ShareReplayConfig; + if (configOrBufferSize && typeof configOrBufferSize === 'object') { + config = configOrBufferSize as ShareReplayConfig; + } else { + config = { + bufferSize: configOrBufferSize as number | undefined, + windowTime, + refCount: false, + scheduler + }; + } + return (source: Observable) => source.lift(shareReplayOperator(config)); +} + +function shareReplayOperator({ + bufferSize = Number.POSITIVE_INFINITY, + windowTime = Number.POSITIVE_INFINITY, + refCount: useRefCount, + scheduler +}: ShareReplayConfig) { + let subject: ReplaySubject | undefined; + let refCount = 0; + let subscription: Subscription | undefined; + let hasError = false; + let isComplete = false; + + return function shareReplayOperation(this: Subscriber, source: Observable) { + refCount++; + let innerSub: Subscription; + if (!subject || hasError) { + hasError = false; + subject = new ReplaySubject(bufferSize, windowTime, scheduler); + innerSub = subject.subscribe(this); + subscription = source.subscribe({ + next(value) { subject.next(value); }, + error(err) { + hasError = true; + subject.error(err); + }, + complete() { + isComplete = true; + subscription = undefined; + subject.complete(); + }, + }); + } else { + innerSub = subject.subscribe(this); + } + + this.add(() => { + refCount--; + innerSub.unsubscribe(); + if (subscription && !isComplete && useRefCount && refCount === 0) { + subscription.unsubscribe(); + subscription = undefined; + subject = undefined; + } + }); + }; +} diff --git a/node_modules/rxjs/src/internal/operators/single.ts b/node_modules/rxjs/src/internal/operators/single.ts new file mode 100644 index 00000000..e23e1473 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/single.ts @@ -0,0 +1,123 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { EmptyError } from '../util/EmptyError'; + +import { Observer, MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Returns an Observable that emits the single item emitted by the source Observable that matches a specified + * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no + * items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable + * emits items but none match the specified predicate then `undefined` is emitted. + * + * Like {@link first}, but emit with error notification if there is more than one value. + * ![](single.png) + * + * ## Example + * emits 'error' + * ```ts + * import { range } from 'rxjs'; + * import { single } from 'rxjs/operators'; + * + * const numbers = range(1,5).pipe(single()); + * numbers.subscribe(x => console.log('never get called'), e => console.log('error')); + * // result + * // 'error' + * ``` + * + * emits 'undefined' + * ```ts + * import { range } from 'rxjs'; + * import { single } from 'rxjs/operators'; + * + * const numbers = range(1,5).pipe(single(x => x === 10)); + * numbers.subscribe(x => console.log(x)); + * // result + * // 'undefined' + * ``` + * + * @see {@link first} + * @see {@link find} + * @see {@link findIndex} + * @see {@link elementAt} + * + * @throws {EmptyError} Delivers an EmptyError to the Observer's `error` + * callback if the Observable completes before any `next` notification was sent. + * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable. + * @return {Observable} An Observable that emits the single item emitted by the source Observable that matches + * the predicate or `undefined` when no items match. + * + * @method single + * @owner Observable + */ +export function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new SingleOperator(predicate, source)); +} + +class SingleOperator implements Operator { + constructor(private predicate?: (value: T, index: number, source: Observable) => boolean, + private source?: Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SingleSubscriber extends Subscriber { + private seenValue: boolean = false; + private singleValue: T; + private index: number = 0; + + constructor(destination: Observer, + private predicate?: (value: T, index: number, source: Observable) => boolean, + private source?: Observable) { + super(destination); + } + + private applySingleValue(value: T): void { + if (this.seenValue) { + this.destination.error('Sequence contains more than one element'); + } else { + this.seenValue = true; + this.singleValue = value; + } + } + + protected _next(value: T): void { + const index = this.index++; + + if (this.predicate) { + this.tryNext(value, index); + } else { + this.applySingleValue(value); + } + } + + private tryNext(value: T, index: number): void { + try { + if (this.predicate(value, index, this.source)) { + this.applySingleValue(value); + } + } catch (err) { + this.destination.error(err); + } + } + + protected _complete(): void { + const destination = this.destination; + + if (this.index > 0) { + destination.next(this.seenValue ? this.singleValue : undefined); + destination.complete(); + } else { + destination.error(new EmptyError); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/skip.ts b/node_modules/rxjs/src/internal/operators/skip.ts new file mode 100644 index 00000000..b5b7f2a1 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/skip.ts @@ -0,0 +1,47 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Returns an Observable that skips the first `count` items emitted by the source Observable. + * + * ![](skip.png) + * + * @param {Number} count - The number of times, items emitted by source Observable should be skipped. + * @return {Observable} An Observable that skips values emitted by the source Observable. + * + * @method skip + * @owner Observable + */ +export function skip(count: number): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new SkipOperator(count)); +} + +class SkipOperator implements Operator { + constructor(private total: number) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new SkipSubscriber(subscriber, this.total)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SkipSubscriber extends Subscriber { + count: number = 0; + + constructor(destination: Subscriber, private total: number) { + super(destination); + } + + protected _next(x: T) { + if (++this.count > this.total) { + this.destination.next(x); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/skipLast.ts b/node_modules/rxjs/src/internal/operators/skipLast.ts new file mode 100644 index 00000000..60b60875 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/skipLast.ts @@ -0,0 +1,96 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Skip the last `count` values emitted by the source Observable. + * + * ![](skipLast.png) + * + * `skipLast` returns an Observable that accumulates a queue with a length + * enough to store the first `count` values. As more values are received, + * values are taken from the front of the queue and produced on the result + * sequence. This causes values to be delayed. + * + * ## Example + * Skip the last 2 values of an Observable with many values + * ```ts + * import { range } from 'rxjs'; + * import { skipLast } from 'rxjs/operators'; + * + * const many = range(1, 5); + * const skipLastTwo = many.pipe(skipLast(2)); + * skipLastTwo.subscribe(x => console.log(x)); + * + * // Results in: + * // 1 2 3 + * ``` + * + * @see {@link skip} + * @see {@link skipUntil} + * @see {@link skipWhile} + * @see {@link take} + * + * @throws {ArgumentOutOfRangeError} When using `skipLast(i)`, it throws + * ArgumentOutOrRangeError if `i < 0`. + * + * @param {number} count Number of elements to skip from the end of the source Observable. + * @returns {Observable} An Observable that skips the last count values + * emitted by the source Observable. + * @method skipLast + * @owner Observable + */ +export function skipLast(count: number): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new SkipLastOperator(count)); +} + +class SkipLastOperator implements Operator { + constructor(private _skipCount: number) { + if (this._skipCount < 0) { + throw new ArgumentOutOfRangeError; + } + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + if (this._skipCount === 0) { + // If we don't want to skip any values then just subscribe + // to Subscriber without any further logic. + return source.subscribe(new Subscriber(subscriber)); + } else { + return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); + } + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SkipLastSubscriber extends Subscriber { + private _ring: T[]; + private _count: number = 0; + + constructor(destination: Subscriber, private _skipCount: number) { + super(destination); + this._ring = new Array(_skipCount); + } + + protected _next(value: T): void { + const skipCount = this._skipCount; + const count = this._count++; + + if (count < skipCount) { + this._ring[count] = value; + } else { + const currentIndex = count % skipCount; + const ring = this._ring; + const oldValue = ring[currentIndex]; + + ring[currentIndex] = value; + this.destination.next(oldValue); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/skipUntil.ts b/node_modules/rxjs/src/internal/operators/skipUntil.ts new file mode 100644 index 00000000..66e25318 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/skipUntil.ts @@ -0,0 +1,101 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic, ObservableInput } from '../types'; +import { Subscription } from '../Subscription'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/** + * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item. + * + * The `skipUntil` operator causes the observable stream to skip the emission of values ​​until the passed in observable emits the first value. + * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by. + * + * ![](skipUntil.png) + * + * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission + * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source* + * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting + * a value before. + * + * ## Example + * + * In the following example, all emitted values ​​of the interval observable are skipped until the user clicks anywhere within the page. + * + * ```ts + * import { interval, fromEvent } from 'rxjs'; + * import { skipUntil } from 'rxjs/operators'; + * + * const intervalObservable = interval(1000); + * const click = fromEvent(document, 'click'); + * + * const emitAfterClick = intervalObservable.pipe( + * skipUntil(click) + * ); + * // clicked at 4.6s. output: 5...6...7...8........ or + * // clicked at 7.3s. output: 8...9...10..11....... + * const subscribe = emitAfterClick.subscribe(value => console.log(value)); + * ``` + * + * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to + * be mirrored by the resulting Observable. + * @return {Observable} An Observable that skips items from the source Observable until the second Observable emits + * an item, then emits the remaining items. + * @method skipUntil + * @owner Observable + */ +export function skipUntil(notifier: Observable): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new SkipUntilOperator(notifier)); +} + +class SkipUntilOperator implements Operator { + constructor(private notifier: Observable) { + } + + call(destination: Subscriber, source: any): TeardownLogic { + return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SkipUntilSubscriber extends SimpleOuterSubscriber { + + private hasValue: boolean = false; + private innerSubscription?: Subscription; + + constructor(destination: Subscriber, notifier: ObservableInput) { + super(destination); + const innerSubscriber = new SimpleInnerSubscriber(this); + this.add(innerSubscriber); + this.innerSubscription = innerSubscriber; + const innerSubscription = innerSubscribe(notifier, innerSubscriber); + // The returned subscription will usually be the subscriber that was + // passed. However, interop subscribers will be wrapped and for + // unsubscriptions to chain correctly, the wrapper needs to be added, too. + if (innerSubscription !== innerSubscriber) { + this.add(innerSubscription); + this.innerSubscription = innerSubscription; + } + } + + protected _next(value: T) { + if (this.hasValue) { + super._next(value); + } + } + + notifyNext(): void { + this.hasValue = true; + if (this.innerSubscription) { + this.innerSubscription.unsubscribe(); + } + } + + notifyComplete() { + /* do nothing */ + } +} diff --git a/node_modules/rxjs/src/internal/operators/skipWhile.ts b/node_modules/rxjs/src/internal/operators/skipWhile.ts new file mode 100644 index 00000000..5647f13e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/skipWhile.ts @@ -0,0 +1,64 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds + * true, but emits all further source items as soon as the condition becomes false. + * + * ![](skipWhile.png) + * + * @param {Function} predicate - A function to test each item emitted from the source Observable. + * @return {Observable} An Observable that begins emitting items emitted by the source Observable when the + * specified predicate becomes false. + * @method skipWhile + * @owner Observable + */ +export function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new SkipWhileOperator(predicate)); +} + +class SkipWhileOperator implements Operator { + constructor(private predicate: (value: T, index: number) => boolean) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SkipWhileSubscriber extends Subscriber { + private skipping: boolean = true; + private index: number = 0; + + constructor(destination: Subscriber, + private predicate: (value: T, index: number) => boolean) { + super(destination); + } + + protected _next(value: T): void { + const destination = this.destination; + if (this.skipping) { + this.tryCallPredicate(value); + } + + if (!this.skipping) { + destination.next(value); + } + } + + private tryCallPredicate(value: T): void { + try { + const result = this.predicate(value, this.index++); + this.skipping = Boolean(result); + } catch (err) { + this.destination.error(err); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/startWith.ts b/node_modules/rxjs/src/internal/operators/startWith.ts new file mode 100644 index 00000000..81ce0632 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/startWith.ts @@ -0,0 +1,77 @@ +import { Observable } from '../Observable'; +import { concat } from '../observable/concat'; +import { isScheduler } from '../util/isScheduler'; +import { MonoTypeOperatorFunction, OperatorFunction, SchedulerLike } from '../types'; + +/* tslint:disable:max-line-length */ +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(scheduler: SchedulerLike): MonoTypeOperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(v1: D, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(v1: D, v2: E, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(v1: D, v2: E, v3: F, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(v1: D, v2: E, v3: F, v4: G, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, scheduler: SchedulerLike): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I, scheduler: SchedulerLike): OperatorFunction; + +export function startWith(v1: D): OperatorFunction; +export function startWith(v1: D, v2: E): OperatorFunction; +export function startWith(v1: D, v2: E, v3: F): OperatorFunction; +export function startWith(v1: D, v2: E, v3: F, v4: G): OperatorFunction; +export function startWith(v1: D, v2: E, v3: F, v4: G, v5: H): OperatorFunction; +export function startWith(v1: D, v2: E, v3: F, v4: G, v5: H, v6: I): OperatorFunction; +export function startWith(...array: D[]): OperatorFunction; +/** @deprecated use {@link scheduled} and {@link concatAll} (e.g. `scheduled([[a, b, c], source], scheduler).pipe(concatAll())`) */ +export function startWith(...array: Array): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Returns an Observable that emits the items you specify as arguments before it begins to emit + * items emitted by the source Observable. + * + * First emits its arguments in order, and then any + * emissions from the source. + * + * ![](startWith.png) + * + * ## Examples + * + * Start the chain of emissions with `"first"`, `"second"` + * + * ```ts + * import { of } from 'rxjs'; + * import { startWith } from 'rxjs/operators'; + * + * of("from source") + * .pipe(startWith("first", "second")) + * .subscribe(x => console.log(x)); + * + * // results: + * // "first" + * // "second" + * // "from source" + * ``` + * + * @param {...T} values - Items you want the modified Observable to emit first. + * @param {SchedulerLike} [scheduler] - A {@link SchedulerLike} to use for scheduling + * the emissions of the `next` notifications. + * @return {Observable} An Observable that emits the items in the specified Iterable and then emits the items + * emitted by the source Observable. + * @method startWith + * @owner Observable + */ +export function startWith(...array: Array): OperatorFunction { + const scheduler = array[array.length - 1] as SchedulerLike; + if (isScheduler(scheduler)) { + // deprecated path + array.pop(); + return (source: Observable) => concat(array as T[], source, scheduler); + } else { + return (source: Observable) => concat(array as T[], source); + } +} diff --git a/node_modules/rxjs/src/internal/operators/subscribeOn.ts b/node_modules/rxjs/src/internal/operators/subscribeOn.ts new file mode 100644 index 00000000..3c5a4c18 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/subscribeOn.ts @@ -0,0 +1,64 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { SubscribeOnObservable } from '../observable/SubscribeOnObservable'; +import { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types'; + +/** + * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}. + * + * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to. + * + * Schedulers control the speed and order of emissions to observers from an Observable stream. + * + * ![](subscribeOn.png) + * + * ## Example + * Given the following code: + * ```javascript + * import { of, merge } from 'rxjs'; + * + * const a = of(1, 2, 3, 4); + * const b = of(5, 6, 7, 8, 9); + * merge(a, b).subscribe(console.log); + * ``` + * + * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to. + * This will result in the output of `1 2 3 4 5 6 7 8 9`. + * + * But if we instead us the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emited by Observable `a`: + * ```javascript + * import { of, merge, asyncScheduler } from 'rxjs'; + * import { subscribeOn } from 'rxjs/operators'; + * + * const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler)); + * const b = of(5, 6, 7, 8, 9); + * merge(a, b).subscribe(console.log); + * ``` + * + * The output will instead be `5 6 7 8 9 1 2 3 4`. + * The reason for this is that Observable `b` emits its values directly and synchronously like before + * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable. + * + * @param {SchedulerLike} scheduler - The {@link SchedulerLike} to perform subscription actions on. + * @return {Observable} The source Observable modified so that its subscriptions happen on the specified {@link SchedulerLike}. + . + * @method subscribeOn + * @owner Observable + */ +export function subscribeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction { + return function subscribeOnOperatorFunction(source: Observable): Observable { + return source.lift(new SubscribeOnOperator(scheduler, delay)); + }; +} + +class SubscribeOnOperator implements Operator { + constructor(private scheduler: SchedulerLike, + private delay: number) { + } + call(subscriber: Subscriber, source: any): TeardownLogic { + return new SubscribeOnObservable( + source, this.delay, this.scheduler + ).subscribe(subscriber); + } +} diff --git a/node_modules/rxjs/src/internal/operators/switchAll.ts b/node_modules/rxjs/src/internal/operators/switchAll.ts new file mode 100644 index 00000000..1334c4f5 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/switchAll.ts @@ -0,0 +1,65 @@ +import {OperatorFunction, ObservableInput} from '../types'; +import { switchMap } from './switchMap'; +import { identity } from '../util/identity'; + +export function switchAll(): OperatorFunction, T>; +export function switchAll(): OperatorFunction; + +/** + * Converts a higher-order Observable into a first-order Observable + * producing values only from the most recent observable sequence + * + * Flattens an Observable-of-Observables. + * + * ![](switchAll.png) + * + * `switchAll` subscribes to a source that is an observable of observables, also known as a + * "higher-order observable" (or `Observable>`). It subscribes to the most recently + * provided "inner observable" emitted by the source, unsubscribing from any previously subscribed + * to inner observable, such that only the most recent inner observable may be subscribed to at + * any point in time. The resulting observable returned by `switchAll` will only complete if the + * source observable completes, *and* any currently subscribed to inner observable also has completed, + * if there are any. + * + * ## Examples + * Spawn a new interval observable for each click event, but for every new + * click, cancel the previous interval and subscribe to the new one. + * + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { switchAll, map, tap } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click').pipe(tap(() => console.log('click'))); + * const source = clicks.pipe(map((ev) => interval(1000))); + * + * source.pipe( + * switchAll() + * ).subscribe(x => console.log(x)); + * + * // Output + * // click + * // 1 + * // 2 + * // 3 + * // 4 + * // ... + * // click + * // 1 + * // 2 + * // 3 + * // ... + * // click + * // ... + * ``` + * + * @see {@link combineAll} + * @see {@link concatAll} + * @see {@link exhaust} + * @see {@link switchMap} + * @see {@link switchMapTo} + * @see {@link mergeAll} + */ + +export function switchAll(): OperatorFunction, T> { + return switchMap(identity); +} diff --git a/node_modules/rxjs/src/internal/operators/switchMap.ts b/node_modules/rxjs/src/internal/operators/switchMap.ts new file mode 100644 index 00000000..cbedac43 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/switchMap.ts @@ -0,0 +1,168 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; +import { map } from './map'; +import { from } from '../observable/from'; +import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +export function switchMap>(project: (value: T, index: number) => O): OperatorFunction>; +/** @deprecated resultSelector is no longer supported, use inner map instead */ +export function switchMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; +/** @deprecated resultSelector is no longer supported, use inner map instead */ +export function switchMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Projects each source value to an Observable which is merged in the output + * Observable, emitting values only from the most recently projected Observable. + * + * Maps each value to an Observable, then flattens all of + * these inner Observables. + * + * ![](switchMap.png) + * + * Returns an Observable that emits items based on applying a function that you + * supply to each item emitted by the source Observable, where that function + * returns an (so-called "inner") Observable. Each time it observes one of these + * inner Observables, the output Observable begins emitting the items emitted by + * that inner Observable. When a new inner Observable is emitted, `switchMap` + * stops emitting items from the earlier-emitted inner Observable and begins + * emitting items from the new one. It continues to behave like this for + * subsequent inner Observables. + * + * ## Example + * Generate new Observable according to source Observable values + * ```typescript + * import { of } from 'rxjs'; + * import { switchMap } from 'rxjs/operators'; + * + * const switched = of(1, 2, 3).pipe(switchMap((x: number) => of(x, x ** 2, x ** 3))); + * switched.subscribe(x => console.log(x)); + * // outputs + * // 1 + * // 1 + * // 1 + * // 2 + * // 4 + * // 8 + * // ... and so on + * ``` + * + * Rerun an interval Observable on every click event + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { switchMap } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(switchMap((ev) => interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link concatMap} + * @see {@link exhaustMap} + * @see {@link mergeMap} + * @see {@link switchAll} + * @see {@link switchMapTo} + * + * @param {function(value: T, ?index: number): ObservableInput} project A function + * that, when applied to an item emitted by the source Observable, returns an + * Observable. + * @return {Observable} An Observable that emits the result of applying the + * projection function (and the optional deprecated `resultSelector`) to each item + * emitted by the source Observable and taking only the values from the most recently + * projected inner Observable. + * @method switchMap + * @owner Observable + */ +export function switchMap>( + project: (value: T, index: number) => O, + resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, +): OperatorFunction|R> { + if (typeof resultSelector === 'function') { + return (source: Observable) => source.pipe( + switchMap((a, i) => from(project(a, i)).pipe( + map((b, ii) => resultSelector(a, b, i, ii)) + )) + ); + } + return (source: Observable) => source.lift(new SwitchMapOperator(project)); +} + +class SwitchMapOperator implements Operator { + constructor(private project: (value: T, index: number) => ObservableInput) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class SwitchMapSubscriber extends SimpleOuterSubscriber { + private index = 0; + private innerSubscription?: Subscription; + + constructor(destination: Subscriber, + private project: (value: T, index: number) => ObservableInput) { + super(destination); + } + + protected _next(value: T) { + let result: ObservableInput; + const index = this.index++; + try { + result = this.project(value, index); + } catch (error) { + this.destination.error!(error); + return; + } + this._innerSub(result); + } + + private _innerSub(result: ObservableInput) { + const innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + const innerSubscriber = new SimpleInnerSubscriber(this); + const destination = this.destination as Subscription; + destination.add(innerSubscriber); + this.innerSubscription = innerSubscribe(result, innerSubscriber); + // The returned subscription will usually be the subscriber that was + // passed. However, interop subscribers will be wrapped and for + // unsubscriptions to chain correctly, the wrapper needs to be added, too. + if (this.innerSubscription !== innerSubscriber) { + destination.add(this.innerSubscription); + } + } + + protected _complete(): void { + const {innerSubscription} = this; + if (!innerSubscription || innerSubscription.closed) { + super._complete(); + } + this.unsubscribe(); + } + + protected _unsubscribe() { + this.innerSubscription = undefined; + } + + notifyComplete(): void { + this.innerSubscription = undefined; + if (this.isStopped) { + super._complete(); + } + } + + notifyNext(innerValue: R): void { + this.destination.next!(innerValue); + } +} diff --git a/node_modules/rxjs/src/internal/operators/switchMapTo.ts b/node_modules/rxjs/src/internal/operators/switchMapTo.ts new file mode 100644 index 00000000..dc71e440 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/switchMapTo.ts @@ -0,0 +1,57 @@ +import { ObservableInput, OperatorFunction } from '../types'; +import { switchMap } from './switchMap'; + +/* tslint:disable:max-line-length */ +export function switchMapTo(observable: ObservableInput): OperatorFunction; +/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */ +export function switchMapTo(observable: ObservableInput, resultSelector: undefined): OperatorFunction; +/** @deprecated resultSelector is no longer supported. Switch to using switchMap with an inner map */ +export function switchMapTo(observable: ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Projects each source value to the same Observable which is flattened multiple + * times with {@link switchMap} in the output Observable. + * + * It's like {@link switchMap}, but maps each value + * always to the same inner Observable. + * + * ![](switchMapTo.png) + * + * Maps each source value to the given Observable `innerObservable` regardless + * of the source value, and then flattens those resulting Observables into one + * single Observable, which is the output Observable. The output Observables + * emits values only from the most recently emitted instance of + * `innerObservable`. + * + * ## Example + * Rerun an interval Observable on every click event + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { switchMapTo } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(switchMapTo(interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link concatMapTo} + * @see {@link switchAll} + * @see {@link switchMap} + * @see {@link mergeMapTo} + * + * @param {ObservableInput} innerObservable An Observable to replace each value from + * the source Observable. + * @return {Observable} An Observable that emits items from the given + * `innerObservable` (and optionally transformed through the deprecated `resultSelector`) + * every time a value is emitted on the source Observable, and taking only the values + * from the most recently projected inner Observable. + * @method switchMapTo + * @owner Observable + */ +export function switchMapTo( + innerObservable: ObservableInput, + resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R +): OperatorFunction { + return resultSelector ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable); +} diff --git a/node_modules/rxjs/src/internal/operators/take.ts b/node_modules/rxjs/src/internal/operators/take.ts new file mode 100644 index 00000000..b43205c1 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/take.ts @@ -0,0 +1,99 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { empty } from '../observable/empty'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Emits only the first `count` values emitted by the source Observable. + * + * Takes the first `count` values from the source, then + * completes. + * + * ![](take.png) + * + * `take` returns an Observable that emits only the first `count` values emitted + * by the source Observable. If the source emits fewer than `count` values then + * all of its values are emitted. After that, it completes, regardless if the + * source completes. + * + * ## Example + * Take the first 5 seconds of an infinite 1-second interval Observable + * ```ts + * import { interval } from 'rxjs'; + * import { take } from 'rxjs/operators'; + * + * const intervalCount = interval(1000); + * const takeFive = intervalCount.pipe(take(5)); + * takeFive.subscribe(x => console.log(x)); + * + * // Logs: + * // 0 + * // 1 + * // 2 + * // 3 + * // 4 + * ``` + * + * @see {@link takeLast} + * @see {@link takeUntil} + * @see {@link takeWhile} + * @see {@link skip} + * + * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an + * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`. + * + * @param {number} count The maximum number of `next` values to emit. + * @return {Observable} An Observable that emits only the first `count` + * values emitted by the source Observable, or all of the values from the source + * if the source emits fewer than `count` values. + * @method take + * @owner Observable + */ +export function take(count: number): MonoTypeOperatorFunction { + return (source: Observable) => { + if (count === 0) { + return empty(); + } else { + return source.lift(new TakeOperator(count)); + } + }; +} + +class TakeOperator implements Operator { + constructor(private total: number) { + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new TakeSubscriber(subscriber, this.total)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TakeSubscriber extends Subscriber { + private count: number = 0; + + constructor(destination: Subscriber, private total: number) { + super(destination); + } + + protected _next(value: T): void { + const total = this.total; + const count = ++this.count; + if (count <= total) { + this.destination.next(value); + if (count === total) { + this.destination.complete(); + this.unsubscribe(); + } + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/takeLast.ts b/node_modules/rxjs/src/internal/operators/takeLast.ts new file mode 100644 index 00000000..5d215f64 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/takeLast.ts @@ -0,0 +1,114 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; +import { empty } from '../observable/empty'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +/** + * Emits only the last `count` values emitted by the source Observable. + * + * Remembers the latest `count` values, then emits those + * only when the source completes. + * + * ![](takeLast.png) + * + * `takeLast` returns an Observable that emits at most the last `count` values + * emitted by the source Observable. If the source emits fewer than `count` + * values then all of its values are emitted. This operator must wait until the + * `complete` notification emission from the source in order to emit the `next` + * values on the output Observable, because otherwise it is impossible to know + * whether or not more values will be emitted on the source. For this reason, + * all values are emitted synchronously, followed by the complete notification. + * + * ## Example + * Take the last 3 values of an Observable with many values + * ```ts + * import { range } from 'rxjs'; + * import { takeLast } from 'rxjs/operators'; + * + * const many = range(1, 100); + * const lastThree = many.pipe(takeLast(3)); + * lastThree.subscribe(x => console.log(x)); + * ``` + * + * @see {@link take} + * @see {@link takeUntil} + * @see {@link takeWhile} + * @see {@link skip} + * + * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an + * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`. + * + * @param {number} count The maximum number of values to emit from the end of + * the sequence of values emitted by the source Observable. + * @return {Observable} An Observable that emits at most the last count + * values emitted by the source Observable. + * @method takeLast + * @owner Observable + */ +export function takeLast(count: number): MonoTypeOperatorFunction { + return function takeLastOperatorFunction(source: Observable): Observable { + if (count === 0) { + return empty(); + } else { + return source.lift(new TakeLastOperator(count)); + } + }; +} + +class TakeLastOperator implements Operator { + constructor(private total: number) { + if (this.total < 0) { + throw new ArgumentOutOfRangeError; + } + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TakeLastSubscriber extends Subscriber { + private ring: Array = new Array(); + private count: number = 0; + + constructor(destination: Subscriber, private total: number) { + super(destination); + } + + protected _next(value: T): void { + const ring = this.ring; + const total = this.total; + const count = this.count++; + + if (ring.length < total) { + ring.push(value); + } else { + const index = count % total; + ring[index] = value; + } + } + + protected _complete(): void { + const destination = this.destination; + let count = this.count; + + if (count > 0) { + const total = this.count >= this.total ? this.total : this.count; + const ring = this.ring; + + for (let i = 0; i < total; i++) { + const idx = (count++) % total; + destination.next(ring[idx]); + } + } + + destination.complete(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/takeUntil.ts b/node_modules/rxjs/src/internal/operators/takeUntil.ts new file mode 100644 index 00000000..898dc9ae --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/takeUntil.ts @@ -0,0 +1,87 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; + +import { MonoTypeOperatorFunction, TeardownLogic } from '../types'; +import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe'; + +/** + * Emits the values emitted by the source Observable until a `notifier` + * Observable emits a value. + * + * Lets values pass until a second Observable, + * `notifier`, emits a value. Then, it completes. + * + * ![](takeUntil.png) + * + * `takeUntil` subscribes and begins mirroring the source Observable. It also + * monitors a second Observable, `notifier` that you provide. If the `notifier` + * emits a value, the output Observable stops mirroring the source Observable + * and completes. If the `notifier` doesn't emit any value and completes + * then `takeUntil` will pass all values. + * + * ## Example + * Tick every second until the first click happens + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { takeUntil } from 'rxjs/operators'; + * + * const source = interval(1000); + * const clicks = fromEvent(document, 'click'); + * const result = source.pipe(takeUntil(clicks)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link take} + * @see {@link takeLast} + * @see {@link takeWhile} + * @see {@link skip} + * + * @param {Observable} notifier The Observable whose first emitted value will + * cause the output Observable of `takeUntil` to stop emitting values from the + * source Observable. + * @return {Observable} An Observable that emits the values from the source + * Observable until such time as `notifier` emits its first value. + * @method takeUntil + * @owner Observable + */ +export function takeUntil(notifier: Observable): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new TakeUntilOperator(notifier)); +} + +class TakeUntilOperator implements Operator { + constructor(private notifier: Observable) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + const takeUntilSubscriber = new TakeUntilSubscriber(subscriber); + const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber)); + if (notifierSubscription && !takeUntilSubscriber.seenValue) { + takeUntilSubscriber.add(notifierSubscription); + return source.subscribe(takeUntilSubscriber); + } + return takeUntilSubscriber; + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TakeUntilSubscriber extends SimpleOuterSubscriber { + seenValue = false; + + constructor(destination: Subscriber, ) { + super(destination); + } + + notifyNext(): void { + this.seenValue = true; + this.complete(); + } + + notifyComplete(): void { + // noop + } +} diff --git a/node_modules/rxjs/src/internal/operators/takeWhile.ts b/node_modules/rxjs/src/internal/operators/takeWhile.ts new file mode 100644 index 00000000..473169b1 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/takeWhile.ts @@ -0,0 +1,110 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { OperatorFunction, MonoTypeOperatorFunction, TeardownLogic } from '../types'; + +export function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction; +export function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction; +export function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction; + +/** + * Emits values emitted by the source Observable so long as each value satisfies + * the given `predicate`, and then completes as soon as this `predicate` is not + * satisfied. + * + * Takes values from the source only while they pass the + * condition given. When the first value does not satisfy, it completes. + * + * ![](takeWhile.png) + * + * `takeWhile` subscribes and begins mirroring the source Observable. Each value + * emitted on the source is given to the `predicate` function which returns a + * boolean, representing a condition to be satisfied by the source values. The + * output Observable emits the source values until such time as the `predicate` + * returns false, at which point `takeWhile` stops mirroring the source + * Observable and completes the output Observable. + * + * ## Example + * Emit click events only while the clientX property is greater than 200 + * ```ts + * import { fromEvent } from 'rxjs'; + * import { takeWhile } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link take} + * @see {@link takeLast} + * @see {@link takeUntil} + * @see {@link skip} + * + * @param {function(value: T, index: number): boolean} predicate A function that + * evaluates a value emitted by the source Observable and returns a boolean. + * Also takes the (zero-based) index as the second argument. + * @param {boolean} inclusive When set to `true` the value that caused + * `predicate` to return `false` will also be emitted. + * @return {Observable} An Observable that emits the values from the source + * Observable so long as each value satisfies the condition defined by the + * `predicate`, then completes. + * @method takeWhile + * @owner Observable + */ +export function takeWhile( + predicate: (value: T, index: number) => boolean, + inclusive = false): MonoTypeOperatorFunction { + return (source: Observable) => + source.lift(new TakeWhileOperator(predicate, inclusive)); +} + +class TakeWhileOperator implements Operator { + constructor( + private predicate: (value: T, index: number) => boolean, + private inclusive: boolean) {} + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe( + new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TakeWhileSubscriber extends Subscriber { + private index: number = 0; + + constructor( + destination: Subscriber, + private predicate: (value: T, index: number) => boolean, + private inclusive: boolean) { + super(destination); + } + + protected _next(value: T): void { + const destination = this.destination; + let result: boolean; + try { + result = this.predicate(value, this.index++); + } catch (err) { + destination.error(err); + return; + } + this.nextOrComplete(value, result); + } + + private nextOrComplete(value: T, predicateResult: boolean): void { + const destination = this.destination; + if (Boolean(predicateResult)) { + destination.next(value); + } else { + if (this.inclusive) { + destination.next(value); + } + destination.complete(); + } + } +} diff --git a/node_modules/rxjs/src/internal/operators/tap.ts b/node_modules/rxjs/src/internal/operators/tap.ts new file mode 100644 index 00000000..57087a0d --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/tap.ts @@ -0,0 +1,147 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { MonoTypeOperatorFunction, PartialObserver, TeardownLogic } from '../types'; +import { noop } from '../util/noop'; +import { isFunction } from '../util/isFunction'; + +/* tslint:disable:max-line-length */ +/** @deprecated Use an observer instead of a complete callback */ +export function tap(next: null | undefined, error: null | undefined, complete: () => void): MonoTypeOperatorFunction; +/** @deprecated Use an observer instead of an error callback */ +export function tap(next: null | undefined, error: (error: any) => void, complete?: () => void): MonoTypeOperatorFunction; +/** @deprecated Use an observer instead of a complete callback */ +export function tap(next: (value: T) => void, error: null | undefined, complete: () => void): MonoTypeOperatorFunction; +export function tap(next?: (x: T) => void, error?: (e: any) => void, complete?: () => void): MonoTypeOperatorFunction; +export function tap(observer: PartialObserver): MonoTypeOperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * Perform a side effect for every emission on the source Observable, but return + * an Observable that is identical to the source. + * + * Intercepts each emission on the source and runs a + * function, but returns an output which is identical to the source as long as errors don't occur. + * + * ![](do.png) + * + * Returns a mirrored Observable of the source Observable, but modified so that + * the provided Observer is called to perform a side effect for every value, + * error, and completion emitted by the source. Any errors that are thrown in + * the aforementioned Observer or handlers are safely sent down the error path + * of the output Observable. + * + * This operator is useful for debugging your Observables for the correct values + * or performing other side effects. + * + * Note: this is different to a `subscribe` on the Observable. If the Observable + * returned by `tap` is not subscribed, the side effects specified by the + * Observer will never happen. `tap` therefore simply spies on existing + * execution, it does not trigger an execution to happen like `subscribe` does. + * + * ## Example + * Map every click to the clientX position of that click, while also logging the click event + * ```ts + * import { fromEvent } from 'rxjs'; + * import { tap, map } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const positions = clicks.pipe( + * tap(ev => console.log(ev)), + * map(ev => ev.clientX), + * ); + * positions.subscribe(x => console.log(x)); + * ``` + * + * @see {@link map} + * @see {@link Observable#subscribe} + * + * @param {Observer|function} [nextOrObserver] A normal Observer object or a + * callback for `next`. + * @param {function} [error] Callback for errors in the source. + * @param {function} [complete] Callback for the completion of the source. + * @return {Observable} An Observable identical to the source, but runs the + * specified Observer or callback(s) for each item. + * @name tap + */ +export function tap(nextOrObserver?: PartialObserver | ((x: T) => void), + error?: (e: any) => void, + complete?: () => void): MonoTypeOperatorFunction { + return function tapOperatorFunction(source: Observable): Observable { + return source.lift(new DoOperator(nextOrObserver, error, complete)); + }; +} + +class DoOperator implements Operator { + constructor(private nextOrObserver?: PartialObserver | ((x: T) => void), + private error?: (e: any) => void, + private complete?: () => void) { + } + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ + +class TapSubscriber extends Subscriber { + private _context: any; + + private _tapNext: ((value: T) => void) = noop; + + private _tapError: ((err: any) => void) = noop; + + private _tapComplete: (() => void) = noop; + + constructor(destination: Subscriber, + observerOrNext?: PartialObserver | ((value: T) => void), + error?: (e?: any) => void, + complete?: () => void) { + super(destination); + this._tapError = error || noop; + this._tapComplete = complete || noop; + if (isFunction(observerOrNext)) { + this._context = this; + this._tapNext = observerOrNext; + } else if (observerOrNext) { + this._context = observerOrNext; + this._tapNext = observerOrNext.next || noop; + this._tapError = observerOrNext.error || noop; + this._tapComplete = observerOrNext.complete || noop; + } + } + + _next(value: T) { + try { + this._tapNext.call(this._context, value); + } catch (err) { + this.destination.error(err); + return; + } + this.destination.next(value); + } + + _error(err: any) { + try { + this._tapError.call(this._context, err); + } catch (err) { + this.destination.error(err); + return; + } + this.destination.error(err); + } + + _complete() { + try { + this._tapComplete.call(this._context, ); + } catch (err) { + this.destination.error(err); + return; + } + return this.destination.complete(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/throttle.ts b/node_modules/rxjs/src/internal/operators/throttle.ts new file mode 100644 index 00000000..380e72e6 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/throttle.ts @@ -0,0 +1,158 @@ +import { Operator } from '../Operator'; +import { Observable } from '../Observable'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; + +import { MonoTypeOperatorFunction, SubscribableOrPromise, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +export interface ThrottleConfig { + leading?: boolean; + trailing?: boolean; +} + +export const defaultThrottleConfig: ThrottleConfig = { + leading: true, + trailing: false +}; + +/** + * Emits a value from the source Observable, then ignores subsequent source + * values for a duration determined by another Observable, then repeats this + * process. + * + * It's like {@link throttleTime}, but the silencing + * duration is determined by a second Observable. + * + * ![](throttle.png) + * + * `throttle` emits the source Observable values on the output Observable + * when its internal timer is disabled, and ignores source values when the timer + * is enabled. Initially, the timer is disabled. As soon as the first source + * value arrives, it is forwarded to the output Observable, and then the timer + * is enabled by calling the `durationSelector` function with the source value, + * which returns the "duration" Observable. When the duration Observable emits a + * value or completes, the timer is disabled, and this process repeats for the + * next source value. + * + * ## Example + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { throttle } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(throttle(ev => interval(1000))); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link audit} + * @see {@link debounce} + * @see {@link delayWhen} + * @see {@link sample} + * @see {@link throttleTime} + * + * @param {function(value: T): SubscribableOrPromise} durationSelector A function + * that receives a value from the source Observable, for computing the silencing + * duration for each source value, returned as an Observable or a Promise. + * @param {Object} config a configuration object to define `leading` and `trailing` behavior. Defaults + * to `{ leading: true, trailing: false }`. + * @return {Observable} An Observable that performs the throttle operation to + * limit the rate of emissions from the source. + * @method throttle + * @owner Observable + */ +export function throttle(durationSelector: (value: T) => SubscribableOrPromise, + config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing)); +} + +class ThrottleOperator implements Operator { + constructor(private durationSelector: (value: T) => SubscribableOrPromise, + private leading: boolean, + private trailing: boolean) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe( + new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing) + ); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc + * @ignore + * @extends {Ignored} + */ +class ThrottleSubscriber extends SimpleOuterSubscriber { + private _throttled?: Subscription; + private _sendValue?: T; + private _hasValue = false; + + constructor(protected destination: Subscriber, + private durationSelector: (value: T) => SubscribableOrPromise, + private _leading: boolean, + private _trailing: boolean) { + super(destination); + } + + protected _next(value: T): void { + this._hasValue = true; + this._sendValue = value; + + if (!this._throttled) { + if (this._leading) { + this.send(); + } else { + this.throttle(value); + } + } + } + + private send() { + const { _hasValue, _sendValue } = this; + if (_hasValue) { + this.destination.next(_sendValue); + this.throttle(_sendValue!); + } + this._hasValue = false; + this._sendValue = undefined; + } + + private throttle(value: T): void { + const duration = this.tryDurationSelector(value); + if (!!duration) { + this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this))); + } + } + + private tryDurationSelector(value: T): SubscribableOrPromise | null { + try { + return this.durationSelector(value); + } catch (err) { + this.destination.error(err); + return null; + } + } + + private throttlingDone() { + const { _throttled, _trailing } = this; + if (_throttled) { + _throttled.unsubscribe(); + } + this._throttled = undefined; + + if (_trailing) { + this.send(); + } + } + + notifyNext(): void { + this.throttlingDone(); + } + + notifyComplete(): void { + this.throttlingDone(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/throttleTime.ts b/node_modules/rxjs/src/internal/operators/throttleTime.ts new file mode 100644 index 00000000..baed7785 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/throttleTime.ts @@ -0,0 +1,174 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { async } from '../scheduler/async'; +import { Observable } from '../Observable'; +import { ThrottleConfig, defaultThrottleConfig } from './throttle'; +import { MonoTypeOperatorFunction, SchedulerLike, TeardownLogic } from '../types'; + +/** + * Emits a value from the source Observable, then ignores subsequent source + * values for `duration` milliseconds, then repeats this process. + * + * Lets a value pass, then ignores source values for the + * next `duration` milliseconds. + * + * ![](throttleTime.png) + * + * `throttleTime` emits the source Observable values on the output Observable + * when its internal timer is disabled, and ignores source values when the timer + * is enabled. Initially, the timer is disabled. As soon as the first source + * value arrives, it is forwarded to the output Observable, and then the timer + * is enabled. After `duration` milliseconds (or the time unit determined + * internally by the optional `scheduler`) has passed, the timer is disabled, + * and this process repeats for the next source value. Optionally takes a + * {@link SchedulerLike} for managing timers. + * + * ## Examples + * + * #### Limit click rate + * + * Emit clicks at a rate of at most one click per second + * ```ts + * import { fromEvent } from 'rxjs'; + * import { throttleTime } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe(throttleTime(1000)); + * result.subscribe(x => console.log(x)); + * ``` + * + * #### Double Click + * + * The following example only emits clicks which happen within a subsequent + * delay of 400ms of the previous click. This for example can emulate a double + * click. It makes use of the `trailing` parameter of the throttle configuration. + * + * ```ts + * import { fromEvent, asyncScheduler } from 'rxjs'; + * import { throttleTime, withLatestFrom } from 'rxjs/operators'; + * + * // defaultThottleConfig = { leading: true, trailing: false } + * const throttleConfig = { + * leading: false, + * trailing: true + * } + * + * const click = fromEvent(document, 'click'); + * const doubleClick = click.pipe( + * throttleTime(400, asyncScheduler, throttleConfig) + * ); + * + * doubleClick.subscribe((throttleValue: Event) => { + * console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`); + * }); + * ``` + * + * If you enable the `leading` parameter in this example, the output would be the primary click and + * the double click, but restricts additional clicks within 400ms. + * + * @see {@link auditTime} + * @see {@link debounceTime} + * @see {@link delay} + * @see {@link sampleTime} + * @see {@link throttle} + * + * @param {number} duration Time to wait before emitting another value after + * emitting the last value, measured in milliseconds or the time unit determined + * internally by the optional `scheduler`. + * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for + * managing the timers that handle the throttling. + * @param {Object} config a configuration object to define `leading` and + * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`. + * @return {Observable} An Observable that performs the throttle operation to + * limit the rate of emissions from the source. + * @method throttleTime + * @owner Observable + */ +export function throttleTime(duration: number, + scheduler: SchedulerLike = async, + config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction { + return (source: Observable) => source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); +} + +class ThrottleTimeOperator implements Operator { + constructor(private duration: number, + private scheduler: SchedulerLike, + private leading: boolean, + private trailing: boolean) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe( + new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing) + ); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class ThrottleTimeSubscriber extends Subscriber { + private throttled: Subscription; + private _hasTrailingValue: boolean = false; + private _trailingValue: T = null; + + constructor(destination: Subscriber, + private duration: number, + private scheduler: SchedulerLike, + private leading: boolean, + private trailing: boolean) { + super(destination); + } + + protected _next(value: T) { + if (this.throttled) { + if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } else { + this.add(this.throttled = this.scheduler.schedule>(dispatchNext, this.duration, { subscriber: this })); + if (this.leading) { + this.destination.next(value); + } else if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + } + + protected _complete() { + if (this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this.destination.complete(); + } else { + this.destination.complete(); + } + } + + clearThrottle() { + const throttled = this.throttled; + if (throttled) { + if (this.trailing && this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + throttled.unsubscribe(); + this.remove(throttled); + this.throttled = null; + } + } +} + +interface DispatchArg { + subscriber: ThrottleTimeSubscriber; +} + +function dispatchNext(arg: DispatchArg) { + const { subscriber } = arg; + subscriber.clearThrottle(); +} diff --git a/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts b/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts new file mode 100644 index 00000000..7f39c4e9 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/throwIfEmpty.ts @@ -0,0 +1,81 @@ +import { EmptyError } from '../util/EmptyError'; +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { TeardownLogic, MonoTypeOperatorFunction } from '../types'; + +/** + * If the source observable completes without emitting a value, it will emit + * an error. The error will be created at that time by the optional + * `errorFactory` argument, otherwise, the error will be {@link EmptyError}. + * + * ![](throwIfEmpty.png) + * + * ## Example + * ```ts + * import { fromEvent, timer } from 'rxjs'; + * import { throwIfEmpty, takeUntil } from 'rxjs/operators'; + * + * const click$ = fromEvent(document, 'click'); + * + * click$.pipe( + * takeUntil(timer(1000)), + * throwIfEmpty( + * () => new Error('the document was not clicked within 1 second') + * ), + * ) + * .subscribe({ + * next() { console.log('The button was clicked'); }, + * error(err) { console.error(err); } + * }); + * ``` + * + * @param errorFactory A factory function called to produce the + * error to be thrown when the source observable completes without emitting a + * value. + */ +export function throwIfEmpty (errorFactory: (() => any) = defaultErrorFactory): MonoTypeOperatorFunction { + return (source: Observable) => { + return source.lift(new ThrowIfEmptyOperator(errorFactory)); + }; +} + +class ThrowIfEmptyOperator implements Operator { + constructor(private errorFactory: () => any) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); + } +} + +class ThrowIfEmptySubscriber extends Subscriber { + private hasValue: boolean = false; + + constructor(destination: Subscriber, private errorFactory: () => any) { + super(destination); + } + + protected _next(value: T): void { + this.hasValue = true; + this.destination.next(value); + } + + protected _complete() { + if (!this.hasValue) { + let err: any; + try { + err = this.errorFactory(); + } catch (e) { + err = e; + } + this.destination.error(err); + } else { + return this.destination.complete(); + } + } +} + +function defaultErrorFactory() { + return new EmptyError(); +} diff --git a/node_modules/rxjs/src/internal/operators/timeInterval.ts b/node_modules/rxjs/src/internal/operators/timeInterval.ts new file mode 100644 index 00000000..02e77ceb --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/timeInterval.ts @@ -0,0 +1,75 @@ + +import { Observable } from '../Observable'; +import { async } from '../scheduler/async'; +import { SchedulerLike, OperatorFunction } from '../types'; +import { scan } from './scan'; +import { defer } from '../observable/defer'; +import { map } from './map'; + +/** + * + * Emits an object containing the current value, and the time that has + * passed between emitting the current value and the previous value, which is + * calculated by using the provided `scheduler`'s `now()` method to retrieve + * the current time at each emission, then calculating the difference. The `scheduler` + * defaults to {@link asyncScheduler}, so by default, the `interval` will be in + * milliseconds. + * + * Convert an Observable that emits items into one that + * emits indications of the amount of time elapsed between those emissions. + * + * ![](timeinterval.png) + * + * ## Examples + * Emit inteval between current value with the last value + * + * ```ts + * const seconds = interval(1000); + * + * seconds.pipe(timeInterval()) + * .subscribe( + * value => console.log(value), + * err => console.log(err), + * ); + * + * seconds.pipe(timeout(900)) + * .subscribe( + * value => console.log(value), + * err => console.log(err), + * ); + * + * // NOTE: The values will never be this precise, + * // intervals created with `interval` or `setInterval` + * // are non-deterministic. + * + * // {value: 0, interval: 1000} + * // {value: 1, interval: 1000} + * // {value: 2, interval: 1000} + * ``` + * + * @param {SchedulerLike} [scheduler] Scheduler used to get the current time. + * @return {Observable<{ interval: number, value: T }>} Observable that emit infomation about value and interval + * @method timeInterval + */ +export function timeInterval(scheduler: SchedulerLike = async): OperatorFunction> { + return (source: Observable) => defer(() => { + return source.pipe( + // TODO(benlesh): correct these typings. + scan( + ({ current }, value) => ({ value, current: scheduler.now(), last: current }), + { current: scheduler.now(), value: undefined, last: undefined } + ) as any, + map>(({ current, last, value }) => new TimeInterval(value, current - last)), + ); + }); +} + +// TODO(benlesh): make this an interface, export the interface, but not the implemented class, +// there's no reason users should be manually creating this type. + +/** + * @deprecated exposed API, use as interface only. + */ +export class TimeInterval { + constructor(public value: T, public interval: number) {} +} diff --git a/node_modules/rxjs/src/internal/operators/timeout.ts b/node_modules/rxjs/src/internal/operators/timeout.ts new file mode 100644 index 00000000..b049e730 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/timeout.ts @@ -0,0 +1,92 @@ +import { async } from '../scheduler/async'; +import { isDate } from '../util/isDate'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { TimeoutError } from '../util/TimeoutError'; +import { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; +import { timeoutWith } from './timeoutWith'; +import { throwError } from '../observable/throwError'; + +/** + * + * Errors if Observable does not emit a value in given time span. + * + * Timeouts on Observable that doesn't emit values fast enough. + * + * ![](timeout.png) + * + * `timeout` operator accepts as an argument either a number or a Date. + * + * If number was provided, it returns an Observable that behaves like a source + * Observable, unless there is a period of time where there is no value emitted. + * So if you provide `100` as argument and first value comes after 50ms from + * the moment of subscription, this value will be simply re-emitted by the resulting + * Observable. If however after that 100ms passes without a second value being emitted, + * stream will end with an error and source Observable will be unsubscribed. + * These checks are performed throughout whole lifecycle of Observable - from the moment + * it was subscribed to, until it completes or errors itself. Thus every value must be + * emitted within specified period since previous value. + * + * If provided argument was Date, returned Observable behaves differently. It throws + * if Observable did not complete before provided Date. This means that periods between + * emission of particular values do not matter in this case. If Observable did not complete + * before provided Date, source Observable will be unsubscribed. Other than that, resulting + * stream behaves just as source Observable. + * + * `timeout` accepts also a Scheduler as a second parameter. It is used to schedule moment (or moments) + * when returned Observable will check if source stream emitted value or completed. + * + * ## Examples + * Check if ticks are emitted within certain timespan + * ```ts + * import { interval } from 'rxjs'; + * import { timeout } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * + * seconds.pipe(timeout(1100)) // Let's use bigger timespan to be safe, + * // since `interval` might fire a bit later then scheduled. + * .subscribe( + * value => console.log(value), // Will emit numbers just as regular `interval` would. + * err => console.log(err), // Will never be called. + * ); + * + * seconds.pipe(timeout(900)) + * .subscribe( + * value => console.log(value), // Will never be called. + * err => console.log(err), // Will emit error before even first value is emitted, + * // since it did not arrive within 900ms period. + * ); + * ``` + * + * Use Date to check if Observable completed + * ```ts + * import { interval } from 'rxjs'; + * import { timeout } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * + * seconds.pipe( + * timeout(new Date("December 17, 2020 03:24:00")), + * ) + * .subscribe( + * value => console.log(value), // Will emit values as regular `interval` would + * // until December 17, 2020 at 03:24:00. + * err => console.log(err) // On December 17, 2020 at 03:24:00 it will emit an error, + * // since Observable did not complete by then. + * ); + * ``` + * @see {@link timeoutWith} + * + * @param {number|Date} due Number specifying period within which Observable must emit values + * or Date specifying before when Observable should complete + * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur. + * @return {Observable} Observable that mirrors behaviour of source, unless timeout checks fail. + * @method timeout + * @owner Observable + */ +export function timeout(due: number | Date, + scheduler: SchedulerLike = async): MonoTypeOperatorFunction { + return timeoutWith(due, throwError(new TimeoutError()), scheduler); +} diff --git a/node_modules/rxjs/src/internal/operators/timeoutWith.ts b/node_modules/rxjs/src/internal/operators/timeoutWith.ts new file mode 100644 index 00000000..95788517 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/timeoutWith.ts @@ -0,0 +1,143 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { async } from '../scheduler/async'; +import { Observable } from '../Observable'; +import { isDate } from '../util/isDate'; +import { ObservableInput, OperatorFunction, SchedulerAction, SchedulerLike, TeardownLogic } from '../types'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/* tslint:disable:max-line-length */ +export function timeoutWith(due: number | Date, withObservable: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * + * Errors if Observable does not emit a value in given time span, in case of which + * subscribes to the second Observable. + * + * It's a version of `timeout` operator that let's you specify fallback Observable. + * + * ![](timeoutWith.png) + * + * `timeoutWith` is a variation of `timeout` operator. It behaves exactly the same, + * still accepting as a first argument either a number or a Date, which control - respectively - + * when values of source Observable should be emitted or when it should complete. + * + * The only difference is that it accepts a second, required parameter. This parameter + * should be an Observable which will be subscribed when source Observable fails any timeout check. + * So whenever regular `timeout` would emit an error, `timeoutWith` will instead start re-emitting + * values from second Observable. Note that this fallback Observable is not checked for timeouts + * itself, so it can emit values and complete at arbitrary points in time. From the moment of a second + * subscription, Observable returned from `timeoutWith` simply mirrors fallback stream. When that + * stream completes, it completes as well. + * + * Scheduler, which in case of `timeout` is provided as as second argument, can be still provided + * here - as a third, optional parameter. It still is used to schedule timeout checks and - + * as a consequence - when second Observable will be subscribed, since subscription happens + * immediately after failing check. + * + * ## Example + * Add fallback observable + * ```ts + * import { interval } from 'rxjs'; + * import { timeoutWith } from 'rxjs/operators'; + * + * const seconds = interval(1000); + * const minutes = interval(60 * 1000); + * + * seconds.pipe(timeoutWith(900, minutes)) + * .subscribe( + * value => console.log(value), // After 900ms, will start emitting `minutes`, + * // since first value of `seconds` will not arrive fast enough. + * err => console.log(err), // Would be called after 900ms in case of `timeout`, + * // but here will never be called. + * ); + * ``` + * + * @param {number|Date} due Number specifying period within which Observable must emit values + * or Date specifying before when Observable should complete + * @param {Observable} withObservable Observable which will be subscribed if source fails timeout check. + * @param {SchedulerLike} [scheduler] Scheduler controlling when timeout checks occur. + * @return {Observable} Observable that mirrors behaviour of source or, when timeout check fails, of an Observable + * passed as a second parameter. + * @method timeoutWith + * @owner Observable + */ +export function timeoutWith(due: number | Date, + withObservable: ObservableInput, + scheduler: SchedulerLike = async): OperatorFunction { + return (source: Observable) => { + let absoluteTimeout = isDate(due); + let waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); + }; +} + +class TimeoutWithOperator implements Operator { + constructor(private waitFor: number, + private absoluteTimeout: boolean, + private withObservable: ObservableInput, + private scheduler: SchedulerLike) { + } + + call(subscriber: Subscriber, source: any): TeardownLogic { + return source.subscribe(new TimeoutWithSubscriber( + subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler + )); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class TimeoutWithSubscriber extends SimpleOuterSubscriber { + + private action?: SchedulerAction>; + + constructor(destination: Subscriber, + private absoluteTimeout: boolean, + private waitFor: number, + private withObservable: ObservableInput, + private scheduler: SchedulerLike) { + super(destination); + this.scheduleTimeout(); + } + + private static dispatchTimeout(subscriber: TimeoutWithSubscriber): void { + const { withObservable } = subscriber; + subscriber._unsubscribeAndRecycle(); + subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber))); + } + + private scheduleTimeout(): void { + const { action } = this; + if (action) { + // Recycle the action if we've already scheduled one. All the production + // Scheduler Actions mutate their state/delay time and return themeselves. + // VirtualActions are immutable, so they create and return a clone. In this + // case, we need to set the action reference to the most recent VirtualAction, + // to ensure that's the one we clone from next time. + this.action = (>> action.schedule(this, this.waitFor)); + } else { + this.add(this.action = (>> this.scheduler.schedule>( + TimeoutWithSubscriber.dispatchTimeout as any, this.waitFor, this + ))); + } + } + + protected _next(value: T): void { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + super._next(value); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + this.action = undefined; + this.scheduler = null!; + this.withObservable = null!; + } +} diff --git a/node_modules/rxjs/src/internal/operators/timestamp.ts b/node_modules/rxjs/src/internal/operators/timestamp.ts new file mode 100644 index 00000000..d4061c8c --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/timestamp.ts @@ -0,0 +1,48 @@ + +import { async } from '../scheduler/async'; +import { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types'; +import { map } from './map'; + +/** + * Attaches a timestamp to each item emitted by an observable indicating when it was emitted + * + * The `timestamp` operator maps the *source* observable stream to an object of type + * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value + * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By + * default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01 + * 00:00:00:000) and therefore is of type `number`. + * + * ![](timestamp.png) + * + * ## Example + * + * In this example there is a timestamp attached to the documents click event. + * + * ```ts + * import { fromEvent } from 'rxjs'; + * import { timestamp } from 'rxjs/operators'; + * + * const clickWithTimestamp = fromEvent(document, 'click').pipe( + * timestamp() + * ); + * + * // Emits data of type {value: MouseEvent, timestamp: number} + * clickWithTimestamp.subscribe(data => { + * console.log(data); + * }); + * ``` + * + * @param scheduler + * @return {Observable>|WebSocketSubject|Observable} + * @method timestamp + * @owner Observable + */ +export function timestamp(scheduler: SchedulerLike = async): OperatorFunction> { + return map((value: T) => new Timestamp(value, scheduler.now())); + // return (source: Observable) => source.lift(new TimestampOperator(scheduler)); +} + +export class Timestamp implements TimestampInterface { + constructor(public value: T, public timestamp: number) { + } +} diff --git a/node_modules/rxjs/src/internal/operators/toArray.ts b/node_modules/rxjs/src/internal/operators/toArray.ts new file mode 100644 index 00000000..40d05601 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/toArray.ts @@ -0,0 +1,45 @@ +import { reduce } from './reduce'; +import { OperatorFunction } from '../types'; + +function toArrayReducer(arr: T[], item: T, index: number) { + if (index === 0) { + return [item]; + } + arr.push(item); + return arr; +} + +/** + * Collects all source emissions and emits them as an array when the source completes. + * + * Get all values inside an array when the source completes + * + * ![](toArray.png) + * + * `toArray` will wait until the source Observable completes before emitting + * the array containing all emissions. When the source Observable errors no + * array will be emitted. + * + * ## Example + * ```ts + * import { interval } from 'rxjs'; + * import { toArray, take } from 'rxjs/operators'; + * + * const source = interval(1000); + * const example = source.pipe( + * take(10), + * toArray() + * ); + * + * const subscribe = example.subscribe(val => console.log(val)); + * + * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + * + * ``` +* @return An array from an observable sequence. +* @method toArray +* @owner Observable +*/ +export function toArray(): OperatorFunction { + return reduce(toArrayReducer, [] as T[]); +} diff --git a/node_modules/rxjs/src/internal/operators/window.ts b/node_modules/rxjs/src/internal/operators/window.ts new file mode 100644 index 00000000..48390a32 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/window.ts @@ -0,0 +1,126 @@ +import { Observable } from '../Observable'; +import { OperatorFunction } from '../types'; +import { Subject } from '../Subject'; +import { Subscriber } from '../Subscriber'; +import { Operator } from '../Operator'; +import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe'; + +/** + * Branch out the source Observable values as a nested Observable whenever + * `windowBoundaries` emits. + * + * It's like {@link buffer}, but emits a nested Observable + * instead of an array. + * + * ![](window.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits connected, non-overlapping + * windows. It emits the current window and opens a new one whenever the + * Observable `windowBoundaries` emits an item. Because each window is an + * Observable, the output is a higher-order Observable. + * + * ## Example + * In every window of 1 second each, emit at most 2 click events + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { window, mergeAll, map, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const sec = interval(1000); + * const result = clicks.pipe( + * window(sec), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * @see {@link windowCount} + * @see {@link windowTime} + * @see {@link windowToggle} + * @see {@link windowWhen} + * @see {@link buffer} + * + * @param {Observable} windowBoundaries An Observable that completes the + * previous window and starts a new window. + * @return {Observable>} An Observable of windows, which are + * Observables emitting values of the source Observable. + * @method window + * @owner Observable + */ +export function window(windowBoundaries: Observable): OperatorFunction> { + return function windowOperatorFunction(source: Observable) { + return source.lift(new WindowOperator(windowBoundaries)); + }; +} + +class WindowOperator implements Operator> { + + constructor(private windowBoundaries: Observable) { + } + + call(subscriber: Subscriber>, source: any): any { + const windowSubscriber = new WindowSubscriber(subscriber); + const sourceSubscription = source.subscribe(windowSubscriber); + if (!sourceSubscription.closed) { + windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber))); + } + return sourceSubscription; + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class WindowSubscriber extends SimpleOuterSubscriber { + + private window: Subject = new Subject(); + + constructor(destination: Subscriber>) { + super(destination); + destination.next(this.window); + } + + notifyNext(): void { + this.openWindow(); + } + + notifyError(error: any): void { + this._error(error); + } + + notifyComplete(): void { + this._complete(); + } + + protected _next(value: T): void { + this.window.next(value); + } + + protected _error(err: any): void { + this.window.error(err); + this.destination.error!(err); + } + + protected _complete(): void { + this.window.complete(); + this.destination.complete!(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + this.window = null!; + } + + private openWindow(): void { + const prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + const destination = this.destination; + const newWindow = this.window = new Subject(); + destination.next!(newWindow); + } +} diff --git a/node_modules/rxjs/src/internal/operators/windowCount.ts b/node_modules/rxjs/src/internal/operators/windowCount.ts new file mode 100644 index 00000000..cccfd351 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/windowCount.ts @@ -0,0 +1,149 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { OperatorFunction } from '../types'; + +/** + * Branch out the source Observable values as a nested Observable with each + * nested Observable emitting at most `windowSize` values. + * + * It's like {@link bufferCount}, but emits a nested + * Observable instead of an array. + * + * ![](windowCount.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits windows every `startWindowEvery` + * items, each containing no more than `windowSize` items. When the source + * Observable completes or encounters an error, the output Observable emits + * the current window and propagates the notification from the source + * Observable. If `startWindowEvery` is not provided, then new windows are + * started immediately at the start of the source and when each window completes + * with size `windowSize`. + * + * ## Examples + * Ignore every 3rd click event, starting from the first one + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowCount, map, mergeAll, skip } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowCount(3), + * map(win => win.pipe(skip(1))), // skip first of every 3 clicks + * mergeAll() // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * Ignore every 3rd click event, starting from the third one + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowCount, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowCount(2, 3), + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowTime} + * @see {@link windowToggle} + * @see {@link windowWhen} + * @see {@link bufferCount} + * + * @param {number} windowSize The maximum number of values emitted by each + * window. + * @param {number} [startWindowEvery] Interval at which to start a new window. + * For example if `startWindowEvery` is `2`, then a new window will be started + * on every other value from the source. A new window is started at the + * beginning of the source by default. + * @return {Observable>} An Observable of windows, which in turn + * are Observable of values. + * @method windowCount + * @owner Observable + */ +export function windowCount(windowSize: number, + startWindowEvery: number = 0): OperatorFunction> { + return function windowCountOperatorFunction(source: Observable) { + return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); + }; +} + +class WindowCountOperator implements Operator> { + + constructor(private windowSize: number, + private startWindowEvery: number) { + } + + call(subscriber: Subscriber>, source: any): any { + return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class WindowCountSubscriber extends Subscriber { + private windows: Subject[] = [ new Subject() ]; + private count: number = 0; + + constructor(protected destination: Subscriber>, + private windowSize: number, + private startWindowEvery: number) { + super(destination); + destination.next(this.windows[0]); + } + + protected _next(value: T) { + const startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; + const destination = this.destination; + const windowSize = this.windowSize; + const windows = this.windows; + const len = windows.length; + + for (let i = 0; i < len && !this.closed; i++) { + windows[i].next(value); + } + const c = this.count - windowSize + 1; + if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { + windows.shift().complete(); + } + if (++this.count % startWindowEvery === 0 && !this.closed) { + const window = new Subject(); + windows.push(window); + destination.next(window); + } + } + + protected _error(err: any) { + const windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().error(err); + } + } + this.destination.error(err); + } + + protected _complete() { + const windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().complete(); + } + } + this.destination.complete(); + } + + protected _unsubscribe() { + this.count = 0; + this.windows = null; + } +} diff --git a/node_modules/rxjs/src/internal/operators/windowTime.ts b/node_modules/rxjs/src/internal/operators/windowTime.ts new file mode 100644 index 00000000..29c87705 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/windowTime.ts @@ -0,0 +1,282 @@ +import { Subject } from '../Subject'; +import { Operator } from '../Operator'; +import { async } from '../scheduler/async'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { isNumeric } from '../util/isNumeric'; +import { isScheduler } from '../util/isScheduler'; +import { OperatorFunction, SchedulerLike, SchedulerAction } from '../types'; + +/** + * Branch out the source Observable values as a nested Observable periodically + * in time. + * + * It's like {@link bufferTime}, but emits a nested + * Observable instead of an array. + * + * ![](windowTime.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable starts a new window periodically, as + * determined by the `windowCreationInterval` argument. It emits each window + * after a fixed timespan, specified by the `windowTimeSpan` argument. When the + * source Observable completes or encounters an error, the output Observable + * emits the current window and propagates the notification from the source + * Observable. If `windowCreationInterval` is not provided, the output + * Observable starts a new window when the previous window of duration + * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window + * will emit at most fixed number of values. Window will complete immediately + * after emitting last value and next one still will open as specified by + * `windowTimeSpan` and `windowCreationInterval` arguments. + * + * ## Examples + * In every window of 1 second each, emit at most 2 click events + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowTime, map, mergeAll, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowTime(1000), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowTime, map, mergeAll, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowTime(1000, 5000), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * Same as example above but with maxWindowCount instead of take + * ```ts + * import { fromEvent } from 'rxjs'; + * import { windowTime, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowTime(1000, 5000, 2), // each window has still at most 2 emissions + * mergeAll(), // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowCount} + * @see {@link windowToggle} + * @see {@link windowWhen} + * @see {@link bufferTime} + * + * @param {number} windowTimeSpan The amount of time to fill each window. + * @param {number} [windowCreationInterval] The interval at which to start new + * windows. + * @param {number} [maxWindowSize=Number.POSITIVE_INFINITY] Max number of + * values each window can emit before completion. + * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the + * intervals that determine window boundaries. + * @return {Observable>} An observable of windows, which in turn + * are Observables. + * @method windowTime + * @owner Observable + */ +export function windowTime(windowTimeSpan: number, + scheduler?: SchedulerLike): OperatorFunction>; +export function windowTime(windowTimeSpan: number, + windowCreationInterval: number, + scheduler?: SchedulerLike): OperatorFunction>; +export function windowTime(windowTimeSpan: number, + windowCreationInterval: number, + maxWindowSize: number, + scheduler?: SchedulerLike): OperatorFunction>; + +export function windowTime(windowTimeSpan: number): OperatorFunction> { + let scheduler: SchedulerLike = async; + let windowCreationInterval: number = null; + let maxWindowSize: number = Number.POSITIVE_INFINITY; + + if (isScheduler(arguments[3])) { + scheduler = arguments[3]; + } + + if (isScheduler(arguments[2])) { + scheduler = arguments[2]; + } else if (isNumeric(arguments[2])) { + maxWindowSize = Number(arguments[2]); + } + + if (isScheduler(arguments[1])) { + scheduler = arguments[1]; + } else if (isNumeric(arguments[1])) { + windowCreationInterval = Number(arguments[1]); + } + + return function windowTimeOperatorFunction(source: Observable) { + return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); + }; +} + +class WindowTimeOperator implements Operator> { + + constructor(private windowTimeSpan: number, + private windowCreationInterval: number | null, + private maxWindowSize: number, + private scheduler: SchedulerLike) { + } + + call(subscriber: Subscriber>, source: any): any { + return source.subscribe(new WindowTimeSubscriber( + subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler + )); + } +} + +interface CreationState { + windowTimeSpan: number; + windowCreationInterval: number; + subscriber: WindowTimeSubscriber; + scheduler: SchedulerLike; +} + +interface TimeSpanOnlyState { + window: CountedSubject; + windowTimeSpan: number; + subscriber: WindowTimeSubscriber; + } + +interface CloseWindowContext { + action: SchedulerAction>; + subscription: Subscription; +} + +interface CloseState { + subscriber: WindowTimeSubscriber; + window: CountedSubject; + context: CloseWindowContext; +} + +class CountedSubject extends Subject { + private _numberOfNextedValues: number = 0; + + next(value?: T): void { + this._numberOfNextedValues++; + super.next(value); + } + + get numberOfNextedValues(): number { + return this._numberOfNextedValues; + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class WindowTimeSubscriber extends Subscriber { + private windows: CountedSubject[] = []; + + constructor(protected destination: Subscriber>, + private windowTimeSpan: number, + private windowCreationInterval: number | null, + private maxWindowSize: number, + private scheduler: SchedulerLike) { + super(destination); + + const window = this.openWindow(); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + const closeState: CloseState = { subscriber: this, window, context: null }; + const creationState: CreationState = { windowTimeSpan, windowCreationInterval, subscriber: this, scheduler }; + this.add(scheduler.schedule>(dispatchWindowClose, windowTimeSpan, closeState)); + this.add(scheduler.schedule>(dispatchWindowCreation, windowCreationInterval, creationState)); + } else { + const timeSpanOnlyState: TimeSpanOnlyState = { subscriber: this, window, windowTimeSpan }; + this.add(scheduler.schedule>(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); + } + } + + protected _next(value: T): void { + const windows = this.windows; + const len = windows.length; + for (let i = 0; i < len; i++) { + const window = windows[i]; + if (!window.closed) { + window.next(value); + if (window.numberOfNextedValues >= this.maxWindowSize) { + this.closeWindow(window); + } + } + } + } + + protected _error(err: any): void { + const windows = this.windows; + while (windows.length > 0) { + windows.shift().error(err); + } + this.destination.error(err); + } + + protected _complete(): void { + const windows = this.windows; + while (windows.length > 0) { + const window = windows.shift(); + if (!window.closed) { + window.complete(); + } + } + this.destination.complete(); + } + + public openWindow(): CountedSubject { + const window = new CountedSubject(); + this.windows.push(window); + const destination = this.destination; + destination.next(window); + return window; + } + + public closeWindow(window: CountedSubject): void { + window.complete(); + const windows = this.windows; + windows.splice(windows.indexOf(window), 1); + } +} + +function dispatchWindowTimeSpanOnly(this: SchedulerAction>, state: TimeSpanOnlyState): void { + const { subscriber, windowTimeSpan, window } = state; + if (window) { + subscriber.closeWindow(window); + } + state.window = subscriber.openWindow(); + this.schedule(state, windowTimeSpan); +} + +function dispatchWindowCreation(this: SchedulerAction>, state: CreationState): void { + const { windowTimeSpan, subscriber, scheduler, windowCreationInterval } = state; + const window = subscriber.openWindow(); + const action = this; + let context: CloseWindowContext = { action, subscription: null }; + const timeSpanState: CloseState = { subscriber, window, context }; + context.subscription = scheduler.schedule>(dispatchWindowClose, windowTimeSpan, timeSpanState); + action.add(context.subscription); + action.schedule(state, windowCreationInterval); +} + +function dispatchWindowClose(state: CloseState): void { + const { subscriber, window, context } = state; + if (context && context.action && context.subscription) { + context.action.remove(context.subscription); + } + subscriber.closeWindow(window); +} diff --git a/node_modules/rxjs/src/internal/operators/windowToggle.ts b/node_modules/rxjs/src/internal/operators/windowToggle.ts new file mode 100644 index 00000000..c2fc2186 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/windowToggle.ts @@ -0,0 +1,211 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OperatorFunction } from '../types'; + +/** + * Branch out the source Observable values as a nested Observable starting from + * an emission from `openings` and ending when the output of `closingSelector` + * emits. + * + * It's like {@link bufferToggle}, but emits a nested + * Observable instead of an array. + * + * ![](windowToggle.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits windows that contain those items + * emitted by the source Observable between the time when the `openings` + * Observable emits an item and when the Observable returned by + * `closingSelector` emits an item. + * + * ## Example + * Every other second, emit the click events from the next 500ms + * ```ts + * import { fromEvent, interval, EMPTY } from 'rxjs'; + * import { windowToggle, mergeAll } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const openings = interval(1000); + * const result = clicks.pipe( + * windowToggle(openings, i => i % 2 ? interval(500) : EMPTY), + * mergeAll() + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowCount} + * @see {@link windowTime} + * @see {@link windowWhen} + * @see {@link bufferToggle} + * + * @param {Observable} openings An observable of notifications to start new + * windows. + * @param {function(value: O): Observable} closingSelector A function that takes + * the value emitted by the `openings` observable and returns an Observable, + * which, when it emits (either `next` or `complete`), signals that the + * associated window should complete. + * @return {Observable>} An observable of windows, which in turn + * are Observables. + * @method windowToggle + * @owner Observable + */ +export function windowToggle(openings: Observable, + closingSelector: (openValue: O) => Observable): OperatorFunction> { + return (source: Observable) => source.lift(new WindowToggleOperator(openings, closingSelector)); +} + +class WindowToggleOperator implements Operator> { + + constructor(private openings: Observable, + private closingSelector: (openValue: O) => Observable) { + } + + call(subscriber: Subscriber>, source: any): any { + return source.subscribe(new WindowToggleSubscriber( + subscriber, this.openings, this.closingSelector + )); + } +} + +interface WindowContext { + window: Subject; + subscription: Subscription; +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class WindowToggleSubscriber extends OuterSubscriber { + private contexts: WindowContext[] = []; + private openSubscription: Subscription; + + constructor(destination: Subscriber>, + private openings: Observable, + private closingSelector: (openValue: O) => Observable) { + super(destination); + this.add(this.openSubscription = subscribeToResult(this, openings, openings as any)); + } + + protected _next(value: T) { + const { contexts } = this; + if (contexts) { + const len = contexts.length; + for (let i = 0; i < len; i++) { + contexts[i].window.next(value); + } + } + } + + protected _error(err: any) { + + const { contexts } = this; + this.contexts = null; + + if (contexts) { + const len = contexts.length; + let index = -1; + + while (++index < len) { + const context = contexts[index]; + context.window.error(err); + context.subscription.unsubscribe(); + } + } + + super._error(err); + } + + protected _complete() { + const { contexts } = this; + this.contexts = null; + if (contexts) { + const len = contexts.length; + let index = -1; + while (++index < len) { + const context = contexts[index]; + context.window.complete(); + context.subscription.unsubscribe(); + } + } + super._complete(); + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + const { contexts } = this; + this.contexts = null; + if (contexts) { + const len = contexts.length; + let index = -1; + while (++index < len) { + const context = contexts[index]; + context.window.unsubscribe(); + context.subscription.unsubscribe(); + } + } + } + + notifyNext(outerValue: any, innerValue: any, + outerIndex: number, innerIndex: number, + innerSub: InnerSubscriber): void { + + if (outerValue === this.openings) { + let closingNotifier; + try { + const { closingSelector } = this; + closingNotifier = closingSelector(innerValue); + } catch (e) { + return this.error(e); + } + + const window = new Subject(); + const subscription = new Subscription(); + const context = { window, subscription }; + this.contexts.push(context); + const innerSubscription = subscribeToResult(this, closingNotifier, context as any); + + if (innerSubscription.closed) { + this.closeWindow(this.contexts.length - 1); + } else { + (innerSubscription).context = context; + subscription.add(innerSubscription); + } + + this.destination.next(window); + } else { + this.closeWindow(this.contexts.indexOf(outerValue)); + } + } + + notifyError(err: any): void { + this.error(err); + } + + notifyComplete(inner: Subscription): void { + if (inner !== this.openSubscription) { + this.closeWindow(this.contexts.indexOf(( inner).context)); + } + } + + private closeWindow(index: number): void { + if (index === -1) { + return; + } + + const { contexts } = this; + const context = contexts[index]; + const { window, subscription } = context; + contexts.splice(index, 1); + window.complete(); + subscription.unsubscribe(); + } +} diff --git a/node_modules/rxjs/src/internal/operators/windowWhen.ts b/node_modules/rxjs/src/internal/operators/windowWhen.ts new file mode 100644 index 00000000..67e0b16b --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/windowWhen.ts @@ -0,0 +1,147 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { OperatorFunction } from '../types'; + +/** + * Branch out the source Observable values as a nested Observable using a + * factory function of closing Observables to determine when to start a new + * window. + * + * It's like {@link bufferWhen}, but emits a nested + * Observable instead of an array. + * + * ![](windowWhen.png) + * + * Returns an Observable that emits windows of items it collects from the source + * Observable. The output Observable emits connected, non-overlapping windows. + * It emits the current window and opens a new one whenever the Observable + * produced by the specified `closingSelector` function emits an item. The first + * window is opened immediately when subscribing to the output Observable. + * + * ## Example + * Emit only the first two clicks events in every window of [1-5] random seconds + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { windowWhen, map, mergeAll, take } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const result = clicks.pipe( + * windowWhen(() => interval(1000 + Math.random() * 4000)), + * map(win => win.pipe(take(2))), // each window has at most 2 emissions + * mergeAll() // flatten the Observable-of-Observables + * ); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link window} + * @see {@link windowCount} + * @see {@link windowTime} + * @see {@link windowToggle} + * @see {@link bufferWhen} + * + * @param {function(): Observable} closingSelector A function that takes no + * arguments and returns an Observable that signals (on either `next` or + * `complete`) when to close the previous window and start a new one. + * @return {Observable>} An observable of windows, which in turn + * are Observables. + * @method windowWhen + * @owner Observable + */ +export function windowWhen(closingSelector: () => Observable): OperatorFunction> { + return function windowWhenOperatorFunction(source: Observable) { + return source.lift(new WindowOperator(closingSelector)); + }; +} + +class WindowOperator implements Operator> { + constructor(private closingSelector: () => Observable) { + } + + call(subscriber: Subscriber>, source: any): any { + return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class WindowSubscriber extends OuterSubscriber { + private window?: Subject; + private closingNotification?: Subscription; + + constructor(protected destination: Subscriber>, + private closingSelector: () => Observable) { + super(destination); + this.openWindow(); + } + + notifyNext(_outerValue: T, _innerValue: any, + _outerIndex: number, _innerIndex: number, + innerSub: InnerSubscriber): void { + this.openWindow(innerSub); + } + + notifyError(error: any): void { + this._error(error); + } + + notifyComplete(innerSub: InnerSubscriber): void { + this.openWindow(innerSub); + } + + protected _next(value: T): void { + this.window!.next(value); + } + + protected _error(err: any): void { + this.window!.error(err); + this.destination.error(err); + this.unsubscribeClosingNotification(); + } + + protected _complete(): void { + this.window!.complete(); + this.destination.complete(); + this.unsubscribeClosingNotification(); + } + + private unsubscribeClosingNotification(): void { + if (this.closingNotification) { + this.closingNotification.unsubscribe(); + } + } + + private openWindow(innerSub: InnerSubscriber | null = null): void { + if (innerSub) { + this.remove(innerSub); + innerSub.unsubscribe(); + } + + const prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + + const window = this.window = new Subject(); + this.destination.next(window); + + let closingNotifier; + try { + const { closingSelector } = this; + closingNotifier = closingSelector(); + } catch (e) { + this.destination.error(e); + this.window.error(e); + return; + } + this.add(this.closingNotification = subscribeToResult(this, closingNotifier)); + } +} diff --git a/node_modules/rxjs/src/internal/operators/withLatestFrom.ts b/node_modules/rxjs/src/internal/operators/withLatestFrom.ts new file mode 100644 index 00000000..007b1941 --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/withLatestFrom.ts @@ -0,0 +1,155 @@ +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { Observable } from '../Observable'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { subscribeToResult } from '../util/subscribeToResult'; +import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; + +/* tslint:disable:max-line-length */ +export function withLatestFrom(project: (v1: T) => R): OperatorFunction; +export function withLatestFrom, R>(source2: O2, project: (v1: T, v2: ObservedValueOf) => R): OperatorFunction; +export function withLatestFrom, O3 extends ObservableInput, R>(v2: O2, v3: O3, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf) => R): OperatorFunction; +export function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R): OperatorFunction; +export function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R): OperatorFunction; +export function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput, R>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, project: (v1: T, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R): OperatorFunction; +export function withLatestFrom>(source2: O2): OperatorFunction]>; +export function withLatestFrom, O3 extends ObservableInput>(v2: O2, v3: O3): OperatorFunction, ObservedValueOf]>; +export function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput>(v2: O2, v3: O3, v4: O4): OperatorFunction, ObservedValueOf, ObservedValueOf]>; +export function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function withLatestFrom, O3 extends ObservableInput, O4 extends ObservableInput, O5 extends ObservableInput, O6 extends ObservableInput>(v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): OperatorFunction, ObservedValueOf, ObservedValueOf, ObservedValueOf, ObservedValueOf]>; +export function withLatestFrom(...observables: Array | ((...values: Array) => R)>): OperatorFunction; +export function withLatestFrom(array: ObservableInput[]): OperatorFunction; +export function withLatestFrom(array: ObservableInput[], project: (...values: Array) => R): OperatorFunction; + +/* tslint:enable:max-line-length */ + +/** + * Combines the source Observable with other Observables to create an Observable + * whose values are calculated from the latest values of each, only when the + * source emits. + * + * Whenever the source Observable emits a value, it + * computes a formula using that value plus the latest values from other input + * Observables, then emits the output of that formula. + * + * ![](withLatestFrom.png) + * + * `withLatestFrom` combines each value from the source Observable (the + * instance) with the latest values from the other input Observables only when + * the source emits a value, optionally using a `project` function to determine + * the value to be emitted on the output Observable. All input Observables must + * emit at least one value before the output Observable will emit a value. + * + * ## Example + * On every click event, emit an array with the latest timer event plus the click event + * ```ts + * import { fromEvent, interval } from 'rxjs'; + * import { withLatestFrom } from 'rxjs/operators'; + * + * const clicks = fromEvent(document, 'click'); + * const timer = interval(1000); + * const result = clicks.pipe(withLatestFrom(timer)); + * result.subscribe(x => console.log(x)); + * ``` + * + * @see {@link combineLatest} + * + * @param {ObservableInput} other An input Observable to combine with the source + * Observable. More than one input Observables may be given as argument. + * @param {Function} [project] Projection function for combining values + * together. Receives all values in order of the Observables passed, where the + * first parameter is a value from the source Observable. (e.g. + * `a.pipe(withLatestFrom(b, c), map(([a1, b1, c1]) => a1 + b1 + c1))`). If this is not + * passed, arrays will be emitted on the output Observable. + * @return {Observable} An Observable of projected values from the most recent + * values from each input Observable, or an array of the most recent values from + * each input Observable. + * @method withLatestFrom + * @owner Observable + */ +export function withLatestFrom(...args: Array | ((...values: Array) => R)>): OperatorFunction { + return (source: Observable) => { + let project: any; + if (typeof args[args.length - 1] === 'function') { + project = args.pop(); + } + const observables = []>args; + return source.lift(new WithLatestFromOperator(observables, project)); + }; +} + +class WithLatestFromOperator implements Operator { + constructor(private observables: Observable[], + private project?: (...values: any[]) => Observable) { + } + + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class WithLatestFromSubscriber extends OuterSubscriber { + private values: any[]; + private toRespond: number[] = []; + + constructor(destination: Subscriber, + private observables: Observable[], + private project?: (...values: any[]) => Observable) { + super(destination); + const len = observables.length; + this.values = new Array(len); + + for (let i = 0; i < len; i++) { + this.toRespond.push(i); + } + + for (let i = 0; i < len; i++) { + let observable = observables[i]; + this.add(subscribeToResult(this, observable, undefined, i)); + } + } + + notifyNext(_outerValue: T, innerValue: R, + outerIndex: number): void { + this.values[outerIndex] = innerValue; + const toRespond = this.toRespond; + if (toRespond.length > 0) { + const found = toRespond.indexOf(outerIndex); + if (found !== -1) { + toRespond.splice(found, 1); + } + } + } + + notifyComplete() { + // noop + } + + protected _next(value: T) { + if (this.toRespond.length === 0) { + const args = [value, ...this.values]; + if (this.project) { + this._tryProject(args); + } else { + this.destination.next!(args); + } + } + } + + private _tryProject(args: any[]) { + let result: any; + try { + result = this.project!.apply(this, args); + } catch (err) { + this.destination.error!(err); + return; + } + this.destination.next!(result); + } +} diff --git a/node_modules/rxjs/src/internal/operators/zip.ts b/node_modules/rxjs/src/internal/operators/zip.ts new file mode 100644 index 00000000..b02ffc9e --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/zip.ts @@ -0,0 +1,43 @@ +import { zip as zipStatic } from '../observable/zip'; +import { Observable } from '../Observable'; +import { ObservableInput, OperatorFunction } from '../types'; + +/* tslint:disable:max-line-length */ +/** @deprecated Deprecated in favor of static zip. */ +export function zip(project: (v1: T) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, project: (v1: T, v2: T2) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput, project: (v1: T, v2: T2, v3: T3) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5) => R): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput, project: (v1: T, v2: T2, v3: T3, v4: T4, v5: T5, v6: T6) => R): OperatorFunction ; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(v2: ObservableInput, v3: ObservableInput, v4: ObservableInput, v5: ObservableInput, v6: ObservableInput): OperatorFunction ; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(array: Array>): OperatorFunction; +/** @deprecated Deprecated in favor of static zip. */ +export function zip(array: Array>, project: (v1: T, ...values: Array) => R): OperatorFunction; +/* tslint:enable:max-line-length */ + +/** + * @deprecated Deprecated in favor of static {@link zip}. + */ +export function zip(...observables: Array | ((...values: Array) => R)>): OperatorFunction { + return function zipOperatorFunction(source: Observable) { + return source.lift.call(zipStatic(source, ...observables)); + }; +} \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/operators/zipAll.ts b/node_modules/rxjs/src/internal/operators/zipAll.ts new file mode 100644 index 00000000..163ae43a --- /dev/null +++ b/node_modules/rxjs/src/internal/operators/zipAll.ts @@ -0,0 +1,12 @@ +import { ZipOperator } from '../observable/zip'; +import { Observable } from '../Observable'; +import { OperatorFunction, ObservableInput } from '../types'; + +export function zipAll(): OperatorFunction, T[]>; +export function zipAll(): OperatorFunction; +export function zipAll(project: (...values: T[]) => R): OperatorFunction, R>; +export function zipAll(project: (...values: Array) => R): OperatorFunction; + +export function zipAll(project?: (...values: Array) => R): OperatorFunction { + return (source: Observable) => source.lift(new ZipOperator(project)); +} diff --git a/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts b/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts new file mode 100644 index 00000000..1b568606 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduled/scheduleArray.ts @@ -0,0 +1,21 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +import { Subscription } from '../Subscription'; + +export function scheduleArray(input: ArrayLike, scheduler: SchedulerLike) { + return new Observable(subscriber => { + const sub = new Subscription(); + let i = 0; + sub.add(scheduler.schedule(function () { + if (i === input.length) { + subscriber.complete(); + return; + } + subscriber.next(input[i++]); + if (!subscriber.closed) { + sub.add(this.schedule()); + } + })); + return sub; + }); +} diff --git a/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts b/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts new file mode 100644 index 00000000..dc904382 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts @@ -0,0 +1,45 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +import { Subscription } from '../Subscription'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; + +export function scheduleIterable(input: Iterable, scheduler: SchedulerLike) { + if (!input) { + throw new Error('Iterable cannot be null'); + } + return new Observable(subscriber => { + const sub = new Subscription(); + let iterator: Iterator; + sub.add(() => { + // Finalize generators + if (iterator && typeof iterator.return === 'function') { + iterator.return(); + } + }); + sub.add(scheduler.schedule(() => { + iterator = input[Symbol_iterator](); + sub.add(scheduler.schedule(function () { + if (subscriber.closed) { + return; + } + let value: T; + let done: boolean; + try { + const result = iterator.next(); + value = result.value; + done = result.done; + } catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } else { + subscriber.next(value); + this.schedule(); + } + })); + })); + return sub; + }); +} diff --git a/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts b/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts new file mode 100644 index 00000000..9e970c09 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts @@ -0,0 +1,19 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { observable as Symbol_observable } from '../symbol/observable'; +import { InteropObservable, SchedulerLike, Subscribable } from '../types'; + +export function scheduleObservable(input: InteropObservable, scheduler: SchedulerLike) { + return new Observable(subscriber => { + const sub = new Subscription(); + sub.add(scheduler.schedule(() => { + const observable: Subscribable = input[Symbol_observable](); + sub.add(observable.subscribe({ + next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); }, + error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); }, + complete() { sub.add(scheduler.schedule(() => subscriber.complete())); }, + })); + })); + return sub; + }); +} diff --git a/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts b/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts new file mode 100644 index 00000000..ec1bfafc --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduled/schedulePromise.ts @@ -0,0 +1,21 @@ +import { Observable } from '../Observable'; +import { SchedulerLike } from '../types'; +import { Subscription } from '../Subscription'; + +export function schedulePromise(input: PromiseLike, scheduler: SchedulerLike) { + return new Observable(subscriber => { + const sub = new Subscription(); + sub.add(scheduler.schedule(() => input.then( + value => { + sub.add(scheduler.schedule(() => { + subscriber.next(value); + sub.add(scheduler.schedule(() => subscriber.complete())); + })); + }, + err => { + sub.add(scheduler.schedule(() => subscriber.error(err))); + } + ))); + return sub; + }); +} diff --git a/node_modules/rxjs/src/internal/scheduled/scheduled.ts b/node_modules/rxjs/src/internal/scheduled/scheduled.ts new file mode 100644 index 00000000..ec819f73 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduled/scheduled.ts @@ -0,0 +1,36 @@ +import { scheduleObservable } from './scheduleObservable'; +import { schedulePromise } from './schedulePromise'; +import { scheduleArray } from './scheduleArray'; +import { scheduleIterable } from './scheduleIterable'; +import { ObservableInput, SchedulerLike, Observable } from 'rxjs'; +import { isInteropObservable } from '../util/isInteropObservable'; +import { isPromise } from '../util/isPromise'; +import { isArrayLike } from '../util/isArrayLike'; +import { isIterable } from '../util/isIterable'; + +/** + * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions + * are scheduled on the provided scheduler. + * + * @see from + * @see of + * + * @param input The observable, array, promise, iterable, etc you would like to schedule + * @param scheduler The scheduler to use to schedule the subscription and emissions from + * the returned observable. + */ +export function scheduled(input: ObservableInput, scheduler: SchedulerLike): Observable { + if (input != null) { + if (isInteropObservable(input)) { + return scheduleObservable(input, scheduler); + } else if (isPromise(input)) { + return schedulePromise(input, scheduler); + } else if (isArrayLike(input)) { + return scheduleArray(input, scheduler); + } else if (isIterable(input) || typeof input === 'string') { + return scheduleIterable(input, scheduler); + } + } + + throw new TypeError((input !== null && typeof input || input) + ' is not observable'); +} diff --git a/node_modules/rxjs/src/internal/scheduler/Action.ts b/node_modules/rxjs/src/internal/scheduler/Action.ts new file mode 100644 index 00000000..6cf91bcb --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/Action.ts @@ -0,0 +1,36 @@ +import { Scheduler } from '../Scheduler'; +import { Subscription } from '../Subscription'; +import { SchedulerAction } from '../types'; + +/** + * A unit of work to be executed in a `scheduler`. An action is typically + * created from within a {@link SchedulerLike} and an RxJS user does not need to concern + * themselves about creating and manipulating an Action. + * + * ```ts + * class Action extends Subscription { + * new (scheduler: Scheduler, work: (state?: T) => void); + * schedule(state?: T, delay: number = 0): Subscription; + * } + * ``` + * + * @class Action + */ +export class Action extends Subscription { + constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) { + super(); + } + /** + * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed + * some context object, `state`. May happen at some point in the future, + * according to the `delay` parameter, if specified. + * @param {T} [state] Some contextual data that the `work` function uses when + * called by the Scheduler. + * @param {number} [delay] Time to wait before executing the work, where the + * time unit is implicit and defined by the Scheduler. + * @return {void} + */ + public schedule(state?: T, delay: number = 0): Subscription { + return this; + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts b/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts new file mode 100644 index 00000000..e9ea64fa --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts @@ -0,0 +1,47 @@ +import { AsyncAction } from './AsyncAction'; +import { AnimationFrameScheduler } from './AnimationFrameScheduler'; +import { SchedulerAction } from '../types'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class AnimationFrameAction extends AsyncAction { + + constructor(protected scheduler: AnimationFrameScheduler, + protected work: (this: SchedulerAction, state?: T) => void) { + super(scheduler, work); + } + + protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any { + // If delay is greater than 0, request as an async action. + if (delay !== null && delay > 0) { + return super.requestAsyncId(scheduler, id, delay); + } + // Push the action to the end of the scheduler queue. + scheduler.actions.push(this); + // If an animation frame has already been requested, don't request another + // one. If an animation frame hasn't been requested yet, request one. Return + // the current animation frame request id. + return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame( + () => scheduler.flush(null))); + } + protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: any, delay: number = 0): any { + // If delay exists and is greater than 0, or if the delay is null (the + // action wasn't rescheduled) but was originally scheduled as an async + // action, then recycle as an async action. + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return super.recycleAsyncId(scheduler, id, delay); + } + // If the scheduler queue is empty, cancel the requested animation frame and + // set the scheduled flag to undefined so the next AnimationFrameAction will + // request its own. + if (scheduler.actions.length === 0) { + cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + // Return undefined so the action knows to request a new async id if it's rescheduled. + return undefined; + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts b/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts new file mode 100644 index 00000000..c550429f --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts @@ -0,0 +1,31 @@ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; + +export class AnimationFrameScheduler extends AsyncScheduler { + public flush(action?: AsyncAction): void { + + this.active = true; + this.scheduled = undefined; + + const {actions} = this; + let error: any; + let index: number = -1; + let count: number = actions.length; + action = action || actions.shift(); + + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + + this.active = false; + + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/AsapAction.ts b/node_modules/rxjs/src/internal/scheduler/AsapAction.ts new file mode 100644 index 00000000..1fe1622d --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/AsapAction.ts @@ -0,0 +1,48 @@ +import { Immediate } from '../util/Immediate'; +import { AsyncAction } from './AsyncAction'; +import { AsapScheduler } from './AsapScheduler'; +import { SchedulerAction } from '../types'; +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class AsapAction extends AsyncAction { + + constructor(protected scheduler: AsapScheduler, + protected work: (this: SchedulerAction, state?: T) => void) { + super(scheduler, work); + } + + protected requestAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any { + // If delay is greater than 0, request as an async action. + if (delay !== null && delay > 0) { + return super.requestAsyncId(scheduler, id, delay); + } + // Push the action to the end of the scheduler queue. + scheduler.actions.push(this); + // If a microtask has already been scheduled, don't schedule another + // one. If a microtask hasn't been scheduled yet, schedule one now. Return + // the current scheduled microtask id. + return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate( + scheduler.flush.bind(scheduler, null) + )); + } + protected recycleAsyncId(scheduler: AsapScheduler, id?: any, delay: number = 0): any { + // If delay exists and is greater than 0, or if the delay is null (the + // action wasn't rescheduled) but was originally scheduled as an async + // action, then recycle as an async action. + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return super.recycleAsyncId(scheduler, id, delay); + } + // If the scheduler queue is empty, cancel the requested microtask and + // set the scheduled flag to undefined so the next AsapAction will schedule + // its own. + if (scheduler.actions.length === 0) { + Immediate.clearImmediate(id); + scheduler.scheduled = undefined; + } + // Return undefined so the action knows to request a new async id if it's rescheduled. + return undefined; + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts b/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts new file mode 100644 index 00000000..659aa582 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts @@ -0,0 +1,31 @@ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; + +export class AsapScheduler extends AsyncScheduler { + public flush(action?: AsyncAction): void { + + this.active = true; + this.scheduled = undefined; + + const {actions} = this; + let error: any; + let index: number = -1; + let count: number = actions.length; + action = action || actions.shift(); + + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + + this.active = false; + + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts b/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts new file mode 100644 index 00000000..05f128f6 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/AsyncAction.ts @@ -0,0 +1,156 @@ +import { Action } from './Action'; +import { SchedulerAction } from '../types'; +import { Subscription } from '../Subscription'; +import { AsyncScheduler } from './AsyncScheduler'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class AsyncAction extends Action { + + public id: any; + public state: T; + public delay: number; + protected pending: boolean = false; + + constructor(protected scheduler: AsyncScheduler, + protected work: (this: SchedulerAction, state?: T) => void) { + super(scheduler, work); + } + + public schedule(state?: T, delay: number = 0): Subscription { + + if (this.closed) { + return this; + } + + // Always replace the current state with the new state. + this.state = state; + + const id = this.id; + const scheduler = this.scheduler; + + // + // Important implementation note: + // + // Actions only execute once by default, unless rescheduled from within the + // scheduled callback. This allows us to implement single and repeat + // actions via the same code path, without adding API surface area, as well + // as mimic traditional recursion but across asynchronous boundaries. + // + // However, JS runtimes and timers distinguish between intervals achieved by + // serial `setTimeout` calls vs. a single `setInterval` call. An interval of + // serial `setTimeout` calls can be individually delayed, which delays + // scheduling the next `setTimeout`, and so on. `setInterval` attempts to + // guarantee the interval callback will be invoked more precisely to the + // interval period, regardless of load. + // + // Therefore, we use `setInterval` to schedule single and repeat actions. + // If the action reschedules itself with the same delay, the interval is not + // canceled. If the action doesn't reschedule, or reschedules with a + // different delay, the interval will be canceled after scheduled callback + // execution. + // + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + + // Set the pending flag indicating that this action has been scheduled, or + // has recursively rescheduled itself. + this.pending = true; + + this.delay = delay; + // If this action has already an async Id, don't request a new one. + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + + return this; + } + + protected requestAsyncId(scheduler: AsyncScheduler, id?: any, delay: number = 0): any { + return setInterval(scheduler.flush.bind(scheduler, this), delay); + } + + protected recycleAsyncId(scheduler: AsyncScheduler, id: any, delay: number = 0): any { + // If this action is rescheduled with the same delay time, don't clear the interval id. + if (delay !== null && this.delay === delay && this.pending === false) { + return id; + } + // Otherwise, if the action's delay time is different from the current delay, + // or the action has been rescheduled before it's executed, clear the interval id + clearInterval(id); + return undefined; + } + + /** + * Immediately executes this action and the `work` it contains. + * @return {any} + */ + public execute(state: T, delay: number): any { + + if (this.closed) { + return new Error('executing a cancelled action'); + } + + this.pending = false; + const error = this._execute(state, delay); + if (error) { + return error; + } else if (this.pending === false && this.id != null) { + // Dequeue if the action didn't reschedule itself. Don't call + // unsubscribe(), because the action could reschedule later. + // For example: + // ``` + // scheduler.schedule(function doWork(counter) { + // /* ... I'm a busy worker bee ... */ + // var originalAction = this; + // /* wait 100ms before rescheduling the action */ + // setTimeout(function () { + // originalAction.schedule(counter + 1); + // }, 100); + // }, 1000); + // ``` + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } + } + + protected _execute(state: T, delay: number): any { + let errored: boolean = false; + let errorValue: any = undefined; + try { + this.work(state); + } catch (e) { + errored = true; + errorValue = !!e && e || new Error(e); + } + if (errored) { + this.unsubscribe(); + return errorValue; + } + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _unsubscribe() { + + const id = this.id; + const scheduler = this.scheduler; + const actions = scheduler.actions; + const index = actions.indexOf(this); + + this.work = null; + this.state = null; + this.pending = false; + this.scheduler = null; + + if (index !== -1) { + actions.splice(index, 1); + } + + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); + } + + this.delay = null; + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts b/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts new file mode 100644 index 00000000..aad77eaa --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts @@ -0,0 +1,72 @@ +import { Scheduler } from '../Scheduler'; +import { Action } from './Action'; +import { AsyncAction } from './AsyncAction'; +import { SchedulerAction } from '../types'; +import { Subscription } from '../Subscription'; + +export class AsyncScheduler extends Scheduler { + public static delegate?: Scheduler; + public actions: Array> = []; + /** + * A flag to indicate whether the Scheduler is currently executing a batch of + * queued actions. + * @type {boolean} + * @deprecated internal use only + */ + public active: boolean = false; + /** + * An internal ID used to track the latest asynchronous task such as those + * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and + * others. + * @type {any} + * @deprecated internal use only + */ + public scheduled: any = undefined; + + constructor(SchedulerAction: typeof Action, + now: () => number = Scheduler.now) { + super(SchedulerAction, () => { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.now(); + } else { + return now(); + } + }); + } + + public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.schedule(work, delay, state); + } else { + return super.schedule(work, delay, state); + } + } + + public flush(action: AsyncAction): void { + + const {actions} = this; + + if (this.active) { + actions.push(action); + return; + } + + let error: any; + this.active = true; + + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (action = actions.shift()); // exhaust the scheduler queue + + this.active = false; + + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/QueueAction.ts b/node_modules/rxjs/src/internal/scheduler/QueueAction.ts new file mode 100644 index 00000000..b5a8b513 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/QueueAction.ts @@ -0,0 +1,44 @@ +import { AsyncAction } from './AsyncAction'; +import { Subscription } from '../Subscription'; +import { QueueScheduler } from './QueueScheduler'; +import { SchedulerAction } from '../types'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class QueueAction extends AsyncAction { + + constructor(protected scheduler: QueueScheduler, + protected work: (this: SchedulerAction, state?: T) => void) { + super(scheduler, work); + } + + public schedule(state?: T, delay: number = 0): Subscription { + if (delay > 0) { + return super.schedule(state, delay); + } + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; + } + + public execute(state: T, delay: number): any { + return (delay > 0 || this.closed) ? + super.execute(state, delay) : + this._execute(state, delay) ; + } + + protected requestAsyncId(scheduler: QueueScheduler, id?: any, delay: number = 0): any { + // If delay exists and is greater than 0, or if the delay is null (the + // action wasn't rescheduled) but was originally scheduled as an async + // action, then recycle as an async action. + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return super.requestAsyncId(scheduler, id, delay); + } + // Otherwise flush the scheduler starting with this action. + return scheduler.flush(this); + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts b/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts new file mode 100644 index 00000000..e9dab3de --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts @@ -0,0 +1,4 @@ +import { AsyncScheduler } from './AsyncScheduler'; + +export class QueueScheduler extends AsyncScheduler { +} diff --git a/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts b/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts new file mode 100644 index 00000000..7017ea53 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts @@ -0,0 +1,108 @@ +import { AsyncAction } from './AsyncAction'; +import { Subscription } from '../Subscription'; +import { AsyncScheduler } from './AsyncScheduler'; +import { SchedulerAction } from '../types'; + +export class VirtualTimeScheduler extends AsyncScheduler { + + protected static frameTimeFactor: number = 10; + + public frame: number = 0; + public index: number = -1; + + constructor(SchedulerAction: typeof AsyncAction = VirtualAction as any, + public maxFrames: number = Number.POSITIVE_INFINITY) { + super(SchedulerAction, () => this.frame); + } + + /** + * Prompt the Scheduler to execute all of its queued actions, therefore + * clearing its queue. + * @return {void} + */ + public flush(): void { + + const {actions, maxFrames} = this; + let error: any, action: AsyncAction; + + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + + if (error = action.execute(action.state, action.delay)) { + break; + } + } + + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @nodoc + */ +export class VirtualAction extends AsyncAction { + + protected active: boolean = true; + + constructor(protected scheduler: VirtualTimeScheduler, + protected work: (this: SchedulerAction, state?: T) => void, + protected index: number = scheduler.index += 1) { + super(scheduler, work); + this.index = scheduler.index = index; + } + + public schedule(state?: T, delay: number = 0): Subscription { + if (!this.id) { + return super.schedule(state, delay); + } + this.active = false; + // If an action is rescheduled, we save allocations by mutating its state, + // pushing it to the end of the scheduler queue, and recycling the action. + // But since the VirtualTimeScheduler is used for testing, VirtualActions + // must be immutable so they can be inspected later. + const action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); + } + + protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any { + this.delay = scheduler.frame + delay; + const {actions} = scheduler; + actions.push(this); + (actions as Array>).sort(VirtualAction.sortActions); + return true; + } + + protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): any { + return undefined; + } + + protected _execute(state: T, delay: number): any { + if (this.active === true) { + return super._execute(state, delay); + } + } + + public static sortActions(a: VirtualAction, b: VirtualAction) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } else if (a.index > b.index) { + return 1; + } else { + return -1; + } + } else if (a.delay > b.delay) { + return 1; + } else { + return -1; + } + } +} diff --git a/node_modules/rxjs/src/internal/scheduler/animationFrame.ts b/node_modules/rxjs/src/internal/scheduler/animationFrame.ts new file mode 100644 index 00000000..a3f62050 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/animationFrame.ts @@ -0,0 +1,40 @@ +import { AnimationFrameAction } from './AnimationFrameAction'; +import { AnimationFrameScheduler } from './AnimationFrameScheduler'; + +/** + * + * Animation Frame Scheduler + * + * Perform task when `window.requestAnimationFrame` would fire + * + * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler + * behaviour. + * + * Without delay, `animationFrame` scheduler can be used to create smooth browser animations. + * It makes sure scheduled task will happen just before next browser content repaint, + * thus performing animations as efficiently as possible. + * + * ## Example + * Schedule div height animation + * ```ts + * // html:
+ * import { animationFrameScheduler } from 'rxjs'; + * + * const div = document.querySelector('div'); + * + * animationFrameScheduler.schedule(function(height) { + * div.style.height = height + "px"; + * + * this.schedule(height + 1); // `this` references currently executing Action, + * // which we reschedule with new state + * }, 0, 0); + * + * // You will see a div element growing in height + * ``` + */ +export const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction); + +/** + * @deprecated renamed. Use {@link animationFrameScheduler} + */ +export const animationFrame = animationFrameScheduler; diff --git a/node_modules/rxjs/src/internal/scheduler/asap.ts b/node_modules/rxjs/src/internal/scheduler/asap.ts new file mode 100644 index 00000000..bbd721d2 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/asap.ts @@ -0,0 +1,43 @@ +import { AsapAction } from './AsapAction'; +import { AsapScheduler } from './AsapScheduler'; + +/** + * + * Asap Scheduler + * + * Perform task as fast as it can be performed asynchronously + * + * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task + * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing + * code to end and then it will try to execute given task as fast as possible. + * + * `asap` scheduler will do its best to minimize time between end of currently executing code + * and start of scheduled task. This makes it best candidate for performing so called "deferring". + * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves + * some (although minimal) unwanted delay. + * + * Note that using `asap` scheduler does not necessarily mean that your task will be first to process + * after currently executing code. In particular, if some task was also scheduled with `asap` before, + * that task will execute first. That being said, if you need to schedule task asynchronously, but + * as soon as possible, `asap` scheduler is your best bet. + * + * ## Example + * Compare async and asap scheduler< + * ```ts + * import { asapScheduler, asyncScheduler } from 'rxjs'; + * + * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first... + * asapScheduler.schedule(() => console.log('asap')); + * + * // Logs: + * // "asap" + * // "async" + * // ... but 'asap' goes first! + * ``` + */ +export const asapScheduler = new AsapScheduler(AsapAction); + +/** + * @deprecated renamed. Use {@link asapScheduler} + */ +export const asap = asapScheduler; diff --git a/node_modules/rxjs/src/internal/scheduler/async.ts b/node_modules/rxjs/src/internal/scheduler/async.ts new file mode 100644 index 00000000..e81614b6 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/async.ts @@ -0,0 +1,55 @@ +import { AsyncAction } from './AsyncAction'; +import { AsyncScheduler } from './AsyncScheduler'; + +/** + * + * Async Scheduler + * + * Schedule task as if you used setTimeout(task, duration) + * + * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript + * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating + * in intervals. + * + * If you just want to "defer" task, that is to perform it right after currently + * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`), + * better choice will be the {@link asapScheduler} scheduler. + * + * ## Examples + * Use async scheduler to delay task + * ```ts + * import { asyncScheduler } from 'rxjs'; + * + * const task = () => console.log('it works!'); + * + * asyncScheduler.schedule(task, 2000); + * + * // After 2 seconds logs: + * // "it works!" + * ``` + * + * Use async scheduler to repeat task in intervals + * ```ts + * import { asyncScheduler } from 'rxjs'; + * + * function task(state) { + * console.log(state); + * this.schedule(state + 1, 1000); // `this` references currently executing Action, + * // which we reschedule with new state and delay + * } + * + * asyncScheduler.schedule(task, 3000, 0); + * + * // Logs: + * // 0 after 3s + * // 1 after 4s + * // 2 after 5s + * // 3 after 6s + * ``` + */ +export const asyncScheduler = new AsyncScheduler(AsyncAction); + +/** + * @deprecated renamed. Use {@link asyncScheduler} + */ +export const async = asyncScheduler; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/scheduler/queue.ts b/node_modules/rxjs/src/internal/scheduler/queue.ts new file mode 100644 index 00000000..0af26ea8 --- /dev/null +++ b/node_modules/rxjs/src/internal/scheduler/queue.ts @@ -0,0 +1,71 @@ +import { QueueAction } from './QueueAction'; +import { QueueScheduler } from './QueueScheduler'; + +/** + * + * Queue Scheduler + * + * Put every next task on a queue, instead of executing it immediately + * + * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler. + * + * When used without delay, it schedules given task synchronously - executes it right when + * it is scheduled. However when called recursively, that is when inside the scheduled task, + * another task is scheduled with queue scheduler, instead of executing immediately as well, + * that task will be put on a queue and wait for current one to finish. + * + * This means that when you execute task with `queue` scheduler, you are sure it will end + * before any other task scheduled with that scheduler will start. + * + * ## Examples + * Schedule recursively first, then do something + * ```ts + * import { queueScheduler } from 'rxjs'; + * + * queueScheduler.schedule(() => { + * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue + * + * console.log('first'); + * }); + * + * // Logs: + * // "first" + * // "second" + * ``` + * + * Reschedule itself recursively + * ```ts + * import { queueScheduler } from 'rxjs'; + * + * queueScheduler.schedule(function(state) { + * if (state !== 0) { + * console.log('before', state); + * this.schedule(state - 1); // `this` references currently executing Action, + * // which we reschedule with new state + * console.log('after', state); + * } + * }, 0, 3); + * + * // In scheduler that runs recursively, you would expect: + * // "before", 3 + * // "before", 2 + * // "before", 1 + * // "after", 1 + * // "after", 2 + * // "after", 3 + * + * // But with queue it logs: + * // "before", 3 + * // "after", 3 + * // "before", 2 + * // "after", 2 + * // "before", 1 + * // "after", 1 + * ``` + */ +export const queueScheduler = new QueueScheduler(QueueAction); + +/** + * @deprecated renamed. Use {@link queueScheduler} + */ +export const queue = queueScheduler; diff --git a/node_modules/rxjs/src/internal/symbol/iterator.ts b/node_modules/rxjs/src/internal/symbol/iterator.ts new file mode 100644 index 00000000..8e9871a0 --- /dev/null +++ b/node_modules/rxjs/src/internal/symbol/iterator.ts @@ -0,0 +1,14 @@ +export function getSymbolIterator(): symbol { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator' as any; + } + + return Symbol.iterator; +} + +export const iterator = getSymbolIterator(); + +/** + * @deprecated use {@link iterator} instead + */ +export const $$iterator = iterator; diff --git a/node_modules/rxjs/src/internal/symbol/observable.ts b/node_modules/rxjs/src/internal/symbol/observable.ts new file mode 100644 index 00000000..a321d71f --- /dev/null +++ b/node_modules/rxjs/src/internal/symbol/observable.ts @@ -0,0 +1,11 @@ +/** Symbol.observable addition */ +/* Note: This will add Symbol.observable globally for all TypeScript users, + however, we are no longer polyfilling Symbol.observable */ +declare global { + interface SymbolConstructor { + readonly observable: symbol; + } +} + +/** Symbol.observable or a string "@@observable". Used for interop */ +export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')(); diff --git a/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts b/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts new file mode 100644 index 00000000..3a558e30 --- /dev/null +++ b/node_modules/rxjs/src/internal/symbol/rxSubscriber.ts @@ -0,0 +1,10 @@ +/** @deprecated do not use, this is no longer checked by RxJS internals */ +export const rxSubscriber = (() => + typeof Symbol === 'function' + ? Symbol('rxSubscriber') + : '@@rxSubscriber_' + Math.random())(); + +/** + * @deprecated use rxSubscriber instead + */ +export const $$rxSubscriber = rxSubscriber; diff --git a/node_modules/rxjs/src/internal/testing/ColdObservable.ts b/node_modules/rxjs/src/internal/testing/ColdObservable.ts new file mode 100644 index 00000000..29f620e2 --- /dev/null +++ b/node_modules/rxjs/src/internal/testing/ColdObservable.ts @@ -0,0 +1,48 @@ +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { Scheduler } from '../Scheduler'; +import { TestMessage } from './TestMessage'; +import { SubscriptionLog } from './SubscriptionLog'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +import { Subscriber } from '../Subscriber'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class ColdObservable extends Observable implements SubscriptionLoggable { + public subscriptions: SubscriptionLog[] = []; + scheduler: Scheduler; + logSubscribedFrame: () => number; + logUnsubscribedFrame: (index: number) => void; + + constructor(public messages: TestMessage[], + scheduler: Scheduler) { + super(function (this: Observable, subscriber: Subscriber) { + const observable: ColdObservable = this as any; + const index = observable.logSubscribedFrame(); + const subscription = new Subscription(); + subscription.add(new Subscription(() => { + observable.logUnsubscribedFrame(index); + })); + observable.scheduleMessages(subscriber); + return subscription; + }); + this.scheduler = scheduler; + } + + scheduleMessages(subscriber: Subscriber) { + const messagesLength = this.messages.length; + for (let i = 0; i < messagesLength; i++) { + const message = this.messages[i]; + subscriber.add( + this.scheduler.schedule(({ message, subscriber }) => { message.notification.observe(subscriber); }, + message.frame, + { message, subscriber }) + ); + } + } +} +applyMixins(ColdObservable, [SubscriptionLoggable]); diff --git a/node_modules/rxjs/src/internal/testing/HotObservable.ts b/node_modules/rxjs/src/internal/testing/HotObservable.ts new file mode 100644 index 00000000..34dcb602 --- /dev/null +++ b/node_modules/rxjs/src/internal/testing/HotObservable.ts @@ -0,0 +1,55 @@ +import { Subject } from '../Subject'; +import { Subscriber } from '../Subscriber'; +import { Subscription } from '../Subscription'; +import { Scheduler } from '../Scheduler'; +import { TestMessage } from './TestMessage'; +import { SubscriptionLog } from './SubscriptionLog'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +export class HotObservable extends Subject implements SubscriptionLoggable { + public subscriptions: SubscriptionLog[] = []; + scheduler: Scheduler; + logSubscribedFrame: () => number; + logUnsubscribedFrame: (index: number) => void; + + constructor(public messages: TestMessage[], + scheduler: Scheduler) { + super(); + this.scheduler = scheduler; + } + + /** @deprecated This is an internal implementation detail, do not use. */ + _subscribe(subscriber: Subscriber): Subscription { + const subject: HotObservable = this; + const index = subject.logSubscribedFrame(); + const subscription = new Subscription(); + subscription.add(new Subscription(() => { + subject.logUnsubscribedFrame(index); + })); + subscription.add(super._subscribe(subscriber)); + return subscription; + } + + setup() { + const subject = this; + const messagesLength = subject.messages.length; + /* tslint:disable:no-var-keyword */ + for (var i = 0; i < messagesLength; i++) { + (() => { + var message = subject.messages[i]; + /* tslint:enable */ + subject.scheduler.schedule( + () => { message.notification.observe(subject); }, + message.frame + ); + })(); + } + } +} +applyMixins(HotObservable, [SubscriptionLoggable]); diff --git a/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts b/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts new file mode 100644 index 00000000..03858bf3 --- /dev/null +++ b/node_modules/rxjs/src/internal/testing/SubscriptionLog.ts @@ -0,0 +1,5 @@ +export class SubscriptionLog { + constructor(public subscribedFrame: number, + public unsubscribedFrame: number = Number.POSITIVE_INFINITY) { + } +} \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts b/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts new file mode 100644 index 00000000..17241373 --- /dev/null +++ b/node_modules/rxjs/src/internal/testing/SubscriptionLoggable.ts @@ -0,0 +1,21 @@ +import { Scheduler } from '../Scheduler'; +import { SubscriptionLog } from './SubscriptionLog'; + +export class SubscriptionLoggable { + public subscriptions: SubscriptionLog[] = []; + scheduler: Scheduler; + + logSubscribedFrame(): number { + this.subscriptions.push(new SubscriptionLog(this.scheduler.now())); + return this.subscriptions.length - 1; + } + + logUnsubscribedFrame(index: number) { + const subscriptionLogs = this.subscriptions; + const oldSubscriptionLog = subscriptionLogs[index]; + subscriptionLogs[index] = new SubscriptionLog( + oldSubscriptionLog.subscribedFrame, + this.scheduler.now() + ); + } +} diff --git a/node_modules/rxjs/src/internal/testing/TestMessage.ts b/node_modules/rxjs/src/internal/testing/TestMessage.ts new file mode 100644 index 00000000..a95c71c4 --- /dev/null +++ b/node_modules/rxjs/src/internal/testing/TestMessage.ts @@ -0,0 +1,7 @@ +import { Notification } from '../Notification'; + +export interface TestMessage { + frame: number; + notification: Notification; + isGhost?: boolean; +} diff --git a/node_modules/rxjs/src/internal/testing/TestScheduler.ts b/node_modules/rxjs/src/internal/testing/TestScheduler.ts new file mode 100644 index 00000000..7c7dc9e4 --- /dev/null +++ b/node_modules/rxjs/src/internal/testing/TestScheduler.ts @@ -0,0 +1,401 @@ +import { Observable } from '../Observable'; +import { Notification } from '../Notification'; +import { ColdObservable } from './ColdObservable'; +import { HotObservable } from './HotObservable'; +import { TestMessage } from './TestMessage'; +import { SubscriptionLog } from './SubscriptionLog'; +import { Subscription } from '../Subscription'; +import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler'; +import { AsyncScheduler } from '../scheduler/AsyncScheduler'; + +const defaultMaxFrame: number = 750; + +export interface RunHelpers { + cold: typeof TestScheduler.prototype.createColdObservable; + hot: typeof TestScheduler.prototype.createHotObservable; + flush: typeof TestScheduler.prototype.flush; + expectObservable: typeof TestScheduler.prototype.expectObservable; + expectSubscriptions: typeof TestScheduler.prototype.expectSubscriptions; +} + +interface FlushableTest { + ready: boolean; + actual?: any[]; + expected?: any[]; +} + +export type observableToBeFn = (marbles: string, values?: any, errorValue?: any) => void; +export type subscriptionLogsToBeFn = (marbles: string | string[]) => void; + +export class TestScheduler extends VirtualTimeScheduler { + public readonly hotObservables: HotObservable[] = []; + public readonly coldObservables: ColdObservable[] = []; + private flushTests: FlushableTest[] = []; + private runMode = false; + + constructor(public assertDeepEqual: (actual: any, expected: any) => boolean | void) { + super(VirtualAction, defaultMaxFrame); + } + + createTime(marbles: string): number { + const indexOf: number = marbles.indexOf('|'); + if (indexOf === -1) { + throw new Error('marble diagram for time should have a completion marker "|"'); + } + return indexOf * TestScheduler.frameTimeFactor; + } + + /** + * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided. + * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used. + * @param error The error to use for the `#` marble (if present). + */ + createColdObservable(marbles: string, values?: { [marble: string]: T }, error?: any): ColdObservable { + if (marbles.indexOf('^') !== -1) { + throw new Error('cold observable cannot have subscription offset "^"'); + } + if (marbles.indexOf('!') !== -1) { + throw new Error('cold observable cannot have unsubscription marker "!"'); + } + const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + const cold = new ColdObservable(messages, this); + this.coldObservables.push(cold); + return cold; + } + + /** + * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided. + * @param values Values to use for the letters in `marbles`. If ommitted, the letters themselves are used. + * @param error The error to use for the `#` marble (if present). + */ + createHotObservable(marbles: string, values?: { [marble: string]: T }, error?: any): HotObservable { + if (marbles.indexOf('!') !== -1) { + throw new Error('hot observable cannot have unsubscription marker "!"'); + } + const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + const subject = new HotObservable(messages, this); + this.hotObservables.push(subject); + return subject; + } + + private materializeInnerObservable(observable: Observable, + outerFrame: number): TestMessage[] { + const messages: TestMessage[] = []; + observable.subscribe((value) => { + messages.push({ frame: this.frame - outerFrame, notification: Notification.createNext(value) }); + }, (err) => { + messages.push({ frame: this.frame - outerFrame, notification: Notification.createError(err) }); + }, () => { + messages.push({ frame: this.frame - outerFrame, notification: Notification.createComplete() }); + }); + return messages; + } + + expectObservable(observable: Observable, + subscriptionMarbles: string = null): ({ toBe: observableToBeFn }) { + const actual: TestMessage[] = []; + const flushTest: FlushableTest = { actual, ready: false }; + const subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode); + const subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ? + 0 : subscriptionParsed.subscribedFrame; + const unsubscriptionFrame = subscriptionParsed.unsubscribedFrame; + let subscription: Subscription; + + this.schedule(() => { + subscription = observable.subscribe(x => { + let value = x; + // Support Observable-of-Observables + if (x instanceof Observable) { + value = this.materializeInnerObservable(value, this.frame); + } + actual.push({ frame: this.frame, notification: Notification.createNext(value) }); + }, (err) => { + actual.push({ frame: this.frame, notification: Notification.createError(err) }); + }, () => { + actual.push({ frame: this.frame, notification: Notification.createComplete() }); + }); + }, subscriptionFrame); + + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + this.schedule(() => subscription.unsubscribe(), unsubscriptionFrame); + } + + this.flushTests.push(flushTest); + const { runMode } = this; + + return { + toBe(marbles: string, values?: any, errorValue?: any) { + flushTest.ready = true; + flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode); + } + }; + } + + expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): ({ toBe: subscriptionLogsToBeFn }) { + const flushTest: FlushableTest = { actual: actualSubscriptionLogs, ready: false }; + this.flushTests.push(flushTest); + const { runMode } = this; + return { + toBe(marbles: string | string[]) { + const marblesArray: string[] = (typeof marbles === 'string') ? [marbles] : marbles; + flushTest.ready = true; + flushTest.expected = marblesArray.map(marbles => + TestScheduler.parseMarblesAsSubscriptions(marbles, runMode) + ); + } + }; + } + + flush() { + const hotObservables = this.hotObservables; + while (hotObservables.length > 0) { + hotObservables.shift().setup(); + } + + super.flush(); + + this.flushTests = this.flushTests.filter(test => { + if (test.ready) { + this.assertDeepEqual(test.actual, test.expected); + return false; + } + return true; + }); + } + + /** @nocollapse */ + static parseMarblesAsSubscriptions(marbles: string, runMode = false): SubscriptionLog { + if (typeof marbles !== 'string') { + return new SubscriptionLog(Number.POSITIVE_INFINITY); + } + const len = marbles.length; + let groupStart = -1; + let subscriptionFrame = Number.POSITIVE_INFINITY; + let unsubscriptionFrame = Number.POSITIVE_INFINITY; + let frame = 0; + + for (let i = 0; i < len; i++) { + let nextFrame = frame; + const advanceFrameBy = (count: number) => { + nextFrame += count * this.frameTimeFactor; + }; + const c = marbles[i]; + switch (c) { + case ' ': + // Whitespace no longer advances time + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '^': + if (subscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + subscriptionFrame = groupStart > -1 ? groupStart : frame; + advanceFrameBy(1); + break; + case '!': + if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) { + throw new Error('found a second subscription point \'^\' in a ' + + 'subscription marble diagram. There can only be one.'); + } + unsubscriptionFrame = groupStart > -1 ? groupStart : frame; + break; + default: + // time progression syntax + if (runMode && c.match(/^[0-9]$/)) { + // Time progression must be preceeded by at least one space + // if it's not at the beginning of the diagram + if (i === 0 || marbles[i - 1] === ' ') { + const buffer = marbles.slice(i); + const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + const duration = parseFloat(match[1]); + const unit = match[2]; + let durationInMs: number; + + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + + advanceFrameBy(durationInMs / this.frameTimeFactor); + break; + } + } + } + + throw new Error('there can only be \'^\' and \'!\' markers in a ' + + 'subscription marble diagram. Found instead \'' + c + '\'.'); + } + + frame = nextFrame; + } + + if (unsubscriptionFrame < 0) { + return new SubscriptionLog(subscriptionFrame); + } else { + return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame); + } + } + + /** @nocollapse */ + static parseMarbles(marbles: string, + values?: any, + errorValue?: any, + materializeInnerObservables: boolean = false, + runMode = false): TestMessage[] { + if (marbles.indexOf('!') !== -1) { + throw new Error('conventional marble diagrams cannot have the ' + + 'unsubscription marker "!"'); + } + const len = marbles.length; + const testMessages: TestMessage[] = []; + const subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^'); + let frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor); + const getValue = typeof values !== 'object' ? + (x: any) => x : + (x: any) => { + // Support Observable-of-Observables + if (materializeInnerObservables && values[x] instanceof ColdObservable) { + return values[x].messages; + } + return values[x]; + }; + let groupStart = -1; + + for (let i = 0; i < len; i++) { + let nextFrame = frame; + const advanceFrameBy = (count: number) => { + nextFrame += count * this.frameTimeFactor; + }; + + let notification: Notification; + const c = marbles[i]; + switch (c) { + case ' ': + // Whitespace no longer advances time + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '|': + notification = Notification.createComplete(); + advanceFrameBy(1); + break; + case '^': + advanceFrameBy(1); + break; + case '#': + notification = Notification.createError(errorValue || 'error'); + advanceFrameBy(1); + break; + default: + // Might be time progression syntax, or a value literal + if (runMode && c.match(/^[0-9]$/)) { + // Time progression must be preceeded by at least one space + // if it's not at the beginning of the diagram + if (i === 0 || marbles[i - 1] === ' ') { + const buffer = marbles.slice(i); + const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + const duration = parseFloat(match[1]); + const unit = match[2]; + let durationInMs: number; + + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + + advanceFrameBy(durationInMs / this.frameTimeFactor); + break; + } + } + } + + notification = Notification.createNext(getValue(c)); + advanceFrameBy(1); + break; + } + + if (notification) { + testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification }); + } + + frame = nextFrame; + } + return testMessages; + } + + run(callback: (helpers: RunHelpers) => T): T { + const prevFrameTimeFactor = TestScheduler.frameTimeFactor; + const prevMaxFrames = this.maxFrames; + + TestScheduler.frameTimeFactor = 1; + this.maxFrames = Number.POSITIVE_INFINITY; + this.runMode = true; + AsyncScheduler.delegate = this; + + const helpers = { + cold: this.createColdObservable.bind(this), + hot: this.createHotObservable.bind(this), + flush: this.flush.bind(this), + expectObservable: this.expectObservable.bind(this), + expectSubscriptions: this.expectSubscriptions.bind(this), + }; + try { + const ret = callback(helpers); + this.flush(); + return ret; + } finally { + TestScheduler.frameTimeFactor = prevFrameTimeFactor; + this.maxFrames = prevMaxFrames; + this.runMode = false; + AsyncScheduler.delegate = undefined; + } + } +} diff --git a/node_modules/rxjs/src/internal/types.ts b/node_modules/rxjs/src/internal/types.ts new file mode 100644 index 00000000..e532dc80 --- /dev/null +++ b/node_modules/rxjs/src/internal/types.ts @@ -0,0 +1,103 @@ +import { Observable } from './Observable'; +import { Subscription } from './Subscription'; + +/** OPERATOR INTERFACES */ + +export interface UnaryFunction { (source: T): R; } + +export interface OperatorFunction extends UnaryFunction, Observable> {} + +export type FactoryOrValue = T | (() => T); + +export interface MonoTypeOperatorFunction extends OperatorFunction {} + +export interface Timestamp { + value: T; + timestamp: number; +} + +export interface TimeInterval { + value: T; + interval: number; +} + +/** SUBSCRIPTION INTERFACES */ + +export interface Unsubscribable { + unsubscribe(): void; +} + +export type TeardownLogic = Unsubscribable | Function | void; + +export interface SubscriptionLike extends Unsubscribable { + unsubscribe(): void; + readonly closed: boolean; +} + +export type SubscribableOrPromise = Subscribable | Subscribable | PromiseLike | InteropObservable; + +/** OBSERVABLE INTERFACES */ + +export interface Subscribable { + subscribe(observer?: PartialObserver): Unsubscribable; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable; + /** @deprecated Use an observer instead of an error callback */ + subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable; + /** @deprecated Use an observer instead of a complete callback */ + subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable; + subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable; +} + +export type ObservableInput = SubscribableOrPromise | ArrayLike | Iterable; + +/** @deprecated use {@link InteropObservable } */ +export type ObservableLike = InteropObservable; + +export type InteropObservable = { [Symbol.observable]: () => Subscribable; }; + +/** OBSERVER INTERFACES */ + +export interface NextObserver { + closed?: boolean; + next: (value: T) => void; + error?: (err: any) => void; + complete?: () => void; +} + +export interface ErrorObserver { + closed?: boolean; + next?: (value: T) => void; + error: (err: any) => void; + complete?: () => void; +} + +export interface CompletionObserver { + closed?: boolean; + next?: (value: T) => void; + error?: (err: any) => void; + complete: () => void; +} + +export type PartialObserver = NextObserver | ErrorObserver | CompletionObserver; + +export interface Observer { + closed?: boolean; + next: (value: T) => void; + error: (err: any) => void; + complete: () => void; +} + +/** SCHEDULER INTERFACES */ + +export interface SchedulerLike { + now(): number; + schedule(work: (this: SchedulerAction, state?: T) => void, delay?: number, state?: T): Subscription; +} +export interface SchedulerAction extends Subscription { + schedule(state?: T, delay?: number): Subscription; +} + +export type ObservedValueOf = O extends ObservableInput ? T : never; + +export type ObservedValuesFromArray = X extends Array> ? T : never; diff --git a/node_modules/rxjs/src/internal/umd.ts b/node_modules/rxjs/src/internal/umd.ts new file mode 100644 index 00000000..e81c5742 --- /dev/null +++ b/node_modules/rxjs/src/internal/umd.ts @@ -0,0 +1,26 @@ +/* + NOTE: This is the global export file for rxjs v6 and higher. + */ + +/* rxjs */ +export * from '../index'; + +/* rxjs.operators */ +import * as _operators from '../operators/index'; +export const operators = _operators; + +/* rxjs.testing */ +import * as _testing from '../testing/index'; +export const testing = _testing; + +/* rxjs.ajax */ +import * as _ajax from '../ajax/index'; +export const ajax = _ajax; + +/* rxjs.webSocket */ +import * as _webSocket from '../webSocket/index'; +export const webSocket = _webSocket; + +/* rxjs.fetch */ +import * as _fetch from '../fetch/index'; +export const fetch = _fetch; diff --git a/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts b/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts new file mode 100644 index 00000000..b9bd72d1 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts @@ -0,0 +1,31 @@ +export interface ArgumentOutOfRangeError extends Error { +} + +export interface ArgumentOutOfRangeErrorCtor { + new(): ArgumentOutOfRangeError; +} + +const ArgumentOutOfRangeErrorImpl = (() => { + function ArgumentOutOfRangeErrorImpl(this: any) { + Error.call(this); + this.message = 'argument out of range'; + this.name = 'ArgumentOutOfRangeError'; + return this; + } + + ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype); + + return ArgumentOutOfRangeErrorImpl; +})(); + +/** + * An error thrown when an element was queried at a certain index of an + * Observable, but no such index or position exists in that sequence. + * + * @see {@link elementAt} + * @see {@link take} + * @see {@link takeLast} + * + * @class ArgumentOutOfRangeError + */ +export const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor = ArgumentOutOfRangeErrorImpl as any; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/EmptyError.ts b/node_modules/rxjs/src/internal/util/EmptyError.ts new file mode 100644 index 00000000..6eb1d076 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/EmptyError.ts @@ -0,0 +1,31 @@ +export interface EmptyError extends Error { +} + +export interface EmptyErrorCtor { + new(): EmptyError; +} + +const EmptyErrorImpl = (() => { + function EmptyErrorImpl(this: any) { + Error.call(this); + this.message = 'no elements in sequence'; + this.name = 'EmptyError'; + return this; + } + + EmptyErrorImpl.prototype = Object.create(Error.prototype); + + return EmptyErrorImpl; +})(); + +/** + * An error thrown when an Observable or a sequence was queried but has no + * elements. + * + * @see {@link first} + * @see {@link last} + * @see {@link single} + * + * @class EmptyError + */ +export const EmptyError: EmptyErrorCtor = EmptyErrorImpl as any; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/Immediate.ts b/node_modules/rxjs/src/internal/util/Immediate.ts new file mode 100644 index 00000000..ba296613 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/Immediate.ts @@ -0,0 +1,41 @@ +let nextHandle = 1; +const RESOLVED = (() => Promise.resolve())(); +const activeHandles: { [key: number]: any } = {}; + +/** + * Finds the handle in the list of active handles, and removes it. + * Returns `true` if found, `false` otherwise. Used both to clear + * Immediate scheduled tasks, and to identify if a task should be scheduled. + */ +function findAndClearHandle(handle: number): boolean { + if (handle in activeHandles) { + delete activeHandles[handle]; + return true; + } + return false; +} + +/** + * Helper functions to schedule and unschedule microtasks. + */ +export const Immediate = { + setImmediate(cb: () => void): number { + const handle = nextHandle++; + activeHandles[handle] = true; + RESOLVED.then(() => findAndClearHandle(handle) && cb()); + return handle; + }, + + clearImmediate(handle: number): void { + findAndClearHandle(handle); + }, +}; + +/** + * Used for internal testing purposes only. Do not export from library. + */ +export const TestTools = { + pending() { + return Object.keys(activeHandles).length; + } +}; diff --git a/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts b/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts new file mode 100644 index 00000000..45d20664 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts @@ -0,0 +1,30 @@ +export interface ObjectUnsubscribedError extends Error { +} + +export interface ObjectUnsubscribedErrorCtor { + new(): ObjectUnsubscribedError; +} + +const ObjectUnsubscribedErrorImpl = (() => { + function ObjectUnsubscribedErrorImpl(this: any) { + Error.call(this); + this.message = 'object unsubscribed'; + this.name = 'ObjectUnsubscribedError'; + return this; + } + + ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype); + + return ObjectUnsubscribedErrorImpl; +})(); + +/** + * An error thrown when an action is invalid because the object has been + * unsubscribed. + * + * @see {@link Subject} + * @see {@link BehaviorSubject} + * + * @class ObjectUnsubscribedError + */ +export const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = ObjectUnsubscribedErrorImpl as any; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/TimeoutError.ts b/node_modules/rxjs/src/internal/util/TimeoutError.ts new file mode 100644 index 00000000..fd0ae502 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/TimeoutError.ts @@ -0,0 +1,28 @@ +export interface TimeoutError extends Error { +} + +export interface TimeoutErrorCtor { + new(): TimeoutError; +} + +const TimeoutErrorImpl = (() => { + function TimeoutErrorImpl(this: any) { + Error.call(this); + this.message = 'Timeout has occurred'; + this.name = 'TimeoutError'; + return this; + } + + TimeoutErrorImpl.prototype = Object.create(Error.prototype); + + return TimeoutErrorImpl; +})(); + +/** + * An error thrown when duetime elapses. + * + * @see {@link operators/timeout} + * + * @class TimeoutError + */ +export const TimeoutError: TimeoutErrorCtor = TimeoutErrorImpl as any; diff --git a/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts b/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts new file mode 100644 index 00000000..02f1a0d8 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts @@ -0,0 +1,29 @@ +export interface UnsubscriptionError extends Error { + readonly errors: any[]; +} + +export interface UnsubscriptionErrorCtor { + new(errors: any[]): UnsubscriptionError; +} + +const UnsubscriptionErrorImpl = (() => { + function UnsubscriptionErrorImpl(this: any, errors: any[]) { + Error.call(this); + this.message = errors ? + `${errors.length} errors occurred during unsubscription: +${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : ''; + this.name = 'UnsubscriptionError'; + this.errors = errors; + return this; + } + + UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype); + + return UnsubscriptionErrorImpl; +})(); + +/** + * An error thrown when one or more errors have occurred during the + * `unsubscribe` of a {@link Subscription}. + */ +export const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/applyMixins.ts b/node_modules/rxjs/src/internal/util/applyMixins.ts new file mode 100644 index 00000000..7c1ed242 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/applyMixins.ts @@ -0,0 +1,10 @@ +export function applyMixins(derivedCtor: any, baseCtors: any[]) { + for (let i = 0, len = baseCtors.length; i < len; i++) { + const baseCtor = baseCtors[i]; + const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype); + for (let j = 0, len2 = propertyKeys.length; j < len2; j++) { + const name = propertyKeys[j]; + derivedCtor.prototype[name] = baseCtor.prototype[name]; + } + } +} \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/canReportError.ts b/node_modules/rxjs/src/internal/util/canReportError.ts new file mode 100644 index 00000000..deed48ee --- /dev/null +++ b/node_modules/rxjs/src/internal/util/canReportError.ts @@ -0,0 +1,22 @@ +import { Subscriber } from '../Subscriber'; +import { Subject } from '../Subject'; + +/** + * Determines whether the ErrorObserver is closed or stopped or has a + * destination that is closed or stopped - in which case errors will + * need to be reported via a different mechanism. + * @param observer the observer + */ +export function canReportError(observer: Subscriber | Subject): boolean { + while (observer) { + const { closed, destination, isStopped } = observer as any; + if (closed || isStopped) { + return false; + } else if (destination && destination instanceof Subscriber) { + observer = destination; + } else { + observer = null; + } + } + return true; +} diff --git a/node_modules/rxjs/src/internal/util/errorObject.ts b/node_modules/rxjs/src/internal/util/errorObject.ts new file mode 100644 index 00000000..63e2c7f5 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/errorObject.ts @@ -0,0 +1,2 @@ +// typeof any so that it we don't have to cast when comparing a result to the error object +export const errorObject: any = { e: {} }; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/hostReportError.ts b/node_modules/rxjs/src/internal/util/hostReportError.ts new file mode 100644 index 00000000..6d0082ab --- /dev/null +++ b/node_modules/rxjs/src/internal/util/hostReportError.ts @@ -0,0 +1,8 @@ +/** + * Throws an error on another job so that it's picked up by the runtime's + * uncaught error handling mechanism. + * @param err the error to throw + */ +export function hostReportError(err: any) { + setTimeout(() => { throw err; }, 0); +} \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/identity.ts b/node_modules/rxjs/src/internal/util/identity.ts new file mode 100644 index 00000000..6589842c --- /dev/null +++ b/node_modules/rxjs/src/internal/util/identity.ts @@ -0,0 +1,3 @@ +export function identity(x: T): T { + return x; +} diff --git a/node_modules/rxjs/src/internal/util/isArray.ts b/node_modules/rxjs/src/internal/util/isArray.ts new file mode 100644 index 00000000..092f8a2a --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isArray.ts @@ -0,0 +1 @@ +export const isArray = (() => Array.isArray || ((x: any): x is T[] => x && typeof x.length === 'number'))(); diff --git a/node_modules/rxjs/src/internal/util/isArrayLike.ts b/node_modules/rxjs/src/internal/util/isArrayLike.ts new file mode 100644 index 00000000..6f634d4d --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isArrayLike.ts @@ -0,0 +1 @@ +export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function'); \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/isDate.ts b/node_modules/rxjs/src/internal/util/isDate.ts new file mode 100644 index 00000000..b18edf07 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isDate.ts @@ -0,0 +1,3 @@ +export function isDate(value: any): value is Date { + return value instanceof Date && !isNaN(+value); +} diff --git a/node_modules/rxjs/src/internal/util/isFunction.ts b/node_modules/rxjs/src/internal/util/isFunction.ts new file mode 100644 index 00000000..287e8871 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isFunction.ts @@ -0,0 +1,3 @@ +export function isFunction(x: any): x is Function { + return typeof x === 'function'; +} diff --git a/node_modules/rxjs/src/internal/util/isInteropObservable.ts b/node_modules/rxjs/src/internal/util/isInteropObservable.ts new file mode 100644 index 00000000..fbd8fc4f --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isInteropObservable.ts @@ -0,0 +1,7 @@ +import { InteropObservable } from '../types'; +import { observable as Symbol_observable } from '../symbol/observable'; + +/** Identifies an input as being Observable (but not necessary an Rx Observable) */ +export function isInteropObservable(input: any): input is InteropObservable { + return input && typeof input[Symbol_observable] === 'function'; +} diff --git a/node_modules/rxjs/src/internal/util/isIterable.ts b/node_modules/rxjs/src/internal/util/isIterable.ts new file mode 100644 index 00000000..fc8fd07e --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isIterable.ts @@ -0,0 +1,6 @@ +import { iterator as Symbol_iterator } from '../symbol/iterator'; + +/** Identifies an input as being an Iterable */ +export function isIterable(input: any): input is Iterable { + return input && typeof input[Symbol_iterator] === 'function'; +} diff --git a/node_modules/rxjs/src/internal/util/isNumeric.ts b/node_modules/rxjs/src/internal/util/isNumeric.ts new file mode 100644 index 00000000..7983f471 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isNumeric.ts @@ -0,0 +1,9 @@ +import { isArray } from './isArray'; + +export function isNumeric(val: any): val is number | string { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + return !isArray(val) && (val - parseFloat(val) + 1) >= 0; +} diff --git a/node_modules/rxjs/src/internal/util/isObject.ts b/node_modules/rxjs/src/internal/util/isObject.ts new file mode 100644 index 00000000..536a52eb --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isObject.ts @@ -0,0 +1,3 @@ +export function isObject(x: any): x is Object { + return x !== null && typeof x === 'object'; +} diff --git a/node_modules/rxjs/src/internal/util/isObservable.ts b/node_modules/rxjs/src/internal/util/isObservable.ts new file mode 100644 index 00000000..f3df5248 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isObservable.ts @@ -0,0 +1,10 @@ +import { Observable } from '../Observable'; +import { ObservableInput } from '../types'; + +/** + * Tests to see if the object is an RxJS {@link Observable} + * @param obj the object to test + */ +export function isObservable(obj: any): obj is Observable { + return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); +} diff --git a/node_modules/rxjs/src/internal/util/isPromise.ts b/node_modules/rxjs/src/internal/util/isPromise.ts new file mode 100644 index 00000000..20ee36dd --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isPromise.ts @@ -0,0 +1,8 @@ +/** + * Tests to see if the object is an ES2015 (ES6) Promise + * @see {@link https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects} + * @param value the object to test + */ +export function isPromise(value: any): value is PromiseLike { + return !!value && typeof (value).subscribe !== 'function' && typeof (value as any).then === 'function'; +} diff --git a/node_modules/rxjs/src/internal/util/isScheduler.ts b/node_modules/rxjs/src/internal/util/isScheduler.ts new file mode 100644 index 00000000..594f195f --- /dev/null +++ b/node_modules/rxjs/src/internal/util/isScheduler.ts @@ -0,0 +1,5 @@ +import { SchedulerLike } from '../types'; + +export function isScheduler(value: any): value is SchedulerLike { + return value && typeof (value).schedule === 'function'; +} diff --git a/node_modules/rxjs/src/internal/util/noop.ts b/node_modules/rxjs/src/internal/util/noop.ts new file mode 100644 index 00000000..fc857f20 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/noop.ts @@ -0,0 +1,2 @@ +/* tslint:disable:no-empty */ +export function noop() { } diff --git a/node_modules/rxjs/src/internal/util/not.ts b/node_modules/rxjs/src/internal/util/not.ts new file mode 100644 index 00000000..e5e69522 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/not.ts @@ -0,0 +1,8 @@ +export function not(pred: Function, thisArg: any): Function { + function notPred(): any { + return !(( notPred).pred.apply(( notPred).thisArg, arguments)); + } + ( notPred).pred = pred; + ( notPred).thisArg = thisArg; + return notPred; +} \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/pipe.ts b/node_modules/rxjs/src/internal/util/pipe.ts new file mode 100644 index 00000000..c207dd9b --- /dev/null +++ b/node_modules/rxjs/src/internal/util/pipe.ts @@ -0,0 +1,36 @@ +import { noop } from './noop'; +import { identity } from './identity'; +import { UnaryFunction } from '../types'; + +/* tslint:disable:max-line-length */ +export function pipe(): UnaryFunction; +export function pipe(fn1: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction; +export function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction; +/* tslint:enable:max-line-length */ + +export function pipe(...fns: Array>): UnaryFunction { + return pipeFromArray(fns); +} + +/** @internal */ +export function pipeFromArray(fns: Array>): UnaryFunction { + if (fns.length === 0) { + return identity as UnaryFunction; + } + + if (fns.length === 1) { + return fns[0]; + } + + return function piped(input: T): R { + return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any); + }; +} diff --git a/node_modules/rxjs/src/internal/util/root.ts b/node_modules/rxjs/src/internal/util/root.ts new file mode 100644 index 00000000..7ab51e5c --- /dev/null +++ b/node_modules/rxjs/src/internal/util/root.ts @@ -0,0 +1,31 @@ +declare let global: any; + +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +declare var WorkerGlobalScope: any; +// CommonJS / Node have global context exposed as "global" variable. +// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake +// the global "global" var for now. + +const __window = typeof window !== 'undefined' && window; +const __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && + self instanceof WorkerGlobalScope && self; +const __global = typeof global !== 'undefined' && global; +const _root: any = __window || __global || __self; + +// Workaround Closure Compiler restriction: The body of a goog.module cannot use throw. +// This is needed when used with angular/tsickle which inserts a goog.module statement. +// Wrap in IIFE +(function () { + if (!_root) { + throw new Error('RxJS could not find any global context (window, self, global)'); + } +})(); + +export { _root as root }; \ No newline at end of file diff --git a/node_modules/rxjs/src/internal/util/subscribeTo.ts b/node_modules/rxjs/src/internal/util/subscribeTo.ts new file mode 100644 index 00000000..c872f6a7 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/subscribeTo.ts @@ -0,0 +1,29 @@ +import { ObservableInput } from '../types'; +import { subscribeToArray } from './subscribeToArray'; +import { subscribeToPromise } from './subscribeToPromise'; +import { subscribeToIterable } from './subscribeToIterable'; +import { subscribeToObservable } from './subscribeToObservable'; +import { isArrayLike } from './isArrayLike'; +import { isPromise } from './isPromise'; +import { isObject } from './isObject'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; +import { observable as Symbol_observable } from '../symbol/observable'; +import { Subscription } from '../Subscription'; +import { Subscriber } from '../Subscriber'; + +export const subscribeTo = (result: ObservableInput): (subscriber: Subscriber) => Subscription | void => { + if (!!result && typeof result[Symbol_observable] === 'function') { + return subscribeToObservable(result as any); + } else if (isArrayLike(result)) { + return subscribeToArray(result); + } else if (isPromise(result)) { + return subscribeToPromise(result as Promise); + } else if (!!result && typeof result[Symbol_iterator] === 'function') { + return subscribeToIterable(result as any); + } else { + const value = isObject(result) ? 'an invalid object' : `'${result}'`; + const msg = `You provided ${value} where a stream was expected.` + + ' You can provide an Observable, Promise, Array, or Iterable.'; + throw new TypeError(msg); + } +}; diff --git a/node_modules/rxjs/src/internal/util/subscribeToArray.ts b/node_modules/rxjs/src/internal/util/subscribeToArray.ts new file mode 100644 index 00000000..0ca52942 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/subscribeToArray.ts @@ -0,0 +1,12 @@ +import { Subscriber } from '../Subscriber'; + +/** + * Subscribes to an ArrayLike with a subscriber + * @param array The array or array-like to subscribe to + */ +export const subscribeToArray = (array: ArrayLike) => (subscriber: Subscriber) => { + for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) { + subscriber.next(array[i]); + } + subscriber.complete(); +}; diff --git a/node_modules/rxjs/src/internal/util/subscribeToIterable.ts b/node_modules/rxjs/src/internal/util/subscribeToIterable.ts new file mode 100644 index 00000000..a62f24c5 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/subscribeToIterable.ts @@ -0,0 +1,35 @@ +import { Subscriber } from '../Subscriber'; +import { iterator as Symbol_iterator } from '../symbol/iterator'; + +export const subscribeToIterable = (iterable: Iterable) => (subscriber: Subscriber) => { + const iterator = (iterable as any)[Symbol_iterator](); + + do { + let item: IteratorResult; + try { + item = iterator.next(); + } catch (err) { + subscriber.error(err); + return subscriber; + } + if (item.done) { + subscriber.complete(); + break; + } + subscriber.next(item.value); + if (subscriber.closed) { + break; + } + } while (true); + + // Finalize the iterator if it happens to be a Generator + if (typeof iterator.return === 'function') { + subscriber.add(() => { + if (iterator.return) { + iterator.return(); + } + }); + } + + return subscriber; +}; diff --git a/node_modules/rxjs/src/internal/util/subscribeToObservable.ts b/node_modules/rxjs/src/internal/util/subscribeToObservable.ts new file mode 100644 index 00000000..b53c566a --- /dev/null +++ b/node_modules/rxjs/src/internal/util/subscribeToObservable.ts @@ -0,0 +1,17 @@ +import { Subscriber } from '../Subscriber'; +import { observable as Symbol_observable } from '../symbol/observable'; + +/** + * Subscribes to an object that implements Symbol.observable with the given + * Subscriber. + * @param obj An object that implements Symbol.observable + */ +export const subscribeToObservable = (obj: any) => (subscriber: Subscriber) => { + const obs = obj[Symbol_observable](); + if (typeof obs.subscribe !== 'function') { + // Should be caught by observable subscribe function error handling. + throw new TypeError('Provided object does not correctly implement Symbol.observable'); + } else { + return obs.subscribe(subscriber); + } +}; diff --git a/node_modules/rxjs/src/internal/util/subscribeToPromise.ts b/node_modules/rxjs/src/internal/util/subscribeToPromise.ts new file mode 100644 index 00000000..c64c8500 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/subscribeToPromise.ts @@ -0,0 +1,16 @@ +import { Subscriber } from '../Subscriber'; +import { hostReportError } from './hostReportError'; + +export const subscribeToPromise = (promise: PromiseLike) => (subscriber: Subscriber) => { + promise.then( + (value) => { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, + (err: any) => subscriber.error(err) + ) + .then(null, hostReportError); + return subscriber; +}; diff --git a/node_modules/rxjs/src/internal/util/subscribeToResult.ts b/node_modules/rxjs/src/internal/util/subscribeToResult.ts new file mode 100644 index 00000000..31368ce6 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/subscribeToResult.ts @@ -0,0 +1,37 @@ +import { Subscription } from '../Subscription'; +import { InnerSubscriber } from '../InnerSubscriber'; +import { OuterSubscriber } from '../OuterSubscriber'; +import { Subscriber } from '../Subscriber'; +import { subscribeTo } from './subscribeTo'; +import { Observable } from '../Observable'; + +export function subscribeToResult( + outerSubscriber: OuterSubscriber, + result: any, + outerValue: undefined, + outerIndex: undefined, + innerSubscriber: InnerSubscriber +): Subscription | undefined; + +export function subscribeToResult( + outerSubscriber: OuterSubscriber, + result: any, + outerValue?: T, + outerIndex?: number +): Subscription | undefined; + +export function subscribeToResult( + outerSubscriber: OuterSubscriber, + result: any, + outerValue?: T, + outerIndex?: number, + innerSubscriber: Subscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex) +): Subscription | undefined { + if (innerSubscriber.closed) { + return undefined; + } + if (result instanceof Observable) { + return result.subscribe(innerSubscriber); + } + return subscribeTo(result)(innerSubscriber) as Subscription; +} diff --git a/node_modules/rxjs/src/internal/util/toSubscriber.ts b/node_modules/rxjs/src/internal/util/toSubscriber.ts new file mode 100644 index 00000000..e03d1400 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/toSubscriber.ts @@ -0,0 +1,26 @@ +import { Subscriber } from '../Subscriber'; +import { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber'; +import { empty as emptyObserver } from '../Observer'; +import { PartialObserver } from '../types'; + +export function toSubscriber( + nextOrObserver?: PartialObserver | ((value: T) => void), + error?: (error: any) => void, + complete?: () => void): Subscriber { + + if (nextOrObserver) { + if (nextOrObserver instanceof Subscriber) { + return (> nextOrObserver); + } + + if (nextOrObserver[rxSubscriberSymbol]) { + return nextOrObserver[rxSubscriberSymbol](); + } + } + + if (!nextOrObserver && !error && !complete) { + return new Subscriber(emptyObserver); + } + + return new Subscriber(nextOrObserver, error, complete); +} diff --git a/node_modules/rxjs/src/internal/util/tryCatch.ts b/node_modules/rxjs/src/internal/util/tryCatch.ts new file mode 100644 index 00000000..17454219 --- /dev/null +++ b/node_modules/rxjs/src/internal/util/tryCatch.ts @@ -0,0 +1,20 @@ +import { errorObject } from './errorObject'; + +let tryCatchTarget: Function; + +function tryCatcher(this: any): any { + errorObject.e = undefined; + try { + return tryCatchTarget.apply(this, arguments); + } catch (e) { + errorObject.e = e; + return errorObject; + } finally { + tryCatchTarget = undefined; + } +} + +export function tryCatch(fn: T): T { + tryCatchTarget = fn; + return tryCatcher; +} diff --git a/node_modules/rxjs/src/observable/ArrayLikeObservable.ts b/node_modules/rxjs/src/observable/ArrayLikeObservable.ts new file mode 100644 index 00000000..30da2881 --- /dev/null +++ b/node_modules/rxjs/src/observable/ArrayLikeObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ArrayLikeObservable'; diff --git a/node_modules/rxjs/src/observable/ArrayObservable.ts b/node_modules/rxjs/src/observable/ArrayObservable.ts new file mode 100644 index 00000000..ce2da267 --- /dev/null +++ b/node_modules/rxjs/src/observable/ArrayObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ArrayObservable'; diff --git a/node_modules/rxjs/src/observable/BoundCallbackObservable.ts b/node_modules/rxjs/src/observable/BoundCallbackObservable.ts new file mode 100644 index 00000000..17903061 --- /dev/null +++ b/node_modules/rxjs/src/observable/BoundCallbackObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/BoundCallbackObservable'; diff --git a/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts b/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts new file mode 100644 index 00000000..7d0eb036 --- /dev/null +++ b/node_modules/rxjs/src/observable/BoundNodeCallbackObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/BoundNodeCallbackObservable'; diff --git a/node_modules/rxjs/src/observable/ConnectableObservable.ts b/node_modules/rxjs/src/observable/ConnectableObservable.ts new file mode 100644 index 00000000..a21b3cc6 --- /dev/null +++ b/node_modules/rxjs/src/observable/ConnectableObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ConnectableObservable'; diff --git a/node_modules/rxjs/src/observable/DeferObservable.ts b/node_modules/rxjs/src/observable/DeferObservable.ts new file mode 100644 index 00000000..cec9147a --- /dev/null +++ b/node_modules/rxjs/src/observable/DeferObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/DeferObservable'; diff --git a/node_modules/rxjs/src/observable/EmptyObservable.ts b/node_modules/rxjs/src/observable/EmptyObservable.ts new file mode 100644 index 00000000..6f9f0ba1 --- /dev/null +++ b/node_modules/rxjs/src/observable/EmptyObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/EmptyObservable'; diff --git a/node_modules/rxjs/src/observable/ErrorObservable.ts b/node_modules/rxjs/src/observable/ErrorObservable.ts new file mode 100644 index 00000000..68a7dce9 --- /dev/null +++ b/node_modules/rxjs/src/observable/ErrorObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ErrorObservable'; diff --git a/node_modules/rxjs/src/observable/ForkJoinObservable.ts b/node_modules/rxjs/src/observable/ForkJoinObservable.ts new file mode 100644 index 00000000..c9fa4dd6 --- /dev/null +++ b/node_modules/rxjs/src/observable/ForkJoinObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ForkJoinObservable'; diff --git a/node_modules/rxjs/src/observable/FromEventObservable.ts b/node_modules/rxjs/src/observable/FromEventObservable.ts new file mode 100644 index 00000000..04291abd --- /dev/null +++ b/node_modules/rxjs/src/observable/FromEventObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromEventObservable'; diff --git a/node_modules/rxjs/src/observable/FromEventPatternObservable.ts b/node_modules/rxjs/src/observable/FromEventPatternObservable.ts new file mode 100644 index 00000000..e0a473ca --- /dev/null +++ b/node_modules/rxjs/src/observable/FromEventPatternObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromEventPatternObservable'; diff --git a/node_modules/rxjs/src/observable/FromObservable.ts b/node_modules/rxjs/src/observable/FromObservable.ts new file mode 100644 index 00000000..c4ec6648 --- /dev/null +++ b/node_modules/rxjs/src/observable/FromObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/FromObservable'; diff --git a/node_modules/rxjs/src/observable/GenerateObservable.ts b/node_modules/rxjs/src/observable/GenerateObservable.ts new file mode 100644 index 00000000..8441d24b --- /dev/null +++ b/node_modules/rxjs/src/observable/GenerateObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/GenerateObservable'; diff --git a/node_modules/rxjs/src/observable/IfObservable.ts b/node_modules/rxjs/src/observable/IfObservable.ts new file mode 100644 index 00000000..5eb484aa --- /dev/null +++ b/node_modules/rxjs/src/observable/IfObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IfObservable'; diff --git a/node_modules/rxjs/src/observable/IntervalObservable.ts b/node_modules/rxjs/src/observable/IntervalObservable.ts new file mode 100644 index 00000000..dfe181f0 --- /dev/null +++ b/node_modules/rxjs/src/observable/IntervalObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IntervalObservable'; diff --git a/node_modules/rxjs/src/observable/IteratorObservable.ts b/node_modules/rxjs/src/observable/IteratorObservable.ts new file mode 100644 index 00000000..860fbefb --- /dev/null +++ b/node_modules/rxjs/src/observable/IteratorObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/IteratorObservable'; diff --git a/node_modules/rxjs/src/observable/NeverObservable.ts b/node_modules/rxjs/src/observable/NeverObservable.ts new file mode 100644 index 00000000..de440577 --- /dev/null +++ b/node_modules/rxjs/src/observable/NeverObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/NeverObservable'; diff --git a/node_modules/rxjs/src/observable/PairsObservable.ts b/node_modules/rxjs/src/observable/PairsObservable.ts new file mode 100644 index 00000000..d0307884 --- /dev/null +++ b/node_modules/rxjs/src/observable/PairsObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/PairsObservable'; diff --git a/node_modules/rxjs/src/observable/PromiseObservable.ts b/node_modules/rxjs/src/observable/PromiseObservable.ts new file mode 100644 index 00000000..ae0aac25 --- /dev/null +++ b/node_modules/rxjs/src/observable/PromiseObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/PromiseObservable'; diff --git a/node_modules/rxjs/src/observable/RangeObservable.ts b/node_modules/rxjs/src/observable/RangeObservable.ts new file mode 100644 index 00000000..f500c0a9 --- /dev/null +++ b/node_modules/rxjs/src/observable/RangeObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/RangeObservable'; diff --git a/node_modules/rxjs/src/observable/ScalarObservable.ts b/node_modules/rxjs/src/observable/ScalarObservable.ts new file mode 100644 index 00000000..a353068a --- /dev/null +++ b/node_modules/rxjs/src/observable/ScalarObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/ScalarObservable'; diff --git a/node_modules/rxjs/src/observable/SubscribeOnObservable.ts b/node_modules/rxjs/src/observable/SubscribeOnObservable.ts new file mode 100644 index 00000000..64357278 --- /dev/null +++ b/node_modules/rxjs/src/observable/SubscribeOnObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/SubscribeOnObservable'; diff --git a/node_modules/rxjs/src/observable/TimerObservable.ts b/node_modules/rxjs/src/observable/TimerObservable.ts new file mode 100644 index 00000000..02b4a513 --- /dev/null +++ b/node_modules/rxjs/src/observable/TimerObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/TimerObservable'; diff --git a/node_modules/rxjs/src/observable/UsingObservable.ts b/node_modules/rxjs/src/observable/UsingObservable.ts new file mode 100644 index 00000000..c24410f9 --- /dev/null +++ b/node_modules/rxjs/src/observable/UsingObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/UsingObservable'; diff --git a/node_modules/rxjs/src/observable/bindCallback.ts b/node_modules/rxjs/src/observable/bindCallback.ts new file mode 100644 index 00000000..aab5734d --- /dev/null +++ b/node_modules/rxjs/src/observable/bindCallback.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/bindCallback'; diff --git a/node_modules/rxjs/src/observable/bindNodeCallback.ts b/node_modules/rxjs/src/observable/bindNodeCallback.ts new file mode 100644 index 00000000..d5bfe5d9 --- /dev/null +++ b/node_modules/rxjs/src/observable/bindNodeCallback.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/bindNodeCallback'; diff --git a/node_modules/rxjs/src/observable/combineLatest.ts b/node_modules/rxjs/src/observable/combineLatest.ts new file mode 100644 index 00000000..d4b70330 --- /dev/null +++ b/node_modules/rxjs/src/observable/combineLatest.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/combineLatest'; diff --git a/node_modules/rxjs/src/observable/concat.ts b/node_modules/rxjs/src/observable/concat.ts new file mode 100644 index 00000000..673b315e --- /dev/null +++ b/node_modules/rxjs/src/observable/concat.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/concat'; diff --git a/node_modules/rxjs/src/observable/defer.ts b/node_modules/rxjs/src/observable/defer.ts new file mode 100644 index 00000000..1a02f81f --- /dev/null +++ b/node_modules/rxjs/src/observable/defer.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/defer'; diff --git a/node_modules/rxjs/src/observable/dom/AjaxObservable.ts b/node_modules/rxjs/src/observable/dom/AjaxObservable.ts new file mode 100644 index 00000000..53250600 --- /dev/null +++ b/node_modules/rxjs/src/observable/dom/AjaxObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/AjaxObservable'; \ No newline at end of file diff --git a/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts b/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts new file mode 100644 index 00000000..fb01a6be --- /dev/null +++ b/node_modules/rxjs/src/observable/dom/WebSocketSubject.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/WebSocketSubject'; \ No newline at end of file diff --git a/node_modules/rxjs/src/observable/dom/ajax.ts b/node_modules/rxjs/src/observable/dom/ajax.ts new file mode 100644 index 00000000..fd13b940 --- /dev/null +++ b/node_modules/rxjs/src/observable/dom/ajax.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/ajax'; \ No newline at end of file diff --git a/node_modules/rxjs/src/observable/dom/webSocket.ts b/node_modules/rxjs/src/observable/dom/webSocket.ts new file mode 100644 index 00000000..9656f0f7 --- /dev/null +++ b/node_modules/rxjs/src/observable/dom/webSocket.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/dom/webSocket'; \ No newline at end of file diff --git a/node_modules/rxjs/src/observable/empty.ts b/node_modules/rxjs/src/observable/empty.ts new file mode 100644 index 00000000..d7ed9cba --- /dev/null +++ b/node_modules/rxjs/src/observable/empty.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/empty'; diff --git a/node_modules/rxjs/src/observable/forkJoin.ts b/node_modules/rxjs/src/observable/forkJoin.ts new file mode 100644 index 00000000..3720625d --- /dev/null +++ b/node_modules/rxjs/src/observable/forkJoin.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/forkJoin'; diff --git a/node_modules/rxjs/src/observable/from.ts b/node_modules/rxjs/src/observable/from.ts new file mode 100644 index 00000000..37d2b3ad --- /dev/null +++ b/node_modules/rxjs/src/observable/from.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/from'; diff --git a/node_modules/rxjs/src/observable/fromArray.ts b/node_modules/rxjs/src/observable/fromArray.ts new file mode 100644 index 00000000..97f8377a --- /dev/null +++ b/node_modules/rxjs/src/observable/fromArray.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromArray'; diff --git a/node_modules/rxjs/src/observable/fromEvent.ts b/node_modules/rxjs/src/observable/fromEvent.ts new file mode 100644 index 00000000..0312e3e8 --- /dev/null +++ b/node_modules/rxjs/src/observable/fromEvent.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromEvent'; diff --git a/node_modules/rxjs/src/observable/fromEventPattern.ts b/node_modules/rxjs/src/observable/fromEventPattern.ts new file mode 100644 index 00000000..6662550a --- /dev/null +++ b/node_modules/rxjs/src/observable/fromEventPattern.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromEventPattern'; diff --git a/node_modules/rxjs/src/observable/fromIterable.ts b/node_modules/rxjs/src/observable/fromIterable.ts new file mode 100644 index 00000000..ee359a26 --- /dev/null +++ b/node_modules/rxjs/src/observable/fromIterable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromIterable'; diff --git a/node_modules/rxjs/src/observable/fromPromise.ts b/node_modules/rxjs/src/observable/fromPromise.ts new file mode 100644 index 00000000..b580adc3 --- /dev/null +++ b/node_modules/rxjs/src/observable/fromPromise.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/fromPromise'; diff --git a/node_modules/rxjs/src/observable/generate.ts b/node_modules/rxjs/src/observable/generate.ts new file mode 100644 index 00000000..ad23753b --- /dev/null +++ b/node_modules/rxjs/src/observable/generate.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/generate'; diff --git a/node_modules/rxjs/src/observable/if.ts b/node_modules/rxjs/src/observable/if.ts new file mode 100644 index 00000000..71a71a42 --- /dev/null +++ b/node_modules/rxjs/src/observable/if.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/if'; diff --git a/node_modules/rxjs/src/observable/interval.ts b/node_modules/rxjs/src/observable/interval.ts new file mode 100644 index 00000000..273374ae --- /dev/null +++ b/node_modules/rxjs/src/observable/interval.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/interval'; diff --git a/node_modules/rxjs/src/observable/merge.ts b/node_modules/rxjs/src/observable/merge.ts new file mode 100644 index 00000000..5cbace99 --- /dev/null +++ b/node_modules/rxjs/src/observable/merge.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/merge'; diff --git a/node_modules/rxjs/src/observable/never.ts b/node_modules/rxjs/src/observable/never.ts new file mode 100644 index 00000000..8d8b24c1 --- /dev/null +++ b/node_modules/rxjs/src/observable/never.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/never'; diff --git a/node_modules/rxjs/src/observable/of.ts b/node_modules/rxjs/src/observable/of.ts new file mode 100644 index 00000000..b61ca785 --- /dev/null +++ b/node_modules/rxjs/src/observable/of.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/of'; diff --git a/node_modules/rxjs/src/observable/onErrorResumeNext.ts b/node_modules/rxjs/src/observable/onErrorResumeNext.ts new file mode 100644 index 00000000..8b46336f --- /dev/null +++ b/node_modules/rxjs/src/observable/onErrorResumeNext.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/onErrorResumeNext'; diff --git a/node_modules/rxjs/src/observable/pairs.ts b/node_modules/rxjs/src/observable/pairs.ts new file mode 100644 index 00000000..59ea93ee --- /dev/null +++ b/node_modules/rxjs/src/observable/pairs.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/pairs'; diff --git a/node_modules/rxjs/src/observable/race.ts b/node_modules/rxjs/src/observable/race.ts new file mode 100644 index 00000000..5c05cde5 --- /dev/null +++ b/node_modules/rxjs/src/observable/race.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/race'; diff --git a/node_modules/rxjs/src/observable/range.ts b/node_modules/rxjs/src/observable/range.ts new file mode 100644 index 00000000..297046c9 --- /dev/null +++ b/node_modules/rxjs/src/observable/range.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/range'; diff --git a/node_modules/rxjs/src/observable/throw.ts b/node_modules/rxjs/src/observable/throw.ts new file mode 100644 index 00000000..30d43628 --- /dev/null +++ b/node_modules/rxjs/src/observable/throw.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/throw'; diff --git a/node_modules/rxjs/src/observable/timer.ts b/node_modules/rxjs/src/observable/timer.ts new file mode 100644 index 00000000..ac3d4847 --- /dev/null +++ b/node_modules/rxjs/src/observable/timer.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/timer'; diff --git a/node_modules/rxjs/src/observable/using.ts b/node_modules/rxjs/src/observable/using.ts new file mode 100644 index 00000000..2a9d0e73 --- /dev/null +++ b/node_modules/rxjs/src/observable/using.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/using'; diff --git a/node_modules/rxjs/src/observable/zip.ts b/node_modules/rxjs/src/observable/zip.ts new file mode 100644 index 00000000..286e2255 --- /dev/null +++ b/node_modules/rxjs/src/observable/zip.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/observable/zip'; diff --git a/node_modules/rxjs/src/operator/audit.ts b/node_modules/rxjs/src/operator/audit.ts new file mode 100644 index 00000000..f99039c0 --- /dev/null +++ b/node_modules/rxjs/src/operator/audit.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/audit'; diff --git a/node_modules/rxjs/src/operator/auditTime.ts b/node_modules/rxjs/src/operator/auditTime.ts new file mode 100644 index 00000000..16dcc218 --- /dev/null +++ b/node_modules/rxjs/src/operator/auditTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/auditTime'; diff --git a/node_modules/rxjs/src/operator/buffer.ts b/node_modules/rxjs/src/operator/buffer.ts new file mode 100644 index 00000000..ae0e3495 --- /dev/null +++ b/node_modules/rxjs/src/operator/buffer.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/buffer'; diff --git a/node_modules/rxjs/src/operator/bufferCount.ts b/node_modules/rxjs/src/operator/bufferCount.ts new file mode 100644 index 00000000..9883c587 --- /dev/null +++ b/node_modules/rxjs/src/operator/bufferCount.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferCount'; diff --git a/node_modules/rxjs/src/operator/bufferTime.ts b/node_modules/rxjs/src/operator/bufferTime.ts new file mode 100644 index 00000000..74845b48 --- /dev/null +++ b/node_modules/rxjs/src/operator/bufferTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferTime'; diff --git a/node_modules/rxjs/src/operator/bufferToggle.ts b/node_modules/rxjs/src/operator/bufferToggle.ts new file mode 100644 index 00000000..3a3ccff9 --- /dev/null +++ b/node_modules/rxjs/src/operator/bufferToggle.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferToggle'; diff --git a/node_modules/rxjs/src/operator/bufferWhen.ts b/node_modules/rxjs/src/operator/bufferWhen.ts new file mode 100644 index 00000000..f394a588 --- /dev/null +++ b/node_modules/rxjs/src/operator/bufferWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/bufferWhen'; diff --git a/node_modules/rxjs/src/operator/catch.ts b/node_modules/rxjs/src/operator/catch.ts new file mode 100644 index 00000000..39c2412d --- /dev/null +++ b/node_modules/rxjs/src/operator/catch.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/catch'; diff --git a/node_modules/rxjs/src/operator/combineAll.ts b/node_modules/rxjs/src/operator/combineAll.ts new file mode 100644 index 00000000..47ead4ae --- /dev/null +++ b/node_modules/rxjs/src/operator/combineAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/combineAll'; diff --git a/node_modules/rxjs/src/operator/combineLatest.ts b/node_modules/rxjs/src/operator/combineLatest.ts new file mode 100644 index 00000000..57197968 --- /dev/null +++ b/node_modules/rxjs/src/operator/combineLatest.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/combineLatest'; diff --git a/node_modules/rxjs/src/operator/concat.ts b/node_modules/rxjs/src/operator/concat.ts new file mode 100644 index 00000000..7937d7ab --- /dev/null +++ b/node_modules/rxjs/src/operator/concat.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concat'; diff --git a/node_modules/rxjs/src/operator/concatAll.ts b/node_modules/rxjs/src/operator/concatAll.ts new file mode 100644 index 00000000..ac3f2027 --- /dev/null +++ b/node_modules/rxjs/src/operator/concatAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concatAll'; diff --git a/node_modules/rxjs/src/operator/concatMap.ts b/node_modules/rxjs/src/operator/concatMap.ts new file mode 100644 index 00000000..96cf01fb --- /dev/null +++ b/node_modules/rxjs/src/operator/concatMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concatMap'; diff --git a/node_modules/rxjs/src/operator/concatMapTo.ts b/node_modules/rxjs/src/operator/concatMapTo.ts new file mode 100644 index 00000000..ccc3cd50 --- /dev/null +++ b/node_modules/rxjs/src/operator/concatMapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/concatMapTo'; diff --git a/node_modules/rxjs/src/operator/count.ts b/node_modules/rxjs/src/operator/count.ts new file mode 100644 index 00000000..d9b4699b --- /dev/null +++ b/node_modules/rxjs/src/operator/count.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/count'; diff --git a/node_modules/rxjs/src/operator/debounce.ts b/node_modules/rxjs/src/operator/debounce.ts new file mode 100644 index 00000000..69fffd92 --- /dev/null +++ b/node_modules/rxjs/src/operator/debounce.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/debounce'; diff --git a/node_modules/rxjs/src/operator/debounceTime.ts b/node_modules/rxjs/src/operator/debounceTime.ts new file mode 100644 index 00000000..5e51c65e --- /dev/null +++ b/node_modules/rxjs/src/operator/debounceTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/debounceTime'; diff --git a/node_modules/rxjs/src/operator/defaultIfEmpty.ts b/node_modules/rxjs/src/operator/defaultIfEmpty.ts new file mode 100644 index 00000000..6f5c6208 --- /dev/null +++ b/node_modules/rxjs/src/operator/defaultIfEmpty.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/defaultIfEmpty'; diff --git a/node_modules/rxjs/src/operator/delay.ts b/node_modules/rxjs/src/operator/delay.ts new file mode 100644 index 00000000..823ded33 --- /dev/null +++ b/node_modules/rxjs/src/operator/delay.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/delay'; diff --git a/node_modules/rxjs/src/operator/delayWhen.ts b/node_modules/rxjs/src/operator/delayWhen.ts new file mode 100644 index 00000000..b28322ad --- /dev/null +++ b/node_modules/rxjs/src/operator/delayWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/delayWhen'; diff --git a/node_modules/rxjs/src/operator/dematerialize.ts b/node_modules/rxjs/src/operator/dematerialize.ts new file mode 100644 index 00000000..83f8da9d --- /dev/null +++ b/node_modules/rxjs/src/operator/dematerialize.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/dematerialize'; diff --git a/node_modules/rxjs/src/operator/distinct.ts b/node_modules/rxjs/src/operator/distinct.ts new file mode 100644 index 00000000..b97b8ee9 --- /dev/null +++ b/node_modules/rxjs/src/operator/distinct.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/distinct'; diff --git a/node_modules/rxjs/src/operator/distinctUntilChanged.ts b/node_modules/rxjs/src/operator/distinctUntilChanged.ts new file mode 100644 index 00000000..3a5bbc32 --- /dev/null +++ b/node_modules/rxjs/src/operator/distinctUntilChanged.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/distinctUntilChanged'; diff --git a/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts new file mode 100644 index 00000000..22d42b1f --- /dev/null +++ b/node_modules/rxjs/src/operator/distinctUntilKeyChanged.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/distinctUntilKeyChanged'; diff --git a/node_modules/rxjs/src/operator/do.ts b/node_modules/rxjs/src/operator/do.ts new file mode 100644 index 00000000..3b3a79b6 --- /dev/null +++ b/node_modules/rxjs/src/operator/do.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/do'; diff --git a/node_modules/rxjs/src/operator/elementAt.ts b/node_modules/rxjs/src/operator/elementAt.ts new file mode 100644 index 00000000..bcdf7982 --- /dev/null +++ b/node_modules/rxjs/src/operator/elementAt.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/elementAt'; diff --git a/node_modules/rxjs/src/operator/every.ts b/node_modules/rxjs/src/operator/every.ts new file mode 100644 index 00000000..af7e790e --- /dev/null +++ b/node_modules/rxjs/src/operator/every.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/every'; diff --git a/node_modules/rxjs/src/operator/exhaust.ts b/node_modules/rxjs/src/operator/exhaust.ts new file mode 100644 index 00000000..7af3d2f2 --- /dev/null +++ b/node_modules/rxjs/src/operator/exhaust.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/exhaust'; diff --git a/node_modules/rxjs/src/operator/exhaustMap.ts b/node_modules/rxjs/src/operator/exhaustMap.ts new file mode 100644 index 00000000..822438aa --- /dev/null +++ b/node_modules/rxjs/src/operator/exhaustMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/exhaustMap'; diff --git a/node_modules/rxjs/src/operator/expand.ts b/node_modules/rxjs/src/operator/expand.ts new file mode 100644 index 00000000..11df7016 --- /dev/null +++ b/node_modules/rxjs/src/operator/expand.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/expand'; diff --git a/node_modules/rxjs/src/operator/filter.ts b/node_modules/rxjs/src/operator/filter.ts new file mode 100644 index 00000000..ccc2f245 --- /dev/null +++ b/node_modules/rxjs/src/operator/filter.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/filter'; diff --git a/node_modules/rxjs/src/operator/finally.ts b/node_modules/rxjs/src/operator/finally.ts new file mode 100644 index 00000000..a21b3e1b --- /dev/null +++ b/node_modules/rxjs/src/operator/finally.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/finally'; diff --git a/node_modules/rxjs/src/operator/find.ts b/node_modules/rxjs/src/operator/find.ts new file mode 100644 index 00000000..face44bc --- /dev/null +++ b/node_modules/rxjs/src/operator/find.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/find'; diff --git a/node_modules/rxjs/src/operator/findIndex.ts b/node_modules/rxjs/src/operator/findIndex.ts new file mode 100644 index 00000000..dd0297a0 --- /dev/null +++ b/node_modules/rxjs/src/operator/findIndex.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/findIndex'; diff --git a/node_modules/rxjs/src/operator/first.ts b/node_modules/rxjs/src/operator/first.ts new file mode 100644 index 00000000..86843ed3 --- /dev/null +++ b/node_modules/rxjs/src/operator/first.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/first'; diff --git a/node_modules/rxjs/src/operator/groupBy.ts b/node_modules/rxjs/src/operator/groupBy.ts new file mode 100644 index 00000000..648fac91 --- /dev/null +++ b/node_modules/rxjs/src/operator/groupBy.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/groupBy'; diff --git a/node_modules/rxjs/src/operator/ignoreElements.ts b/node_modules/rxjs/src/operator/ignoreElements.ts new file mode 100644 index 00000000..b9c3eef0 --- /dev/null +++ b/node_modules/rxjs/src/operator/ignoreElements.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/ignoreElements'; diff --git a/node_modules/rxjs/src/operator/isEmpty.ts b/node_modules/rxjs/src/operator/isEmpty.ts new file mode 100644 index 00000000..03da532a --- /dev/null +++ b/node_modules/rxjs/src/operator/isEmpty.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/isEmpty'; diff --git a/node_modules/rxjs/src/operator/last.ts b/node_modules/rxjs/src/operator/last.ts new file mode 100644 index 00000000..2d42da81 --- /dev/null +++ b/node_modules/rxjs/src/operator/last.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/last'; diff --git a/node_modules/rxjs/src/operator/let.ts b/node_modules/rxjs/src/operator/let.ts new file mode 100644 index 00000000..0f250114 --- /dev/null +++ b/node_modules/rxjs/src/operator/let.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/let'; diff --git a/node_modules/rxjs/src/operator/map.ts b/node_modules/rxjs/src/operator/map.ts new file mode 100644 index 00000000..00af2a0b --- /dev/null +++ b/node_modules/rxjs/src/operator/map.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/map'; diff --git a/node_modules/rxjs/src/operator/mapTo.ts b/node_modules/rxjs/src/operator/mapTo.ts new file mode 100644 index 00000000..ad512743 --- /dev/null +++ b/node_modules/rxjs/src/operator/mapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mapTo'; diff --git a/node_modules/rxjs/src/operator/materialize.ts b/node_modules/rxjs/src/operator/materialize.ts new file mode 100644 index 00000000..57d501d6 --- /dev/null +++ b/node_modules/rxjs/src/operator/materialize.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/materialize'; diff --git a/node_modules/rxjs/src/operator/max.ts b/node_modules/rxjs/src/operator/max.ts new file mode 100644 index 00000000..e7efcd7d --- /dev/null +++ b/node_modules/rxjs/src/operator/max.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/max'; diff --git a/node_modules/rxjs/src/operator/merge.ts b/node_modules/rxjs/src/operator/merge.ts new file mode 100644 index 00000000..039a0d2f --- /dev/null +++ b/node_modules/rxjs/src/operator/merge.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/merge'; diff --git a/node_modules/rxjs/src/operator/mergeAll.ts b/node_modules/rxjs/src/operator/mergeAll.ts new file mode 100644 index 00000000..1527cc9e --- /dev/null +++ b/node_modules/rxjs/src/operator/mergeAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeAll'; diff --git a/node_modules/rxjs/src/operator/mergeMap.ts b/node_modules/rxjs/src/operator/mergeMap.ts new file mode 100644 index 00000000..d091762a --- /dev/null +++ b/node_modules/rxjs/src/operator/mergeMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeMap'; diff --git a/node_modules/rxjs/src/operator/mergeMapTo.ts b/node_modules/rxjs/src/operator/mergeMapTo.ts new file mode 100644 index 00000000..2503ab43 --- /dev/null +++ b/node_modules/rxjs/src/operator/mergeMapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeMapTo'; diff --git a/node_modules/rxjs/src/operator/mergeScan.ts b/node_modules/rxjs/src/operator/mergeScan.ts new file mode 100644 index 00000000..f8fd1be4 --- /dev/null +++ b/node_modules/rxjs/src/operator/mergeScan.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/mergeScan'; diff --git a/node_modules/rxjs/src/operator/min.ts b/node_modules/rxjs/src/operator/min.ts new file mode 100644 index 00000000..b0826668 --- /dev/null +++ b/node_modules/rxjs/src/operator/min.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/min'; diff --git a/node_modules/rxjs/src/operator/multicast.ts b/node_modules/rxjs/src/operator/multicast.ts new file mode 100644 index 00000000..16822ab8 --- /dev/null +++ b/node_modules/rxjs/src/operator/multicast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/multicast'; diff --git a/node_modules/rxjs/src/operator/observeOn.ts b/node_modules/rxjs/src/operator/observeOn.ts new file mode 100644 index 00000000..49d52cf5 --- /dev/null +++ b/node_modules/rxjs/src/operator/observeOn.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/observeOn'; diff --git a/node_modules/rxjs/src/operator/onErrorResumeNext.ts b/node_modules/rxjs/src/operator/onErrorResumeNext.ts new file mode 100644 index 00000000..dee5c58e --- /dev/null +++ b/node_modules/rxjs/src/operator/onErrorResumeNext.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/onErrorResumeNext'; diff --git a/node_modules/rxjs/src/operator/pairwise.ts b/node_modules/rxjs/src/operator/pairwise.ts new file mode 100644 index 00000000..2db66e09 --- /dev/null +++ b/node_modules/rxjs/src/operator/pairwise.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/pairwise'; diff --git a/node_modules/rxjs/src/operator/partition.ts b/node_modules/rxjs/src/operator/partition.ts new file mode 100644 index 00000000..ffb693b8 --- /dev/null +++ b/node_modules/rxjs/src/operator/partition.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/partition'; diff --git a/node_modules/rxjs/src/operator/pluck.ts b/node_modules/rxjs/src/operator/pluck.ts new file mode 100644 index 00000000..cd308f26 --- /dev/null +++ b/node_modules/rxjs/src/operator/pluck.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/pluck'; diff --git a/node_modules/rxjs/src/operator/publish.ts b/node_modules/rxjs/src/operator/publish.ts new file mode 100644 index 00000000..44f7a522 --- /dev/null +++ b/node_modules/rxjs/src/operator/publish.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publish'; diff --git a/node_modules/rxjs/src/operator/publishBehavior.ts b/node_modules/rxjs/src/operator/publishBehavior.ts new file mode 100644 index 00000000..ae6df513 --- /dev/null +++ b/node_modules/rxjs/src/operator/publishBehavior.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publishBehavior'; diff --git a/node_modules/rxjs/src/operator/publishLast.ts b/node_modules/rxjs/src/operator/publishLast.ts new file mode 100644 index 00000000..b8b857f6 --- /dev/null +++ b/node_modules/rxjs/src/operator/publishLast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publishLast'; diff --git a/node_modules/rxjs/src/operator/publishReplay.ts b/node_modules/rxjs/src/operator/publishReplay.ts new file mode 100644 index 00000000..d515665a --- /dev/null +++ b/node_modules/rxjs/src/operator/publishReplay.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/publishReplay'; diff --git a/node_modules/rxjs/src/operator/race.ts b/node_modules/rxjs/src/operator/race.ts new file mode 100644 index 00000000..13712302 --- /dev/null +++ b/node_modules/rxjs/src/operator/race.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/race'; diff --git a/node_modules/rxjs/src/operator/reduce.ts b/node_modules/rxjs/src/operator/reduce.ts new file mode 100644 index 00000000..3051a597 --- /dev/null +++ b/node_modules/rxjs/src/operator/reduce.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/reduce'; diff --git a/node_modules/rxjs/src/operator/repeat.ts b/node_modules/rxjs/src/operator/repeat.ts new file mode 100644 index 00000000..3cf8344c --- /dev/null +++ b/node_modules/rxjs/src/operator/repeat.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/repeat'; diff --git a/node_modules/rxjs/src/operator/repeatWhen.ts b/node_modules/rxjs/src/operator/repeatWhen.ts new file mode 100644 index 00000000..c8ab4033 --- /dev/null +++ b/node_modules/rxjs/src/operator/repeatWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/repeatWhen'; diff --git a/node_modules/rxjs/src/operator/retry.ts b/node_modules/rxjs/src/operator/retry.ts new file mode 100644 index 00000000..ea769327 --- /dev/null +++ b/node_modules/rxjs/src/operator/retry.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/retry'; diff --git a/node_modules/rxjs/src/operator/retryWhen.ts b/node_modules/rxjs/src/operator/retryWhen.ts new file mode 100644 index 00000000..c1c4a4d1 --- /dev/null +++ b/node_modules/rxjs/src/operator/retryWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/retryWhen'; diff --git a/node_modules/rxjs/src/operator/sample.ts b/node_modules/rxjs/src/operator/sample.ts new file mode 100644 index 00000000..50c44856 --- /dev/null +++ b/node_modules/rxjs/src/operator/sample.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/sample'; diff --git a/node_modules/rxjs/src/operator/sampleTime.ts b/node_modules/rxjs/src/operator/sampleTime.ts new file mode 100644 index 00000000..6a88266e --- /dev/null +++ b/node_modules/rxjs/src/operator/sampleTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/sampleTime'; diff --git a/node_modules/rxjs/src/operator/scan.ts b/node_modules/rxjs/src/operator/scan.ts new file mode 100644 index 00000000..07d5f63a --- /dev/null +++ b/node_modules/rxjs/src/operator/scan.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/scan'; diff --git a/node_modules/rxjs/src/operator/sequenceEqual.ts b/node_modules/rxjs/src/operator/sequenceEqual.ts new file mode 100644 index 00000000..8a324c28 --- /dev/null +++ b/node_modules/rxjs/src/operator/sequenceEqual.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/sequenceEqual'; diff --git a/node_modules/rxjs/src/operator/share.ts b/node_modules/rxjs/src/operator/share.ts new file mode 100644 index 00000000..7dcde394 --- /dev/null +++ b/node_modules/rxjs/src/operator/share.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/share'; diff --git a/node_modules/rxjs/src/operator/shareReplay.ts b/node_modules/rxjs/src/operator/shareReplay.ts new file mode 100644 index 00000000..78890293 --- /dev/null +++ b/node_modules/rxjs/src/operator/shareReplay.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/shareReplay'; diff --git a/node_modules/rxjs/src/operator/single.ts b/node_modules/rxjs/src/operator/single.ts new file mode 100644 index 00000000..0b289da1 --- /dev/null +++ b/node_modules/rxjs/src/operator/single.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/single'; diff --git a/node_modules/rxjs/src/operator/skip.ts b/node_modules/rxjs/src/operator/skip.ts new file mode 100644 index 00000000..830890c2 --- /dev/null +++ b/node_modules/rxjs/src/operator/skip.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skip'; diff --git a/node_modules/rxjs/src/operator/skipLast.ts b/node_modules/rxjs/src/operator/skipLast.ts new file mode 100644 index 00000000..504d7d70 --- /dev/null +++ b/node_modules/rxjs/src/operator/skipLast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skipLast'; diff --git a/node_modules/rxjs/src/operator/skipUntil.ts b/node_modules/rxjs/src/operator/skipUntil.ts new file mode 100644 index 00000000..c942abc3 --- /dev/null +++ b/node_modules/rxjs/src/operator/skipUntil.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skipUntil'; diff --git a/node_modules/rxjs/src/operator/skipWhile.ts b/node_modules/rxjs/src/operator/skipWhile.ts new file mode 100644 index 00000000..1ec1baff --- /dev/null +++ b/node_modules/rxjs/src/operator/skipWhile.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/skipWhile'; diff --git a/node_modules/rxjs/src/operator/startWith.ts b/node_modules/rxjs/src/operator/startWith.ts new file mode 100644 index 00000000..88b22fb8 --- /dev/null +++ b/node_modules/rxjs/src/operator/startWith.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/startWith'; diff --git a/node_modules/rxjs/src/operator/subscribeOn.ts b/node_modules/rxjs/src/operator/subscribeOn.ts new file mode 100644 index 00000000..d5fe5c3b --- /dev/null +++ b/node_modules/rxjs/src/operator/subscribeOn.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/subscribeOn'; diff --git a/node_modules/rxjs/src/operator/switch.ts b/node_modules/rxjs/src/operator/switch.ts new file mode 100644 index 00000000..2cbae8fa --- /dev/null +++ b/node_modules/rxjs/src/operator/switch.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/switch'; diff --git a/node_modules/rxjs/src/operator/switchMap.ts b/node_modules/rxjs/src/operator/switchMap.ts new file mode 100644 index 00000000..cd5ce95f --- /dev/null +++ b/node_modules/rxjs/src/operator/switchMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/switchMap'; diff --git a/node_modules/rxjs/src/operator/switchMapTo.ts b/node_modules/rxjs/src/operator/switchMapTo.ts new file mode 100644 index 00000000..bd59ce37 --- /dev/null +++ b/node_modules/rxjs/src/operator/switchMapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/switchMapTo'; diff --git a/node_modules/rxjs/src/operator/take.ts b/node_modules/rxjs/src/operator/take.ts new file mode 100644 index 00000000..c915fc3c --- /dev/null +++ b/node_modules/rxjs/src/operator/take.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/take'; diff --git a/node_modules/rxjs/src/operator/takeLast.ts b/node_modules/rxjs/src/operator/takeLast.ts new file mode 100644 index 00000000..78509e54 --- /dev/null +++ b/node_modules/rxjs/src/operator/takeLast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/takeLast'; diff --git a/node_modules/rxjs/src/operator/takeUntil.ts b/node_modules/rxjs/src/operator/takeUntil.ts new file mode 100644 index 00000000..38b927b5 --- /dev/null +++ b/node_modules/rxjs/src/operator/takeUntil.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/takeUntil'; diff --git a/node_modules/rxjs/src/operator/takeWhile.ts b/node_modules/rxjs/src/operator/takeWhile.ts new file mode 100644 index 00000000..b1772bd8 --- /dev/null +++ b/node_modules/rxjs/src/operator/takeWhile.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/takeWhile'; diff --git a/node_modules/rxjs/src/operator/throttle.ts b/node_modules/rxjs/src/operator/throttle.ts new file mode 100644 index 00000000..9c2effcb --- /dev/null +++ b/node_modules/rxjs/src/operator/throttle.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/throttle'; diff --git a/node_modules/rxjs/src/operator/throttleTime.ts b/node_modules/rxjs/src/operator/throttleTime.ts new file mode 100644 index 00000000..7385eb08 --- /dev/null +++ b/node_modules/rxjs/src/operator/throttleTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/throttleTime'; diff --git a/node_modules/rxjs/src/operator/timeInterval.ts b/node_modules/rxjs/src/operator/timeInterval.ts new file mode 100644 index 00000000..5f5283bb --- /dev/null +++ b/node_modules/rxjs/src/operator/timeInterval.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timeInterval'; diff --git a/node_modules/rxjs/src/operator/timeout.ts b/node_modules/rxjs/src/operator/timeout.ts new file mode 100644 index 00000000..56e0cc33 --- /dev/null +++ b/node_modules/rxjs/src/operator/timeout.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timeout'; diff --git a/node_modules/rxjs/src/operator/timeoutWith.ts b/node_modules/rxjs/src/operator/timeoutWith.ts new file mode 100644 index 00000000..e746c05b --- /dev/null +++ b/node_modules/rxjs/src/operator/timeoutWith.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timeoutWith'; diff --git a/node_modules/rxjs/src/operator/timestamp.ts b/node_modules/rxjs/src/operator/timestamp.ts new file mode 100644 index 00000000..77a94e82 --- /dev/null +++ b/node_modules/rxjs/src/operator/timestamp.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/timestamp'; diff --git a/node_modules/rxjs/src/operator/toArray.ts b/node_modules/rxjs/src/operator/toArray.ts new file mode 100644 index 00000000..57c8ee17 --- /dev/null +++ b/node_modules/rxjs/src/operator/toArray.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/toArray'; diff --git a/node_modules/rxjs/src/operator/toPromise.ts b/node_modules/rxjs/src/operator/toPromise.ts new file mode 100644 index 00000000..b9f8cae2 --- /dev/null +++ b/node_modules/rxjs/src/operator/toPromise.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/toPromise'; diff --git a/node_modules/rxjs/src/operator/window.ts b/node_modules/rxjs/src/operator/window.ts new file mode 100644 index 00000000..937f1746 --- /dev/null +++ b/node_modules/rxjs/src/operator/window.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/window'; diff --git a/node_modules/rxjs/src/operator/windowCount.ts b/node_modules/rxjs/src/operator/windowCount.ts new file mode 100644 index 00000000..87392c7c --- /dev/null +++ b/node_modules/rxjs/src/operator/windowCount.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowCount'; diff --git a/node_modules/rxjs/src/operator/windowTime.ts b/node_modules/rxjs/src/operator/windowTime.ts new file mode 100644 index 00000000..52798df4 --- /dev/null +++ b/node_modules/rxjs/src/operator/windowTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowTime'; diff --git a/node_modules/rxjs/src/operator/windowToggle.ts b/node_modules/rxjs/src/operator/windowToggle.ts new file mode 100644 index 00000000..c2d8b4e2 --- /dev/null +++ b/node_modules/rxjs/src/operator/windowToggle.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowToggle'; diff --git a/node_modules/rxjs/src/operator/windowWhen.ts b/node_modules/rxjs/src/operator/windowWhen.ts new file mode 100644 index 00000000..1d4e2efa --- /dev/null +++ b/node_modules/rxjs/src/operator/windowWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/windowWhen'; diff --git a/node_modules/rxjs/src/operator/withLatestFrom.ts b/node_modules/rxjs/src/operator/withLatestFrom.ts new file mode 100644 index 00000000..b31197a3 --- /dev/null +++ b/node_modules/rxjs/src/operator/withLatestFrom.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/withLatestFrom'; diff --git a/node_modules/rxjs/src/operator/zip.ts b/node_modules/rxjs/src/operator/zip.ts new file mode 100644 index 00000000..25eea262 --- /dev/null +++ b/node_modules/rxjs/src/operator/zip.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/zip'; diff --git a/node_modules/rxjs/src/operator/zipAll.ts b/node_modules/rxjs/src/operator/zipAll.ts new file mode 100644 index 00000000..1098d9de --- /dev/null +++ b/node_modules/rxjs/src/operator/zipAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operator/zipAll'; diff --git a/node_modules/rxjs/src/operators/audit.ts b/node_modules/rxjs/src/operators/audit.ts new file mode 100644 index 00000000..0e5b597d --- /dev/null +++ b/node_modules/rxjs/src/operators/audit.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/audit'; diff --git a/node_modules/rxjs/src/operators/auditTime.ts b/node_modules/rxjs/src/operators/auditTime.ts new file mode 100644 index 00000000..72a4c000 --- /dev/null +++ b/node_modules/rxjs/src/operators/auditTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/auditTime'; diff --git a/node_modules/rxjs/src/operators/buffer.ts b/node_modules/rxjs/src/operators/buffer.ts new file mode 100644 index 00000000..7007461e --- /dev/null +++ b/node_modules/rxjs/src/operators/buffer.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/buffer'; diff --git a/node_modules/rxjs/src/operators/bufferCount.ts b/node_modules/rxjs/src/operators/bufferCount.ts new file mode 100644 index 00000000..767b33c0 --- /dev/null +++ b/node_modules/rxjs/src/operators/bufferCount.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferCount'; diff --git a/node_modules/rxjs/src/operators/bufferTime.ts b/node_modules/rxjs/src/operators/bufferTime.ts new file mode 100644 index 00000000..085acfb9 --- /dev/null +++ b/node_modules/rxjs/src/operators/bufferTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferTime'; diff --git a/node_modules/rxjs/src/operators/bufferToggle.ts b/node_modules/rxjs/src/operators/bufferToggle.ts new file mode 100644 index 00000000..f554f731 --- /dev/null +++ b/node_modules/rxjs/src/operators/bufferToggle.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferToggle'; diff --git a/node_modules/rxjs/src/operators/bufferWhen.ts b/node_modules/rxjs/src/operators/bufferWhen.ts new file mode 100644 index 00000000..7e0b79f1 --- /dev/null +++ b/node_modules/rxjs/src/operators/bufferWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/bufferWhen'; diff --git a/node_modules/rxjs/src/operators/catchError.ts b/node_modules/rxjs/src/operators/catchError.ts new file mode 100644 index 00000000..4ea93514 --- /dev/null +++ b/node_modules/rxjs/src/operators/catchError.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/catchError'; diff --git a/node_modules/rxjs/src/operators/combineAll.ts b/node_modules/rxjs/src/operators/combineAll.ts new file mode 100644 index 00000000..13f2758a --- /dev/null +++ b/node_modules/rxjs/src/operators/combineAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/combineAll'; diff --git a/node_modules/rxjs/src/operators/combineLatest.ts b/node_modules/rxjs/src/operators/combineLatest.ts new file mode 100644 index 00000000..cefd4d07 --- /dev/null +++ b/node_modules/rxjs/src/operators/combineLatest.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/combineLatest'; diff --git a/node_modules/rxjs/src/operators/concat.ts b/node_modules/rxjs/src/operators/concat.ts new file mode 100644 index 00000000..d2b70509 --- /dev/null +++ b/node_modules/rxjs/src/operators/concat.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concat'; \ No newline at end of file diff --git a/node_modules/rxjs/src/operators/concatAll.ts b/node_modules/rxjs/src/operators/concatAll.ts new file mode 100644 index 00000000..4e90bf3a --- /dev/null +++ b/node_modules/rxjs/src/operators/concatAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concatAll'; diff --git a/node_modules/rxjs/src/operators/concatMap.ts b/node_modules/rxjs/src/operators/concatMap.ts new file mode 100644 index 00000000..fb26bc0c --- /dev/null +++ b/node_modules/rxjs/src/operators/concatMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concatMap'; diff --git a/node_modules/rxjs/src/operators/concatMapTo.ts b/node_modules/rxjs/src/operators/concatMapTo.ts new file mode 100644 index 00000000..f5aef409 --- /dev/null +++ b/node_modules/rxjs/src/operators/concatMapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/concatMapTo'; diff --git a/node_modules/rxjs/src/operators/count.ts b/node_modules/rxjs/src/operators/count.ts new file mode 100644 index 00000000..db7cfe3d --- /dev/null +++ b/node_modules/rxjs/src/operators/count.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/count'; diff --git a/node_modules/rxjs/src/operators/debounce.ts b/node_modules/rxjs/src/operators/debounce.ts new file mode 100644 index 00000000..ed62cb8b --- /dev/null +++ b/node_modules/rxjs/src/operators/debounce.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/debounce'; diff --git a/node_modules/rxjs/src/operators/debounceTime.ts b/node_modules/rxjs/src/operators/debounceTime.ts new file mode 100644 index 00000000..fb73d334 --- /dev/null +++ b/node_modules/rxjs/src/operators/debounceTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/debounceTime'; diff --git a/node_modules/rxjs/src/operators/defaultIfEmpty.ts b/node_modules/rxjs/src/operators/defaultIfEmpty.ts new file mode 100644 index 00000000..04b9e612 --- /dev/null +++ b/node_modules/rxjs/src/operators/defaultIfEmpty.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/defaultIfEmpty'; diff --git a/node_modules/rxjs/src/operators/delay.ts b/node_modules/rxjs/src/operators/delay.ts new file mode 100644 index 00000000..d34f33d2 --- /dev/null +++ b/node_modules/rxjs/src/operators/delay.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/delay'; diff --git a/node_modules/rxjs/src/operators/delayWhen.ts b/node_modules/rxjs/src/operators/delayWhen.ts new file mode 100644 index 00000000..4de14529 --- /dev/null +++ b/node_modules/rxjs/src/operators/delayWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/delayWhen'; diff --git a/node_modules/rxjs/src/operators/dematerialize.ts b/node_modules/rxjs/src/operators/dematerialize.ts new file mode 100644 index 00000000..a689bf08 --- /dev/null +++ b/node_modules/rxjs/src/operators/dematerialize.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/dematerialize'; diff --git a/node_modules/rxjs/src/operators/distinct.ts b/node_modules/rxjs/src/operators/distinct.ts new file mode 100644 index 00000000..9d8288a4 --- /dev/null +++ b/node_modules/rxjs/src/operators/distinct.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/distinct'; diff --git a/node_modules/rxjs/src/operators/distinctUntilChanged.ts b/node_modules/rxjs/src/operators/distinctUntilChanged.ts new file mode 100644 index 00000000..1fc4eda8 --- /dev/null +++ b/node_modules/rxjs/src/operators/distinctUntilChanged.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/distinctUntilChanged'; diff --git a/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts b/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts new file mode 100644 index 00000000..d8fa76ae --- /dev/null +++ b/node_modules/rxjs/src/operators/distinctUntilKeyChanged.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/distinctUntilKeyChanged'; diff --git a/node_modules/rxjs/src/operators/elementAt.ts b/node_modules/rxjs/src/operators/elementAt.ts new file mode 100644 index 00000000..4f5d5b37 --- /dev/null +++ b/node_modules/rxjs/src/operators/elementAt.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/elementAt'; diff --git a/node_modules/rxjs/src/operators/every.ts b/node_modules/rxjs/src/operators/every.ts new file mode 100644 index 00000000..15b9f46f --- /dev/null +++ b/node_modules/rxjs/src/operators/every.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/every'; diff --git a/node_modules/rxjs/src/operators/exhaust.ts b/node_modules/rxjs/src/operators/exhaust.ts new file mode 100644 index 00000000..19a3637c --- /dev/null +++ b/node_modules/rxjs/src/operators/exhaust.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/exhaust'; diff --git a/node_modules/rxjs/src/operators/exhaustMap.ts b/node_modules/rxjs/src/operators/exhaustMap.ts new file mode 100644 index 00000000..cf4ae30b --- /dev/null +++ b/node_modules/rxjs/src/operators/exhaustMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/exhaustMap'; diff --git a/node_modules/rxjs/src/operators/expand.ts b/node_modules/rxjs/src/operators/expand.ts new file mode 100644 index 00000000..0cef04ce --- /dev/null +++ b/node_modules/rxjs/src/operators/expand.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/expand'; diff --git a/node_modules/rxjs/src/operators/filter.ts b/node_modules/rxjs/src/operators/filter.ts new file mode 100644 index 00000000..23b8666d --- /dev/null +++ b/node_modules/rxjs/src/operators/filter.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/filter'; diff --git a/node_modules/rxjs/src/operators/finalize.ts b/node_modules/rxjs/src/operators/finalize.ts new file mode 100644 index 00000000..9c32dfcf --- /dev/null +++ b/node_modules/rxjs/src/operators/finalize.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/finalize'; diff --git a/node_modules/rxjs/src/operators/find.ts b/node_modules/rxjs/src/operators/find.ts new file mode 100644 index 00000000..98a272d7 --- /dev/null +++ b/node_modules/rxjs/src/operators/find.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/find'; diff --git a/node_modules/rxjs/src/operators/findIndex.ts b/node_modules/rxjs/src/operators/findIndex.ts new file mode 100644 index 00000000..167707fb --- /dev/null +++ b/node_modules/rxjs/src/operators/findIndex.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/findIndex'; diff --git a/node_modules/rxjs/src/operators/first.ts b/node_modules/rxjs/src/operators/first.ts new file mode 100644 index 00000000..c0266e31 --- /dev/null +++ b/node_modules/rxjs/src/operators/first.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/first'; diff --git a/node_modules/rxjs/src/operators/groupBy.ts b/node_modules/rxjs/src/operators/groupBy.ts new file mode 100644 index 00000000..52c6f584 --- /dev/null +++ b/node_modules/rxjs/src/operators/groupBy.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/groupBy'; diff --git a/node_modules/rxjs/src/operators/ignoreElements.ts b/node_modules/rxjs/src/operators/ignoreElements.ts new file mode 100644 index 00000000..590bf883 --- /dev/null +++ b/node_modules/rxjs/src/operators/ignoreElements.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/ignoreElements'; diff --git a/node_modules/rxjs/src/operators/index.ts b/node_modules/rxjs/src/operators/index.ts new file mode 100644 index 00000000..276cb8eb --- /dev/null +++ b/node_modules/rxjs/src/operators/index.ts @@ -0,0 +1,105 @@ + +/* Operator exports */ +export { audit } from '../internal/operators/audit'; +export { auditTime } from '../internal/operators/auditTime'; +export { buffer } from '../internal/operators/buffer'; +export { bufferCount } from '../internal/operators/bufferCount'; +export { bufferTime } from '../internal/operators/bufferTime'; +export { bufferToggle } from '../internal/operators/bufferToggle'; +export { bufferWhen } from '../internal/operators/bufferWhen'; +export { catchError } from '../internal/operators/catchError'; +export { combineAll } from '../internal/operators/combineAll'; +export { combineLatest } from '../internal/operators/combineLatest'; +export { concat } from '../internal/operators/concat'; +export { concatAll } from '../internal/operators/concatAll'; +export { concatMap } from '../internal/operators/concatMap'; +export { concatMapTo } from '../internal/operators/concatMapTo'; +export { count } from '../internal/operators/count'; +export { debounce } from '../internal/operators/debounce'; +export { debounceTime } from '../internal/operators/debounceTime'; +export { defaultIfEmpty } from '../internal/operators/defaultIfEmpty'; +export { delay } from '../internal/operators/delay'; +export { delayWhen } from '../internal/operators/delayWhen'; +export { dematerialize } from '../internal/operators/dematerialize'; +export { distinct } from '../internal/operators/distinct'; +export { distinctUntilChanged } from '../internal/operators/distinctUntilChanged'; +export { distinctUntilKeyChanged } from '../internal/operators/distinctUntilKeyChanged'; +export { elementAt } from '../internal/operators/elementAt'; +export { endWith } from '../internal/operators/endWith'; +export { every } from '../internal/operators/every'; +export { exhaust } from '../internal/operators/exhaust'; +export { exhaustMap } from '../internal/operators/exhaustMap'; +export { expand } from '../internal/operators/expand'; +export { filter } from '../internal/operators/filter'; +export { finalize } from '../internal/operators/finalize'; +export { find } from '../internal/operators/find'; +export { findIndex } from '../internal/operators/findIndex'; +export { first } from '../internal/operators/first'; +export { groupBy } from '../internal/operators/groupBy'; +export { ignoreElements } from '../internal/operators/ignoreElements'; +export { isEmpty } from '../internal/operators/isEmpty'; +export { last } from '../internal/operators/last'; +export { map } from '../internal/operators/map'; +export { mapTo } from '../internal/operators/mapTo'; +export { materialize } from '../internal/operators/materialize'; +export { max } from '../internal/operators/max'; +export { merge } from '../internal/operators/merge'; +export { mergeAll } from '../internal/operators/mergeAll'; +export { mergeMap, flatMap } from '../internal/operators/mergeMap'; +export { mergeMapTo } from '../internal/operators/mergeMapTo'; +export { mergeScan } from '../internal/operators/mergeScan'; +export { min } from '../internal/operators/min'; +export { multicast } from '../internal/operators/multicast'; +export { observeOn } from '../internal/operators/observeOn'; +export { onErrorResumeNext } from '../internal/operators/onErrorResumeNext'; +export { pairwise } from '../internal/operators/pairwise'; +export { partition } from '../internal/operators/partition'; +export { pluck } from '../internal/operators/pluck'; +export { publish } from '../internal/operators/publish'; +export { publishBehavior } from '../internal/operators/publishBehavior'; +export { publishLast } from '../internal/operators/publishLast'; +export { publishReplay } from '../internal/operators/publishReplay'; +export { race } from '../internal/operators/race'; +export { reduce } from '../internal/operators/reduce'; +export { repeat } from '../internal/operators/repeat'; +export { repeatWhen } from '../internal/operators/repeatWhen'; +export { retry } from '../internal/operators/retry'; +export { retryWhen } from '../internal/operators/retryWhen'; +export { refCount } from '../internal/operators/refCount'; +export { sample } from '../internal/operators/sample'; +export { sampleTime } from '../internal/operators/sampleTime'; +export { scan } from '../internal/operators/scan'; +export { sequenceEqual } from '../internal/operators/sequenceEqual'; +export { share } from '../internal/operators/share'; +export { shareReplay } from '../internal/operators/shareReplay'; +export { single } from '../internal/operators/single'; +export { skip } from '../internal/operators/skip'; +export { skipLast } from '../internal/operators/skipLast'; +export { skipUntil } from '../internal/operators/skipUntil'; +export { skipWhile } from '../internal/operators/skipWhile'; +export { startWith } from '../internal/operators/startWith'; +export { subscribeOn } from '../internal/operators/subscribeOn'; +export { switchAll } from '../internal/operators/switchAll'; +export { switchMap } from '../internal/operators/switchMap'; +export { switchMapTo } from '../internal/operators/switchMapTo'; +export { take } from '../internal/operators/take'; +export { takeLast } from '../internal/operators/takeLast'; +export { takeUntil } from '../internal/operators/takeUntil'; +export { takeWhile } from '../internal/operators/takeWhile'; +export { tap } from '../internal/operators/tap'; +export { throttle } from '../internal/operators/throttle'; +export { throttleTime } from '../internal/operators/throttleTime'; +export { throwIfEmpty } from '../internal/operators/throwIfEmpty'; +export { timeInterval } from '../internal/operators/timeInterval'; +export { timeout } from '../internal/operators/timeout'; +export { timeoutWith } from '../internal/operators/timeoutWith'; +export { timestamp } from '../internal/operators/timestamp'; +export { toArray } from '../internal/operators/toArray'; +export { window } from '../internal/operators/window'; +export { windowCount } from '../internal/operators/windowCount'; +export { windowTime } from '../internal/operators/windowTime'; +export { windowToggle } from '../internal/operators/windowToggle'; +export { windowWhen } from '../internal/operators/windowWhen'; +export { withLatestFrom } from '../internal/operators/withLatestFrom'; +export { zip } from '../internal/operators/zip'; +export { zipAll } from '../internal/operators/zipAll'; diff --git a/node_modules/rxjs/src/operators/isEmpty.ts b/node_modules/rxjs/src/operators/isEmpty.ts new file mode 100644 index 00000000..fd1d1afc --- /dev/null +++ b/node_modules/rxjs/src/operators/isEmpty.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/isEmpty'; diff --git a/node_modules/rxjs/src/operators/last.ts b/node_modules/rxjs/src/operators/last.ts new file mode 100644 index 00000000..c8464bf4 --- /dev/null +++ b/node_modules/rxjs/src/operators/last.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/last'; diff --git a/node_modules/rxjs/src/operators/map.ts b/node_modules/rxjs/src/operators/map.ts new file mode 100644 index 00000000..7e8cb1f8 --- /dev/null +++ b/node_modules/rxjs/src/operators/map.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/map'; diff --git a/node_modules/rxjs/src/operators/mapTo.ts b/node_modules/rxjs/src/operators/mapTo.ts new file mode 100644 index 00000000..72b4d9e5 --- /dev/null +++ b/node_modules/rxjs/src/operators/mapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mapTo'; diff --git a/node_modules/rxjs/src/operators/materialize.ts b/node_modules/rxjs/src/operators/materialize.ts new file mode 100644 index 00000000..e050f1e7 --- /dev/null +++ b/node_modules/rxjs/src/operators/materialize.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/materialize'; diff --git a/node_modules/rxjs/src/operators/max.ts b/node_modules/rxjs/src/operators/max.ts new file mode 100644 index 00000000..044da470 --- /dev/null +++ b/node_modules/rxjs/src/operators/max.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/max'; diff --git a/node_modules/rxjs/src/operators/merge.ts b/node_modules/rxjs/src/operators/merge.ts new file mode 100644 index 00000000..7d9f674d --- /dev/null +++ b/node_modules/rxjs/src/operators/merge.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/merge'; \ No newline at end of file diff --git a/node_modules/rxjs/src/operators/mergeAll.ts b/node_modules/rxjs/src/operators/mergeAll.ts new file mode 100644 index 00000000..b5c5b38f --- /dev/null +++ b/node_modules/rxjs/src/operators/mergeAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeAll'; diff --git a/node_modules/rxjs/src/operators/mergeMap.ts b/node_modules/rxjs/src/operators/mergeMap.ts new file mode 100644 index 00000000..af5c7c15 --- /dev/null +++ b/node_modules/rxjs/src/operators/mergeMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeMap'; diff --git a/node_modules/rxjs/src/operators/mergeMapTo.ts b/node_modules/rxjs/src/operators/mergeMapTo.ts new file mode 100644 index 00000000..67b6cb7b --- /dev/null +++ b/node_modules/rxjs/src/operators/mergeMapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeMapTo'; diff --git a/node_modules/rxjs/src/operators/mergeScan.ts b/node_modules/rxjs/src/operators/mergeScan.ts new file mode 100644 index 00000000..ef73adcb --- /dev/null +++ b/node_modules/rxjs/src/operators/mergeScan.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/mergeScan'; diff --git a/node_modules/rxjs/src/operators/min.ts b/node_modules/rxjs/src/operators/min.ts new file mode 100644 index 00000000..3706e3fc --- /dev/null +++ b/node_modules/rxjs/src/operators/min.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/min'; diff --git a/node_modules/rxjs/src/operators/multicast.ts b/node_modules/rxjs/src/operators/multicast.ts new file mode 100644 index 00000000..94702843 --- /dev/null +++ b/node_modules/rxjs/src/operators/multicast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/multicast'; diff --git a/node_modules/rxjs/src/operators/observeOn.ts b/node_modules/rxjs/src/operators/observeOn.ts new file mode 100644 index 00000000..0f6d4140 --- /dev/null +++ b/node_modules/rxjs/src/operators/observeOn.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/observeOn'; diff --git a/node_modules/rxjs/src/operators/onErrorResumeNext.ts b/node_modules/rxjs/src/operators/onErrorResumeNext.ts new file mode 100644 index 00000000..0b19815c --- /dev/null +++ b/node_modules/rxjs/src/operators/onErrorResumeNext.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/onErrorResumeNext'; diff --git a/node_modules/rxjs/src/operators/package.json b/node_modules/rxjs/src/operators/package.json new file mode 100644 index 00000000..eefac38c --- /dev/null +++ b/node_modules/rxjs/src/operators/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/operators", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/operators/index.js", + "es2015": "../_esm2015/operators/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/src/operators/pairwise.ts b/node_modules/rxjs/src/operators/pairwise.ts new file mode 100644 index 00000000..f83f7320 --- /dev/null +++ b/node_modules/rxjs/src/operators/pairwise.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/pairwise'; diff --git a/node_modules/rxjs/src/operators/partition.ts b/node_modules/rxjs/src/operators/partition.ts new file mode 100644 index 00000000..3c828434 --- /dev/null +++ b/node_modules/rxjs/src/operators/partition.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/partition'; diff --git a/node_modules/rxjs/src/operators/pluck.ts b/node_modules/rxjs/src/operators/pluck.ts new file mode 100644 index 00000000..2ac910af --- /dev/null +++ b/node_modules/rxjs/src/operators/pluck.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/pluck'; diff --git a/node_modules/rxjs/src/operators/publish.ts b/node_modules/rxjs/src/operators/publish.ts new file mode 100644 index 00000000..a21951d7 --- /dev/null +++ b/node_modules/rxjs/src/operators/publish.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publish'; diff --git a/node_modules/rxjs/src/operators/publishBehavior.ts b/node_modules/rxjs/src/operators/publishBehavior.ts new file mode 100644 index 00000000..53cbc378 --- /dev/null +++ b/node_modules/rxjs/src/operators/publishBehavior.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publishBehavior'; diff --git a/node_modules/rxjs/src/operators/publishLast.ts b/node_modules/rxjs/src/operators/publishLast.ts new file mode 100644 index 00000000..0fcb4399 --- /dev/null +++ b/node_modules/rxjs/src/operators/publishLast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publishLast'; diff --git a/node_modules/rxjs/src/operators/publishReplay.ts b/node_modules/rxjs/src/operators/publishReplay.ts new file mode 100644 index 00000000..ff87a2d8 --- /dev/null +++ b/node_modules/rxjs/src/operators/publishReplay.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/publishReplay'; diff --git a/node_modules/rxjs/src/operators/race.ts b/node_modules/rxjs/src/operators/race.ts new file mode 100644 index 00000000..95047c74 --- /dev/null +++ b/node_modules/rxjs/src/operators/race.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/race'; diff --git a/node_modules/rxjs/src/operators/reduce.ts b/node_modules/rxjs/src/operators/reduce.ts new file mode 100644 index 00000000..abb05c3e --- /dev/null +++ b/node_modules/rxjs/src/operators/reduce.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/reduce'; diff --git a/node_modules/rxjs/src/operators/refCount.ts b/node_modules/rxjs/src/operators/refCount.ts new file mode 100644 index 00000000..3c38baa1 --- /dev/null +++ b/node_modules/rxjs/src/operators/refCount.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/refCount'; diff --git a/node_modules/rxjs/src/operators/repeat.ts b/node_modules/rxjs/src/operators/repeat.ts new file mode 100644 index 00000000..1f363536 --- /dev/null +++ b/node_modules/rxjs/src/operators/repeat.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/repeat'; diff --git a/node_modules/rxjs/src/operators/repeatWhen.ts b/node_modules/rxjs/src/operators/repeatWhen.ts new file mode 100644 index 00000000..df052ac0 --- /dev/null +++ b/node_modules/rxjs/src/operators/repeatWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/repeatWhen'; diff --git a/node_modules/rxjs/src/operators/retry.ts b/node_modules/rxjs/src/operators/retry.ts new file mode 100644 index 00000000..b8d2feeb --- /dev/null +++ b/node_modules/rxjs/src/operators/retry.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/retry'; diff --git a/node_modules/rxjs/src/operators/retryWhen.ts b/node_modules/rxjs/src/operators/retryWhen.ts new file mode 100644 index 00000000..00f9bdfd --- /dev/null +++ b/node_modules/rxjs/src/operators/retryWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/retryWhen'; diff --git a/node_modules/rxjs/src/operators/sample.ts b/node_modules/rxjs/src/operators/sample.ts new file mode 100644 index 00000000..0e05a4ba --- /dev/null +++ b/node_modules/rxjs/src/operators/sample.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/sample'; diff --git a/node_modules/rxjs/src/operators/sampleTime.ts b/node_modules/rxjs/src/operators/sampleTime.ts new file mode 100644 index 00000000..5041a513 --- /dev/null +++ b/node_modules/rxjs/src/operators/sampleTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/sampleTime'; diff --git a/node_modules/rxjs/src/operators/scan.ts b/node_modules/rxjs/src/operators/scan.ts new file mode 100644 index 00000000..acaee73d --- /dev/null +++ b/node_modules/rxjs/src/operators/scan.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/scan'; diff --git a/node_modules/rxjs/src/operators/sequenceEqual.ts b/node_modules/rxjs/src/operators/sequenceEqual.ts new file mode 100644 index 00000000..0a6e3cbc --- /dev/null +++ b/node_modules/rxjs/src/operators/sequenceEqual.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/sequenceEqual'; diff --git a/node_modules/rxjs/src/operators/share.ts b/node_modules/rxjs/src/operators/share.ts new file mode 100644 index 00000000..fd113fda --- /dev/null +++ b/node_modules/rxjs/src/operators/share.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/share'; diff --git a/node_modules/rxjs/src/operators/shareReplay.ts b/node_modules/rxjs/src/operators/shareReplay.ts new file mode 100644 index 00000000..d489c810 --- /dev/null +++ b/node_modules/rxjs/src/operators/shareReplay.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/shareReplay'; diff --git a/node_modules/rxjs/src/operators/single.ts b/node_modules/rxjs/src/operators/single.ts new file mode 100644 index 00000000..096d4b42 --- /dev/null +++ b/node_modules/rxjs/src/operators/single.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/single'; diff --git a/node_modules/rxjs/src/operators/skip.ts b/node_modules/rxjs/src/operators/skip.ts new file mode 100644 index 00000000..002baeb9 --- /dev/null +++ b/node_modules/rxjs/src/operators/skip.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skip'; diff --git a/node_modules/rxjs/src/operators/skipLast.ts b/node_modules/rxjs/src/operators/skipLast.ts new file mode 100644 index 00000000..15d1c496 --- /dev/null +++ b/node_modules/rxjs/src/operators/skipLast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skipLast'; diff --git a/node_modules/rxjs/src/operators/skipUntil.ts b/node_modules/rxjs/src/operators/skipUntil.ts new file mode 100644 index 00000000..4193fe2c --- /dev/null +++ b/node_modules/rxjs/src/operators/skipUntil.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skipUntil'; diff --git a/node_modules/rxjs/src/operators/skipWhile.ts b/node_modules/rxjs/src/operators/skipWhile.ts new file mode 100644 index 00000000..34fb4d65 --- /dev/null +++ b/node_modules/rxjs/src/operators/skipWhile.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/skipWhile'; diff --git a/node_modules/rxjs/src/operators/startWith.ts b/node_modules/rxjs/src/operators/startWith.ts new file mode 100644 index 00000000..901bbbae --- /dev/null +++ b/node_modules/rxjs/src/operators/startWith.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/startWith'; diff --git a/node_modules/rxjs/src/operators/subscribeOn.ts b/node_modules/rxjs/src/operators/subscribeOn.ts new file mode 100644 index 00000000..eb1c2336 --- /dev/null +++ b/node_modules/rxjs/src/operators/subscribeOn.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/subscribeOn'; diff --git a/node_modules/rxjs/src/operators/switchAll.ts b/node_modules/rxjs/src/operators/switchAll.ts new file mode 100644 index 00000000..37a8c202 --- /dev/null +++ b/node_modules/rxjs/src/operators/switchAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/switchAll'; diff --git a/node_modules/rxjs/src/operators/switchMap.ts b/node_modules/rxjs/src/operators/switchMap.ts new file mode 100644 index 00000000..840c2c71 --- /dev/null +++ b/node_modules/rxjs/src/operators/switchMap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/switchMap'; diff --git a/node_modules/rxjs/src/operators/switchMapTo.ts b/node_modules/rxjs/src/operators/switchMapTo.ts new file mode 100644 index 00000000..fbefdfe1 --- /dev/null +++ b/node_modules/rxjs/src/operators/switchMapTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/switchMapTo'; diff --git a/node_modules/rxjs/src/operators/take.ts b/node_modules/rxjs/src/operators/take.ts new file mode 100644 index 00000000..1176ad74 --- /dev/null +++ b/node_modules/rxjs/src/operators/take.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/take'; diff --git a/node_modules/rxjs/src/operators/takeLast.ts b/node_modules/rxjs/src/operators/takeLast.ts new file mode 100644 index 00000000..35e85f2d --- /dev/null +++ b/node_modules/rxjs/src/operators/takeLast.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/takeLast'; diff --git a/node_modules/rxjs/src/operators/takeUntil.ts b/node_modules/rxjs/src/operators/takeUntil.ts new file mode 100644 index 00000000..828abef5 --- /dev/null +++ b/node_modules/rxjs/src/operators/takeUntil.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/takeUntil'; diff --git a/node_modules/rxjs/src/operators/takeWhile.ts b/node_modules/rxjs/src/operators/takeWhile.ts new file mode 100644 index 00000000..c3edb4e3 --- /dev/null +++ b/node_modules/rxjs/src/operators/takeWhile.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/takeWhile'; diff --git a/node_modules/rxjs/src/operators/tap.ts b/node_modules/rxjs/src/operators/tap.ts new file mode 100644 index 00000000..6190e75e --- /dev/null +++ b/node_modules/rxjs/src/operators/tap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/tap'; diff --git a/node_modules/rxjs/src/operators/throttle.ts b/node_modules/rxjs/src/operators/throttle.ts new file mode 100644 index 00000000..f887a2fe --- /dev/null +++ b/node_modules/rxjs/src/operators/throttle.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/throttle'; diff --git a/node_modules/rxjs/src/operators/throttleTime.ts b/node_modules/rxjs/src/operators/throttleTime.ts new file mode 100644 index 00000000..8fbd3c88 --- /dev/null +++ b/node_modules/rxjs/src/operators/throttleTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/throttleTime'; diff --git a/node_modules/rxjs/src/operators/throwIfEmpty.ts b/node_modules/rxjs/src/operators/throwIfEmpty.ts new file mode 100644 index 00000000..6bb64cd3 --- /dev/null +++ b/node_modules/rxjs/src/operators/throwIfEmpty.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/throwIfEmpty'; diff --git a/node_modules/rxjs/src/operators/timeInterval.ts b/node_modules/rxjs/src/operators/timeInterval.ts new file mode 100644 index 00000000..6af39119 --- /dev/null +++ b/node_modules/rxjs/src/operators/timeInterval.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timeInterval'; diff --git a/node_modules/rxjs/src/operators/timeout.ts b/node_modules/rxjs/src/operators/timeout.ts new file mode 100644 index 00000000..c4a43f1c --- /dev/null +++ b/node_modules/rxjs/src/operators/timeout.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timeout'; diff --git a/node_modules/rxjs/src/operators/timeoutWith.ts b/node_modules/rxjs/src/operators/timeoutWith.ts new file mode 100644 index 00000000..2cfcad86 --- /dev/null +++ b/node_modules/rxjs/src/operators/timeoutWith.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timeoutWith'; diff --git a/node_modules/rxjs/src/operators/timestamp.ts b/node_modules/rxjs/src/operators/timestamp.ts new file mode 100644 index 00000000..6580e38e --- /dev/null +++ b/node_modules/rxjs/src/operators/timestamp.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/timestamp'; diff --git a/node_modules/rxjs/src/operators/toArray.ts b/node_modules/rxjs/src/operators/toArray.ts new file mode 100644 index 00000000..7f678db1 --- /dev/null +++ b/node_modules/rxjs/src/operators/toArray.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/toArray'; diff --git a/node_modules/rxjs/src/operators/window.ts b/node_modules/rxjs/src/operators/window.ts new file mode 100644 index 00000000..2642141b --- /dev/null +++ b/node_modules/rxjs/src/operators/window.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/window'; diff --git a/node_modules/rxjs/src/operators/windowCount.ts b/node_modules/rxjs/src/operators/windowCount.ts new file mode 100644 index 00000000..b7747077 --- /dev/null +++ b/node_modules/rxjs/src/operators/windowCount.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowCount'; diff --git a/node_modules/rxjs/src/operators/windowTime.ts b/node_modules/rxjs/src/operators/windowTime.ts new file mode 100644 index 00000000..2cbf76fc --- /dev/null +++ b/node_modules/rxjs/src/operators/windowTime.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowTime'; diff --git a/node_modules/rxjs/src/operators/windowToggle.ts b/node_modules/rxjs/src/operators/windowToggle.ts new file mode 100644 index 00000000..b116f17e --- /dev/null +++ b/node_modules/rxjs/src/operators/windowToggle.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowToggle'; diff --git a/node_modules/rxjs/src/operators/windowWhen.ts b/node_modules/rxjs/src/operators/windowWhen.ts new file mode 100644 index 00000000..782d4dc0 --- /dev/null +++ b/node_modules/rxjs/src/operators/windowWhen.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/windowWhen'; diff --git a/node_modules/rxjs/src/operators/withLatestFrom.ts b/node_modules/rxjs/src/operators/withLatestFrom.ts new file mode 100644 index 00000000..15f7450b --- /dev/null +++ b/node_modules/rxjs/src/operators/withLatestFrom.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/withLatestFrom'; diff --git a/node_modules/rxjs/src/operators/zip.ts b/node_modules/rxjs/src/operators/zip.ts new file mode 100644 index 00000000..c75d56f1 --- /dev/null +++ b/node_modules/rxjs/src/operators/zip.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/zip'; diff --git a/node_modules/rxjs/src/operators/zipAll.ts b/node_modules/rxjs/src/operators/zipAll.ts new file mode 100644 index 00000000..3e69835c --- /dev/null +++ b/node_modules/rxjs/src/operators/zipAll.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/operators/zipAll'; diff --git a/node_modules/rxjs/src/scheduler/animationFrame.ts b/node_modules/rxjs/src/scheduler/animationFrame.ts new file mode 100644 index 00000000..f2936244 --- /dev/null +++ b/node_modules/rxjs/src/scheduler/animationFrame.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/animationFrame'; diff --git a/node_modules/rxjs/src/scheduler/asap.ts b/node_modules/rxjs/src/scheduler/asap.ts new file mode 100644 index 00000000..934d4b55 --- /dev/null +++ b/node_modules/rxjs/src/scheduler/asap.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/asap'; diff --git a/node_modules/rxjs/src/scheduler/async.ts b/node_modules/rxjs/src/scheduler/async.ts new file mode 100644 index 00000000..ed5a6138 --- /dev/null +++ b/node_modules/rxjs/src/scheduler/async.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/async'; diff --git a/node_modules/rxjs/src/scheduler/queue.ts b/node_modules/rxjs/src/scheduler/queue.ts new file mode 100644 index 00000000..daea5845 --- /dev/null +++ b/node_modules/rxjs/src/scheduler/queue.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/scheduler/queue'; diff --git a/node_modules/rxjs/src/symbol/iterator.ts b/node_modules/rxjs/src/symbol/iterator.ts new file mode 100644 index 00000000..70903608 --- /dev/null +++ b/node_modules/rxjs/src/symbol/iterator.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/symbol/iterator'; diff --git a/node_modules/rxjs/src/symbol/observable.ts b/node_modules/rxjs/src/symbol/observable.ts new file mode 100644 index 00000000..c5fc1913 --- /dev/null +++ b/node_modules/rxjs/src/symbol/observable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/symbol/observable'; diff --git a/node_modules/rxjs/src/symbol/rxSubscriber.ts b/node_modules/rxjs/src/symbol/rxSubscriber.ts new file mode 100644 index 00000000..cf3866af --- /dev/null +++ b/node_modules/rxjs/src/symbol/rxSubscriber.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/symbol/rxSubscriber'; diff --git a/node_modules/rxjs/src/testing/index.ts b/node_modules/rxjs/src/testing/index.ts new file mode 100644 index 00000000..4c23a723 --- /dev/null +++ b/node_modules/rxjs/src/testing/index.ts @@ -0,0 +1 @@ +export { TestScheduler } from '../internal/testing/TestScheduler'; diff --git a/node_modules/rxjs/src/testing/package.json b/node_modules/rxjs/src/testing/package.json new file mode 100644 index 00000000..1a11a9f0 --- /dev/null +++ b/node_modules/rxjs/src/testing/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/testing", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/testing/index.js", + "es2015": "../_esm2015/testing/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/src/tsconfig.json b/node_modules/rxjs/src/tsconfig.json new file mode 100644 index 00000000..14e76219 --- /dev/null +++ b/node_modules/rxjs/src/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "removeComments": true, + "preserveConstEnums": true, + "sourceMap": true, + "strictFunctionTypes": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "suppressImplicitAnyIndexErrors": true, + "moduleResolution": "node", + "stripInternal": false, + "target": "es5", + "outDir": "./.out", + "lib": [ + "es5", + "es2015.iterable", + "es2015.collection", + "es2015.promise", + "es2015.symbol", + "es2015.symbol.wellknown", + "dom" + ] + }, + "formatCodeOptions": { + "indentSize": 2, + "tabSize": 2 + }, + "bazelOptions": { + "suppressTsconfigOverrideWarnings": true + } +} diff --git a/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts b/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts new file mode 100644 index 00000000..48e47127 --- /dev/null +++ b/node_modules/rxjs/src/util/ArgumentOutOfRangeError.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/ArgumentOutOfRangeError'; diff --git a/node_modules/rxjs/src/util/EmptyError.ts b/node_modules/rxjs/src/util/EmptyError.ts new file mode 100644 index 00000000..8d258923 --- /dev/null +++ b/node_modules/rxjs/src/util/EmptyError.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/EmptyError'; diff --git a/node_modules/rxjs/src/util/Immediate.ts b/node_modules/rxjs/src/util/Immediate.ts new file mode 100644 index 00000000..2bfaf132 --- /dev/null +++ b/node_modules/rxjs/src/util/Immediate.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/Immediate'; diff --git a/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts b/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts new file mode 100644 index 00000000..3ae25a97 --- /dev/null +++ b/node_modules/rxjs/src/util/ObjectUnsubscribedError.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/ObjectUnsubscribedError'; diff --git a/node_modules/rxjs/src/util/TimeoutError.ts b/node_modules/rxjs/src/util/TimeoutError.ts new file mode 100644 index 00000000..31aae0b5 --- /dev/null +++ b/node_modules/rxjs/src/util/TimeoutError.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/TimeoutError'; diff --git a/node_modules/rxjs/src/util/UnsubscriptionError.ts b/node_modules/rxjs/src/util/UnsubscriptionError.ts new file mode 100644 index 00000000..fbf4c1cd --- /dev/null +++ b/node_modules/rxjs/src/util/UnsubscriptionError.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/UnsubscriptionError'; diff --git a/node_modules/rxjs/src/util/applyMixins.ts b/node_modules/rxjs/src/util/applyMixins.ts new file mode 100644 index 00000000..b5ef81c4 --- /dev/null +++ b/node_modules/rxjs/src/util/applyMixins.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/applyMixins'; diff --git a/node_modules/rxjs/src/util/errorObject.ts b/node_modules/rxjs/src/util/errorObject.ts new file mode 100644 index 00000000..3dad2b91 --- /dev/null +++ b/node_modules/rxjs/src/util/errorObject.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/errorObject'; diff --git a/node_modules/rxjs/src/util/hostReportError.ts b/node_modules/rxjs/src/util/hostReportError.ts new file mode 100644 index 00000000..74d0de4e --- /dev/null +++ b/node_modules/rxjs/src/util/hostReportError.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/hostReportError'; diff --git a/node_modules/rxjs/src/util/identity.ts b/node_modules/rxjs/src/util/identity.ts new file mode 100644 index 00000000..685e4625 --- /dev/null +++ b/node_modules/rxjs/src/util/identity.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/identity'; diff --git a/node_modules/rxjs/src/util/isArray.ts b/node_modules/rxjs/src/util/isArray.ts new file mode 100644 index 00000000..5ca2e218 --- /dev/null +++ b/node_modules/rxjs/src/util/isArray.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isArray'; diff --git a/node_modules/rxjs/src/util/isArrayLike.ts b/node_modules/rxjs/src/util/isArrayLike.ts new file mode 100644 index 00000000..a8b03d23 --- /dev/null +++ b/node_modules/rxjs/src/util/isArrayLike.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isArrayLike'; diff --git a/node_modules/rxjs/src/util/isDate.ts b/node_modules/rxjs/src/util/isDate.ts new file mode 100644 index 00000000..c5ebb01d --- /dev/null +++ b/node_modules/rxjs/src/util/isDate.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isDate'; diff --git a/node_modules/rxjs/src/util/isFunction.ts b/node_modules/rxjs/src/util/isFunction.ts new file mode 100644 index 00000000..7b4a54a1 --- /dev/null +++ b/node_modules/rxjs/src/util/isFunction.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isFunction'; diff --git a/node_modules/rxjs/src/util/isIterable.ts b/node_modules/rxjs/src/util/isIterable.ts new file mode 100644 index 00000000..e7ffaae5 --- /dev/null +++ b/node_modules/rxjs/src/util/isIterable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isIterable'; diff --git a/node_modules/rxjs/src/util/isNumeric.ts b/node_modules/rxjs/src/util/isNumeric.ts new file mode 100644 index 00000000..eeefcc22 --- /dev/null +++ b/node_modules/rxjs/src/util/isNumeric.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isNumeric'; diff --git a/node_modules/rxjs/src/util/isObject.ts b/node_modules/rxjs/src/util/isObject.ts new file mode 100644 index 00000000..4b57d811 --- /dev/null +++ b/node_modules/rxjs/src/util/isObject.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isObject'; diff --git a/node_modules/rxjs/src/util/isObservable.ts b/node_modules/rxjs/src/util/isObservable.ts new file mode 100644 index 00000000..cdf34ca2 --- /dev/null +++ b/node_modules/rxjs/src/util/isObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isObservable'; diff --git a/node_modules/rxjs/src/util/isPromise.ts b/node_modules/rxjs/src/util/isPromise.ts new file mode 100644 index 00000000..1494a4b6 --- /dev/null +++ b/node_modules/rxjs/src/util/isPromise.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isPromise'; diff --git a/node_modules/rxjs/src/util/isScheduler.ts b/node_modules/rxjs/src/util/isScheduler.ts new file mode 100644 index 00000000..fd1a1f21 --- /dev/null +++ b/node_modules/rxjs/src/util/isScheduler.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isScheduler'; diff --git a/node_modules/rxjs/src/util/noop.ts b/node_modules/rxjs/src/util/noop.ts new file mode 100644 index 00000000..0fe22e1a --- /dev/null +++ b/node_modules/rxjs/src/util/noop.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/noop'; diff --git a/node_modules/rxjs/src/util/not.ts b/node_modules/rxjs/src/util/not.ts new file mode 100644 index 00000000..38315769 --- /dev/null +++ b/node_modules/rxjs/src/util/not.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/not'; diff --git a/node_modules/rxjs/src/util/pipe.ts b/node_modules/rxjs/src/util/pipe.ts new file mode 100644 index 00000000..da6342a4 --- /dev/null +++ b/node_modules/rxjs/src/util/pipe.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/pipe'; diff --git a/node_modules/rxjs/src/util/root.ts b/node_modules/rxjs/src/util/root.ts new file mode 100644 index 00000000..25b6c794 --- /dev/null +++ b/node_modules/rxjs/src/util/root.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/root'; diff --git a/node_modules/rxjs/src/util/subscribeTo.ts b/node_modules/rxjs/src/util/subscribeTo.ts new file mode 100644 index 00000000..471f192b --- /dev/null +++ b/node_modules/rxjs/src/util/subscribeTo.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeTo'; diff --git a/node_modules/rxjs/src/util/subscribeToArray.ts b/node_modules/rxjs/src/util/subscribeToArray.ts new file mode 100644 index 00000000..9220f626 --- /dev/null +++ b/node_modules/rxjs/src/util/subscribeToArray.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToArray'; diff --git a/node_modules/rxjs/src/util/subscribeToIterable.ts b/node_modules/rxjs/src/util/subscribeToIterable.ts new file mode 100644 index 00000000..6edb1efc --- /dev/null +++ b/node_modules/rxjs/src/util/subscribeToIterable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToIterable'; diff --git a/node_modules/rxjs/src/util/subscribeToObservable.ts b/node_modules/rxjs/src/util/subscribeToObservable.ts new file mode 100644 index 00000000..88495b82 --- /dev/null +++ b/node_modules/rxjs/src/util/subscribeToObservable.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToObservable'; diff --git a/node_modules/rxjs/src/util/subscribeToPromise.ts b/node_modules/rxjs/src/util/subscribeToPromise.ts new file mode 100644 index 00000000..4540e113 --- /dev/null +++ b/node_modules/rxjs/src/util/subscribeToPromise.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToPromise'; diff --git a/node_modules/rxjs/src/util/subscribeToResult.ts b/node_modules/rxjs/src/util/subscribeToResult.ts new file mode 100644 index 00000000..2ab44ccc --- /dev/null +++ b/node_modules/rxjs/src/util/subscribeToResult.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToResult'; diff --git a/node_modules/rxjs/src/util/toSubscriber.ts b/node_modules/rxjs/src/util/toSubscriber.ts new file mode 100644 index 00000000..61e1c7f0 --- /dev/null +++ b/node_modules/rxjs/src/util/toSubscriber.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/toSubscriber'; diff --git a/node_modules/rxjs/src/util/tryCatch.ts b/node_modules/rxjs/src/util/tryCatch.ts new file mode 100644 index 00000000..57c45c7a --- /dev/null +++ b/node_modules/rxjs/src/util/tryCatch.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/tryCatch'; diff --git a/node_modules/rxjs/src/webSocket/index.ts b/node_modules/rxjs/src/webSocket/index.ts new file mode 100644 index 00000000..833d9504 --- /dev/null +++ b/node_modules/rxjs/src/webSocket/index.ts @@ -0,0 +1,2 @@ +export { webSocket as webSocket } from '../internal/observable/dom/webSocket'; +export { WebSocketSubject, WebSocketSubjectConfig } from '../internal/observable/dom/WebSocketSubject'; diff --git a/node_modules/rxjs/src/webSocket/package.json b/node_modules/rxjs/src/webSocket/package.json new file mode 100644 index 00000000..34020bde --- /dev/null +++ b/node_modules/rxjs/src/webSocket/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/webSocket", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/webSocket/index.js", + "es2015": "../_esm2015/webSocket/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/symbol/iterator.d.ts b/node_modules/rxjs/symbol/iterator.d.ts new file mode 100644 index 00000000..70903608 --- /dev/null +++ b/node_modules/rxjs/symbol/iterator.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/symbol/iterator'; diff --git a/node_modules/rxjs/symbol/iterator.js b/node_modules/rxjs/symbol/iterator.js new file mode 100644 index 00000000..e843ac97 --- /dev/null +++ b/node_modules/rxjs/symbol/iterator.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/symbol/iterator")); +//# sourceMappingURL=iterator.js.map \ No newline at end of file diff --git a/node_modules/rxjs/symbol/iterator.js.map b/node_modules/rxjs/symbol/iterator.js.map new file mode 100644 index 00000000..0ed8d470 --- /dev/null +++ b/node_modules/rxjs/symbol/iterator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"iterator.js","sources":["../src/symbol/iterator.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/symbol/observable.d.ts b/node_modules/rxjs/symbol/observable.d.ts new file mode 100644 index 00000000..c5fc1913 --- /dev/null +++ b/node_modules/rxjs/symbol/observable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/symbol/observable'; diff --git a/node_modules/rxjs/symbol/observable.js b/node_modules/rxjs/symbol/observable.js new file mode 100644 index 00000000..1cccc453 --- /dev/null +++ b/node_modules/rxjs/symbol/observable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/symbol/observable")); +//# sourceMappingURL=observable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/symbol/observable.js.map b/node_modules/rxjs/symbol/observable.js.map new file mode 100644 index 00000000..03c9bd76 --- /dev/null +++ b/node_modules/rxjs/symbol/observable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"observable.js","sources":["../src/symbol/observable.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/symbol/rxSubscriber.d.ts b/node_modules/rxjs/symbol/rxSubscriber.d.ts new file mode 100644 index 00000000..cf3866af --- /dev/null +++ b/node_modules/rxjs/symbol/rxSubscriber.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/symbol/rxSubscriber'; diff --git a/node_modules/rxjs/symbol/rxSubscriber.js b/node_modules/rxjs/symbol/rxSubscriber.js new file mode 100644 index 00000000..fe2c8fb8 --- /dev/null +++ b/node_modules/rxjs/symbol/rxSubscriber.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/symbol/rxSubscriber")); +//# sourceMappingURL=rxSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/symbol/rxSubscriber.js.map b/node_modules/rxjs/symbol/rxSubscriber.js.map new file mode 100644 index 00000000..a044a41c --- /dev/null +++ b/node_modules/rxjs/symbol/rxSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rxSubscriber.js","sources":["../src/symbol/rxSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,qDAAgD"} diff --git a/node_modules/rxjs/testing/index.d.ts b/node_modules/rxjs/testing/index.d.ts new file mode 100644 index 00000000..4c23a723 --- /dev/null +++ b/node_modules/rxjs/testing/index.d.ts @@ -0,0 +1 @@ +export { TestScheduler } from '../internal/testing/TestScheduler'; diff --git a/node_modules/rxjs/testing/index.js b/node_modules/rxjs/testing/index.js new file mode 100644 index 00000000..755148d9 --- /dev/null +++ b/node_modules/rxjs/testing/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var TestScheduler_1 = require("../internal/testing/TestScheduler"); +exports.TestScheduler = TestScheduler_1.TestScheduler; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/testing/index.js.map b/node_modules/rxjs/testing/index.js.map new file mode 100644 index 00000000..910637ec --- /dev/null +++ b/node_modules/rxjs/testing/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/testing/index.ts"],"names":[],"mappings":";;AAAA,mEAAkE;AAAzD,wCAAA,aAAa,CAAA"} diff --git a/node_modules/rxjs/testing/package.json b/node_modules/rxjs/testing/package.json new file mode 100644 index 00000000..1a11a9f0 --- /dev/null +++ b/node_modules/rxjs/testing/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/testing", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/testing/index.js", + "es2015": "../_esm2015/testing/index.js", + "sideEffects": false +} diff --git a/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts b/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts new file mode 100644 index 00000000..48e47127 --- /dev/null +++ b/node_modules/rxjs/util/ArgumentOutOfRangeError.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/ArgumentOutOfRangeError'; diff --git a/node_modules/rxjs/util/ArgumentOutOfRangeError.js b/node_modules/rxjs/util/ArgumentOutOfRangeError.js new file mode 100644 index 00000000..493a8956 --- /dev/null +++ b/node_modules/rxjs/util/ArgumentOutOfRangeError.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/ArgumentOutOfRangeError")); +//# sourceMappingURL=ArgumentOutOfRangeError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map b/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map new file mode 100644 index 00000000..fc8bea3b --- /dev/null +++ b/node_modules/rxjs/util/ArgumentOutOfRangeError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ArgumentOutOfRangeError.js","sources":["../src/util/ArgumentOutOfRangeError.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"} diff --git a/node_modules/rxjs/util/EmptyError.d.ts b/node_modules/rxjs/util/EmptyError.d.ts new file mode 100644 index 00000000..8d258923 --- /dev/null +++ b/node_modules/rxjs/util/EmptyError.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/EmptyError'; diff --git a/node_modules/rxjs/util/EmptyError.js b/node_modules/rxjs/util/EmptyError.js new file mode 100644 index 00000000..781eaac1 --- /dev/null +++ b/node_modules/rxjs/util/EmptyError.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/EmptyError")); +//# sourceMappingURL=EmptyError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/EmptyError.js.map b/node_modules/rxjs/util/EmptyError.js.map new file mode 100644 index 00000000..43f933f7 --- /dev/null +++ b/node_modules/rxjs/util/EmptyError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EmptyError.js","sources":["../src/util/EmptyError.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/util/Immediate.d.ts b/node_modules/rxjs/util/Immediate.d.ts new file mode 100644 index 00000000..2bfaf132 --- /dev/null +++ b/node_modules/rxjs/util/Immediate.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/Immediate'; diff --git a/node_modules/rxjs/util/Immediate.js b/node_modules/rxjs/util/Immediate.js new file mode 100644 index 00000000..763687f6 --- /dev/null +++ b/node_modules/rxjs/util/Immediate.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/Immediate")); +//# sourceMappingURL=Immediate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/Immediate.js.map b/node_modules/rxjs/util/Immediate.js.map new file mode 100644 index 00000000..58b17228 --- /dev/null +++ b/node_modules/rxjs/util/Immediate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Immediate.js","sources":["../src/util/Immediate.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts b/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts new file mode 100644 index 00000000..3ae25a97 --- /dev/null +++ b/node_modules/rxjs/util/ObjectUnsubscribedError.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/ObjectUnsubscribedError'; diff --git a/node_modules/rxjs/util/ObjectUnsubscribedError.js b/node_modules/rxjs/util/ObjectUnsubscribedError.js new file mode 100644 index 00000000..3f694db3 --- /dev/null +++ b/node_modules/rxjs/util/ObjectUnsubscribedError.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/ObjectUnsubscribedError")); +//# sourceMappingURL=ObjectUnsubscribedError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/ObjectUnsubscribedError.js.map b/node_modules/rxjs/util/ObjectUnsubscribedError.js.map new file mode 100644 index 00000000..65e50995 --- /dev/null +++ b/node_modules/rxjs/util/ObjectUnsubscribedError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ObjectUnsubscribedError.js","sources":["../src/util/ObjectUnsubscribedError.ts"],"names":[],"mappings":";;;;;AAAA,8DAAyD"} diff --git a/node_modules/rxjs/util/TimeoutError.d.ts b/node_modules/rxjs/util/TimeoutError.d.ts new file mode 100644 index 00000000..31aae0b5 --- /dev/null +++ b/node_modules/rxjs/util/TimeoutError.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/TimeoutError'; diff --git a/node_modules/rxjs/util/TimeoutError.js b/node_modules/rxjs/util/TimeoutError.js new file mode 100644 index 00000000..11ddb2de --- /dev/null +++ b/node_modules/rxjs/util/TimeoutError.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/TimeoutError")); +//# sourceMappingURL=TimeoutError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/TimeoutError.js.map b/node_modules/rxjs/util/TimeoutError.js.map new file mode 100644 index 00000000..6fcb847c --- /dev/null +++ b/node_modules/rxjs/util/TimeoutError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TimeoutError.js","sources":["../src/util/TimeoutError.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/util/UnsubscriptionError.d.ts b/node_modules/rxjs/util/UnsubscriptionError.d.ts new file mode 100644 index 00000000..fbf4c1cd --- /dev/null +++ b/node_modules/rxjs/util/UnsubscriptionError.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/UnsubscriptionError'; diff --git a/node_modules/rxjs/util/UnsubscriptionError.js b/node_modules/rxjs/util/UnsubscriptionError.js new file mode 100644 index 00000000..53d3e1d0 --- /dev/null +++ b/node_modules/rxjs/util/UnsubscriptionError.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/UnsubscriptionError")); +//# sourceMappingURL=UnsubscriptionError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/UnsubscriptionError.js.map b/node_modules/rxjs/util/UnsubscriptionError.js.map new file mode 100644 index 00000000..58684c5d --- /dev/null +++ b/node_modules/rxjs/util/UnsubscriptionError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnsubscriptionError.js","sources":["../src/util/UnsubscriptionError.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/util/applyMixins.d.ts b/node_modules/rxjs/util/applyMixins.d.ts new file mode 100644 index 00000000..b5ef81c4 --- /dev/null +++ b/node_modules/rxjs/util/applyMixins.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/applyMixins'; diff --git a/node_modules/rxjs/util/applyMixins.js b/node_modules/rxjs/util/applyMixins.js new file mode 100644 index 00000000..96dd7813 --- /dev/null +++ b/node_modules/rxjs/util/applyMixins.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/applyMixins")); +//# sourceMappingURL=applyMixins.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/applyMixins.js.map b/node_modules/rxjs/util/applyMixins.js.map new file mode 100644 index 00000000..31bdb170 --- /dev/null +++ b/node_modules/rxjs/util/applyMixins.js.map @@ -0,0 +1 @@ +{"version":3,"file":"applyMixins.js","sources":["../src/util/applyMixins.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/util/errorObject.d.ts b/node_modules/rxjs/util/errorObject.d.ts new file mode 100644 index 00000000..3dad2b91 --- /dev/null +++ b/node_modules/rxjs/util/errorObject.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/errorObject'; diff --git a/node_modules/rxjs/util/errorObject.js b/node_modules/rxjs/util/errorObject.js new file mode 100644 index 00000000..01dec185 --- /dev/null +++ b/node_modules/rxjs/util/errorObject.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/errorObject")); +//# sourceMappingURL=errorObject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/errorObject.js.map b/node_modules/rxjs/util/errorObject.js.map new file mode 100644 index 00000000..18064385 --- /dev/null +++ b/node_modules/rxjs/util/errorObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"errorObject.js","sources":["../src/util/errorObject.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/util/hostReportError.d.ts b/node_modules/rxjs/util/hostReportError.d.ts new file mode 100644 index 00000000..74d0de4e --- /dev/null +++ b/node_modules/rxjs/util/hostReportError.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/hostReportError'; diff --git a/node_modules/rxjs/util/hostReportError.js b/node_modules/rxjs/util/hostReportError.js new file mode 100644 index 00000000..670bc653 --- /dev/null +++ b/node_modules/rxjs/util/hostReportError.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/hostReportError")); +//# sourceMappingURL=hostReportError.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/hostReportError.js.map b/node_modules/rxjs/util/hostReportError.js.map new file mode 100644 index 00000000..f4eb9bd8 --- /dev/null +++ b/node_modules/rxjs/util/hostReportError.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hostReportError.js","sources":["../src/util/hostReportError.ts"],"names":[],"mappings":";;;;;AAAA,sDAAiD"} diff --git a/node_modules/rxjs/util/identity.d.ts b/node_modules/rxjs/util/identity.d.ts new file mode 100644 index 00000000..685e4625 --- /dev/null +++ b/node_modules/rxjs/util/identity.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/identity'; diff --git a/node_modules/rxjs/util/identity.js b/node_modules/rxjs/util/identity.js new file mode 100644 index 00000000..f0210969 --- /dev/null +++ b/node_modules/rxjs/util/identity.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/identity")); +//# sourceMappingURL=identity.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/identity.js.map b/node_modules/rxjs/util/identity.js.map new file mode 100644 index 00000000..e4376266 --- /dev/null +++ b/node_modules/rxjs/util/identity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"identity.js","sources":["../src/util/identity.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/util/isArray.d.ts b/node_modules/rxjs/util/isArray.d.ts new file mode 100644 index 00000000..5ca2e218 --- /dev/null +++ b/node_modules/rxjs/util/isArray.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isArray'; diff --git a/node_modules/rxjs/util/isArray.js b/node_modules/rxjs/util/isArray.js new file mode 100644 index 00000000..123665b9 --- /dev/null +++ b/node_modules/rxjs/util/isArray.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isArray")); +//# sourceMappingURL=isArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isArray.js.map b/node_modules/rxjs/util/isArray.js.map new file mode 100644 index 00000000..4b498350 --- /dev/null +++ b/node_modules/rxjs/util/isArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArray.js","sources":["../src/util/isArray.ts"],"names":[],"mappings":";;;;;AAAA,8CAAyC"} diff --git a/node_modules/rxjs/util/isArrayLike.d.ts b/node_modules/rxjs/util/isArrayLike.d.ts new file mode 100644 index 00000000..a8b03d23 --- /dev/null +++ b/node_modules/rxjs/util/isArrayLike.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isArrayLike'; diff --git a/node_modules/rxjs/util/isArrayLike.js b/node_modules/rxjs/util/isArrayLike.js new file mode 100644 index 00000000..83f5ecfd --- /dev/null +++ b/node_modules/rxjs/util/isArrayLike.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isArrayLike")); +//# sourceMappingURL=isArrayLike.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isArrayLike.js.map b/node_modules/rxjs/util/isArrayLike.js.map new file mode 100644 index 00000000..541be63c --- /dev/null +++ b/node_modules/rxjs/util/isArrayLike.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isArrayLike.js","sources":["../src/util/isArrayLike.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/util/isDate.d.ts b/node_modules/rxjs/util/isDate.d.ts new file mode 100644 index 00000000..c5ebb01d --- /dev/null +++ b/node_modules/rxjs/util/isDate.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isDate'; diff --git a/node_modules/rxjs/util/isDate.js b/node_modules/rxjs/util/isDate.js new file mode 100644 index 00000000..8ab33c36 --- /dev/null +++ b/node_modules/rxjs/util/isDate.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isDate")); +//# sourceMappingURL=isDate.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isDate.js.map b/node_modules/rxjs/util/isDate.js.map new file mode 100644 index 00000000..668a2c26 --- /dev/null +++ b/node_modules/rxjs/util/isDate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isDate.js","sources":["../src/util/isDate.ts"],"names":[],"mappings":";;;;;AAAA,6CAAwC"} diff --git a/node_modules/rxjs/util/isFunction.d.ts b/node_modules/rxjs/util/isFunction.d.ts new file mode 100644 index 00000000..7b4a54a1 --- /dev/null +++ b/node_modules/rxjs/util/isFunction.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isFunction'; diff --git a/node_modules/rxjs/util/isFunction.js b/node_modules/rxjs/util/isFunction.js new file mode 100644 index 00000000..0f720e99 --- /dev/null +++ b/node_modules/rxjs/util/isFunction.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isFunction")); +//# sourceMappingURL=isFunction.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isFunction.js.map b/node_modules/rxjs/util/isFunction.js.map new file mode 100644 index 00000000..1662a616 --- /dev/null +++ b/node_modules/rxjs/util/isFunction.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isFunction.js","sources":["../src/util/isFunction.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/util/isIterable.d.ts b/node_modules/rxjs/util/isIterable.d.ts new file mode 100644 index 00000000..e7ffaae5 --- /dev/null +++ b/node_modules/rxjs/util/isIterable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isIterable'; diff --git a/node_modules/rxjs/util/isIterable.js b/node_modules/rxjs/util/isIterable.js new file mode 100644 index 00000000..59afc854 --- /dev/null +++ b/node_modules/rxjs/util/isIterable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isIterable")); +//# sourceMappingURL=isIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isIterable.js.map b/node_modules/rxjs/util/isIterable.js.map new file mode 100644 index 00000000..a7c56453 --- /dev/null +++ b/node_modules/rxjs/util/isIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isIterable.js","sources":["../src/util/isIterable.ts"],"names":[],"mappings":";;;;;AAAA,iDAA4C"} diff --git a/node_modules/rxjs/util/isNumeric.d.ts b/node_modules/rxjs/util/isNumeric.d.ts new file mode 100644 index 00000000..eeefcc22 --- /dev/null +++ b/node_modules/rxjs/util/isNumeric.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isNumeric'; diff --git a/node_modules/rxjs/util/isNumeric.js b/node_modules/rxjs/util/isNumeric.js new file mode 100644 index 00000000..ada86046 --- /dev/null +++ b/node_modules/rxjs/util/isNumeric.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isNumeric")); +//# sourceMappingURL=isNumeric.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isNumeric.js.map b/node_modules/rxjs/util/isNumeric.js.map new file mode 100644 index 00000000..4156a547 --- /dev/null +++ b/node_modules/rxjs/util/isNumeric.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isNumeric.js","sources":["../src/util/isNumeric.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/util/isObject.d.ts b/node_modules/rxjs/util/isObject.d.ts new file mode 100644 index 00000000..4b57d811 --- /dev/null +++ b/node_modules/rxjs/util/isObject.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isObject'; diff --git a/node_modules/rxjs/util/isObject.js b/node_modules/rxjs/util/isObject.js new file mode 100644 index 00000000..0a0d27fc --- /dev/null +++ b/node_modules/rxjs/util/isObject.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isObject")); +//# sourceMappingURL=isObject.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isObject.js.map b/node_modules/rxjs/util/isObject.js.map new file mode 100644 index 00000000..957d3019 --- /dev/null +++ b/node_modules/rxjs/util/isObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObject.js","sources":["../src/util/isObject.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/util/isObservable.d.ts b/node_modules/rxjs/util/isObservable.d.ts new file mode 100644 index 00000000..cdf34ca2 --- /dev/null +++ b/node_modules/rxjs/util/isObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isObservable'; diff --git a/node_modules/rxjs/util/isObservable.js b/node_modules/rxjs/util/isObservable.js new file mode 100644 index 00000000..82aaee12 --- /dev/null +++ b/node_modules/rxjs/util/isObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isObservable")); +//# sourceMappingURL=isObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isObservable.js.map b/node_modules/rxjs/util/isObservable.js.map new file mode 100644 index 00000000..0f491418 --- /dev/null +++ b/node_modules/rxjs/util/isObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isObservable.js","sources":["../src/util/isObservable.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/util/isPromise.d.ts b/node_modules/rxjs/util/isPromise.d.ts new file mode 100644 index 00000000..1494a4b6 --- /dev/null +++ b/node_modules/rxjs/util/isPromise.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isPromise'; diff --git a/node_modules/rxjs/util/isPromise.js b/node_modules/rxjs/util/isPromise.js new file mode 100644 index 00000000..9c20b95a --- /dev/null +++ b/node_modules/rxjs/util/isPromise.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isPromise")); +//# sourceMappingURL=isPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isPromise.js.map b/node_modules/rxjs/util/isPromise.js.map new file mode 100644 index 00000000..0bf0d89a --- /dev/null +++ b/node_modules/rxjs/util/isPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isPromise.js","sources":["../src/util/isPromise.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C"} diff --git a/node_modules/rxjs/util/isScheduler.d.ts b/node_modules/rxjs/util/isScheduler.d.ts new file mode 100644 index 00000000..fd1a1f21 --- /dev/null +++ b/node_modules/rxjs/util/isScheduler.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/isScheduler'; diff --git a/node_modules/rxjs/util/isScheduler.js b/node_modules/rxjs/util/isScheduler.js new file mode 100644 index 00000000..addd047d --- /dev/null +++ b/node_modules/rxjs/util/isScheduler.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/isScheduler")); +//# sourceMappingURL=isScheduler.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/isScheduler.js.map b/node_modules/rxjs/util/isScheduler.js.map new file mode 100644 index 00000000..2b8dfb03 --- /dev/null +++ b/node_modules/rxjs/util/isScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"isScheduler.js","sources":["../src/util/isScheduler.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/util/noop.d.ts b/node_modules/rxjs/util/noop.d.ts new file mode 100644 index 00000000..0fe22e1a --- /dev/null +++ b/node_modules/rxjs/util/noop.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/noop'; diff --git a/node_modules/rxjs/util/noop.js b/node_modules/rxjs/util/noop.js new file mode 100644 index 00000000..c8c32aea --- /dev/null +++ b/node_modules/rxjs/util/noop.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/noop")); +//# sourceMappingURL=noop.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/noop.js.map b/node_modules/rxjs/util/noop.js.map new file mode 100644 index 00000000..55d6e350 --- /dev/null +++ b/node_modules/rxjs/util/noop.js.map @@ -0,0 +1 @@ +{"version":3,"file":"noop.js","sources":["../src/util/noop.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"} diff --git a/node_modules/rxjs/util/not.d.ts b/node_modules/rxjs/util/not.d.ts new file mode 100644 index 00000000..38315769 --- /dev/null +++ b/node_modules/rxjs/util/not.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/not'; diff --git a/node_modules/rxjs/util/not.js b/node_modules/rxjs/util/not.js new file mode 100644 index 00000000..5ab75a32 --- /dev/null +++ b/node_modules/rxjs/util/not.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/not")); +//# sourceMappingURL=not.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/not.js.map b/node_modules/rxjs/util/not.js.map new file mode 100644 index 00000000..0b543b5b --- /dev/null +++ b/node_modules/rxjs/util/not.js.map @@ -0,0 +1 @@ +{"version":3,"file":"not.js","sources":["../src/util/not.ts"],"names":[],"mappings":";;;;;AAAA,0CAAqC"} diff --git a/node_modules/rxjs/util/pipe.d.ts b/node_modules/rxjs/util/pipe.d.ts new file mode 100644 index 00000000..da6342a4 --- /dev/null +++ b/node_modules/rxjs/util/pipe.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/pipe'; diff --git a/node_modules/rxjs/util/pipe.js b/node_modules/rxjs/util/pipe.js new file mode 100644 index 00000000..aab054cc --- /dev/null +++ b/node_modules/rxjs/util/pipe.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/pipe")); +//# sourceMappingURL=pipe.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/pipe.js.map b/node_modules/rxjs/util/pipe.js.map new file mode 100644 index 00000000..68088478 --- /dev/null +++ b/node_modules/rxjs/util/pipe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pipe.js","sources":["../src/util/pipe.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"} diff --git a/node_modules/rxjs/util/root.d.ts b/node_modules/rxjs/util/root.d.ts new file mode 100644 index 00000000..25b6c794 --- /dev/null +++ b/node_modules/rxjs/util/root.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/root'; diff --git a/node_modules/rxjs/util/root.js b/node_modules/rxjs/util/root.js new file mode 100644 index 00000000..03e889ec --- /dev/null +++ b/node_modules/rxjs/util/root.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/root")); +//# sourceMappingURL=root.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/root.js.map b/node_modules/rxjs/util/root.js.map new file mode 100644 index 00000000..fe0aa142 --- /dev/null +++ b/node_modules/rxjs/util/root.js.map @@ -0,0 +1 @@ +{"version":3,"file":"root.js","sources":["../src/util/root.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsC"} diff --git a/node_modules/rxjs/util/subscribeTo.d.ts b/node_modules/rxjs/util/subscribeTo.d.ts new file mode 100644 index 00000000..471f192b --- /dev/null +++ b/node_modules/rxjs/util/subscribeTo.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeTo'; diff --git a/node_modules/rxjs/util/subscribeTo.js b/node_modules/rxjs/util/subscribeTo.js new file mode 100644 index 00000000..f206984c --- /dev/null +++ b/node_modules/rxjs/util/subscribeTo.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/subscribeTo")); +//# sourceMappingURL=subscribeTo.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/subscribeTo.js.map b/node_modules/rxjs/util/subscribeTo.js.map new file mode 100644 index 00000000..f916ff9e --- /dev/null +++ b/node_modules/rxjs/util/subscribeTo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeTo.js","sources":["../src/util/subscribeTo.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C"} diff --git a/node_modules/rxjs/util/subscribeToArray.d.ts b/node_modules/rxjs/util/subscribeToArray.d.ts new file mode 100644 index 00000000..9220f626 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToArray.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToArray'; diff --git a/node_modules/rxjs/util/subscribeToArray.js b/node_modules/rxjs/util/subscribeToArray.js new file mode 100644 index 00000000..a64fea5f --- /dev/null +++ b/node_modules/rxjs/util/subscribeToArray.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/subscribeToArray")); +//# sourceMappingURL=subscribeToArray.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/subscribeToArray.js.map b/node_modules/rxjs/util/subscribeToArray.js.map new file mode 100644 index 00000000..c0715f3f --- /dev/null +++ b/node_modules/rxjs/util/subscribeToArray.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToArray.js","sources":["../src/util/subscribeToArray.ts"],"names":[],"mappings":";;;;;AAAA,uDAAkD"} diff --git a/node_modules/rxjs/util/subscribeToIterable.d.ts b/node_modules/rxjs/util/subscribeToIterable.d.ts new file mode 100644 index 00000000..6edb1efc --- /dev/null +++ b/node_modules/rxjs/util/subscribeToIterable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToIterable'; diff --git a/node_modules/rxjs/util/subscribeToIterable.js b/node_modules/rxjs/util/subscribeToIterable.js new file mode 100644 index 00000000..1c47e680 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToIterable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/subscribeToIterable")); +//# sourceMappingURL=subscribeToIterable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/subscribeToIterable.js.map b/node_modules/rxjs/util/subscribeToIterable.js.map new file mode 100644 index 00000000..ed148b75 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToIterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToIterable.js","sources":["../src/util/subscribeToIterable.ts"],"names":[],"mappings":";;;;;AAAA,0DAAqD"} diff --git a/node_modules/rxjs/util/subscribeToObservable.d.ts b/node_modules/rxjs/util/subscribeToObservable.d.ts new file mode 100644 index 00000000..88495b82 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToObservable.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToObservable'; diff --git a/node_modules/rxjs/util/subscribeToObservable.js b/node_modules/rxjs/util/subscribeToObservable.js new file mode 100644 index 00000000..c25a8d56 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToObservable.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/subscribeToObservable")); +//# sourceMappingURL=subscribeToObservable.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/subscribeToObservable.js.map b/node_modules/rxjs/util/subscribeToObservable.js.map new file mode 100644 index 00000000..c7419fd1 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToObservable.js","sources":["../src/util/subscribeToObservable.ts"],"names":[],"mappings":";;;;;AAAA,4DAAuD"} diff --git a/node_modules/rxjs/util/subscribeToPromise.d.ts b/node_modules/rxjs/util/subscribeToPromise.d.ts new file mode 100644 index 00000000..4540e113 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToPromise.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToPromise'; diff --git a/node_modules/rxjs/util/subscribeToPromise.js b/node_modules/rxjs/util/subscribeToPromise.js new file mode 100644 index 00000000..15c6aa3d --- /dev/null +++ b/node_modules/rxjs/util/subscribeToPromise.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/subscribeToPromise")); +//# sourceMappingURL=subscribeToPromise.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/subscribeToPromise.js.map b/node_modules/rxjs/util/subscribeToPromise.js.map new file mode 100644 index 00000000..cf2f9cc7 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToPromise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToPromise.js","sources":["../src/util/subscribeToPromise.ts"],"names":[],"mappings":";;;;;AAAA,yDAAoD"} diff --git a/node_modules/rxjs/util/subscribeToResult.d.ts b/node_modules/rxjs/util/subscribeToResult.d.ts new file mode 100644 index 00000000..2ab44ccc --- /dev/null +++ b/node_modules/rxjs/util/subscribeToResult.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/subscribeToResult'; diff --git a/node_modules/rxjs/util/subscribeToResult.js b/node_modules/rxjs/util/subscribeToResult.js new file mode 100644 index 00000000..0ce16c81 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToResult.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/subscribeToResult")); +//# sourceMappingURL=subscribeToResult.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/subscribeToResult.js.map b/node_modules/rxjs/util/subscribeToResult.js.map new file mode 100644 index 00000000..dad2ba69 --- /dev/null +++ b/node_modules/rxjs/util/subscribeToResult.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscribeToResult.js","sources":["../src/util/subscribeToResult.ts"],"names":[],"mappings":";;;;;AAAA,wDAAmD"} diff --git a/node_modules/rxjs/util/toSubscriber.d.ts b/node_modules/rxjs/util/toSubscriber.d.ts new file mode 100644 index 00000000..61e1c7f0 --- /dev/null +++ b/node_modules/rxjs/util/toSubscriber.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/toSubscriber'; diff --git a/node_modules/rxjs/util/toSubscriber.js b/node_modules/rxjs/util/toSubscriber.js new file mode 100644 index 00000000..be519c15 --- /dev/null +++ b/node_modules/rxjs/util/toSubscriber.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/toSubscriber")); +//# sourceMappingURL=toSubscriber.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/toSubscriber.js.map b/node_modules/rxjs/util/toSubscriber.js.map new file mode 100644 index 00000000..616740e1 --- /dev/null +++ b/node_modules/rxjs/util/toSubscriber.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toSubscriber.js","sources":["../src/util/toSubscriber.ts"],"names":[],"mappings":";;;;;AAAA,mDAA8C"} diff --git a/node_modules/rxjs/util/tryCatch.d.ts b/node_modules/rxjs/util/tryCatch.d.ts new file mode 100644 index 00000000..57c45c7a --- /dev/null +++ b/node_modules/rxjs/util/tryCatch.d.ts @@ -0,0 +1 @@ +export * from 'rxjs-compat/util/tryCatch'; diff --git a/node_modules/rxjs/util/tryCatch.js b/node_modules/rxjs/util/tryCatch.js new file mode 100644 index 00000000..58e4f2bf --- /dev/null +++ b/node_modules/rxjs/util/tryCatch.js @@ -0,0 +1,7 @@ +"use strict"; +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +} +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("rxjs-compat/util/tryCatch")); +//# sourceMappingURL=tryCatch.js.map \ No newline at end of file diff --git a/node_modules/rxjs/util/tryCatch.js.map b/node_modules/rxjs/util/tryCatch.js.map new file mode 100644 index 00000000..34f3abf3 --- /dev/null +++ b/node_modules/rxjs/util/tryCatch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tryCatch.js","sources":["../src/util/tryCatch.ts"],"names":[],"mappings":";;;;;AAAA,+CAA0C"} diff --git a/node_modules/rxjs/webSocket/index.d.ts b/node_modules/rxjs/webSocket/index.d.ts new file mode 100644 index 00000000..833d9504 --- /dev/null +++ b/node_modules/rxjs/webSocket/index.d.ts @@ -0,0 +1,2 @@ +export { webSocket as webSocket } from '../internal/observable/dom/webSocket'; +export { WebSocketSubject, WebSocketSubjectConfig } from '../internal/observable/dom/WebSocketSubject'; diff --git a/node_modules/rxjs/webSocket/index.js b/node_modules/rxjs/webSocket/index.js new file mode 100644 index 00000000..475f11b5 --- /dev/null +++ b/node_modules/rxjs/webSocket/index.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var webSocket_1 = require("../internal/observable/dom/webSocket"); +exports.webSocket = webSocket_1.webSocket; +var WebSocketSubject_1 = require("../internal/observable/dom/WebSocketSubject"); +exports.WebSocketSubject = WebSocketSubject_1.WebSocketSubject; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/rxjs/webSocket/index.js.map b/node_modules/rxjs/webSocket/index.js.map new file mode 100644 index 00000000..be7b7db2 --- /dev/null +++ b/node_modules/rxjs/webSocket/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/webSocket/index.ts"],"names":[],"mappings":";;AAAA,kEAA8E;AAArE,gCAAA,SAAS,CAAa;AAC/B,gFAAuG;AAA9F,8CAAA,gBAAgB,CAAA"} diff --git a/node_modules/rxjs/webSocket/package.json b/node_modules/rxjs/webSocket/package.json new file mode 100644 index 00000000..34020bde --- /dev/null +++ b/node_modules/rxjs/webSocket/package.json @@ -0,0 +1,8 @@ +{ + "name": "rxjs/webSocket", + "typings": "./index.d.ts", + "main": "./index.js", + "module": "../_esm5/webSocket/index.js", + "es2015": "../_esm2015/webSocket/index.js", + "sideEffects": false +} diff --git a/node_modules/safe-buffer/LICENSE b/node_modules/safe-buffer/LICENSE new file mode 100644 index 00000000..0c068cee --- /dev/null +++ b/node_modules/safe-buffer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/safe-buffer/README.md b/node_modules/safe-buffer/README.md new file mode 100644 index 00000000..e9a81afd --- /dev/null +++ b/node_modules/safe-buffer/README.md @@ -0,0 +1,584 @@ +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/safe-buffer +[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg +[npm-url]: https://npmjs.org/package/safe-buffer +[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** + +## install + +``` +npm install safe-buffer +``` + +## usage + +The goal of this package is to provide a safe replacement for the node.js `Buffer`. + +It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to +the top of your node.js modules: + +```js +var Buffer = require('safe-buffer').Buffer + +// Existing buffer code will continue to work without issues: + +new Buffer('hey', 'utf8') +new Buffer([1, 2, 3], 'utf8') +new Buffer(obj) +new Buffer(16) // create an uninitialized buffer (potentially unsafe) + +// But you can use these new explicit APIs to make clear what you want: + +Buffer.from('hey', 'utf8') // convert from many types to a Buffer +Buffer.alloc(16) // create a zero-filled buffer (safe) +Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe) +``` + +## api + +### Class Method: Buffer.from(array) + + +* `array` {Array} + +Allocates a new `Buffer` using an `array` of octets. + +```js +const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]); + // creates a new Buffer containing ASCII bytes + // ['b','u','f','f','e','r'] +``` + +A `TypeError` will be thrown if `array` is not an `Array`. + +### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]]) + + +* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or + a `new ArrayBuffer()` +* `byteOffset` {Number} Default: `0` +* `length` {Number} Default: `arrayBuffer.length - byteOffset` + +When passed a reference to the `.buffer` property of a `TypedArray` instance, +the newly created `Buffer` will share the same allocated memory as the +TypedArray. + +```js +const arr = new Uint16Array(2); +arr[0] = 5000; +arr[1] = 4000; + +const buf = Buffer.from(arr.buffer); // shares the memory with arr; + +console.log(buf); + // Prints: + +// changing the TypedArray changes the Buffer also +arr[1] = 6000; + +console.log(buf); + // Prints: +``` + +The optional `byteOffset` and `length` arguments specify a memory range within +the `arrayBuffer` that will be shared by the `Buffer`. + +```js +const ab = new ArrayBuffer(10); +const buf = Buffer.from(ab, 0, 2); +console.log(buf.length); + // Prints: 2 +``` + +A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`. + +### Class Method: Buffer.from(buffer) + + +* `buffer` {Buffer} + +Copies the passed `buffer` data onto a new `Buffer` instance. + +```js +const buf1 = Buffer.from('buffer'); +const buf2 = Buffer.from(buf1); + +buf1[0] = 0x61; +console.log(buf1.toString()); + // 'auffer' +console.log(buf2.toString()); + // 'buffer' (copy is not changed) +``` + +A `TypeError` will be thrown if `buffer` is not a `Buffer`. + +### Class Method: Buffer.from(str[, encoding]) + + +* `str` {String} String to encode. +* `encoding` {String} Encoding to use, Default: `'utf8'` + +Creates a new `Buffer` containing the given JavaScript string `str`. If +provided, the `encoding` parameter identifies the character encoding. +If not provided, `encoding` defaults to `'utf8'`. + +```js +const buf1 = Buffer.from('this is a tést'); +console.log(buf1.toString()); + // prints: this is a tést +console.log(buf1.toString('ascii')); + // prints: this is a tC)st + +const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); +console.log(buf2.toString()); + // prints: this is a tést +``` + +A `TypeError` will be thrown if `str` is not a string. + +### Class Method: Buffer.alloc(size[, fill[, encoding]]) + + +* `size` {Number} +* `fill` {Value} Default: `undefined` +* `encoding` {String} Default: `utf8` + +Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the +`Buffer` will be *zero-filled*. + +```js +const buf = Buffer.alloc(5); +console.log(buf); + // +``` + +The `size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +If `fill` is specified, the allocated `Buffer` will be initialized by calling +`buf.fill(fill)`. See [`buf.fill()`][] for more information. + +```js +const buf = Buffer.alloc(5, 'a'); +console.log(buf); + // +``` + +If both `fill` and `encoding` are specified, the allocated `Buffer` will be +initialized by calling `buf.fill(fill, encoding)`. For example: + +```js +const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); +console.log(buf); + // +``` + +Calling `Buffer.alloc(size)` can be significantly slower than the alternative +`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance +contents will *never contain sensitive data*. + +A `TypeError` will be thrown if `size` is not a number. + +### Class Method: Buffer.allocUnsafe(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must +be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit +architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is +thrown. A zero-length Buffer will be created if a `size` less than or equal to +0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +```js +const buf = Buffer.allocUnsafe(5); +console.log(buf); + // + // (octets will be different, every time) +buf.fill(0); +console.log(buf); + // +``` + +A `TypeError` will be thrown if `size` is not a number. + +Note that the `Buffer` module pre-allocates an internal `Buffer` instance of +size `Buffer.poolSize` that is used as a pool for the fast allocation of new +`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated +`new Buffer(size)` constructor) only when `size` is less than or equal to +`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default +value of `Buffer.poolSize` is `8192` but can be modified. + +Use of this pre-allocated internal memory pool is a key difference between +calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. +Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer +pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal +Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The +difference is subtle but can be important when an application requires the +additional performance that `Buffer.allocUnsafe(size)` provides. + +### Class Method: Buffer.allocUnsafeSlow(size) + + +* `size` {Number} + +Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The +`size` must be less than or equal to the value of +`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is +`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will +be created if a `size` less than or equal to 0 is specified. + +The underlying memory for `Buffer` instances created in this way is *not +initialized*. The contents of the newly created `Buffer` are unknown and +*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such +`Buffer` instances to zeroes. + +When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, +allocations under 4KB are, by default, sliced from a single pre-allocated +`Buffer`. This allows applications to avoid the garbage collection overhead of +creating many individually allocated Buffers. This approach improves both +performance and memory usage by eliminating the need to track and cleanup as +many `Persistent` objects. + +However, in the case where a developer may need to retain a small chunk of +memory from a pool for an indeterminate amount of time, it may be appropriate +to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then +copy out the relevant bits. + +```js +// need to keep around a few small chunks of memory +const store = []; + +socket.on('readable', () => { + const data = socket.read(); + // allocate for retained data + const sb = Buffer.allocUnsafeSlow(10); + // copy the data into the new allocation + data.copy(sb, 0, 0, 10); + store.push(sb); +}); +``` + +Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after* +a developer has observed undue memory retention in their applications. + +A `TypeError` will be thrown if `size` is not a number. + +### All the Rest + +The rest of the `Buffer` API is exactly the same as in node.js. +[See the docs](https://nodejs.org/api/buffer.html). + + +## Related links + +- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660) +- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4) + +## Why is `Buffer` unsafe? + +Today, the node.js `Buffer` constructor is overloaded to handle many different argument +types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.), +`ArrayBuffer`, and also `Number`. + +The API is optimized for convenience: you can throw any type at it, and it will try to do +what you want. + +Because the Buffer constructor is so powerful, you often see code like this: + +```js +// Convert UTF-8 strings to hex +function toHex (str) { + return new Buffer(str).toString('hex') +} +``` + +***But what happens if `toHex` is called with a `Number` argument?*** + +### Remote Memory Disclosure + +If an attacker can make your program call the `Buffer` constructor with a `Number` +argument, then they can make it allocate uninitialized memory from the node.js process. +This could potentially disclose TLS private keys, user data, or database passwords. + +When the `Buffer` constructor is passed a `Number` argument, it returns an +**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like +this, you **MUST** overwrite the contents before returning it to the user. + +From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size): + +> `new Buffer(size)` +> +> - `size` Number +> +> The underlying memory for `Buffer` instances created in this way is not initialized. +> **The contents of a newly created `Buffer` are unknown and could contain sensitive +> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes. + +(Emphasis our own.) + +Whenever the programmer intended to create an uninitialized `Buffer` you often see code +like this: + +```js +var buf = new Buffer(16) + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### Would this ever be a problem in real code? + +Yes. It's surprisingly common to forget to check the type of your variables in a +dynamically-typed language like JavaScript. + +Usually the consequences of assuming the wrong type is that your program crashes with an +uncaught exception. But the failure mode for forgetting to check the type of arguments to +the `Buffer` constructor is more catastrophic. + +Here's an example of a vulnerable service that takes a JSON payload and converts it to +hex: + +```js +// Take a JSON payload {str: "some string"} and convert it to hex +var server = http.createServer(function (req, res) { + var data = '' + req.setEncoding('utf8') + req.on('data', function (chunk) { + data += chunk + }) + req.on('end', function () { + var body = JSON.parse(data) + res.end(new Buffer(body.str).toString('hex')) + }) +}) + +server.listen(8080) +``` + +In this example, an http client just has to send: + +```json +{ + "str": 1000 +} +``` + +and it will get back 1,000 bytes of uninitialized memory from the server. + +This is a very serious bug. It's similar in severity to the +[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process +memory by remote attackers. + + +### Which real-world packages were vulnerable? + +#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht) + +[Mathias Buus](https://github.com/mafintosh) and I +([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages, +[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow +anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get +them to reveal 20 bytes at a time of uninitialized memory from the node.js process. + +Here's +[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8) +that fixed it. We released a new fixed version, created a +[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all +vulnerable versions on npm so users will get a warning to upgrade to a newer version. + +#### [`ws`](https://www.npmjs.com/package/ws) + +That got us wondering if there were other vulnerable packages. Sure enough, within a short +period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the +most popular WebSocket implementation in node.js. + +If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as +expected, then uninitialized server memory would be disclosed to the remote peer. + +These were the vulnerable methods: + +```js +socket.send(number) +socket.ping(number) +socket.pong(number) +``` + +Here's a vulnerable socket server with some echo functionality: + +```js +server.on('connection', function (socket) { + socket.on('message', function (message) { + message = JSON.parse(message) + if (message.type === 'echo') { + socket.send(message.data) // send back the user's message + } + }) +}) +``` + +`socket.send(number)` called on the server, will disclose server memory. + +Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue +was fixed, with a more detailed explanation. Props to +[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the +[Node Security Project disclosure](https://nodesecurity.io/advisories/67). + + +### What's the solution? + +It's important that node.js offers a fast way to get memory otherwise performance-critical +applications would needlessly get a lot slower. + +But we need a better way to *signal our intent* as programmers. **When we want +uninitialized memory, we should request it explicitly.** + +Sensitive functionality should not be packed into a developer-friendly API that loosely +accepts many different types. This type of API encourages the lazy practice of passing +variables in without checking the type very carefully. + +#### A new API: `Buffer.allocUnsafe(number)` + +The functionality of creating buffers with uninitialized memory should be part of another +API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that +frequently gets user input of all sorts of different types passed into it. + +```js +var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory! + +// Immediately overwrite the uninitialized buffer with data from another buffer +for (var i = 0; i < buf.length; i++) { + buf[i] = otherBuf[i] +} +``` + + +### How do we fix node.js core? + +We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as +`semver-major`) which defends against one case: + +```js +var str = 16 +new Buffer(str, 'utf8') +``` + +In this situation, it's implied that the programmer intended the first argument to be a +string, since they passed an encoding as a second argument. Today, node.js will allocate +uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not +what the programmer intended. + +But this is only a partial solution, since if the programmer does `new Buffer(variable)` +(without an `encoding` parameter) there's no way to know what they intended. If `variable` +is sometimes a number, then uninitialized memory will sometimes be returned. + +### What's the real long-term fix? + +We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when +we need uninitialized memory. But that would break 1000s of packages. + +~~We believe the best solution is to:~~ + +~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~ + +~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~ + +#### Update + +We now support adding three new APIs: + +- `Buffer.from(value)` - convert from any type to a buffer +- `Buffer.alloc(size)` - create a zero-filled buffer +- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size + +This solves the core problem that affected `ws` and `bittorrent-dht` which is +`Buffer(variable)` getting tricked into taking a number argument. + +This way, existing code continues working and the impact on the npm ecosystem will be +minimal. Over time, npm maintainers can migrate performance-critical code to use +`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`. + + +### Conclusion + +We think there's a serious design issue with the `Buffer` API as it exists today. It +promotes insecure software by putting high-risk functionality into a convenient API +with friendly "developer ergonomics". + +This wasn't merely a theoretical exercise because we found the issue in some of the +most popular npm packages. + +Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of +`buffer`. + +```js +var Buffer = require('safe-buffer').Buffer +``` + +Eventually, we hope that node.js core can switch to this new, safer behavior. We believe +the impact on the ecosystem would be minimal since it's not a breaking change. +Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while +older, insecure packages would magically become safe from this attack vector. + + +## links + +- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514) +- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67) +- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68) + + +## credit + +The original issues in `bittorrent-dht` +([disclosure](https://nodesecurity.io/advisories/68)) and +`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by +[Mathias Buus](https://github.com/mafintosh) and +[Feross Aboukhadijeh](http://feross.org/). + +Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues +and for his work running the [Node Security Project](https://nodesecurity.io/). + +Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and +auditing the code. + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org) diff --git a/node_modules/safe-buffer/index.d.ts b/node_modules/safe-buffer/index.d.ts new file mode 100644 index 00000000..e9fed809 --- /dev/null +++ b/node_modules/safe-buffer/index.d.ts @@ -0,0 +1,187 @@ +declare module "safe-buffer" { + export class Buffer { + length: number + write(string: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer', data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + */ + constructor (str: string, encoding?: string); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + */ + constructor (size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + */ + constructor (arrayBuffer: ArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + */ + constructor (array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + */ + constructor (buffer: Buffer); + prototype: Buffer; + /** + * Allocates a new Buffer using an {array} of octets. + * + * @param array + */ + static from(array: any[]): Buffer; + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer() + * @param byteOffset + * @param length + */ + static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Copies the passed {buffer} data onto a new Buffer instance. + * + * @param buffer + */ + static from(buffer: Buffer): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + * + * @param str + */ + static from(str: string, encoding?: string): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): boolean; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength(string: string, encoding?: string): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Buffer[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Buffer, buf2: Buffer): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + } +} \ No newline at end of file diff --git a/node_modules/safe-buffer/index.js b/node_modules/safe-buffer/index.js new file mode 100644 index 00000000..22438dab --- /dev/null +++ b/node_modules/safe-buffer/index.js @@ -0,0 +1,62 @@ +/* eslint-disable node/no-deprecated-api */ +var buffer = require('buffer') +var Buffer = buffer.Buffer + +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} +if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { + module.exports = buffer +} else { + // Copy properties from require('buffer') + copyProps(buffer, exports) + exports.Buffer = SafeBuffer +} + +function SafeBuffer (arg, encodingOrOffset, length) { + return Buffer(arg, encodingOrOffset, length) +} + +// Copy static methods from Buffer +copyProps(Buffer, SafeBuffer) + +SafeBuffer.from = function (arg, encodingOrOffset, length) { + if (typeof arg === 'number') { + throw new TypeError('Argument must not be a number') + } + return Buffer(arg, encodingOrOffset, length) +} + +SafeBuffer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + var buf = Buffer(size) + if (fill !== undefined) { + if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + } else { + buf.fill(0) + } + return buf +} + +SafeBuffer.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return Buffer(size) +} + +SafeBuffer.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('Argument must be a number') + } + return buffer.SlowBuffer(size) +} diff --git a/node_modules/safe-buffer/package.json b/node_modules/safe-buffer/package.json new file mode 100644 index 00000000..aa5b081c --- /dev/null +++ b/node_modules/safe-buffer/package.json @@ -0,0 +1,73 @@ +{ + "_from": "safe-buffer@5.1.2", + "_id": "safe-buffer@5.1.2", + "_inBundle": false, + "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "_location": "/safe-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "safe-buffer@5.1.2", + "name": "safe-buffer", + "escapedName": "safe-buffer", + "rawSpec": "5.1.2", + "saveSpec": null, + "fetchSpec": "5.1.2" + }, + "_requiredBy": [ + "/bl", + "/content-disposition", + "/ecdsa-sig-formatter", + "/express", + "/jwa", + "/jws", + "/mongodb", + "/mquery", + "/readable-stream", + "/request", + "/string_decoder", + "/tunnel-agent" + ], + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", + "_spec": "safe-buffer@5.1.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/safe-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Safer Node.js Buffer API", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "https://github.com/feross/safe-buffer", + "keywords": [ + "buffer", + "buffer allocate", + "node security", + "safe", + "safe-buffer", + "security", + "uninitialized" + ], + "license": "MIT", + "main": "index.js", + "name": "safe-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/safe-buffer.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + }, + "types": "index.d.ts", + "version": "5.1.2" +} diff --git a/node_modules/safer-buffer/LICENSE b/node_modules/safer-buffer/LICENSE new file mode 100644 index 00000000..4fe9e6f1 --- /dev/null +++ b/node_modules/safer-buffer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Nikita Skovoroda + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/safer-buffer/Porting-Buffer.md b/node_modules/safer-buffer/Porting-Buffer.md new file mode 100644 index 00000000..68d86bab --- /dev/null +++ b/node_modules/safer-buffer/Porting-Buffer.md @@ -0,0 +1,268 @@ +# Porting to the Buffer.from/Buffer.alloc API + + +## Overview + +- [Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x.](#variant-1) (*recommended*) +- [Variant 2: Use a polyfill](#variant-2) +- [Variant 3: manual detection, with safeguards](#variant-3) + +### Finding problematic bits of code using grep + +Just run `grep -nrE '[^a-zA-Z](Slow)?Buffer\s*\(' --exclude-dir node_modules`. + +It will find all the potentially unsafe places in your own code (with some considerably unlikely +exceptions). + +### Finding problematic bits of code using Node.js 8 + +If you’re using Node.js ≥ 8.0.0 (which is recommended), Node.js exposes multiple options that help with finding the relevant pieces of code: + +- `--trace-warnings` will make Node.js show a stack trace for this warning and other warnings that are printed by Node.js. +- `--trace-deprecation` does the same thing, but only for deprecation warnings. +- `--pending-deprecation` will show more types of deprecation warnings. In particular, it will show the `Buffer()` deprecation warning, even on Node.js 8. + +You can set these flags using an environment variable: + +```console +$ export NODE_OPTIONS='--trace-warnings --pending-deprecation' +$ cat example.js +'use strict'; +const foo = new Buffer('foo'); +$ node example.js +(node:7147) [DEP0005] DeprecationWarning: The Buffer() and new Buffer() constructors are not recommended for use due to security and usability concerns. Please use the new Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() construction methods instead. + at showFlaggedDeprecation (buffer.js:127:13) + at new Buffer (buffer.js:148:3) + at Object. (/path/to/example.js:2:13) + [... more stack trace lines ...] +``` + +### Finding problematic bits of code using linters + +Eslint rules [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +also find calls to deprecated `Buffer()` API. Those rules are included in some pre-sets. + +There is a drawback, though, that it doesn't always +[work correctly](https://github.com/chalker/safer-buffer#why-not-safe-buffer) when `Buffer` is +overriden e.g. with a polyfill, so recommended is a combination of this and some other method +described above. + + +## Variant 1: Drop support for Node.js ≤ 4.4.x and 5.0.0 — 5.9.x. + +This is the recommended solution nowadays that would imply only minimal overhead. + +The Node.js 5.x release line has been unsupported since July 2016, and the Node.js 4.x release line reaches its End of Life in April 2018 (→ [Schedule](https://github.com/nodejs/Release#release-schedule)). This means that these versions of Node.js will *not* receive any updates, even in case of security issues, so using these release lines should be avoided, if at all possible. + +What you would do in this case is to convert all `new Buffer()` or `Buffer()` calls to use `Buffer.alloc()` or `Buffer.from()`, in the following way: + +- For `new Buffer(number)`, replace it with `Buffer.alloc(number)`. +- For `new Buffer(string)` (or `new Buffer(string, encoding)`), replace it with `Buffer.from(string)` (or `Buffer.from(string, encoding)`). +- For all other combinations of arguments (these are much rarer), also replace `new Buffer(...arguments)` with `Buffer.from(...arguments)`. + +Note that `Buffer.alloc()` is also _faster_ on the current Node.js versions than +`new Buffer(size).fill(0)`, which is what you would otherwise need to ensure zero-filling. + +Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +is recommended to avoid accidential unsafe Buffer API usage. + +There is also a [JSCodeshift codemod](https://github.com/joyeecheung/node-dep-codemod#dep005) +for automatically migrating Buffer constructors to `Buffer.alloc()` or `Buffer.from()`. +Note that it currently only works with cases where the arguments are literals or where the +constructor is invoked with two arguments. + +_If you currently support those older Node.js versions and dropping them would be a semver-major change +for you, or if you support older branches of your packages, consider using [Variant 2](#variant-2) +or [Variant 3](#variant-3) on older branches, so people using those older branches will also receive +the fix. That way, you will eradicate potential issues caused by unguarded Buffer API usage and +your users will not observe a runtime deprecation warning when running your code on Node.js 10._ + + +## Variant 2: Use a polyfill + +Utilize [safer-buffer](https://www.npmjs.com/package/safer-buffer) as a polyfill to support older +Node.js versions. + +You would take exacly the same steps as in [Variant 1](#variant-1), but with a polyfill +`const Buffer = require('safer-buffer').Buffer` in all files where you use the new `Buffer` api. + +Make sure that you do not use old `new Buffer` API — in any files where the line above is added, +using old `new Buffer()` API will _throw_. It will be easy to notice that in CI, though. + +Alternatively, you could use [buffer-from](https://www.npmjs.com/package/buffer-from) and/or +[buffer-alloc](https://www.npmjs.com/package/buffer-alloc) [ponyfills](https://ponyfill.com/) — +those are great, the only downsides being 4 deps in the tree and slightly more code changes to +migrate off them (as you would be using e.g. `Buffer.from` under a different name). If you need only +`Buffer.from` polyfilled — `buffer-from` alone which comes with no extra dependencies. + +_Alternatively, you could use [safe-buffer](https://www.npmjs.com/package/safe-buffer) — it also +provides a polyfill, but takes a different approach which has +[it's drawbacks](https://github.com/chalker/safer-buffer#why-not-safe-buffer). It will allow you +to also use the older `new Buffer()` API in your code, though — but that's arguably a benefit, as +it is problematic, can cause issues in your code, and will start emitting runtime deprecation +warnings starting with Node.js 10._ + +Note that in either case, it is important that you also remove all calls to the old Buffer +API manually — just throwing in `safe-buffer` doesn't fix the problem by itself, it just provides +a polyfill for the new API. I have seen people doing that mistake. + +Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor) +or +[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md) +is recommended. + +_Don't forget to drop the polyfill usage once you drop support for Node.js < 4.5.0._ + + +## Variant 3 — manual detection, with safeguards + +This is useful if you create Buffer instances in only a few places (e.g. one), or you have your own +wrapper around them. + +### Buffer(0) + +This special case for creating empty buffers can be safely replaced with `Buffer.concat([])`, which +returns the same result all the way down to Node.js 0.8.x. + +### Buffer(notNumber) + +Before: + +```js +var buf = new Buffer(notNumber, encoding); +``` + +After: + +```js +var buf; +if (Buffer.from && Buffer.from !== Uint8Array.from) { + buf = Buffer.from(notNumber, encoding); +} else { + if (typeof notNumber === 'number') + throw new Error('The "size" argument must be of type number.'); + buf = new Buffer(notNumber, encoding); +} +``` + +`encoding` is optional. + +Note that the `typeof notNumber` before `new Buffer` is required (for cases when `notNumber` argument is not +hard-coded) and _is not caused by the deprecation of Buffer constructor_ — it's exactly _why_ the +Buffer constructor is deprecated. Ecosystem packages lacking this type-check caused numereous +security issues — situations when unsanitized user input could end up in the `Buffer(arg)` create +problems ranging from DoS to leaking sensitive information to the attacker from the process memory. + +When `notNumber` argument is hardcoded (e.g. literal `"abc"` or `[0,1,2]`), the `typeof` check can +be omitted. + +Also note that using TypeScript does not fix this problem for you — when libs written in +`TypeScript` are used from JS, or when user input ends up there — it behaves exactly as pure JS, as +all type checks are translation-time only and are not present in the actual JS code which TS +compiles to. + +### Buffer(number) + +For Node.js 0.10.x (and below) support: + +```js +var buf; +if (Buffer.alloc) { + buf = Buffer.alloc(number); +} else { + buf = new Buffer(number); + buf.fill(0); +} +``` + +Otherwise (Node.js ≥ 0.12.x): + +```js +const buf = Buffer.alloc ? Buffer.alloc(number) : new Buffer(number).fill(0); +``` + +## Regarding Buffer.allocUnsafe + +Be extra cautious when using `Buffer.allocUnsafe`: + * Don't use it if you don't have a good reason to + * e.g. you probably won't ever see a performance difference for small buffers, in fact, those + might be even faster with `Buffer.alloc()`, + * if your code is not in the hot code path — you also probably won't notice a difference, + * keep in mind that zero-filling minimizes the potential risks. + * If you use it, make sure that you never return the buffer in a partially-filled state, + * if you are writing to it sequentially — always truncate it to the actuall written length + +Errors in handling buffers allocated with `Buffer.allocUnsafe` could result in various issues, +ranged from undefined behaviour of your code to sensitive data (user input, passwords, certs) +leaking to the remote attacker. + +_Note that the same applies to `new Buffer` usage without zero-filling, depending on the Node.js +version (and lacking type checks also adds DoS to the list of potential problems)._ + + +## FAQ + + +### What is wrong with the `Buffer` constructor? + +The `Buffer` constructor could be used to create a buffer in many different ways: + +- `new Buffer(42)` creates a `Buffer` of 42 bytes. Before Node.js 8, this buffer contained + *arbitrary memory* for performance reasons, which could include anything ranging from + program source code to passwords and encryption keys. +- `new Buffer('abc')` creates a `Buffer` that contains the UTF-8-encoded version of + the string `'abc'`. A second argument could specify another encoding: For example, + `new Buffer(string, 'base64')` could be used to convert a Base64 string into the original + sequence of bytes that it represents. +- There are several other combinations of arguments. + +This meant that, in code like `var buffer = new Buffer(foo);`, *it is not possible to tell +what exactly the contents of the generated buffer are* without knowing the type of `foo`. + +Sometimes, the value of `foo` comes from an external source. For example, this function +could be exposed as a service on a web server, converting a UTF-8 string into its Base64 form: + +``` +function stringToBase64(req, res) { + // The request body should have the format of `{ string: 'foobar' }` + const rawBytes = new Buffer(req.body.string) + const encoded = rawBytes.toString('base64') + res.end({ encoded: encoded }) +} +``` + +Note that this code does *not* validate the type of `req.body.string`: + +- `req.body.string` is expected to be a string. If this is the case, all goes well. +- `req.body.string` is controlled by the client that sends the request. +- If `req.body.string` is the *number* `50`, the `rawBytes` would be 50 bytes: + - Before Node.js 8, the content would be uninitialized + - After Node.js 8, the content would be `50` bytes with the value `0` + +Because of the missing type check, an attacker could intentionally send a number +as part of the request. Using this, they can either: + +- Read uninitialized memory. This **will** leak passwords, encryption keys and other + kinds of sensitive information. (Information leak) +- Force the program to allocate a large amount of memory. For example, when specifying + `500000000` as the input value, each request will allocate 500MB of memory. + This can be used to either exhaust the memory available of a program completely + and make it crash, or slow it down significantly. (Denial of Service) + +Both of these scenarios are considered serious security issues in a real-world +web server context. + +when using `Buffer.from(req.body.string)` instead, passing a number will always +throw an exception instead, giving a controlled behaviour that can always be +handled by the program. + + +### The `Buffer()` constructor has been deprecated for a while. Is this really an issue? + +Surveys of code in the `npm` ecosystem have shown that the `Buffer()` constructor is still +widely used. This includes new code, and overall usage of such code has actually been +*increasing*. diff --git a/node_modules/safer-buffer/Readme.md b/node_modules/safer-buffer/Readme.md new file mode 100644 index 00000000..14b08229 --- /dev/null +++ b/node_modules/safer-buffer/Readme.md @@ -0,0 +1,156 @@ +# safer-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![javascript style guide][standard-image]][standard-url] [![Security Responsible Disclosure][secuirty-image]][secuirty-url] + +[travis-image]: https://travis-ci.org/ChALkeR/safer-buffer.svg?branch=master +[travis-url]: https://travis-ci.org/ChALkeR/safer-buffer +[npm-image]: https://img.shields.io/npm/v/safer-buffer.svg +[npm-url]: https://npmjs.org/package/safer-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com +[secuirty-image]: https://img.shields.io/badge/Security-Responsible%20Disclosure-green.svg +[secuirty-url]: https://github.com/nodejs/security-wg/blob/master/processes/responsible_disclosure_template.md + +Modern Buffer API polyfill without footguns, working on Node.js from 0.8 to current. + +## How to use? + +First, port all `Buffer()` and `new Buffer()` calls to `Buffer.alloc()` and `Buffer.from()` API. + +Then, to achieve compatibility with outdated Node.js versions (`<4.5.0` and 5.x `<5.9.0`), use +`const Buffer = require('safer-buffer').Buffer` in all files where you make calls to the new +Buffer API. _Use `var` instead of `const` if you need that for your Node.js version range support._ + +Also, see the +[porting Buffer](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) guide. + +## Do I need it? + +Hopefully, not — dropping support for outdated Node.js versions should be fine nowdays, and that +is the recommended path forward. You _do_ need to port to the `Buffer.alloc()` and `Buffer.from()` +though. + +See the [porting guide](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) +for a better description. + +## Why not [safe-buffer](https://npmjs.com/safe-buffer)? + +_In short: while `safe-buffer` serves as a polyfill for the new API, it allows old API usage and +itself contains footguns._ + +`safe-buffer` could be used safely to get the new API while still keeping support for older +Node.js versions (like this module), but while analyzing ecosystem usage of the old Buffer API +I found out that `safe-buffer` is itself causing problems in some cases. + +For example, consider the following snippet: + +```console +$ cat example.unsafe.js +console.log(Buffer(20)) +$ ./node-v6.13.0-linux-x64/bin/node example.unsafe.js + +$ standard example.unsafe.js +standard: Use JavaScript Standard Style (https://standardjs.com) + /home/chalker/repo/safer-buffer/example.unsafe.js:2:13: 'Buffer()' was deprecated since v6. Use 'Buffer.alloc()' or 'Buffer.from()' (use 'https://www.npmjs.com/package/safe-buffer' for '<4.5.0') instead. +``` + +This is allocates and writes to console an uninitialized chunk of memory. +[standard](https://www.npmjs.com/package/standard) linter (among others) catch that and warn people +to avoid using unsafe API. + +Let's now throw in `safe-buffer`! + +```console +$ cat example.safe-buffer.js +const Buffer = require('safe-buffer').Buffer +console.log(Buffer(20)) +$ standard example.safe-buffer.js +$ ./node-v6.13.0-linux-x64/bin/node example.safe-buffer.js + +``` + +See the problem? Adding in `safe-buffer` _magically removes the lint warning_, but the behavior +remains identiсal to what we had before, and when launched on Node.js 6.x LTS — this dumps out +chunks of uninitialized memory. +_And this code will still emit runtime warnings on Node.js 10.x and above._ + +That was done by design. I first considered changing `safe-buffer`, prohibiting old API usage or +emitting warnings on it, but that significantly diverges from `safe-buffer` design. After some +discussion, it was decided to move my approach into a separate package, and _this is that separate +package_. + +This footgun is not imaginary — I observed top-downloaded packages doing that kind of thing, +«fixing» the lint warning by blindly including `safe-buffer` without any actual changes. + +Also in some cases, even if the API _was_ migrated to use of safe Buffer API — a random pull request +can bring unsafe Buffer API usage back to the codebase by adding new calls — and that could go +unnoticed even if you have a linter prohibiting that (becase of the reason stated above), and even +pass CI. _I also observed that being done in popular packages._ + +Some examples: + * [webdriverio](https://github.com/webdriverio/webdriverio/commit/05cbd3167c12e4930f09ef7cf93b127ba4effae4#diff-124380949022817b90b622871837d56cR31) + (a module with 548 759 downloads/month), + * [websocket-stream](https://github.com/maxogden/websocket-stream/commit/c9312bd24d08271687d76da0fe3c83493871cf61) + (218 288 d/m, fix in [maxogden/websocket-stream#142](https://github.com/maxogden/websocket-stream/pull/142)), + * [node-serialport](https://github.com/node-serialport/node-serialport/commit/e8d9d2b16c664224920ce1c895199b1ce2def48c) + (113 138 d/m, fix in [node-serialport/node-serialport#1510](https://github.com/node-serialport/node-serialport/pull/1510)), + * [karma](https://github.com/karma-runner/karma/commit/3d94b8cf18c695104ca195334dc75ff054c74eec) + (3 973 193 d/m, fix in [karma-runner/karma#2947](https://github.com/karma-runner/karma/pull/2947)), + * [spdy-transport](https://github.com/spdy-http2/spdy-transport/commit/5375ac33f4a62a4f65bcfc2827447d42a5dbe8b1) + (5 970 727 d/m, fix in [spdy-http2/spdy-transport#53](https://github.com/spdy-http2/spdy-transport/pull/53)). + * And there are a lot more over the ecosystem. + +I filed a PR at +[mysticatea/eslint-plugin-node#110](https://github.com/mysticatea/eslint-plugin-node/pull/110) to +partially fix that (for cases when that lint rule is used), but it is a semver-major change for +linter rules and presets, so it would take significant time for that to reach actual setups. +_It also hasn't been released yet (2018-03-20)._ + +Also, `safer-buffer` discourages the usage of `.allocUnsafe()`, which is often done by a mistake. +It still supports it with an explicit concern barier, by placing it under +`require('safer-buffer/dangereous')`. + +## But isn't throwing bad? + +Not really. It's an error that could be noticed and fixed early, instead of causing havoc later like +unguarded `new Buffer()` calls that end up receiving user input can do. + +This package affects only the files where `var Buffer = require('safer-buffer').Buffer` was done, so +it is really simple to keep track of things and make sure that you don't mix old API usage with that. +Also, CI should hint anything that you might have missed. + +New commits, if tested, won't land new usage of unsafe Buffer API this way. +_Node.js 10.x also deals with that by printing a runtime depecation warning._ + +### Would it affect third-party modules? + +No, unless you explicitly do an awful thing like monkey-patching or overriding the built-in `Buffer`. +Don't do that. + +### But I don't want throwing… + +That is also fine! + +Also, it could be better in some cases when you don't comprehensive enough test coverage. + +In that case — just don't override `Buffer` and use +`var SaferBuffer = require('safer-buffer').Buffer` instead. + +That way, everything using `Buffer` natively would still work, but there would be two drawbacks: + +* `Buffer.from`/`Buffer.alloc` won't be polyfilled — use `SaferBuffer.from` and + `SaferBuffer.alloc` instead. +* You are still open to accidentally using the insecure deprecated API — use a linter to catch that. + +Note that using a linter to catch accidential `Buffer` constructor usage in this case is strongly +recommended. `Buffer` is not overriden in this usecase, so linters won't get confused. + +## «Without footguns»? + +Well, it is still possible to do _some_ things with `Buffer` API, e.g. accessing `.buffer` property +on older versions and duping things from there. You shouldn't do that in your code, probabably. + +The intention is to remove the most significant footguns that affect lots of packages in the +ecosystem, and to do it in the proper way. + +Also, this package doesn't protect against security issues affecting some Node.js versions, so for +usage in your own production code, it is still recommended to update to a Node.js version +[supported by upstream](https://github.com/nodejs/release#release-schedule). diff --git a/node_modules/safer-buffer/dangerous.js b/node_modules/safer-buffer/dangerous.js new file mode 100644 index 00000000..ca41fdc5 --- /dev/null +++ b/node_modules/safer-buffer/dangerous.js @@ -0,0 +1,58 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var buffer = require('buffer') +var Buffer = buffer.Buffer +var safer = require('./safer.js') +var Safer = safer.Buffer + +var dangerous = {} + +var key + +for (key in safer) { + if (!safer.hasOwnProperty(key)) continue + dangerous[key] = safer[key] +} + +var Dangereous = dangerous.Buffer = {} + +// Copy Safer API +for (key in Safer) { + if (!Safer.hasOwnProperty(key)) continue + Dangereous[key] = Safer[key] +} + +// Copy those missing unsafe methods, if they are present +for (key in Buffer) { + if (!Buffer.hasOwnProperty(key)) continue + if (Dangereous.hasOwnProperty(key)) continue + Dangereous[key] = Buffer[key] +} + +if (!Dangereous.allocUnsafe) { + Dangereous.allocUnsafe = function (size) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + return Buffer(size) + } +} + +if (!Dangereous.allocUnsafeSlow) { + Dangereous.allocUnsafeSlow = function (size) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + return buffer.SlowBuffer(size) + } +} + +module.exports = dangerous diff --git a/node_modules/safer-buffer/package.json b/node_modules/safer-buffer/package.json new file mode 100644 index 00000000..dd8108d4 --- /dev/null +++ b/node_modules/safer-buffer/package.json @@ -0,0 +1,63 @@ +{ + "_from": "safer-buffer@>= 2.1.2 < 3", + "_id": "safer-buffer@2.1.2", + "_inBundle": false, + "_integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "_location": "/safer-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "safer-buffer@>= 2.1.2 < 3", + "name": "safer-buffer", + "escapedName": "safer-buffer", + "rawSpec": ">= 2.1.2 < 3", + "saveSpec": null, + "fetchSpec": ">= 2.1.2 < 3" + }, + "_requiredBy": [ + "/asn1", + "/ecc-jsbn", + "/iconv-lite", + "/sshpk" + ], + "_resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "_shasum": "44fa161b0187b9549dd84bb91802f9bd8385cd6a", + "_spec": "safer-buffer@>= 2.1.2 < 3", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\iconv-lite", + "author": { + "name": "Nikita Skovoroda", + "email": "chalkerx@gmail.com", + "url": "https://github.com/ChALkeR" + }, + "bugs": { + "url": "https://github.com/ChALkeR/safer-buffer/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Modern Buffer API polyfill without footguns", + "devDependencies": { + "standard": "^11.0.1", + "tape": "^4.9.0" + }, + "files": [ + "Porting-Buffer.md", + "Readme.md", + "tests.js", + "dangerous.js", + "safer.js" + ], + "homepage": "https://github.com/ChALkeR/safer-buffer#readme", + "license": "MIT", + "main": "safer.js", + "name": "safer-buffer", + "repository": { + "type": "git", + "url": "git+https://github.com/ChALkeR/safer-buffer.git" + }, + "scripts": { + "browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js", + "test": "standard && tape tests.js" + }, + "version": "2.1.2" +} diff --git a/node_modules/safer-buffer/safer.js b/node_modules/safer-buffer/safer.js new file mode 100644 index 00000000..37c7e1aa --- /dev/null +++ b/node_modules/safer-buffer/safer.js @@ -0,0 +1,77 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var buffer = require('buffer') +var Buffer = buffer.Buffer + +var safer = {} + +var key + +for (key in buffer) { + if (!buffer.hasOwnProperty(key)) continue + if (key === 'SlowBuffer' || key === 'Buffer') continue + safer[key] = buffer[key] +} + +var Safer = safer.Buffer = {} +for (key in Buffer) { + if (!Buffer.hasOwnProperty(key)) continue + if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue + Safer[key] = Buffer[key] +} + +safer.Buffer.prototype = Buffer.prototype + +if (!Safer.from || Safer.from === Uint8Array.from) { + Safer.from = function (value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value) + } + if (value && typeof value.length === 'undefined') { + throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value) + } + return Buffer(value, encodingOrOffset, length) + } +} + +if (!Safer.alloc) { + Safer.alloc = function (size, fill, encoding) { + if (typeof size !== 'number') { + throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size) + } + if (size < 0 || size >= 2 * (1 << 30)) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + var buf = Buffer(size) + if (!fill || fill.length === 0) { + buf.fill(0) + } else if (typeof encoding === 'string') { + buf.fill(fill, encoding) + } else { + buf.fill(fill) + } + return buf + } +} + +if (!safer.kStringMaxLength) { + try { + safer.kStringMaxLength = process.binding('buffer').kStringMaxLength + } catch (e) { + // we can't determine kStringMaxLength in environments where process.binding + // is unsupported, so let's not set it + } +} + +if (!safer.constants) { + safer.constants = { + MAX_LENGTH: safer.kMaxLength + } + if (safer.kStringMaxLength) { + safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength + } +} + +module.exports = safer diff --git a/node_modules/safer-buffer/tests.js b/node_modules/safer-buffer/tests.js new file mode 100644 index 00000000..7ed2777c --- /dev/null +++ b/node_modules/safer-buffer/tests.js @@ -0,0 +1,406 @@ +/* eslint-disable node/no-deprecated-api */ + +'use strict' + +var test = require('tape') + +var buffer = require('buffer') + +var index = require('./') +var safer = require('./safer') +var dangerous = require('./dangerous') + +/* Inheritance tests */ + +test('Default is Safer', function (t) { + t.equal(index, safer) + t.notEqual(safer, dangerous) + t.notEqual(index, dangerous) + t.end() +}) + +test('Is not a function', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(typeof impl, 'object') + t.equal(typeof impl.Buffer, 'object') + }); + [buffer].forEach(function (impl) { + t.equal(typeof impl, 'object') + t.equal(typeof impl.Buffer, 'function') + }) + t.end() +}) + +test('Constructor throws', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.throws(function () { impl.Buffer() }) + t.throws(function () { impl.Buffer(0) }) + t.throws(function () { impl.Buffer('a') }) + t.throws(function () { impl.Buffer('a', 'utf-8') }) + t.throws(function () { return new impl.Buffer() }) + t.throws(function () { return new impl.Buffer(0) }) + t.throws(function () { return new impl.Buffer('a') }) + t.throws(function () { return new impl.Buffer('a', 'utf-8') }) + }) + t.end() +}) + +test('Safe methods exist', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(typeof impl.Buffer.alloc, 'function', 'alloc') + t.equal(typeof impl.Buffer.from, 'function', 'from') + }) + t.end() +}) + +test('Unsafe methods exist only in Dangerous', function (t) { + [index, safer].forEach(function (impl) { + t.equal(typeof impl.Buffer.allocUnsafe, 'undefined') + t.equal(typeof impl.Buffer.allocUnsafeSlow, 'undefined') + }); + [dangerous].forEach(function (impl) { + t.equal(typeof impl.Buffer.allocUnsafe, 'function') + t.equal(typeof impl.Buffer.allocUnsafeSlow, 'function') + }) + t.end() +}) + +test('Generic methods/properties are defined and equal', function (t) { + ['poolSize', 'isBuffer', 'concat', 'byteLength'].forEach(function (method) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], buffer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Built-in buffer static methods/properties are inherited', function (t) { + Object.keys(buffer).forEach(function (method) { + if (method === 'SlowBuffer' || method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], buffer[method], method) + t.notEqual(typeof impl[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Built-in Buffer static methods/properties are inherited', function (t) { + Object.keys(buffer.Buffer).forEach(function (method) { + if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], buffer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('.prototype property of Buffer is inherited', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.prototype, buffer.Buffer.prototype, 'prototype') + t.notEqual(typeof impl.Buffer.prototype, 'undefined', 'prototype') + }) + t.end() +}) + +test('All Safer methods are present in Dangerous', function (t) { + Object.keys(safer).forEach(function (method) { + if (method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], safer[method], method) + if (method !== 'kStringMaxLength') { + t.notEqual(typeof impl[method], 'undefined', method) + } + }) + }) + Object.keys(safer.Buffer).forEach(function (method) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], safer.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +test('Safe methods from Dangerous methods are present in Safer', function (t) { + Object.keys(dangerous).forEach(function (method) { + if (method === 'Buffer') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl[method], dangerous[method], method) + if (method !== 'kStringMaxLength') { + t.notEqual(typeof impl[method], 'undefined', method) + } + }) + }) + Object.keys(dangerous.Buffer).forEach(function (method) { + if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return; + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer[method], dangerous.Buffer[method], method) + t.notEqual(typeof impl.Buffer[method], 'undefined', method) + }) + }) + t.end() +}) + +/* Behaviour tests */ + +test('Methods return Buffers', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 10))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 'a'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10, 'x'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(9, 'ab'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(''))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string', 'utf-8'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([0, 42, 3]))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(new Uint8Array([0, 42, 3])))) + t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([]))) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](0))) + t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](10))) + }) + t.end() +}) + +test('Constructor is buffer.Buffer', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.alloc(0).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(0, 10).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(0, 'a').constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(10).constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(10, 'x').constructor, buffer.Buffer) + t.equal(impl.Buffer.alloc(9, 'ab').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('string').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('string', 'utf-8').constructor, buffer.Buffer) + t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').constructor, buffer.Buffer) + t.equal(impl.Buffer.from([0, 42, 3]).constructor, buffer.Buffer) + t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).constructor, buffer.Buffer) + t.equal(impl.Buffer.from([]).constructor, buffer.Buffer) + }); + [0, 10, 100].forEach(function (arg) { + t.equal(dangerous.Buffer.allocUnsafe(arg).constructor, buffer.Buffer) + t.equal(dangerous.Buffer.allocUnsafeSlow(arg).constructor, buffer.SlowBuffer(0).constructor) + }) + t.end() +}) + +test('Invalid calls throw', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.throws(function () { impl.Buffer.from(0) }) + t.throws(function () { impl.Buffer.from(10) }) + t.throws(function () { impl.Buffer.from(10, 'utf-8') }) + t.throws(function () { impl.Buffer.from('string', 'invalid encoding') }) + t.throws(function () { impl.Buffer.from(-10) }) + t.throws(function () { impl.Buffer.from(1e90) }) + t.throws(function () { impl.Buffer.from(Infinity) }) + t.throws(function () { impl.Buffer.from(-Infinity) }) + t.throws(function () { impl.Buffer.from(NaN) }) + t.throws(function () { impl.Buffer.from(null) }) + t.throws(function () { impl.Buffer.from(undefined) }) + t.throws(function () { impl.Buffer.from() }) + t.throws(function () { impl.Buffer.from({}) }) + t.throws(function () { impl.Buffer.alloc('') }) + t.throws(function () { impl.Buffer.alloc('string') }) + t.throws(function () { impl.Buffer.alloc('string', 'utf-8') }) + t.throws(function () { impl.Buffer.alloc('b25ldHdvdGhyZWU=', 'base64') }) + t.throws(function () { impl.Buffer.alloc(-10) }) + t.throws(function () { impl.Buffer.alloc(1e90) }) + t.throws(function () { impl.Buffer.alloc(2 * (1 << 30)) }) + t.throws(function () { impl.Buffer.alloc(Infinity) }) + t.throws(function () { impl.Buffer.alloc(-Infinity) }) + t.throws(function () { impl.Buffer.alloc(null) }) + t.throws(function () { impl.Buffer.alloc(undefined) }) + t.throws(function () { impl.Buffer.alloc() }) + t.throws(function () { impl.Buffer.alloc([]) }) + t.throws(function () { impl.Buffer.alloc([0, 42, 3]) }) + t.throws(function () { impl.Buffer.alloc({}) }) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.throws(function () { dangerous.Buffer[method]('') }) + t.throws(function () { dangerous.Buffer[method]('string') }) + t.throws(function () { dangerous.Buffer[method]('string', 'utf-8') }) + t.throws(function () { dangerous.Buffer[method](2 * (1 << 30)) }) + t.throws(function () { dangerous.Buffer[method](Infinity) }) + if (dangerous.Buffer[method] === buffer.Buffer.allocUnsafe) { + t.skip('Skipping, older impl of allocUnsafe coerced negative sizes to 0') + } else { + t.throws(function () { dangerous.Buffer[method](-10) }) + t.throws(function () { dangerous.Buffer[method](-1e90) }) + t.throws(function () { dangerous.Buffer[method](-Infinity) }) + } + t.throws(function () { dangerous.Buffer[method](null) }) + t.throws(function () { dangerous.Buffer[method](undefined) }) + t.throws(function () { dangerous.Buffer[method]() }) + t.throws(function () { dangerous.Buffer[method]([]) }) + t.throws(function () { dangerous.Buffer[method]([0, 42, 3]) }) + t.throws(function () { dangerous.Buffer[method]({}) }) + }) + t.end() +}) + +test('Buffers have appropriate lengths', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.equal(impl.Buffer.alloc(0).length, 0) + t.equal(impl.Buffer.alloc(10).length, 10) + t.equal(impl.Buffer.from('').length, 0) + t.equal(impl.Buffer.from('string').length, 6) + t.equal(impl.Buffer.from('string', 'utf-8').length, 6) + t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').length, 11) + t.equal(impl.Buffer.from([0, 42, 3]).length, 3) + t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).length, 3) + t.equal(impl.Buffer.from([]).length, 0) + }); + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + t.equal(dangerous.Buffer[method](0).length, 0) + t.equal(dangerous.Buffer[method](10).length, 10) + }) + t.end() +}) + +test('Buffers have appropriate lengths (2)', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true; + [ safer.Buffer.alloc, + dangerous.Buffer.allocUnsafe, + dangerous.Buffer.allocUnsafeSlow + ].forEach(function (method) { + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 1e5) + var buf = method(length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + } + }) + t.ok(ok) + t.end() +}) + +test('.alloc(size) is zero-filled and has correct length', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var buf = index.Buffer.alloc(length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + var j + for (j = 0; j < length; j++) { + if (buf[j] !== 0) ok = false + } + buf.fill(1) + for (j = 0; j < length; j++) { + if (buf[j] !== 1) ok = false + } + } + t.ok(ok) + t.end() +}) + +test('.allocUnsafe / .allocUnsafeSlow are fillable and have correct lengths', function (t) { + ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) { + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var buf = dangerous.Buffer[method](length) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + buf.fill(0, 0, length) + var j + for (j = 0; j < length; j++) { + if (buf[j] !== 0) ok = false + } + buf.fill(1, 0, length) + for (j = 0; j < length; j++) { + if (buf[j] !== 1) ok = false + } + } + t.ok(ok, method) + }) + t.end() +}) + +test('.alloc(size, fill) is `fill`-filled', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var fill = Math.round(Math.random() * 255) + var buf = index.Buffer.alloc(length, fill) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + for (var j = 0; j < length; j++) { + if (buf[j] !== fill) ok = false + } + } + t.ok(ok) + t.end() +}) + +test('.alloc(size, fill) is `fill`-filled', function (t) { + t.equal(index.Buffer.alloc, safer.Buffer.alloc) + t.equal(index.Buffer.alloc, dangerous.Buffer.alloc) + var ok = true + for (var i = 0; i < 1e2; i++) { + var length = Math.round(Math.random() * 2e6) + var fill = Math.round(Math.random() * 255) + var buf = index.Buffer.alloc(length, fill) + if (!buffer.Buffer.isBuffer(buf)) ok = false + if (buf.length !== length) ok = false + for (var j = 0; j < length; j++) { + if (buf[j] !== fill) ok = false + } + } + t.ok(ok) + t.deepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 97)) + t.notDeepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 98)) + + var tmp = new buffer.Buffer(2) + tmp.fill('ok') + if (tmp[1] === tmp[0]) { + // Outdated Node.js + t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('ooooo')) + } else { + t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('okoko')) + } + t.notDeepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('kokok')) + + t.end() +}) + +test('safer.Buffer.from returns results same as Buffer constructor', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.deepEqual(impl.Buffer.from(''), new buffer.Buffer('')) + t.deepEqual(impl.Buffer.from('string'), new buffer.Buffer('string')) + t.deepEqual(impl.Buffer.from('string', 'utf-8'), new buffer.Buffer('string', 'utf-8')) + t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), new buffer.Buffer('b25ldHdvdGhyZWU=', 'base64')) + t.deepEqual(impl.Buffer.from([0, 42, 3]), new buffer.Buffer([0, 42, 3])) + t.deepEqual(impl.Buffer.from(new Uint8Array([0, 42, 3])), new buffer.Buffer(new Uint8Array([0, 42, 3]))) + t.deepEqual(impl.Buffer.from([]), new buffer.Buffer([])) + }) + t.end() +}) + +test('safer.Buffer.from returns consistent results', function (t) { + [index, safer, dangerous].forEach(function (impl) { + t.deepEqual(impl.Buffer.from(''), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from([]), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from(new Uint8Array([])), impl.Buffer.alloc(0)) + t.deepEqual(impl.Buffer.from('string', 'utf-8'), impl.Buffer.from('string')) + t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from([115, 116, 114, 105, 110, 103])) + t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from(impl.Buffer.from('string'))) + t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), impl.Buffer.from('onetwothree')) + t.notDeepEqual(impl.Buffer.from('b25ldHdvdGhyZWU='), impl.Buffer.from('onetwothree')) + }) + t.end() +}) diff --git a/node_modules/saslprep/.editorconfig b/node_modules/saslprep/.editorconfig new file mode 100644 index 00000000..d1d8a417 --- /dev/null +++ b/node_modules/saslprep/.editorconfig @@ -0,0 +1,10 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/node_modules/saslprep/.gitattributes b/node_modules/saslprep/.gitattributes new file mode 100644 index 00000000..3ba45360 --- /dev/null +++ b/node_modules/saslprep/.gitattributes @@ -0,0 +1 @@ +*.mem binary diff --git a/node_modules/saslprep/.travis.yml b/node_modules/saslprep/.travis.yml new file mode 100644 index 00000000..0bca8265 --- /dev/null +++ b/node_modules/saslprep/.travis.yml @@ -0,0 +1,10 @@ +sudo: false +language: node_js +node_js: + - "6" + - "8" + - "10" + - "12" + +before_install: +- npm install -g npm@6 diff --git a/node_modules/saslprep/CHANGELOG.md b/node_modules/saslprep/CHANGELOG.md new file mode 100644 index 00000000..77980787 --- /dev/null +++ b/node_modules/saslprep/CHANGELOG.md @@ -0,0 +1,19 @@ +# Change Log +All notable changes to the "saslprep" package will be documented in this file. + +## [1.0.3] - 2019-05-01 + +- Correctly get code points >U+FFFF ([#5](https://github.com/reklatsmasters/saslprep/pull/5)) +- Fix perfomance downgrades from [#5](https://github.com/reklatsmasters/saslprep/pull/5). + +## [1.0.2] - 2018-09-13 + +- Reduced initialization time ([#3](https://github.com/reklatsmasters/saslprep/issues/3)) + +## [1.0.1] - 2018-06-20 + +- Reduced stack overhead of range creation ([#2](https://github.com/reklatsmasters/saslprep/pull/2)) + +## [1.0.0] - 2017-06-21 + +- First release diff --git a/node_modules/saslprep/LICENSE b/node_modules/saslprep/LICENSE new file mode 100644 index 00000000..481c7a50 --- /dev/null +++ b/node_modules/saslprep/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2014 Dmitry Tsvettsikh + +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/node_modules/saslprep/code-points.mem b/node_modules/saslprep/code-points.mem new file mode 100644 index 0000000000000000000000000000000000000000..4781b066802688bdf954d2e89bcfac967db29c09 GIT binary patch literal 419864 zcmeI*O^9Si9RTop)4e+(t{DX(dsufSM8xBQfdsOo2lf&{@FWO&5cZ;Y@FWHe%nKV~ z@sxvzw;c53DIgdRk!c;t<{;##B4%51h#=^gL^8Y6+hx^z-92x{*9;3Umv`GA&vUy%enler!HTQKkA3&c=OSJMn7j|JGjl-d;Iey^#7>ZH0(RWYm^YJNA>kJ59aOu`p6X{MHRe9bu8cD2oYvN=9*ybv z%TyjdGTZ46aN&^<{xI6U)O2~U(!G+Yl0gPYRjbu8Wx~a<(#z+pIGvPkC#O7E&NgnV zIeue)&FW_ULfI&__U^^i@bTrer0O33=x2+%W4?Qo^)pjbsxinkv-K<<-Z9O6ZEyaQ zcB_@u#{%W}q9N0;ypzw%<*<}a^^Ob|R8?1xx0U*l{Mfi-J@SG5+xHJnzAqkVA73p) zfWWZ=`LSE4W4mY|K!5-N0t5&UATSizd-XW}{r>FO4Bx#OzCAE{nLD@VvjcA?1PBnA ze}O7c;{B8P-)Ji&@Gu01QMDYyI+%*sOCglv+~@Yqqm#Pz_SKwJ*n6ekt-IE7xb$i{ z#vJ7-%1?!2rG0Ri^X0*sx?FU--CIQw%Y*Zsb~)W#QAMFvj~+Qsr{Zh=QgU=xwFC$d zAV7cs0RjXF5FkK+009C72oNAZfB*pkrx2*aLB}2IZvhtFBipAEvDq7W9J^}&<>l~& z=Z6hT7u&hviF4icy{;$Z#$Rfh)bDEDcnTt22oNAJj{^NkPm$UP5FkK+009C72oNAZ zfB*pk1PBlya5e=N=WpRu-1tFH?r+Uep=aLS_2t}!1M%`E=_N&nH;IH{&FT4 zVA2E#5FkK+009C72oNAZfB*pk1PBlyK!5-N0tDtqVE;Gx53TDIQTIm zIQs(S*`MN>nqk~d)2W{+PVszkrlxK(QxGVpFoq#!SYT-_Rh1zb5B|v}x z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5;&ITaB9pVN)CECK`w5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&USSSJU|ApFaizPsS009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7csfjJcr|DV&1wJZVz2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5LhUI)_PiQ zY@~%+y~PqBK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB=E{5NI_*|FQ%K5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7e?Yzp*ebJ}K2fB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72s8ykSewfEzdsXvos!llv!K)XN+!bACMEW{kJW7s~i{EW^`xUX5|{=UXrRtoY&_gwz< zRvE$%TJf3i_%h&Xxb|Z>^W9wXR6Vl#j!mc_rtE>35?{Z6IbwcGK;>nSRoF zHt&;$O2P80zs-^hqp)?4qhw2`7#YP=_?Tw>wDeltgbe?$_^GM=@ z?HoDm9erzgM=HMNFC|BJRZD;X0RjXF5FkK+009C72oNAZfB*pk1PBlya0-DOe>pzY z-vZ3vILv9#>4l5=+gV#xaVim;YNYBg{{HIj=YJUg^!l*j-g~>b;hnpk&0)>Sr{)*n zj_ut&1&%HR2oRWKfn%Q^H4q>`fB*pk1PBlyK!5-N0t5&UAVA>E3Jm7>U0X{dK!5-N z0t5&U__zX7c= character.codePointAt(0); +const first = x => x[0]; +const last = x => x[x.length - 1]; + +/** + * Convert provided string into an array of Unicode Code Points. + * Based on https://stackoverflow.com/a/21409165/1556249 + * and https://www.npmjs.com/package/code-point-at. + * @param {string} input + * @returns {number[]} + */ +function toCodePoints(input) { + const codepoints = []; + const size = input.length; + + for (let i = 0; i < size; i += 1) { + const before = input.charCodeAt(i); + + if (before >= 0xd800 && before <= 0xdbff && size > i + 1) { + const next = input.charCodeAt(i + 1); + + if (next >= 0xdc00 && next <= 0xdfff) { + codepoints.push((before - 0xd800) * 0x400 + next - 0xdc00 + 0x10000); + i += 1; + continue; + } + } + + codepoints.push(before); + } + + return codepoints; +} + +/** + * SASLprep. + * @param {string} input + * @param {Object} opts + * @param {boolean} opts.allowUnassigned + * @returns {string} + */ +function saslprep(input, opts = {}) { + if (typeof input !== 'string') { + throw new TypeError('Expected string.'); + } + + if (input.length === 0) { + return ''; + } + + // 1. Map + const mapped_input = toCodePoints(input) + // 1.1 mapping to space + .map(character => (mapping2space.get(character) ? 0x20 : character)) + // 1.2 mapping to nothing + .filter(character => !mapping2nothing.get(character)); + + // 2. Normalize + const normalized_input = String.fromCodePoint + .apply(null, mapped_input) + .normalize('NFKC'); + + const normalized_map = toCodePoints(normalized_input); + + // 3. Prohibit + const hasProhibited = normalized_map.some(character => + prohibited_characters.get(character) + ); + + if (hasProhibited) { + throw new Error( + 'Prohibited character, see https://tools.ietf.org/html/rfc4013#section-2.3' + ); + } + + // Unassigned Code Points + if (opts.allowUnassigned !== true) { + const hasUnassigned = normalized_map.some(character => + unassigned_code_points.get(character) + ); + + if (hasUnassigned) { + throw new Error( + 'Unassigned code point, see https://tools.ietf.org/html/rfc4013#section-2.5' + ); + } + } + + // 4. check bidi + + const hasBidiRAL = normalized_map.some(character => + bidirectional_r_al.get(character) + ); + + const hasBidiL = normalized_map.some(character => + bidirectional_l.get(character) + ); + + // 4.1 If a string contains any RandALCat character, the string MUST NOT + // contain any LCat character. + if (hasBidiRAL && hasBidiL) { + throw new Error( + 'String must not contain RandALCat and LCat at the same time,' + + ' see https://tools.ietf.org/html/rfc3454#section-6' + ); + } + + /** + * 4.2 If a string contains any RandALCat character, a RandALCat + * character MUST be the first character of the string, and a + * RandALCat character MUST be the last character of the string. + */ + + const isFirstBidiRAL = bidirectional_r_al.get( + getCodePoint(first(normalized_input)) + ); + const isLastBidiRAL = bidirectional_r_al.get( + getCodePoint(last(normalized_input)) + ); + + if (hasBidiRAL && !(isFirstBidiRAL && isLastBidiRAL)) { + throw new Error( + 'Bidirectional RandALCat character must be the first and the last' + + ' character of the string, see https://tools.ietf.org/html/rfc3454#section-6' + ); + } + + return normalized_input; +} diff --git a/node_modules/saslprep/lib/code-points.js b/node_modules/saslprep/lib/code-points.js new file mode 100644 index 00000000..222182c8 --- /dev/null +++ b/node_modules/saslprep/lib/code-points.js @@ -0,0 +1,996 @@ +'use strict'; + +const { range } = require('./util'); + +/** + * A.1 Unassigned code points in Unicode 3.2 + * @link https://tools.ietf.org/html/rfc3454#appendix-A.1 + */ +const unassigned_code_points = new Set([ + 0x0221, + ...range(0x0234, 0x024f), + ...range(0x02ae, 0x02af), + ...range(0x02ef, 0x02ff), + ...range(0x0350, 0x035f), + ...range(0x0370, 0x0373), + ...range(0x0376, 0x0379), + ...range(0x037b, 0x037d), + ...range(0x037f, 0x0383), + 0x038b, + 0x038d, + 0x03a2, + 0x03cf, + ...range(0x03f7, 0x03ff), + 0x0487, + 0x04cf, + ...range(0x04f6, 0x04f7), + ...range(0x04fa, 0x04ff), + ...range(0x0510, 0x0530), + ...range(0x0557, 0x0558), + 0x0560, + 0x0588, + ...range(0x058b, 0x0590), + 0x05a2, + 0x05ba, + ...range(0x05c5, 0x05cf), + ...range(0x05eb, 0x05ef), + ...range(0x05f5, 0x060b), + ...range(0x060d, 0x061a), + ...range(0x061c, 0x061e), + 0x0620, + ...range(0x063b, 0x063f), + ...range(0x0656, 0x065f), + ...range(0x06ee, 0x06ef), + 0x06ff, + 0x070e, + ...range(0x072d, 0x072f), + ...range(0x074b, 0x077f), + ...range(0x07b2, 0x0900), + 0x0904, + ...range(0x093a, 0x093b), + ...range(0x094e, 0x094f), + ...range(0x0955, 0x0957), + ...range(0x0971, 0x0980), + 0x0984, + ...range(0x098d, 0x098e), + ...range(0x0991, 0x0992), + 0x09a9, + 0x09b1, + ...range(0x09b3, 0x09b5), + ...range(0x09ba, 0x09bb), + 0x09bd, + ...range(0x09c5, 0x09c6), + ...range(0x09c9, 0x09ca), + ...range(0x09ce, 0x09d6), + ...range(0x09d8, 0x09db), + 0x09de, + ...range(0x09e4, 0x09e5), + ...range(0x09fb, 0x0a01), + ...range(0x0a03, 0x0a04), + ...range(0x0a0b, 0x0a0e), + ...range(0x0a11, 0x0a12), + 0x0a29, + 0x0a31, + 0x0a34, + 0x0a37, + ...range(0x0a3a, 0x0a3b), + 0x0a3d, + ...range(0x0a43, 0x0a46), + ...range(0x0a49, 0x0a4a), + ...range(0x0a4e, 0x0a58), + 0x0a5d, + ...range(0x0a5f, 0x0a65), + ...range(0x0a75, 0x0a80), + 0x0a84, + 0x0a8c, + 0x0a8e, + 0x0a92, + 0x0aa9, + 0x0ab1, + 0x0ab4, + ...range(0x0aba, 0x0abb), + 0x0ac6, + 0x0aca, + ...range(0x0ace, 0x0acf), + ...range(0x0ad1, 0x0adf), + ...range(0x0ae1, 0x0ae5), + ...range(0x0af0, 0x0b00), + 0x0b04, + ...range(0x0b0d, 0x0b0e), + ...range(0x0b11, 0x0b12), + 0x0b29, + 0x0b31, + ...range(0x0b34, 0x0b35), + ...range(0x0b3a, 0x0b3b), + ...range(0x0b44, 0x0b46), + ...range(0x0b49, 0x0b4a), + ...range(0x0b4e, 0x0b55), + ...range(0x0b58, 0x0b5b), + 0x0b5e, + ...range(0x0b62, 0x0b65), + ...range(0x0b71, 0x0b81), + 0x0b84, + ...range(0x0b8b, 0x0b8d), + 0x0b91, + ...range(0x0b96, 0x0b98), + 0x0b9b, + 0x0b9d, + ...range(0x0ba0, 0x0ba2), + ...range(0x0ba5, 0x0ba7), + ...range(0x0bab, 0x0bad), + 0x0bb6, + ...range(0x0bba, 0x0bbd), + ...range(0x0bc3, 0x0bc5), + 0x0bc9, + ...range(0x0bce, 0x0bd6), + ...range(0x0bd8, 0x0be6), + ...range(0x0bf3, 0x0c00), + 0x0c04, + 0x0c0d, + 0x0c11, + 0x0c29, + 0x0c34, + ...range(0x0c3a, 0x0c3d), + 0x0c45, + 0x0c49, + ...range(0x0c4e, 0x0c54), + ...range(0x0c57, 0x0c5f), + ...range(0x0c62, 0x0c65), + ...range(0x0c70, 0x0c81), + 0x0c84, + 0x0c8d, + 0x0c91, + 0x0ca9, + 0x0cb4, + ...range(0x0cba, 0x0cbd), + 0x0cc5, + 0x0cc9, + ...range(0x0cce, 0x0cd4), + ...range(0x0cd7, 0x0cdd), + 0x0cdf, + ...range(0x0ce2, 0x0ce5), + ...range(0x0cf0, 0x0d01), + 0x0d04, + 0x0d0d, + 0x0d11, + 0x0d29, + ...range(0x0d3a, 0x0d3d), + ...range(0x0d44, 0x0d45), + 0x0d49, + ...range(0x0d4e, 0x0d56), + ...range(0x0d58, 0x0d5f), + ...range(0x0d62, 0x0d65), + ...range(0x0d70, 0x0d81), + 0x0d84, + ...range(0x0d97, 0x0d99), + 0x0db2, + 0x0dbc, + ...range(0x0dbe, 0x0dbf), + ...range(0x0dc7, 0x0dc9), + ...range(0x0dcb, 0x0dce), + 0x0dd5, + 0x0dd7, + ...range(0x0de0, 0x0df1), + ...range(0x0df5, 0x0e00), + ...range(0x0e3b, 0x0e3e), + ...range(0x0e5c, 0x0e80), + 0x0e83, + ...range(0x0e85, 0x0e86), + 0x0e89, + ...range(0x0e8b, 0x0e8c), + ...range(0x0e8e, 0x0e93), + 0x0e98, + 0x0ea0, + 0x0ea4, + 0x0ea6, + ...range(0x0ea8, 0x0ea9), + 0x0eac, + 0x0eba, + ...range(0x0ebe, 0x0ebf), + 0x0ec5, + 0x0ec7, + ...range(0x0ece, 0x0ecf), + ...range(0x0eda, 0x0edb), + ...range(0x0ede, 0x0eff), + 0x0f48, + ...range(0x0f6b, 0x0f70), + ...range(0x0f8c, 0x0f8f), + 0x0f98, + 0x0fbd, + ...range(0x0fcd, 0x0fce), + ...range(0x0fd0, 0x0fff), + 0x1022, + 0x1028, + 0x102b, + ...range(0x1033, 0x1035), + ...range(0x103a, 0x103f), + ...range(0x105a, 0x109f), + ...range(0x10c6, 0x10cf), + ...range(0x10f9, 0x10fa), + ...range(0x10fc, 0x10ff), + ...range(0x115a, 0x115e), + ...range(0x11a3, 0x11a7), + ...range(0x11fa, 0x11ff), + 0x1207, + 0x1247, + 0x1249, + ...range(0x124e, 0x124f), + 0x1257, + 0x1259, + ...range(0x125e, 0x125f), + 0x1287, + 0x1289, + ...range(0x128e, 0x128f), + 0x12af, + 0x12b1, + ...range(0x12b6, 0x12b7), + 0x12bf, + 0x12c1, + ...range(0x12c6, 0x12c7), + 0x12cf, + 0x12d7, + 0x12ef, + 0x130f, + 0x1311, + ...range(0x1316, 0x1317), + 0x131f, + 0x1347, + ...range(0x135b, 0x1360), + ...range(0x137d, 0x139f), + ...range(0x13f5, 0x1400), + ...range(0x1677, 0x167f), + ...range(0x169d, 0x169f), + ...range(0x16f1, 0x16ff), + 0x170d, + ...range(0x1715, 0x171f), + ...range(0x1737, 0x173f), + ...range(0x1754, 0x175f), + 0x176d, + 0x1771, + ...range(0x1774, 0x177f), + ...range(0x17dd, 0x17df), + ...range(0x17ea, 0x17ff), + 0x180f, + ...range(0x181a, 0x181f), + ...range(0x1878, 0x187f), + ...range(0x18aa, 0x1dff), + ...range(0x1e9c, 0x1e9f), + ...range(0x1efa, 0x1eff), + ...range(0x1f16, 0x1f17), + ...range(0x1f1e, 0x1f1f), + ...range(0x1f46, 0x1f47), + ...range(0x1f4e, 0x1f4f), + 0x1f58, + 0x1f5a, + 0x1f5c, + 0x1f5e, + ...range(0x1f7e, 0x1f7f), + 0x1fb5, + 0x1fc5, + ...range(0x1fd4, 0x1fd5), + 0x1fdc, + ...range(0x1ff0, 0x1ff1), + 0x1ff5, + 0x1fff, + ...range(0x2053, 0x2056), + ...range(0x2058, 0x205e), + ...range(0x2064, 0x2069), + ...range(0x2072, 0x2073), + ...range(0x208f, 0x209f), + ...range(0x20b2, 0x20cf), + ...range(0x20eb, 0x20ff), + ...range(0x213b, 0x213c), + ...range(0x214c, 0x2152), + ...range(0x2184, 0x218f), + ...range(0x23cf, 0x23ff), + ...range(0x2427, 0x243f), + ...range(0x244b, 0x245f), + 0x24ff, + ...range(0x2614, 0x2615), + 0x2618, + ...range(0x267e, 0x267f), + ...range(0x268a, 0x2700), + 0x2705, + ...range(0x270a, 0x270b), + 0x2728, + 0x274c, + 0x274e, + ...range(0x2753, 0x2755), + 0x2757, + ...range(0x275f, 0x2760), + ...range(0x2795, 0x2797), + 0x27b0, + ...range(0x27bf, 0x27cf), + ...range(0x27ec, 0x27ef), + ...range(0x2b00, 0x2e7f), + 0x2e9a, + ...range(0x2ef4, 0x2eff), + ...range(0x2fd6, 0x2fef), + ...range(0x2ffc, 0x2fff), + 0x3040, + ...range(0x3097, 0x3098), + ...range(0x3100, 0x3104), + ...range(0x312d, 0x3130), + 0x318f, + ...range(0x31b8, 0x31ef), + ...range(0x321d, 0x321f), + ...range(0x3244, 0x3250), + ...range(0x327c, 0x327e), + ...range(0x32cc, 0x32cf), + 0x32ff, + ...range(0x3377, 0x337a), + ...range(0x33de, 0x33df), + 0x33ff, + ...range(0x4db6, 0x4dff), + ...range(0x9fa6, 0x9fff), + ...range(0xa48d, 0xa48f), + ...range(0xa4c7, 0xabff), + ...range(0xd7a4, 0xd7ff), + ...range(0xfa2e, 0xfa2f), + ...range(0xfa6b, 0xfaff), + ...range(0xfb07, 0xfb12), + ...range(0xfb18, 0xfb1c), + 0xfb37, + 0xfb3d, + 0xfb3f, + 0xfb42, + 0xfb45, + ...range(0xfbb2, 0xfbd2), + ...range(0xfd40, 0xfd4f), + ...range(0xfd90, 0xfd91), + ...range(0xfdc8, 0xfdcf), + ...range(0xfdfd, 0xfdff), + ...range(0xfe10, 0xfe1f), + ...range(0xfe24, 0xfe2f), + ...range(0xfe47, 0xfe48), + 0xfe53, + 0xfe67, + ...range(0xfe6c, 0xfe6f), + 0xfe75, + ...range(0xfefd, 0xfefe), + 0xff00, + ...range(0xffbf, 0xffc1), + ...range(0xffc8, 0xffc9), + ...range(0xffd0, 0xffd1), + ...range(0xffd8, 0xffd9), + ...range(0xffdd, 0xffdf), + 0xffe7, + ...range(0xffef, 0xfff8), + ...range(0x10000, 0x102ff), + 0x1031f, + ...range(0x10324, 0x1032f), + ...range(0x1034b, 0x103ff), + ...range(0x10426, 0x10427), + ...range(0x1044e, 0x1cfff), + ...range(0x1d0f6, 0x1d0ff), + ...range(0x1d127, 0x1d129), + ...range(0x1d1de, 0x1d3ff), + 0x1d455, + 0x1d49d, + ...range(0x1d4a0, 0x1d4a1), + ...range(0x1d4a3, 0x1d4a4), + ...range(0x1d4a7, 0x1d4a8), + 0x1d4ad, + 0x1d4ba, + 0x1d4bc, + 0x1d4c1, + 0x1d4c4, + 0x1d506, + ...range(0x1d50b, 0x1d50c), + 0x1d515, + 0x1d51d, + 0x1d53a, + 0x1d53f, + 0x1d545, + ...range(0x1d547, 0x1d549), + 0x1d551, + ...range(0x1d6a4, 0x1d6a7), + ...range(0x1d7ca, 0x1d7cd), + ...range(0x1d800, 0x1fffd), + ...range(0x2a6d7, 0x2f7ff), + ...range(0x2fa1e, 0x2fffd), + ...range(0x30000, 0x3fffd), + ...range(0x40000, 0x4fffd), + ...range(0x50000, 0x5fffd), + ...range(0x60000, 0x6fffd), + ...range(0x70000, 0x7fffd), + ...range(0x80000, 0x8fffd), + ...range(0x90000, 0x9fffd), + ...range(0xa0000, 0xafffd), + ...range(0xb0000, 0xbfffd), + ...range(0xc0000, 0xcfffd), + ...range(0xd0000, 0xdfffd), + 0xe0000, + ...range(0xe0002, 0xe001f), + ...range(0xe0080, 0xefffd), +]); + +/** + * B.1 Commonly mapped to nothing + * @link https://tools.ietf.org/html/rfc3454#appendix-B.1 + */ +const commonly_mapped_to_nothing = new Set([ + 0x00ad, + 0x034f, + 0x1806, + 0x180b, + 0x180c, + 0x180d, + 0x200b, + 0x200c, + 0x200d, + 0x2060, + 0xfe00, + 0xfe01, + 0xfe02, + 0xfe03, + 0xfe04, + 0xfe05, + 0xfe06, + 0xfe07, + 0xfe08, + 0xfe09, + 0xfe0a, + 0xfe0b, + 0xfe0c, + 0xfe0d, + 0xfe0e, + 0xfe0f, + 0xfeff, +]); + +/** + * C.1.2 Non-ASCII space characters + * @link https://tools.ietf.org/html/rfc3454#appendix-C.1.2 + */ +const non_ASCII_space_characters = new Set([ + 0x00a0 /* NO-BREAK SPACE */, + 0x1680 /* OGHAM SPACE MARK */, + 0x2000 /* EN QUAD */, + 0x2001 /* EM QUAD */, + 0x2002 /* EN SPACE */, + 0x2003 /* EM SPACE */, + 0x2004 /* THREE-PER-EM SPACE */, + 0x2005 /* FOUR-PER-EM SPACE */, + 0x2006 /* SIX-PER-EM SPACE */, + 0x2007 /* FIGURE SPACE */, + 0x2008 /* PUNCTUATION SPACE */, + 0x2009 /* THIN SPACE */, + 0x200a /* HAIR SPACE */, + 0x200b /* ZERO WIDTH SPACE */, + 0x202f /* NARROW NO-BREAK SPACE */, + 0x205f /* MEDIUM MATHEMATICAL SPACE */, + 0x3000 /* IDEOGRAPHIC SPACE */, +]); + +/** + * 2.3. Prohibited Output + * @type {Set} + */ +const prohibited_characters = new Set([ + ...non_ASCII_space_characters, + + /** + * C.2.1 ASCII control characters + * @link https://tools.ietf.org/html/rfc3454#appendix-C.2.1 + */ + ...range(0, 0x001f) /* [CONTROL CHARACTERS] */, + 0x007f /* DELETE */, + + /** + * C.2.2 Non-ASCII control characters + * @link https://tools.ietf.org/html/rfc3454#appendix-C.2.2 + */ + ...range(0x0080, 0x009f) /* [CONTROL CHARACTERS] */, + 0x06dd /* ARABIC END OF AYAH */, + 0x070f /* SYRIAC ABBREVIATION MARK */, + 0x180e /* MONGOLIAN VOWEL SEPARATOR */, + 0x200c /* ZERO WIDTH NON-JOINER */, + 0x200d /* ZERO WIDTH JOINER */, + 0x2028 /* LINE SEPARATOR */, + 0x2029 /* PARAGRAPH SEPARATOR */, + 0x2060 /* WORD JOINER */, + 0x2061 /* FUNCTION APPLICATION */, + 0x2062 /* INVISIBLE TIMES */, + 0x2063 /* INVISIBLE SEPARATOR */, + ...range(0x206a, 0x206f) /* [CONTROL CHARACTERS] */, + 0xfeff /* ZERO WIDTH NO-BREAK SPACE */, + ...range(0xfff9, 0xfffc) /* [CONTROL CHARACTERS] */, + ...range(0x1d173, 0x1d17a) /* [MUSICAL CONTROL CHARACTERS] */, + + /** + * C.3 Private use + * @link https://tools.ietf.org/html/rfc3454#appendix-C.3 + */ + ...range(0xe000, 0xf8ff) /* [PRIVATE USE, PLANE 0] */, + ...range(0xf0000, 0xffffd) /* [PRIVATE USE, PLANE 15] */, + ...range(0x100000, 0x10fffd) /* [PRIVATE USE, PLANE 16] */, + + /** + * C.4 Non-character code points + * @link https://tools.ietf.org/html/rfc3454#appendix-C.4 + */ + ...range(0xfdd0, 0xfdef) /* [NONCHARACTER CODE POINTS] */, + ...range(0xfffe, 0xffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x1fffe, 0x1ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x2fffe, 0x2ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x3fffe, 0x3ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x4fffe, 0x4ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x5fffe, 0x5ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x6fffe, 0x6ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x7fffe, 0x7ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x8fffe, 0x8ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x9fffe, 0x9ffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0xafffe, 0xaffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0xbfffe, 0xbffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0xcfffe, 0xcffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0xdfffe, 0xdffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0xefffe, 0xeffff) /* [NONCHARACTER CODE POINTS] */, + ...range(0x10fffe, 0x10ffff) /* [NONCHARACTER CODE POINTS] */, + + /** + * C.5 Surrogate codes + * @link https://tools.ietf.org/html/rfc3454#appendix-C.5 + */ + ...range(0xd800, 0xdfff), + + /** + * C.6 Inappropriate for plain text + * @link https://tools.ietf.org/html/rfc3454#appendix-C.6 + */ + 0xfff9 /* INTERLINEAR ANNOTATION ANCHOR */, + 0xfffa /* INTERLINEAR ANNOTATION SEPARATOR */, + 0xfffb /* INTERLINEAR ANNOTATION TERMINATOR */, + 0xfffc /* OBJECT REPLACEMENT CHARACTER */, + 0xfffd /* REPLACEMENT CHARACTER */, + + /** + * C.7 Inappropriate for canonical representation + * @link https://tools.ietf.org/html/rfc3454#appendix-C.7 + */ + ...range(0x2ff0, 0x2ffb) /* [IDEOGRAPHIC DESCRIPTION CHARACTERS] */, + + /** + * C.8 Change display properties or are deprecated + * @link https://tools.ietf.org/html/rfc3454#appendix-C.8 + */ + 0x0340 /* COMBINING GRAVE TONE MARK */, + 0x0341 /* COMBINING ACUTE TONE MARK */, + 0x200e /* LEFT-TO-RIGHT MARK */, + 0x200f /* RIGHT-TO-LEFT MARK */, + 0x202a /* LEFT-TO-RIGHT EMBEDDING */, + 0x202b /* RIGHT-TO-LEFT EMBEDDING */, + 0x202c /* POP DIRECTIONAL FORMATTING */, + 0x202d /* LEFT-TO-RIGHT OVERRIDE */, + 0x202e /* RIGHT-TO-LEFT OVERRIDE */, + 0x206a /* INHIBIT SYMMETRIC SWAPPING */, + 0x206b /* ACTIVATE SYMMETRIC SWAPPING */, + 0x206c /* INHIBIT ARABIC FORM SHAPING */, + 0x206d /* ACTIVATE ARABIC FORM SHAPING */, + 0x206e /* NATIONAL DIGIT SHAPES */, + 0x206f /* NOMINAL DIGIT SHAPES */, + + /** + * C.9 Tagging characters + * @link https://tools.ietf.org/html/rfc3454#appendix-C.9 + */ + 0xe0001 /* LANGUAGE TAG */, + ...range(0xe0020, 0xe007f) /* [TAGGING CHARACTERS] */, +]); + +/** + * D.1 Characters with bidirectional property "R" or "AL" + * @link https://tools.ietf.org/html/rfc3454#appendix-D.1 + */ +const bidirectional_r_al = new Set([ + 0x05be, + 0x05c0, + 0x05c3, + ...range(0x05d0, 0x05ea), + ...range(0x05f0, 0x05f4), + 0x061b, + 0x061f, + ...range(0x0621, 0x063a), + ...range(0x0640, 0x064a), + ...range(0x066d, 0x066f), + ...range(0x0671, 0x06d5), + 0x06dd, + ...range(0x06e5, 0x06e6), + ...range(0x06fa, 0x06fe), + ...range(0x0700, 0x070d), + 0x0710, + ...range(0x0712, 0x072c), + ...range(0x0780, 0x07a5), + 0x07b1, + 0x200f, + 0xfb1d, + ...range(0xfb1f, 0xfb28), + ...range(0xfb2a, 0xfb36), + ...range(0xfb38, 0xfb3c), + 0xfb3e, + ...range(0xfb40, 0xfb41), + ...range(0xfb43, 0xfb44), + ...range(0xfb46, 0xfbb1), + ...range(0xfbd3, 0xfd3d), + ...range(0xfd50, 0xfd8f), + ...range(0xfd92, 0xfdc7), + ...range(0xfdf0, 0xfdfc), + ...range(0xfe70, 0xfe74), + ...range(0xfe76, 0xfefc), +]); + +/** + * D.2 Characters with bidirectional property "L" + * @link https://tools.ietf.org/html/rfc3454#appendix-D.2 + */ +const bidirectional_l = new Set([ + ...range(0x0041, 0x005a), + ...range(0x0061, 0x007a), + 0x00aa, + 0x00b5, + 0x00ba, + ...range(0x00c0, 0x00d6), + ...range(0x00d8, 0x00f6), + ...range(0x00f8, 0x0220), + ...range(0x0222, 0x0233), + ...range(0x0250, 0x02ad), + ...range(0x02b0, 0x02b8), + ...range(0x02bb, 0x02c1), + ...range(0x02d0, 0x02d1), + ...range(0x02e0, 0x02e4), + 0x02ee, + 0x037a, + 0x0386, + ...range(0x0388, 0x038a), + 0x038c, + ...range(0x038e, 0x03a1), + ...range(0x03a3, 0x03ce), + ...range(0x03d0, 0x03f5), + ...range(0x0400, 0x0482), + ...range(0x048a, 0x04ce), + ...range(0x04d0, 0x04f5), + ...range(0x04f8, 0x04f9), + ...range(0x0500, 0x050f), + ...range(0x0531, 0x0556), + ...range(0x0559, 0x055f), + ...range(0x0561, 0x0587), + 0x0589, + 0x0903, + ...range(0x0905, 0x0939), + ...range(0x093d, 0x0940), + ...range(0x0949, 0x094c), + 0x0950, + ...range(0x0958, 0x0961), + ...range(0x0964, 0x0970), + ...range(0x0982, 0x0983), + ...range(0x0985, 0x098c), + ...range(0x098f, 0x0990), + ...range(0x0993, 0x09a8), + ...range(0x09aa, 0x09b0), + 0x09b2, + ...range(0x09b6, 0x09b9), + ...range(0x09be, 0x09c0), + ...range(0x09c7, 0x09c8), + ...range(0x09cb, 0x09cc), + 0x09d7, + ...range(0x09dc, 0x09dd), + ...range(0x09df, 0x09e1), + ...range(0x09e6, 0x09f1), + ...range(0x09f4, 0x09fa), + ...range(0x0a05, 0x0a0a), + ...range(0x0a0f, 0x0a10), + ...range(0x0a13, 0x0a28), + ...range(0x0a2a, 0x0a30), + ...range(0x0a32, 0x0a33), + ...range(0x0a35, 0x0a36), + ...range(0x0a38, 0x0a39), + ...range(0x0a3e, 0x0a40), + ...range(0x0a59, 0x0a5c), + 0x0a5e, + ...range(0x0a66, 0x0a6f), + ...range(0x0a72, 0x0a74), + 0x0a83, + ...range(0x0a85, 0x0a8b), + 0x0a8d, + ...range(0x0a8f, 0x0a91), + ...range(0x0a93, 0x0aa8), + ...range(0x0aaa, 0x0ab0), + ...range(0x0ab2, 0x0ab3), + ...range(0x0ab5, 0x0ab9), + ...range(0x0abd, 0x0ac0), + 0x0ac9, + ...range(0x0acb, 0x0acc), + 0x0ad0, + 0x0ae0, + ...range(0x0ae6, 0x0aef), + ...range(0x0b02, 0x0b03), + ...range(0x0b05, 0x0b0c), + ...range(0x0b0f, 0x0b10), + ...range(0x0b13, 0x0b28), + ...range(0x0b2a, 0x0b30), + ...range(0x0b32, 0x0b33), + ...range(0x0b36, 0x0b39), + ...range(0x0b3d, 0x0b3e), + 0x0b40, + ...range(0x0b47, 0x0b48), + ...range(0x0b4b, 0x0b4c), + 0x0b57, + ...range(0x0b5c, 0x0b5d), + ...range(0x0b5f, 0x0b61), + ...range(0x0b66, 0x0b70), + 0x0b83, + ...range(0x0b85, 0x0b8a), + ...range(0x0b8e, 0x0b90), + ...range(0x0b92, 0x0b95), + ...range(0x0b99, 0x0b9a), + 0x0b9c, + ...range(0x0b9e, 0x0b9f), + ...range(0x0ba3, 0x0ba4), + ...range(0x0ba8, 0x0baa), + ...range(0x0bae, 0x0bb5), + ...range(0x0bb7, 0x0bb9), + ...range(0x0bbe, 0x0bbf), + ...range(0x0bc1, 0x0bc2), + ...range(0x0bc6, 0x0bc8), + ...range(0x0bca, 0x0bcc), + 0x0bd7, + ...range(0x0be7, 0x0bf2), + ...range(0x0c01, 0x0c03), + ...range(0x0c05, 0x0c0c), + ...range(0x0c0e, 0x0c10), + ...range(0x0c12, 0x0c28), + ...range(0x0c2a, 0x0c33), + ...range(0x0c35, 0x0c39), + ...range(0x0c41, 0x0c44), + ...range(0x0c60, 0x0c61), + ...range(0x0c66, 0x0c6f), + ...range(0x0c82, 0x0c83), + ...range(0x0c85, 0x0c8c), + ...range(0x0c8e, 0x0c90), + ...range(0x0c92, 0x0ca8), + ...range(0x0caa, 0x0cb3), + ...range(0x0cb5, 0x0cb9), + 0x0cbe, + ...range(0x0cc0, 0x0cc4), + ...range(0x0cc7, 0x0cc8), + ...range(0x0cca, 0x0ccb), + ...range(0x0cd5, 0x0cd6), + 0x0cde, + ...range(0x0ce0, 0x0ce1), + ...range(0x0ce6, 0x0cef), + ...range(0x0d02, 0x0d03), + ...range(0x0d05, 0x0d0c), + ...range(0x0d0e, 0x0d10), + ...range(0x0d12, 0x0d28), + ...range(0x0d2a, 0x0d39), + ...range(0x0d3e, 0x0d40), + ...range(0x0d46, 0x0d48), + ...range(0x0d4a, 0x0d4c), + 0x0d57, + ...range(0x0d60, 0x0d61), + ...range(0x0d66, 0x0d6f), + ...range(0x0d82, 0x0d83), + ...range(0x0d85, 0x0d96), + ...range(0x0d9a, 0x0db1), + ...range(0x0db3, 0x0dbb), + 0x0dbd, + ...range(0x0dc0, 0x0dc6), + ...range(0x0dcf, 0x0dd1), + ...range(0x0dd8, 0x0ddf), + ...range(0x0df2, 0x0df4), + ...range(0x0e01, 0x0e30), + ...range(0x0e32, 0x0e33), + ...range(0x0e40, 0x0e46), + ...range(0x0e4f, 0x0e5b), + ...range(0x0e81, 0x0e82), + 0x0e84, + ...range(0x0e87, 0x0e88), + 0x0e8a, + 0x0e8d, + ...range(0x0e94, 0x0e97), + ...range(0x0e99, 0x0e9f), + ...range(0x0ea1, 0x0ea3), + 0x0ea5, + 0x0ea7, + ...range(0x0eaa, 0x0eab), + ...range(0x0ead, 0x0eb0), + ...range(0x0eb2, 0x0eb3), + 0x0ebd, + ...range(0x0ec0, 0x0ec4), + 0x0ec6, + ...range(0x0ed0, 0x0ed9), + ...range(0x0edc, 0x0edd), + ...range(0x0f00, 0x0f17), + ...range(0x0f1a, 0x0f34), + 0x0f36, + 0x0f38, + ...range(0x0f3e, 0x0f47), + ...range(0x0f49, 0x0f6a), + 0x0f7f, + 0x0f85, + ...range(0x0f88, 0x0f8b), + ...range(0x0fbe, 0x0fc5), + ...range(0x0fc7, 0x0fcc), + 0x0fcf, + ...range(0x1000, 0x1021), + ...range(0x1023, 0x1027), + ...range(0x1029, 0x102a), + 0x102c, + 0x1031, + 0x1038, + ...range(0x1040, 0x1057), + ...range(0x10a0, 0x10c5), + ...range(0x10d0, 0x10f8), + 0x10fb, + ...range(0x1100, 0x1159), + ...range(0x115f, 0x11a2), + ...range(0x11a8, 0x11f9), + ...range(0x1200, 0x1206), + ...range(0x1208, 0x1246), + 0x1248, + ...range(0x124a, 0x124d), + ...range(0x1250, 0x1256), + 0x1258, + ...range(0x125a, 0x125d), + ...range(0x1260, 0x1286), + 0x1288, + ...range(0x128a, 0x128d), + ...range(0x1290, 0x12ae), + 0x12b0, + ...range(0x12b2, 0x12b5), + ...range(0x12b8, 0x12be), + 0x12c0, + ...range(0x12c2, 0x12c5), + ...range(0x12c8, 0x12ce), + ...range(0x12d0, 0x12d6), + ...range(0x12d8, 0x12ee), + ...range(0x12f0, 0x130e), + 0x1310, + ...range(0x1312, 0x1315), + ...range(0x1318, 0x131e), + ...range(0x1320, 0x1346), + ...range(0x1348, 0x135a), + ...range(0x1361, 0x137c), + ...range(0x13a0, 0x13f4), + ...range(0x1401, 0x1676), + ...range(0x1681, 0x169a), + ...range(0x16a0, 0x16f0), + ...range(0x1700, 0x170c), + ...range(0x170e, 0x1711), + ...range(0x1720, 0x1731), + ...range(0x1735, 0x1736), + ...range(0x1740, 0x1751), + ...range(0x1760, 0x176c), + ...range(0x176e, 0x1770), + ...range(0x1780, 0x17b6), + ...range(0x17be, 0x17c5), + ...range(0x17c7, 0x17c8), + ...range(0x17d4, 0x17da), + 0x17dc, + ...range(0x17e0, 0x17e9), + ...range(0x1810, 0x1819), + ...range(0x1820, 0x1877), + ...range(0x1880, 0x18a8), + ...range(0x1e00, 0x1e9b), + ...range(0x1ea0, 0x1ef9), + ...range(0x1f00, 0x1f15), + ...range(0x1f18, 0x1f1d), + ...range(0x1f20, 0x1f45), + ...range(0x1f48, 0x1f4d), + ...range(0x1f50, 0x1f57), + 0x1f59, + 0x1f5b, + 0x1f5d, + ...range(0x1f5f, 0x1f7d), + ...range(0x1f80, 0x1fb4), + ...range(0x1fb6, 0x1fbc), + 0x1fbe, + ...range(0x1fc2, 0x1fc4), + ...range(0x1fc6, 0x1fcc), + ...range(0x1fd0, 0x1fd3), + ...range(0x1fd6, 0x1fdb), + ...range(0x1fe0, 0x1fec), + ...range(0x1ff2, 0x1ff4), + ...range(0x1ff6, 0x1ffc), + 0x200e, + 0x2071, + 0x207f, + 0x2102, + 0x2107, + ...range(0x210a, 0x2113), + 0x2115, + ...range(0x2119, 0x211d), + 0x2124, + 0x2126, + 0x2128, + ...range(0x212a, 0x212d), + ...range(0x212f, 0x2131), + ...range(0x2133, 0x2139), + ...range(0x213d, 0x213f), + ...range(0x2145, 0x2149), + ...range(0x2160, 0x2183), + ...range(0x2336, 0x237a), + 0x2395, + ...range(0x249c, 0x24e9), + ...range(0x3005, 0x3007), + ...range(0x3021, 0x3029), + ...range(0x3031, 0x3035), + ...range(0x3038, 0x303c), + ...range(0x3041, 0x3096), + ...range(0x309d, 0x309f), + ...range(0x30a1, 0x30fa), + ...range(0x30fc, 0x30ff), + ...range(0x3105, 0x312c), + ...range(0x3131, 0x318e), + ...range(0x3190, 0x31b7), + ...range(0x31f0, 0x321c), + ...range(0x3220, 0x3243), + ...range(0x3260, 0x327b), + ...range(0x327f, 0x32b0), + ...range(0x32c0, 0x32cb), + ...range(0x32d0, 0x32fe), + ...range(0x3300, 0x3376), + ...range(0x337b, 0x33dd), + ...range(0x33e0, 0x33fe), + ...range(0x3400, 0x4db5), + ...range(0x4e00, 0x9fa5), + ...range(0xa000, 0xa48c), + ...range(0xac00, 0xd7a3), + ...range(0xd800, 0xfa2d), + ...range(0xfa30, 0xfa6a), + ...range(0xfb00, 0xfb06), + ...range(0xfb13, 0xfb17), + ...range(0xff21, 0xff3a), + ...range(0xff41, 0xff5a), + ...range(0xff66, 0xffbe), + ...range(0xffc2, 0xffc7), + ...range(0xffca, 0xffcf), + ...range(0xffd2, 0xffd7), + ...range(0xffda, 0xffdc), + ...range(0x10300, 0x1031e), + ...range(0x10320, 0x10323), + ...range(0x10330, 0x1034a), + ...range(0x10400, 0x10425), + ...range(0x10428, 0x1044d), + ...range(0x1d000, 0x1d0f5), + ...range(0x1d100, 0x1d126), + ...range(0x1d12a, 0x1d166), + ...range(0x1d16a, 0x1d172), + ...range(0x1d183, 0x1d184), + ...range(0x1d18c, 0x1d1a9), + ...range(0x1d1ae, 0x1d1dd), + ...range(0x1d400, 0x1d454), + ...range(0x1d456, 0x1d49c), + ...range(0x1d49e, 0x1d49f), + 0x1d4a2, + ...range(0x1d4a5, 0x1d4a6), + ...range(0x1d4a9, 0x1d4ac), + ...range(0x1d4ae, 0x1d4b9), + 0x1d4bb, + ...range(0x1d4bd, 0x1d4c0), + ...range(0x1d4c2, 0x1d4c3), + ...range(0x1d4c5, 0x1d505), + ...range(0x1d507, 0x1d50a), + ...range(0x1d50d, 0x1d514), + ...range(0x1d516, 0x1d51c), + ...range(0x1d51e, 0x1d539), + ...range(0x1d53b, 0x1d53e), + ...range(0x1d540, 0x1d544), + 0x1d546, + ...range(0x1d54a, 0x1d550), + ...range(0x1d552, 0x1d6a3), + ...range(0x1d6a8, 0x1d7c9), + ...range(0x20000, 0x2a6d6), + ...range(0x2f800, 0x2fa1d), + ...range(0xf0000, 0xffffd), + ...range(0x100000, 0x10fffd), +]); + +module.exports = { + unassigned_code_points, + commonly_mapped_to_nothing, + non_ASCII_space_characters, + prohibited_characters, + bidirectional_r_al, + bidirectional_l, +}; diff --git a/node_modules/saslprep/lib/memory-code-points.js b/node_modules/saslprep/lib/memory-code-points.js new file mode 100644 index 00000000..cb0289c8 --- /dev/null +++ b/node_modules/saslprep/lib/memory-code-points.js @@ -0,0 +1,39 @@ +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const bitfield = require('sparse-bitfield'); + +/* eslint-disable-next-line security/detect-non-literal-fs-filename */ +const memory = fs.readFileSync(path.resolve(__dirname, '../code-points.mem')); +let offset = 0; + +/** + * Loads each code points sequence from buffer. + * @returns {bitfield} + */ +function read() { + const size = memory.readUInt32BE(offset); + offset += 4; + + const codepoints = memory.slice(offset, offset + size); + offset += size; + + return bitfield({ buffer: codepoints }); +} + +const unassigned_code_points = read(); +const commonly_mapped_to_nothing = read(); +const non_ASCII_space_characters = read(); +const prohibited_characters = read(); +const bidirectional_r_al = read(); +const bidirectional_l = read(); + +module.exports = { + unassigned_code_points, + commonly_mapped_to_nothing, + non_ASCII_space_characters, + prohibited_characters, + bidirectional_r_al, + bidirectional_l, +}; diff --git a/node_modules/saslprep/lib/util.js b/node_modules/saslprep/lib/util.js new file mode 100644 index 00000000..506bdc99 --- /dev/null +++ b/node_modules/saslprep/lib/util.js @@ -0,0 +1,21 @@ +'use strict'; + +/** + * Create an array of numbers. + * @param {number} from + * @param {number} to + * @returns {number[]} + */ +function range(from, to) { + // TODO: make this inlined. + const list = new Array(to - from + 1); + + for (let i = 0; i < list.length; i += 1) { + list[i] = from + i; + } + return list; +} + +module.exports = { + range, +}; diff --git a/node_modules/saslprep/package.json b/node_modules/saslprep/package.json new file mode 100644 index 00000000..8f769012 --- /dev/null +++ b/node_modules/saslprep/package.json @@ -0,0 +1,100 @@ +{ + "_from": "saslprep@^1.0.0", + "_id": "saslprep@1.0.3", + "_inBundle": false, + "_integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "_location": "/saslprep", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "saslprep@^1.0.0", + "name": "saslprep", + "escapedName": "saslprep", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/mongodb" + ], + "_resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "_shasum": "4c02f946b56cf54297e347ba1093e7acac4cf226", + "_spec": "saslprep@^1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\mongodb", + "author": { + "name": "Dmitry Tsvettsikh", + "email": "me@reklatsmasters.com" + }, + "bugs": { + "url": "https://github.com/reklatsmasters/saslprep/issues" + }, + "bundleDependencies": false, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "deprecated": false, + "description": "SASLprep: Stringprep Profile for User Names and Passwords, rfc4013.", + "devDependencies": { + "@nodertc/eslint-config": "^0.2.1", + "eslint": "^5.16.0", + "jest": "^23.6.0", + "prettier": "^1.14.3" + }, + "engines": { + "node": ">=6" + }, + "eslintConfig": { + "extends": "@nodertc", + "rules": { + "camelcase": "off", + "no-continue": "off" + }, + "overrides": [ + { + "files": [ + "test/*.js" + ], + "env": { + "jest": true + }, + "rules": { + "require-jsdoc": "off" + } + } + ] + }, + "homepage": "https://github.com/reklatsmasters/saslprep#readme", + "jest": { + "modulePaths": [ + "" + ], + "testMatch": [ + "**/test/*.js" + ], + "testPathIgnorePatterns": [ + "/node_modules/" + ] + }, + "keywords": [ + "sasl", + "saslprep", + "stringprep", + "rfc4013", + "4013" + ], + "license": "MIT", + "main": "index.js", + "name": "saslprep", + "repository": { + "type": "git", + "url": "git+https://github.com/reklatsmasters/saslprep.git" + }, + "scripts": { + "gen-code-points": "node generate-code-points.js > code-points.mem", + "lint": "npx eslint --quiet .", + "test": "npm run lint && npm run unit-test", + "unit-test": "npx jest" + }, + "version": "1.0.3" +} diff --git a/node_modules/saslprep/readme.md b/node_modules/saslprep/readme.md new file mode 100644 index 00000000..8ff3d70d --- /dev/null +++ b/node_modules/saslprep/readme.md @@ -0,0 +1,31 @@ +# saslprep +[![Build Status](https://travis-ci.org/reklatsmasters/saslprep.svg?branch=master)](https://travis-ci.org/reklatsmasters/saslprep) +[![npm](https://img.shields.io/npm/v/saslprep.svg)](https://npmjs.org/package/saslprep) +[![node](https://img.shields.io/node/v/saslprep.svg)](https://npmjs.org/package/saslprep) +[![license](https://img.shields.io/npm/l/saslprep.svg)](https://npmjs.org/package/saslprep) +[![downloads](https://img.shields.io/npm/dm/saslprep.svg)](https://npmjs.org/package/saslprep) + +Stringprep Profile for User Names and Passwords, [rfc4013](https://tools.ietf.org/html/rfc4013) + +### Usage + +```js +const saslprep = require('saslprep') + +saslprep('password\u00AD') // password +saslprep('password\u0007') // Error: prohibited character +``` + +### API + +##### `saslprep(input: String, opts: Options): String` + +Normalize user name or password. + +##### `Options.allowUnassigned: bool` + +A special behavior for unassigned code points, see https://tools.ietf.org/html/rfc4013#section-2.5. Disabled by default. + +## License + +MIT, 2017-2019 (c) Dmitriy Tsvettsikh diff --git a/node_modules/saslprep/test/index.js b/node_modules/saslprep/test/index.js new file mode 100644 index 00000000..80c71af5 --- /dev/null +++ b/node_modules/saslprep/test/index.js @@ -0,0 +1,76 @@ +'use strict'; + +const saslprep = require('..'); + +const chr = String.fromCodePoint; + +test('should work with liatin letters', () => { + const str = 'user'; + expect(saslprep(str)).toEqual(str); +}); + +test('should work be case preserved', () => { + const str = 'USER'; + expect(saslprep(str)).toEqual(str); +}); + +test('should work with high code points (> U+FFFF)', () => { + const str = '\uD83D\uDE00'; + expect(saslprep(str, { allowUnassigned: true })).toEqual(str); +}); + +test('should remove `mapped to nothing` characters', () => { + expect(saslprep('I\u00ADX')).toEqual('IX'); +}); + +test('should replace `Non-ASCII space characters` with space', () => { + expect(saslprep('a\u00A0b')).toEqual('a\u0020b'); +}); + +test('should normalize as NFKC', () => { + expect(saslprep('\u00AA')).toEqual('a'); + expect(saslprep('\u2168')).toEqual('IX'); +}); + +test('should throws when prohibited characters', () => { + // C.2.1 ASCII control characters + expect(() => saslprep('a\u007Fb')).toThrow(); + + // C.2.2 Non-ASCII control characters + expect(() => saslprep('a\u06DDb')).toThrow(); + + // C.3 Private use + expect(() => saslprep('a\uE000b')).toThrow(); + + // C.4 Non-character code points + expect(() => saslprep(`a${chr(0x1fffe)}b`)).toThrow(); + + // C.5 Surrogate codes + expect(() => saslprep('a\uD800b')).toThrow(); + + // C.6 Inappropriate for plain text + expect(() => saslprep('a\uFFF9b')).toThrow(); + + // C.7 Inappropriate for canonical representation + expect(() => saslprep('a\u2FF0b')).toThrow(); + + // C.8 Change display properties or are deprecated + expect(() => saslprep('a\u200Eb')).toThrow(); + + // C.9 Tagging characters + expect(() => saslprep(`a${chr(0xe0001)}b`)).toThrow(); +}); + +test('should not containt RandALCat and LCat bidi', () => { + expect(() => saslprep('a\u06DD\u00AAb')).toThrow(); +}); + +test('RandALCat should be first and last', () => { + expect(() => saslprep('\u0627\u0031\u0628')).not.toThrow(); + expect(() => saslprep('\u0627\u0031')).toThrow(); +}); + +test('should handle unassigned code points', () => { + expect(() => saslprep('a\u0487')).toThrow(); + expect(() => saslprep('a\u0487', { allowUnassigned: true })).not.toThrow(); +}); diff --git a/node_modules/saslprep/test/util.js b/node_modules/saslprep/test/util.js new file mode 100644 index 00000000..355db3f8 --- /dev/null +++ b/node_modules/saslprep/test/util.js @@ -0,0 +1,16 @@ +'use strict'; + +const { setFlagsFromString } = require('v8'); +const { range } = require('../lib/util'); + +// 984 by default. +setFlagsFromString('--stack_size=500'); + +test('should work', () => { + const list = range(1, 3); + expect(list).toEqual([1, 2, 3]); +}); + +test('should work for large ranges', () => { + expect(() => range(1, 1e6)).not.toThrow(); +}); diff --git a/node_modules/semver-diff/index.d.ts b/node_modules/semver-diff/index.d.ts new file mode 100644 index 00000000..d6f6a427 --- /dev/null +++ b/node_modules/semver-diff/index.d.ts @@ -0,0 +1,58 @@ +declare namespace semverDiff { + type Result = + | 'major' + | 'premajor' + | 'minor' + | 'preminor' + | 'patch' + | 'prepatch' + | 'prerelease' + | 'build'; +} + +/** +Get the diff type of two [semver](https://github.com/npm/node-semver) versions: `0.0.1 0.0.2` → `patch`. + +@returns The difference type between two semver versions, or `undefined` if they're identical or the second one is lower than the first. + +@example +``` +import semverDiff = require('semver-diff'); + +semverDiff('1.1.1', '1.1.2'); +//=> 'patch' + +semverDiff('1.1.1-foo', '1.1.2'); +//=> 'prepatch' + +semverDiff('0.0.1', '1.0.0'); +//=> 'major' + +semverDiff('0.0.1-foo', '1.0.0'); +//=> 'premajor' + +semverDiff('0.0.1', '0.1.0'); +//=> 'minor' + +semverDiff('0.0.1-foo', '0.1.0'); +//=> 'preminor' + +semverDiff('0.0.1-foo', '0.0.1-foo.bar'); +//=> 'prerelease' + +semverDiff('0.1.0', '0.1.0+foo'); +//=> 'build' + +semverDiff('0.0.1', '0.0.1'); +//=> undefined + +semverDiff('0.0.2', '0.0.1'); +//=> undefined +``` +*/ +declare function semverDiff( + versionA: string, + versionB: string +): semverDiff.Result | undefined; + +export = semverDiff; diff --git a/node_modules/semver-diff/index.js b/node_modules/semver-diff/index.js new file mode 100644 index 00000000..55218015 --- /dev/null +++ b/node_modules/semver-diff/index.js @@ -0,0 +1,13 @@ +'use strict'; +const semver = require('semver'); + +module.exports = (versionA, versionB) => { + versionA = semver.parse(versionA); + versionB = semver.parse(versionB); + + if (semver.compareBuild(versionA, versionB) >= 0) { + return; + } + + return semver.diff(versionA, versionB) || 'build'; +}; diff --git a/node_modules/semver-diff/license b/node_modules/semver-diff/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/semver-diff/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/semver-diff/node_modules/.bin/semver b/node_modules/semver-diff/node_modules/.bin/semver new file mode 100644 index 00000000..7e365277 --- /dev/null +++ b/node_modules/semver-diff/node_modules/.bin/semver @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" + ret=$? +else + node "$basedir/../semver/bin/semver.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/semver-diff/node_modules/.bin/semver.cmd b/node_modules/semver-diff/node_modules/.bin/semver.cmd new file mode 100644 index 00000000..164cdeac --- /dev/null +++ b/node_modules/semver-diff/node_modules/.bin/semver.cmd @@ -0,0 +1,17 @@ +@ECHO off +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +"%_prog%" "%dp0%\..\semver\bin\semver.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/node_modules/semver-diff/node_modules/.bin/semver.ps1 b/node_modules/semver-diff/node_modules/.bin/semver.ps1 new file mode 100644 index 00000000..6a85e340 --- /dev/null +++ b/node_modules/semver-diff/node_modules/.bin/semver.ps1 @@ -0,0 +1,18 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args + $ret=$LASTEXITCODE +} else { + & "node$exe" "$basedir/../semver/bin/semver.js" $args + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/semver-diff/node_modules/semver/CHANGELOG.md b/node_modules/semver-diff/node_modules/semver/CHANGELOG.md new file mode 100644 index 00000000..f567dd3f --- /dev/null +++ b/node_modules/semver-diff/node_modules/semver/CHANGELOG.md @@ -0,0 +1,70 @@ +# changes log + +## 6.2.0 + +* Coerce numbers to strings when passed to semver.coerce() +* Add `rtl` option to coerce from right to left + +## 6.1.3 + +* Handle X-ranges properly in includePrerelease mode + +## 6.1.2 + +* Do not throw when testing invalid version strings + +## 6.1.1 + +* Add options support for semver.coerce() +* Handle undefined version passed to Range.test + +## 6.1.0 + +* Add semver.compareBuild function +* Support `*` in semver.intersects + +## 6.0 + +* Fix `intersects` logic. + + This is technically a bug fix, but since it is also a change to behavior + that may require users updating their code, it is marked as a major + version increment. + +## 5.7 + +* Add `minVersion` method + +## 5.6 + +* Move boolean `loose` param to an options object, with + backwards-compatibility protection. +* Add ability to opt out of special prerelease version handling with + the `includePrerelease` option flag. + +## 5.5 + +* Add version coercion capabilities + +## 5.4 + +* Add intersection checking + +## 5.3 + +* Add `minSatisfying` method + +## 5.2 + +* Add `prerelease(v)` that returns prerelease components + +## 5.1 + +* Add Backus-Naur for ranges +* Remove excessively cute inspection methods + +## 5.0 + +* Remove AMD/Browserified build artifacts +* Fix ltr and gtr when using the `*` range +* Fix for range `*` with a prerelease identifier diff --git a/node_modules/semver-diff/node_modules/semver/LICENSE b/node_modules/semver-diff/node_modules/semver/LICENSE new file mode 100644 index 00000000..19129e31 --- /dev/null +++ b/node_modules/semver-diff/node_modules/semver/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +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/node_modules/semver-diff/node_modules/semver/README.md b/node_modules/semver-diff/node_modules/semver/README.md new file mode 100644 index 00000000..2293a14f --- /dev/null +++ b/node_modules/semver-diff/node_modules/semver/README.md @@ -0,0 +1,443 @@ +semver(1) -- The semantic versioner for npm +=========================================== + +## Install + +```bash +npm install semver +```` + +## Usage + +As a node module: + +```js +const semver = require('semver') + +semver.valid('1.2.3') // '1.2.3' +semver.valid('a.b.c') // null +semver.clean(' =v1.2.3 ') // '1.2.3' +semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true +semver.gt('1.2.3', '9.8.7') // false +semver.lt('1.2.3', '9.8.7') // true +semver.minVersion('>=1.0.0') // '1.0.0' +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' +``` + +As a command-line utility: + +``` +$ semver -h + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, or prerelease. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them. +``` + +## Versions + +A "version" is described by the `v2.0.0` specification found at +. + +A leading `"="` or `"v"` character is stripped off and ignored. + +## Ranges + +A `version range` is a set of `comparators` which specify versions +that satisfy the range. + +A `comparator` is composed of an `operator` and a `version`. The set +of primitive `operators` is: + +* `<` Less than +* `<=` Less than or equal to +* `>` Greater than +* `>=` Greater than or equal to +* `=` Equal. If no operator is specified, then equality is assumed, + so this operator is optional, but MAY be included. + +For example, the comparator `>=1.2.7` would match the versions +`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` +or `1.1.0`. + +Comparators can be joined by whitespace to form a `comparator set`, +which is satisfied by the **intersection** of all of the comparators +it includes. + +A range is composed of one or more comparator sets, joined by `||`. A +version matches a range if and only if every comparator in at least +one of the `||`-separated comparator sets is satisfied by the version. + +For example, the range `>=1.2.7 <1.3.0` would match the versions +`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, +or `1.1.0`. + +The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, +`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. + +### Prerelease Tags + +If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then +it will only be allowed to satisfy comparator sets if at least one +comparator with the same `[major, minor, patch]` tuple also has a +prerelease tag. + +For example, the range `>1.2.3-alpha.3` would be allowed to match the +version `1.2.3-alpha.7`, but it would *not* be satisfied by +`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater +than" `1.2.3-alpha.3` according to the SemVer sort rules. The version +range only accepts prerelease tags on the `1.2.3` version. The +version `3.4.5` *would* satisfy the range, because it does not have a +prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. + +The purpose for this behavior is twofold. First, prerelease versions +frequently are updated very quickly, and contain many breaking changes +that are (by the author's design) not yet fit for public consumption. +Therefore, by default, they are excluded from range matching +semantics. + +Second, a user who has opted into using a prerelease version has +clearly indicated the intent to use *that specific* set of +alpha/beta/rc versions. By including a prerelease tag in the range, +the user is indicating that they are aware of the risk. However, it +is still not appropriate to assume that they have opted into taking a +similar risk on the *next* set of prerelease versions. + +Note that this behavior can be suppressed (treating all prerelease +versions as if they were normal versions, for the purpose of range +matching) by setting the `includePrerelease` flag on the options +object to any +[functions](https://github.com/npm/node-semver#functions) that do +range matching. + +#### Prerelease Identifiers + +The method `.inc` takes an additional `identifier` string argument that +will append the value of the string as a prerelease identifier: + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta') +// '1.2.4-beta.0' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta +1.2.4-beta.0 +``` + +Which then can be used to increment further: + +```bash +$ semver 1.2.4-beta.0 -i prerelease +1.2.4-beta.1 +``` + +### Advanced Range Syntax + +Advanced range syntax desugars to primitive comparators in +deterministic ways. + +Advanced ranges may be combined in the same way as primitive +comparators using white space or `||`. + +#### Hyphen Ranges `X.Y.Z - A.B.C` + +Specifies an inclusive set. + +* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` + +If a partial version is provided as the first version in the inclusive +range, then the missing pieces are replaced with zeroes. + +* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` + +If a partial version is provided as the second version in the +inclusive range, then all versions that start with the supplied parts +of the tuple are accepted, but nothing that would be greater than the +provided tuple parts. + +* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` +* `1.2.3 - 2` := `>=1.2.3 <3.0.0` + +#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` + +Any of `X`, `x`, or `*` may be used to "stand in" for one of the +numeric values in the `[major, minor, patch]` tuple. + +* `*` := `>=0.0.0` (Any version satisfies) +* `1.x` := `>=1.0.0 <2.0.0` (Matching major version) +* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) + +A partial version range is treated as an X-Range, so the special +character is in fact optional. + +* `""` (empty string) := `*` := `>=0.0.0` +* `1` := `1.x.x` := `>=1.0.0 <2.0.0` +* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` + +#### Tilde Ranges `~1.2.3` `~1.2` `~1` + +Allows patch-level changes if a minor version is specified on the +comparator. Allows minor-level changes if not. + +* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` +* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) +* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) +* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` +* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) +* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) +* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. + +#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` + +Allows changes that do not modify the left-most non-zero element in the +`[major, minor, patch]` tuple. In other words, this allows patch and +minor updates for versions `1.0.0` and above, patch updates for +versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. + +Many authors treat a `0.x` version as if the `x` were the major +"breaking-change" indicator. + +Caret ranges are ideal when an author may make breaking changes +between `0.2.4` and `0.3.0` releases, which is a common practice. +However, it presumes that there will *not* be breaking changes between +`0.2.4` and `0.2.5`. It allows for changes that are presumed to be +additive (but non-breaking), according to commonly observed practices. + +* `^1.2.3` := `>=1.2.3 <2.0.0` +* `^0.2.3` := `>=0.2.3 <0.3.0` +* `^0.0.3` := `>=0.0.3 <0.0.4` +* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. +* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the + `0.0.3` version *only* will be allowed, if they are greater than or + equal to `beta`. So, `0.0.3-pr.2` would be allowed. + +When parsing caret ranges, a missing `patch` value desugars to the +number `0`, but will allow flexibility within that value, even if the +major and minor versions are both `0`. + +* `^1.2.x` := `>=1.2.0 <2.0.0` +* `^0.0.x` := `>=0.0.0 <0.1.0` +* `^0.0` := `>=0.0.0 <0.1.0` + +A missing `minor` and `patch` values will desugar to zero, but also +allow flexibility within those values, even if the major version is +zero. + +* `^1.x` := `>=1.0.0 <2.0.0` +* `^0.x` := `>=0.0.0 <1.0.0` + +### Range Grammar + +Putting all this together, here is a Backus-Naur grammar for ranges, +for the benefit of parser authors: + +```bnf +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ +``` + +## Functions + +All methods and classes take a final `options` object argument. All +options in this object are `false` by default. The options supported +are: + +- `loose` Be more forgiving about not-quite-valid semver strings. + (Any resulting output will always be 100% strict compliant, of + course.) For backwards compatibility reasons, if the `options` + argument is a boolean value instead of an object, it is interpreted + to be the `loose` param. +- `includePrerelease` Set to suppress the [default + behavior](https://github.com/npm/node-semver#prerelease-tags) of + excluding prerelease tagged versions from ranges unless they are + explicitly opted into. + +Strict-mode Comparators and Ranges will be strict about the SemVer +strings that they parse. + +* `valid(v)`: Return the parsed version, or null if it's not valid. +* `inc(v, release)`: Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, + `prepatch`, or `prerelease`), or null if it's not valid + * `premajor` in one call will bump the version up to the next major + version and down to a prerelease of that major version. + `preminor`, and `prepatch` work the same way. + * If called from a non-prerelease version, the `prerelease` will work the + same as `prepatch`. It increments the patch version, then makes a + prerelease. If the input version is already a prerelease it simply + increments it. +* `prerelease(v)`: Returns an array of prerelease components, or null + if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` +* `major(v)`: Return the major version number. +* `minor(v)`: Return the minor version number. +* `patch(v)`: Return the patch version number. +* `intersects(r1, r2, loose)`: Return true if the two supplied ranges + or comparators intersect. +* `parse(v)`: Attempt to parse a string as a semantic version, returning either + a `SemVer` object or `null`. + +### Comparison + +* `gt(v1, v2)`: `v1 > v2` +* `gte(v1, v2)`: `v1 >= v2` +* `lt(v1, v2)`: `v1 < v2` +* `lte(v1, v2)`: `v1 <= v2` +* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, + even if they're not the exact same string. You already know how to + compare strings. +* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. +* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call + the corresponding function above. `"==="` and `"!=="` do simple + string comparison, but are included for completeness. Throws if an + invalid comparison string is provided. +* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions + in descending order when passed to `Array.sort()`. +* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions + are equal. Sorts in ascending order if passed to `Array.sort()`. + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `diff(v1, v2)`: Returns difference between two versions by the release type + (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), + or null if the versions are the same. + +### Comparators + +* `intersects(comparator)`: Return true if the comparators intersect + +### Ranges + +* `validRange(range)`: Return the valid range or null if it's not valid +* `satisfies(version, range)`: Return true if the version satisfies the + range. +* `maxSatisfying(versions, range)`: Return the highest version in the list + that satisfies the range, or `null` if none of them do. +* `minSatisfying(versions, range)`: Return the lowest version in the list + that satisfies the range, or `null` if none of them do. +* `minVersion(range)`: Return the lowest version that can possibly match + the given range. +* `gtr(version, range)`: Return `true` if version is greater than all the + versions possible in the range. +* `ltr(version, range)`: Return `true` if version is less than all the + versions possible in the range. +* `outside(version, range, hilo)`: Return true if the version is outside + the bounds of the range in either the high or low direction. The + `hilo` argument must be either the string `'>'` or `'<'`. (This is + the function called by `gtr` and `ltr`.) +* `intersects(range)`: Return true if any of the ranges comparators intersect + +Note that, since ranges may be non-contiguous, a version might not be +greater than a range, less than a range, *or* satisfy a range! For +example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` +until `2.0.0`, so the version `1.2.10` would not be greater than the +range (because `2.0.1` satisfies, which is higher), nor less than the +range (since `1.2.8` satisfies, which is lower), and it also does not +satisfy the range. + +If you want to know if a version satisfies or does not satisfy a +range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version, options)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string, and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). + +If the `options.rtl` flag is set, then `coerce` will return the right-most +coercible tuple that does not share an ending index with a longer coercible +tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not +`4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of +any other overlapping SemVer tuple. + +### Clean + +* `clean(version)`: Clean a string to be a valid semver if possible + +This will return a cleaned and trimmed semver version. If the provided version is not valid a null will be returned. This does not work for ranges. + +ex. +* `s.clean(' = v 2.1.5foo')`: `null` +* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean(' = v 2.1.5-foo')`: `null` +* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean('=v2.1.5')`: `'2.1.5'` +* `s.clean(' =v2.1.5')`: `2.1.5` +* `s.clean(' 2.1.5 ')`: `'2.1.5'` +* `s.clean('~1.0.0')`: `null` diff --git a/node_modules/semver-diff/node_modules/semver/bin/semver.js b/node_modules/semver-diff/node_modules/semver/bin/semver.js new file mode 100644 index 00000000..666034a7 --- /dev/null +++ b/node_modules/semver-diff/node_modules/semver/bin/semver.js @@ -0,0 +1,174 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +var argv = process.argv.slice(2) + +var versions = [] + +var range = [] + +var inc = null + +var version = require('../package.json').version + +var loose = false + +var includePrerelease = false + +var coerce = false + +var rtl = false + +var identifier + +var semver = require('../semver') + +var reverse = false + +var options = {} + +main() + +function main () { + if (!argv.length) return help() + while (argv.length) { + var a = argv.shift() + var indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + a = a.slice(0, indexOfEqualSign) + argv.unshift(a.slice(indexOfEqualSign + 1)) + } + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + switch (argv[0]) { + case 'major': case 'minor': case 'patch': case 'prerelease': + case 'premajor': case 'preminor': case 'prepatch': + inc = argv.shift() + break + default: + inc = 'patch' + break + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-c': case '--coerce': + coerce = true + break + case '--rtl': + rtl = true + break + case '--ltr': + rtl = false + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + var options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl } + + versions = versions.map(function (v) { + return coerce ? (semver.coerce(v, options) || { version: v }).version : v + }).filter(function (v) { + return semver.valid(v) + }) + if (!versions.length) return fail() + if (inc && (versions.length !== 1 || range.length)) { return failInc() } + + for (var i = 0, l = range.length; i < l; i++) { + versions = versions.filter(function (v) { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) return fail() + } + return success(versions) +} + +function failInc () { + console.error('--inc can only be used on a single version with no range') + fail() +} + +function fail () { process.exit(1) } + +function success () { + var compare = reverse ? 'rcompare' : 'compare' + versions.sort(function (a, b) { + return semver[compare](a, b, options) + }).map(function (v) { + return semver.clean(v, options) + }).map(function (v) { + return inc ? semver.inc(v, inc, options, identifier) : v + }).forEach(function (v, i, _) { console.log(v) }) +} + +function help () { + console.log(['SemVer ' + version, + '', + 'A JavaScript implementation of the https://semver.org/ specification', + 'Copyright Isaac Z. Schlueter', + '', + 'Usage: semver [options] [ [...]]', + 'Prints valid versions sorted by SemVer precedence', + '', + 'Options:', + '-r --range ', + ' Print versions that match the specified range.', + '', + '-i --increment []', + ' Increment a version by the specified level. Level can', + ' be one of: major, minor, patch, premajor, preminor,', + " prepatch, or prerelease. Default level is 'patch'.", + ' Only one version may be specified.', + '', + '--preid ', + ' Identifier to be used to prefix premajor, preminor,', + ' prepatch or prerelease version increments.', + '', + '-l --loose', + ' Interpret versions and ranges loosely', + '', + '-p --include-prerelease', + ' Always include prerelease versions in range matching', + '', + '-c --coerce', + ' Coerce a string into SemVer if possible', + ' (does not imply --loose)', + '', + '--rtl', + ' Coerce version strings right to left', + '', + '--ltr', + ' Coerce version strings left to right (default)', + '', + 'Program exits successfully if any valid version satisfies', + 'all supplied ranges, and prints all satisfying versions.', + '', + 'If no satisfying versions are found, then exits failure.', + '', + 'Versions are printed in ascending order, so supplying', + 'multiple versions to the utility will just sort them.' + ].join('\n')) +} diff --git a/node_modules/semver-diff/node_modules/semver/package.json b/node_modules/semver-diff/node_modules/semver/package.json new file mode 100644 index 00000000..f09df085 --- /dev/null +++ b/node_modules/semver-diff/node_modules/semver/package.json @@ -0,0 +1,60 @@ +{ + "_from": "semver@^6.3.0", + "_id": "semver@6.3.0", + "_inBundle": false, + "_integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "_location": "/semver-diff/semver", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "semver@^6.3.0", + "name": "semver", + "escapedName": "semver", + "rawSpec": "^6.3.0", + "saveSpec": null, + "fetchSpec": "^6.3.0" + }, + "_requiredBy": [ + "/semver-diff" + ], + "_resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "_shasum": "ee0a64c8af5e8ceea67687b133761e1becbd1d3d", + "_spec": "semver@^6.3.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\semver-diff", + "bin": { + "semver": "bin/semver.js" + }, + "bugs": { + "url": "https://github.com/npm/node-semver/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "The semantic version parser used by npm.", + "devDependencies": { + "tap": "^14.3.1" + }, + "files": [ + "bin", + "range.bnf", + "semver.js" + ], + "homepage": "https://github.com/npm/node-semver#readme", + "license": "ISC", + "main": "semver.js", + "name": "semver", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "postpublish": "git push origin --follow-tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap" + }, + "tap": { + "check-coverage": true + }, + "version": "6.3.0" +} diff --git a/node_modules/semver-diff/node_modules/semver/range.bnf b/node_modules/semver-diff/node_modules/semver/range.bnf new file mode 100644 index 00000000..d4c6ae0d --- /dev/null +++ b/node_modules/semver-diff/node_modules/semver/range.bnf @@ -0,0 +1,16 @@ +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | [1-9] ( [0-9] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ diff --git a/node_modules/semver-diff/node_modules/semver/semver.js b/node_modules/semver-diff/node_modules/semver/semver.js new file mode 100644 index 00000000..636fa436 --- /dev/null +++ b/node_modules/semver-diff/node_modules/semver/semver.js @@ -0,0 +1,1596 @@ +exports = module.exports = SemVer + +var debug +/* istanbul ignore next */ +if (typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments, 0) + args.unshift('SEMVER') + console.log.apply(console, args) + } +} else { + debug = function () {} +} + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = '2.0.0' + +var MAX_LENGTH = 256 +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +var MAX_SAFE_COMPONENT_LENGTH = 16 + +// The actual regexps go on exports.re +var re = exports.re = [] +var src = exports.src = [] +var t = exports.tokens = {} +var R = 0 + +function tok (n) { + t[n] = R++ +} + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +tok('NUMERICIDENTIFIER') +src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*' +tok('NUMERICIDENTIFIERLOOSE') +src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+' + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +tok('NONNUMERICIDENTIFIER') +src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*' + +// ## Main Version +// Three dot-separated numeric identifiers. + +tok('MAINVERSION') +src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIER] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIER] + ')' + +tok('MAINVERSIONLOOSE') +src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')' + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. + +tok('PRERELEASEIDENTIFIER') +src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] + + '|' + src[t.NONNUMERICIDENTIFIER] + ')' + +tok('PRERELEASEIDENTIFIERLOOSE') +src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] + + '|' + src[t.NONNUMERICIDENTIFIER] + ')' + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +tok('PRERELEASE') +src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] + + '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))' + +tok('PRERELEASELOOSE') +src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] + + '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))' + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +tok('BUILDIDENTIFIER') +src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+' + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +tok('BUILD') +src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] + + '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))' + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +tok('FULL') +tok('FULLPLAIN') +src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] + + src[t.PRERELEASE] + '?' + + src[t.BUILD] + '?' + +src[t.FULL] = '^' + src[t.FULLPLAIN] + '$' + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +tok('LOOSEPLAIN') +src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] + + src[t.PRERELEASELOOSE] + '?' + + src[t.BUILD] + '?' + +tok('LOOSE') +src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$' + +tok('GTLT') +src[t.GTLT] = '((?:<|>)?=?)' + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +tok('XRANGEIDENTIFIERLOOSE') +src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' +tok('XRANGEIDENTIFIER') +src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*' + +tok('XRANGEPLAIN') +src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' + + '(?:' + src[t.PRERELEASE] + ')?' + + src[t.BUILD] + '?' + + ')?)?' + +tok('XRANGEPLAINLOOSE') +src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' + + '(?:' + src[t.PRERELEASELOOSE] + ')?' + + src[t.BUILD] + '?' + + ')?)?' + +tok('XRANGE') +src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$' +tok('XRANGELOOSE') +src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$' + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +tok('COERCE') +src[t.COERCE] = '(^|[^\\d])' + + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:$|[^\\d])' +tok('COERCERTL') +re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g') + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +tok('LONETILDE') +src[t.LONETILDE] = '(?:~>?)' + +tok('TILDETRIM') +src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+' +re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g') +var tildeTrimReplace = '$1~' + +tok('TILDE') +src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$' +tok('TILDELOOSE') +src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$' + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +tok('LONECARET') +src[t.LONECARET] = '(?:\\^)' + +tok('CARETTRIM') +src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+' +re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g') +var caretTrimReplace = '$1^' + +tok('CARET') +src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$' +tok('CARETLOOSE') +src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$' + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +tok('COMPARATORLOOSE') +src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$' +tok('COMPARATOR') +src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$' + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +tok('COMPARATORTRIM') +src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] + + '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')' + +// this one has to use the /g flag +re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g') +var comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +tok('HYPHENRANGE') +src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' + + '\\s+-\\s+' + + '(' + src[t.XRANGEPLAIN] + ')' + + '\\s*$' + +tok('HYPHENRANGELOOSE') +src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' + + '\\s+-\\s+' + + '(' + src[t.XRANGEPLAINLOOSE] + ')' + + '\\s*$' + +// Star ranges basically just allow anything at all. +tok('STAR') +src[t.STAR] = '(<|>)?=?\\s*\\*' + +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for (var i = 0; i < R; i++) { + debug(i, src[i]) + if (!re[i]) { + re[i] = new RegExp(src[i]) + } +} + +exports.parse = parse +function parse (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (version instanceof SemVer) { + return version + } + + if (typeof version !== 'string') { + return null + } + + if (version.length > MAX_LENGTH) { + return null + } + + var r = options.loose ? re[t.LOOSE] : re[t.FULL] + if (!r.test(version)) { + return null + } + + try { + return new SemVer(version, options) + } catch (er) { + return null + } +} + +exports.valid = valid +function valid (version, options) { + var v = parse(version, options) + return v ? v.version : null +} + +exports.clean = clean +function clean (version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} + +exports.SemVer = SemVer + +function SemVer (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + if (version instanceof SemVer) { + if (version.loose === options.loose) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError('Invalid Version: ' + version) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') + } + + if (!(this instanceof SemVer)) { + return new SemVer(version, options) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + + var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + + if (!m) { + throw new TypeError('Invalid Version: ' + version) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map(function (id) { + if (/^[0-9]+$/.test(id)) { + var num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() +} + +SemVer.prototype.format = function () { + this.version = this.major + '.' + this.minor + '.' + this.patch + if (this.prerelease.length) { + this.version += '-' + this.prerelease.join('.') + } + return this.version +} + +SemVer.prototype.toString = function () { + return this.version +} + +SemVer.prototype.compare = function (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return this.compareMain(other) || this.comparePre(other) +} + +SemVer.prototype.compareMain = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) +} + +SemVer.prototype.comparePre = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + var i = 0 + do { + var a = this.prerelease[i] + var b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) +} + +SemVer.prototype.compareBuild = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + var i = 0 + do { + var a = this.build[i] + var b = other.build[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) +} + +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +SemVer.prototype.inc = function (release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier) + this.inc('pre', identifier) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier) + } + this.inc('pre', identifier) + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0] + } else { + var i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + this.prerelease.push(0) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0] + } + } else { + this.prerelease = [identifier, 0] + } + } + break + + default: + throw new Error('invalid increment argument: ' + release) + } + this.format() + this.raw = this.version + return this +} + +exports.inc = inc +function inc (version, release, loose, identifier) { + if (typeof (loose) === 'string') { + identifier = loose + loose = undefined + } + + try { + return new SemVer(version, loose).inc(release, identifier).version + } catch (er) { + return null + } +} + +exports.diff = diff +function diff (version1, version2) { + if (eq(version1, version2)) { + return null + } else { + var v1 = parse(version1) + var v2 = parse(version2) + var prefix = '' + if (v1.prerelease.length || v2.prerelease.length) { + prefix = 'pre' + var defaultResult = 'prerelease' + } + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key + } + } + } + return defaultResult // may be undefined + } +} + +exports.compareIdentifiers = compareIdentifiers + +var numeric = /^[0-9]+$/ +function compareIdentifiers (a, b) { + var anum = numeric.test(a) + var bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +exports.rcompareIdentifiers = rcompareIdentifiers +function rcompareIdentifiers (a, b) { + return compareIdentifiers(b, a) +} + +exports.major = major +function major (a, loose) { + return new SemVer(a, loose).major +} + +exports.minor = minor +function minor (a, loose) { + return new SemVer(a, loose).minor +} + +exports.patch = patch +function patch (a, loose) { + return new SemVer(a, loose).patch +} + +exports.compare = compare +function compare (a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)) +} + +exports.compareLoose = compareLoose +function compareLoose (a, b) { + return compare(a, b, true) +} + +exports.compareBuild = compareBuild +function compareBuild (a, b, loose) { + var versionA = new SemVer(a, loose) + var versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) +} + +exports.rcompare = rcompare +function rcompare (a, b, loose) { + return compare(b, a, loose) +} + +exports.sort = sort +function sort (list, loose) { + return list.sort(function (a, b) { + return exports.compareBuild(a, b, loose) + }) +} + +exports.rsort = rsort +function rsort (list, loose) { + return list.sort(function (a, b) { + return exports.compareBuild(b, a, loose) + }) +} + +exports.gt = gt +function gt (a, b, loose) { + return compare(a, b, loose) > 0 +} + +exports.lt = lt +function lt (a, b, loose) { + return compare(a, b, loose) < 0 +} + +exports.eq = eq +function eq (a, b, loose) { + return compare(a, b, loose) === 0 +} + +exports.neq = neq +function neq (a, b, loose) { + return compare(a, b, loose) !== 0 +} + +exports.gte = gte +function gte (a, b, loose) { + return compare(a, b, loose) >= 0 +} + +exports.lte = lte +function lte (a, b, loose) { + return compare(a, b, loose) <= 0 +} + +exports.cmp = cmp +function cmp (a, op, b, loose) { + switch (op) { + case '===': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a === b + + case '!==': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError('Invalid operator: ' + op) + } +} + +exports.Comparator = Comparator +function Comparator (comp, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + if (!(this instanceof Comparator)) { + return new Comparator(comp, options) + } + + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) +} + +var ANY = {} +Comparator.prototype.parse = function (comp) { + var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + var m = comp.match(r) + + if (!m) { + throw new TypeError('Invalid comparator: ' + comp) + } + + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } +} + +Comparator.prototype.toString = function () { + return this.value +} + +Comparator.prototype.test = function (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) +} + +Comparator.prototype.intersects = function (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + var rangeTmp + + if (this.operator === '') { + if (this.value === '') { + return true + } + rangeTmp = new Range(comp.value, options) + return satisfies(this.value, rangeTmp, options) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + rangeTmp = new Range(this.value, options) + return satisfies(comp.semver, rangeTmp, options) + } + + var sameDirectionIncreasing = + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '>=' || comp.operator === '>') + var sameDirectionDecreasing = + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '<=' || comp.operator === '<') + var sameSemVer = this.semver.version === comp.semver.version + var differentDirectionsInclusive = + (this.operator === '>=' || this.operator === '<=') && + (comp.operator === '>=' || comp.operator === '<=') + var oppositeDirectionsLessThan = + cmp(this.semver, '<', comp.semver, options) && + ((this.operator === '>=' || this.operator === '>') && + (comp.operator === '<=' || comp.operator === '<')) + var oppositeDirectionsGreaterThan = + cmp(this.semver, '>', comp.semver, options) && + ((this.operator === '<=' || this.operator === '<') && + (comp.operator === '>=' || comp.operator === '>')) + + return sameDirectionIncreasing || sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || oppositeDirectionsGreaterThan +} + +exports.Range = Range +function Range (range, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (range instanceof Range) { + if (range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + return new Range(range.value, options) + } + + if (!(this instanceof Range)) { + return new Range(range, options) + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First, split based on boolean or || + this.raw = range + this.set = range.split(/\s*\|\|\s*/).map(function (range) { + return this.parseRange(range.trim()) + }, this).filter(function (c) { + // throw out any that are not relevant for whatever reason + return c.length + }) + + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + range) + } + + this.format() +} + +Range.prototype.format = function () { + this.range = this.set.map(function (comps) { + return comps.join(' ').trim() + }).join('||').trim() + return this.range +} + +Range.prototype.toString = function () { + return this.range +} + +Range.prototype.parseRange = function (range) { + var loose = this.options.loose + range = range.trim() + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace) + debug('hyphen replace', range) + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range, re[t.COMPARATORTRIM]) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) + + // normalize spaces + range = range.split(/\s+/).join(' ') + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + var set = range.split(' ').map(function (comp) { + return parseComparator(comp, this.options) + }, this).join(' ').split(/\s+/) + if (this.options.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function (comp) { + return !!comp.match(compRe) + }) + } + set = set.map(function (comp) { + return new Comparator(comp, this.options) + }, this) + + return set +} + +Range.prototype.intersects = function (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some(function (thisComparators) { + return ( + isSatisfiable(thisComparators, options) && + range.set.some(function (rangeComparators) { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every(function (thisComparator) { + return rangeComparators.every(function (rangeComparator) { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) +} + +// take a set of comparators and determine whether there +// exists a version which can satisfy it +function isSatisfiable (comparators, options) { + var result = true + var remainingComparators = comparators.slice() + var testComparator = remainingComparators.pop() + + while (result && remainingComparators.length) { + result = remainingComparators.every(function (otherComparator) { + return testComparator.intersects(otherComparator, options) + }) + + testComparator = remainingComparators.pop() + } + + return result +} + +// Mostly just for testing and legacy API reasons +exports.toComparators = toComparators +function toComparators (range, options) { + return new Range(range, options).set.map(function (comp) { + return comp.map(function (c) { + return c.value + }).join(' ').trim().split(' ') + }) +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator (comp, options) { + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +function isX (id) { + return !id || id.toLowerCase() === 'x' || id === '*' +} + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options) + }).join(' ') +} + +function replaceTilde (comp, options) { + var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else if (pr) { + debug('replaceTilde pr', pr) + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options) + }).join(' ') +} + +function replaceCaret (comp, options) { + debug('caret', comp, options) + var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + return comp.replace(r, function (_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + if (M === '0') { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else { + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + (+M + 1) + '.0.0' + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0' + } + } + + debug('caret return', ret) + return ret + }) +} + +function replaceXRanges (comp, options) { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options) + }).join(' ') +} + +function replaceXRange (comp, options) { + comp = comp.trim() + var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + var xM = isX(M) + var xm = xM || isX(m) + var xp = xm || isX(p) + var anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + ret = gtlt + M + '.' + m + '.' + p + pr + } else if (xm) { + ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr + } else if (xp) { + ret = '>=' + M + '.' + m + '.0' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + pr + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars (comp, options) { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[t.STAR], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = '>=' + fM + '.0.0' + } else if (isX(fp)) { + from = '>=' + fM + '.' + fm + '.0' + } else { + from = '>=' + from + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = '<' + (+tM + 1) + '.0.0' + } else if (isX(tp)) { + to = '<' + tM + '.' + (+tm + 1) + '.0' + } else if (tpr) { + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr + } else { + to = '<=' + to + } + + return (from + ' ' + to).trim() +} + +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false +} + +function testSet (set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} + +exports.satisfies = satisfies +function satisfies (version, range, options) { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} + +exports.maxSatisfying = maxSatisfying +function maxSatisfying (versions, range, options) { + var max = null + var maxSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} + +exports.minSatisfying = minSatisfying +function minSatisfying (versions, range, options) { + var min = null + var minSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} + +exports.minVersion = minVersion +function minVersion (range, loose) { + range = new Range(range, loose) + + var minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!minver || gt(minver, compver)) { + minver = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error('Unexpected operation: ' + comparator.operator) + } + }) + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} + +exports.validRange = validRange +function validRange (range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} + +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr +function ltr (version, range, options) { + return outside(version, range, '<', options) +} + +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr +function gtr (version, range, options) { + return outside(version, range, '>', options) +} + +exports.outside = outside +function outside (version, range, hilo, options) { + version = new SemVer(version, options) + range = new Range(range, options) + + var gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + var high = null + var low = null + + comparators.forEach(function (comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +exports.prerelease = prerelease +function prerelease (version, options) { + var parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} + +exports.intersects = intersects +function intersects (r1, r2, options) { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) +} + +exports.coerce = coerce +function coerce (version, options) { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + var match = null + if (!options.rtl) { + match = version.match(re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + var next + while ((next = re[t.COERCERTL].exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + re[t.COERCERTL].lastIndex = -1 + } + + if (match === null) { + return null + } + + return parse(match[2] + + '.' + (match[3] || '0') + + '.' + (match[4] || '0'), options) +} diff --git a/node_modules/semver-diff/package.json b/node_modules/semver-diff/package.json new file mode 100644 index 00000000..34ed7e34 --- /dev/null +++ b/node_modules/semver-diff/package.json @@ -0,0 +1,69 @@ +{ + "_from": "semver-diff@^3.1.1", + "_id": "semver-diff@3.1.1", + "_inBundle": false, + "_integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "_location": "/semver-diff", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "semver-diff@^3.1.1", + "name": "semver-diff", + "escapedName": "semver-diff", + "rawSpec": "^3.1.1", + "saveSpec": null, + "fetchSpec": "^3.1.1" + }, + "_requiredBy": [ + "/update-notifier" + ], + "_resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "_shasum": "05f77ce59f325e00e2706afd67bb506ddb1ca32b", + "_spec": "semver-diff@^3.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\update-notifier", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/semver-diff/issues" + }, + "bundleDependencies": false, + "dependencies": { + "semver": "^6.3.0" + }, + "deprecated": false, + "description": "Get the diff type of two semver versions: 0.0.1 0.0.2 → patch", + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.9.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/semver-diff#readme", + "keywords": [ + "semver", + "version", + "semantic", + "diff", + "difference" + ], + "license": "MIT", + "name": "semver-diff", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/semver-diff.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "3.1.1" +} diff --git a/node_modules/semver-diff/readme.md b/node_modules/semver-diff/readme.md new file mode 100644 index 00000000..6e21afff --- /dev/null +++ b/node_modules/semver-diff/readme.md @@ -0,0 +1,77 @@ +# semver-diff [![Build Status](https://travis-ci.org/sindresorhus/semver-diff.svg?branch=master)](https://travis-ci.org/sindresorhus/semver-diff) + +> Get the diff type of two [semver](https://github.com/npm/node-semver) versions: `0.0.1 0.0.2` → `patch` + + +## Install + +``` +$ npm install semver-diff +``` + + +## Usage + +```js +const semverDiff = require('semver-diff'); + +semverDiff('1.1.1', '1.1.2'); +//=> 'patch' + +semverDiff('1.1.1-foo', '1.1.2'); +//=> 'prepatch' + +semverDiff('0.0.1', '1.0.0'); +//=> 'major' + +semverDiff('0.0.1-foo', '1.0.0'); +//=> 'premajor' + +semverDiff('0.0.1', '0.1.0'); +//=> 'minor' + +semverDiff('0.0.1-foo', '0.1.0'); +//=> 'preminor' + +semverDiff('0.0.1-foo', '0.0.1-foo.bar'); +//=> 'prerelease' + +semverDiff('0.1.0', '0.1.0+foo'); +//=> 'build' + +semverDiff('0.0.1', '0.0.1'); +//=> undefined + +semverDiff('0.0.2', '0.0.1'); +//=> undefined +``` + + +## API + +### semverDiff(versionA, versionB) + +Returns the difference type between two semver versions, or `undefined` if they're identical or the second one is lower than the first. + +Possible values: `'major'`, `'premajor'`, `'minor'`, `'preminor'`, `'patch'`, `'prepatch'`, `'prerelease'`, `'build'`, `undefined`. + + +## Related + +- [latest-semver](https://github.com/sindresorhus/latest-semver) - Get the latest stable semver version from an array of versions +- [to-semver](https://github.com/sindresorhus/to-semver) - Get an array of valid, sorted, and cleaned semver versions from an array of strings +- [semver-regex](https://github.com/sindresorhus/semver-regex) - Regular expression for matching semver versions +- [semver-truncate](https://github.com/sindresorhus/semver-truncate) - Truncate a semver version: `1.2.3` → `1.2.0` + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/semver/CHANGELOG.md b/node_modules/semver/CHANGELOG.md new file mode 100644 index 00000000..66304fdd --- /dev/null +++ b/node_modules/semver/CHANGELOG.md @@ -0,0 +1,39 @@ +# changes log + +## 5.7 + +* Add `minVersion` method + +## 5.6 + +* Move boolean `loose` param to an options object, with + backwards-compatibility protection. +* Add ability to opt out of special prerelease version handling with + the `includePrerelease` option flag. + +## 5.5 + +* Add version coercion capabilities + +## 5.4 + +* Add intersection checking + +## 5.3 + +* Add `minSatisfying` method + +## 5.2 + +* Add `prerelease(v)` that returns prerelease components + +## 5.1 + +* Add Backus-Naur for ranges +* Remove excessively cute inspection methods + +## 5.0 + +* Remove AMD/Browserified build artifacts +* Fix ltr and gtr when using the `*` range +* Fix for range `*` with a prerelease identifier diff --git a/node_modules/semver/LICENSE b/node_modules/semver/LICENSE new file mode 100644 index 00000000..19129e31 --- /dev/null +++ b/node_modules/semver/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +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/node_modules/semver/README.md b/node_modules/semver/README.md new file mode 100644 index 00000000..f8dfa5a0 --- /dev/null +++ b/node_modules/semver/README.md @@ -0,0 +1,412 @@ +semver(1) -- The semantic versioner for npm +=========================================== + +## Install + +```bash +npm install --save semver +```` + +## Usage + +As a node module: + +```js +const semver = require('semver') + +semver.valid('1.2.3') // '1.2.3' +semver.valid('a.b.c') // null +semver.clean(' =v1.2.3 ') // '1.2.3' +semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true +semver.gt('1.2.3', '9.8.7') // false +semver.lt('1.2.3', '9.8.7') // true +semver.minVersion('>=1.0.0') // '1.0.0' +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' +``` + +As a command-line utility: + +``` +$ semver -h + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, or prerelease. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them. +``` + +## Versions + +A "version" is described by the `v2.0.0` specification found at +. + +A leading `"="` or `"v"` character is stripped off and ignored. + +## Ranges + +A `version range` is a set of `comparators` which specify versions +that satisfy the range. + +A `comparator` is composed of an `operator` and a `version`. The set +of primitive `operators` is: + +* `<` Less than +* `<=` Less than or equal to +* `>` Greater than +* `>=` Greater than or equal to +* `=` Equal. If no operator is specified, then equality is assumed, + so this operator is optional, but MAY be included. + +For example, the comparator `>=1.2.7` would match the versions +`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` +or `1.1.0`. + +Comparators can be joined by whitespace to form a `comparator set`, +which is satisfied by the **intersection** of all of the comparators +it includes. + +A range is composed of one or more comparator sets, joined by `||`. A +version matches a range if and only if every comparator in at least +one of the `||`-separated comparator sets is satisfied by the version. + +For example, the range `>=1.2.7 <1.3.0` would match the versions +`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, +or `1.1.0`. + +The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, +`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. + +### Prerelease Tags + +If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then +it will only be allowed to satisfy comparator sets if at least one +comparator with the same `[major, minor, patch]` tuple also has a +prerelease tag. + +For example, the range `>1.2.3-alpha.3` would be allowed to match the +version `1.2.3-alpha.7`, but it would *not* be satisfied by +`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater +than" `1.2.3-alpha.3` according to the SemVer sort rules. The version +range only accepts prerelease tags on the `1.2.3` version. The +version `3.4.5` *would* satisfy the range, because it does not have a +prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. + +The purpose for this behavior is twofold. First, prerelease versions +frequently are updated very quickly, and contain many breaking changes +that are (by the author's design) not yet fit for public consumption. +Therefore, by default, they are excluded from range matching +semantics. + +Second, a user who has opted into using a prerelease version has +clearly indicated the intent to use *that specific* set of +alpha/beta/rc versions. By including a prerelease tag in the range, +the user is indicating that they are aware of the risk. However, it +is still not appropriate to assume that they have opted into taking a +similar risk on the *next* set of prerelease versions. + +Note that this behavior can be suppressed (treating all prerelease +versions as if they were normal versions, for the purpose of range +matching) by setting the `includePrerelease` flag on the options +object to any +[functions](https://github.com/npm/node-semver#functions) that do +range matching. + +#### Prerelease Identifiers + +The method `.inc` takes an additional `identifier` string argument that +will append the value of the string as a prerelease identifier: + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta') +// '1.2.4-beta.0' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta +1.2.4-beta.0 +``` + +Which then can be used to increment further: + +```bash +$ semver 1.2.4-beta.0 -i prerelease +1.2.4-beta.1 +``` + +### Advanced Range Syntax + +Advanced range syntax desugars to primitive comparators in +deterministic ways. + +Advanced ranges may be combined in the same way as primitive +comparators using white space or `||`. + +#### Hyphen Ranges `X.Y.Z - A.B.C` + +Specifies an inclusive set. + +* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` + +If a partial version is provided as the first version in the inclusive +range, then the missing pieces are replaced with zeroes. + +* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` + +If a partial version is provided as the second version in the +inclusive range, then all versions that start with the supplied parts +of the tuple are accepted, but nothing that would be greater than the +provided tuple parts. + +* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0` +* `1.2.3 - 2` := `>=1.2.3 <3.0.0` + +#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` + +Any of `X`, `x`, or `*` may be used to "stand in" for one of the +numeric values in the `[major, minor, patch]` tuple. + +* `*` := `>=0.0.0` (Any version satisfies) +* `1.x` := `>=1.0.0 <2.0.0` (Matching major version) +* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions) + +A partial version range is treated as an X-Range, so the special +character is in fact optional. + +* `""` (empty string) := `*` := `>=0.0.0` +* `1` := `1.x.x` := `>=1.0.0 <2.0.0` +* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0` + +#### Tilde Ranges `~1.2.3` `~1.2` `~1` + +Allows patch-level changes if a minor version is specified on the +comparator. Allows minor-level changes if not. + +* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0` +* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`) +* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`) +* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0` +* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`) +* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`) +* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. + +#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` + +Allows changes that do not modify the left-most non-zero digit in the +`[major, minor, patch]` tuple. In other words, this allows patch and +minor updates for versions `1.0.0` and above, patch updates for +versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. + +Many authors treat a `0.x` version as if the `x` were the major +"breaking-change" indicator. + +Caret ranges are ideal when an author may make breaking changes +between `0.2.4` and `0.3.0` releases, which is a common practice. +However, it presumes that there will *not* be breaking changes between +`0.2.4` and `0.2.5`. It allows for changes that are presumed to be +additive (but non-breaking), according to commonly observed practices. + +* `^1.2.3` := `>=1.2.3 <2.0.0` +* `^0.2.3` := `>=0.2.3 <0.3.0` +* `^0.0.3` := `>=0.0.3 <0.0.4` +* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. +* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the + `0.0.3` version *only* will be allowed, if they are greater than or + equal to `beta`. So, `0.0.3-pr.2` would be allowed. + +When parsing caret ranges, a missing `patch` value desugars to the +number `0`, but will allow flexibility within that value, even if the +major and minor versions are both `0`. + +* `^1.2.x` := `>=1.2.0 <2.0.0` +* `^0.0.x` := `>=0.0.0 <0.1.0` +* `^0.0` := `>=0.0.0 <0.1.0` + +A missing `minor` and `patch` values will desugar to zero, but also +allow flexibility within those values, even if the major version is +zero. + +* `^1.x` := `>=1.0.0 <2.0.0` +* `^0.x` := `>=0.0.0 <1.0.0` + +### Range Grammar + +Putting all this together, here is a Backus-Naur grammar for ranges, +for the benefit of parser authors: + +```bnf +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ +``` + +## Functions + +All methods and classes take a final `options` object argument. All +options in this object are `false` by default. The options supported +are: + +- `loose` Be more forgiving about not-quite-valid semver strings. + (Any resulting output will always be 100% strict compliant, of + course.) For backwards compatibility reasons, if the `options` + argument is a boolean value instead of an object, it is interpreted + to be the `loose` param. +- `includePrerelease` Set to suppress the [default + behavior](https://github.com/npm/node-semver#prerelease-tags) of + excluding prerelease tagged versions from ranges unless they are + explicitly opted into. + +Strict-mode Comparators and Ranges will be strict about the SemVer +strings that they parse. + +* `valid(v)`: Return the parsed version, or null if it's not valid. +* `inc(v, release)`: Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, + `prepatch`, or `prerelease`), or null if it's not valid + * `premajor` in one call will bump the version up to the next major + version and down to a prerelease of that major version. + `preminor`, and `prepatch` work the same way. + * If called from a non-prerelease version, the `prerelease` will work the + same as `prepatch`. It increments the patch version, then makes a + prerelease. If the input version is already a prerelease it simply + increments it. +* `prerelease(v)`: Returns an array of prerelease components, or null + if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` +* `major(v)`: Return the major version number. +* `minor(v)`: Return the minor version number. +* `patch(v)`: Return the patch version number. +* `intersects(r1, r2, loose)`: Return true if the two supplied ranges + or comparators intersect. +* `parse(v)`: Attempt to parse a string as a semantic version, returning either + a `SemVer` object or `null`. + +### Comparison + +* `gt(v1, v2)`: `v1 > v2` +* `gte(v1, v2)`: `v1 >= v2` +* `lt(v1, v2)`: `v1 < v2` +* `lte(v1, v2)`: `v1 <= v2` +* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, + even if they're not the exact same string. You already know how to + compare strings. +* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. +* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call + the corresponding function above. `"==="` and `"!=="` do simple + string comparison, but are included for completeness. Throws if an + invalid comparison string is provided. +* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions + in descending order when passed to `Array.sort()`. +* `diff(v1, v2)`: Returns difference between two versions by the release type + (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), + or null if the versions are the same. + +### Comparators + +* `intersects(comparator)`: Return true if the comparators intersect + +### Ranges + +* `validRange(range)`: Return the valid range or null if it's not valid +* `satisfies(version, range)`: Return true if the version satisfies the + range. +* `maxSatisfying(versions, range)`: Return the highest version in the list + that satisfies the range, or `null` if none of them do. +* `minSatisfying(versions, range)`: Return the lowest version in the list + that satisfies the range, or `null` if none of them do. +* `minVersion(range)`: Return the lowest version that can possibly match + the given range. +* `gtr(version, range)`: Return `true` if version is greater than all the + versions possible in the range. +* `ltr(version, range)`: Return `true` if version is less than all the + versions possible in the range. +* `outside(version, range, hilo)`: Return true if the version is outside + the bounds of the range in either the high or low direction. The + `hilo` argument must be either the string `'>'` or `'<'`. (This is + the function called by `gtr` and `ltr`.) +* `intersects(range)`: Return true if any of the ranges comparators intersect + +Note that, since ranges may be non-contiguous, a version might not be +greater than a range, less than a range, *or* satisfy a range! For +example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` +until `2.0.0`, so the version `1.2.10` would not be greater than the +range (because `2.0.1` satisfies, which is higher), nor less than the +range (since `1.2.8` satisfies, which is lower), and it also does not +satisfy the range. + +If you want to know if a version satisfies or does not satisfy a +range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string, and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). diff --git a/node_modules/semver/bin/semver b/node_modules/semver/bin/semver new file mode 100644 index 00000000..801e77f1 --- /dev/null +++ b/node_modules/semver/bin/semver @@ -0,0 +1,160 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +var argv = process.argv.slice(2) + +var versions = [] + +var range = [] + +var inc = null + +var version = require('../package.json').version + +var loose = false + +var includePrerelease = false + +var coerce = false + +var identifier + +var semver = require('../semver') + +var reverse = false + +var options = {} + +main() + +function main () { + if (!argv.length) return help() + while (argv.length) { + var a = argv.shift() + var indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + a = a.slice(0, indexOfEqualSign) + argv.unshift(a.slice(indexOfEqualSign + 1)) + } + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + switch (argv[0]) { + case 'major': case 'minor': case 'patch': case 'prerelease': + case 'premajor': case 'preminor': case 'prepatch': + inc = argv.shift() + break + default: + inc = 'patch' + break + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-c': case '--coerce': + coerce = true + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + var options = { loose: loose, includePrerelease: includePrerelease } + + versions = versions.map(function (v) { + return coerce ? (semver.coerce(v) || { version: v }).version : v + }).filter(function (v) { + return semver.valid(v) + }) + if (!versions.length) return fail() + if (inc && (versions.length !== 1 || range.length)) { return failInc() } + + for (var i = 0, l = range.length; i < l; i++) { + versions = versions.filter(function (v) { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) return fail() + } + return success(versions) +} + +function failInc () { + console.error('--inc can only be used on a single version with no range') + fail() +} + +function fail () { process.exit(1) } + +function success () { + var compare = reverse ? 'rcompare' : 'compare' + versions.sort(function (a, b) { + return semver[compare](a, b, options) + }).map(function (v) { + return semver.clean(v, options) + }).map(function (v) { + return inc ? semver.inc(v, inc, options, identifier) : v + }).forEach(function (v, i, _) { console.log(v) }) +} + +function help () { + console.log(['SemVer ' + version, + '', + 'A JavaScript implementation of the https://semver.org/ specification', + 'Copyright Isaac Z. Schlueter', + '', + 'Usage: semver [options] [ [...]]', + 'Prints valid versions sorted by SemVer precedence', + '', + 'Options:', + '-r --range ', + ' Print versions that match the specified range.', + '', + '-i --increment []', + ' Increment a version by the specified level. Level can', + ' be one of: major, minor, patch, premajor, preminor,', + " prepatch, or prerelease. Default level is 'patch'.", + ' Only one version may be specified.', + '', + '--preid ', + ' Identifier to be used to prefix premajor, preminor,', + ' prepatch or prerelease version increments.', + '', + '-l --loose', + ' Interpret versions and ranges loosely', + '', + '-p --include-prerelease', + ' Always include prerelease versions in range matching', + '', + '-c --coerce', + ' Coerce a string into SemVer if possible', + ' (does not imply --loose)', + '', + 'Program exits successfully if any valid version satisfies', + 'all supplied ranges, and prints all satisfying versions.', + '', + 'If no satisfying versions are found, then exits failure.', + '', + 'Versions are printed in ascending order, so supplying', + 'multiple versions to the utility will just sort them.' + ].join('\n')) +} diff --git a/node_modules/semver/package.json b/node_modules/semver/package.json new file mode 100644 index 00000000..f4505ff4 --- /dev/null +++ b/node_modules/semver/package.json @@ -0,0 +1,61 @@ +{ + "_from": "semver@^5.6.0", + "_id": "semver@5.7.1", + "_inBundle": false, + "_integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "_location": "/semver", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "semver@^5.6.0", + "name": "semver", + "escapedName": "semver", + "rawSpec": "^5.6.0", + "saveSpec": null, + "fetchSpec": "^5.6.0" + }, + "_requiredBy": [ + "/jsonwebtoken", + "/require_optional" + ], + "_resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "_shasum": "a954f931aeba508d307bbf069eff0c01c96116f7", + "_spec": "semver@^5.6.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\jsonwebtoken", + "bin": { + "semver": "bin/semver" + }, + "bugs": { + "url": "https://github.com/npm/node-semver/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "The semantic version parser used by npm.", + "devDependencies": { + "tap": "^13.0.0-rc.18" + }, + "files": [ + "bin", + "range.bnf", + "semver.js" + ], + "homepage": "https://github.com/npm/node-semver#readme", + "license": "ISC", + "main": "semver.js", + "name": "semver", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap" + }, + "tap": { + "check-coverage": true + }, + "version": "5.7.1" +} diff --git a/node_modules/semver/range.bnf b/node_modules/semver/range.bnf new file mode 100644 index 00000000..d4c6ae0d --- /dev/null +++ b/node_modules/semver/range.bnf @@ -0,0 +1,16 @@ +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | [1-9] ( [0-9] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= parts +build ::= parts +parts ::= part ( '.' part ) * +part ::= nr | [-0-9A-Za-z]+ diff --git a/node_modules/semver/semver.js b/node_modules/semver/semver.js new file mode 100644 index 00000000..d315d5d6 --- /dev/null +++ b/node_modules/semver/semver.js @@ -0,0 +1,1483 @@ +exports = module.exports = SemVer + +var debug +/* istanbul ignore next */ +if (typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments, 0) + args.unshift('SEMVER') + console.log.apply(console, args) + } +} else { + debug = function () {} +} + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +exports.SEMVER_SPEC_VERSION = '2.0.0' + +var MAX_LENGTH = 256 +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +var MAX_SAFE_COMPONENT_LENGTH = 16 + +// The actual regexps go on exports.re +var re = exports.re = [] +var src = exports.src = [] +var R = 0 + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +var NUMERICIDENTIFIER = R++ +src[NUMERICIDENTIFIER] = '0|[1-9]\\d*' +var NUMERICIDENTIFIERLOOSE = R++ +src[NUMERICIDENTIFIERLOOSE] = '[0-9]+' + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +var NONNUMERICIDENTIFIER = R++ +src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*' + +// ## Main Version +// Three dot-separated numeric identifiers. + +var MAINVERSION = R++ +src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')\\.' + + '(' + src[NUMERICIDENTIFIER] + ')' + +var MAINVERSIONLOOSE = R++ +src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + + '(' + src[NUMERICIDENTIFIERLOOSE] + ')' + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. + +var PRERELEASEIDENTIFIER = R++ +src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + + '|' + src[NONNUMERICIDENTIFIER] + ')' + +var PRERELEASEIDENTIFIERLOOSE = R++ +src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + + '|' + src[NONNUMERICIDENTIFIER] + ')' + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +var PRERELEASE = R++ +src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + + '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))' + +var PRERELEASELOOSE = R++ +src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + + '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))' + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +var BUILDIDENTIFIER = R++ +src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+' + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +var BUILD = R++ +src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))' + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +var FULL = R++ +var FULLPLAIN = 'v?' + src[MAINVERSION] + + src[PRERELEASE] + '?' + + src[BUILD] + '?' + +src[FULL] = '^' + FULLPLAIN + '$' + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + + src[PRERELEASELOOSE] + '?' + + src[BUILD] + '?' + +var LOOSE = R++ +src[LOOSE] = '^' + LOOSEPLAIN + '$' + +var GTLT = R++ +src[GTLT] = '((?:<|>)?=?)' + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +var XRANGEIDENTIFIERLOOSE = R++ +src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*' +var XRANGEIDENTIFIER = R++ +src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*' + +var XRANGEPLAIN = R++ +src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + + '(?:' + src[PRERELEASE] + ')?' + + src[BUILD] + '?' + + ')?)?' + +var XRANGEPLAINLOOSE = R++ +src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + + '(?:' + src[PRERELEASELOOSE] + ')?' + + src[BUILD] + '?' + + ')?)?' + +var XRANGE = R++ +src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$' +var XRANGELOOSE = R++ +src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$' + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +var COERCE = R++ +src[COERCE] = '(?:^|[^\\d])' + + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + + '(?:$|[^\\d])' + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +var LONETILDE = R++ +src[LONETILDE] = '(?:~>?)' + +var TILDETRIM = R++ +src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+' +re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g') +var tildeTrimReplace = '$1~' + +var TILDE = R++ +src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$' +var TILDELOOSE = R++ +src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$' + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +var LONECARET = R++ +src[LONECARET] = '(?:\\^)' + +var CARETTRIM = R++ +src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+' +re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g') +var caretTrimReplace = '$1^' + +var CARET = R++ +src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$' +var CARETLOOSE = R++ +src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$' + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +var COMPARATORLOOSE = R++ +src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$' +var COMPARATOR = R++ +src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$' + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +var COMPARATORTRIM = R++ +src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')' + +// this one has to use the /g flag +re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g') +var comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +var HYPHENRANGE = R++ +src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAIN] + ')' + + '\\s*$' + +var HYPHENRANGELOOSE = R++ +src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s+-\\s+' + + '(' + src[XRANGEPLAINLOOSE] + ')' + + '\\s*$' + +// Star ranges basically just allow anything at all. +var STAR = R++ +src[STAR] = '(<|>)?=?\\s*\\*' + +// Compile to actual regexp objects. +// All are flag-free, unless they were created above with a flag. +for (var i = 0; i < R; i++) { + debug(i, src[i]) + if (!re[i]) { + re[i] = new RegExp(src[i]) + } +} + +exports.parse = parse +function parse (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (version instanceof SemVer) { + return version + } + + if (typeof version !== 'string') { + return null + } + + if (version.length > MAX_LENGTH) { + return null + } + + var r = options.loose ? re[LOOSE] : re[FULL] + if (!r.test(version)) { + return null + } + + try { + return new SemVer(version, options) + } catch (er) { + return null + } +} + +exports.valid = valid +function valid (version, options) { + var v = parse(version, options) + return v ? v.version : null +} + +exports.clean = clean +function clean (version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} + +exports.SemVer = SemVer + +function SemVer (version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + if (version instanceof SemVer) { + if (version.loose === options.loose) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError('Invalid Version: ' + version) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters') + } + + if (!(this instanceof SemVer)) { + return new SemVer(version, options) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + + var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL]) + + if (!m) { + throw new TypeError('Invalid Version: ' + version) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map(function (id) { + if (/^[0-9]+$/.test(id)) { + var num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() +} + +SemVer.prototype.format = function () { + this.version = this.major + '.' + this.minor + '.' + this.patch + if (this.prerelease.length) { + this.version += '-' + this.prerelease.join('.') + } + return this.version +} + +SemVer.prototype.toString = function () { + return this.version +} + +SemVer.prototype.compare = function (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return this.compareMain(other) || this.comparePre(other) +} + +SemVer.prototype.compareMain = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + return compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) +} + +SemVer.prototype.comparePre = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + var i = 0 + do { + var a = this.prerelease[i] + var b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) +} + +// preminor will bump the version up to the next minor release, and immediately +// down to pre-release. premajor and prepatch work the same way. +SemVer.prototype.inc = function (release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier) + this.inc('pre', identifier) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier) + } + this.inc('pre', identifier) + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0] + } else { + var i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + this.prerelease.push(0) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0] + } + } else { + this.prerelease = [identifier, 0] + } + } + break + + default: + throw new Error('invalid increment argument: ' + release) + } + this.format() + this.raw = this.version + return this +} + +exports.inc = inc +function inc (version, release, loose, identifier) { + if (typeof (loose) === 'string') { + identifier = loose + loose = undefined + } + + try { + return new SemVer(version, loose).inc(release, identifier).version + } catch (er) { + return null + } +} + +exports.diff = diff +function diff (version1, version2) { + if (eq(version1, version2)) { + return null + } else { + var v1 = parse(version1) + var v2 = parse(version2) + var prefix = '' + if (v1.prerelease.length || v2.prerelease.length) { + prefix = 'pre' + var defaultResult = 'prerelease' + } + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key + } + } + } + return defaultResult // may be undefined + } +} + +exports.compareIdentifiers = compareIdentifiers + +var numeric = /^[0-9]+$/ +function compareIdentifiers (a, b) { + var anum = numeric.test(a) + var bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +exports.rcompareIdentifiers = rcompareIdentifiers +function rcompareIdentifiers (a, b) { + return compareIdentifiers(b, a) +} + +exports.major = major +function major (a, loose) { + return new SemVer(a, loose).major +} + +exports.minor = minor +function minor (a, loose) { + return new SemVer(a, loose).minor +} + +exports.patch = patch +function patch (a, loose) { + return new SemVer(a, loose).patch +} + +exports.compare = compare +function compare (a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)) +} + +exports.compareLoose = compareLoose +function compareLoose (a, b) { + return compare(a, b, true) +} + +exports.rcompare = rcompare +function rcompare (a, b, loose) { + return compare(b, a, loose) +} + +exports.sort = sort +function sort (list, loose) { + return list.sort(function (a, b) { + return exports.compare(a, b, loose) + }) +} + +exports.rsort = rsort +function rsort (list, loose) { + return list.sort(function (a, b) { + return exports.rcompare(a, b, loose) + }) +} + +exports.gt = gt +function gt (a, b, loose) { + return compare(a, b, loose) > 0 +} + +exports.lt = lt +function lt (a, b, loose) { + return compare(a, b, loose) < 0 +} + +exports.eq = eq +function eq (a, b, loose) { + return compare(a, b, loose) === 0 +} + +exports.neq = neq +function neq (a, b, loose) { + return compare(a, b, loose) !== 0 +} + +exports.gte = gte +function gte (a, b, loose) { + return compare(a, b, loose) >= 0 +} + +exports.lte = lte +function lte (a, b, loose) { + return compare(a, b, loose) <= 0 +} + +exports.cmp = cmp +function cmp (a, op, b, loose) { + switch (op) { + case '===': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a === b + + case '!==': + if (typeof a === 'object') + a = a.version + if (typeof b === 'object') + b = b.version + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError('Invalid operator: ' + op) + } +} + +exports.Comparator = Comparator +function Comparator (comp, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + if (!(this instanceof Comparator)) { + return new Comparator(comp, options) + } + + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) +} + +var ANY = {} +Comparator.prototype.parse = function (comp) { + var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR] + var m = comp.match(r) + + if (!m) { + throw new TypeError('Invalid comparator: ' + comp) + } + + this.operator = m[1] + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } +} + +Comparator.prototype.toString = function () { + return this.value +} + +Comparator.prototype.test = function (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY) { + return true + } + + if (typeof version === 'string') { + version = new SemVer(version, this.options) + } + + return cmp(version, this.operator, this.semver, this.options) +} + +Comparator.prototype.intersects = function (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + var rangeTmp + + if (this.operator === '') { + rangeTmp = new Range(comp.value, options) + return satisfies(this.value, rangeTmp, options) + } else if (comp.operator === '') { + rangeTmp = new Range(this.value, options) + return satisfies(comp.semver, rangeTmp, options) + } + + var sameDirectionIncreasing = + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '>=' || comp.operator === '>') + var sameDirectionDecreasing = + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '<=' || comp.operator === '<') + var sameSemVer = this.semver.version === comp.semver.version + var differentDirectionsInclusive = + (this.operator === '>=' || this.operator === '<=') && + (comp.operator === '>=' || comp.operator === '<=') + var oppositeDirectionsLessThan = + cmp(this.semver, '<', comp.semver, options) && + ((this.operator === '>=' || this.operator === '>') && + (comp.operator === '<=' || comp.operator === '<')) + var oppositeDirectionsGreaterThan = + cmp(this.semver, '>', comp.semver, options) && + ((this.operator === '<=' || this.operator === '<') && + (comp.operator === '>=' || comp.operator === '>')) + + return sameDirectionIncreasing || sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || oppositeDirectionsGreaterThan +} + +exports.Range = Range +function Range (range, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + } + } + + if (range instanceof Range) { + if (range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + return new Range(range.value, options) + } + + if (!(this instanceof Range)) { + return new Range(range, options) + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First, split based on boolean or || + this.raw = range + this.set = range.split(/\s*\|\|\s*/).map(function (range) { + return this.parseRange(range.trim()) + }, this).filter(function (c) { + // throw out any that are not relevant for whatever reason + return c.length + }) + + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + range) + } + + this.format() +} + +Range.prototype.format = function () { + this.range = this.set.map(function (comps) { + return comps.join(' ').trim() + }).join('||').trim() + return this.range +} + +Range.prototype.toString = function () { + return this.range +} + +Range.prototype.parseRange = function (range) { + var loose = this.options.loose + range = range.trim() + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE] + range = range.replace(hr, hyphenReplace) + debug('hyphen replace', range) + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range, re[COMPARATORTRIM]) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[TILDETRIM], tildeTrimReplace) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[CARETTRIM], caretTrimReplace) + + // normalize spaces + range = range.split(/\s+/).join(' ') + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR] + var set = range.split(' ').map(function (comp) { + return parseComparator(comp, this.options) + }, this).join(' ').split(/\s+/) + if (this.options.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function (comp) { + return !!comp.match(compRe) + }) + } + set = set.map(function (comp) { + return new Comparator(comp, this.options) + }, this) + + return set +} + +Range.prototype.intersects = function (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some(function (thisComparators) { + return thisComparators.every(function (thisComparator) { + return range.set.some(function (rangeComparators) { + return rangeComparators.every(function (rangeComparator) { + return thisComparator.intersects(rangeComparator, options) + }) + }) + }) + }) +} + +// Mostly just for testing and legacy API reasons +exports.toComparators = toComparators +function toComparators (range, options) { + return new Range(range, options).set.map(function (comp) { + return comp.map(function (c) { + return c.value + }).join(' ').trim().split(' ') + }) +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +function parseComparator (comp, options) { + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +function isX (id) { + return !id || id.toLowerCase() === 'x' || id === '*' +} + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 +function replaceTildes (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options) + }).join(' ') +} + +function replaceTilde (comp, options) { + var r = options.loose ? re[TILDELOOSE] : re[TILDE] + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else if (pr) { + debug('replaceTilde pr', pr) + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 +// ^1.2.3 --> >=1.2.3 <2.0.0 +// ^1.2.0 --> >=1.2.0 <2.0.0 +function replaceCarets (comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options) + }).join(' ') +} + +function replaceCaret (comp, options) { + debug('caret', comp, options) + var r = options.loose ? re[CARETLOOSE] : re[CARET] + return comp.replace(r, function (_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr) + var ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (isX(p)) { + if (M === '0') { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } else { + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0' + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + + ' <' + (+M + 1) + '.0.0' + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + m + '.' + (+p + 1) + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + M + '.' + (+m + 1) + '.0' + } + } else { + ret = '>=' + M + '.' + m + '.' + p + + ' <' + (+M + 1) + '.0.0' + } + } + + debug('caret return', ret) + return ret + }) +} + +function replaceXRanges (comp, options) { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options) + }).join(' ') +} + +function replaceXRange (comp, options) { + comp = comp.trim() + var r = options.loose ? re[XRANGELOOSE] : re[XRANGE] + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + var xM = isX(M) + var xm = xM || isX(m) + var xp = xm || isX(p) + var anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + ret = gtlt + M + '.' + m + '.' + p + } else if (xm) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0' + } else if (xp) { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0' + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +function replaceStars (comp, options) { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[STAR], '') +} + +// This function is passed to string.replace(re[HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0 +function hyphenReplace ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = '>=' + fM + '.0.0' + } else if (isX(fp)) { + from = '>=' + fM + '.' + fm + '.0' + } else { + from = '>=' + from + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = '<' + (+tM + 1) + '.0.0' + } else if (isX(tp)) { + to = '<' + tM + '.' + (+tm + 1) + '.0' + } else if (tpr) { + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr + } else { + to = '<=' + to + } + + return (from + ' ' + to).trim() +} + +// if ANY of the sets match ALL of its comparators, then pass +Range.prototype.test = function (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + version = new SemVer(version, this.options) + } + + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false +} + +function testSet (set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} + +exports.satisfies = satisfies +function satisfies (version, range, options) { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} + +exports.maxSatisfying = maxSatisfying +function maxSatisfying (versions, range, options) { + var max = null + var maxSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} + +exports.minSatisfying = minSatisfying +function minSatisfying (versions, range, options) { + var min = null + var minSV = null + try { + var rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} + +exports.minVersion = minVersion +function minVersion (range, loose) { + range = new Range(range, loose) + + var minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!minver || gt(minver, compver)) { + minver = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error('Unexpected operation: ' + comparator.operator) + } + }) + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} + +exports.validRange = validRange +function validRange (range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} + +// Determine if version is less than all the versions possible in the range +exports.ltr = ltr +function ltr (version, range, options) { + return outside(version, range, '<', options) +} + +// Determine if version is greater than all the versions possible in the range. +exports.gtr = gtr +function gtr (version, range, options) { + return outside(version, range, '>', options) +} + +exports.outside = outside +function outside (version, range, hilo, options) { + version = new SemVer(version, options) + range = new Range(range, options) + + var gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisifes the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i] + + var high = null + var low = null + + comparators.forEach(function (comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +exports.prerelease = prerelease +function prerelease (version, options) { + var parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} + +exports.intersects = intersects +function intersects (r1, r2, options) { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) +} + +exports.coerce = coerce +function coerce (version) { + if (version instanceof SemVer) { + return version + } + + if (typeof version !== 'string') { + return null + } + + var match = version.match(re[COERCE]) + + if (match == null) { + return null + } + + return parse(match[1] + + '.' + (match[2] || '0') + + '.' + (match[3] || '0')) +} diff --git a/node_modules/send/HISTORY.md b/node_modules/send/HISTORY.md new file mode 100644 index 00000000..d14ac069 --- /dev/null +++ b/node_modules/send/HISTORY.md @@ -0,0 +1,496 @@ +0.17.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect & error responses + * deps: range-parser@~1.2.1 + +0.17.0 / 2019-05-03 +=================== + + * deps: http-errors@~1.7.2 + - Set constructor name when possible + - Use `toidentifier` module to make class names + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: mime@1.6.0 + - Add extensions for JPEG-2000 images + - Add new `font/*` types from IANA + - Add WASM mapping + - Update `.bdoc` to `application/bdoc` + - Update `.bmp` to `image/bmp` + - Update `.m4a` to `audio/mp4` + - Update `.rtf` to `application/rtf` + - Update `.wav` to `audio/wav` + - Update `.xml` to `application/xml` + - Update generic extensions to `application/octet-stream`: + `.deb`, `.dll`, `.dmg`, `.exe`, `.iso`, `.msi` + - Use mime-score module to resolve extension conflicts + * deps: ms@2.1.1 + - Add `week`/`w` support + - Fix negative number handling + * deps: statuses@~1.5.0 + * perf: remove redundant `path.normalize` call + +0.16.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in default error & redirects + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: statuses@~1.4.0 + +0.16.1 / 2017-09-29 +=================== + + * Fix regression in edge-case behavior for empty `path` + +0.16.0 / 2017-09-27 +=================== + + * Add `immutable` option + * Fix missing `` in default error & redirects + * Use instance methods on steam to check for listeners + * deps: mime@1.4.1 + - Add 70 new types for file extensions + - Set charset as "UTF-8" for .js and .json + * perf: improve path validation speed + +0.15.6 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: improve `If-Match` token parsing + +0.15.5 / 2017-09-20 +=================== + + * deps: etag@~1.8.1 + - perf: replace regular expression with substring + * deps: fresh@0.5.2 + - Fix handling of modified headers with invalid dates + - perf: improve ETag match loop + - perf: improve `If-None-Match` token parsing + +0.15.4 / 2017-08-05 +=================== + + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + +0.15.3 / 2017-05-16 +=================== + + * deps: debug@2.6.7 + - deps: ms@2.0.0 + * deps: ms@2.0.0 + +0.15.2 / 2017-04-26 +=================== + + * deps: debug@2.6.4 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@0.7.3 + * deps: ms@1.0.0 + +0.15.1 / 2017-03-04 +=================== + + * Fix issue when `Date.parse` does not return `NaN` on invalid date + * Fix strict violation in broken environments + +0.15.0 / 2017-02-25 +=================== + + * Support `If-Match` and `If-Unmodified-Since` headers + * Add `res` and `path` arguments to `directory` event + * Remove usage of `res._headers` private field + - Improves compatibility with Node.js 8 nightly + * Send complete HTML document in redirect & error responses + * Set default CSP header in redirect & error responses + * Use `res.getHeaderNames()` when available + * Use `res.headersSent` when available + * deps: debug@2.6.1 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable set to `3` or higher + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: etag@~1.8.0 + * deps: fresh@0.5.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - perf: delay reading header values until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove duplicate conditional + - perf: remove unnecessary boolean coercions + - perf: skip checking modified time if ETag check failed + - perf: skip parsing `If-None-Match` when no `ETag` header + - perf: use `Date.parse` instead of `new Date` + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + +0.14.2 / 2017-01-23 +=================== + + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: ms@0.7.2 + * deps: statuses@~1.3.1 + +0.14.1 / 2016-06-09 +=================== + + * Fix redirect error when `path` contains raw non-URL characters + * Fix redirect when `path` starts with multiple forward slashes + +0.14.0 / 2016-06-06 +=================== + + * Add `acceptRanges` option + * Add `cacheControl` option + * Attempt to combine multiple ranges into single range + * Correctly inherit from `Stream` class + * Fix `Content-Range` header in 416 responses when using `start`/`end` options + * Fix `Content-Range` header missing from default 416 responses + * Ignore non-byte `Range` headers + * deps: http-errors@~1.5.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - Support new code `421 Misdirected Request` + - Use `setprototypeof` module to replace `__proto__` setting + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: range-parser@~1.2.0 + - Fix incorrectly returning -1 when there is at least one valid range + - perf: remove internal function + * deps: statuses@~1.3.0 + - Add `421 Misdirected Request` + - perf: enable strict mode + * perf: remove argument reassignment + +0.13.2 / 2016-03-05 +=================== + + * Fix invalid `Content-Type` header when `send.mime.default_type` unset + +0.13.1 / 2016-01-16 +=================== + + * deps: depd@~1.1.0 + - Support web browser loading + - perf: enable strict mode + * deps: destroy@~1.0.4 + - perf: enable strict mode + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: range-parser@~1.0.3 + - perf: enable strict mode + +0.13.0 / 2015-06-16 +=================== + + * Allow Node.js HTTP server to set `Date` response header + * Fix incorrectly removing `Content-Location` on 304 response + * Improve the default redirect response headers + * Send appropriate headers on default error response + * Use `http-errors` for standard emitted errors + * Use `statuses` instead of `http` module for status messages + * deps: escape-html@1.0.2 + * deps: etag@~1.7.0 + - Improve stat performance by removing hashing + * deps: fresh@0.3.0 + - Add weak `ETag` matching support + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * perf: enable strict mode + * perf: remove unnecessary array allocations + +0.12.3 / 2015-05-13 +=================== + + * deps: debug@~2.2.0 + - deps: ms@0.7.1 + * deps: depd@~1.0.1 + * deps: etag@~1.6.0 + - Improve support for JXcore + - Support "fake" stats objects in environments without `fs` + * deps: ms@0.7.1 + - Prevent extraordinarily long inputs + * deps: on-finished@~2.2.1 + +0.12.2 / 2015-03-13 +=================== + + * Throw errors early for invalid `extensions` or `index` options + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + +0.12.1 / 2015-02-17 +=================== + + * Fix regression sending zero-length files + +0.12.0 / 2015-02-16 +=================== + + * Always read the stat size from the file + * Fix mutating passed-in `options` + * deps: mime@1.3.4 + +0.11.1 / 2015-01-20 +=================== + + * Fix `root` path disclosure + +0.11.0 / 2015-01-05 +=================== + + * deps: debug@~2.1.1 + * deps: etag@~1.5.1 + - deps: crc@3.2.1 + * deps: ms@0.7.0 + - Add `milliseconds` + - Add `msecs` + - Add `secs` + - Add `mins` + - Add `hrs` + - Add `yrs` + * deps: on-finished@~2.2.0 + +0.10.1 / 2014-10-22 +=================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + +0.10.0 / 2014-10-15 +=================== + + * deps: debug@~2.1.0 + - Implement `DEBUG_FD` env variable support + * deps: depd@~1.0.0 + * deps: etag@~1.5.0 + - Improve string performance + - Slightly improve speed for weak ETags over 1KB + +0.9.3 / 2014-09-24 +================== + + * deps: etag@~1.4.0 + - Support "fake" stats objects + +0.9.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + * deps: etag@~1.3.1 + * deps: range-parser@~1.0.2 + +0.9.1 / 2014-09-07 +================== + + * deps: fresh@0.2.4 + +0.9.0 / 2014-09-07 +================== + + * Add `lastModified` option + * Use `etag` to generate `ETag` header + * deps: debug@~2.0.0 + +0.8.5 / 2014-09-04 +================== + + * Fix malicious path detection for empty string path + +0.8.4 / 2014-09-04 +================== + + * Fix a path traversal issue when using `root` + +0.8.3 / 2014-08-16 +================== + + * deps: destroy@1.0.3 + - renamed from dethroy + * deps: on-finished@2.1.0 + +0.8.2 / 2014-08-14 +================== + + * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + * deps: dethroy@1.0.2 + +0.8.1 / 2014-08-05 +================== + + * Fix `extensions` behavior when file already has extension + +0.8.0 / 2014-08-05 +================== + + * Add `extensions` option + +0.7.4 / 2014-08-04 +================== + + * Fix serving index files without root dir + +0.7.3 / 2014-07-29 +================== + + * Fix incorrect 403 on Windows and Node.js 0.11 + +0.7.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +0.7.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +0.7.0 / 2014-07-20 +================== + + * Deprecate `hidden` option; use `dotfiles` option + * Add `dotfiles` option + * deps: debug@1.0.4 + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + +0.6.0 / 2014-07-11 +================== + + * Deprecate `from` option; use `root` option + * Deprecate `send.etag()` -- use `etag` in `options` + * Deprecate `send.hidden()` -- use `hidden` in `options` + * Deprecate `send.index()` -- use `index` in `options` + * Deprecate `send.maxage()` -- use `maxAge` in `options` + * Deprecate `send.root()` -- use `root` in `options` + * Cap `maxAge` value to 1 year + * deps: debug@1.0.3 + - Add support for multiple wildcards in namespaces + +0.5.0 / 2014-06-28 +================== + + * Accept string for `maxAge` (converted by `ms`) + * Add `headers` event + * Include link in default redirect response + * Use `EventEmitter.listenerCount` to count listeners + +0.4.3 / 2014-06-11 +================== + + * Do not throw un-catchable error on file open race condition + * Use `escape-html` for HTML escaping + * deps: debug@1.0.2 + - fix some debugging output colors on node.js 0.8 + * deps: finished@1.2.2 + * deps: fresh@0.2.2 + +0.4.2 / 2014-06-09 +================== + + * fix "event emitter leak" warnings + * deps: debug@1.0.1 + * deps: finished@1.2.1 + +0.4.1 / 2014-06-02 +================== + + * Send `max-age` in `Cache-Control` in correct format + +0.4.0 / 2014-05-27 +================== + + * Calculate ETag with md5 for reduced collisions + * Fix wrong behavior when index file matches directory + * Ignore stream errors after request ends + - Goodbye `EBADF, read` + * Skip directories in index file search + * deps: debug@0.8.1 + +0.3.0 / 2014-04-24 +================== + + * Fix sending files with dots without root set + * Coerce option types + * Accept API options in options object + * Set etags to "weak" + * Include file path in etag + * Make "Can't set headers after they are sent." catchable + * Send full entity-body for multi range requests + * Default directory access to 403 when index disabled + * Support multiple index paths + * Support "If-Range" header + * Control whether to generate etags + * deps: mime@1.2.11 + +0.2.0 / 2014-01-29 +================== + + * update range-parser and fresh + +0.1.4 / 2013-08-11 +================== + + * update fresh + +0.1.3 / 2013-07-08 +================== + + * Revert "Fix fd leak" + +0.1.2 / 2013-07-03 +================== + + * Fix fd leak + +0.1.0 / 2012-08-25 +================== + + * add options parameter to send() that is passed to fs.createReadStream() [kanongil] + +0.0.4 / 2012-08-16 +================== + + * allow custom "Accept-Ranges" definition + +0.0.3 / 2012-07-16 +================== + + * fix normalization of the root directory. Closes #3 + +0.0.2 / 2012-07-09 +================== + + * add passing of req explicitly for now (YUCK) + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/send/LICENSE b/node_modules/send/LICENSE new file mode 100644 index 00000000..4aa69e83 --- /dev/null +++ b/node_modules/send/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/send/README.md b/node_modules/send/README.md new file mode 100644 index 00000000..179e8c32 --- /dev/null +++ b/node_modules/send/README.md @@ -0,0 +1,329 @@ +# send + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][travis-image]][travis-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Send is a library for streaming files from the file system as a http response +supporting partial responses (Ranges), conditional-GET negotiation (If-Match, +If-Unmodified-Since, If-None-Match, If-Modified-Since), high test coverage, +and granular events which may be leveraged to take appropriate actions in your +application or framework. + +Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static). + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install send +``` + +## API + + + +```js +var send = require('send') +``` + +### send(req, path, [options]) + +Create a new `SendStream` for the given path to send to a `res`. The `req` is +the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded, +not the actual file-system path). + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + +Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Send a 403 for any request for a dotfile. + - `'ignore'` Pretend like the dotfile does not exist and 404. + +The default value is _similar_ to `'ignore'`, with the exception that +this default will not ignore the files within a directory that begins +with a dot, for backward-compatibility. + +##### end + +Byte offset at which the stream ends, defaults to the length of the file +minus 1. The end is inclusive in the stream, meaning `end: 3` will include +the 4th byte in the stream. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +If a given file doesn't exist, try appending one of the given extensions, +in the given order. By default, this is disabled (set to `false`). An +example value that will serve extension-less HTML files: `['html', 'htm']`. +This is skipped if the requested file already has an extension. + +##### immutable + +Enable or diable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default send supports "index.html" files, to disable this +set `false` or to supply a new index pass a string or an array +in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. +This can also be a string accepted by the +[ms](https://www.npmjs.org/package/ms#readme) module. + +##### root + +Serve files relative to `path`. + +##### start + +Byte offset at which the stream starts, defaults to 0. The start is inclusive, +meaning `start: 2` will include the 3rd byte in the stream. + +#### Events + +The `SendStream` is an event emitter and will emit the following events: + + - `error` an error occurred `(err)` + - `directory` a directory was requested `(res, path)` + - `file` a file was requested `(path, stat)` + - `headers` the headers are about to be set on a file `(res, path, stat)` + - `stream` file streaming has started `(stream)` + - `end` streaming has completed + +#### .pipe + +The `pipe` method is used to pipe the response into the Node.js HTTP response +object, typically `send(req, path, options).pipe(res)`. + +### .mime + +The `mime` export is the global instance of of the +[`mime` npm module](https://www.npmjs.com/package/mime). + +This is used to configure the MIME types that are associated with file extensions +as well as other options for how to resolve the MIME type of a file (like the +default type to use for an unknown file extension). + +## Error-handling + +By default when no `error` listeners are present an automatic response will be +made, otherwise you have full control over the response, aka you may show a 5xx +page etc. + +## Caching + +It does _not_ perform internal caching, you should use a reverse proxy cache +such as Varnish for this, or those fancy things called CDNs. If your +application is small enough that it would benefit from single-node memory +caching, it's small enough that it does not need caching at all ;). + +## Debugging + +To enable `debug()` instrumentation output export __DEBUG__: + +``` +$ DEBUG=send node app +``` + +## Running tests + +``` +$ npm install +$ npm test +``` + +## Examples + +### Serve a specific file + +This simple example will send a specific file to all requests. + +```js +var http = require('http') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, '/path/to/index.html') + .pipe(res) +}) + +server.listen(3000) +``` + +### Serve all files from a directory + +This simple example will just serve up all the files in a +given directory as the top-level. For example, a request +`GET /foo.txt` will send back `/www/public/foo.txt`. + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom file types + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +// Default unknown types to text/plain +send.mime.default_type = 'text/plain' + +// Add a custom type +send.mime.define({ + 'application/x-my-type': ['x-mt', 'x-mtt'] +}) + +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .pipe(res) +}) + +server.listen(3000) +``` + +### Custom directory index view + +This is a example of serving up a structure of directories with a +custom function to render a listing of a directory. + +```js +var http = require('http') +var fs = require('fs') +var parseUrl = require('parseurl') +var send = require('send') + +// Transfer arbitrary files from within /www/example.com/public/* +// with a custom handler for directory listing +var server = http.createServer(function onRequest (req, res) { + send(req, parseUrl(req).pathname, { index: false, root: '/www/public' }) + .once('directory', directory) + .pipe(res) +}) + +server.listen(3000) + +// Custom directory handler +function directory (res, path) { + var stream = this + + // redirect to trailing slash for consistent url + if (!stream.hasTrailingSlash()) { + return stream.redirect(path) + } + + // get directory list + fs.readdir(path, function onReaddir (err, list) { + if (err) return stream.error(err) + + // render an index for the directory + res.setHeader('Content-Type', 'text/plain; charset=UTF-8') + res.end(list.join('\n') + '\n') + }) +} +``` + +### Serving from a root directory with custom error-handling + +```js +var http = require('http') +var parseUrl = require('parseurl') +var send = require('send') + +var server = http.createServer(function onRequest (req, res) { + // your custom error-handling logic: + function error (err) { + res.statusCode = err.status || 500 + res.end(err.message) + } + + // your custom headers + function headers (res, path, stat) { + // serve all files for download + res.setHeader('Content-Disposition', 'attachment') + } + + // your custom directory handling logic: + function redirect () { + res.statusCode = 301 + res.setHeader('Location', req.url + '/') + res.end('Redirecting to ' + req.url + '/') + } + + // transfer arbitrary files from within + // /www/example.com/public/* + send(req, parseUrl(req).pathname, { root: '/www/public' }) + .on('error', error) + .on('directory', redirect) + .on('headers', headers) + .pipe(res) +}) + +server.listen(3000) +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/send/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/send +[coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/send/master +[coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master +[node-image]: https://badgen.net/npm/node/send +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/send +[npm-url]: https://npmjs.org/package/send +[npm-version-image]: https://badgen.net/npm/v/send +[travis-image]: https://badgen.net/travis/pillarjs/send/master?label=linux +[travis-url]: https://travis-ci.org/pillarjs/send diff --git a/node_modules/send/index.js b/node_modules/send/index.js new file mode 100644 index 00000000..fca21121 --- /dev/null +++ b/node_modules/send/index.js @@ -0,0 +1,1129 @@ +/*! + * send + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var debug = require('debug')('send') +var deprecate = require('depd')('send') +var destroy = require('destroy') +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var etag = require('etag') +var fresh = require('fresh') +var fs = require('fs') +var mime = require('mime') +var ms = require('ms') +var onFinished = require('on-finished') +var parseRange = require('range-parser') +var path = require('path') +var statuses = require('statuses') +var Stream = require('stream') +var util = require('util') + +/** + * Path function references. + * @private + */ + +var extname = path.extname +var join = path.join +var normalize = path.normalize +var resolve = path.resolve +var sep = path.sep + +/** + * Regular expression for identifying a bytes Range header. + * @private + */ + +var BYTES_RANGE_REGEXP = /^ *bytes=/ + +/** + * Maximum value allowed for the max age. + * @private + */ + +var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1000 // 1 year + +/** + * Regular expression to match a path with a directory up component. + * @private + */ + +var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/ + +/** + * Module exports. + * @public + */ + +module.exports = send +module.exports.mime = mime + +/** + * Return a `SendStream` for `req` and `path`. + * + * @param {object} req + * @param {string} path + * @param {object} [options] + * @return {SendStream} + * @public + */ + +function send (req, path, options) { + return new SendStream(req, path, options) +} + +/** + * Initialize a `SendStream` with the given `path`. + * + * @param {Request} req + * @param {String} path + * @param {object} [options] + * @private + */ + +function SendStream (req, path, options) { + Stream.call(this) + + var opts = options || {} + + this.options = opts + this.path = path + this.req = req + + this._acceptRanges = opts.acceptRanges !== undefined + ? Boolean(opts.acceptRanges) + : true + + this._cacheControl = opts.cacheControl !== undefined + ? Boolean(opts.cacheControl) + : true + + this._etag = opts.etag !== undefined + ? Boolean(opts.etag) + : true + + this._dotfiles = opts.dotfiles !== undefined + ? opts.dotfiles + : 'ignore' + + if (this._dotfiles !== 'ignore' && this._dotfiles !== 'allow' && this._dotfiles !== 'deny') { + throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"') + } + + this._hidden = Boolean(opts.hidden) + + if (opts.hidden !== undefined) { + deprecate('hidden: use dotfiles: \'' + (this._hidden ? 'allow' : 'ignore') + '\' instead') + } + + // legacy support + if (opts.dotfiles === undefined) { + this._dotfiles = undefined + } + + this._extensions = opts.extensions !== undefined + ? normalizeList(opts.extensions, 'extensions option') + : [] + + this._immutable = opts.immutable !== undefined + ? Boolean(opts.immutable) + : false + + this._index = opts.index !== undefined + ? normalizeList(opts.index, 'index option') + : ['index.html'] + + this._lastModified = opts.lastModified !== undefined + ? Boolean(opts.lastModified) + : true + + this._maxage = opts.maxAge || opts.maxage + this._maxage = typeof this._maxage === 'string' + ? ms(this._maxage) + : Number(this._maxage) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + + this._root = opts.root + ? resolve(opts.root) + : null + + if (!this._root && opts.from) { + this.from(opts.from) + } +} + +/** + * Inherits from `Stream`. + */ + +util.inherits(SendStream, Stream) + +/** + * Enable or disable etag generation. + * + * @param {Boolean} val + * @return {SendStream} + * @api public + */ + +SendStream.prototype.etag = deprecate.function(function etag (val) { + this._etag = Boolean(val) + debug('etag %s', this._etag) + return this +}, 'send.etag: pass etag as option') + +/** + * Enable or disable "hidden" (dot) files. + * + * @param {Boolean} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.hidden = deprecate.function(function hidden (val) { + this._hidden = Boolean(val) + this._dotfiles = undefined + debug('hidden %s', this._hidden) + return this +}, 'send.hidden: use dotfiles option') + +/** + * Set index `paths`, set to a falsy + * value to disable index support. + * + * @param {String|Boolean|Array} paths + * @return {SendStream} + * @api public + */ + +SendStream.prototype.index = deprecate.function(function index (paths) { + var index = !paths ? [] : normalizeList(paths, 'paths argument') + debug('index %o', paths) + this._index = index + return this +}, 'send.index: pass index as option') + +/** + * Set root `path`. + * + * @param {String} path + * @return {SendStream} + * @api public + */ + +SendStream.prototype.root = function root (path) { + this._root = resolve(String(path)) + debug('root %s', this._root) + return this +} + +SendStream.prototype.from = deprecate.function(SendStream.prototype.root, + 'send.from: pass root as option') + +SendStream.prototype.root = deprecate.function(SendStream.prototype.root, + 'send.root: pass root as option') + +/** + * Set max-age to `maxAge`. + * + * @param {Number} maxAge + * @return {SendStream} + * @api public + */ + +SendStream.prototype.maxage = deprecate.function(function maxage (maxAge) { + this._maxage = typeof maxAge === 'string' + ? ms(maxAge) + : Number(maxAge) + this._maxage = !isNaN(this._maxage) + ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) + : 0 + debug('max-age %d', this._maxage) + return this +}, 'send.maxage: pass maxAge as option') + +/** + * Emit error with `status`. + * + * @param {number} status + * @param {Error} [err] + * @private + */ + +SendStream.prototype.error = function error (status, err) { + // emit if listeners instead of responding + if (hasListeners(this, 'error')) { + return this.emit('error', createError(status, err, { + expose: false + })) + } + + var res = this.res + var msg = statuses[status] || String(status) + var doc = createHtmlDocument('Error', escapeHtml(msg)) + + // clear existing headers + clearHeaders(res) + + // add error headers + if (err && err.headers) { + setHeaders(res, err.headers) + } + + // send basic response + res.statusCode = status + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.end(doc) +} + +/** + * Check if the pathname ends with "/". + * + * @return {boolean} + * @private + */ + +SendStream.prototype.hasTrailingSlash = function hasTrailingSlash () { + return this.path[this.path.length - 1] === '/' +} + +/** + * Check if this is a conditional GET request. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isConditionalGET = function isConditionalGET () { + return this.req.headers['if-match'] || + this.req.headers['if-unmodified-since'] || + this.req.headers['if-none-match'] || + this.req.headers['if-modified-since'] +} + +/** + * Check if the request preconditions failed. + * + * @return {boolean} + * @private + */ + +SendStream.prototype.isPreconditionFailure = function isPreconditionFailure () { + var req = this.req + var res = this.res + + // if-match + var match = req.headers['if-match'] + if (match) { + var etag = res.getHeader('ETag') + return !etag || (match !== '*' && parseTokenList(match).every(function (match) { + return match !== etag && match !== 'W/' + etag && 'W/' + match !== etag + })) + } + + // if-unmodified-since + var unmodifiedSince = parseHttpDate(req.headers['if-unmodified-since']) + if (!isNaN(unmodifiedSince)) { + var lastModified = parseHttpDate(res.getHeader('Last-Modified')) + return isNaN(lastModified) || lastModified > unmodifiedSince + } + + return false +} + +/** + * Strip content-* header fields. + * + * @private + */ + +SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields () { + var res = this.res + var headers = getHeaderNames(res) + + for (var i = 0; i < headers.length; i++) { + var header = headers[i] + if (header.substr(0, 8) === 'content-' && header !== 'content-location') { + res.removeHeader(header) + } + } +} + +/** + * Respond with 304 not modified. + * + * @api private + */ + +SendStream.prototype.notModified = function notModified () { + var res = this.res + debug('not modified') + this.removeContentHeaderFields() + res.statusCode = 304 + res.end() +} + +/** + * Raise error that headers already sent. + * + * @api private + */ + +SendStream.prototype.headersAlreadySent = function headersAlreadySent () { + var err = new Error('Can\'t set headers after they are sent.') + debug('headers already sent') + this.error(500, err) +} + +/** + * Check if the request is cacheable, aka + * responded with 2xx or 304 (see RFC 2616 section 14.2{5,6}). + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isCachable = function isCachable () { + var statusCode = this.res.statusCode + return (statusCode >= 200 && statusCode < 300) || + statusCode === 304 +} + +/** + * Handle stat() error. + * + * @param {Error} error + * @private + */ + +SendStream.prototype.onStatError = function onStatError (error) { + switch (error.code) { + case 'ENAMETOOLONG': + case 'ENOENT': + case 'ENOTDIR': + this.error(404, error) + break + default: + this.error(500, error) + break + } +} + +/** + * Check if the cache is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isFresh = function isFresh () { + return fresh(this.req.headers, { + 'etag': this.res.getHeader('ETag'), + 'last-modified': this.res.getHeader('Last-Modified') + }) +} + +/** + * Check if the range is fresh. + * + * @return {Boolean} + * @api private + */ + +SendStream.prototype.isRangeFresh = function isRangeFresh () { + var ifRange = this.req.headers['if-range'] + + if (!ifRange) { + return true + } + + // if-range as etag + if (ifRange.indexOf('"') !== -1) { + var etag = this.res.getHeader('ETag') + return Boolean(etag && ifRange.indexOf(etag) !== -1) + } + + // if-range as modified date + var lastModified = this.res.getHeader('Last-Modified') + return parseHttpDate(lastModified) <= parseHttpDate(ifRange) +} + +/** + * Redirect to path. + * + * @param {string} path + * @private + */ + +SendStream.prototype.redirect = function redirect (path) { + var res = this.res + + if (hasListeners(this, 'directory')) { + this.emit('directory', res, path) + return + } + + if (this.hasTrailingSlash()) { + this.error(403) + return + } + + var loc = encodeUrl(collapseLeadingSlashes(this.path + '/')) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + + escapeHtml(loc) + '') + + // redirect + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) +} + +/** + * Pipe to `res. + * + * @param {Stream} res + * @return {Stream} res + * @api public + */ + +SendStream.prototype.pipe = function pipe (res) { + // root path + var root = this._root + + // references + this.res = res + + // decode the path + var path = decode(this.path) + if (path === -1) { + this.error(400) + return res + } + + // null byte(s) + if (~path.indexOf('\0')) { + this.error(400) + return res + } + + var parts + if (root !== null) { + // normalize + if (path) { + path = normalize('.' + sep + path) + } + + // malicious path + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = path.split(sep) + + // join / normalize from optional root dir + path = normalize(join(root, path)) + } else { + // ".." is malicious without "root" + if (UP_PATH_REGEXP.test(path)) { + debug('malicious path "%s"', path) + this.error(403) + return res + } + + // explode path parts + parts = normalize(path).split(sep) + + // resolve the path + path = resolve(path) + } + + // dotfile handling + if (containsDotFile(parts)) { + var access = this._dotfiles + + // legacy support + if (access === undefined) { + access = parts[parts.length - 1][0] === '.' + ? (this._hidden ? 'allow' : 'ignore') + : 'allow' + } + + debug('%s dotfile "%s"', access, path) + switch (access) { + case 'allow': + break + case 'deny': + this.error(403) + return res + case 'ignore': + default: + this.error(404) + return res + } + } + + // index file support + if (this._index.length && this.hasTrailingSlash()) { + this.sendIndex(path) + return res + } + + this.sendFile(path) + return res +} + +/** + * Transfer `path`. + * + * @param {String} path + * @api public + */ + +SendStream.prototype.send = function send (path, stat) { + var len = stat.size + var options = this.options + var opts = {} + var res = this.res + var req = this.req + var ranges = req.headers.range + var offset = options.start || 0 + + if (headersSent(res)) { + // impossible to send now + this.headersAlreadySent() + return + } + + debug('pipe "%s"', path) + + // set header fields + this.setHeader(path, stat) + + // set content-type + this.type(path) + + // conditional GET support + if (this.isConditionalGET()) { + if (this.isPreconditionFailure()) { + this.error(412) + return + } + + if (this.isCachable() && this.isFresh()) { + this.notModified() + return + } + } + + // adjust len to start/end options + len = Math.max(0, len - offset) + if (options.end !== undefined) { + var bytes = options.end - offset + 1 + if (len > bytes) len = bytes + } + + // Range support + if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) { + // parse + ranges = parseRange(len, ranges, { + combine: true + }) + + // If-Range support + if (!this.isRangeFresh()) { + debug('range stale') + ranges = -2 + } + + // unsatisfiable + if (ranges === -1) { + debug('range unsatisfiable') + + // Content-Range + res.setHeader('Content-Range', contentRange('bytes', len)) + + // 416 Requested Range Not Satisfiable + return this.error(416, { + headers: { 'Content-Range': res.getHeader('Content-Range') } + }) + } + + // valid (syntactically invalid/multiple ranges are treated as a regular response) + if (ranges !== -2 && ranges.length === 1) { + debug('range %j', ranges) + + // Content-Range + res.statusCode = 206 + res.setHeader('Content-Range', contentRange('bytes', len, ranges[0])) + + // adjust for requested range + offset += ranges[0].start + len = ranges[0].end - ranges[0].start + 1 + } + } + + // clone options + for (var prop in options) { + opts[prop] = options[prop] + } + + // set read options + opts.start = offset + opts.end = Math.max(offset, offset + len - 1) + + // content-length + res.setHeader('Content-Length', len) + + // HEAD support + if (req.method === 'HEAD') { + res.end() + return + } + + this.stream(path, opts) +} + +/** + * Transfer file for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendFile = function sendFile (path) { + var i = 0 + var self = this + + debug('stat "%s"', path) + fs.stat(path, function onstat (err, stat) { + if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) { + // not found, check extensions + return next(err) + } + if (err) return self.onStatError(err) + if (stat.isDirectory()) return self.redirect(path) + self.emit('file', path, stat) + self.send(path, stat) + }) + + function next (err) { + if (self._extensions.length <= i) { + return err + ? self.onStatError(err) + : self.error(404) + } + + var p = path + '.' + self._extensions[i++] + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } +} + +/** + * Transfer index for `path`. + * + * @param {String} path + * @api private + */ +SendStream.prototype.sendIndex = function sendIndex (path) { + var i = -1 + var self = this + + function next (err) { + if (++i >= self._index.length) { + if (err) return self.onStatError(err) + return self.error(404) + } + + var p = join(path, self._index[i]) + + debug('stat "%s"', p) + fs.stat(p, function (err, stat) { + if (err) return next(err) + if (stat.isDirectory()) return next() + self.emit('file', p, stat) + self.send(p, stat) + }) + } + + next() +} + +/** + * Stream `path` to the response. + * + * @param {String} path + * @param {Object} options + * @api private + */ + +SendStream.prototype.stream = function stream (path, options) { + // TODO: this is all lame, refactor meeee + var finished = false + var self = this + var res = this.res + + // pipe + var stream = fs.createReadStream(path, options) + this.emit('stream', stream) + stream.pipe(res) + + // response finished, done with the fd + onFinished(res, function onfinished () { + finished = true + destroy(stream) + }) + + // error handling code-smell + stream.on('error', function onerror (err) { + // request already finished + if (finished) return + + // clean up stream + finished = true + destroy(stream) + + // error + self.onStatError(err) + }) + + // end + stream.on('end', function onend () { + self.emit('end') + }) +} + +/** + * Set content-type based on `path` + * if it hasn't been explicitly set. + * + * @param {String} path + * @api private + */ + +SendStream.prototype.type = function type (path) { + var res = this.res + + if (res.getHeader('Content-Type')) return + + var type = mime.lookup(path) + + if (!type) { + debug('no content-type') + return + } + + var charset = mime.charsets.lookup(type) + + debug('content-type %s', type) + res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : '')) +} + +/** + * Set response header fields, most + * fields may be pre-defined. + * + * @param {String} path + * @param {Object} stat + * @api private + */ + +SendStream.prototype.setHeader = function setHeader (path, stat) { + var res = this.res + + this.emit('headers', res, path, stat) + + if (this._acceptRanges && !res.getHeader('Accept-Ranges')) { + debug('accept ranges') + res.setHeader('Accept-Ranges', 'bytes') + } + + if (this._cacheControl && !res.getHeader('Cache-Control')) { + var cacheControl = 'public, max-age=' + Math.floor(this._maxage / 1000) + + if (this._immutable) { + cacheControl += ', immutable' + } + + debug('cache-control %s', cacheControl) + res.setHeader('Cache-Control', cacheControl) + } + + if (this._lastModified && !res.getHeader('Last-Modified')) { + var modified = stat.mtime.toUTCString() + debug('modified %s', modified) + res.setHeader('Last-Modified', modified) + } + + if (this._etag && !res.getHeader('ETag')) { + var val = etag(stat) + debug('etag %s', val) + res.setHeader('ETag', val) + } +} + +/** + * Clear all headers from a response. + * + * @param {object} res + * @private + */ + +function clearHeaders (res) { + var headers = getHeaderNames(res) + + for (var i = 0; i < headers.length; i++) { + res.removeHeader(headers[i]) + } +} + +/** + * Collapse all leading slashes into a single slash + * + * @param {string} str + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str[i] !== '/') { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Determine if path parts contain a dotfile. + * + * @api private + */ + +function containsDotFile (parts) { + for (var i = 0; i < parts.length; i++) { + var part = parts[i] + if (part.length > 1 && part[0] === '.') { + return true + } + } + + return false +} + +/** + * Create a Content-Range header. + * + * @param {string} type + * @param {number} size + * @param {array} [range] + */ + +function contentRange (type, size, range) { + return type + ' ' + (range ? range.start + '-' + range.end : '*') + '/' + size +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
' + body + '
\n' + + '\n' + + '\n' +} + +/** + * decodeURIComponent. + * + * Allows V8 to only deoptimize this fn instead of all + * of send(). + * + * @param {String} path + * @api private + */ + +function decode (path) { + try { + return decodeURIComponent(path) + } catch (err) { + return -1 + } +} + +/** + * Get the header names on a respnse. + * + * @param {object} res + * @returns {array[string]} + * @private + */ + +function getHeaderNames (res) { + return typeof res.getHeaderNames !== 'function' + ? Object.keys(res._headers || {}) + : res.getHeaderNames() +} + +/** + * Determine if emitter has listeners of a given type. + * + * The way to do this check is done three different ways in Node.js >= 0.8 + * so this consolidates them into a minimal set using instance methods. + * + * @param {EventEmitter} emitter + * @param {string} type + * @returns {boolean} + * @private + */ + +function hasListeners (emitter, type) { + var count = typeof emitter.listenerCount !== 'function' + ? emitter.listeners(type).length + : emitter.listenerCount(type) + + return count > 0 +} + +/** + * Determine if the response headers have been sent. + * + * @param {object} res + * @returns {boolean} + * @private + */ + +function headersSent (res) { + return typeof res.headersSent !== 'boolean' + ? Boolean(res._header) + : res.headersSent +} + +/** + * Normalize the index option into an array. + * + * @param {boolean|string|array} val + * @param {string} name + * @private + */ + +function normalizeList (val, name) { + var list = [].concat(val || []) + + for (var i = 0; i < list.length; i++) { + if (typeof list[i] !== 'string') { + throw new TypeError(name + ' must be array of strings or false') + } + } + + return list +} + +/** + * Parse an HTTP Date into a number. + * + * @param {string} date + * @private + */ + +function parseHttpDate (date) { + var timestamp = date && Date.parse(date) + + return typeof timestamp === 'number' + ? timestamp + : NaN +} + +/** + * Parse a HTTP token list. + * + * @param {string} str + * @private + */ + +function parseTokenList (str) { + var end = 0 + var list = [] + var start = 0 + + // gather tokens + for (var i = 0, len = str.length; i < len; i++) { + switch (str.charCodeAt(i)) { + case 0x20: /* */ + if (start === end) { + start = end = i + 1 + } + break + case 0x2c: /* , */ + list.push(str.substring(start, end)) + start = end = i + 1 + break + default: + end = i + 1 + break + } + } + + // final token + list.push(str.substring(start, end)) + + return list +} + +/** + * Set an object of headers on a response. + * + * @param {object} res + * @param {object} headers + * @private + */ + +function setHeaders (res, headers) { + var keys = Object.keys(headers) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + res.setHeader(key, headers[key]) + } +} diff --git a/node_modules/send/node_modules/ms/index.js b/node_modules/send/node_modules/ms/index.js new file mode 100644 index 00000000..72297501 --- /dev/null +++ b/node_modules/send/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/node_modules/send/node_modules/ms/license.md b/node_modules/send/node_modules/ms/license.md new file mode 100644 index 00000000..69b61253 --- /dev/null +++ b/node_modules/send/node_modules/ms/license.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/send/node_modules/ms/package.json b/node_modules/send/node_modules/ms/package.json new file mode 100644 index 00000000..4b034365 --- /dev/null +++ b/node_modules/send/node_modules/ms/package.json @@ -0,0 +1,69 @@ +{ + "_from": "ms@2.1.1", + "_id": "ms@2.1.1", + "_inBundle": false, + "_integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "_location": "/send/ms", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "ms@2.1.1", + "name": "ms", + "escapedName": "ms", + "rawSpec": "2.1.1", + "saveSpec": null, + "fetchSpec": "2.1.1" + }, + "_requiredBy": [ + "/send" + ], + "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "_shasum": "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a", + "_spec": "ms@2.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\send", + "bugs": { + "url": "https://github.com/zeit/ms/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Tiny millisecond conversion utility", + "devDependencies": { + "eslint": "4.12.1", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/zeit/ms#readme", + "license": "MIT", + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "main": "./index", + "name": "ms", + "repository": { + "type": "git", + "url": "git+https://github.com/zeit/ms.git" + }, + "scripts": { + "lint": "eslint lib/* bin/*", + "precommit": "lint-staged", + "test": "mocha tests.js" + }, + "version": "2.1.1" +} diff --git a/node_modules/send/node_modules/ms/readme.md b/node_modules/send/node_modules/ms/readme.md new file mode 100644 index 00000000..bb767293 --- /dev/null +++ b/node_modules/send/node_modules/ms/readme.md @@ -0,0 +1,60 @@ +# ms + +[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) +[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/) + +Use this package to easily convert various time formats to milliseconds. + +## Examples + +```js +ms('2 days') // 172800000 +ms('1d') // 86400000 +ms('10h') // 36000000 +ms('2.5 hrs') // 9000000 +ms('2h') // 7200000 +ms('1m') // 60000 +ms('5s') // 5000 +ms('1y') // 31557600000 +ms('100') // 100 +ms('-3 days') // -259200000 +ms('-1h') // -3600000 +ms('-200') // -200 +``` + +### Convert from Milliseconds + +```js +ms(60000) // "1m" +ms(2 * 60000) // "2m" +ms(-3 * 60000) // "-3m" +ms(ms('10 hours')) // "10h" +``` + +### Time Format Written-Out + +```js +ms(60000, { long: true }) // "1 minute" +ms(2 * 60000, { long: true }) // "2 minutes" +ms(-3 * 60000, { long: true }) // "-3 minutes" +ms(ms('10 hours'), { long: true }) // "10 hours" +``` + +## Features + +- Works both in [Node.js](https://nodejs.org) and in the browser +- If a number is supplied to `ms`, a string with a unit is returned +- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) +- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned + +## Related Packages + +- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. + +## Caught a Bug? + +1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device +2. Link the package to the global module directory: `npm link` +3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! + +As always, you can run the tests using: `npm test` diff --git a/node_modules/send/package.json b/node_modules/send/package.json new file mode 100644 index 00000000..e499bd9d --- /dev/null +++ b/node_modules/send/package.json @@ -0,0 +1,106 @@ +{ + "_from": "send@0.17.1", + "_id": "send@0.17.1", + "_inBundle": false, + "_integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "_location": "/send", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "send@0.17.1", + "name": "send", + "escapedName": "send", + "rawSpec": "0.17.1", + "saveSpec": null, + "fetchSpec": "0.17.1" + }, + "_requiredBy": [ + "/express", + "/serve-static" + ], + "_resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "_shasum": "c1d8b059f7900f7466dd4938bdc44e11ddb376c8", + "_spec": "send@0.17.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "author": { + "name": "TJ Holowaychuk", + "email": "tj@vision-media.ca" + }, + "bugs": { + "url": "https://github.com/pillarjs/send/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "James Wyatt Cready", + "email": "jcready@gmail.com" + }, + { + "name": "Jesús Leganés Combarro", + "email": "piranna@gmail.com" + } + ], + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "deprecated": false, + "description": "Better streaming static file server with Range and conditional-GET support", + "devDependencies": { + "after": "0.8.2", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "6.1.4", + "supertest": "4.0.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/pillarjs/send#readme", + "keywords": [ + "static", + "file", + "server" + ], + "license": "MIT", + "name": "send", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/send.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --check-leaks --reporter spec --bail", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot" + }, + "version": "0.17.1" +} diff --git a/node_modules/serve-static/HISTORY.md b/node_modules/serve-static/HISTORY.md new file mode 100644 index 00000000..7203e4fb --- /dev/null +++ b/node_modules/serve-static/HISTORY.md @@ -0,0 +1,451 @@ +1.14.1 / 2019-05-10 +=================== + + * Set stricter CSP header in redirect response + * deps: send@0.17.1 + - deps: range-parser@~1.2.1 + +1.14.0 / 2019-05-07 +=================== + + * deps: parseurl@~1.3.3 + * deps: send@0.17.0 + - deps: http-errors@~1.7.2 + - deps: mime@1.6.0 + - deps: ms@2.1.1 + - deps: statuses@~1.5.0 + - perf: remove redundant `path.normalize` call + +1.13.2 / 2018-02-07 +=================== + + * Fix incorrect end tag in redirects + * deps: encodeurl@~1.0.2 + - Fix encoding `%` as last character + * deps: send@0.16.2 + - deps: depd@~1.1.2 + - deps: encodeurl@~1.0.2 + - deps: statuses@~1.4.0 + +1.13.1 / 2017-09-29 +=================== + + * Fix regression when `root` is incorrectly set to a file + * deps: send@0.16.1 + +1.13.0 / 2017-09-27 +=================== + + * deps: send@0.16.0 + - Add 70 new types for file extensions + - Add `immutable` option + - Fix missing `` in default error & redirects + - Set charset as "UTF-8" for .js and .json + - Use instance methods on steam to check for listeners + - deps: mime@1.4.1 + - perf: improve path validation speed + +1.12.6 / 2017-09-22 +=================== + + * deps: send@0.15.6 + - deps: debug@2.6.9 + - perf: improve `If-Match` token parsing + * perf: improve slash collapsing + +1.12.5 / 2017-09-21 +=================== + + * deps: parseurl@~1.3.2 + - perf: reduce overhead for full URLs + - perf: unroll the "fast-path" `RegExp` + * deps: send@0.15.5 + - Fix handling of modified headers with invalid dates + - deps: etag@~1.8.1 + - deps: fresh@0.5.2 + +1.12.4 / 2017-08-05 +=================== + + * deps: send@0.15.4 + - deps: debug@2.6.8 + - deps: depd@~1.1.1 + - deps: http-errors@~1.6.2 + +1.12.3 / 2017-05-16 +=================== + + * deps: send@0.15.3 + - deps: debug@2.6.7 + +1.12.2 / 2017-04-26 +=================== + + * deps: send@0.15.2 + - deps: debug@2.6.4 + +1.12.1 / 2017-03-04 +=================== + + * deps: send@0.15.1 + - Fix issue when `Date.parse` does not return `NaN` on invalid date + - Fix strict violation in broken environments + +1.12.0 / 2017-02-25 +=================== + + * Send complete HTML document in redirect response + * Set default CSP header in redirect response + * deps: send@0.15.0 + - Fix false detection of `no-cache` request directive + - Fix incorrect result when `If-None-Match` has both `*` and ETags + - Fix weak `ETag` matching to match spec + - Remove usage of `res._headers` private field + - Support `If-Match` and `If-Unmodified-Since` headers + - Use `res.getHeaderNames()` when available + - Use `res.headersSent` when available + - deps: debug@2.6.1 + - deps: etag@~1.8.0 + - deps: fresh@0.5.0 + - deps: http-errors@~1.6.1 + +1.11.2 / 2017-01-23 +=================== + + * deps: send@0.14.2 + - deps: http-errors@~1.5.1 + - deps: ms@0.7.2 + - deps: statuses@~1.3.1 + +1.11.1 / 2016-06-10 +=================== + + * Fix redirect error when `req.url` contains raw non-URL characters + * deps: send@0.14.1 + +1.11.0 / 2016-06-07 +=================== + + * Use status code 301 for redirects + * deps: send@0.14.0 + - Add `acceptRanges` option + - Add `cacheControl` option + - Attempt to combine multiple ranges into single range + - Correctly inherit from `Stream` class + - Fix `Content-Range` header in 416 responses when using `start`/`end` options + - Fix `Content-Range` header missing from default 416 responses + - Ignore non-byte `Range` headers + - deps: http-errors@~1.5.0 + - deps: range-parser@~1.2.0 + - deps: statuses@~1.3.0 + - perf: remove argument reassignment + +1.10.3 / 2016-05-30 +=================== + + * deps: send@0.13.2 + - Fix invalid `Content-Type` header when `send.mime.default_type` unset + +1.10.2 / 2016-01-19 +=================== + + * deps: parseurl@~1.3.1 + - perf: enable strict mode + +1.10.1 / 2016-01-16 +=================== + + * deps: escape-html@~1.0.3 + - perf: enable strict mode + - perf: optimize string replacement + - perf: use faster string coercion + * deps: send@0.13.1 + - deps: depd@~1.1.0 + - deps: destroy@~1.0.4 + - deps: escape-html@~1.0.3 + - deps: range-parser@~1.0.3 + +1.10.0 / 2015-06-17 +=================== + + * Add `fallthrough` option + - Allows declaring this middleware is the final destination + - Provides better integration with Express patterns + * Fix reading options from options prototype + * Improve the default redirect response headers + * deps: escape-html@1.0.2 + * deps: send@0.13.0 + - Allow Node.js HTTP server to set `Date` response header + - Fix incorrectly removing `Content-Location` on 304 response + - Improve the default redirect response headers + - Send appropriate headers on default error response + - Use `http-errors` for standard emitted errors + - Use `statuses` instead of `http` module for status messages + - deps: escape-html@1.0.2 + - deps: etag@~1.7.0 + - deps: fresh@0.3.0 + - deps: on-finished@~2.3.0 + - perf: enable strict mode + - perf: remove unnecessary array allocations + * perf: enable strict mode + * perf: remove argument reassignment + +1.9.3 / 2015-05-14 +================== + + * deps: send@0.12.3 + - deps: debug@~2.2.0 + - deps: depd@~1.0.1 + - deps: etag@~1.6.0 + - deps: ms@0.7.1 + - deps: on-finished@~2.2.1 + +1.9.2 / 2015-03-14 +================== + + * deps: send@0.12.2 + - Throw errors early for invalid `extensions` or `index` options + - deps: debug@~2.1.3 + +1.9.1 / 2015-02-17 +================== + + * deps: send@0.12.1 + - Fix regression sending zero-length files + +1.9.0 / 2015-02-16 +================== + + * deps: send@0.12.0 + - Always read the stat size from the file + - Fix mutating passed-in `options` + - deps: mime@1.3.4 + +1.8.1 / 2015-01-20 +================== + + * Fix redirect loop in Node.js 0.11.14 + * deps: send@0.11.1 + - Fix root path disclosure + +1.8.0 / 2015-01-05 +================== + + * deps: send@0.11.0 + - deps: debug@~2.1.1 + - deps: etag@~1.5.1 + - deps: ms@0.7.0 + - deps: on-finished@~2.2.0 + +1.7.2 / 2015-01-02 +================== + + * Fix potential open redirect when mounted at root + +1.7.1 / 2014-10-22 +================== + + * deps: send@0.10.1 + - deps: on-finished@~2.1.1 + +1.7.0 / 2014-10-15 +================== + + * deps: send@0.10.0 + - deps: debug@~2.1.0 + - deps: depd@~1.0.0 + - deps: etag@~1.5.0 + +1.6.5 / 2015-02-04 +================== + + * Fix potential open redirect when mounted at root + - Back-ported from v1.7.2 + +1.6.4 / 2014-10-08 +================== + + * Fix redirect loop when index file serving disabled + +1.6.3 / 2014-09-24 +================== + + * deps: send@0.9.3 + - deps: etag@~1.4.0 + +1.6.2 / 2014-09-15 +================== + + * deps: send@0.9.2 + - deps: depd@0.4.5 + - deps: etag@~1.3.1 + - deps: range-parser@~1.0.2 + +1.6.1 / 2014-09-07 +================== + + * deps: send@0.9.1 + - deps: fresh@0.2.4 + +1.6.0 / 2014-09-07 +================== + + * deps: send@0.9.0 + - Add `lastModified` option + - Use `etag` to generate `ETag` header + - deps: debug@~2.0.0 + +1.5.4 / 2014-09-04 +================== + + * deps: send@0.8.5 + - Fix a path traversal issue when using `root` + - Fix malicious path detection for empty string path + +1.5.3 / 2014-08-17 +================== + + * deps: send@0.8.3 + +1.5.2 / 2014-08-14 +================== + + * deps: send@0.8.2 + - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` + +1.5.1 / 2014-08-09 +================== + + * Fix parsing of weird `req.originalUrl` values + * deps: parseurl@~1.3.0 + * deps: utils-merge@1.0.0 + +1.5.0 / 2014-08-05 +================== + + * deps: send@0.8.1 + - Add `extensions` option + +1.4.4 / 2014-08-04 +================== + + * deps: send@0.7.4 + - Fix serving index files without root dir + +1.4.3 / 2014-07-29 +================== + + * deps: send@0.7.3 + - Fix incorrect 403 on Windows and Node.js 0.11 + +1.4.2 / 2014-07-27 +================== + + * deps: send@0.7.2 + - deps: depd@0.4.4 + +1.4.1 / 2014-07-26 +================== + + * deps: send@0.7.1 + - deps: depd@0.4.3 + +1.4.0 / 2014-07-21 +================== + + * deps: parseurl@~1.2.0 + - Cache URLs based on original value + - Remove no-longer-needed URL mis-parse work-around + - Simplify the "fast-path" `RegExp` + * deps: send@0.7.0 + - Add `dotfiles` option + - deps: debug@1.0.4 + - deps: depd@0.4.2 + +1.3.2 / 2014-07-11 +================== + + * deps: send@0.6.0 + - Cap `maxAge` value to 1 year + - deps: debug@1.0.3 + +1.3.1 / 2014-07-09 +================== + + * deps: parseurl@~1.1.3 + - faster parsing of href-only URLs + +1.3.0 / 2014-06-28 +================== + + * Add `setHeaders` option + * Include HTML link in redirect response + * deps: send@0.5.0 + - Accept string for `maxAge` (converted by `ms`) + +1.2.3 / 2014-06-11 +================== + + * deps: send@0.4.3 + - Do not throw un-catchable error on file open race condition + - Use `escape-html` for HTML escaping + - deps: debug@1.0.2 + - deps: finished@1.2.2 + - deps: fresh@0.2.2 + +1.2.2 / 2014-06-09 +================== + + * deps: send@0.4.2 + - fix "event emitter leak" warnings + - deps: debug@1.0.1 + - deps: finished@1.2.1 + +1.2.1 / 2014-06-02 +================== + + * use `escape-html` for escaping + * deps: send@0.4.1 + - Send `max-age` in `Cache-Control` in correct format + +1.2.0 / 2014-05-29 +================== + + * deps: send@0.4.0 + - Calculate ETag with md5 for reduced collisions + - Fix wrong behavior when index file matches directory + - Ignore stream errors after request ends + - Skip directories in index file search + - deps: debug@0.8.1 + +1.1.0 / 2014-04-24 +================== + + * Accept options directly to `send` module + * deps: send@0.3.0 + +1.0.4 / 2014-04-07 +================== + + * Resolve relative paths at middleware setup + * Use parseurl to parse the URL from request + +1.0.3 / 2014-03-20 +================== + + * Do not rely on connect-like environments + +1.0.2 / 2014-03-06 +================== + + * deps: send@0.2.0 + +1.0.1 / 2014-03-05 +================== + + * Add mime export for back-compat + +1.0.0 / 2014-03-05 +================== + + * Genesis from `connect` diff --git a/node_modules/serve-static/LICENSE b/node_modules/serve-static/LICENSE new file mode 100644 index 00000000..cbe62e8e --- /dev/null +++ b/node_modules/serve-static/LICENSE @@ -0,0 +1,25 @@ +(The MIT License) + +Copyright (c) 2010 Sencha Inc. +Copyright (c) 2011 LearnBoost +Copyright (c) 2011 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/serve-static/README.md b/node_modules/serve-static/README.md new file mode 100644 index 00000000..7cce428c --- /dev/null +++ b/node_modules/serve-static/README.md @@ -0,0 +1,259 @@ +# serve-static + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Linux Build][travis-image]][travis-url] +[![Windows Build][appveyor-image]][appveyor-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install serve-static +``` + +## API + + + +```js +var serveStatic = require('serve-static') +``` + +### serveStatic(root, options) + +Create a new middleware function to serve files from within a given root +directory. The file to serve will be determined by combining `req.url` +with the provided root directory. When a file is not found, instead of +sending a 404 response, this module will instead call `next()` to move on +to the next middleware, allowing for stacking and fall-backs. + +#### Options + +##### acceptRanges + +Enable or disable accepting ranged requests, defaults to true. +Disabling this will not send `Accept-Ranges` and ignore the contents +of the `Range` request header. + +##### cacheControl + +Enable or disable setting `Cache-Control` response header, defaults to +true. Disabling this will ignore the `immutable` and `maxAge` options. + +##### dotfiles + + Set how "dotfiles" are treated when encountered. A dotfile is a file +or directory that begins with a dot ("."). Note this check is done on +the path itself without checking if the path actually exists on the +disk. If `root` is specified, only the dotfiles above the root are +checked (i.e. the root itself can be within a dotfile when set +to "deny"). + + - `'allow'` No special treatment for dotfiles. + - `'deny'` Deny a request for a dotfile and 403/`next()`. + - `'ignore'` Pretend like the dotfile does not exist and 404/`next()`. + +The default value is similar to `'ignore'`, with the exception that this +default will not ignore the files within a directory that begins with a dot. + +##### etag + +Enable or disable etag generation, defaults to true. + +##### extensions + +Set file extension fallbacks. When set, if a file is not found, the given +extensions will be added to the file name and search for. The first that +exists will be served. Example: `['html', 'htm']`. + +The default value is `false`. + +##### fallthrough + +Set the middleware to have client errors fall-through as just unhandled +requests, otherwise forward a client error. The difference is that client +errors like a bad request or a request to a non-existent file will cause +this middleware to simply `next()` to your next middleware when this value +is `true`. When this value is `false`, these errors (even 404s), will invoke +`next(err)`. + +Typically `true` is desired such that multiple physical directories can be +mapped to the same web address or for routes to fill in non-existent files. + +The value `false` can be used if this middleware is mounted at a path that +is designed to be strictly a single file system directory, which allows for +short-circuiting 404s for less overhead. This middleware will also reply to +all methods. + +The default value is `true`. + +##### immutable + +Enable or disable the `immutable` directive in the `Cache-Control` response +header, defaults to `false`. If set to `true`, the `maxAge` option should +also be specified to enable caching. The `immutable` directive will prevent +supported clients from making conditional requests during the life of the +`maxAge` option to check if the file has changed. + +##### index + +By default this module will send "index.html" files in response to a request +on a directory. To disable this set `false` or to supply a new index pass a +string or an array in preferred order. + +##### lastModified + +Enable or disable `Last-Modified` header, defaults to true. Uses the file +system's last modified value. + +##### maxAge + +Provide a max-age in milliseconds for http caching, defaults to 0. This +can also be a string accepted by the [ms](https://www.npmjs.org/package/ms#readme) +module. + +##### redirect + +Redirect to trailing "/" when the pathname is a dir. Defaults to `true`. + +##### setHeaders + +Function to set custom headers on response. Alterations to the headers need to +occur synchronously. The function is called as `fn(res, path, stat)`, where +the arguments are: + + - `res` the response object + - `path` the file path that is being sent + - `stat` the stat object of the file that is being sent + +## Examples + +### Serve files with vanilla node.js http server + +```js +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { 'index': ['index.html', 'index.htm'] }) + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serve all files as downloads + +```js +var contentDisposition = require('content-disposition') +var finalhandler = require('finalhandler') +var http = require('http') +var serveStatic = require('serve-static') + +// Serve up public/ftp folder +var serve = serveStatic('public/ftp', { + 'index': false, + 'setHeaders': setHeaders +}) + +// Set header to force download +function setHeaders (res, path) { + res.setHeader('Content-Disposition', contentDisposition(path)) +} + +// Create server +var server = http.createServer(function onRequest (req, res) { + serve(req, res, finalhandler(req, res)) +}) + +// Listen +server.listen(3000) +``` + +### Serving using express + +#### Simple + +This is a simple example of using Express. + +```js +var express = require('express') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic('public/ftp', { 'index': ['default.html', 'default.htm'] })) +app.listen(3000) +``` + +#### Multiple roots + +This example shows a simple way to search through multiple directories. +Files are look for in `public-optimized/` first, then `public/` second as +a fallback. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public-optimized'))) +app.use(serveStatic(path.join(__dirname, 'public'))) +app.listen(3000) +``` + +#### Different settings for paths + +This example shows how to set a different max age depending on the served +file type. In this example, HTML files are not cached, while everything else +is for 1 day. + +```js +var express = require('express') +var path = require('path') +var serveStatic = require('serve-static') + +var app = express() + +app.use(serveStatic(path.join(__dirname, 'public'), { + maxAge: '1d', + setHeaders: setCustomCacheControl +})) + +app.listen(3000) + +function setCustomCacheControl (res, path) { + if (serveStatic.mime.lookup(path) === 'text/html') { + // Custom Cache-Control for HTML files + res.setHeader('Cache-Control', 'public, max-age=0') + } +} +``` + +## License + +[MIT](LICENSE) + +[appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/serve-static/master?label=windows +[appveyor-url]: https://ci.appveyor.com/project/dougwilson/serve-static +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/serve-static/master +[coveralls-url]: https://coveralls.io/r/expressjs/serve-static?branch=master +[node-image]: https://badgen.net/npm/node/serve-static +[node-url]: https://nodejs.org/en/download/ +[npm-downloads-image]: https://badgen.net/npm/dm/serve-static +[npm-url]: https://npmjs.org/package/serve-static +[npm-version-image]: https://badgen.net/npm/v/serve-static +[travis-image]: https://badgen.net/travis/expressjs/serve-static/master?label=linux +[travis-url]: https://travis-ci.org/expressjs/serve-static diff --git a/node_modules/serve-static/index.js b/node_modules/serve-static/index.js new file mode 100644 index 00000000..b7d3984c --- /dev/null +++ b/node_modules/serve-static/index.js @@ -0,0 +1,210 @@ +/*! + * serve-static + * Copyright(c) 2010 Sencha Inc. + * Copyright(c) 2011 TJ Holowaychuk + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var encodeUrl = require('encodeurl') +var escapeHtml = require('escape-html') +var parseUrl = require('parseurl') +var resolve = require('path').resolve +var send = require('send') +var url = require('url') + +/** + * Module exports. + * @public + */ + +module.exports = serveStatic +module.exports.mime = send.mime + +/** + * @param {string} root + * @param {object} [options] + * @return {function} + * @public + */ + +function serveStatic (root, options) { + if (!root) { + throw new TypeError('root path required') + } + + if (typeof root !== 'string') { + throw new TypeError('root path must be a string') + } + + // copy options object + var opts = Object.create(options || null) + + // fall-though + var fallthrough = opts.fallthrough !== false + + // default redirect + var redirect = opts.redirect !== false + + // headers listener + var setHeaders = opts.setHeaders + + if (setHeaders && typeof setHeaders !== 'function') { + throw new TypeError('option setHeaders must be function') + } + + // setup options for send + opts.maxage = opts.maxage || opts.maxAge || 0 + opts.root = resolve(root) + + // construct directory listener + var onDirectory = redirect + ? createRedirectDirectoryListener() + : createNotFoundDirectoryListener() + + return function serveStatic (req, res, next) { + if (req.method !== 'GET' && req.method !== 'HEAD') { + if (fallthrough) { + return next() + } + + // method not allowed + res.statusCode = 405 + res.setHeader('Allow', 'GET, HEAD') + res.setHeader('Content-Length', '0') + res.end() + return + } + + var forwardError = !fallthrough + var originalUrl = parseUrl.original(req) + var path = parseUrl(req).pathname + + // make sure redirect occurs at mount + if (path === '/' && originalUrl.pathname.substr(-1) !== '/') { + path = '' + } + + // create send stream + var stream = send(req, path, opts) + + // add directory handler + stream.on('directory', onDirectory) + + // add headers listener + if (setHeaders) { + stream.on('headers', setHeaders) + } + + // add file listener for fallthrough + if (fallthrough) { + stream.on('file', function onFile () { + // once file is determined, always forward error + forwardError = true + }) + } + + // forward errors + stream.on('error', function error (err) { + if (forwardError || !(err.statusCode < 500)) { + next(err) + return + } + + next() + }) + + // pipe + stream.pipe(res) + } +} + +/** + * Collapse all leading slashes into a single slash + * @private + */ +function collapseLeadingSlashes (str) { + for (var i = 0; i < str.length; i++) { + if (str.charCodeAt(i) !== 0x2f /* / */) { + break + } + } + + return i > 1 + ? '/' + str.substr(i) + : str +} + +/** + * Create a minimal HTML document. + * + * @param {string} title + * @param {string} body + * @private + */ + +function createHtmlDocument (title, body) { + return '\n' + + '\n' + + '\n' + + '\n' + + '' + title + '\n' + + '\n' + + '\n' + + '
' + body + '
\n' + + '\n' + + '\n' +} + +/** + * Create a directory listener that just 404s. + * @private + */ + +function createNotFoundDirectoryListener () { + return function notFound () { + this.error(404) + } +} + +/** + * Create a directory listener that performs a redirect. + * @private + */ + +function createRedirectDirectoryListener () { + return function redirect (res) { + if (this.hasTrailingSlash()) { + this.error(404) + return + } + + // get original URL + var originalUrl = parseUrl.original(this.req) + + // append trailing slash + originalUrl.path = null + originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + '/') + + // reformat the URL + var loc = encodeUrl(url.format(originalUrl)) + var doc = createHtmlDocument('Redirecting', 'Redirecting to ' + + escapeHtml(loc) + '') + + // send redirect response + res.statusCode = 301 + res.setHeader('Content-Type', 'text/html; charset=UTF-8') + res.setHeader('Content-Length', Buffer.byteLength(doc)) + res.setHeader('Content-Security-Policy', "default-src 'none'") + res.setHeader('X-Content-Type-Options', 'nosniff') + res.setHeader('Location', loc) + res.end(doc) + } +} diff --git a/node_modules/serve-static/package.json b/node_modules/serve-static/package.json new file mode 100644 index 00000000..97f8ae7c --- /dev/null +++ b/node_modules/serve-static/package.json @@ -0,0 +1,77 @@ +{ + "_from": "serve-static@1.14.1", + "_id": "serve-static@1.14.1", + "_inBundle": false, + "_integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "_location": "/serve-static", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "serve-static@1.14.1", + "name": "serve-static", + "escapedName": "serve-static", + "rawSpec": "1.14.1", + "saveSpec": null, + "fetchSpec": "1.14.1" + }, + "_requiredBy": [ + "/express" + ], + "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "_shasum": "666e636dc4f010f7ef29970a88a674320898b2f9", + "_spec": "serve-static@1.14.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/expressjs/serve-static/issues" + }, + "bundleDependencies": false, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "deprecated": false, + "description": "Serve static files", + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "mocha": "6.1.4", + "safe-buffer": "5.1.2", + "supertest": "4.0.2" + }, + "engines": { + "node": ">= 0.8.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/expressjs/serve-static#readme", + "license": "MIT", + "name": "serve-static", + "repository": { + "type": "git", + "url": "git+https://github.com/expressjs/serve-static.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "version": "1.14.1" +} diff --git a/node_modules/set-blocking/CHANGELOG.md b/node_modules/set-blocking/CHANGELOG.md new file mode 100644 index 00000000..03bf5919 --- /dev/null +++ b/node_modules/set-blocking/CHANGELOG.md @@ -0,0 +1,26 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + + +# [2.0.0](https://github.com/yargs/set-blocking/compare/v1.0.0...v2.0.0) (2016-05-17) + + +### Features + +* add an isTTY check ([#3](https://github.com/yargs/set-blocking/issues/3)) ([66ce277](https://github.com/yargs/set-blocking/commit/66ce277)) + + +### BREAKING CHANGES + +* stdio/stderr will not be set to blocking if isTTY === false + + + + +# 1.0.0 (2016-05-14) + + +### Features + +* implemented shim for stream._handle.setBlocking ([6bde0c0](https://github.com/yargs/set-blocking/commit/6bde0c0)) diff --git a/node_modules/set-blocking/LICENSE.txt b/node_modules/set-blocking/LICENSE.txt new file mode 100644 index 00000000..836440be --- /dev/null +++ b/node_modules/set-blocking/LICENSE.txt @@ -0,0 +1,14 @@ +Copyright (c) 2016, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +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/node_modules/set-blocking/README.md b/node_modules/set-blocking/README.md new file mode 100644 index 00000000..e93b4202 --- /dev/null +++ b/node_modules/set-blocking/README.md @@ -0,0 +1,31 @@ +# set-blocking + +[![Build Status](https://travis-ci.org/yargs/set-blocking.svg)](https://travis-ci.org/yargs/set-blocking) +[![NPM version](https://img.shields.io/npm/v/set-blocking.svg)](https://www.npmjs.com/package/set-blocking) +[![Coverage Status](https://coveralls.io/repos/yargs/set-blocking/badge.svg?branch=)](https://coveralls.io/r/yargs/set-blocking?branch=master) +[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version) + +set blocking `stdio` and `stderr` ensuring that terminal output does not truncate. + +```js +const setBlocking = require('set-blocking') +setBlocking(true) +console.log(someLargeStringToOutput) +``` + +## Historical Context/Word of Warning + +This was created as a shim to address the bug discussed in [node #6456](https://github.com/nodejs/node/issues/6456). This bug crops up on +newer versions of Node.js (`0.12+`), truncating terminal output. + +You should be mindful of the side-effects caused by using `set-blocking`: + +* if your module sets blocking to `true`, it will effect other modules + consuming your library. In [yargs](https://github.com/yargs/yargs/blob/master/yargs.js#L653) we only call + `setBlocking(true)` once we already know we are about to call `process.exit(code)`. +* this patch will not apply to subprocesses spawned with `isTTY = true`, this is + the [default `spawn()` behavior](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options). + +## License + +ISC diff --git a/node_modules/set-blocking/index.js b/node_modules/set-blocking/index.js new file mode 100644 index 00000000..6f78774b --- /dev/null +++ b/node_modules/set-blocking/index.js @@ -0,0 +1,7 @@ +module.exports = function (blocking) { + [process.stdout, process.stderr].forEach(function (stream) { + if (stream._handle && stream.isTTY && typeof stream._handle.setBlocking === 'function') { + stream._handle.setBlocking(blocking) + } + }) +} diff --git a/node_modules/set-blocking/package.json b/node_modules/set-blocking/package.json new file mode 100644 index 00000000..d02fe950 --- /dev/null +++ b/node_modules/set-blocking/package.json @@ -0,0 +1,70 @@ +{ + "_from": "set-blocking@^2.0.0", + "_id": "set-blocking@2.0.0", + "_inBundle": false, + "_integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "_location": "/set-blocking", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "set-blocking@^2.0.0", + "name": "set-blocking", + "escapedName": "set-blocking", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/yargs" + ], + "_resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "_shasum": "045f9782d011ae9a6803ddd382b24392b3d890f7", + "_spec": "set-blocking@^2.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\yargs", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/yargs/set-blocking/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "set blocking stdio and stderr ensuring that terminal output does not truncate", + "devDependencies": { + "chai": "^3.5.0", + "coveralls": "^2.11.9", + "mocha": "^2.4.5", + "nyc": "^6.4.4", + "standard": "^7.0.1", + "standard-version": "^2.2.1" + }, + "files": [ + "index.js", + "LICENSE.txt" + ], + "homepage": "https://github.com/yargs/set-blocking#readme", + "keywords": [ + "flush", + "terminal", + "blocking", + "shim", + "stdio", + "stderr" + ], + "license": "ISC", + "main": "index.js", + "name": "set-blocking", + "repository": { + "type": "git", + "url": "git+https://github.com/yargs/set-blocking.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "test": "nyc mocha ./test/*.js", + "version": "standard-version" + }, + "version": "2.0.0" +} diff --git a/node_modules/setprototypeof/LICENSE b/node_modules/setprototypeof/LICENSE new file mode 100644 index 00000000..61afa2f1 --- /dev/null +++ b/node_modules/setprototypeof/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015, Wes Todd + +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/node_modules/setprototypeof/README.md b/node_modules/setprototypeof/README.md new file mode 100644 index 00000000..f120044b --- /dev/null +++ b/node_modules/setprototypeof/README.md @@ -0,0 +1,31 @@ +# Polyfill for `Object.setPrototypeOf` + +[![NPM Version](https://img.shields.io/npm/v/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![NPM Downloads](https://img.shields.io/npm/dm/setprototypeof.svg)](https://npmjs.org/package/setprototypeof) +[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/standard/standard) + +A simple cross platform implementation to set the prototype of an instianted object. Supports all modern browsers and at least back to IE8. + +## Usage: + +``` +$ npm install --save setprototypeof +``` + +```javascript +var setPrototypeOf = require('setprototypeof') + +var obj = {} +setPrototypeOf(obj, { + foo: function () { + return 'bar' + } +}) +obj.foo() // bar +``` + +TypeScript is also supported: + +```typescript +import setPrototypeOf = require('setprototypeof') +``` diff --git a/node_modules/setprototypeof/index.d.ts b/node_modules/setprototypeof/index.d.ts new file mode 100644 index 00000000..f108ecd0 --- /dev/null +++ b/node_modules/setprototypeof/index.d.ts @@ -0,0 +1,2 @@ +declare function setPrototypeOf(o: any, proto: object | null): any; +export = setPrototypeOf; diff --git a/node_modules/setprototypeof/index.js b/node_modules/setprototypeof/index.js new file mode 100644 index 00000000..81fd5d7a --- /dev/null +++ b/node_modules/setprototypeof/index.js @@ -0,0 +1,17 @@ +'use strict' +/* eslint no-proto: 0 */ +module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties) + +function setProtoOf (obj, proto) { + obj.__proto__ = proto + return obj +} + +function mixinProperties (obj, proto) { + for (var prop in proto) { + if (!obj.hasOwnProperty(prop)) { + obj[prop] = proto[prop] + } + } + return obj +} diff --git a/node_modules/setprototypeof/package.json b/node_modules/setprototypeof/package.json new file mode 100644 index 00000000..bf41f9cc --- /dev/null +++ b/node_modules/setprototypeof/package.json @@ -0,0 +1,64 @@ +{ + "_from": "setprototypeof@1.1.1", + "_id": "setprototypeof@1.1.1", + "_inBundle": false, + "_integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "_location": "/setprototypeof", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "setprototypeof@1.1.1", + "name": "setprototypeof", + "escapedName": "setprototypeof", + "rawSpec": "1.1.1", + "saveSpec": null, + "fetchSpec": "1.1.1" + }, + "_requiredBy": [ + "/express", + "/http-errors" + ], + "_resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "_shasum": "7e95acb24aa92f5885e0abef5ba131330d4ae683", + "_spec": "setprototypeof@1.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "author": { + "name": "Wes Todd" + }, + "bugs": { + "url": "https://github.com/wesleytodd/setprototypeof/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A small polyfill for Object.setprototypeof", + "devDependencies": { + "mocha": "^5.2.0", + "standard": "^12.0.1" + }, + "homepage": "https://github.com/wesleytodd/setprototypeof", + "keywords": [ + "polyfill", + "object", + "setprototypeof" + ], + "license": "ISC", + "main": "index.js", + "name": "setprototypeof", + "repository": { + "type": "git", + "url": "git+https://github.com/wesleytodd/setprototypeof.git" + }, + "scripts": { + "node010": "NODE_VER=0.10 MOCHA_VER=3 npm run testversion", + "node11": "NODE_VER=11 npm run testversion", + "node4": "NODE_VER=4 npm run testversion", + "node6": "NODE_VER=6 npm run testversion", + "node9": "NODE_VER=9 npm run testversion", + "test": "standard && mocha", + "testallversions": "npm run node010 && npm run node4 && npm run node6 && npm run node9 && npm run node11", + "testversion": "docker run -it --rm -v $(PWD):/usr/src/app -w /usr/src/app node:${NODE_VER} npm install mocha@${MOCHA_VER:-latest} && npm t" + }, + "typings": "index.d.ts", + "version": "1.1.1" +} diff --git a/node_modules/setprototypeof/test/index.js b/node_modules/setprototypeof/test/index.js new file mode 100644 index 00000000..afeb4ddb --- /dev/null +++ b/node_modules/setprototypeof/test/index.js @@ -0,0 +1,24 @@ +'use strict' +/* eslint-env mocha */ +/* eslint no-proto: 0 */ +var assert = require('assert') +var setPrototypeOf = require('..') + +describe('setProtoOf(obj, proto)', function () { + it('should merge objects', function () { + var obj = { a: 1, b: 2 } + var proto = { b: 3, c: 4 } + var mergeObj = setPrototypeOf(obj, proto) + + if (Object.getPrototypeOf) { + assert.strictEqual(Object.getPrototypeOf(obj), proto) + } else if ({ __proto__: [] } instanceof Array) { + assert.strictEqual(obj.__proto__, proto) + } else { + assert.strictEqual(obj.a, 1) + assert.strictEqual(obj.b, 2) + assert.strictEqual(obj.c, 4) + } + assert.strictEqual(mergeObj, obj) + }) +}) diff --git a/node_modules/sift/.babelrc b/node_modules/sift/.babelrc new file mode 100644 index 00000000..af0f0c3d --- /dev/null +++ b/node_modules/sift/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015"] +} \ No newline at end of file diff --git a/node_modules/sift/.coveralls.yml b/node_modules/sift/.coveralls.yml new file mode 100644 index 00000000..cf5a2d64 --- /dev/null +++ b/node_modules/sift/.coveralls.yml @@ -0,0 +1 @@ +repo_token: dYtQuNe9CVSGoA5LVadgT3lomowKzEgav \ No newline at end of file diff --git a/node_modules/sift/.travis.yml b/node_modules/sift/.travis.yml new file mode 100644 index 00000000..28c8002b --- /dev/null +++ b/node_modules/sift/.travis.yml @@ -0,0 +1,13 @@ +language: node_js +node_js: + - 0.10 + +script: npm run test-coveralls + +notifications: + email: + - craig.j.condon@gmail.com + +branches: + only: + - master diff --git a/node_modules/sift/MIT-LICENSE.txt b/node_modules/sift/MIT-LICENSE.txt new file mode 100644 index 00000000..c080d2eb --- /dev/null +++ b/node_modules/sift/MIT-LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2015 Craig Condon + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/sift/README.md b/node_modules/sift/README.md new file mode 100644 index 00000000..b89d8284 --- /dev/null +++ b/node_modules/sift/README.md @@ -0,0 +1,417 @@ +## validate objects & filter arrays with mongodb queries +[![Build Status](https://secure.travis-ci.org/crcn/sift.js.png)](https://secure.travis-ci.org/crcn/sift.js) + + + +**For extended documentation, checkout http://docs.mongodb.org/manual/reference/operator/query/** + +## Features: + +- Supported operators: [$in](#in), [$nin](#nin), [$exists](#exists), [$gte](#gte), [$gt](#gt), [$lte](#lte), [$lt](#lt), [$eq](#eq), [$ne](#ne), [$mod](#mod), [$all](#all), [$and](#and), [$or](#or), [$nor](#nor), [$not](#not), [$size](#size), [$type](#type), [$regex](#regex), [$where](#where), [$elemMatch](#elemmatch) +- Regexp searches +- Function filtering +- sub object searching +- dot notation searching +- Supports node.js, and web +- Small (2 kb minified) library +- Custom Expressions +- filtering of immutable datastructures + + + +## Node.js Examples + +```javascript + +import sift from 'sift'; + +//intersecting arrays +var sifted = sift({ $in: ['hello','world'] }, ['hello','sifted','array!']); //['hello'] + +//regexp filter +var sifted = sift(/^j/, ['craig','john','jake']); //['john','jake'] + + +//A *sifter* is returned if the second parameter is omitted +var testQuery = sift({ + + //you can also filter against functions + name: function(value) { + return value.length == 5; + } +}); + +//filtered: [{ name: 'craig' }] +[{ + name: 'craig', +}, +{ + name: 'john' +}, +{ + name: 'jake' +}].filter(testQuery); + + +//you can test *single values* against your custom sifter +testQuery({ name: 'sarah' }); //true +testQuery({ name: 'tim' }); //false\ +``` + +## Browser Examples +```html + + + + + + + + +``` + +## API + +### .sift(filter[, array][, selectorFn]) + +- `filter` - the filter to use against the target array +- `array` - sifts against target array. Without this, a function is returned +- `selectorFn` - selector for the values within the array. + +With an array: + +```javascript +sift({$exists:true}, ['craig',null]); //['craig'] +``` + +Without an array, a sifter is returned: + +```javascript +var siftExists = sift({$exists:true}); + +siftExists('craig'); //true +siftExists(null); //false +['craig',null].filter(siftExists); //['craig'] +``` + +With a selector: + +```javascript +var sifter = sift({$exists:true}, function(user) { + return !!user.name; +}); + + +sifter([ + { + name: "Craig" + }, + { + name: null + } +]) +``` + +With your sifter, you can also **test** values: + +```javascript +siftExists(null); //false +siftExists('craig'); //true +``` + + +## Supported Operators: + +See MongoDB's [advanced queries](http://www.mongodb.org/display/DOCS/Advanced+Queries) for more info. + +### $in + +array value must be *$in* the given query: + +Intersecting two arrays: + +```javascript +//filtered: ['Brazil'] +sift({ $in: ['Costa Rica','Brazil'] }, ['Brazil','Haiti','Peru','Chile']); +``` + +Here's another example. This acts more like the $or operator: + +```javascript +sift({ location: { $in: ['Costa Rica','Brazil'] } }, [ { name: 'Craig', location: 'Brazil' } ]); +``` + +### $nin + +Opposite of $in: + +```javascript +//filtered: ['Haiti','Peru','Chile'] +sift({ $nin: ['Costa Rica','Brazil'] }, ['Brazil','Haiti','Peru','Chile']); +``` + +### $exists + +Checks if whether a value exists: + +```javascript +//filtered: ['Craig','Tim'] +sift({ $exists: true }, ['Craig',null,'Tim']); +``` + +You can also filter out values that don't exist + +```javascript +//filtered: [{ name: 'Craig', city: 'Minneapolis' }] +sift({ city: { $exists: false } }, [ { name: 'Craig', city: 'Minneapolis' }, { name: 'Tim' }]); +``` + +### $gte + +Checks if a number is >= value: + +```javascript +//filtered: [2, 3] +sift({ $gte: 2 }, [0, 1, 2, 3]); +``` + +### $gt + +Checks if a number is > value: + +```javascript +//filtered: [3] +sift({ $gt: 2 }, [0, 1, 2, 3]); +``` + +### $lte + +Checks if a number is <= value. + +```javascript +//filtered: [0, 1, 2] +sift({ $lte: 2 }, [0, 1, 2, 3]); +``` + +### $lt + +Checks if number is < value. + +```javascript +//filtered: [0, 1] +sift({ $lt: 2 }, [0, 1, 2, 3]); +``` + +### $eq + +Checks if `query === value`. Note that **$eq can be omitted**. For **$eq**, and **$ne** + +```javascript +//filtered: [{ state: 'MN' }] +sift({ state: {$eq: 'MN' }}, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }]); +``` + +Or: + +```javascript +//filtered: [{ state: 'MN' }] +sift({ state: 'MN' }, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }]); +``` + +### $ne + +Checks if `query !== value`. + +```javascript +//filtered: [{ state: 'CA' }, { state: 'WI'}] +sift({ state: {$ne: 'MN' }}, [{ state: 'MN' }, { state: 'CA' }, { state: 'WI' }]); +``` + +### $mod + +Modulus: + +```javascript +//filtered: [300, 600] +sift({ $mod: [3, 0] }, [100, 200, 300, 400, 500, 600]); +``` + +### $all + +values must match **everything** in array: + +```javascript +//filtered: [ { tags: ['books','programming','travel' ]} ] +sift({ tags: {$all: ['books','programming'] }}, [ +{ tags: ['books','programming','travel' ] }, +{ tags: ['travel','cooking'] } ]); +``` + +### $and + +ability to use an array of expressions. All expressions must test true. + +```javascript +//filtered: [ { name: 'Craig', state: 'MN' }] + +sift({ $and: [ { name: 'Craig' }, { state: 'MN' } ] }, [ +{ name: 'Craig', state: 'MN' }, +{ name: 'Tim', state: 'MN' }, +{ name: 'Joe', state: 'CA' } ]); +``` + +### $or + +OR array of expressions. + +```javascript +//filtered: [ { name: 'Craig', state: 'MN' }, { name: 'Tim', state: 'MN' }] +sift({ $or: [ { name: 'Craig' }, { state: 'MN' } ] }, [ +{ name: 'Craig', state: 'MN' }, +{ name: 'Tim', state: 'MN' }, +{ name: 'Joe', state: 'CA' } ]); +``` + +### $nor + +opposite of or: + +```javascript +//filtered: [ { name: 'Tim', state: 'MN' }, { name: 'Joe', state: 'CA' }] +sift({ $nor: [ { name: 'Craig' }, { state: 'MN' } ] }, [ +{ name: 'Craig', state: 'MN' }, +{ name: 'Tim', state: 'MN' }, +{ name: 'Joe', state: 'CA' } ]); +``` + + +### $size + +Matches an array - must match given size: + +```javascript +//filtered: ['food','cooking'] +sift({ tags: { $size: 2 } }, [ { tags: ['food','cooking'] }, { tags: ['traveling'] }]); +``` + +### $type + +Matches a values based on the type + +```javascript +sift({ $type: Date }, [new Date(), 4342, 'hello world']); //returns single date +sift({ $type: String }, [new Date(), 4342, 'hello world']); //returns ['hello world'] +``` + +### $regex + +Matches values based on the given regular expression + +```javascript +sift({ $regex: /^f/i, $nin: ["frank"] }, ["frank", "fred", "sam", "frost"]); // ["fred", "frost"] +sift({ $regex: "^f", $options: "i", $nin: ["frank"] }, ["frank", "fred", "sam", "frost"]); // ["fred", "frost"] +``` + +### $where + +Matches based on some javascript comparison + +```javascript +sift({ $where: "this.name === 'frank'" }, [{name:'frank'},{name:'joe'}]); // ["frank"] +sift({ + $where: function() { + return this.name === "frank" + } +}, [{name:'frank'},{name:'joe'}]); // ["frank"] +``` + +### $elemMatch + +Matches elements of array + +```javascript +var bills = [{ + month: 'july', + casts: [{ + id: 1, + value: 200 + },{ + id: 2, + value: 1000 + }] +}, +{ + month: 'august', + casts: [{ + id: 3, + value: 1000, + }, { + id: 4, + value: 4000 + }] +}]; + +var result = sift({ + casts: {$elemMatch:{ + value: {$gt: 1000} + }} +}, bills); // {month:'august', casts:[{id:3, value: 1000},{id: 4, value: 4000}]} +``` + +### $not + +Not expression: + +```javascript +sift({$not:{$in:['craig','tim']}}, ['craig','tim','jake']); //['jake'] +sift({$not:{$size:5}}, ['craig','tim','jake']); //['tim','jake'] +``` + +## sub object Searching + + +```javascript +var people = [{ + name: 'craig', + address: { + city: 'Minneapolis' + } +}, +{ + name: 'tim', + address: { + city: 'St. Paul' + } +}]; + +var sifted = sift({ address: { city: 'Minneapolis' }}, people); // count = 1 + +//or +var sifted = sift({'address.city': 'minneapolis'}, people);//count = 1 +``` + + +## Get index of first matching element + +Get the index (0-based) of first matching element in target array. Returns `-1` if no match is found. + +```javascript +import {indexOf as siftIndexOf} from 'sift'; +var people = [{ + name: 'craig', + address: { + city: 'Minneapolis' + } +}, +{ + name: 'tim', + address: { + city: 'St. Paul' + } +}]; + +var index = siftIndexOf({ address: { city: 'Minneapolis' }}, people); // index = 0 +``` diff --git a/node_modules/sift/bower.json b/node_modules/sift/bower.json new file mode 100644 index 00000000..ceae6b72 --- /dev/null +++ b/node_modules/sift/bower.json @@ -0,0 +1,21 @@ +{ + "name": "sift", + "version": "3.2.0", + "authors": [ + "Craig Condon " + ], + "description": "mongodb query style array filtering", + "main": "sift.min.js", + "moduleType": [], + "license": "MIT", + "homepage": "https://github.com/crcn/sift.js", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "benchmark", + "webpack.js", + "package.json" + ] +} diff --git a/node_modules/sift/changelog.md b/node_modules/sift/changelog.md new file mode 100644 index 00000000..ff230e8f --- /dev/null +++ b/node_modules/sift/changelog.md @@ -0,0 +1,25 @@ +### 7.0.0 + +- Remove global `*.use()` function. +- converted to ES6 + +### 3.3.x + +- `$in` now uses `toString()` when evaluating objects. Fixes #116. + +#### 2.x + +- `use()` now uses a different format: + +```javascript +sift.use({ + $operator: function(a) { + return function(b) { + // compare here + }; + } +}) +``` + +- all operators are traversable now +- fix #58. diff --git a/node_modules/sift/coverage/coverage.json b/node_modules/sift/coverage/coverage.json new file mode 100644 index 00000000..ee223e53 --- /dev/null +++ b/node_modules/sift/coverage/coverage.json @@ -0,0 +1 @@ +{"/Users/crcn/Developer/public/sift.js/sift.js":{"path":"/Users/crcn/Developer/public/sift.js/sift.js","s":{"1":1,"2":1,"3":1480,"4":1,"5":3068,"6":1,"7":1895,"8":36,"9":1859,"10":45,"11":1814,"12":27,"13":1787,"14":1,"15":1341,"16":1,"17":7,"18":509,"19":474,"20":35,"21":59,"22":23,"23":12,"24":1,"25":1,"26":57,"27":53,"28":4,"29":6,"30":2,"31":2,"32":1,"33":1076,"34":1,"35":399,"36":59,"37":34,"38":15,"39":24,"40":10,"41":10,"42":99,"43":10,"44":11,"45":8,"46":89,"47":89,"48":8,"49":12,"50":1,"51":88,"52":22,"53":24,"54":1,"55":87,"56":169,"57":169,"58":169,"59":34,"60":53,"61":2,"62":22,"63":15,"64":13,"65":18,"66":7,"67":32,"68":64,"69":21,"70":11,"71":10,"72":58,"73":98,"74":27,"75":31,"76":41,"77":6,"78":11,"79":6,"80":5,"81":25,"82":1,"83":236,"84":19,"85":41,"86":217,"87":1,"88":216,"89":1,"90":3,"91":215,"92":4,"93":5,"94":211,"95":406,"96":18,"97":10,"98":6,"99":4,"100":2,"101":4,"102":21,"103":3,"104":5,"105":8,"106":1,"107":8,"108":15,"109":15,"110":5,"111":3,"112":1,"113":378,"114":1,"115":215,"116":215,"117":215,"118":179,"119":179,"120":36,"121":36,"122":36,"123":114,"124":114,"125":114,"126":8,"127":106,"128":36,"129":1,"130":706,"131":293,"132":293,"133":413,"134":413,"135":41,"136":119,"137":372,"138":1,"139":92,"140":1,"141":413,"142":1,"143":443,"144":443,"145":215,"146":443,"147":443,"148":458,"149":458,"150":2,"151":456,"152":363,"153":294,"154":363,"155":93,"156":1,"157":92,"158":442,"159":1,"160":306,"161":305,"162":3,"163":4,"164":305,"165":1,"166":135,"167":1,"168":1,"169":135,"170":1,"171":413,"172":134,"173":33,"174":101,"175":1,"176":4,"177":1,"178":3,"179":3,"180":3,"181":1,"182":2,"183":1,"184":489,"185":126,"186":363,"187":284,"188":151,"189":133,"190":133,"191":1,"192":1,"193":1,"194":1,"195":1,"196":0},"b":{"1":[36,1859],"2":[45,1814],"3":[27,1787],"4":[1814,1628],"5":[12,1329],"6":[474,35],"7":[509,36],"8":[23,36],"9":[53,4],"10":[57,4],"11":[2,4],"12":[10,89],"13":[8,3],"14":[8,81],"15":[89,85],"16":[1,11],"17":[12,7],"18":[22,66],"19":[1,23],"20":[34,135],"21":[169,37,36],"22":[12,1],"23":[12,11],"24":[6,1],"25":[21,43],"26":[27,71],"27":[41,30],"28":[6,5],"29":[19,217],"30":[41,25],"31":[1,216],"32":[1,215],"33":[216,1],"34":[3,1],"35":[4,211],"36":[2,1],"37":[5,10],"38":[179,36],"39":[36,36,36],"40":[8,106],"41":[293,413],"42":[706,414],"43":[41,372],"44":[413,45],"45":[413,413],"46":[215,228],"47":[443,413],"48":[2,456],"49":[363,93],"50":[294,69],"51":[1,92],"52":[427,15],"53":[3,302],"54":[1,134],"55":[33,101],"56":[1,3],"57":[3,0],"58":[126,363],"59":[284,79],"60":[151,133],"61":[133,0],"62":[1,0],"63":[1,1],"64":[0,1]},"f":{"1":1,"2":1480,"3":3068,"4":1895,"5":1341,"6":7,"7":509,"8":1,"9":57,"10":1076,"11":399,"12":59,"13":34,"14":15,"15":24,"16":10,"17":10,"18":99,"19":22,"20":15,"21":13,"22":18,"23":7,"24":32,"25":10,"26":58,"27":41,"28":6,"29":11,"30":25,"31":236,"32":41,"33":3,"34":5,"35":406,"36":18,"37":10,"38":6,"39":4,"40":2,"41":4,"42":21,"43":3,"44":5,"45":8,"46":8,"47":378,"48":215,"49":706,"50":92,"51":413,"52":443,"53":306,"54":4,"55":135,"56":413,"57":4,"58":2,"59":489},"fnMap":{"1":{"name":"(anonymous_1)","line":10,"loc":{"start":{"line":10,"column":1},"end":{"line":10,"column":12}}},"2":{"name":"isFunction","line":17,"loc":{"start":{"line":17,"column":2},"end":{"line":17,"column":29}}},"3":{"name":"isArray","line":24,"loc":{"start":{"line":24,"column":2},"end":{"line":24,"column":26}}},"4":{"name":"comparable","line":31,"loc":{"start":{"line":31,"column":2},"end":{"line":31,"column":29}}},"5":{"name":"get","line":43,"loc":{"start":{"line":43,"column":2},"end":{"line":43,"column":25}}},"6":{"name":"or","line":50,"loc":{"start":{"line":50,"column":2},"end":{"line":50,"column":25}}},"7":{"name":"(anonymous_7)","line":51,"loc":{"start":{"line":51,"column":11},"end":{"line":51,"column":26}}},"8":{"name":"and","line":65,"loc":{"start":{"line":65,"column":2},"end":{"line":65,"column":26}}},"9":{"name":"(anonymous_9)","line":66,"loc":{"start":{"line":66,"column":11},"end":{"line":66,"column":26}}},"10":{"name":"validate","line":77,"loc":{"start":{"line":77,"column":2},"end":{"line":77,"column":40}}},"11":{"name":"(anonymous_11)","line":86,"loc":{"start":{"line":86,"column":12},"end":{"line":86,"column":27}}},"12":{"name":"(anonymous_12)","line":93,"loc":{"start":{"line":93,"column":13},"end":{"line":93,"column":28}}},"13":{"name":"(anonymous_13)","line":100,"loc":{"start":{"line":100,"column":12},"end":{"line":100,"column":27}}},"14":{"name":"(anonymous_14)","line":107,"loc":{"start":{"line":107,"column":13},"end":{"line":107,"column":28}}},"15":{"name":"(anonymous_15)","line":114,"loc":{"start":{"line":114,"column":12},"end":{"line":114,"column":27}}},"16":{"name":"(anonymous_16)","line":121,"loc":{"start":{"line":121,"column":13},"end":{"line":121,"column":28}}},"17":{"name":"(anonymous_17)","line":128,"loc":{"start":{"line":128,"column":13},"end":{"line":128,"column":28}}},"18":{"name":"(anonymous_18)","line":135,"loc":{"start":{"line":135,"column":9},"end":{"line":135,"column":24}}},"19":{"name":"(anonymous_19)","line":185,"loc":{"start":{"line":185,"column":10},"end":{"line":185,"column":31}}},"20":{"name":"(anonymous_20)","line":192,"loc":{"start":{"line":192,"column":10},"end":{"line":192,"column":31}}},"21":{"name":"(anonymous_21)","line":199,"loc":{"start":{"line":199,"column":11},"end":{"line":199,"column":26}}},"22":{"name":"(anonymous_22)","line":206,"loc":{"start":{"line":206,"column":10},"end":{"line":206,"column":31}}},"23":{"name":"(anonymous_23)","line":213,"loc":{"start":{"line":213,"column":11},"end":{"line":213,"column":26}}},"24":{"name":"(anonymous_24)","line":220,"loc":{"start":{"line":220,"column":9},"end":{"line":220,"column":30}}},"25":{"name":"(anonymous_25)","line":228,"loc":{"start":{"line":228,"column":10},"end":{"line":228,"column":31}}},"26":{"name":"(anonymous_26)","line":235,"loc":{"start":{"line":235,"column":10},"end":{"line":235,"column":31}}},"27":{"name":"(anonymous_27)","line":247,"loc":{"start":{"line":247,"column":15},"end":{"line":247,"column":30}}},"28":{"name":"(anonymous_28)","line":254,"loc":{"start":{"line":254,"column":12},"end":{"line":254,"column":33}}},"29":{"name":"(anonymous_29)","line":261,"loc":{"start":{"line":261,"column":16},"end":{"line":261,"column":37}}},"30":{"name":"(anonymous_30)","line":271,"loc":{"start":{"line":271,"column":13},"end":{"line":271,"column":34}}},"31":{"name":"(anonymous_31)","line":284,"loc":{"start":{"line":284,"column":9},"end":{"line":284,"column":21}}},"32":{"name":"(anonymous_32)","line":287,"loc":{"start":{"line":287,"column":15},"end":{"line":287,"column":27}}},"33":{"name":"(anonymous_33)","line":294,"loc":{"start":{"line":294,"column":15},"end":{"line":294,"column":27}}},"34":{"name":"(anonymous_34)","line":298,"loc":{"start":{"line":298,"column":15},"end":{"line":298,"column":26}}},"35":{"name":"(anonymous_35)","line":304,"loc":{"start":{"line":304,"column":13},"end":{"line":304,"column":25}}},"36":{"name":"(anonymous_36)","line":312,"loc":{"start":{"line":312,"column":9},"end":{"line":312,"column":21}}},"37":{"name":"(anonymous_37)","line":319,"loc":{"start":{"line":319,"column":10},"end":{"line":319,"column":22}}},"38":{"name":"(anonymous_38)","line":326,"loc":{"start":{"line":326,"column":10},"end":{"line":326,"column":22}}},"39":{"name":"(anonymous_39)","line":333,"loc":{"start":{"line":333,"column":9},"end":{"line":333,"column":21}}},"40":{"name":"(anonymous_40)","line":340,"loc":{"start":{"line":340,"column":10},"end":{"line":340,"column":22}}},"41":{"name":"(anonymous_41)","line":347,"loc":{"start":{"line":347,"column":10},"end":{"line":347,"column":22}}},"42":{"name":"(anonymous_42)","line":354,"loc":{"start":{"line":354,"column":12},"end":{"line":354,"column":31}}},"43":{"name":"(anonymous_43)","line":361,"loc":{"start":{"line":361,"column":12},"end":{"line":361,"column":24}}},"44":{"name":"(anonymous_44)","line":368,"loc":{"start":{"line":368,"column":16},"end":{"line":368,"column":28}}},"45":{"name":"(anonymous_45)","line":375,"loc":{"start":{"line":375,"column":13},"end":{"line":375,"column":25}}},"46":{"name":"search","line":383,"loc":{"start":{"line":383,"column":2},"end":{"line":383,"column":36}}},"47":{"name":"createValidator","line":398,"loc":{"start":{"line":398,"column":2},"end":{"line":398,"column":40}}},"48":{"name":"nestedValidator","line":405,"loc":{"start":{"line":405,"column":2},"end":{"line":405,"column":33}}},"49":{"name":"findValues","line":432,"loc":{"start":{"line":432,"column":2},"end":{"line":432,"column":63}}},"50":{"name":"createNestedValidator","line":457,"loc":{"start":{"line":457,"column":2},"end":{"line":457,"column":48}}},"51":{"name":"isVanillaObject","line":465,"loc":{"start":{"line":465,"column":2},"end":{"line":465,"column":34}}},"52":{"name":"parse","line":469,"loc":{"start":{"line":469,"column":2},"end":{"line":469,"column":24}}},"53":{"name":"createRootValidator","line":503,"loc":{"start":{"line":503,"column":2},"end":{"line":503,"column":46}}},"54":{"name":"(anonymous_54)","line":508,"loc":{"start":{"line":508,"column":11},"end":{"line":508,"column":32}}},"55":{"name":"sift","line":519,"loc":{"start":{"line":519,"column":2},"end":{"line":519,"column":38}}},"56":{"name":"filter","line":528,"loc":{"start":{"line":528,"column":4},"end":{"line":528,"column":29}}},"57":{"name":"(anonymous_57)","line":542,"loc":{"start":{"line":542,"column":13},"end":{"line":542,"column":30}}},"58":{"name":"(anonymous_58)","line":555,"loc":{"start":{"line":555,"column":17},"end":{"line":555,"column":48}}},"59":{"name":"(anonymous_59)","line":562,"loc":{"start":{"line":562,"column":17},"end":{"line":562,"column":32}}}},"statementMap":{"1":{"start":{"line":10,"column":0},"end":{"line":588,"column":5}},"2":{"start":{"line":17,"column":2},"end":{"line":19,"column":3}},"3":{"start":{"line":18,"column":4},"end":{"line":18,"column":39}},"4":{"start":{"line":24,"column":2},"end":{"line":26,"column":3}},"5":{"start":{"line":25,"column":4},"end":{"line":25,"column":70}},"6":{"start":{"line":31,"column":2},"end":{"line":41,"column":3}},"7":{"start":{"line":32,"column":4},"end":{"line":40,"column":5}},"8":{"start":{"line":33,"column":6},"end":{"line":33,"column":29}},"9":{"start":{"line":34,"column":11},"end":{"line":40,"column":5}},"10":{"start":{"line":35,"column":6},"end":{"line":35,"column":35}},"11":{"start":{"line":36,"column":11},"end":{"line":40,"column":5}},"12":{"start":{"line":37,"column":6},"end":{"line":37,"column":28}},"13":{"start":{"line":39,"column":6},"end":{"line":39,"column":19}},"14":{"start":{"line":43,"column":2},"end":{"line":45,"column":3}},"15":{"start":{"line":44,"column":4},"end":{"line":44,"column":57}},"16":{"start":{"line":50,"column":2},"end":{"line":60,"column":3}},"17":{"start":{"line":51,"column":4},"end":{"line":59,"column":5}},"18":{"start":{"line":52,"column":6},"end":{"line":54,"column":7}},"19":{"start":{"line":53,"column":8},"end":{"line":53,"column":31}},"20":{"start":{"line":55,"column":6},"end":{"line":57,"column":7}},"21":{"start":{"line":56,"column":8},"end":{"line":56,"column":48}},"22":{"start":{"line":56,"column":36},"end":{"line":56,"column":48}},"23":{"start":{"line":58,"column":6},"end":{"line":58,"column":19}},"24":{"start":{"line":65,"column":2},"end":{"line":75,"column":3}},"25":{"start":{"line":66,"column":4},"end":{"line":74,"column":6}},"26":{"start":{"line":67,"column":6},"end":{"line":69,"column":7}},"27":{"start":{"line":68,"column":8},"end":{"line":68,"column":31}},"28":{"start":{"line":70,"column":6},"end":{"line":72,"column":7}},"29":{"start":{"line":71,"column":8},"end":{"line":71,"column":51}},"30":{"start":{"line":71,"column":38},"end":{"line":71,"column":51}},"31":{"start":{"line":73,"column":6},"end":{"line":73,"column":18}},"32":{"start":{"line":77,"column":2},"end":{"line":79,"column":3}},"33":{"start":{"line":78,"column":4},"end":{"line":78,"column":45}},"34":{"start":{"line":81,"column":2},"end":{"line":274,"column":4}},"35":{"start":{"line":87,"column":6},"end":{"line":87,"column":18}},"36":{"start":{"line":94,"column":6},"end":{"line":94,"column":19}},"37":{"start":{"line":101,"column":6},"end":{"line":101,"column":48}},"38":{"start":{"line":108,"column":6},"end":{"line":108,"column":49}},"39":{"start":{"line":115,"column":6},"end":{"line":115,"column":48}},"40":{"start":{"line":122,"column":6},"end":{"line":122,"column":49}},"41":{"start":{"line":129,"column":6},"end":{"line":129,"column":30}},"42":{"start":{"line":137,"column":6},"end":{"line":177,"column":7}},"43":{"start":{"line":138,"column":8},"end":{"line":142,"column":9}},"44":{"start":{"line":139,"column":10},"end":{"line":141,"column":11}},"45":{"start":{"line":140,"column":12},"end":{"line":140,"column":24}},"46":{"start":{"line":144,"column":8},"end":{"line":144,"column":40}},"47":{"start":{"line":145,"column":8},"end":{"line":151,"column":9}},"48":{"start":{"line":146,"column":10},"end":{"line":150,"column":11}},"49":{"start":{"line":147,"column":12},"end":{"line":149,"column":13}},"50":{"start":{"line":148,"column":14},"end":{"line":148,"column":26}},"51":{"start":{"line":157,"column":8},"end":{"line":163,"column":9}},"52":{"start":{"line":158,"column":10},"end":{"line":162,"column":11}},"53":{"start":{"line":159,"column":12},"end":{"line":161,"column":13}},"54":{"start":{"line":160,"column":14},"end":{"line":160,"column":26}},"55":{"start":{"line":168,"column":8},"end":{"line":174,"column":9}},"56":{"start":{"line":169,"column":10},"end":{"line":169,"column":68}},"57":{"start":{"line":170,"column":10},"end":{"line":170,"column":52}},"58":{"start":{"line":171,"column":10},"end":{"line":173,"column":11}},"59":{"start":{"line":172,"column":12},"end":{"line":172,"column":24}},"60":{"start":{"line":176,"column":8},"end":{"line":176,"column":41}},"61":{"start":{"line":179,"column":6},"end":{"line":179,"column":19}},"62":{"start":{"line":186,"column":6},"end":{"line":186,"column":40}},"63":{"start":{"line":193,"column":6},"end":{"line":193,"column":35}},"64":{"start":{"line":200,"column":6},"end":{"line":200,"column":72}},"65":{"start":{"line":207,"column":6},"end":{"line":207,"column":40}},"66":{"start":{"line":214,"column":6},"end":{"line":214,"column":40}},"67":{"start":{"line":221,"column":6},"end":{"line":221,"column":94}},"68":{"start":{"line":221,"column":48},"end":{"line":221,"column":94}},"69":{"start":{"line":221,"column":82},"end":{"line":221,"column":94}},"70":{"start":{"line":222,"column":6},"end":{"line":222,"column":19}},"71":{"start":{"line":229,"column":6},"end":{"line":229,"column":40}},"72":{"start":{"line":236,"column":6},"end":{"line":240,"column":7}},"73":{"start":{"line":237,"column":8},"end":{"line":239,"column":9}},"74":{"start":{"line":238,"column":10},"end":{"line":238,"column":23}},"75":{"start":{"line":241,"column":6},"end":{"line":241,"column":18}},"76":{"start":{"line":248,"column":6},"end":{"line":248,"column":48}},"77":{"start":{"line":255,"column":6},"end":{"line":255,"column":32}},"78":{"start":{"line":262,"column":6},"end":{"line":264,"column":7}},"79":{"start":{"line":263,"column":8},"end":{"line":263,"column":31}},"80":{"start":{"line":265,"column":6},"end":{"line":265,"column":34}},"81":{"start":{"line":272,"column":6},"end":{"line":272,"column":39}},"82":{"start":{"line":279,"column":2},"end":{"line":378,"column":4}},"83":{"start":{"line":286,"column":6},"end":{"line":302,"column":7}},"84":{"start":{"line":287,"column":8},"end":{"line":289,"column":10}},"85":{"start":{"line":288,"column":10},"end":{"line":288,"column":52}},"86":{"start":{"line":290,"column":13},"end":{"line":302,"column":7}},"87":{"start":{"line":291,"column":8},"end":{"line":291,"column":17}},"88":{"start":{"line":292,"column":13},"end":{"line":302,"column":7}},"89":{"start":{"line":294,"column":8},"end":{"line":296,"column":10}},"90":{"start":{"line":295,"column":10},"end":{"line":295,"column":43}},"91":{"start":{"line":297,"column":13},"end":{"line":302,"column":7}},"92":{"start":{"line":298,"column":8},"end":{"line":301,"column":9}},"93":{"start":{"line":300,"column":10},"end":{"line":300,"column":27}},"94":{"start":{"line":304,"column":6},"end":{"line":306,"column":8}},"95":{"start":{"line":305,"column":8},"end":{"line":305,"column":64}},"96":{"start":{"line":313,"column":6},"end":{"line":313,"column":28}},"97":{"start":{"line":320,"column":6},"end":{"line":320,"column":26}},"98":{"start":{"line":327,"column":6},"end":{"line":327,"column":29}},"99":{"start":{"line":334,"column":6},"end":{"line":334,"column":26}},"100":{"start":{"line":341,"column":6},"end":{"line":341,"column":26}},"101":{"start":{"line":348,"column":6},"end":{"line":348,"column":22}},"102":{"start":{"line":355,"column":6},"end":{"line":355,"column":43}},"103":{"start":{"line":362,"column":6},"end":{"line":362,"column":76}},"104":{"start":{"line":369,"column":6},"end":{"line":369,"column":22}},"105":{"start":{"line":376,"column":6},"end":{"line":376,"column":17}},"106":{"start":{"line":383,"column":2},"end":{"line":393,"column":3}},"107":{"start":{"line":385,"column":4},"end":{"line":390,"column":5}},"108":{"start":{"line":386,"column":6},"end":{"line":386,"column":33}},"109":{"start":{"line":387,"column":6},"end":{"line":389,"column":7}},"110":{"start":{"line":388,"column":8},"end":{"line":388,"column":17}},"111":{"start":{"line":392,"column":4},"end":{"line":392,"column":14}},"112":{"start":{"line":398,"column":2},"end":{"line":400,"column":3}},"113":{"start":{"line":399,"column":4},"end":{"line":399,"column":33}},"114":{"start":{"line":405,"column":2},"end":{"line":427,"column":3}},"115":{"start":{"line":406,"column":4},"end":{"line":406,"column":21}},"116":{"start":{"line":407,"column":4},"end":{"line":407,"column":37}},"117":{"start":{"line":409,"column":4},"end":{"line":412,"column":5}},"118":{"start":{"line":410,"column":6},"end":{"line":410,"column":28}},"119":{"start":{"line":411,"column":6},"end":{"line":411,"column":58}},"120":{"start":{"line":415,"column":4},"end":{"line":415,"column":63}},"121":{"start":{"line":416,"column":4},"end":{"line":416,"column":29}},"122":{"start":{"line":417,"column":4},"end":{"line":425,"column":5}},"123":{"start":{"line":418,"column":6},"end":{"line":418,"column":29}},"124":{"start":{"line":419,"column":6},"end":{"line":419,"column":68}},"125":{"start":{"line":420,"column":6},"end":{"line":424,"column":7}},"126":{"start":{"line":421,"column":8},"end":{"line":421,"column":28}},"127":{"start":{"line":423,"column":8},"end":{"line":423,"column":28}},"128":{"start":{"line":426,"column":4},"end":{"line":426,"column":20}},"129":{"start":{"line":432,"column":2},"end":{"line":452,"column":3}},"130":{"start":{"line":434,"column":4},"end":{"line":438,"column":5}},"131":{"start":{"line":436,"column":6},"end":{"line":436,"column":57}},"132":{"start":{"line":437,"column":6},"end":{"line":437,"column":13}},"133":{"start":{"line":440,"column":4},"end":{"line":440,"column":32}},"134":{"start":{"line":445,"column":4},"end":{"line":451,"column":5}},"135":{"start":{"line":446,"column":6},"end":{"line":448,"column":7}},"136":{"start":{"line":447,"column":8},"end":{"line":447,"column":69}},"137":{"start":{"line":450,"column":6},"end":{"line":450,"column":71}},"138":{"start":{"line":457,"column":2},"end":{"line":459,"column":3}},"139":{"start":{"line":458,"column":4},"end":{"line":458,"column":66}},"140":{"start":{"line":465,"column":2},"end":{"line":467,"column":3}},"141":{"start":{"line":466,"column":4},"end":{"line":466,"column":49}},"142":{"start":{"line":469,"column":2},"end":{"line":498,"column":3}},"143":{"start":{"line":470,"column":4},"end":{"line":470,"column":30}},"144":{"start":{"line":472,"column":4},"end":{"line":474,"column":5}},"145":{"start":{"line":473,"column":6},"end":{"line":473,"column":29}},"146":{"start":{"line":476,"column":4},"end":{"line":476,"column":24}},"147":{"start":{"line":478,"column":4},"end":{"line":495,"column":5}},"148":{"start":{"line":479,"column":6},"end":{"line":479,"column":25}},"149":{"start":{"line":481,"column":6},"end":{"line":483,"column":7}},"150":{"start":{"line":482,"column":8},"end":{"line":482,"column":17}},"151":{"start":{"line":485,"column":6},"end":{"line":494,"column":7}},"152":{"start":{"line":486,"column":8},"end":{"line":486,"column":53}},"153":{"start":{"line":486,"column":26},"end":{"line":486,"column":53}},"154":{"start":{"line":487,"column":8},"end":{"line":487,"column":72}},"155":{"start":{"line":490,"column":8},"end":{"line":492,"column":9}},"156":{"start":{"line":491,"column":10},"end":{"line":491,"column":54}},"157":{"start":{"line":493,"column":8},"end":{"line":493,"column":76}},"158":{"start":{"line":497,"column":4},"end":{"line":497,"column":97}},"159":{"start":{"line":503,"column":2},"end":{"line":514,"column":3}},"160":{"start":{"line":504,"column":4},"end":{"line":504,"column":33}},"161":{"start":{"line":505,"column":4},"end":{"line":512,"column":5}},"162":{"start":{"line":506,"column":6},"end":{"line":511,"column":8}},"163":{"start":{"line":509,"column":10},"end":{"line":509,"column":46}},"164":{"start":{"line":513,"column":4},"end":{"line":513,"column":21}},"165":{"start":{"line":519,"column":2},"end":{"line":537,"column":3}},"166":{"start":{"line":521,"column":4},"end":{"line":524,"column":5}},"167":{"start":{"line":522,"column":6},"end":{"line":522,"column":21}},"168":{"start":{"line":523,"column":6},"end":{"line":523,"column":22}},"169":{"start":{"line":526,"column":4},"end":{"line":526,"column":55}},"170":{"start":{"line":528,"column":4},"end":{"line":530,"column":5}},"171":{"start":{"line":529,"column":6},"end":{"line":529,"column":42}},"172":{"start":{"line":532,"column":4},"end":{"line":534,"column":5}},"173":{"start":{"line":533,"column":6},"end":{"line":533,"column":34}},"174":{"start":{"line":536,"column":4},"end":{"line":536,"column":18}},"175":{"start":{"line":542,"column":2},"end":{"line":550,"column":4}},"176":{"start":{"line":543,"column":4},"end":{"line":543,"column":48}},"177":{"start":{"line":543,"column":28},"end":{"line":543,"column":48}},"178":{"start":{"line":544,"column":4},"end":{"line":549,"column":5}},"179":{"start":{"line":546,"column":6},"end":{"line":548,"column":7}},"180":{"start":{"line":547,"column":8},"end":{"line":547,"column":37}},"181":{"start":{"line":555,"column":2},"end":{"line":557,"column":4}},"182":{"start":{"line":556,"column":4},"end":{"line":556,"column":61}},"183":{"start":{"line":562,"column":2},"end":{"line":572,"column":4}},"184":{"start":{"line":563,"column":4},"end":{"line":563,"column":23}},"185":{"start":{"line":563,"column":14},"end":{"line":563,"column":23}},"186":{"start":{"line":564,"column":4},"end":{"line":571,"column":5}},"187":{"start":{"line":565,"column":6},"end":{"line":567,"column":7}},"188":{"start":{"line":566,"column":8},"end":{"line":566,"column":17}},"189":{"start":{"line":568,"column":6},"end":{"line":570,"column":7}},"190":{"start":{"line":569,"column":8},"end":{"line":569,"column":18}},"191":{"start":{"line":575,"column":2},"end":{"line":582,"column":3},"skip":true},"192":{"start":{"line":576,"column":4},"end":{"line":578,"column":7},"skip":true},"193":{"start":{"line":580,"column":4},"end":{"line":580,"column":26},"skip":true},"194":{"start":{"line":581,"column":4},"end":{"line":581,"column":55},"skip":true},"195":{"start":{"line":585,"column":2},"end":{"line":587,"column":3},"skip":true},"196":{"start":{"line":586,"column":4},"end":{"line":586,"column":23},"skip":true}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":32,"column":4}},{"start":{"line":32,"column":4},"end":{"line":32,"column":4}}]},"2":{"line":34,"type":"if","locations":[{"start":{"line":34,"column":11},"end":{"line":34,"column":11}},{"start":{"line":34,"column":11},"end":{"line":34,"column":11}}]},"3":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":11},"end":{"line":36,"column":11}},{"start":{"line":36,"column":11},"end":{"line":36,"column":11}}]},"4":{"line":36,"type":"binary-expr","locations":[{"start":{"line":36,"column":15},"end":{"line":36,"column":20}},{"start":{"line":36,"column":24},"end":{"line":36,"column":58}}]},"5":{"line":44,"type":"cond-expr","locations":[{"start":{"line":44,"column":33},"end":{"line":44,"column":45}},{"start":{"line":44,"column":48},"end":{"line":44,"column":56}}]},"6":{"line":52,"type":"if","locations":[{"start":{"line":52,"column":6},"end":{"line":52,"column":6}},{"start":{"line":52,"column":6},"end":{"line":52,"column":6}}]},"7":{"line":52,"type":"binary-expr","locations":[{"start":{"line":52,"column":10},"end":{"line":52,"column":21}},{"start":{"line":52,"column":25},"end":{"line":52,"column":34}}]},"8":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":8},"end":{"line":56,"column":8}},{"start":{"line":56,"column":8},"end":{"line":56,"column":8}}]},"9":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":6},"end":{"line":67,"column":6}},{"start":{"line":67,"column":6},"end":{"line":67,"column":6}}]},"10":{"line":67,"type":"binary-expr","locations":[{"start":{"line":67,"column":10},"end":{"line":67,"column":21}},{"start":{"line":67,"column":25},"end":{"line":67,"column":34}}]},"11":{"line":71,"type":"if","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":8}},{"start":{"line":71,"column":8},"end":{"line":71,"column":8}}]},"12":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":6},"end":{"line":137,"column":6}},{"start":{"line":137,"column":6},"end":{"line":137,"column":6}}]},"13":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":10},"end":{"line":139,"column":10}},{"start":{"line":139,"column":10},"end":{"line":139,"column":10}}]},"14":{"line":145,"type":"if","locations":[{"start":{"line":145,"column":8},"end":{"line":145,"column":8}},{"start":{"line":145,"column":8},"end":{"line":145,"column":8}}]},"15":{"line":145,"type":"binary-expr","locations":[{"start":{"line":145,"column":12},"end":{"line":145,"column":29}},{"start":{"line":145,"column":33},"end":{"line":145,"column":54}}]},"16":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":12},"end":{"line":147,"column":12}},{"start":{"line":147,"column":12},"end":{"line":147,"column":12}}]},"17":{"line":147,"type":"binary-expr","locations":[{"start":{"line":147,"column":16},"end":{"line":147,"column":42}},{"start":{"line":147,"column":46},"end":{"line":147,"column":77}}]},"18":{"line":157,"type":"if","locations":[{"start":{"line":157,"column":8},"end":{"line":157,"column":8}},{"start":{"line":157,"column":8},"end":{"line":157,"column":8}}]},"19":{"line":159,"type":"if","locations":[{"start":{"line":159,"column":12},"end":{"line":159,"column":12}},{"start":{"line":159,"column":12},"end":{"line":159,"column":12}}]},"20":{"line":171,"type":"if","locations":[{"start":{"line":171,"column":10},"end":{"line":171,"column":10}},{"start":{"line":171,"column":10},"end":{"line":171,"column":10}}]},"21":{"line":171,"type":"binary-expr","locations":[{"start":{"line":171,"column":15},"end":{"line":171,"column":21}},{"start":{"line":171,"column":27},"end":{"line":171,"column":63}},{"start":{"line":171,"column":69},"end":{"line":171,"column":100}}]},"22":{"line":200,"type":"cond-expr","locations":[{"start":{"line":200,"column":27},"end":{"line":200,"column":63}},{"start":{"line":200,"column":66},"end":{"line":200,"column":71}}]},"23":{"line":200,"type":"binary-expr","locations":[{"start":{"line":200,"column":27},"end":{"line":200,"column":41}},{"start":{"line":200,"column":45},"end":{"line":200,"column":63}}]},"24":{"line":214,"type":"cond-expr","locations":[{"start":{"line":214,"column":17},"end":{"line":214,"column":31}},{"start":{"line":214,"column":34},"end":{"line":214,"column":39}}]},"25":{"line":221,"type":"if","locations":[{"start":{"line":221,"column":48},"end":{"line":221,"column":48}},{"start":{"line":221,"column":48},"end":{"line":221,"column":48}}]},"26":{"line":237,"type":"if","locations":[{"start":{"line":237,"column":8},"end":{"line":237,"column":8}},{"start":{"line":237,"column":8},"end":{"line":237,"column":8}}]},"27":{"line":248,"type":"binary-expr","locations":[{"start":{"line":248,"column":13},"end":{"line":248,"column":34}},{"start":{"line":248,"column":38},"end":{"line":248,"column":47}}]},"28":{"line":262,"type":"if","locations":[{"start":{"line":262,"column":6},"end":{"line":262,"column":6}},{"start":{"line":262,"column":6},"end":{"line":262,"column":6}}]},"29":{"line":286,"type":"if","locations":[{"start":{"line":286,"column":6},"end":{"line":286,"column":6}},{"start":{"line":286,"column":6},"end":{"line":286,"column":6}}]},"30":{"line":288,"type":"binary-expr","locations":[{"start":{"line":288,"column":17},"end":{"line":288,"column":38}},{"start":{"line":288,"column":42},"end":{"line":288,"column":51}}]},"31":{"line":290,"type":"if","locations":[{"start":{"line":290,"column":13},"end":{"line":290,"column":13}},{"start":{"line":290,"column":13},"end":{"line":290,"column":13}}]},"32":{"line":292,"type":"if","locations":[{"start":{"line":292,"column":13},"end":{"line":292,"column":13}},{"start":{"line":292,"column":13},"end":{"line":292,"column":13}}]},"33":{"line":292,"type":"binary-expr","locations":[{"start":{"line":292,"column":17},"end":{"line":292,"column":27}},{"start":{"line":292,"column":31},"end":{"line":292,"column":40}}]},"34":{"line":295,"type":"binary-expr","locations":[{"start":{"line":295,"column":18},"end":{"line":295,"column":28}},{"start":{"line":295,"column":32},"end":{"line":295,"column":41}}]},"35":{"line":297,"type":"if","locations":[{"start":{"line":297,"column":13},"end":{"line":297,"column":13}},{"start":{"line":297,"column":13},"end":{"line":297,"column":13}}]},"36":{"line":362,"type":"cond-expr","locations":[{"start":{"line":362,"column":37},"end":{"line":362,"column":71}},{"start":{"line":362,"column":74},"end":{"line":362,"column":75}}]},"37":{"line":387,"type":"if","locations":[{"start":{"line":387,"column":6},"end":{"line":387,"column":6}},{"start":{"line":387,"column":6},"end":{"line":387,"column":6}}]},"38":{"line":409,"type":"if","locations":[{"start":{"line":409,"column":4},"end":{"line":409,"column":4}},{"start":{"line":409,"column":4},"end":{"line":409,"column":4}}]},"39":{"line":415,"type":"binary-expr","locations":[{"start":{"line":415,"column":20},"end":{"line":415,"column":21}},{"start":{"line":415,"column":25},"end":{"line":415,"column":28}},{"start":{"line":415,"column":32},"end":{"line":415,"column":62}}]},"40":{"line":420,"type":"if","locations":[{"start":{"line":420,"column":6},"end":{"line":420,"column":6}},{"start":{"line":420,"column":6},"end":{"line":420,"column":6}}]},"41":{"line":434,"type":"if","locations":[{"start":{"line":434,"column":4},"end":{"line":434,"column":4}},{"start":{"line":434,"column":4},"end":{"line":434,"column":4}}]},"42":{"line":434,"type":"binary-expr","locations":[{"start":{"line":434,"column":8},"end":{"line":434,"column":32}},{"start":{"line":434,"column":36},"end":{"line":434,"column":53}}]},"43":{"line":445,"type":"if","locations":[{"start":{"line":445,"column":4},"end":{"line":445,"column":4}},{"start":{"line":445,"column":4},"end":{"line":445,"column":4}}]},"44":{"line":445,"type":"binary-expr","locations":[{"start":{"line":445,"column":8},"end":{"line":445,"column":24}},{"start":{"line":445,"column":28},"end":{"line":445,"column":44}}]},"45":{"line":466,"type":"binary-expr","locations":[{"start":{"line":466,"column":11},"end":{"line":466,"column":16}},{"start":{"line":466,"column":20},"end":{"line":466,"column":48}}]},"46":{"line":472,"type":"if","locations":[{"start":{"line":472,"column":4},"end":{"line":472,"column":4}},{"start":{"line":472,"column":4},"end":{"line":472,"column":4}}]},"47":{"line":472,"type":"binary-expr","locations":[{"start":{"line":472,"column":8},"end":{"line":472,"column":14}},{"start":{"line":472,"column":18},"end":{"line":472,"column":41}}]},"48":{"line":481,"type":"if","locations":[{"start":{"line":481,"column":6},"end":{"line":481,"column":6}},{"start":{"line":481,"column":6},"end":{"line":481,"column":6}}]},"49":{"line":485,"type":"if","locations":[{"start":{"line":485,"column":6},"end":{"line":485,"column":6}},{"start":{"line":485,"column":6},"end":{"line":485,"column":6}}]},"50":{"line":486,"type":"if","locations":[{"start":{"line":486,"column":8},"end":{"line":486,"column":8}},{"start":{"line":486,"column":8},"end":{"line":486,"column":8}}]},"51":{"line":490,"type":"if","locations":[{"start":{"line":490,"column":8},"end":{"line":490,"column":8}},{"start":{"line":490,"column":8},"end":{"line":490,"column":8}}]},"52":{"line":497,"type":"cond-expr","locations":[{"start":{"line":497,"column":37},"end":{"line":497,"column":50}},{"start":{"line":497,"column":53},"end":{"line":497,"column":96}}]},"53":{"line":505,"type":"if","locations":[{"start":{"line":505,"column":4},"end":{"line":505,"column":4}},{"start":{"line":505,"column":4},"end":{"line":505,"column":4}}]},"54":{"line":521,"type":"if","locations":[{"start":{"line":521,"column":4},"end":{"line":521,"column":4}},{"start":{"line":521,"column":4},"end":{"line":521,"column":4}}]},"55":{"line":532,"type":"if","locations":[{"start":{"line":532,"column":4},"end":{"line":532,"column":4}},{"start":{"line":532,"column":4},"end":{"line":532,"column":4}}]},"56":{"line":543,"type":"if","locations":[{"start":{"line":543,"column":4},"end":{"line":543,"column":4}},{"start":{"line":543,"column":4},"end":{"line":543,"column":4}}]},"57":{"line":546,"type":"if","locations":[{"start":{"line":546,"column":6},"end":{"line":546,"column":6}},{"start":{"line":546,"column":6},"end":{"line":546,"column":6},"skip":true}]},"58":{"line":563,"type":"if","locations":[{"start":{"line":563,"column":4},"end":{"line":563,"column":4}},{"start":{"line":563,"column":4},"end":{"line":563,"column":4}}]},"59":{"line":564,"type":"if","locations":[{"start":{"line":564,"column":4},"end":{"line":564,"column":4}},{"start":{"line":564,"column":4},"end":{"line":564,"column":4}}]},"60":{"line":565,"type":"if","locations":[{"start":{"line":565,"column":6},"end":{"line":565,"column":6}},{"start":{"line":565,"column":6},"end":{"line":565,"column":6}}]},"61":{"line":568,"type":"if","locations":[{"start":{"line":568,"column":6},"end":{"line":568,"column":6}},{"start":{"line":568,"column":6},"end":{"line":568,"column":6}}]},"62":{"line":575,"type":"if","locations":[{"start":{"line":575,"column":2},"end":{"line":575,"column":2},"skip":true},{"start":{"line":575,"column":2},"end":{"line":575,"column":2},"skip":true}]},"63":{"line":575,"type":"binary-expr","locations":[{"start":{"line":575,"column":6},"end":{"line":575,"column":35},"skip":true},{"start":{"line":575,"column":39},"end":{"line":575,"column":76},"skip":true}]},"64":{"line":585,"type":"if","locations":[{"start":{"line":585,"column":2},"end":{"line":585,"column":2},"skip":true},{"start":{"line":585,"column":2},"end":{"line":585,"column":2},"skip":true}]}}}} \ No newline at end of file diff --git a/node_modules/sift/coverage/lcov.info b/node_modules/sift/coverage/lcov.info new file mode 100644 index 00000000..0401d424 --- /dev/null +++ b/node_modules/sift/coverage/lcov.info @@ -0,0 +1,446 @@ +TN: +SF:/Users/crcn/Developer/public/sift.js/sift.js +FN:10,(anonymous_1) +FN:17,isFunction +FN:24,isArray +FN:31,comparable +FN:43,get +FN:50,or +FN:51,(anonymous_7) +FN:65,and +FN:66,(anonymous_9) +FN:77,validate +FN:86,(anonymous_11) +FN:93,(anonymous_12) +FN:100,(anonymous_13) +FN:107,(anonymous_14) +FN:114,(anonymous_15) +FN:121,(anonymous_16) +FN:128,(anonymous_17) +FN:135,(anonymous_18) +FN:185,(anonymous_19) +FN:192,(anonymous_20) +FN:199,(anonymous_21) +FN:206,(anonymous_22) +FN:213,(anonymous_23) +FN:220,(anonymous_24) +FN:228,(anonymous_25) +FN:235,(anonymous_26) +FN:247,(anonymous_27) +FN:254,(anonymous_28) +FN:261,(anonymous_29) +FN:271,(anonymous_30) +FN:284,(anonymous_31) +FN:287,(anonymous_32) +FN:294,(anonymous_33) +FN:298,(anonymous_34) +FN:304,(anonymous_35) +FN:312,(anonymous_36) +FN:319,(anonymous_37) +FN:326,(anonymous_38) +FN:333,(anonymous_39) +FN:340,(anonymous_40) +FN:347,(anonymous_41) +FN:354,(anonymous_42) +FN:361,(anonymous_43) +FN:368,(anonymous_44) +FN:375,(anonymous_45) +FN:383,search +FN:398,createValidator +FN:405,nestedValidator +FN:432,findValues +FN:457,createNestedValidator +FN:465,isVanillaObject +FN:469,parse +FN:503,createRootValidator +FN:508,(anonymous_54) +FN:519,sift +FN:528,filter +FN:542,(anonymous_57) +FN:555,(anonymous_58) +FN:562,(anonymous_59) +FNF:59 +FNH:59 +FNDA:1,(anonymous_1) +FNDA:1480,isFunction +FNDA:3068,isArray +FNDA:1895,comparable +FNDA:1341,get +FNDA:7,or +FNDA:509,(anonymous_7) +FNDA:1,and +FNDA:57,(anonymous_9) +FNDA:1076,validate +FNDA:399,(anonymous_11) +FNDA:59,(anonymous_12) +FNDA:34,(anonymous_13) +FNDA:15,(anonymous_14) +FNDA:24,(anonymous_15) +FNDA:10,(anonymous_16) +FNDA:10,(anonymous_17) +FNDA:99,(anonymous_18) +FNDA:22,(anonymous_19) +FNDA:15,(anonymous_20) +FNDA:13,(anonymous_21) +FNDA:18,(anonymous_22) +FNDA:7,(anonymous_23) +FNDA:32,(anonymous_24) +FNDA:10,(anonymous_25) +FNDA:58,(anonymous_26) +FNDA:41,(anonymous_27) +FNDA:6,(anonymous_28) +FNDA:11,(anonymous_29) +FNDA:25,(anonymous_30) +FNDA:236,(anonymous_31) +FNDA:41,(anonymous_32) +FNDA:3,(anonymous_33) +FNDA:5,(anonymous_34) +FNDA:406,(anonymous_35) +FNDA:18,(anonymous_36) +FNDA:10,(anonymous_37) +FNDA:6,(anonymous_38) +FNDA:4,(anonymous_39) +FNDA:2,(anonymous_40) +FNDA:4,(anonymous_41) +FNDA:21,(anonymous_42) +FNDA:3,(anonymous_43) +FNDA:5,(anonymous_44) +FNDA:8,(anonymous_45) +FNDA:8,search +FNDA:378,createValidator +FNDA:215,nestedValidator +FNDA:706,findValues +FNDA:92,createNestedValidator +FNDA:413,isVanillaObject +FNDA:443,parse +FNDA:306,createRootValidator +FNDA:4,(anonymous_54) +FNDA:135,sift +FNDA:413,filter +FNDA:4,(anonymous_57) +FNDA:2,(anonymous_58) +FNDA:489,(anonymous_59) +DA:10,1 +DA:17,1 +DA:18,1480 +DA:24,1 +DA:25,3068 +DA:31,1 +DA:32,1895 +DA:33,36 +DA:34,1859 +DA:35,45 +DA:36,1814 +DA:37,27 +DA:39,1787 +DA:43,1 +DA:44,1341 +DA:50,1 +DA:51,7 +DA:52,509 +DA:53,474 +DA:55,35 +DA:56,59 +DA:58,12 +DA:65,1 +DA:66,1 +DA:67,57 +DA:68,53 +DA:70,4 +DA:71,6 +DA:73,2 +DA:77,1 +DA:78,1076 +DA:81,1 +DA:87,399 +DA:94,59 +DA:101,34 +DA:108,15 +DA:115,24 +DA:122,10 +DA:129,10 +DA:137,99 +DA:138,10 +DA:139,11 +DA:140,8 +DA:144,89 +DA:145,89 +DA:146,8 +DA:147,12 +DA:148,1 +DA:157,88 +DA:158,22 +DA:159,24 +DA:160,1 +DA:168,87 +DA:169,169 +DA:170,169 +DA:171,169 +DA:172,34 +DA:176,53 +DA:179,2 +DA:186,22 +DA:193,15 +DA:200,13 +DA:207,18 +DA:214,7 +DA:221,64 +DA:222,11 +DA:229,10 +DA:236,58 +DA:237,98 +DA:238,27 +DA:241,31 +DA:248,41 +DA:255,6 +DA:262,11 +DA:263,6 +DA:265,5 +DA:272,25 +DA:279,1 +DA:286,236 +DA:287,19 +DA:288,41 +DA:290,217 +DA:291,1 +DA:292,216 +DA:294,1 +DA:295,3 +DA:297,215 +DA:298,4 +DA:300,5 +DA:304,211 +DA:305,406 +DA:313,18 +DA:320,10 +DA:327,6 +DA:334,4 +DA:341,2 +DA:348,4 +DA:355,21 +DA:362,3 +DA:369,5 +DA:376,8 +DA:383,1 +DA:385,8 +DA:386,15 +DA:387,15 +DA:388,5 +DA:392,3 +DA:398,1 +DA:399,378 +DA:405,1 +DA:406,215 +DA:407,215 +DA:409,215 +DA:410,179 +DA:411,179 +DA:415,36 +DA:416,36 +DA:417,36 +DA:418,114 +DA:419,114 +DA:420,114 +DA:421,8 +DA:423,106 +DA:426,36 +DA:432,1 +DA:434,706 +DA:436,293 +DA:437,293 +DA:440,413 +DA:445,413 +DA:446,41 +DA:447,119 +DA:450,372 +DA:457,1 +DA:458,92 +DA:465,1 +DA:466,413 +DA:469,1 +DA:470,443 +DA:472,443 +DA:473,215 +DA:476,443 +DA:478,443 +DA:479,458 +DA:481,458 +DA:482,2 +DA:485,456 +DA:486,363 +DA:487,363 +DA:490,93 +DA:491,1 +DA:493,92 +DA:497,442 +DA:503,1 +DA:504,306 +DA:505,305 +DA:506,3 +DA:509,4 +DA:513,305 +DA:519,1 +DA:521,135 +DA:522,1 +DA:523,1 +DA:526,135 +DA:528,1 +DA:529,413 +DA:532,134 +DA:533,33 +DA:536,101 +DA:542,1 +DA:543,4 +DA:544,3 +DA:546,3 +DA:547,3 +DA:555,1 +DA:556,2 +DA:562,1 +DA:563,489 +DA:564,363 +DA:565,284 +DA:566,151 +DA:568,133 +DA:569,133 +DA:575,1 +DA:576,1 +DA:580,1 +DA:581,1 +DA:585,1 +DA:586,1 +LF:189 +LH:189 +BRDA:32,1,0,36 +BRDA:32,1,1,1859 +BRDA:34,2,0,45 +BRDA:34,2,1,1814 +BRDA:36,3,0,27 +BRDA:36,3,1,1787 +BRDA:36,4,0,1814 +BRDA:36,4,1,1628 +BRDA:44,5,0,12 +BRDA:44,5,1,1329 +BRDA:52,6,0,474 +BRDA:52,6,1,35 +BRDA:52,7,0,509 +BRDA:52,7,1,36 +BRDA:56,8,0,23 +BRDA:56,8,1,36 +BRDA:67,9,0,53 +BRDA:67,9,1,4 +BRDA:67,10,0,57 +BRDA:67,10,1,4 +BRDA:71,11,0,2 +BRDA:71,11,1,4 +BRDA:137,12,0,10 +BRDA:137,12,1,89 +BRDA:139,13,0,8 +BRDA:139,13,1,3 +BRDA:145,14,0,8 +BRDA:145,14,1,81 +BRDA:145,15,0,89 +BRDA:145,15,1,85 +BRDA:147,16,0,1 +BRDA:147,16,1,11 +BRDA:147,17,0,12 +BRDA:147,17,1,7 +BRDA:157,18,0,22 +BRDA:157,18,1,66 +BRDA:159,19,0,1 +BRDA:159,19,1,23 +BRDA:171,20,0,34 +BRDA:171,20,1,135 +BRDA:171,21,0,169 +BRDA:171,21,1,37 +BRDA:171,21,2,36 +BRDA:200,22,0,12 +BRDA:200,22,1,1 +BRDA:200,23,0,12 +BRDA:200,23,1,11 +BRDA:214,24,0,6 +BRDA:214,24,1,1 +BRDA:221,25,0,21 +BRDA:221,25,1,43 +BRDA:237,26,0,27 +BRDA:237,26,1,71 +BRDA:248,27,0,41 +BRDA:248,27,1,30 +BRDA:262,28,0,6 +BRDA:262,28,1,5 +BRDA:286,29,0,19 +BRDA:286,29,1,217 +BRDA:288,30,0,41 +BRDA:288,30,1,25 +BRDA:290,31,0,1 +BRDA:290,31,1,216 +BRDA:292,32,0,1 +BRDA:292,32,1,215 +BRDA:292,33,0,216 +BRDA:292,33,1,1 +BRDA:295,34,0,3 +BRDA:295,34,1,1 +BRDA:297,35,0,4 +BRDA:297,35,1,211 +BRDA:362,36,0,2 +BRDA:362,36,1,1 +BRDA:387,37,0,5 +BRDA:387,37,1,10 +BRDA:409,38,0,179 +BRDA:409,38,1,36 +BRDA:415,39,0,36 +BRDA:415,39,1,36 +BRDA:415,39,2,36 +BRDA:420,40,0,8 +BRDA:420,40,1,106 +BRDA:434,41,0,293 +BRDA:434,41,1,413 +BRDA:434,42,0,706 +BRDA:434,42,1,414 +BRDA:445,43,0,41 +BRDA:445,43,1,372 +BRDA:445,44,0,413 +BRDA:445,44,1,45 +BRDA:466,45,0,413 +BRDA:466,45,1,413 +BRDA:472,46,0,215 +BRDA:472,46,1,228 +BRDA:472,47,0,443 +BRDA:472,47,1,413 +BRDA:481,48,0,2 +BRDA:481,48,1,456 +BRDA:485,49,0,363 +BRDA:485,49,1,93 +BRDA:486,50,0,294 +BRDA:486,50,1,69 +BRDA:490,51,0,1 +BRDA:490,51,1,92 +BRDA:497,52,0,427 +BRDA:497,52,1,15 +BRDA:505,53,0,3 +BRDA:505,53,1,302 +BRDA:521,54,0,1 +BRDA:521,54,1,134 +BRDA:532,55,0,33 +BRDA:532,55,1,101 +BRDA:543,56,0,1 +BRDA:543,56,1,3 +BRDA:546,57,0,3 +BRDA:546,57,1,0 +BRDA:563,58,0,126 +BRDA:563,58,1,363 +BRDA:564,59,0,284 +BRDA:564,59,1,79 +BRDA:565,60,0,151 +BRDA:565,60,1,133 +BRDA:568,61,0,133 +BRDA:568,61,1,0 +BRDA:575,62,0,1 +BRDA:575,62,1,0 +BRDA:575,63,0,1 +BRDA:575,63,1,1 +BRDA:585,64,0,0 +BRDA:585,64,1,1 +BRF:130 +BRH:129 +end_of_record diff --git a/node_modules/sift/gulpfile.js b/node_modules/sift/gulpfile.js new file mode 100644 index 00000000..19cd650f --- /dev/null +++ b/node_modules/sift/gulpfile.js @@ -0,0 +1,154 @@ +var gulp = require("gulp"); +var istanbul = require("gulp-istanbul"); +var mocha = require("gulp-mocha"); +var plumber = require("gulp-plumber"); +var jshint = require("gulp-jshint"); +var uglify = require("gulp-uglify"); +var jscs = require("gulp-jscs"); +var coveralls = require("gulp-coveralls"); +var rename = require("gulp-rename"); +var options = require("yargs").argv; + +var pkg = require("./package"); + +/** + */ + +var paths = { + testFiles : ["test/**/*-test.js"], + appFiles : ["sift.js"], + allFiles : ["test/**/*-test.js", "sift.js"] +}; + +/** + */ + +var mochaOptions = { + bail : options.bail !== 'false', + reporter : options.reporter || 'dot', + grep : options.grep || options.only, + timeout : 500 +} + +/** + */ + +gulp.task("test-coverage", function (complete) { + gulp. + src(paths.appFiles). + pipe(istanbul()). + pipe(istanbul.hookRequire()). + on("finish", function () { + gulp. + src(paths.testFiles). + pipe(plumber()). + pipe(mocha(mochaOptions)). + pipe(istanbul.writeReports({ + reporters: ["text","text-summary", "lcov"] + })). + on("end", complete); + }); +}); + +/** + */ + +gulp.task("test-coveralls", ["test-coverage"], function () { + return gulp. + src("coverage/**/lcov.info"). + pipe(coveralls()); +}); +/** + */ + +gulp.task("minify", function() { + return gulp. + src("./" + pkg.name + ".js"). + pipe(uglify()). + pipe(rename(function(path) { + path.basename += ".min"; + })). + pipe(gulp.dest("./")); +}); + +/** + */ + +gulp.task("lint", function() { + return gulp.run(["jshint", "jscs"]); +}); + +/** + */ + +gulp.task("jscs", function() { + return gulp. + src(paths.allFiles). + pipe(jscs({ + "preset": "google", + "requireParenthesesAroundIIFE": true, + "maximumLineLength": 200, + "validateLineBreaks": "LF", + "validateIndentation": 2, + "validateQuoteMarks": "\"", + + "disallowKeywords": ["with"], + "disallowSpacesInsideObjectBrackets": null, + "disallowImplicitTypeConversion": ["string"], + "requireCurlyBraces": [], + + "safeContextKeyword": "self" + })); +}); + +/** + */ + +gulp.task("jshint", function() { + return gulp. + src(paths.allFiles). + pipe(jshint({ + es3: true, + evil: true + })). + pipe(jshint.reporter('default')); +}); + +/** + */ + +gulp.task("test", function (complete) { + gulp. + src(paths.testFiles, { read: false }). + pipe(plumber()). + pipe(mocha(mochaOptions)). + on("error", complete). + on("end", complete); +}); + +var iofwatch = process.argv.indexOf("watch"); + +/** + * runs previous tasks (1 or more) + */ + +gulp.task("watch", function () { + gulp.watch(paths.allFiles, process.argv.slice(2, iofwatch)); +}); + +/** + */ + +gulp.task("default", function () { + return gulp.run("test-coverage"); +}); + +/** + */ + +gulp.doneCallback = function (err) { + + // a bit hacky, but fixes issue with testing where process + // doesn't exist process. Also fixes case where timeout / interval are set (CC) + if (!~iofwatch) process.exit(err ? 1 : 0); +}; diff --git a/node_modules/sift/index.d.ts b/node_modules/sift/index.d.ts new file mode 100644 index 00000000..c650df90 --- /dev/null +++ b/node_modules/sift/index.d.ts @@ -0,0 +1,62 @@ +export type SupportedTypes = Array; +export type KeyOrValue = T & T[0]; + +export type ElemMatch = { + [P in keyof T]?: SiftQuery; +} + +export type Query = { + $eq?: T[0]; + $ne?: T[0]; + $or?: Array>; + $gt?: T[0]; + $gte?: T[0]; + $lt?: T[0]; + $lte?: T[0]; + $mod?: number[]; + $in?: Array>; + $nin?: Array>; + $not?: SiftQuery; + $type?: any; + $all?: Array>; + $size?: number; + $nor?: Array>; + $and?: Array>; + $regex?: RegExp | string; + $elemMatch?: ExternalQuery; + $exists?: boolean; + $where?: string | WhereFn; + $options?: "i" | "g" | "m" | "u"; +} + +export interface InternalQuery extends Query { +} + +export type ExternalQuery = ElemMatch; + +export type WhereFn = (this: T[0], value: T[0], index: number, array: T) => boolean; + +export type FilterFn = (value: T, index?: number, array?: T[]) => boolean; + +export type SiftQuery = ExternalQuery & InternalQuery; + +export type PluginDefinition = { + [index: string]: (a: T, b: T) => boolean | number; +} + +export type PluginFunction = (sift: Sift) => PluginDefinition; + +export type Exec = (array: T) => T; + +export interface Sift { + (query: RegExp, target: T, rawSelector?: any): T; + (query: SiftQuery, rawSelector: (item: T) => boolean): Exec; + (query: SiftQuery): FilterFn; + (query: SiftQuery, target: T, rawSelector?: any): T; + indexOf(query: SiftQuery, target: T, rawSelector?: any): number; + compare(a: T, b: K): 0 | -1 | 1; +} + + +declare const Sift: Sift +export default Sift diff --git a/node_modules/sift/lib/index.js b/node_modules/sift/lib/index.js new file mode 100644 index 00000000..5362098b --- /dev/null +++ b/node_modules/sift/lib/index.js @@ -0,0 +1,568 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.default = sift; +exports.indexOf = indexOf; +exports.compare = compare; +/* + * + * Copryright 2018, Craig Condon + * Licensed under MIT + * + * Filter JavaScript objects with mongodb queries + */ + +/** + */ + +function isFunction(value) { + return typeof value === 'function'; +} + +/** + */ + +function isArray(value) { + return Object.prototype.toString.call(value) === '[object Array]'; +} + +/** + */ + +function comparable(value) { + if (value instanceof Date) { + return value.getTime(); + } else if (isArray(value)) { + return value.map(comparable); + } else if (value && typeof value.toJSON === 'function') { + return value.toJSON(); + } else { + return value; + } +} + +function get(obj, key) { + return isFunction(obj.get) ? obj.get(key) : obj[key]; +} + +/** + */ + +function or(validator) { + return function (a, b) { + if (!isArray(b) || !b.length) { + return validator(a, b); + } + for (var i = 0, n = b.length; i < n; i++) { + if (validator(a, get(b, i))) return true; + } + return false; + }; +} + +/** + */ + +function and(validator) { + return function (a, b) { + if (!isArray(b) || !b.length) { + return validator(a, b); + } + for (var i = 0, n = b.length; i < n; i++) { + if (!validator(a, get(b, i))) return false; + } + return true; + }; +} + +function validate(validator, b, k, o) { + return validator.v(validator.a, b, k, o); +} + +var OPERATORS = { + + /** + */ + + $eq: or(function (a, b) { + return a(b); + }), + + /** + */ + + $ne: and(function (a, b) { + return !a(b); + }), + + /** + */ + + $gt: or(function (a, b) { + return compare(comparable(b), a) > 0; + }), + + /** + */ + + $gte: or(function (a, b) { + return compare(comparable(b), a) >= 0; + }), + + /** + */ + + $lt: or(function (a, b) { + return compare(comparable(b), a) < 0; + }), + + /** + */ + + $lte: or(function (a, b) { + return compare(comparable(b), a) <= 0; + }), + + /** + */ + + $mod: or(function (a, b) { + return b % a[0] == a[1]; + }), + + /** + */ + + $in: function $in(a, b) { + + if (b instanceof Array) { + for (var i = b.length; i--;) { + if (~a.indexOf(comparable(get(b, i)))) { + return true; + } + } + } else { + var comparableB = comparable(b); + if (comparableB === b && (typeof b === 'undefined' ? 'undefined' : _typeof(b)) === 'object') { + for (var i = a.length; i--;) { + if (String(a[i]) === String(b) && String(b) !== '[object Object]') { + return true; + } + } + } + + /* + Handles documents that are undefined, whilst also + having a 'null' element in the parameters to $in. + */ + if (typeof comparableB == 'undefined') { + for (var i = a.length; i--;) { + if (a[i] == null) { + return true; + } + } + } + + /* + Handles the case of {'field': {$in: [/regexp1/, /regexp2/, ...]}} + */ + for (var i = a.length; i--;) { + var validator = createRootValidator(get(a, i), undefined); + var result = validate(validator, b, i, a); + if (result && String(result) !== '[object Object]' && String(b) !== '[object Object]') { + return true; + } + } + + return !!~a.indexOf(comparableB); + } + + return false; + }, + + /** + */ + + $nin: function $nin(a, b, k, o) { + return !OPERATORS.$in(a, b, k, o); + }, + + /** + */ + + $not: function $not(a, b, k, o) { + return !validate(a, b, k, o); + }, + + /** + */ + + $type: function $type(a, b) { + return b != void 0 ? b instanceof a || b.constructor == a : false; + }, + + /** + */ + + $all: function $all(a, b, k, o) { + return OPERATORS.$and(a, b, k, o); + }, + + /** + */ + + $size: function $size(a, b) { + return b ? a === b.length : false; + }, + + /** + */ + + $or: function $or(a, b, k, o) { + for (var i = 0, n = a.length; i < n; i++) { + if (validate(get(a, i), b, k, o)) return true; + }return false; + }, + + /** + */ + + $nor: function $nor(a, b, k, o) { + return !OPERATORS.$or(a, b, k, o); + }, + + /** + */ + + $and: function $and(a, b, k, o) { + for (var i = 0, n = a.length; i < n; i++) { + if (!validate(get(a, i), b, k, o)) { + return false; + } + } + return true; + }, + + /** + */ + + $regex: or(function (a, b) { + return typeof b === 'string' && a.test(b); + }), + + /** + */ + + $where: function $where(a, b, k, o) { + return a.call(b, b, k, o); + }, + + /** + */ + + $elemMatch: function $elemMatch(a, b, k, o) { + if (isArray(b)) { + return !!~search(b, a); + } + return validate(a, b, k, o); + }, + + /** + */ + + $exists: function $exists(a, b, k, o) { + return o.hasOwnProperty(k) === a; + } +}; + +/** + */ + +var prepare = { + + /** + */ + + $eq: function $eq(a) { + + if (a instanceof RegExp) { + return function (b) { + return typeof b === 'string' && a.test(b); + }; + } else if (a instanceof Function) { + return a; + } else if (isArray(a) && !a.length) { + // Special case of a == [] + return function (b) { + return isArray(b) && !b.length; + }; + } else if (a === null) { + return function (b) { + //will match both null and undefined + return b == null; + }; + } + + return function (b) { + return compare(comparable(b), comparable(a)) === 0; + }; + }, + + /** + */ + + $ne: function $ne(a) { + return prepare.$eq(a); + }, + + /** + */ + + $and: function $and(a) { + return a.map(parse); + }, + + /** + */ + + $all: function $all(a) { + return prepare.$and(a); + }, + + /** + */ + + $or: function $or(a) { + return a.map(parse); + }, + + /** + */ + + $nor: function $nor(a) { + return a.map(parse); + }, + + /** + */ + + $not: function $not(a) { + return parse(a); + }, + + /** + */ + + $regex: function $regex(a, query) { + return new RegExp(a, query.$options); + }, + + /** + */ + + $where: function $where(a) { + return typeof a === 'string' ? new Function('obj', 'return ' + a) : a; + }, + + /** + */ + + $elemMatch: function $elemMatch(a) { + return parse(a); + }, + + /** + */ + + $exists: function $exists(a) { + return !!a; + } +}; + +/** + */ + +function search(array, validator) { + + for (var i = 0; i < array.length; i++) { + var result = get(array, i); + if (validate(validator, get(array, i))) { + return i; + } + } + + return -1; +} + +/** + */ + +function createValidator(a, validate) { + return { a: a, v: validate }; +} + +/** + */ + +function nestedValidator(a, b) { + var values = []; + findValues(b, a.k, 0, b, values); + + if (values.length === 1) { + var first = values[0]; + return validate(a.nv, first[0], first[1], first[2]); + } + + // If the query contains $ne, need to test all elements ANDed together + var inclusive = a && a.q && typeof a.q.$ne !== 'undefined'; + var allValid = inclusive; + for (var i = 0; i < values.length; i++) { + var result = values[i]; + var isValid = validate(a.nv, result[0], result[1], result[2]); + if (inclusive) { + allValid &= isValid; + } else { + allValid |= isValid; + } + } + return allValid; +} + +/** + */ + +function findValues(current, keypath, index, object, values) { + + if (index === keypath.length || current == void 0) { + + values.push([current, keypath[index - 1], object]); + return; + } + + var k = get(keypath, index); + + // ensure that if current is an array, that the current key + // is NOT an array index. This sort of thing needs to work: + // sift({'foo.0':42}, [{foo: [42]}]); + if (isArray(current) && isNaN(Number(k))) { + for (var i = 0, n = current.length; i < n; i++) { + findValues(get(current, i), keypath, index, current, values); + } + } else { + findValues(get(current, k), keypath, index + 1, current, values); + } +} + +/** + */ + +function createNestedValidator(keypath, a, q) { + return { a: { k: keypath, nv: a, q: q }, v: nestedValidator }; +} + +/** + * flatten the query + */ + +function isVanillaObject(value) { + return value && value.constructor === Object; +} + +function parse(query) { + query = comparable(query); + + if (!query || !isVanillaObject(query)) { + // cross browser support + query = { $eq: query }; + } + + var validators = []; + + for (var key in query) { + var a = query[key]; + + if (key === '$options') { + continue; + } + + if (OPERATORS[key]) { + if (prepare[key]) a = prepare[key](a, query); + validators.push(createValidator(comparable(a), OPERATORS[key])); + } else { + + if (key.charCodeAt(0) === 36) { + throw new Error('Unknown operation ' + key); + } + validators.push(createNestedValidator(key.split('.'), parse(a), a)); + } + } + + return validators.length === 1 ? validators[0] : createValidator(validators, OPERATORS.$and); +} + +/** + */ + +function createRootValidator(query, getter) { + var validator = parse(query); + if (getter) { + validator = { + a: validator, + v: function v(a, b, k, o) { + return validate(a, getter(b), k, o); + } + }; + } + return validator; +} + +/** + */ + +function sift(query, array, getter) { + + if (isFunction(array)) { + getter = array; + array = void 0; + } + + var validator = createRootValidator(query, getter); + + function filter(b, k, o) { + return validate(validator, b, k, o); + } + + if (array) { + return array.filter(filter); + } + + return filter; +} + +/** + */ + +function indexOf(query, array, getter) { + return search(array, createRootValidator(query, getter)); +}; + +/** + */ + +function compare(a, b) { + if (a === b) return 0; + if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) === (typeof b === 'undefined' ? 'undefined' : _typeof(b))) { + if (a > b) { + return 1; + } + if (a < b) { + return -1; + } + } +}; + diff --git a/node_modules/sift/package.json b/node_modules/sift/package.json new file mode 100644 index 00000000..15254475 --- /dev/null +++ b/node_modules/sift/package.json @@ -0,0 +1,66 @@ +{ + "_from": "sift@7.0.1", + "_id": "sift@7.0.1", + "_inBundle": false, + "_integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==", + "_location": "/sift", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sift@7.0.1", + "name": "sift", + "escapedName": "sift", + "rawSpec": "7.0.1", + "saveSpec": null, + "fetchSpec": "7.0.1" + }, + "_requiredBy": [ + "/mongoose" + ], + "_resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "_shasum": "47d62c50b159d316f1372f8b53f9c10cd21a4b08", + "_spec": "sift@7.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\mongoose", + "author": { + "name": "Craig Condon", + "email": "craig.j.condon@gmail.com", + "url": "http://crcn.io" + }, + "bugs": { + "url": "https://github.com/crcn/sift.js/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "mongodb query style array filtering", + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-core": "^6.26.3", + "babel-preset-es2015": "^6.24.1", + "babel-preset-es2015-loose": "^8.0.0", + "bson": "^3.0.2", + "immutable": "^3.7.6", + "mocha": "^5.2.0", + "webpack": "^4.20.2", + "webpack-cli": "^3.1.2", + "yargs": "^3.15.0" + }, + "engines": {}, + "es2015": "./src/index.js", + "homepage": "https://github.com/crcn/sift.js#readme", + "license": "MIT", + "main": "./lib/index.js", + "module": "./src/index.js", + "name": "sift", + "repository": { + "type": "git", + "url": "git+https://github.com/crcn/sift.js.git" + }, + "scripts": { + "build": "mkdir -p lib; babel src/index.js > lib/index.js; webpack", + "test": "mocha ./test -R spec --compilers js:babel-core/register" + }, + "typings": "./index.d.ts", + "version": "7.0.1" +} diff --git a/node_modules/sift/sift.min.js b/node_modules/sift/sift.min.js new file mode 100644 index 00000000..f82b7aeb --- /dev/null +++ b/node_modules/sift/sift.min.js @@ -0,0 +1 @@ +!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.sift=t():n.sift=t()}(window,function(){return function(n){var t={};function r(e){if(t[e])return t[e].exports;var o=t[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=n,r.c=t,r.d=function(n,t,e){r.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:e})},r.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r.t=function(n,t){if(1&t&&(n=r(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)r.d(e,o,function(t){return n[t]}.bind(null,o));return e},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,"a",t),t},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},r.p="",r(r.s=0)}([function(n,t,r){n.exports=r(1)},function(n,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n};function o(n){return"function"==typeof n}function u(n){return"[object Array]"===Object.prototype.toString.call(n)}function i(n){return n instanceof Date?n.getTime():u(n)?n.map(i):n&&"function"==typeof n.toJSON?n.toJSON():n}function f(n,t){return o(n.get)?n.get(t):n[t]}function c(n){return function(t,r){if(!u(r)||!r.length)return n(t,r);for(var e=0,o=r.length;e0}),$gte:c(function(n,t){return b(i(t),n)>=0}),$lt:c(function(n,t){return b(i(t),n)<0}),$lte:c(function(n,t){return b(i(t),n)<=0}),$mod:c(function(n,t){return t%n[0]==n[1]}),$in:function(n,t){if(!(t instanceof Array)){var r=i(t);if(r===t&&"object"===(void 0===t?"undefined":e(t)))for(u=n.length;u--;)if(String(n[u])===String(t)&&"[object Object]"!==String(t))return!0;if(void 0===r)for(u=n.length;u--;)if(null==n[u])return!0;for(u=n.length;u--;){var o=l(y(f(n,u),void 0),t,u,n);if(o&&"[object Object]"!==String(o)&&"[object Object]"!==String(t))return!0}return!!~n.indexOf(r)}for(var u=t.length;u--;)if(~n.indexOf(i(f(t,u))))return!0;return!1},$nin:function(n,t,r,e){return!a.$in(n,t,r,e)},$not:function(n,t,r,e){return!l(n,t,r,e)},$type:function(n,t){return void 0!=t&&(t instanceof n||t.constructor==n)},$all:function(n,t,r,e){return a.$and(n,t,r,e)},$size:function(n,t){return!!t&&n===t.length},$or:function(n,t,r,e){for(var o=0,u=n.length;ot)return 1;if(n 0; + }), + + /** + */ + + $gte: or(function(a, b) { + return compare(comparable(b), a) >= 0; + }), + + /** + */ + + $lt: or(function(a, b) { + return compare(comparable(b), a) < 0; + }), + + /** + */ + + $lte: or(function(a, b) { + return compare(comparable(b), a) <= 0; + }), + + /** + */ + + $mod: or(function(a, b) { + return b % a[0] == a[1]; + }), + + /** + */ + + $in: function(a, b) { + + if (b instanceof Array) { + for (var i = b.length; i--;) { + if (~a.indexOf(comparable(get(b, i)))) { + return true; + } + } + } else { + var comparableB = comparable(b); + if (comparableB === b && typeof b === 'object') { + for (var i = a.length; i--;) { + if (String(a[i]) === String(b) && String(b) !== '[object Object]') { + return true; + } + } + } + + /* + Handles documents that are undefined, whilst also + having a 'null' element in the parameters to $in. + */ + if (typeof comparableB == 'undefined') { + for (var i = a.length; i--;) { + if (a[i] == null) { + return true; + } + } + } + + /* + Handles the case of {'field': {$in: [/regexp1/, /regexp2/, ...]}} + */ + for (var i = a.length; i--;) { + var validator = createRootValidator(get(a, i), undefined); + var result = validate(validator, b, i, a); + if ((result) && (String(result) !== '[object Object]') && (String(b) !== '[object Object]')) { + return true; + } + } + + return !!~a.indexOf(comparableB); + } + + return false; + }, + + /** + */ + + $nin: function(a, b, k, o) { + return !OPERATORS.$in(a, b, k, o); + }, + + /** + */ + + $not: function(a, b, k, o) { + return !validate(a, b, k, o); + }, + + /** + */ + + $type: function(a, b) { + return b != void 0 ? b instanceof a || b.constructor == a : false; + }, + + /** + */ + + $all: function(a, b, k, o) { + return OPERATORS.$and(a, b, k, o); + }, + + /** + */ + + $size: function(a, b) { + return b ? a === b.length : false; + }, + + /** + */ + + $or: function(a, b, k, o) { + for (var i = 0, n = a.length; i < n; i++) if (validate(get(a, i), b, k, o)) return true; + return false; + }, + + /** + */ + + $nor: function(a, b, k, o) { + return !OPERATORS.$or(a, b, k, o); + }, + + /** + */ + + $and: function(a, b, k, o) { + for (var i = 0, n = a.length; i < n; i++) { + if (!validate(get(a, i), b, k, o)) { + return false; + } + } + return true; + }, + + /** + */ + + $regex: or(function(a, b) { + return typeof b === 'string' && a.test(b); + }), + + /** + */ + + $where: function(a, b, k, o) { + return a.call(b, b, k, o); + }, + + /** + */ + + $elemMatch: function(a, b, k, o) { + if (isArray(b)) { + return !!~search(b, a); + } + return validate(a, b, k, o); + }, + + /** + */ + + $exists: function(a, b, k, o) { + return o.hasOwnProperty(k) === a; + } +}; + +/** + */ + +var prepare = { + + /** + */ + + $eq: function(a) { + + if (a instanceof RegExp) { + return function(b) { + return typeof b === 'string' && a.test(b); + }; + } else if (a instanceof Function) { + return a; + } else if (isArray(a) && !a.length) { + // Special case of a == [] + return function(b) { + return (isArray(b) && !b.length); + }; + } else if (a === null){ + return function(b){ + //will match both null and undefined + return b == null; + } + } + + return function(b) { + return compare(comparable(b), comparable(a)) === 0; + }; + }, + + /** + */ + + $ne: function(a) { + return prepare.$eq(a); + }, + + /** + */ + + $and: function(a) { + return a.map(parse); + }, + + /** + */ + + $all: function(a) { + return prepare.$and(a); + }, + + /** + */ + + $or: function(a) { + return a.map(parse); + }, + + /** + */ + + $nor: function(a) { + return a.map(parse); + }, + + /** + */ + + $not: function(a) { + return parse(a); + }, + + /** + */ + + $regex: function(a, query) { + return new RegExp(a, query.$options); + }, + + /** + */ + + $where: function(a) { + return typeof a === 'string' ? new Function('obj', 'return ' + a) : a; + }, + + /** + */ + + $elemMatch: function(a) { + return parse(a); + }, + + /** + */ + + $exists: function(a) { + return !!a; + } +}; + +/** + */ + +function search(array, validator) { + + for (var i = 0; i < array.length; i++) { + var result = get(array, i); + if (validate(validator, get(array, i))) { + return i; + } + } + + return -1; +} + +/** + */ + +function createValidator(a, validate) { + return { a: a, v: validate }; +} + +/** + */ + +function nestedValidator(a, b) { + var values = []; + findValues(b, a.k, 0, b, values); + + if (values.length === 1) { + var first = values[0]; + return validate(a.nv, first[0], first[1], first[2]); + } + + // If the query contains $ne, need to test all elements ANDed together + var inclusive = a && a.q && typeof a.q.$ne !== 'undefined'; + var allValid = inclusive; + for (var i = 0; i < values.length; i++) { + var result = values[i]; + var isValid = validate(a.nv, result[0], result[1], result[2]); + if (inclusive) { + allValid &= isValid; + } else { + allValid |= isValid; + } + } + return allValid; +} + +/** + */ + +function findValues(current, keypath, index, object, values) { + + if (index === keypath.length || current == void 0) { + + values.push([current, keypath[index - 1], object]); + return; + } + + var k = get(keypath, index); + + // ensure that if current is an array, that the current key + // is NOT an array index. This sort of thing needs to work: + // sift({'foo.0':42}, [{foo: [42]}]); + if (isArray(current) && isNaN(Number(k))) { + for (var i = 0, n = current.length; i < n; i++) { + findValues(get(current, i), keypath, index, current, values); + } + } else { + findValues(get(current, k), keypath, index + 1, current, values); + } +} + +/** + */ + +function createNestedValidator(keypath, a, q) { + return { a: { k: keypath, nv: a, q: q }, v: nestedValidator }; +} + +/** + * flatten the query + */ + +function isVanillaObject(value) { + return value && value.constructor === Object; +} + +function parse(query) { + query = comparable(query); + + if (!query || !isVanillaObject(query)) { // cross browser support + query = { $eq: query }; + } + + var validators = []; + + for (var key in query) { + var a = query[key]; + + if (key === '$options') { + continue; + } + + if (OPERATORS[key]) { + if (prepare[key]) a = prepare[key](a, query); + validators.push(createValidator(comparable(a), OPERATORS[key])); + } else { + + if (key.charCodeAt(0) === 36) { + throw new Error('Unknown operation ' + key); + } + validators.push(createNestedValidator(key.split('.'), parse(a), a)); + } + } + + return validators.length === 1 ? validators[0] : createValidator(validators, OPERATORS.$and); +} + +/** + */ + +function createRootValidator(query, getter) { + var validator = parse(query); + if (getter) { + validator = { + a: validator, + v: function(a, b, k, o) { + return validate(a, getter(b), k, o); + } + }; + } + return validator; +} + +/** + */ + +export default function sift(query, array, getter) { + + if (isFunction(array)) { + getter = array; + array = void 0; + } + + var validator = createRootValidator(query, getter); + + function filter(b, k, o) { + return validate(validator, b, k, o); + } + + if (array) { + return array.filter(filter); + } + + return filter; +} + +/** + */ + +export function indexOf(query, array, getter) { + return search(array, createRootValidator(query, getter)); +}; + +/** + */ + +export function compare(a, b) { + if(a===b) return 0; + if(typeof a === typeof b) { + if (a > b) { + return 1; + } + if (a < b) { + return -1; + } + } +}; \ No newline at end of file diff --git a/node_modules/sift/test/basic-test.js b/node_modules/sift/test/basic-test.js new file mode 100644 index 00000000..799f0d0d --- /dev/null +++ b/node_modules/sift/test/basic-test.js @@ -0,0 +1,237 @@ +import * as assert from 'assert'; +import sift, {indexOf as siftIndexOf} from '..'; + +describe(__filename + '#', function() { + + it('doesn\'t sort arrays', function () { + var values = sift({ + $or: [3, 2, 1] + }, [9,8,7,6,5,4,3,2,1]); + + + assert.equal(values.length, 3); + assert.equal(values[0], 3); + assert.equal(values[1], 2); + assert.equal(values[2], 1); + }); + + it('can create a custom selector, and use it', function () { + var sifter = sift({ age: { $gt: 5}}, function (item) { + return item.person; + }); + + var people = [{ person: { age: 6 }}], + filtered = people.filter(sifter); + + + assert.equal(filtered.length, 1); + assert.equal(filtered[0], people[0]); + }); + + it('throws an error if the operation is invalid', function () { + + var err; + try { + sift({$aaa:1})('b'); + } catch (e) { + err = e; + } + + assert.equal(err.message, 'Unknown operation $aaa'); + + }); + + it('can use a custom selector as the 3rd param', function () { + + var people = [{ person: { age: 6 }}]; + + var filtered = sift({ age: { $gt: 5}}, people, function (item) { + return item.person; + }); + + assert.equal(filtered.length, 1); + assert.equal(filtered[0], people[0]); + }); + + it('can get the first index of a matching element', function () { + var index = siftIndexOf({ val: { $gt: 5}}, [{val: 4}, {val: 3}, {val: 6}, {val: 7}]); + + assert.equal(index, 2); + }); + + it('returns -1 as index if no matching element is found', function () { + var index = siftIndexOf({ val: { $gt: 7}}, [{val: 4}, {val: 3}, {val: 6}, {val: 7}]); + + assert.equal(index, -1); + }); + + it('can match empty arrays', function () { + var statusQuery = {$or: [{status: {$exists: false}}, + {status: []}, + {status: {$in: ['urgent', 'completed', 'today']}} + ]}; + + var filtered = sift(statusQuery, [{ status: [] }, + { status: ['urgent'] }, + { status: ['nope'] } + ]); + + assert.equal(filtered.length, 2); + }); + + it('$ne: null does not hit when field is present', function(){ + var sifter = sift({age: {$ne: null}}); + + var people = [ + {age: 'matched'}, + {missed: 1} + ]; + var filtered = people.filter(sifter); + + assert.equal(filtered.length, 1); + assert.equal(filtered[0].age, 'matched'); + }); + + it('$ne does not hit when field is different', function () { + var sifter = sift({ age: { $ne: 5 }}); + + var people = [{ age: 5 }], + filtered = people.filter(sifter); + + assert.equal(filtered.length, 0); + }); + + it('$ne does hit when field exists with different value', function () { + var sifter = sift({ age: { $ne: 4 }}); + + var people = [{ age: 5 }], + filtered = people.filter(sifter); + + assert.equal(filtered.length, 1); + }); + + it('$ne does hit when field does not exist', function(){ + var sifter = sift({ age: { $ne: 5 }}); + + var people = [{}], + filtered = people.filter(sifter); + + assert.equal(filtered.length, 1); + }); + + it('$eq matches objects that serialize to the same value', function() { + var counter = 0; + function Book(name) { + this.name = name; + this.copyNumber = counter; + this.toJSON = function() { + return this.name; // discard the copy when serializing. + }; + counter += 1; + } + + var warAndPeace = new Book('War and Peace'); + + var sifter = sift({ $eq: warAndPeace}); + + var books = [ new Book('War and Peace')]; + var filtered = books.filter(sifter); + + assert.equal(filtered.length, 1); + }); + + it('$neq does not match objects that serialize to the same value', function() { + var counter = 0; + function Book(name) { + this.name = name; + this.copyNumber = counter; + this.toJSON = function() { + return this.name; // discard the copy when serializing. + }; + counter += 1; + } + + var warAndPeace = new Book('War and Peace'); + + var sifter = sift({ $ne: warAndPeace}); + + var books = [ new Book('War and Peace')]; + var filtered = books.filter(sifter); + + assert.equal(filtered.length, 0); + }); + + // https://gist.github.com/jdnichollsc/00ea8cf1204b17d9fb9a991fbd1dfee6 + it('returns a period between start and end dates', function() { + + var product = { + 'productTypeCode': 'productTypeEnergy', + 'quantities': [ + { + 'period': { + 'startDate': new Date('2017-01-13T05:00:00.000Z'), + 'endDate': new Date('2017-01-31T05:00:00.000Z'), + 'dayType': { + 'normal': true, + 'holiday': true + }, + 'specificDays': [ + 'monday', + 'wednesday', + 'friday' + ], + 'loadType': { + 'high': true, + 'medium': false, + 'low': false + } + }, + 'type': 'DemandPercentage', + 'quantityValue': '44' + }, + { + 'period': { + 'startDate': new Date('2017-01-13T05:00:00.000Z'), + 'endDate': new Date('2017-01-31T05:00:00.000Z'), + 'dayType': { + 'normal': true, + 'holiday': true + }, + 'loadType': { + 'high': false, + 'medium': true, + 'low': false + } + }, + 'type': 'Value', + 'quantityValue': '22' + } + ] + }; + + var period = { + 'startDate': new Date('2017-01-08T05:00:00.000Z'), + 'endDate': new Date('2017-01-29T05:00:00.000Z'), + 'dayType': { + 'normal': true, + 'holiday': true + }, + 'loadType': { + 'high': true, + 'medium': false, + 'low': true + }, + specificPeriods : ['3', '4', '5-10'] + }; + + + var results = sift({ + $and: [ + { 'period.startDate': { $lte : period.endDate } }, + { 'period.endDate': { $gte : period.startDate } } + ] + }, product.quantities); + + assert.equal(results.length, 2); + }); +}); diff --git a/node_modules/sift/test/immutable-test.js b/node_modules/sift/test/immutable-test.js new file mode 100644 index 00000000..8685d30c --- /dev/null +++ b/node_modules/sift/test/immutable-test.js @@ -0,0 +1,20 @@ +import * as assert from 'assert'; +import * as Immutable from 'immutable'; + +import sift from '..'; +const ObjectID = require('bson').ObjectID; + +describe(__filename + '#', function() { + + + + var topic = Immutable.List([1, 2, 3, 4, 5, 6, 6, 4, 3]); + + + var persons = Immutable.fromJS([{ person: {age: 3} }, { person: {age: 5} }, { person: {age: 8} }]); + + it('works with Immutable.Map in a Immutable.List', function() { + assert.equal(sift({ 'person.age' : { $gt: 4 } }, persons).size, 2); + assert.equal(persons.filter(sift({ 'person.age' : { $gt: 4 } })).size, 2); + }); +}); diff --git a/node_modules/sift/test/objects-test.js b/node_modules/sift/test/objects-test.js new file mode 100644 index 00000000..951349b4 --- /dev/null +++ b/node_modules/sift/test/objects-test.js @@ -0,0 +1,409 @@ +import assert from 'assert'; +import sift from '..'; + +describe(__filename + '#', function () { + + + var topic = [ + { + name: 'craig', + age: 90001, + tags: ['coder', 'programmer', 'traveler', 'photographer'], + address: { + city: 'Minneapolis', + state: 'MN', + phone: '9999999999' + }, + tags: ['photos', 'cook'], + hobbies: [ + { + name: 'programming', + description: 'some desc' + }, + { + name: 'cooking' + }, + { + name: 'photography', + places: ['haiti', 'brazil', 'costa rica'] + }, + { + name: 'backpacking' + } + ] + }, + { + name: 'tim', + age: 90001, + tags: ['traveler', 'photographer'], + address: { + city: 'St. Paul', + state: 'MN', + phone: '765765756765' + }, + tags: ['dj'], + hobbies: [ + { + name: 'biking', + description: 'some desc' + }, + { + name: 'DJ' + }, + { + name: 'photography', + places: ['costa rica'] + } + ] + } + ]; + xit('throws error if $not is incorrect', function () { + assert.throws(function () { + sift({ + $not: ['abc'] + }, topic); + }, Error); + }); + it('has sifted through photography in brazil count of 1', function () { + var sifted = sift({ + hobbies: { + name: 'photography', + places: { + $in: ['brazil'] + } + } + }, topic); + assert.equal(sifted.length, 1); + }); + it('has sifted through photography in brazil, haiti, and costa rica count of 1', function () { + var sifted = sift({ + hobbies: { + name: 'photography', + places: { + $all: ['brazil', 'haiti', 'costa rica'] + } + } + }, topic); + assert.equal(sifted.length, 1); + assert.equal(sifted[0], topic[0]); + }); + it('has a sifted hobbies of photography, cooking, or biking count of 2', function () { + var sifted = sift({ + hobbies: { + name: { + $in: ['photography', 'cooking', 'biking'] + } + } + }, topic); + assert.equal(sifted.length, 2); + }); + it('has sifted to complex count of 2', function () { + var sifted = sift({ + hobbies: { + name: 'photography', + places: { + $in: ['costa rica'] + } + }, + address: { + state: 'MN', + phone: { + $exists: true + } + } + }, topic); + + assert.equal(sifted.length, 2); + }); + it('has sifted to complex count of 0', function () { + var sifted = sift({ + hobbies: { + name: 'photos', + places: { + $in: ['costa rica'] + } + } + }, topic); + assert.equal(sifted.length, 0); + }); + it('has sifted subobject hobbies count of 3', function () { + var sifted = sift({ + 'hobbies.name': 'photography' + }, topic); + assert.equal(sifted.length, 2); + }); + it('has sifted dot-notation hobbies of photography, cooking, and biking count of 3', function () { + var sifted = sift({ + 'hobbies.name': { + $in: ['photography', 'cooking', 'biking'] + } + }, topic); + assert.equal(sifted.length, 2); + }); + it('has sifted to complex dot-search count of 2', function () { + var sifted = sift({ + 'hobbies.name': 'photography', + 'hobbies.places': { + $in: ['costa rica'] + }, + 'address.state': 'MN', + 'address.phone': { + $exists: true + } + }, topic); + assert.equal(sifted.length, 2); + }); + it('has sifted with selector function count of 2', function () { + var sifted = sift({ + 'name': 'photography', + 'places': { + $in: ['costa rica'] + } + }, topic, function (item) { + return item.hobbies; + }); + assert.equal(sifted.length, 2); + }); + + describe('nesting', function () { + it('$eq for nested object', function () { + var sifted = sift({'sub.num': {'$eq': 10}}, loremArr); + assert(sifted.length > 0); + sifted.forEach(function (v) { + assert.equal(10, v.sub.num); + }); + }); + + it('$ne for nested object', function () { + var sifted = sift({'sub.num': {'$ne': 10}}, loremArr); + assert(sifted.length > 0); + sifted.forEach(function (v) { + assert.notEqual(10, v.sub.num); + }); + }); + + it('$regex for nested object (one missing key)', function () { + var persons = [{ + id: 1, + prof: 'Mr. Moriarty' + }, { + id: 2, + prof: 'Mycroft Holmes' + }, { + id: 3, + name: 'Dr. Watson', + prof: 'Doctor' + }, { + id: 4, + name: 'Mr. Holmes', + prof: 'Detective' + }]; + var q = { 'name': { '$regex': 'n' } }; + var sifted = sift(q, persons); + assert.deepEqual(sifted, [{ + id: 3, + name: 'Dr. Watson', + prof: 'Doctor' + }]); + }); + }); + + describe('arrays of objects', function () { + var objects = [ + { + things: [ + { + id: 123 + }, { + id: 456 + } + ] + }, { + things: [ + { + id: 123 + }, + { + id: 789 + } + ] + } + ]; + it('$eq for array of objects, matches if at least one exists', function () { + let q = { + 'things.id': 123 + } + var sifted = sift(q, objects) + assert.deepEqual(sifted, objects) + let q2 = { + 'things.id': 789 + } + var sifted2 = sift(q2, objects) + assert.deepEqual(sifted2, [objects[1]]) + }) + it('$ne for array of objects, returns if none of the array elements match the query', function () { + let q = { + 'things.id': { + $ne: 123 + } + } + var sifted = sift(q, objects) + assert.deepEqual(sifted, []) + let q2 = { + 'things.id': { + $ne: 789 + } + } + var sifted2 = sift(q2, objects) + assert.deepEqual(sifted2, [objects[0]]) + }) + }) + + describe('$where', function() { + + var couples = [{ + name: 'SMITH', + person: [{ + firstName: 'craig', + gender: 'female', + age: 29 + }, { + firstName: 'tim', + gender: 'male', + age: 32 + } + + ] + }, { + name: 'JOHNSON', + person: [{ + firstName: 'emily', + gender: 'female', + age: 35 + }, { + firstName: 'jacob', + gender: 'male', + age: 32 + } + + ] + }]; + + it('can filter people', function() { + var results = sift({'person': {$elemMatch: { 'gender': 'female', 'age': {'$lt': 30}}}}, couples); + assert.equal(results[0].name, 'SMITH'); + + var results = sift({'person': {$elemMatch: { 'gender': 'male', 'age': {'$lt': 30}}}}, [couples[0]]); + assert.equal(results.length, 0); + }); + }); + + describe('keypath', function () { + + var arr = [ + { + a: { + b: { + c: 1, + c2: 1 + } + } + } + ] + it('can be used', function () { + assert.equal(sift({'a.b.c':1})(arr[0]), true); + }); + }); +}); + + +var loremArr = [ + { + 'num': 1, + 'pum': 1, + 'sub': { + 'num': 1, + 'pum': 1 + } + }, + { + 'num': 2, + 'pum': 2, + 'sub': { + 'num': 2, + 'pum': 2 + } + }, + { + 'num': 3, + 'pum': 3, + 'sub': { + 'num': 3, + 'pum': 3 + } + }, + { + 'num': 4, + 'pum': 4, + 'sub': { + 'num': 4, + 'pum': 4 + } + }, + { + 'num': 5, + 'pum': 5, + 'sub': { + 'num': 5, + 'pum': 5 + } + }, + { + 'num': 6, + 'pum': 6, + 'sub': { + 'num': 6, + 'pum': 6 + } + }, + { + 'num': 7, + 'pum': 7, + 'sub': { + 'num': 7, + 'pum': 7 + } + }, + { + 'num': 8, + 'pum': 8, + 'sub': { + 'num': 8, + 'pum': 8 + } + }, + { + 'num': 9, + 'pum': 9, + 'sub': { + 'num': 9, + 'pum': 9 + } + }, + { + 'num': 10, + 'pum': 10, + 'sub': { + 'num': 10, + 'pum': 10 + } + }, + { + 'num': 11, + 'pum': 11, + 'sub': { + 'num': 10, + 'pum': 10 + } + } +]; diff --git a/node_modules/sift/test/operations-test.js b/node_modules/sift/test/operations-test.js new file mode 100644 index 00000000..337600ec --- /dev/null +++ b/node_modules/sift/test/operations-test.js @@ -0,0 +1,203 @@ +import * as assert from 'assert'; +import sift from '..'; +var ObjectID = require('bson').ObjectID; + +describe(__filename + '#', function () { + + + [ + // $eq + [{$eq:5}, [5,'5', 6], [5]], + ['5', [5,'5', 6], ['5']], + [false, [false,'false', true], [false]], + [true, [1, true], [true]], + [0, [0,'0'], [0]], + [null, [null], [null]], + [void 0, [void 0, null], [void 0]], + [1, [2,3,4,5], []], + [1, [[1]], [[1]]], + [new Date(1), [new Date(), new Date(1), new Date(2), new Date(3)], [new Date(1)]], + [/^a/, ['a','ab','abc','b','bc'], ['a','ab','abc']], + + [function(b) { return b === 1; }, [1,2,3],[1]], + + [ObjectID('54dd5546b1d296a54d152e84'),[ObjectID(),ObjectID('54dd5546b1d296a54d152e84')],[ObjectID('54dd5546b1d296a54d152e84')]], + + // $ne + [{$ne:5}, [5, '5', 6], ['5', 6]], + [{$ne:'5'}, ['5', 6], [6]], + [{$ne:false}, [false], []], + [{$ne:void 0}, [false, 0, '0', void 0], [false, 0, '0']], + [{$ne:/^a/}, ['a','ab','abc','b','bc'], ['b','bc']], + [{$ne:1}, [[2],[1]], [[2]]], + [{groups:{$ne:111}}, [{groups:[111,222,333,444]},{groups:[222,333,444]}],[{groups:[222,333,444]}]], + + // $lt + [{$lt:5}, [3,4,5,6],[3,4]], + [{$lt:'c'}, ['a','b','c'],['a','b']], + [{$lt:null}, [-3,-4], []], + [{$lt:new Date(3)}, [new Date(1), new Date(2), new Date(3)],[new Date(1), new Date(2)]], + + // $lte + [{$lte:5}, [3,4,5,6],[3,4,5]], + [{groups:{$lt:5}}, [{groups:[1,2,3,4]}, {groups:[7,8]}], [{groups:[1,2,3,4]}]], + + // $gt + [{$gt:5}, [3,4,5,6],[6]], + [{$gt:null}, [3,4], []], + [{groups:{$gt:5}}, [{groups:[1,2,3,4]}, {groups:[7,8]}], [{groups:[7,8]}]], + + // $gte + [{$gte:5}, [3,4,5,6],[5, 6]], + [{groups:{$gte:5}}, [{groups:[1,2,3,4]}, {groups:[7,8]}], [{groups:[7,8]}]], + + // $mod + [{$mod:[2,1]}, [1,2,3,4,5,6],[1,3,5]], + [{groups:{$mod:[2,0]}}, [{groups:[1,2,3,4]}, {groups:[7,9]}], [{groups:[1,2,3,4]}]], + + // $exists + [{$exists:false}, [0,false,void 0, null],[]], + [{$exists:true}, [0,false,void 0, 1, {}],[0, false, void 0, 1, {}]], + [{'a.b': {$exists: true}}, [{a: {b: 'exists'}}, {a: {c: 'does not exist'}}], [{a: {b: 'exists'}}]], + [{field: { $exists: false }}, [{a: 1}, {a: 2, field: 5}, {a: 3, field: 0}, {a: 4, field: undefined}, {a: 5}],[{a: 1}, {a: 5}]], + + // $in + // TODO - {$in:[Date]} doesn't work - make it work? + [{$in:[0,false,1,'1']},[0,1,2,3,4,false],[0,1,false]], + [{$in:[1,'1','2']},['1','2','3'],['1','2']], + [{$in:[new Date(1)]},[new Date(1), new Date(2)],[new Date(1)]], + [{'a.b.status':{'$in': [0]}}, [{'a':{'b':[{'status':0}]}},{'a':{'b':[{'status':2}]}}],[{'a':{'b':[{'status':0}]}}]], + [{'a.b.status':{'$in': [0, 2]}}, [{'a':{'b':[{'status':0}]}},{'a':{'b':[{'status':2}]}}], [{'a':{'b':[{'status':0}]}},{'a':{'b':[{'status':2}]}}]], + [{'x': {$in: [{$regex: '.*aaa.*'}, {$regex: '.*bbb.*'}]}}, [{'x': {'b': 'aaa'}}, {'x': 'bbb'}, {'x': 'ccc'}, {'x': 'aaa'}], [{'x': 'bbb'}, {'x': 'aaa'}]], + [{'x': {$in: [/.*aaa.*/, /.*bbb.*/]}}, [{'x': {'b': 'aaa'}}, {'x': 'bbb'}, {'x': 'ccc'}, {'x': 'aaa'}], [{'x': 'bbb'}, {'x': 'aaa'}]], + + // $nin + [{$nin:[0,false,1,'1']},[0,1,2,3,4,false],[2,3,4]], + [{$nin:[1,'1','2']},['1','2','3'],['3']], + [{$nin:[new Date(1)]},[new Date(1), new Date(2)],[new Date(2)]], + [{'root.notDefined': {$nin: [1, 2, 3]}}, [{'root': {'defined': 1337}}], [{'root': {'defined': 1337}}]], + [{'root.notDefined': {$nin: [1, 2, 3, null]}}, [{'root': {'defined': 1337}}], []], + [{'x': {$nin: [{$regex: '.*aaa.*'}, {$regex: '.*bbb.*'}]}}, [{'x': {'b': 'aaa'}}, {'x': 'bbb'}, {'x': 'ccc'}, {'x': 'aaa'}], [{'x': {'b': 'aaa'}},{'x': 'ccc'}]], + [{'x': {$nin: [/.*aaa.*/, /.*bbb.*/]}}, [{'x': {'b': 'aaa'}}, {'x': 'bbb'}, {'x': 'ccc'}, {'x': 'aaa'}], [{'x': {'b': 'aaa'}},{'x': 'ccc'}]], + + // $not + [{$not:false},[0,false],[0]], + [{$not:0},[0, false, 1, 2, 3],[false, 1, 2, 3]], + [{$not:{$in:[1,2,3]}},[1,2,3,4,5,6],[4,5,6]], // with expressions + + // $type + [{$type:Date}, [0,new Date(1)],[new Date(1)]], + [{$type:Number}, [0,false,1],[0,1]], + [{$type:Boolean}, [0,false, void 0],[false]], + [{$type:String}, ['1',1,false],['1']], + + // $all + [{$all:[1,2,3]},[[1,2,3,4],[1,2,4]],[[1,2,3,4]]], + [{$all:[0,false]},[[0,1,2],[0,false],['0','false'],void 0],[[0,false]]], + [{$all:['1']},[[1]],[]], + [{$all:[new Date(1),new Date(2)]},[[new Date(1), new Date(2)],[new Date(1)]],[[new Date(1), new Date(2)]]], + + // $size + [{$size:3},['123',[1,2,3],'1'],['123',[1,2,3]]], + [{$size:1},['123',[1,2,3],'1', void 0],['1']], + + // $or + [{$or:[1,2,3]},[1,2,3,4],[1,2,3]], + [{$or:[{$ne:1},2]},[1,2,3,4,5,6],[2,3,4,5,6]], + + // $nor + [{$nor:[1,2,3]},[1,2,3,4],[4]], + [{$nor:[{$ne:1},2]},[1,2,3,4,5,6],[1]], + + // $and + [{$and:[{$gt:1},{$lt:4}]},[1,2,3,4],[2,3]], + [{$and: [{field: {$not: {$type: String}}}, {field: {$ne: null}}]}, [{a: 1, field: 1}, {a: 2, field: '2'}], [{a: 1, field: 1}]], + + // $regex + [{$regex:'^a'},['a','ab','abc','bc','bcd'],['a','ab','abc']], + [{a:{$regex:'b|c'}}, [{a:['b']},{a:['c']},{a:'c'},{a:'d'}], [{a:['b']},{a:['c']},{a:'c'}]], + [{ folder: { $regex:'^[0-9]{4}$' }}, [{ folder:['1234','3212'] }], [{ folder:['1234','3212'] }]], + + // $options + [{$regex:'^a', $options: 'i'},['a','Ab','abc','bc','bcd'],['a','Ab','abc']], + [{'text':{'$regex':'.*lis.*','$options':'i'}}, [{text:['Bob','Melissa','Joe','Sherry']}], [{text:['Bob','Melissa','Joe','Sherry']}]], + + // undefined + [{$regex:'a'},[undefined, null, true, false, 0, 'aa'],['aa']], + [/a/,[undefined, null, true, false, 0, 'aa'],['aa']], + [/.+/,[undefined, null, true, false, 0, 'aa', {}],['aa']], + + // Multiple conditions on an undefined root + [{'a.b': {$exists: true, $nin: [null]}}, [{a: {b: 'exists'}}, {a: {c: 'does not exist'}}], [{a: {b: 'exists'}}]], + + // $where + [{$where:function () { return this.v === 1 }}, [{v:1},{v:2}],[{v:1}]], + [{$where:'this.v === 1'}, [{v:1},{v:2}],[{v:1}]], + [{$where:'obj.v === 1'}, [{v:1},{v:2}],[{v:1}]], + + // $elemMatch + //{'person': {'$elemMatch': {'gender': 'male', 'age': {'$lt': 30}}}} + [ + {a:{$elemMatch:{b:1,c:2}}}, + [{a:{b:1,c:2}},{a:[{b:1,c:2,d:3}]},{a:{b:2,c:3}}], [{a:{b:1,c:2}},{a:[{b:1,c:2,d:3}]}] + ], + [{a:{$elemMatch:{b:2,c:{$gt:2}}}}, [{a:{b:1,c:2}},{a:{b:1,c:2,d:3}},[{a:{b:2,c:3}}]], [[{a:{b:2,c:3}}]]], + [ + {tags: {$all: [{$elemMatch: {a: 1}}]}}, + [{tags: [{a: 1}]}, {tags: [{a: 1}, {b: 1}]}], [{tags: [{a: 1}]}, {tags: [{a: 1}, {b: 1}]}] + ], + + // dot-notation + [ + {'a.b': /c/ }, + [{a:{b:'c'}}, {a:{b:'cd'}}, {'a.b':'c'},{a:{b:'e'}}], + [{a:{b:'c'}}, {a:{b:'cd'}}] + ], + [ + {'foo.0': 'baz' }, + [{foo:['bar', 'baz']}, {foo:['baz', 'bar']}], + [{foo:['baz', 'bar']}] + ], + [ + {'foo.0.name': 'baz' }, + [{foo:[{ name: 'bar' }, { name: 'baz' }]}, {foo:[{ name: 'baz' }, { name: 'bar' }]}], + [{foo:[{ name: 'baz' }, { name: 'bar' }]}] + ], + + // object.toString() tests + [ + { $in: [{ toString: function(){ return 'a'; }}]}, + [{toString: function(){ return 'a'; }}, {toString: function(){ return 'b' }}], + [{toString: function(){ return 'a'; }}] + ], + [ + { $in: [{}]}, + [{}, {}], + [] + ], + + // various comparisons + [ + { c: { d: 'd' }}, + [{ a: 'b', b: 'c', c: { d: 'd', e: 'e' }}, { c: { d: 'e' }}], + [{ a: 'b', b: 'c', c: { d: 'd', e: 'e' }}] + ], + + // based on https://gist.github.com/jdnichollsc/00ea8cf1204b17d9fb9a991fbd1dfee6 + [ + { $and: [{ 'a.s': { $lte: new Date('2017-01-29T05:00:00.000Z') }}, {'a.e': { $gte: new Date('2017-01-08T05:00:00.000Z') }}]}, + [{ a: { s: new Date('2017-01-13T05:00:00.000Z'), e: new Date('2017-01-31T05:00:00.000Z') }}], + [{ a: { s: new Date('2017-01-13T05:00:00.000Z'), e: new Date('2017-01-31T05:00:00.000Z') }}] + ], + + ].forEach(function (operation, i) { + + var filter = operation[0]; + var array = operation[1]; + var matchArray = operation[2]; + + it(i + ': ' + JSON.stringify(filter), function() { + assert.equal(JSON.stringify(array.filter(sift(filter))), JSON.stringify(matchArray)); + }); + }); +}); diff --git a/node_modules/sift/tsconfig.json b/node_modules/sift/tsconfig.json new file mode 100644 index 00000000..361020dc --- /dev/null +++ b/node_modules/sift/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es6", + "moduleResolution": "node", + "module": "commonjs", + "allowSyntheticDefaultImports": true + } +} \ No newline at end of file diff --git a/node_modules/sift/webpack.config.js b/node_modules/sift/webpack.config.js new file mode 100644 index 00000000..4f08ab57 --- /dev/null +++ b/node_modules/sift/webpack.config.js @@ -0,0 +1,23 @@ +const {resolve} = require('path'); +const fs = require('fs'); + +module.exports = { + devtool: 'none', + mode: 'production', + entry: { + index: [__dirname + '/lib/index.js'] + }, + output: { + path: __dirname, + library: 'sift', + libraryTarget: 'umd', + filename: 'sift.min.js' + }, + resolve: { + extensions: ['.js'] + }, + module: { + rules: [ + ] + } +}; \ No newline at end of file diff --git a/node_modules/sift/yarn.lock b/node_modules/sift/yarn.lock new file mode 100644 index 00000000..09c676f5 --- /dev/null +++ b/node_modules/sift/yarn.lock @@ -0,0 +1,4016 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@webassemblyjs/ast@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.8.tgz#f31f480debeef957f01b623f27eabc695fa4fe8f" + dependencies: + "@webassemblyjs/helper-module-context" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/wast-parser" "1.7.8" + +"@webassemblyjs/floating-point-hex-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.8.tgz#1b3ed0e27e384032254e9322fc646dd3e70ef1b9" + +"@webassemblyjs/helper-api-error@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.8.tgz#a2b49c11f615e736f815ec927f035dcfa690d572" + +"@webassemblyjs/helper-buffer@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.8.tgz#3fc66bfa09c1c60e824cf3d5887826fac062877d" + +"@webassemblyjs/helper-code-frame@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.8.tgz#cc5a7e9522b70e7580df056dfd34020cf29645b0" + dependencies: + "@webassemblyjs/wast-printer" "1.7.8" + +"@webassemblyjs/helper-fsm@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.8.tgz#fe4607430af466912797c21acafd3046080182ea" + +"@webassemblyjs/helper-module-context@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.8.tgz#3c2e7ee93d14ff4768ba66fb1be42fdc9dc7160a" + +"@webassemblyjs/helper-wasm-bytecode@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.8.tgz#89bdb78cd6dd5209ae2ed2925de78d0f0e00b6f0" + +"@webassemblyjs/helper-wasm-section@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.8.tgz#c68ef7d26a6fc12421b2e6e56f9bc810dfb33e87" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + +"@webassemblyjs/ieee754@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.8.tgz#1f37974b13cb486a9237e73ce04cac7a2f1265ed" + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.8.tgz#1bee83426819192db2ea1a234b84c7ebc6d34c1f" + dependencies: + "@xtuc/long" "4.2.1" + +"@webassemblyjs/utf8@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.8.tgz#2b489d5cf43e0aebb93d8e2d792aff9879c61f05" + +"@webassemblyjs/wasm-edit@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.8.tgz#f8bdbe7088718eca27b1c349bb7c06b8a457950c" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/helper-wasm-section" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + "@webassemblyjs/wasm-opt" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" + "@webassemblyjs/wast-printer" "1.7.8" + +"@webassemblyjs/wasm-gen@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.8.tgz#7e8abf1545eae74ac6781d545c034af3cfd0c7d5" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/ieee754" "1.7.8" + "@webassemblyjs/leb128" "1.7.8" + "@webassemblyjs/utf8" "1.7.8" + +"@webassemblyjs/wasm-opt@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.8.tgz#7ada6e211914728fce02ff0ff9c344edc6d41f26" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" + +"@webassemblyjs/wasm-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.8.tgz#dac47c291fb6a3e63529aecd647592cd34afbf94" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-api-error" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/ieee754" "1.7.8" + "@webassemblyjs/leb128" "1.7.8" + "@webassemblyjs/utf8" "1.7.8" + +"@webassemblyjs/wast-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.8.tgz#f8aab9a450c048c1f9537695c89faeb92fabfba5" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/floating-point-hex-parser" "1.7.8" + "@webassemblyjs/helper-api-error" "1.7.8" + "@webassemblyjs/helper-code-frame" "1.7.8" + "@webassemblyjs/helper-fsm" "1.7.8" + "@xtuc/long" "4.2.1" + +"@webassemblyjs/wast-printer@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.8.tgz#e7e965782c1912f6a965f14a53ff43d8ad0403a5" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/wast-parser" "1.7.8" + "@xtuc/long" "4.2.1" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + +"@xtuc/long@4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + +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-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + dependencies: + acorn "^5.0.0" + +acorn@^5.0.0, acorn@^5.6.2: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + +ajv-keywords@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + +ajv@^5.3.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" + +ajv@^6.1.0: + version "6.5.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +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" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + 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" + 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" + +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" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + dependencies: + safer-buffer "~2.1.0" + +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@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@1.x: + version "1.5.2" + resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + +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.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + 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" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0, babel-core@^6.26.3: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + 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" + 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-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-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-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" + 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" + 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-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: + 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.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + 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-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" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-es2015-loose@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-es2015-loose/-/babel-preset-es2015-loose-8.0.0.tgz#82ee293ab31329c7a94686b644b62adfbcdc3f57" + dependencies: + modify-babel-preset "^3.1.0" + +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-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + 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" + 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" + 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" + +babel@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel/-/babel-6.23.0.tgz#d0d1e7d803e974765beea3232d4e153c0efb90f4" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +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.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + 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" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + dependencies: + tweetnacl "^0.14.3" + +benchmark@^1.0.0: + version "1.0.0" + resolved "http://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +binary-extensions@^1.0.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" + +bluebird@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a" + +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" + +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" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.0, braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + 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" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + 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.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "http://registry.npmjs.org/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.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +bson@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bson/-/bson-3.0.2.tgz#2467a76507a98c63ce34072f9965f4024e753dfc" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + +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.3.0: + version "4.9.1" + resolved "http://registry.npmjs.org/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" + +cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + 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@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "http://registry.npmjs.org/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" + +chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chokidar@^1.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + 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" + +chokidar@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.5" + optionalDependencies: + fsevents "^1.2.2" + +chownr@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + dependencies: + tslib "^1.9.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" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cliui@^3.0.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +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" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + 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" + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +combined-stream@1.0.6: + version "1.0.6" + resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + dependencies: + delayed-stream "~1.0.0" + +commander@2.15.1: + version "2.15.1" + resolved "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +commander@^2.11.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + +commander@~2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +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.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-0.3.2.tgz#25e4c16c3768abf75c5a65bc61761f495055b459" + dependencies: + graceful-fs "^3.0.1" + js-yaml "^3.1.0" + mkdirp "^0.5.0" + object-assign "^2.0.0" + osenv "^0.1.0" + user-home "^1.0.0" + uuid "^2.0.1" + xdg-basedir "^1.0.0" + +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" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +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.5.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + dependencies: + safe-buffer "~5.1.1" + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + +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@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.2.tgz#f5a0bcd90ca4e64e088b710fa8dda640aea4884f" + dependencies: + growl "~> 1.10.0" + js-yaml "^3.11.0" + lcov-parse "^0.0.10" + log-driver "^1.2.7" + minimist "^1.2.0" + request "^2.85.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + 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@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.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" + +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + +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@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +debug@^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" + dependencies: + ms "2.0.0" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + dependencies: + xregexp "4.0.0" + +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" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + 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" + 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" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +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" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +duplexify@^3.2.0, duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +elliptic@^6.0.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + 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" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +escape-string-regexp@1.0.5, 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" + +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esprima@2.7.x, 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.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +estraverse@^4.1.0, estraverse@^4.1.1: + 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-stream@~0.5: + version "0.5.3" + resolved "http://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz#b77b9309f7107addfeab63f0c0eafd8db0bd8c1c" + dependencies: + optimist "0.2" + +events@^1.0.0: + version "1.1.1" + resolved "http://registry.npmjs.org/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" + +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + 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" + 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" + 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" + 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" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + 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" + 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" + +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" + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + +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" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + 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" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.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" + dependencies: + locate-path "^3.0.0" + +flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + +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" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +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.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + dependencies: + minipass "^2.2.1" + +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" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0, fsevents@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + +get-stream@^3.0.0: + version "3.0.0" + resolved "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +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" + +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" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + 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" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.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" + +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.5, glob@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + 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" + +global-modules-path@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +got@^3.2.0: + version "3.3.1" + resolved "http://registry.npmjs.org/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" + dependencies: + duplexify "^3.2.0" + infinity-agent "^2.0.0" + is-redirect "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + nested-error-stacks "^1.0.0" + object-assign "^3.0.0" + prepend-http "^1.0.0" + read-all-stream "^3.0.0" + timed-out "^2.0.0" + +graceful-fs@^3.0.1: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +growl@1.10.5, "growl@~> 1.10.0": + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + +handlebars@^4.0.1: + version "4.0.12" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" + dependencies: + async "^2.5.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +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@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" + dependencies: + ajv "^5.3.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-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + 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" + 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" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +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.5" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +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" + +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" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + dependencies: + minimatch "^3.0.4" + +immutable@^3.7.6: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +infinity-agent@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" + +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.3, inherits@^2.0.1, inherits@^2.0.3, 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" + +ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +interpret@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + +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" + 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" + 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" + dependencies: + binary-extensions "^1.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" + +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" + 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" + 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" + 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" + 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" + +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" + 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" + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + 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" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +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-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" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + 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" + 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" + +is-plain-object@^2.0.1, 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" + 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" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + 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" + +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.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + +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.x, js-yaml@^3.1.0, js-yaml@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + 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" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + +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-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +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" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +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" + +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" + 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" + 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" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + +latest-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" + dependencies: + package-json "^1.0.0" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + dependencies: + invert-kv "^2.0.0" + +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: + 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" + +loader-runner@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" + +loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + +lodash@^4.17.10, lodash@^4.17.4: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + +log-driver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +lru-cache@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + +map-age-cleaner@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" + dependencies: + p-defer "^1.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" + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + +math-random@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mem@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^1.1.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + 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, micromatch@^3.1.4, micromatch@^3.1.8: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + 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" + +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.36.0: + version "1.36.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.20" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" + dependencies: + mime-db "~1.36.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +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.4, 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" + +minimatch@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minipass@^2.2.1, minipass@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" + dependencies: + minipass "^2.2.1" + +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +modify-babel-preset@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/modify-babel-preset/-/modify-babel-preset-3.2.1.tgz#d7172aa3c0822ed3fc08e308fd0971295136ab50" + dependencies: + require-relative "^0.8.7" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@^2.9.2: + version "2.11.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + 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" + +natives@^1.1.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" + +needle@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +neo-async@^2.5.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc" + +nested-error-stacks@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" + dependencies: + inherits "~2.0.1" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + +nodangel@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/nodangel/-/nodangel-1.3.8.tgz#45627cb996679cef63d1e3f6f899d856d0df1956" + dependencies: + minimatch "~0.3.0" + ps-tree "~0.0.3" + touch "~0.0.3" + update-notifier "^0.3.0" + +node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +nopt@3.x: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + +npm-packlist@^1.1.6: + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +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.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + 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" + 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" + 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" + dependencies: + isobject "^3.0.1" + +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +optimist@0.2: + version "0.2.8" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.2.8.tgz#e981ab7e268b457948593b55674c099a815cac31" + dependencies: + wordwrap ">=0.0.1 <0.1.0" + +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: + 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.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + dependencies: + execa "^0.10.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.0, osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +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" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.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" + dependencies: + p-limit "^2.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + +package-json@^1.0.0: + version "1.2.0" + resolved "http://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" + dependencies: + got "^3.2.0" + registry-url "^3.0.0" + +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parse-asn1@^5.0.0: + version "5.1.1" + resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + 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" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + 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" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +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" + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + 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" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +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" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + dependencies: + find-up "^3.0.0" + +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" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, 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.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +ps-tree@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-0.0.3.tgz#dbf8d752a7fe22fa7d58635689499610e9276ddc" + dependencies: + event-stream "~0.5" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +psl@^1.1.24: + version "1.1.29" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + 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" + safe-buffer "^5.1.2" + +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +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" + +randomatic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +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.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +rc@^1.0.1, rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: + version "2.3.6" + resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + 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" + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +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" + 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" + 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" + +registry-url@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +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" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + +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" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@^2.85.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + 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.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + 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.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, 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" + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +schema-utils@^0.4.4, schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver@^5.0.3, semver@^5.3.0, semver@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + +serialize-javascript@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + +set-blocking@^2.0.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@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +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" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + 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" + 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" + 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" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.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" + +source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +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" + +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" + 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" + +sshpk@^1.7.0: + version "1.14.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + safer-buffer "^2.0.2" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-browserify@^2.0.1: + 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-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +string-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" + dependencies: + strip-ansi "^3.0.0" + +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@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: + 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_decoder@^1.0.0, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "http://registry.npmjs.org/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-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +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" + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + dependencies: + has-flag "^3.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" + +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" + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + dependencies: + has-flag "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c" + +tar@^4: + version "4.4.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" + dependencies: + chownr "^1.0.1" + fs-minipass "^1.2.5" + minipass "^2.3.3" + minizlib "^1.1.0" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" + +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" + +timed-out@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + dependencies: + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +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" + +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" + 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" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +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" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +touch@~0.0.3: + version "0.0.4" + resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.4.tgz#fc1a7103cbe0ecee713d1384d775e2f9e21caae2" + dependencies: + nopt "~1.0.10" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +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" + +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: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + +uglify-js@^3.1.4: + version "3.4.9" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + +uglifyjs-webpack-plugin@^1.2.4: + version "1.3.0" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unique-filename@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + dependencies: + imurmurhash "^0.1.4" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + +update-notifier@^0.3.0: + version "0.3.2" + resolved "http://registry.npmjs.org/update-notifier/-/update-notifier-0.3.2.tgz#22a8735baadef3320e2db928f693da898dc87777" + dependencies: + chalk "^1.0.0" + configstore "^0.3.1" + is-npm "^1.0.0" + latest-version "^1.0.0" + semver-diff "^2.0.0" + string-length "^1.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +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" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + +user-home@^1.0.0, user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +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: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + dependencies: + inherits "2.0.3" + +uuid@^2.0.1: + version "2.0.3" + resolved "http://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + +v8-compile-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +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.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +webpack-cli@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746" + dependencies: + chalk "^2.4.1" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.0" + global-modules-path "^2.3.0" + import-local "^2.0.0" + interpret "^1.1.0" + loader-utils "^1.1.0" + supports-color "^5.5.0" + v8-compile-cache "^2.0.2" + yargs "^12.0.2" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.20.2: + version "4.20.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.20.2.tgz#89f6486b6bb276a91b0823453d377501fc625b5a" + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-module-context" "1.7.8" + "@webassemblyjs/wasm-edit" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" + acorn "^5.6.2" + acorn-dynamic-import "^3.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + micromatch "^3.1.8" + mkdirp "~0.5.0" + neo-async "^2.5.0" + node-libs-browser "^2.0.0" + schema-utils "^0.4.4" + tapable "^1.1.0" + uglifyjs-webpack-plugin "^1.2.4" + watchpack "^1.5.0" + webpack-sources "^1.3.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.1.1, which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + +"wordwrap@>=0.0.1 <0.1.0", wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@^1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +worker-farm@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +xdg-basedir@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-1.0.1.tgz#14ff8f63a4fdbcb05d5b6eea22b36f3033b9f04e" + dependencies: + user-home "^1.0.0" + +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + +yargs-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + dependencies: + camelcase "^4.1.0" + +yargs@^12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" + dependencies: + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" + +yargs@^3.15.0: + version "3.32.0" + resolved "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" diff --git a/node_modules/signal-exit/CHANGELOG.md b/node_modules/signal-exit/CHANGELOG.md new file mode 100644 index 00000000..ed104f41 --- /dev/null +++ b/node_modules/signal-exit/CHANGELOG.md @@ -0,0 +1,35 @@ +# 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.0.3](https://github.com/tapjs/signal-exit/compare/v3.0.2...v3.0.3) (2020-03-26) + + +### Bug Fixes + +* patch `SIGHUP` to `SIGINT` when on Windows ([cfd1046](https://github.com/tapjs/signal-exit/commit/cfd1046079af4f0e44f93c69c237a09de8c23ef2)) +* **ci:** use Travis for Windows builds ([007add7](https://github.com/tapjs/signal-exit/commit/007add793d2b5ae3c382512103adbf321768a0b8)) + + +## [3.0.1](https://github.com/tapjs/signal-exit/compare/v3.0.0...v3.0.1) (2016-09-08) + + +### Bug Fixes + +* do not listen on SIGBUS, SIGFPE, SIGSEGV and SIGILL ([#40](https://github.com/tapjs/signal-exit/issues/40)) ([5b105fb](https://github.com/tapjs/signal-exit/commit/5b105fb)) + + + + +# [3.0.0](https://github.com/tapjs/signal-exit/compare/v2.1.2...v3.0.0) (2016-06-13) + + +### Bug Fixes + +* get our test suite running on Windows ([#23](https://github.com/tapjs/signal-exit/issues/23)) ([6f3eda8](https://github.com/tapjs/signal-exit/commit/6f3eda8)) +* hooking SIGPROF was interfering with profilers see [#21](https://github.com/tapjs/signal-exit/issues/21) ([#24](https://github.com/tapjs/signal-exit/issues/24)) ([1248a4c](https://github.com/tapjs/signal-exit/commit/1248a4c)) + + +### BREAKING CHANGES + +* signal-exit no longer wires into SIGPROF diff --git a/node_modules/signal-exit/LICENSE.txt b/node_modules/signal-exit/LICENSE.txt new file mode 100644 index 00000000..eead04a1 --- /dev/null +++ b/node_modules/signal-exit/LICENSE.txt @@ -0,0 +1,16 @@ +The ISC License + +Copyright (c) 2015, Contributors + +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/node_modules/signal-exit/README.md b/node_modules/signal-exit/README.md new file mode 100644 index 00000000..9f8eb591 --- /dev/null +++ b/node_modules/signal-exit/README.md @@ -0,0 +1,39 @@ +# signal-exit + +[![Build Status](https://travis-ci.org/tapjs/signal-exit.png)](https://travis-ci.org/tapjs/signal-exit) +[![Coverage](https://coveralls.io/repos/tapjs/signal-exit/badge.svg?branch=master)](https://coveralls.io/r/tapjs/signal-exit?branch=master) +[![NPM version](https://img.shields.io/npm/v/signal-exit.svg)](https://www.npmjs.com/package/signal-exit) +[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version) + +When you want to fire an event no matter how a process exits: + +* reaching the end of execution. +* explicitly having `process.exit(code)` called. +* having `process.kill(pid, sig)` called. +* receiving a fatal signal from outside the process + +Use `signal-exit`. + +```js +var onExit = require('signal-exit') + +onExit(function (code, signal) { + console.log('process exited!') +}) +``` + +## API + +`var remove = onExit(function (code, signal) {}, options)` + +The return value of the function is a function that will remove the +handler. + +Note that the function *only* fires for signals if the signal would +cause the proces to exit. That is, there are no other listeners, and +it is a fatal signal. + +## Options + +* `alwaysLast`: Run this handler after any other signal or exit + handlers. This causes `process.emit` to be monkeypatched. diff --git a/node_modules/signal-exit/index.js b/node_modules/signal-exit/index.js new file mode 100644 index 00000000..6b6c43ac --- /dev/null +++ b/node_modules/signal-exit/index.js @@ -0,0 +1,163 @@ +// Note: since nyc uses this module to output coverage, any lines +// that are in the direct sync flow of nyc's outputCoverage are +// ignored, since we can never get coverage for them. +var assert = require('assert') +var signals = require('./signals.js') +var isWin = /^win/i.test(process.platform) + +var EE = require('events') +/* istanbul ignore if */ +if (typeof EE !== 'function') { + EE = EE.EventEmitter +} + +var emitter +if (process.__signal_exit_emitter__) { + emitter = process.__signal_exit_emitter__ +} else { + emitter = process.__signal_exit_emitter__ = new EE() + emitter.count = 0 + emitter.emitted = {} +} + +// Because this emitter is a global, we have to check to see if a +// previous version of this library failed to enable infinite listeners. +// I know what you're about to say. But literally everything about +// signal-exit is a compromise with evil. Get used to it. +if (!emitter.infinite) { + emitter.setMaxListeners(Infinity) + emitter.infinite = true +} + +module.exports = function (cb, opts) { + assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler') + + if (loaded === false) { + load() + } + + var ev = 'exit' + if (opts && opts.alwaysLast) { + ev = 'afterexit' + } + + var remove = function () { + emitter.removeListener(ev, cb) + if (emitter.listeners('exit').length === 0 && + emitter.listeners('afterexit').length === 0) { + unload() + } + } + emitter.on(ev, cb) + + return remove +} + +module.exports.unload = unload +function unload () { + if (!loaded) { + return + } + loaded = false + + signals.forEach(function (sig) { + try { + process.removeListener(sig, sigListeners[sig]) + } catch (er) {} + }) + process.emit = originalProcessEmit + process.reallyExit = originalProcessReallyExit + emitter.count -= 1 +} + +function emit (event, code, signal) { + if (emitter.emitted[event]) { + return + } + emitter.emitted[event] = true + emitter.emit(event, code, signal) +} + +// { : , ... } +var sigListeners = {} +signals.forEach(function (sig) { + sigListeners[sig] = function listener () { + // If there are no other listeners, an exit is coming! + // Simplest way: remove us and then re-send the signal. + // We know that this will kill the process, so we can + // safely emit now. + var listeners = process.listeners(sig) + if (listeners.length === emitter.count) { + unload() + emit('exit', null, sig) + /* istanbul ignore next */ + emit('afterexit', null, sig) + /* istanbul ignore next */ + if (isWin && sig === 'SIGHUP') { + // "SIGHUP" throws an `ENOSYS` error on Windows, + // so use a supported signal instead + sig = 'SIGINT' + } + process.kill(process.pid, sig) + } + } +}) + +module.exports.signals = function () { + return signals +} + +module.exports.load = load + +var loaded = false + +function load () { + if (loaded) { + return + } + loaded = true + + // This is the number of onSignalExit's that are in play. + // It's important so that we can count the correct number of + // listeners on signals, and don't wait for the other one to + // handle it instead of us. + emitter.count += 1 + + signals = signals.filter(function (sig) { + try { + process.on(sig, sigListeners[sig]) + return true + } catch (er) { + return false + } + }) + + process.emit = processEmit + process.reallyExit = processReallyExit +} + +var originalProcessReallyExit = process.reallyExit +function processReallyExit (code) { + process.exitCode = code || 0 + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + /* istanbul ignore next */ + originalProcessReallyExit.call(process, process.exitCode) +} + +var originalProcessEmit = process.emit +function processEmit (ev, arg) { + if (ev === 'exit') { + if (arg !== undefined) { + process.exitCode = arg + } + var ret = originalProcessEmit.apply(this, arguments) + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + return ret + } else { + return originalProcessEmit.apply(this, arguments) + } +} diff --git a/node_modules/signal-exit/package.json b/node_modules/signal-exit/package.json new file mode 100644 index 00000000..bb3af9ff --- /dev/null +++ b/node_modules/signal-exit/package.json @@ -0,0 +1,66 @@ +{ + "_from": "signal-exit@^3.0.2", + "_id": "signal-exit@3.0.3", + "_inBundle": false, + "_integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "_location": "/signal-exit", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "signal-exit@^3.0.2", + "name": "signal-exit", + "escapedName": "signal-exit", + "rawSpec": "^3.0.2", + "saveSpec": null, + "fetchSpec": "^3.0.2" + }, + "_requiredBy": [ + "/write-file-atomic" + ], + "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "_shasum": "a1410c2edd8f077b08b4e253c8eacfcaf057461c", + "_spec": "signal-exit@^3.0.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\write-file-atomic", + "author": { + "name": "Ben Coe", + "email": "ben@npmjs.com" + }, + "bugs": { + "url": "https://github.com/tapjs/signal-exit/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "when you want to fire an event no matter how a process exits.", + "devDependencies": { + "chai": "^3.5.0", + "coveralls": "^2.11.10", + "nyc": "^8.1.0", + "standard": "^8.1.0", + "standard-version": "^2.3.0", + "tap": "^8.0.1" + }, + "files": [ + "index.js", + "signals.js" + ], + "homepage": "https://github.com/tapjs/signal-exit", + "keywords": [ + "signal", + "exit" + ], + "license": "ISC", + "main": "index.js", + "name": "signal-exit", + "repository": { + "type": "git", + "url": "git+https://github.com/tapjs/signal-exit.git" + }, + "scripts": { + "coverage": "nyc report --reporter=text-lcov | coveralls", + "pretest": "standard", + "release": "standard-version", + "test": "tap --timeout=240 ./test/*.js --cov" + }, + "version": "3.0.3" +} diff --git a/node_modules/signal-exit/signals.js b/node_modules/signal-exit/signals.js new file mode 100644 index 00000000..3bd67a8a --- /dev/null +++ b/node_modules/signal-exit/signals.js @@ -0,0 +1,53 @@ +// This is not the set of all possible signals. +// +// It IS, however, the set of all signals that trigger +// an exit on either Linux or BSD systems. Linux is a +// superset of the signal names supported on BSD, and +// the unknown signals just fail to register, so we can +// catch that easily enough. +// +// Don't bother with SIGKILL. It's uncatchable, which +// means that we can't fire any callbacks anyway. +// +// If a user does happen to register a handler on a non- +// fatal signal like SIGWINCH or something, and then +// exit, it'll end up firing `process.emit('exit')`, so +// the handler will be fired anyway. +// +// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised +// artificially, inherently leave the process in a +// state from which it is not safe to try and enter JS +// listeners. +module.exports = [ + 'SIGABRT', + 'SIGALRM', + 'SIGHUP', + 'SIGINT', + 'SIGTERM' +] + +if (process.platform !== 'win32') { + module.exports.push( + 'SIGVTALRM', + 'SIGXCPU', + 'SIGXFSZ', + 'SIGUSR2', + 'SIGTRAP', + 'SIGSYS', + 'SIGQUIT', + 'SIGIOT' + // should detect profiler and enable/disable accordingly. + // see #21 + // 'SIGPROF' + ) +} + +if (process.platform === 'linux') { + module.exports.push( + 'SIGIO', + 'SIGPOLL', + 'SIGPWR', + 'SIGSTKFLT', + 'SIGUNUSED' + ) +} diff --git a/node_modules/sliced/History.md b/node_modules/sliced/History.md new file mode 100644 index 00000000..e45cefe8 --- /dev/null +++ b/node_modules/sliced/History.md @@ -0,0 +1,41 @@ + +1.0.1 / 2015-07-14 +================== + + * fixed; missing file introduced in 4f5cea1 + +1.0.0 / 2015-07-12 +================== + + * Remove unnecessary files from npm package - #6 via joaquimserafim + * updated readme stats + +0.0.5 / 2013-02-05 +================== + + * optimization: remove use of arguments [jkroso](https://github.com/jkroso) + * add scripts to component.json [jkroso](https://github.com/jkroso) + * tests; remove time for travis + +0.0.4 / 2013-01-07 +================== + + * added component.json #1 [jkroso](https://github.com/jkroso) + * reversed array loop #1 [jkroso](https://github.com/jkroso) + * remove fn params + +0.0.3 / 2012-09-29 +================== + + * faster with negative start args + +0.0.2 / 2012-09-29 +================== + + * support full [].slice semantics + +0.0.1 / 2012-09-29 +=================== + + * initial release + diff --git a/node_modules/sliced/LICENSE b/node_modules/sliced/LICENSE new file mode 100644 index 00000000..38c529da --- /dev/null +++ b/node_modules/sliced/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2012 [Aaron Heckmann](aaron.heckmann+github@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/node_modules/sliced/README.md b/node_modules/sliced/README.md new file mode 100644 index 00000000..b6ff85eb --- /dev/null +++ b/node_modules/sliced/README.md @@ -0,0 +1,62 @@ +#sliced +========== + +A faster alternative to `[].slice.call(arguments)`. + +[![Build Status](https://secure.travis-ci.org/aheckmann/sliced.png)](http://travis-ci.org/aheckmann/sliced) + +Example output from [benchmark.js](https://github.com/bestiejs/benchmark.js) + + Array.prototype.slice.call x 1,401,820 ops/sec ±2.16% (90 runs sampled) + [].slice.call x 1,313,116 ops/sec ±2.04% (96 runs sampled) + cached slice.call x 10,297,910 ops/sec ±1.81% (96 runs sampled) + sliced x 19,906,019 ops/sec ±1.23% (89 runs sampled) + fastest is sliced + + Array.prototype.slice.call(arguments, 1) x 1,373,238 ops/sec ±1.84% (95 runs sampled) + [].slice.call(arguments, 1) x 1,395,336 ops/sec ±1.36% (93 runs sampled) + cached slice.call(arguments, 1) x 9,926,018 ops/sec ±1.67% (92 runs sampled) + sliced(arguments, 1) x 20,747,990 ops/sec ±1.16% (93 runs sampled) + fastest is sliced(arguments, 1) + + Array.prototype.slice.call(arguments, -1) x 1,319,908 ops/sec ±2.12% (91 runs sampled) + [].slice.call(arguments, -1) x 1,336,170 ops/sec ±1.33% (97 runs sampled) + cached slice.call(arguments, -1) x 10,078,718 ops/sec ±1.21% (98 runs sampled) + sliced(arguments, -1) x 20,471,474 ops/sec ±1.81% (92 runs sampled) + fastest is sliced(arguments, -1) + + Array.prototype.slice.call(arguments, -2, -10) x 1,369,246 ops/sec ±1.68% (97 runs sampled) + [].slice.call(arguments, -2, -10) x 1,387,935 ops/sec ±1.70% (95 runs sampled) + cached slice.call(arguments, -2, -10) x 9,593,428 ops/sec ±1.23% (97 runs sampled) + sliced(arguments, -2, -10) x 23,178,931 ops/sec ±1.70% (92 runs sampled) + fastest is sliced(arguments, -2, -10) + + Array.prototype.slice.call(arguments, -2, -1) x 1,441,300 ops/sec ±1.26% (98 runs sampled) + [].slice.call(arguments, -2, -1) x 1,410,326 ops/sec ±1.96% (93 runs sampled) + cached slice.call(arguments, -2, -1) x 9,854,419 ops/sec ±1.02% (97 runs sampled) + sliced(arguments, -2, -1) x 22,550,801 ops/sec ±1.86% (91 runs sampled) + fastest is sliced(arguments, -2, -1) + +_Benchmark [source](https://github.com/aheckmann/sliced/blob/master/bench.js)._ + +##Usage + +`sliced` accepts the same arguments as `Array#slice` so you can easily swap it out. + +```js +function zing () { + var slow = [].slice.call(arguments, 1, 8); + var args = slice(arguments, 1, 8); + + var slow = Array.prototype.slice.call(arguments); + var args = slice(arguments); + // etc +} +``` + +## install + + npm install sliced + + +[LICENSE](https://github.com/aheckmann/sliced/blob/master/LICENSE) diff --git a/node_modules/sliced/index.js b/node_modules/sliced/index.js new file mode 100644 index 00000000..d88c85b1 --- /dev/null +++ b/node_modules/sliced/index.js @@ -0,0 +1,33 @@ + +/** + * An Array.prototype.slice.call(arguments) alternative + * + * @param {Object} args something with a length + * @param {Number} slice + * @param {Number} sliceEnd + * @api public + */ + +module.exports = function (args, slice, sliceEnd) { + var ret = []; + var len = args.length; + + if (0 === len) return ret; + + var start = slice < 0 + ? Math.max(0, slice + len) + : slice || 0; + + if (sliceEnd !== undefined) { + len = sliceEnd < 0 + ? sliceEnd + len + : sliceEnd + } + + while (len-- > start) { + ret[len - start] = args[len]; + } + + return ret; +} + diff --git a/node_modules/sliced/package.json b/node_modules/sliced/package.json new file mode 100644 index 00000000..3a23a4bd --- /dev/null +++ b/node_modules/sliced/package.json @@ -0,0 +1,63 @@ +{ + "_from": "sliced@1.0.1", + "_id": "sliced@1.0.1", + "_inBundle": false, + "_integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", + "_location": "/sliced", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "sliced@1.0.1", + "name": "sliced", + "escapedName": "sliced", + "rawSpec": "1.0.1", + "saveSpec": null, + "fetchSpec": "1.0.1" + }, + "_requiredBy": [ + "/mongoose", + "/mquery" + ], + "_resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "_shasum": "0b3a662b5d04c3177b1926bea82b03f837a2ef41", + "_spec": "sliced@1.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\mongoose", + "author": { + "name": "Aaron Heckmann", + "email": "aaron.heckmann+github@gmail.com" + }, + "bugs": { + "url": "https://github.com/aheckmann/sliced/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "A faster Node.js alternative to Array.prototype.slice.call(arguments)", + "devDependencies": { + "benchmark": "~1.0.0", + "mocha": "1.5.0" + }, + "files": [ + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/aheckmann/sliced#readme", + "keywords": [ + "arguments", + "slice", + "array" + ], + "license": "MIT", + "main": "index.js", + "name": "sliced", + "repository": { + "type": "git", + "url": "git://github.com/aheckmann/sliced.git" + }, + "scripts": { + "test": "make test" + }, + "version": "1.0.1" +} diff --git a/node_modules/sparse-bitfield/.npmignore b/node_modules/sparse-bitfield/.npmignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/node_modules/sparse-bitfield/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/node_modules/sparse-bitfield/.travis.yml b/node_modules/sparse-bitfield/.travis.yml new file mode 100644 index 00000000..c0428217 --- /dev/null +++ b/node_modules/sparse-bitfield/.travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - '0.10' + - '0.12' + - '4.0' + - '5.0' diff --git a/node_modules/sparse-bitfield/LICENSE b/node_modules/sparse-bitfield/LICENSE new file mode 100644 index 00000000..bae9da7b --- /dev/null +++ b/node_modules/sparse-bitfield/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Mathias Buus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/sparse-bitfield/README.md b/node_modules/sparse-bitfield/README.md new file mode 100644 index 00000000..7b6b8f9e --- /dev/null +++ b/node_modules/sparse-bitfield/README.md @@ -0,0 +1,62 @@ +# sparse-bitfield + +Bitfield implementation that allocates a series of 1kb buffers to support sparse bitfields +without allocating a massive buffer. If you want to simple implementation of a flat bitfield +see the [bitfield](https://github.com/fb55/bitfield) module. + +This module is mostly useful if you need a big bitfield where you won't nessecarily set every bit. + +``` +npm install sparse-bitfield +``` + +[![build status](http://img.shields.io/travis/mafintosh/sparse-bitfield.svg?style=flat)](http://travis-ci.org/mafintosh/sparse-bitfield) + +## Usage + +``` js +var bitfield = require('sparse-bitfield') +var bits = bitfield() + +bits.set(0, true) // set first bit +bits.set(1, true) // set second bit +bits.set(1000000000000, true) // set the 1.000.000.000.000th bit +``` + +Running the above example will allocate two 1kb buffers internally. +Each 1kb buffer can hold information about 8192 bits so the first one will be used to store information about the first two bits and the second will be used to store the 1.000.000.000.000th bit. + +## API + +#### `var bits = bitfield([options])` + +Create a new bitfield. Options include + +``` js +{ + pageSize: 1024, // how big should the partial buffers be + buffer: anExistingBitfield, + trackUpdates: false // track when pages are being updated in the pager +} +``` + +#### `bits.set(index, value)` + +Set a bit to true or false. + +#### `bits.get(index)` + +Get the value of a bit. + +#### `bits.pages` + +A [memory-pager](https://github.com/mafintosh/memory-pager) instance that is managing the underlying memory. +If you set `trackUpdates` to true in the constructor you can use `.lastUpdate()` on this instance to get the last updated memory page. + +#### `var buffer = bits.toBuffer()` + +Get a single buffer representing the entire bitfield. + +## License + +MIT diff --git a/node_modules/sparse-bitfield/index.js b/node_modules/sparse-bitfield/index.js new file mode 100644 index 00000000..ff458c97 --- /dev/null +++ b/node_modules/sparse-bitfield/index.js @@ -0,0 +1,95 @@ +var pager = require('memory-pager') + +module.exports = Bitfield + +function Bitfield (opts) { + if (!(this instanceof Bitfield)) return new Bitfield(opts) + if (!opts) opts = {} + if (Buffer.isBuffer(opts)) opts = {buffer: opts} + + this.pageOffset = opts.pageOffset || 0 + this.pageSize = opts.pageSize || 1024 + this.pages = opts.pages || pager(this.pageSize) + + this.byteLength = this.pages.length * this.pageSize + this.length = 8 * this.byteLength + + if (!powerOfTwo(this.pageSize)) throw new Error('The page size should be a power of two') + + this._trackUpdates = !!opts.trackUpdates + this._pageMask = this.pageSize - 1 + + if (opts.buffer) { + for (var i = 0; i < opts.buffer.length; i += this.pageSize) { + this.pages.set(i / this.pageSize, opts.buffer.slice(i, i + this.pageSize)) + } + this.byteLength = opts.buffer.length + this.length = 8 * this.byteLength + } +} + +Bitfield.prototype.get = function (i) { + var o = i & 7 + var j = (i - o) / 8 + + return !!(this.getByte(j) & (128 >> o)) +} + +Bitfield.prototype.getByte = function (i) { + var o = i & this._pageMask + var j = (i - o) / this.pageSize + var page = this.pages.get(j, true) + + return page ? page.buffer[o + this.pageOffset] : 0 +} + +Bitfield.prototype.set = function (i, v) { + var o = i & 7 + var j = (i - o) / 8 + var b = this.getByte(j) + + return this.setByte(j, v ? b | (128 >> o) : b & (255 ^ (128 >> o))) +} + +Bitfield.prototype.toBuffer = function () { + var all = alloc(this.pages.length * this.pageSize) + + for (var i = 0; i < this.pages.length; i++) { + var next = this.pages.get(i, true) + var allOffset = i * this.pageSize + if (next) next.buffer.copy(all, allOffset, this.pageOffset, this.pageOffset + this.pageSize) + } + + return all +} + +Bitfield.prototype.setByte = function (i, b) { + var o = i & this._pageMask + var j = (i - o) / this.pageSize + var page = this.pages.get(j, false) + + o += this.pageOffset + + if (page.buffer[o] === b) return false + page.buffer[o] = b + + if (i >= this.byteLength) { + this.byteLength = i + 1 + this.length = this.byteLength * 8 + } + + if (this._trackUpdates) this.pages.updated(page) + + return true +} + +function alloc (n) { + if (Buffer.alloc) return Buffer.alloc(n) + var b = new Buffer(n) + b.fill(0) + return b +} + +function powerOfTwo (x) { + return !(x & (x - 1)) +} diff --git a/node_modules/sparse-bitfield/package.json b/node_modules/sparse-bitfield/package.json new file mode 100644 index 00000000..d5db91fe --- /dev/null +++ b/node_modules/sparse-bitfield/package.json @@ -0,0 +1,55 @@ +{ + "_from": "sparse-bitfield@^3.0.3", + "_id": "sparse-bitfield@3.0.3", + "_inBundle": false, + "_integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "_location": "/sparse-bitfield", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "sparse-bitfield@^3.0.3", + "name": "sparse-bitfield", + "escapedName": "sparse-bitfield", + "rawSpec": "^3.0.3", + "saveSpec": null, + "fetchSpec": "^3.0.3" + }, + "_requiredBy": [ + "/saslprep" + ], + "_resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "_shasum": "ff4ae6e68656056ba4b3e792ab3334d38273ca11", + "_spec": "sparse-bitfield@^3.0.3", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\saslprep", + "author": { + "name": "Mathias Buus", + "url": "@mafintosh" + }, + "bugs": { + "url": "https://github.com/mafintosh/sparse-bitfield/issues" + }, + "bundleDependencies": false, + "dependencies": { + "memory-pager": "^1.0.2" + }, + "deprecated": false, + "description": "Bitfield that allocates a series of small buffers to support sparse bits without allocating a massive buffer", + "devDependencies": { + "buffer-alloc": "^1.1.0", + "standard": "^9.0.0", + "tape": "^4.6.3" + }, + "homepage": "https://github.com/mafintosh/sparse-bitfield", + "license": "MIT", + "main": "index.js", + "name": "sparse-bitfield", + "repository": { + "type": "git", + "url": "git+https://github.com/mafintosh/sparse-bitfield.git" + }, + "scripts": { + "test": "standard && tape test.js" + }, + "version": "3.0.3" +} diff --git a/node_modules/sparse-bitfield/test.js b/node_modules/sparse-bitfield/test.js new file mode 100644 index 00000000..ae42ef46 --- /dev/null +++ b/node_modules/sparse-bitfield/test.js @@ -0,0 +1,79 @@ +var alloc = require('buffer-alloc') +var tape = require('tape') +var bitfield = require('./') + +tape('set and get', function (t) { + var bits = bitfield() + + t.same(bits.get(0), false, 'first bit is false') + bits.set(0, true) + t.same(bits.get(0), true, 'first bit is true') + t.same(bits.get(1), false, 'second bit is false') + bits.set(0, false) + t.same(bits.get(0), false, 'first bit is reset') + t.end() +}) + +tape('set large and get', function (t) { + var bits = bitfield() + + t.same(bits.get(9999999999999), false, 'large bit is false') + bits.set(9999999999999, true) + t.same(bits.get(9999999999999), true, 'large bit is true') + t.same(bits.get(9999999999999 + 1), false, 'large bit + 1 is false') + bits.set(9999999999999, false) + t.same(bits.get(9999999999999), false, 'large bit is reset') + t.end() +}) + +tape('get and set buffer', function (t) { + var bits = bitfield({trackUpdates: true}) + + t.same(bits.pages.get(0, true), undefined) + t.same(bits.pages.get(Math.floor(9999999999999 / 8 / 1024), true), undefined) + bits.set(9999999999999, true) + + var bits2 = bitfield() + var upd = bits.pages.lastUpdate() + bits2.pages.set(Math.floor(upd.offset / 1024), upd.buffer) + t.same(bits2.get(9999999999999), true, 'bit is set') + t.end() +}) + +tape('toBuffer', function (t) { + var bits = bitfield() + + t.same(bits.toBuffer(), alloc(0)) + + bits.set(0, true) + + t.same(bits.toBuffer(), bits.pages.get(0).buffer) + + bits.set(9000, true) + + t.same(bits.toBuffer(), Buffer.concat([bits.pages.get(0).buffer, bits.pages.get(1).buffer])) + t.end() +}) + +tape('pass in buffer', function (t) { + var bits = bitfield() + + bits.set(0, true) + bits.set(9000, true) + + var clone = bitfield(bits.toBuffer()) + + t.same(clone.get(0), true) + t.same(clone.get(9000), true) + t.end() +}) + +tape('set small buffer', function (t) { + var buf = alloc(1) + buf[0] = 255 + var bits = bitfield(buf) + + t.same(bits.get(0), true) + t.same(bits.pages.get(0).buffer.length, bits.pageSize) + t.end() +}) diff --git a/node_modules/spawn-command/.npmignore b/node_modules/spawn-command/.npmignore new file mode 100644 index 00000000..b7cb9651 --- /dev/null +++ b/node_modules/spawn-command/.npmignore @@ -0,0 +1,4 @@ +npm-debug.log +node_modules +.DS_Store +.*.sw[op] diff --git a/node_modules/spawn-command/.travis.yml b/node_modules/spawn-command/.travis.yml new file mode 100644 index 00000000..84fd7ca2 --- /dev/null +++ b/node_modules/spawn-command/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - 0.6 + - 0.8 + - 0.9 diff --git a/node_modules/spawn-command/LICENSE b/node_modules/spawn-command/LICENSE new file mode 100644 index 00000000..33f3be7f --- /dev/null +++ b/node_modules/spawn-command/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2011 by Maciej Małecki + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/spawn-command/README.md b/node_modules/spawn-command/README.md new file mode 100644 index 00000000..2e172bd9 --- /dev/null +++ b/node_modules/spawn-command/README.md @@ -0,0 +1,20 @@ +# spawn-command [![Build Status](https://secure.travis-ci.org/mmalecki/spawn-command.png)](http://travis-ci.org/mmalecki/spawn-command) +Spawn commands like `child_process.exec` does but return a `ChildProcess`. + +## Installation + + npm install spawn-command + +## Usage +```js +var spawnCommand = require('spawn-command'), + child = spawnCommand('echo "Hello spawn" | base64'); + +child.stdout.on('data', function (data) { + console.log('data', data); +}); + +child.on('exit', function (exitCode) { + console.log('exit', exitCode); +}); +``` diff --git a/node_modules/spawn-command/examples/simple.js b/node_modules/spawn-command/examples/simple.js new file mode 100644 index 00000000..96fab544 --- /dev/null +++ b/node_modules/spawn-command/examples/simple.js @@ -0,0 +1,11 @@ +var spawnCommand = require('../'), + command = (process.platform === 'win32') ? 'echo "Hello spawn"' : 'echo "Hello spawn" | base64', + child = spawnCommand(command); + +child.stdout.on('data', function (data) { + console.log('data', data.toString()); +}); + +child.on('exit', function (exitCode) { + console.log('exit', exitCode); +}); diff --git a/node_modules/spawn-command/lib/spawn-command.js b/node_modules/spawn-command/lib/spawn-command.js new file mode 100644 index 00000000..24d56ab4 --- /dev/null +++ b/node_modules/spawn-command/lib/spawn-command.js @@ -0,0 +1,17 @@ +var util = require('util'); +var spawn = require('child_process').spawn; + +module.exports = function (command, options) { + var file, args; + if (process.platform === 'win32') { + file = 'cmd.exe'; + args = ['/s', '/c', '"' + command + '"']; + options = util._extend({}, options); + options.windowsVerbatimArguments = true; + } + else { + file = '/bin/sh'; + args = ['-c', command]; + } + return spawn(file, args, options); +}; diff --git a/node_modules/spawn-command/package.json b/node_modules/spawn-command/package.json new file mode 100644 index 00000000..c6bcde01 --- /dev/null +++ b/node_modules/spawn-command/package.json @@ -0,0 +1,50 @@ +{ + "_from": "spawn-command@^0.0.2-1", + "_id": "spawn-command@0.0.2-1", + "_inBundle": false, + "_integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "_location": "/spawn-command", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "spawn-command@^0.0.2-1", + "name": "spawn-command", + "escapedName": "spawn-command", + "rawSpec": "^0.0.2-1", + "saveSpec": null, + "fetchSpec": "^0.0.2-1" + }, + "_requiredBy": [ + "/concurrently" + ], + "_resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "_shasum": "62f5e9466981c1b796dc5929937e11c9c6921bd0", + "_spec": "spawn-command@^0.0.2-1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\concurrently", + "author": { + "name": "Maciej Małecki", + "email": "me@mmalecki.com" + }, + "bugs": { + "url": "https://github.com/mmalecki/spawn-command/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Spawn commands like `child_process.exec` does but return a `ChildProcess`", + "devDependencies": { + "assert-called": "0.1.x" + }, + "homepage": "https://github.com/mmalecki/spawn-command#readme", + "license": "MIT", + "main": "./lib/spawn-command", + "name": "spawn-command", + "repository": { + "type": "git", + "url": "git+https://github.com/mmalecki/spawn-command.git" + }, + "scripts": { + "test": "node test/spawn-command-test.js" + }, + "version": "0.0.2-1" +} diff --git a/node_modules/spawn-command/test/fixtures/commit b/node_modules/spawn-command/test/fixtures/commit new file mode 100644 index 00000000..a149be14 --- /dev/null +++ b/node_modules/spawn-command/test/fixtures/commit @@ -0,0 +1,9 @@ +commit 26b11915b1c16440468a4b5f4b07d2409b98c68c +Author: Bert Belder +Date: Wed Jun 20 01:07:57 2012 +0200 + + test-domain: fix the test to work on Windows + + On Windows, full pathnames are stored in the Error object when + a file i/o error happens. This is not the case on Unix. Before + this fix the test would break because of these full paths. diff --git a/node_modules/spawn-command/test/spawn-command-test.js b/node_modules/spawn-command/test/spawn-command-test.js new file mode 100644 index 00000000..f74739ad --- /dev/null +++ b/node_modules/spawn-command/test/spawn-command-test.js @@ -0,0 +1,26 @@ +var path = require('path'), + assert = require('assert'), + assertCalled = require('assert-called'), + spawnCommand = require('../'); + +var win32 = (process.platform === 'win32'), + newln = win32 ? '\r\n' : '\n', + grep = win32 ? 'findstr' : 'grep', + child = spawnCommand(grep + ' commit < ' + path.join(__dirname, 'fixtures', 'commit')), + stderr = '', + stdout = '', + exited = false; + +child.stdout.on('data', function (chunk) { + stdout += chunk; +}); + +child.stderr.on('data', function (chunk) { + stderr += chunk; +}); + +child.on('exit', assertCalled(function (exitCode) { + assert.equal(exitCode, 0); + assert.equal(stdout, 'commit 26b11915b1c16440468a4b5f4b07d2409b98c68c' + newln); + assert.equal(stderr, ''); +})); diff --git a/node_modules/spdx-correct/LICENSE b/node_modules/spdx-correct/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/node_modules/spdx-correct/LICENSE @@ -0,0 +1,202 @@ + + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/node_modules/spdx-correct/README.md b/node_modules/spdx-correct/README.md new file mode 100644 index 00000000..ab388cf9 --- /dev/null +++ b/node_modules/spdx-correct/README.md @@ -0,0 +1,14 @@ +```javascript +var correct = require('spdx-correct') +var assert = require('assert') + +assert.equal(correct('mit'), 'MIT') + +assert.equal(correct('Apache 2'), 'Apache-2.0') + +assert(correct('No idea what license') === null) + +// disable upgrade option +assert(correct('GPL-3.0'), 'GPL-3.0-or-later') +assert(correct('GPL-3.0', { upgrade: false }), 'GPL-3.0') +``` diff --git a/node_modules/spdx-correct/index.js b/node_modules/spdx-correct/index.js new file mode 100644 index 00000000..c51a79f5 --- /dev/null +++ b/node_modules/spdx-correct/index.js @@ -0,0 +1,364 @@ +/* +Copyright spdx-correct.js contributors + +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. +*/ +var parse = require('spdx-expression-parse') +var spdxLicenseIds = require('spdx-license-ids') + +function valid (string) { + try { + parse(string) + return true + } catch (error) { + return false + } +} + +// Common transpositions of license identifier acronyms +var transpositions = [ + ['APGL', 'AGPL'], + ['Gpl', 'GPL'], + ['GLP', 'GPL'], + ['APL', 'Apache'], + ['ISD', 'ISC'], + ['GLP', 'GPL'], + ['IST', 'ISC'], + ['Claude', 'Clause'], + [' or later', '+'], + [' International', ''], + ['GNU', 'GPL'], + ['GUN', 'GPL'], + ['+', ''], + ['GNU GPL', 'GPL'], + ['GNU/GPL', 'GPL'], + ['GNU GLP', 'GPL'], + ['GNU General Public License', 'GPL'], + ['Gnu public license', 'GPL'], + ['GNU Public License', 'GPL'], + ['GNU GENERAL PUBLIC LICENSE', 'GPL'], + ['MTI', 'MIT'], + ['Mozilla Public License', 'MPL'], + ['Universal Permissive License', 'UPL'], + ['WTH', 'WTF'], + ['-License', ''] +] + +var TRANSPOSED = 0 +var CORRECT = 1 + +// Simple corrections to nearly valid identifiers. +var transforms = [ + // e.g. 'mit' + function (argument) { + return argument.toUpperCase() + }, + // e.g. 'MIT ' + function (argument) { + return argument.trim() + }, + // e.g. 'M.I.T.' + function (argument) { + return argument.replace(/\./g, '') + }, + // e.g. 'Apache- 2.0' + function (argument) { + return argument.replace(/\s+/g, '') + }, + // e.g. 'CC BY 4.0'' + function (argument) { + return argument.replace(/\s+/g, '-') + }, + // e.g. 'LGPLv2.1' + function (argument) { + return argument.replace('v', '-') + }, + // e.g. 'Apache 2.0' + function (argument) { + return argument.replace(/,?\s*(\d)/, '-$1') + }, + // e.g. 'GPL 2' + function (argument) { + return argument.replace(/,?\s*(\d)/, '-$1.0') + }, + // e.g. 'Apache Version 2.0' + function (argument) { + return argument + .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2') + }, + // e.g. 'Apache Version 2' + function (argument) { + return argument + .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0') + }, + // e.g. 'ZLIB' + function (argument) { + return argument[0].toUpperCase() + argument.slice(1) + }, + // e.g. 'MPL/2.0' + function (argument) { + return argument.replace('/', '-') + }, + // e.g. 'Apache 2' + function (argument) { + return argument + .replace(/\s*V\s*(\d)/, '-$1') + .replace(/(\d)$/, '$1.0') + }, + // e.g. 'GPL-2.0', 'GPL-3.0' + function (argument) { + if (argument.indexOf('3.0') !== -1) { + return argument + '-or-later' + } else { + return argument + '-only' + } + }, + // e.g. 'GPL-2.0-' + function (argument) { + return argument + 'only' + }, + // e.g. 'GPL2' + function (argument) { + return argument.replace(/(\d)$/, '-$1.0') + }, + // e.g. 'BSD 3' + function (argument) { + return argument.replace(/(-| )?(\d)$/, '-$2-Clause') + }, + // e.g. 'BSD clause 3' + function (argument) { + return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause') + }, + // e.g. 'New BSD license' + function (argument) { + return argument.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i, 'BSD-3-Clause') + }, + // e.g. 'Simplified BSD license' + function (argument) { + return argument.replace(/\bSimplified(-| )?BSD((-| )License)?/i, 'BSD-2-Clause') + }, + // e.g. 'Free BSD license' + function (argument) { + return argument.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i, 'BSD-2-Clause-$1BSD') + }, + // e.g. 'Clear BSD license' + function (argument) { + return argument.replace(/\bClear(-| )?BSD((-| )License)?/i, 'BSD-3-Clause-Clear') + }, + // e.g. 'Old BSD License' + function (argument) { + return argument.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i, 'BSD-4-Clause') + }, + // e.g. 'BY-NC-4.0' + function (argument) { + return 'CC-' + argument + }, + // e.g. 'BY-NC' + function (argument) { + return 'CC-' + argument + '-4.0' + }, + // e.g. 'Attribution-NonCommercial' + function (argument) { + return argument + .replace('Attribution', 'BY') + .replace('NonCommercial', 'NC') + .replace('NoDerivatives', 'ND') + .replace(/ (\d)/, '-$1') + .replace(/ ?International/, '') + }, + // e.g. 'Attribution-NonCommercial' + function (argument) { + return 'CC-' + + argument + .replace('Attribution', 'BY') + .replace('NonCommercial', 'NC') + .replace('NoDerivatives', 'ND') + .replace(/ (\d)/, '-$1') + .replace(/ ?International/, '') + + '-4.0' + } +] + +var licensesWithVersions = spdxLicenseIds + .map(function (id) { + var match = /^(.*)-\d+\.\d+$/.exec(id) + return match + ? [match[0], match[1]] + : [id, null] + }) + .reduce(function (objectMap, item) { + var key = item[1] + objectMap[key] = objectMap[key] || [] + objectMap[key].push(item[0]) + return objectMap + }, {}) + +var licensesWithOneVersion = Object.keys(licensesWithVersions) + .map(function makeEntries (key) { + return [key, licensesWithVersions[key]] + }) + .filter(function identifySoleVersions (item) { + return ( + // Licenses has just one valid version suffix. + item[1].length === 1 && + item[0] !== null && + // APL will be considered Apache, rather than APL-1.0 + item[0] !== 'APL' + ) + }) + .map(function createLastResorts (item) { + return [item[0], item[1][0]] + }) + +licensesWithVersions = undefined + +// If all else fails, guess that strings containing certain substrings +// meant to identify certain licenses. +var lastResorts = [ + ['UNLI', 'Unlicense'], + ['WTF', 'WTFPL'], + ['2 CLAUSE', 'BSD-2-Clause'], + ['2-CLAUSE', 'BSD-2-Clause'], + ['3 CLAUSE', 'BSD-3-Clause'], + ['3-CLAUSE', 'BSD-3-Clause'], + ['AFFERO', 'AGPL-3.0-or-later'], + ['AGPL', 'AGPL-3.0-or-later'], + ['APACHE', 'Apache-2.0'], + ['ARTISTIC', 'Artistic-2.0'], + ['Affero', 'AGPL-3.0-or-later'], + ['BEER', 'Beerware'], + ['BOOST', 'BSL-1.0'], + ['BSD', 'BSD-2-Clause'], + ['CDDL', 'CDDL-1.1'], + ['ECLIPSE', 'EPL-1.0'], + ['FUCK', 'WTFPL'], + ['GNU', 'GPL-3.0-or-later'], + ['LGPL', 'LGPL-3.0-or-later'], + ['GPLV1', 'GPL-1.0-only'], + ['GPL-1', 'GPL-1.0-only'], + ['GPLV2', 'GPL-2.0-only'], + ['GPL-2', 'GPL-2.0-only'], + ['GPL', 'GPL-3.0-or-later'], + ['MIT +NO-FALSE-ATTRIBS', 'MITNFA'], + ['MIT', 'MIT'], + ['MPL', 'MPL-2.0'], + ['X11', 'X11'], + ['ZLIB', 'Zlib'] +].concat(licensesWithOneVersion) + +var SUBSTRING = 0 +var IDENTIFIER = 1 + +var validTransformation = function (identifier) { + for (var i = 0; i < transforms.length; i++) { + var transformed = transforms[i](identifier).trim() + if (transformed !== identifier && valid(transformed)) { + return transformed + } + } + return null +} + +var validLastResort = function (identifier) { + var upperCased = identifier.toUpperCase() + for (var i = 0; i < lastResorts.length; i++) { + var lastResort = lastResorts[i] + if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) { + return lastResort[IDENTIFIER] + } + } + return null +} + +var anyCorrection = function (identifier, check) { + for (var i = 0; i < transpositions.length; i++) { + var transposition = transpositions[i] + var transposed = transposition[TRANSPOSED] + if (identifier.indexOf(transposed) > -1) { + var corrected = identifier.replace( + transposed, + transposition[CORRECT] + ) + var checked = check(corrected) + if (checked !== null) { + return checked + } + } + } + return null +} + +module.exports = function (identifier, options) { + options = options || {} + var upgrade = options.upgrade === undefined ? true : !!options.upgrade + function postprocess (value) { + return upgrade ? upgradeGPLs(value) : value + } + var validArugment = ( + typeof identifier === 'string' && + identifier.trim().length !== 0 + ) + if (!validArugment) { + throw Error('Invalid argument. Expected non-empty string.') + } + identifier = identifier.trim() + if (valid(identifier)) { + return postprocess(identifier) + } + var noPlus = identifier.replace(/\+$/, '').trim() + if (valid(noPlus)) { + return postprocess(noPlus) + } + var transformed = validTransformation(identifier) + if (transformed !== null) { + return postprocess(transformed) + } + transformed = anyCorrection(identifier, function (argument) { + if (valid(argument)) { + return argument + } + return validTransformation(argument) + }) + if (transformed !== null) { + return postprocess(transformed) + } + transformed = validLastResort(identifier) + if (transformed !== null) { + return postprocess(transformed) + } + transformed = anyCorrection(identifier, validLastResort) + if (transformed !== null) { + return postprocess(transformed) + } + return null +} + +function upgradeGPLs (value) { + if ([ + 'GPL-1.0', 'LGPL-1.0', 'AGPL-1.0', + 'GPL-2.0', 'LGPL-2.0', 'AGPL-2.0', + 'LGPL-2.1' + ].indexOf(value) !== -1) { + return value + '-only' + } else if ([ + 'GPL-1.0+', 'GPL-2.0+', 'GPL-3.0+', + 'LGPL-2.0+', 'LGPL-2.1+', 'LGPL-3.0+', + 'AGPL-1.0+', 'AGPL-3.0+' + ].indexOf(value) !== -1) { + return value.replace(/\+$/, '-or-later') + } else if (['GPL-3.0', 'LGPL-3.0', 'AGPL-3.0'].indexOf(value) !== -1) { + return value + '-or-later' + } else { + return value + } +} diff --git a/node_modules/spdx-correct/package.json b/node_modules/spdx-correct/package.json new file mode 100644 index 00000000..dcc40d8f --- /dev/null +++ b/node_modules/spdx-correct/package.json @@ -0,0 +1,88 @@ +{ + "_from": "spdx-correct@^3.0.0", + "_id": "spdx-correct@3.1.1", + "_inBundle": false, + "_integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "_location": "/spdx-correct", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "spdx-correct@^3.0.0", + "name": "spdx-correct", + "escapedName": "spdx-correct", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/validate-npm-package-license" + ], + "_resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "_shasum": "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9", + "_spec": "spdx-correct@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\validate-npm-package-license", + "author": { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + "bugs": { + "url": "https://github.com/jslicense/spdx-correct.js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + { + "name": "Christian Zommerfelds", + "email": "aero_super@yahoo.com" + }, + { + "name": "Tal Einat", + "email": "taleinat@gmail.com" + }, + { + "name": "Dan Butvinik", + "email": "butvinik@outlook.com" + } + ], + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + }, + "deprecated": false, + "description": "correct invalid SPDX expressions", + "devDependencies": { + "defence-cli": "^2.0.1", + "replace-require-self": "^1.0.0", + "standard": "^11.0.0", + "standard-markdown": "^4.0.2", + "tape": "^4.9.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/jslicense/spdx-correct.js#readme", + "keywords": [ + "SPDX", + "law", + "legal", + "license", + "metadata" + ], + "license": "Apache-2.0", + "name": "spdx-correct", + "repository": { + "type": "git", + "url": "git+https://github.com/jslicense/spdx-correct.js.git" + }, + "scripts": { + "lint": "standard && standard-markdown README.md", + "test": "defence README.md | replace-require-self | node && node test.js" + }, + "version": "3.1.1" +} diff --git a/node_modules/spdx-exceptions/README.md b/node_modules/spdx-exceptions/README.md new file mode 100644 index 00000000..6c927ecc --- /dev/null +++ b/node_modules/spdx-exceptions/README.md @@ -0,0 +1,36 @@ +The package exports an array of strings. Each string is an identifier +for a license exception under the [Software Package Data Exchange +(SPDX)][SPDX] software license metadata standard. + +[SPDX]: https://spdx.org + +## Copyright and Licensing + +### SPDX + +"SPDX" is a federally registered United States trademark of The Linux +Foundation Corporation. + +From version 2.0 of the [SPDX] specification: + +> Copyright © 2010-2015 Linux Foundation and its Contributors. Licensed +> under the Creative Commons Attribution License 3.0 Unported. All other +> rights are expressly reserved. + +The Linux Foundation and the SPDX working groups are good people. Only +they decide what "SPDX" means, as a standard and otherwise. I respect +their work and their rights. You should, too. + +### This Package + +> I created this package by copying exception identifiers out of the +> SPDX specification. That work was mechanical, routine, and required no +> creativity whatsoever. - Kyle Mitchell, package author + +United States users concerned about intellectual property may wish to +discuss the following Supreme Court decisions with their attorneys: + +- _Baker v. Selden_, 101 U.S. 99 (1879) + +- _Feist Publications, Inc., v. Rural Telephone Service Co._, + 499 U.S. 340 (1991) diff --git a/node_modules/spdx-exceptions/index.json b/node_modules/spdx-exceptions/index.json new file mode 100644 index 00000000..f88f088a --- /dev/null +++ b/node_modules/spdx-exceptions/index.json @@ -0,0 +1,40 @@ +[ + "389-exception", + "Autoconf-exception-2.0", + "Autoconf-exception-3.0", + "Bison-exception-2.2", + "Bootloader-exception", + "Classpath-exception-2.0", + "CLISP-exception-2.0", + "DigiRule-FOSS-exception", + "eCos-exception-2.0", + "Fawkes-Runtime-exception", + "FLTK-exception", + "Font-exception-2.0", + "freertos-exception-2.0", + "GCC-exception-2.0", + "GCC-exception-3.1", + "gnu-javamail-exception", + "GPL-3.0-linking-exception", + "GPL-3.0-linking-source-exception", + "GPL-CC-1.0", + "i2p-gpl-java-exception", + "Libtool-exception", + "Linux-syscall-note", + "LLVM-exception", + "LZMA-exception", + "mif-exception", + "Nokia-Qt-exception-1.1", + "OCaml-LGPL-linking-exception", + "OCCT-exception-1.0", + "OpenJDK-assembly-exception-1.0", + "openvpn-openssl-exception", + "PS-or-PDF-font-exception-20170817", + "Qt-GPL-exception-1.0", + "Qt-LGPL-exception-1.1", + "Qwt-exception-1.0", + "Swift-exception", + "u-boot-exception-2.0", + "Universal-FOSS-exception-1.0", + "WxWindows-exception-3.1" +] diff --git a/node_modules/spdx-exceptions/package.json b/node_modules/spdx-exceptions/package.json new file mode 100644 index 00000000..72fc7997 --- /dev/null +++ b/node_modules/spdx-exceptions/package.json @@ -0,0 +1,55 @@ +{ + "_from": "spdx-exceptions@^2.1.0", + "_id": "spdx-exceptions@2.3.0", + "_inBundle": false, + "_integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "_location": "/spdx-exceptions", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "spdx-exceptions@^2.1.0", + "name": "spdx-exceptions", + "escapedName": "spdx-exceptions", + "rawSpec": "^2.1.0", + "saveSpec": null, + "fetchSpec": "^2.1.0" + }, + "_requiredBy": [ + "/spdx-expression-parse" + ], + "_resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "_shasum": "3f28ce1a77a00372683eade4a433183527a2163d", + "_spec": "spdx-exceptions@^2.1.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\spdx-expression-parse", + "author": { + "name": "The Linux Foundation" + }, + "bugs": { + "url": "https://github.com/kemitchell/spdx-exceptions.json/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com/" + } + ], + "deprecated": false, + "description": "list of SPDX standard license exceptions", + "files": [ + "index.json" + ], + "homepage": "https://github.com/kemitchell/spdx-exceptions.json#readme", + "license": "CC-BY-3.0", + "name": "spdx-exceptions", + "repository": { + "type": "git", + "url": "git+https://github.com/kemitchell/spdx-exceptions.json.git" + }, + "scripts": { + "build": "node build.js" + }, + "version": "2.3.0" +} diff --git a/node_modules/spdx-expression-parse/AUTHORS b/node_modules/spdx-expression-parse/AUTHORS new file mode 100644 index 00000000..257a76b9 --- /dev/null +++ b/node_modules/spdx-expression-parse/AUTHORS @@ -0,0 +1,4 @@ +C. Scott Ananian (http://cscott.net) +Kyle E. Mitchell (https://kemitchell.com) +Shinnosuke Watanabe +Antoine Motet diff --git a/node_modules/spdx-expression-parse/LICENSE b/node_modules/spdx-expression-parse/LICENSE new file mode 100644 index 00000000..831618ea --- /dev/null +++ b/node_modules/spdx-expression-parse/LICENSE @@ -0,0 +1,22 @@ +The MIT License + +Copyright (c) 2015 Kyle E. Mitchell & other authors listed in AUTHORS + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/spdx-expression-parse/README.md b/node_modules/spdx-expression-parse/README.md new file mode 100644 index 00000000..9406462e --- /dev/null +++ b/node_modules/spdx-expression-parse/README.md @@ -0,0 +1,91 @@ +This package parses [SPDX license expression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60) strings describing license terms, like [package.json license strings](https://docs.npmjs.com/files/package.json#license), into consistently structured ECMAScript objects. The npm command-line interface depends on this package, as do many automatic license-audit tools. + +In a nutshell: + +```javascript +var parse = require('spdx-expression-parse') +var assert = require('assert') + +assert.deepEqual( + // Licensed under the terms of the Two-Clause BSD License. + parse('BSD-2-Clause'), + {license: 'BSD-2-Clause'} +) + +assert.throws(function () { + // An invalid SPDX license expression. + // Should be `Apache-2.0`. + parse('Apache 2') +}) + +assert.deepEqual( + // Dual licensed under either: + // - LGPL 2.1 + // - a combination of Three-Clause BSD and MIT + parse('(LGPL-2.1 OR BSD-3-Clause AND MIT)'), + { + left: {license: 'LGPL-2.1'}, + conjunction: 'or', + right: { + left: {license: 'BSD-3-Clause'}, + conjunction: 'and', + right: {license: 'MIT'} + } + } +) +``` + +The syntax comes from the [Software Package Data eXchange (SPDX)](https://spdx.org/), a standard from the [Linux Foundation](https://www.linuxfoundation.org) for shareable data about software package license terms. SPDX aims to make sharing and auditing license data easy, especially for users of open-source software. + +The bulk of the SPDX standard describes syntax and semantics of XML metadata files. This package implements two lightweight, plain-text components of that larger standard: + +1. The [license list](https://spdx.org/licenses), a mapping from specific string identifiers, like `Apache-2.0`, to standard form license texts and bolt-on license exceptions. The [spdx-license-ids](https://www.npmjs.com/package/spdx-license-ids) and [spdx-exceptions](https://www.npmjs.com/package/spdx-exceptions) packages implement the license list. `spdx-expression-parse` depends on and `require()`s them. + + Any license identifier from the license list is a valid license expression: + + ```javascript + var identifiers = [] + .concat(require('spdx-license-ids')) + .concat(require('spdx-license-ids/deprecated')) + + identifiers.forEach(function (id) { + assert.deepEqual(parse(id), {license: id}) + }) + ``` + + So is any license identifier `WITH` a standardized license exception: + + ```javascript + identifiers.forEach(function (id) { + require('spdx-exceptions').forEach(function (e) { + assert.deepEqual( + parse(id + ' WITH ' + e), + {license: id, exception: e} + ) + }) + }) + ``` + +2. The license expression language, for describing simple and complex license terms, like `MIT` for MIT-licensed and `(GPL-2.0 OR Apache-2.0)` for dual-licensing under GPL 2.0 and Apache 2.0. `spdx-expression-parse` itself implements license expression language, exporting a parser. + + ```javascript + assert.deepEqual( + // Licensed under a combination of: + // - the MIT License AND + // - a combination of: + // - LGPL 2.1 (or a later version) AND + // - Three-Clause BSD + parse('(MIT AND (LGPL-2.1+ AND BSD-3-Clause))'), + { + left: {license: 'MIT'}, + conjunction: 'and', + right: { + left: {license: 'LGPL-2.1', plus: true}, + conjunction: 'and', + right: {license: 'BSD-3-Clause'} + } + } + ) + ``` + +The Linux Foundation and its contributors license the SPDX standard under the terms of [the Creative Commons Attribution License 3.0 Unported (SPDX: "CC-BY-3.0")](http://spdx.org/licenses/CC-BY-3.0). "SPDX" is a United States federally registered trademark of the Linux Foundation. The authors of this package license their work under the terms of the MIT License. diff --git a/node_modules/spdx-expression-parse/index.js b/node_modules/spdx-expression-parse/index.js new file mode 100644 index 00000000..52fab560 --- /dev/null +++ b/node_modules/spdx-expression-parse/index.js @@ -0,0 +1,8 @@ +'use strict' + +var scan = require('./scan') +var parse = require('./parse') + +module.exports = function (source) { + return parse(scan(source)) +} diff --git a/node_modules/spdx-expression-parse/package.json b/node_modules/spdx-expression-parse/package.json new file mode 100644 index 00000000..f4d14cf0 --- /dev/null +++ b/node_modules/spdx-expression-parse/package.json @@ -0,0 +1,96 @@ +{ + "_from": "spdx-expression-parse@^3.0.0", + "_id": "spdx-expression-parse@3.0.1", + "_inBundle": false, + "_integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "_location": "/spdx-expression-parse", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "spdx-expression-parse@^3.0.0", + "name": "spdx-expression-parse", + "escapedName": "spdx-expression-parse", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/spdx-correct", + "/validate-npm-package-license" + ], + "_resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "_shasum": "cf70f50482eefdc98e3ce0a6833e4a53ceeba679", + "_spec": "spdx-expression-parse@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\validate-npm-package-license", + "author": { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + "bugs": { + "url": "https://github.com/jslicense/spdx-expression-parse.js/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "C. Scott Ananian", + "email": "cscott@cscott.net", + "url": "http://cscott.net" + }, + { + "name": "Kyle E. Mitchell", + "email": "kyle@kemitchell.com", + "url": "https://kemitchell.com" + }, + { + "name": "Shinnosuke Watanabe", + "email": "snnskwtnb@gmail.com" + }, + { + "name": "Antoine Motet", + "email": "antoine.motet@gmail.com" + } + ], + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + }, + "deprecated": false, + "description": "parse SPDX license expressions", + "devDependencies": { + "defence-cli": "^3.0.1", + "replace-require-self": "^1.0.0", + "standard": "^14.1.0" + }, + "files": [ + "AUTHORS", + "index.js", + "parse.js", + "scan.js" + ], + "homepage": "https://github.com/jslicense/spdx-expression-parse.js#readme", + "keywords": [ + "SPDX", + "law", + "legal", + "license", + "metadata", + "package", + "package.json", + "standards" + ], + "license": "MIT", + "name": "spdx-expression-parse", + "repository": { + "type": "git", + "url": "git+https://github.com/jslicense/spdx-expression-parse.js.git" + }, + "scripts": { + "lint": "standard", + "test": "npm run test:suite && npm run test:readme", + "test:readme": "defence -i javascript README.md | replace-require-self | node", + "test:suite": "node test.js" + }, + "version": "3.0.1" +} diff --git a/node_modules/spdx-expression-parse/parse.js b/node_modules/spdx-expression-parse/parse.js new file mode 100644 index 00000000..5a00b45c --- /dev/null +++ b/node_modules/spdx-expression-parse/parse.js @@ -0,0 +1,138 @@ +'use strict' + +// The ABNF grammar in the spec is totally ambiguous. +// +// This parser follows the operator precedence defined in the +// `Order of Precedence and Parentheses` section. + +module.exports = function (tokens) { + var index = 0 + + function hasMore () { + return index < tokens.length + } + + function token () { + return hasMore() ? tokens[index] : null + } + + function next () { + if (!hasMore()) { + throw new Error() + } + index++ + } + + function parseOperator (operator) { + var t = token() + if (t && t.type === 'OPERATOR' && operator === t.string) { + next() + return t.string + } + } + + function parseWith () { + if (parseOperator('WITH')) { + var t = token() + if (t && t.type === 'EXCEPTION') { + next() + return t.string + } + throw new Error('Expected exception after `WITH`') + } + } + + function parseLicenseRef () { + // TODO: Actually, everything is concatenated into one string + // for backward-compatibility but it could be better to return + // a nice structure. + var begin = index + var string = '' + var t = token() + if (t.type === 'DOCUMENTREF') { + next() + string += 'DocumentRef-' + t.string + ':' + if (!parseOperator(':')) { + throw new Error('Expected `:` after `DocumentRef-...`') + } + } + t = token() + if (t.type === 'LICENSEREF') { + next() + string += 'LicenseRef-' + t.string + return { license: string } + } + index = begin + } + + function parseLicense () { + var t = token() + if (t && t.type === 'LICENSE') { + next() + var node = { license: t.string } + if (parseOperator('+')) { + node.plus = true + } + var exception = parseWith() + if (exception) { + node.exception = exception + } + return node + } + } + + function parseParenthesizedExpression () { + var left = parseOperator('(') + if (!left) { + return + } + + var expr = parseExpression() + + if (!parseOperator(')')) { + throw new Error('Expected `)`') + } + + return expr + } + + function parseAtom () { + return ( + parseParenthesizedExpression() || + parseLicenseRef() || + parseLicense() + ) + } + + function makeBinaryOpParser (operator, nextParser) { + return function parseBinaryOp () { + var left = nextParser() + if (!left) { + return + } + + if (!parseOperator(operator)) { + return left + } + + var right = parseBinaryOp() + if (!right) { + throw new Error('Expected expression') + } + return { + left: left, + conjunction: operator.toLowerCase(), + right: right + } + } + } + + var parseAnd = makeBinaryOpParser('AND', parseAtom) + var parseExpression = makeBinaryOpParser('OR', parseAnd) + + var node = parseExpression() + if (!node || hasMore()) { + throw new Error('Syntax error') + } + return node +} diff --git a/node_modules/spdx-expression-parse/scan.js b/node_modules/spdx-expression-parse/scan.js new file mode 100644 index 00000000..b74fce2e --- /dev/null +++ b/node_modules/spdx-expression-parse/scan.js @@ -0,0 +1,131 @@ +'use strict' + +var licenses = [] + .concat(require('spdx-license-ids')) + .concat(require('spdx-license-ids/deprecated')) +var exceptions = require('spdx-exceptions') + +module.exports = function (source) { + var index = 0 + + function hasMore () { + return index < source.length + } + + // `value` can be a regexp or a string. + // If it is recognized, the matching source string is returned and + // the index is incremented. Otherwise `undefined` is returned. + function read (value) { + if (value instanceof RegExp) { + var chars = source.slice(index) + var match = chars.match(value) + if (match) { + index += match[0].length + return match[0] + } + } else { + if (source.indexOf(value, index) === index) { + index += value.length + return value + } + } + } + + function skipWhitespace () { + read(/[ ]*/) + } + + function operator () { + var string + var possibilities = ['WITH', 'AND', 'OR', '(', ')', ':', '+'] + for (var i = 0; i < possibilities.length; i++) { + string = read(possibilities[i]) + if (string) { + break + } + } + + if (string === '+' && index > 1 && source[index - 2] === ' ') { + throw new Error('Space before `+`') + } + + return string && { + type: 'OPERATOR', + string: string + } + } + + function idstring () { + return read(/[A-Za-z0-9-.]+/) + } + + function expectIdstring () { + var string = idstring() + if (!string) { + throw new Error('Expected idstring at offset ' + index) + } + return string + } + + function documentRef () { + if (read('DocumentRef-')) { + var string = expectIdstring() + return { type: 'DOCUMENTREF', string: string } + } + } + + function licenseRef () { + if (read('LicenseRef-')) { + var string = expectIdstring() + return { type: 'LICENSEREF', string: string } + } + } + + function identifier () { + var begin = index + var string = idstring() + + if (licenses.indexOf(string) !== -1) { + return { + type: 'LICENSE', + string: string + } + } else if (exceptions.indexOf(string) !== -1) { + return { + type: 'EXCEPTION', + string: string + } + } + + index = begin + } + + // Tries to read the next token. Returns `undefined` if no token is + // recognized. + function parseToken () { + // Ordering matters + return ( + operator() || + documentRef() || + licenseRef() || + identifier() + ) + } + + var tokens = [] + while (hasMore()) { + skipWhitespace() + if (!hasMore()) { + break + } + + var token = parseToken() + if (!token) { + throw new Error('Unexpected `' + source[index] + + '` at offset ' + index) + } + + tokens.push(token) + } + return tokens +} diff --git a/node_modules/spdx-license-ids/README.md b/node_modules/spdx-license-ids/README.md new file mode 100644 index 00000000..699514d1 --- /dev/null +++ b/node_modules/spdx-license-ids/README.md @@ -0,0 +1,52 @@ +# spdx-license-ids + +[![npm version](https://img.shields.io/npm/v/spdx-license-ids.svg)](https://www.npmjs.com/package/spdx-license-ids) +[![Github Actions](https://action-badges.now.sh/shinnn/spdx-license-ids)](https://wdp9fww0r9.execute-api.us-west-2.amazonaws.com/production/results/shinnn/spdx-license-ids) + +A list of [SPDX license](https://spdx.org/licenses/) identifiers + +## Installation + +[Download JSON directly](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/index.json), or [use](https://docs.npmjs.com/cli/install) [npm](https://docs.npmjs.com/about-npm/): + +``` +npm install spdx-license-ids +``` + +## [Node.js](https://nodejs.org/) API + +### require('spdx-license-ids') + +Type: `string[]` + +All license IDs except for the currently deprecated ones. + +```javascript +const ids = require('spdx-license-ids'); +//=> ['0BSD', 'AAL', 'ADSL', 'AFL-1.1', 'AFL-1.2', 'AFL-2.0', 'AFL-2.1', 'AFL-3.0', 'AGPL-1.0-only', ...] + +ids.includes('BSD-3-Clause'); //=> true +ids.includes('CC-BY-1.0'); //=> true + +ids.includes('GPL-3.0'); //=> false +``` + +### require('spdx-license-ids/deprecated') + +Type: `string[]` + +Deprecated license IDs. + +```javascript +const deprecatedIds = require('spdx-license-ids/deprecated'); +//=> ['AGPL-1.0', 'AGPL-3.0', 'GFDL-1.1', 'GFDL-1.2', 'GFDL-1.3', 'GPL-1.0', 'GPL-2.0', ...] + +deprecatedIds.includes('BSD-3-Clause'); //=> false +deprecatedIds.includes('CC-BY-1.0'); //=> false + +deprecatedIds.includes('GPL-3.0'); //=> true +``` + +## License + +[Creative Commons Zero v1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/deed) diff --git a/node_modules/spdx-license-ids/deprecated.json b/node_modules/spdx-license-ids/deprecated.json new file mode 100644 index 00000000..c7de0985 --- /dev/null +++ b/node_modules/spdx-license-ids/deprecated.json @@ -0,0 +1,26 @@ +[ + "AGPL-1.0", + "AGPL-3.0", + "BSD-2-Clause-FreeBSD", + "BSD-2-Clause-NetBSD", + "GFDL-1.1", + "GFDL-1.2", + "GFDL-1.3", + "GPL-1.0", + "GPL-2.0", + "GPL-2.0-with-GCC-exception", + "GPL-2.0-with-autoconf-exception", + "GPL-2.0-with-bison-exception", + "GPL-2.0-with-classpath-exception", + "GPL-2.0-with-font-exception", + "GPL-3.0", + "GPL-3.0-with-GCC-exception", + "GPL-3.0-with-autoconf-exception", + "LGPL-2.0", + "LGPL-2.1", + "LGPL-3.0", + "Nunit", + "StandardML-NJ", + "eCos-2.0", + "wxWindows" +] diff --git a/node_modules/spdx-license-ids/index.json b/node_modules/spdx-license-ids/index.json new file mode 100644 index 00000000..de204732 --- /dev/null +++ b/node_modules/spdx-license-ids/index.json @@ -0,0 +1,414 @@ +[ + "0BSD", + "AAL", + "ADSL", + "AFL-1.1", + "AFL-1.2", + "AFL-2.0", + "AFL-2.1", + "AFL-3.0", + "AGPL-1.0-only", + "AGPL-1.0-or-later", + "AGPL-3.0-only", + "AGPL-3.0-or-later", + "AMDPLPA", + "AML", + "AMPAS", + "ANTLR-PD", + "APAFML", + "APL-1.0", + "APSL-1.0", + "APSL-1.1", + "APSL-1.2", + "APSL-2.0", + "Abstyles", + "Adobe-2006", + "Adobe-Glyph", + "Afmparse", + "Aladdin", + "Apache-1.0", + "Apache-1.1", + "Apache-2.0", + "Artistic-1.0", + "Artistic-1.0-Perl", + "Artistic-1.0-cl8", + "Artistic-2.0", + "BSD-1-Clause", + "BSD-2-Clause", + "BSD-2-Clause-Patent", + "BSD-2-Clause-Views", + "BSD-3-Clause", + "BSD-3-Clause-Attribution", + "BSD-3-Clause-Clear", + "BSD-3-Clause-LBNL", + "BSD-3-Clause-No-Nuclear-License", + "BSD-3-Clause-No-Nuclear-License-2014", + "BSD-3-Clause-No-Nuclear-Warranty", + "BSD-3-Clause-Open-MPI", + "BSD-4-Clause", + "BSD-4-Clause-UC", + "BSD-Protection", + "BSD-Source-Code", + "BSL-1.0", + "Bahyph", + "Barr", + "Beerware", + "BitTorrent-1.0", + "BitTorrent-1.1", + "BlueOak-1.0.0", + "Borceux", + "CAL-1.0", + "CAL-1.0-Combined-Work-Exception", + "CATOSL-1.1", + "CC-BY-1.0", + "CC-BY-2.0", + "CC-BY-2.5", + "CC-BY-3.0", + "CC-BY-3.0-AT", + "CC-BY-4.0", + "CC-BY-NC-1.0", + "CC-BY-NC-2.0", + "CC-BY-NC-2.5", + "CC-BY-NC-3.0", + "CC-BY-NC-4.0", + "CC-BY-NC-ND-1.0", + "CC-BY-NC-ND-2.0", + "CC-BY-NC-ND-2.5", + "CC-BY-NC-ND-3.0", + "CC-BY-NC-ND-3.0-IGO", + "CC-BY-NC-ND-4.0", + "CC-BY-NC-SA-1.0", + "CC-BY-NC-SA-2.0", + "CC-BY-NC-SA-2.5", + "CC-BY-NC-SA-3.0", + "CC-BY-NC-SA-4.0", + "CC-BY-ND-1.0", + "CC-BY-ND-2.0", + "CC-BY-ND-2.5", + "CC-BY-ND-3.0", + "CC-BY-ND-4.0", + "CC-BY-SA-1.0", + "CC-BY-SA-2.0", + "CC-BY-SA-2.5", + "CC-BY-SA-3.0", + "CC-BY-SA-3.0-AT", + "CC-BY-SA-4.0", + "CC-PDDC", + "CC0-1.0", + "CDDL-1.0", + "CDDL-1.1", + "CDLA-Permissive-1.0", + "CDLA-Sharing-1.0", + "CECILL-1.0", + "CECILL-1.1", + "CECILL-2.0", + "CECILL-2.1", + "CECILL-B", + "CECILL-C", + "CERN-OHL-1.1", + "CERN-OHL-1.2", + "CERN-OHL-P-2.0", + "CERN-OHL-S-2.0", + "CERN-OHL-W-2.0", + "CNRI-Jython", + "CNRI-Python", + "CNRI-Python-GPL-Compatible", + "CPAL-1.0", + "CPL-1.0", + "CPOL-1.02", + "CUA-OPL-1.0", + "Caldera", + "ClArtistic", + "Condor-1.1", + "Crossword", + "CrystalStacker", + "Cube", + "D-FSL-1.0", + "DOC", + "DSDP", + "Dotseqn", + "ECL-1.0", + "ECL-2.0", + "EFL-1.0", + "EFL-2.0", + "EPICS", + "EPL-1.0", + "EPL-2.0", + "EUDatagrid", + "EUPL-1.0", + "EUPL-1.1", + "EUPL-1.2", + "Entessa", + "ErlPL-1.1", + "Eurosym", + "FSFAP", + "FSFUL", + "FSFULLR", + "FTL", + "Fair", + "Frameworx-1.0", + "FreeImage", + "GFDL-1.1-invariants-only", + "GFDL-1.1-invariants-or-later", + "GFDL-1.1-no-invariants-only", + "GFDL-1.1-no-invariants-or-later", + "GFDL-1.1-only", + "GFDL-1.1-or-later", + "GFDL-1.2-invariants-only", + "GFDL-1.2-invariants-or-later", + "GFDL-1.2-no-invariants-only", + "GFDL-1.2-no-invariants-or-later", + "GFDL-1.2-only", + "GFDL-1.2-or-later", + "GFDL-1.3-invariants-only", + "GFDL-1.3-invariants-or-later", + "GFDL-1.3-no-invariants-only", + "GFDL-1.3-no-invariants-or-later", + "GFDL-1.3-only", + "GFDL-1.3-or-later", + "GL2PS", + "GLWTPL", + "GPL-1.0-only", + "GPL-1.0-or-later", + "GPL-2.0-only", + "GPL-2.0-or-later", + "GPL-3.0-only", + "GPL-3.0-or-later", + "Giftware", + "Glide", + "Glulxe", + "HPND", + "HPND-sell-variant", + "HaskellReport", + "Hippocratic-2.1", + "IBM-pibs", + "ICU", + "IJG", + "IPA", + "IPL-1.0", + "ISC", + "ImageMagick", + "Imlib2", + "Info-ZIP", + "Intel", + "Intel-ACPI", + "Interbase-1.0", + "JPNIC", + "JSON", + "JasPer-2.0", + "LAL-1.2", + "LAL-1.3", + "LGPL-2.0-only", + "LGPL-2.0-or-later", + "LGPL-2.1-only", + "LGPL-2.1-or-later", + "LGPL-3.0-only", + "LGPL-3.0-or-later", + "LGPLLR", + "LPL-1.0", + "LPL-1.02", + "LPPL-1.0", + "LPPL-1.1", + "LPPL-1.2", + "LPPL-1.3a", + "LPPL-1.3c", + "Latex2e", + "Leptonica", + "LiLiQ-P-1.1", + "LiLiQ-R-1.1", + "LiLiQ-Rplus-1.1", + "Libpng", + "Linux-OpenIB", + "MIT", + "MIT-0", + "MIT-CMU", + "MIT-advertising", + "MIT-enna", + "MIT-feh", + "MITNFA", + "MPL-1.0", + "MPL-1.1", + "MPL-2.0", + "MPL-2.0-no-copyleft-exception", + "MS-PL", + "MS-RL", + "MTLL", + "MakeIndex", + "MirOS", + "Motosoto", + "MulanPSL-1.0", + "MulanPSL-2.0", + "Multics", + "Mup", + "NASA-1.3", + "NBPL-1.0", + "NCGL-UK-2.0", + "NCSA", + "NGPL", + "NIST-PD", + "NIST-PD-fallback", + "NLOD-1.0", + "NLPL", + "NOSL", + "NPL-1.0", + "NPL-1.1", + "NPOSL-3.0", + "NRL", + "NTP", + "NTP-0", + "Naumen", + "Net-SNMP", + "NetCDF", + "Newsletr", + "Nokia", + "Noweb", + "O-UDA-1.0", + "OCCT-PL", + "OCLC-2.0", + "ODC-By-1.0", + "ODbL-1.0", + "OFL-1.0", + "OFL-1.0-RFN", + "OFL-1.0-no-RFN", + "OFL-1.1", + "OFL-1.1-RFN", + "OFL-1.1-no-RFN", + "OGC-1.0", + "OGL-Canada-2.0", + "OGL-UK-1.0", + "OGL-UK-2.0", + "OGL-UK-3.0", + "OGTSL", + "OLDAP-1.1", + "OLDAP-1.2", + "OLDAP-1.3", + "OLDAP-1.4", + "OLDAP-2.0", + "OLDAP-2.0.1", + "OLDAP-2.1", + "OLDAP-2.2", + "OLDAP-2.2.1", + "OLDAP-2.2.2", + "OLDAP-2.3", + "OLDAP-2.4", + "OLDAP-2.5", + "OLDAP-2.6", + "OLDAP-2.7", + "OLDAP-2.8", + "OML", + "OPL-1.0", + "OSET-PL-2.1", + "OSL-1.0", + "OSL-1.1", + "OSL-2.0", + "OSL-2.1", + "OSL-3.0", + "OpenSSL", + "PDDL-1.0", + "PHP-3.0", + "PHP-3.01", + "PSF-2.0", + "Parity-6.0.0", + "Parity-7.0.0", + "Plexus", + "PolyForm-Noncommercial-1.0.0", + "PolyForm-Small-Business-1.0.0", + "PostgreSQL", + "Python-2.0", + "QPL-1.0", + "Qhull", + "RHeCos-1.1", + "RPL-1.1", + "RPL-1.5", + "RPSL-1.0", + "RSA-MD", + "RSCPL", + "Rdisc", + "Ruby", + "SAX-PD", + "SCEA", + "SGI-B-1.0", + "SGI-B-1.1", + "SGI-B-2.0", + "SHL-0.5", + "SHL-0.51", + "SISSL", + "SISSL-1.2", + "SMLNJ", + "SMPPL", + "SNIA", + "SPL-1.0", + "SSH-OpenSSH", + "SSH-short", + "SSPL-1.0", + "SWL", + "Saxpath", + "Sendmail", + "Sendmail-8.23", + "SimPL-2.0", + "Sleepycat", + "Spencer-86", + "Spencer-94", + "Spencer-99", + "SugarCRM-1.1.3", + "TAPR-OHL-1.0", + "TCL", + "TCP-wrappers", + "TMate", + "TORQUE-1.1", + "TOSL", + "TU-Berlin-1.0", + "TU-Berlin-2.0", + "UCL-1.0", + "UPL-1.0", + "Unicode-DFS-2015", + "Unicode-DFS-2016", + "Unicode-TOU", + "Unlicense", + "VOSTROM", + "VSL-1.0", + "Vim", + "W3C", + "W3C-19980720", + "W3C-20150513", + "WTFPL", + "Watcom-1.0", + "Wsuipa", + "X11", + "XFree86-1.1", + "XSkat", + "Xerox", + "Xnet", + "YPL-1.0", + "YPL-1.1", + "ZPL-1.1", + "ZPL-2.0", + "ZPL-2.1", + "Zed", + "Zend-2.0", + "Zimbra-1.3", + "Zimbra-1.4", + "Zlib", + "blessing", + "bzip2-1.0.5", + "bzip2-1.0.6", + "copyleft-next-0.3.0", + "copyleft-next-0.3.1", + "curl", + "diffmark", + "dvipdfm", + "eGenix", + "etalab-2.0", + "gSOAP-1.3b", + "gnuplot", + "iMatix", + "libpng-2.0", + "libselinux-1.0", + "libtiff", + "mpich2", + "psfrag", + "psutils", + "xinetd", + "xpp", + "zlib-acknowledgement" +] diff --git a/node_modules/spdx-license-ids/package.json b/node_modules/spdx-license-ids/package.json new file mode 100644 index 00000000..0a313886 --- /dev/null +++ b/node_modules/spdx-license-ids/package.json @@ -0,0 +1,75 @@ +{ + "_from": "spdx-license-ids@^3.0.0", + "_id": "spdx-license-ids@3.0.6", + "_inBundle": false, + "_integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "_location": "/spdx-license-ids", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "spdx-license-ids@^3.0.0", + "name": "spdx-license-ids", + "escapedName": "spdx-license-ids", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/spdx-correct", + "/spdx-expression-parse" + ], + "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "_shasum": "c80757383c28abf7296744998cbc106ae8b854ce", + "_spec": "spdx-license-ids@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\spdx-correct", + "author": { + "name": "Shinnosuke Watanabe", + "url": "https://github.com/shinnn" + }, + "bugs": { + "url": "https://github.com/jslicense/spdx-license-ids/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A list of SPDX license identifiers", + "devDependencies": { + "@shinnn/eslint-config": "^6.8.7", + "chalk": "^2.4.1", + "eslint": "^5.10.0", + "get-spdx-license-ids": "^2.1.0", + "rmfr": "^2.0.0", + "tape": "^4.9.1" + }, + "eslintConfig": { + "extends": "@shinnn" + }, + "files": [ + "deprecated.json", + "index.json" + ], + "homepage": "https://github.com/jslicense/spdx-license-ids#readme", + "keywords": [ + "spdx", + "license", + "licenses", + "id", + "identifier", + "identifiers", + "json", + "array", + "oss" + ], + "license": "CC0-1.0", + "name": "spdx-license-ids", + "repository": { + "type": "git", + "url": "git+https://github.com/jslicense/spdx-license-ids.git" + }, + "scripts": { + "build": "node build.js", + "pretest": "eslint .", + "test": "node test.js" + }, + "version": "3.0.6" +} diff --git a/node_modules/sshpk/.npmignore b/node_modules/sshpk/.npmignore new file mode 100644 index 00000000..8000b595 --- /dev/null +++ b/node_modules/sshpk/.npmignore @@ -0,0 +1,9 @@ +.gitmodules +deps +docs +Makefile +node_modules +test +tools +coverage +man/src diff --git a/node_modules/sshpk/.travis.yml b/node_modules/sshpk/.travis.yml new file mode 100644 index 00000000..c3394c25 --- /dev/null +++ b/node_modules/sshpk/.travis.yml @@ -0,0 +1,11 @@ +language: node_js +node_js: + - "5.10" + - "4.4" + - "4.1" + - "0.12" + - "0.10" +before_install: + - "make check" +after_success: + - '[ "${TRAVIS_NODE_VERSION}" = "4.4" ] && make codecovio' diff --git a/node_modules/sshpk/LICENSE b/node_modules/sshpk/LICENSE new file mode 100644 index 00000000..f6d947d2 --- /dev/null +++ b/node_modules/sshpk/LICENSE @@ -0,0 +1,18 @@ +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/node_modules/sshpk/README.md b/node_modules/sshpk/README.md new file mode 100644 index 00000000..5740f74d --- /dev/null +++ b/node_modules/sshpk/README.md @@ -0,0 +1,804 @@ +sshpk +========= + +Parse, convert, fingerprint and use SSH keys (both public and private) in pure +node -- no `ssh-keygen` or other external dependencies. + +Supports RSA, DSA, ECDSA (nistp-\*) and ED25519 key types, in PEM (PKCS#1, +PKCS#8) and OpenSSH formats. + +This library has been extracted from +[`node-http-signature`](https://github.com/joyent/node-http-signature) +(work by [Mark Cavage](https://github.com/mcavage) and +[Dave Eddy](https://github.com/bahamas10)) and +[`node-ssh-fingerprint`](https://github.com/bahamas10/node-ssh-fingerprint) +(work by Dave Eddy), with additions (including ECDSA support) by +[Alex Wilson](https://github.com/arekinath). + +Install +------- + +``` +npm install sshpk +``` + +Examples +-------- + +```js +var sshpk = require('sshpk'); + +var fs = require('fs'); + +/* Read in an OpenSSH-format public key */ +var keyPub = fs.readFileSync('id_rsa.pub'); +var key = sshpk.parseKey(keyPub, 'ssh'); + +/* Get metadata about the key */ +console.log('type => %s', key.type); +console.log('size => %d bits', key.size); +console.log('comment => %s', key.comment); + +/* Compute key fingerprints, in new OpenSSH (>6.7) format, and old MD5 */ +console.log('fingerprint => %s', key.fingerprint().toString()); +console.log('old-style fingerprint => %s', key.fingerprint('md5').toString()); +``` + +Example output: + +``` +type => rsa +size => 2048 bits +comment => foo@foo.com +fingerprint => SHA256:PYC9kPVC6J873CSIbfp0LwYeczP/W4ffObNCuDJ1u5w +old-style fingerprint => a0:c8:ad:6c:32:9a:32:fa:59:cc:a9:8c:0a:0d:6e:bd +``` + +More examples: converting between formats: + +```js +/* Read in a PEM public key */ +var keyPem = fs.readFileSync('id_rsa.pem'); +var key = sshpk.parseKey(keyPem, 'pem'); + +/* Convert to PEM PKCS#8 public key format */ +var pemBuf = key.toBuffer('pkcs8'); + +/* Convert to SSH public key format (and return as a string) */ +var sshKey = key.toString('ssh'); +``` + +Signing and verifying: + +```js +/* Read in an OpenSSH/PEM *private* key */ +var keyPriv = fs.readFileSync('id_ecdsa'); +var key = sshpk.parsePrivateKey(keyPriv, 'pem'); + +var data = 'some data'; + +/* Sign some data with the key */ +var s = key.createSign('sha1'); +s.update(data); +var signature = s.sign(); + +/* Now load the public key (could also use just key.toPublic()) */ +var keyPub = fs.readFileSync('id_ecdsa.pub'); +key = sshpk.parseKey(keyPub, 'ssh'); + +/* Make a crypto.Verifier with this key */ +var v = key.createVerify('sha1'); +v.update(data); +var valid = v.verify(signature); +/* => true! */ +``` + +Matching fingerprints with keys: + +```js +var fp = sshpk.parseFingerprint('SHA256:PYC9kPVC6J873CSIbfp0LwYeczP/W4ffObNCuDJ1u5w'); + +var keys = [sshpk.parseKey(...), sshpk.parseKey(...), ...]; + +keys.forEach(function (key) { + if (fp.matches(key)) + console.log('found it!'); +}); +``` + +Usage +----- + +## Public keys + +### `parseKey(data[, format = 'auto'[, options]])` + +Parses a key from a given data format and returns a new `Key` object. + +Parameters + +- `data` -- Either a Buffer or String, containing the key +- `format` -- String name of format to use, valid options are: + - `auto`: choose automatically from all below + - `pem`: supports both PKCS#1 and PKCS#8 + - `ssh`: standard OpenSSH format, + - `pkcs1`, `pkcs8`: variants of `pem` + - `rfc4253`: raw OpenSSH wire format + - `openssh`: new post-OpenSSH 6.5 internal format, produced by + `ssh-keygen -o` + - `dnssec`: `.key` file format output by `dnssec-keygen` etc + - `putty`: the PuTTY `.ppk` file format (supports truncated variant without + all the lines from `Private-Lines:` onwards) +- `options` -- Optional Object, extra options, with keys: + - `filename` -- Optional String, name for the key being parsed + (eg. the filename that was opened). Used to generate + Error messages + - `passphrase` -- Optional String, encryption passphrase used to decrypt an + encrypted PEM file + +### `Key.isKey(obj)` + +Returns `true` if the given object is a valid `Key` object created by a version +of `sshpk` compatible with this one. + +Parameters + +- `obj` -- Object to identify + +### `Key#type` + +String, the type of key. Valid options are `rsa`, `dsa`, `ecdsa`. + +### `Key#size` + +Integer, "size" of the key in bits. For RSA/DSA this is the size of the modulus; +for ECDSA this is the bit size of the curve in use. + +### `Key#comment` + +Optional string, a key comment used by some formats (eg the `ssh` format). + +### `Key#curve` + +Only present if `this.type === 'ecdsa'`, string containing the name of the +named curve used with this key. Possible values include `nistp256`, `nistp384` +and `nistp521`. + +### `Key#toBuffer([format = 'ssh'])` + +Convert the key into a given data format and return the serialized key as +a Buffer. + +Parameters + +- `format` -- String name of format to use, for valid options see `parseKey()` + +### `Key#toString([format = 'ssh])` + +Same as `this.toBuffer(format).toString()`. + +### `Key#fingerprint([algorithm = 'sha256'[, hashType = 'ssh']])` + +Creates a new `Fingerprint` object representing this Key's fingerprint. + +Parameters + +- `algorithm` -- String name of hash algorithm to use, valid options are `md5`, + `sha1`, `sha256`, `sha384`, `sha512` +- `hashType` -- String name of fingerprint hash type to use, valid options are + `ssh` (the type of fingerprint used by OpenSSH, e.g. in + `ssh-keygen`), `spki` (used by HPKP, some OpenSSL applications) + +### `Key#createVerify([hashAlgorithm])` + +Creates a `crypto.Verifier` specialized to use this Key (and the correct public +key algorithm to match it). The returned Verifier has the same API as a regular +one, except that the `verify()` function takes only the target signature as an +argument. + +Parameters + +- `hashAlgorithm` -- optional String name of hash algorithm to use, any + supported by OpenSSL are valid, usually including + `sha1`, `sha256`. + +`v.verify(signature[, format])` Parameters + +- `signature` -- either a Signature object, or a Buffer or String +- `format` -- optional String, name of format to interpret given String with. + Not valid if `signature` is a Signature or Buffer. + +### `Key#createDiffieHellman()` +### `Key#createDH()` + +Creates a Diffie-Hellman key exchange object initialized with this key and all +necessary parameters. This has the same API as a `crypto.DiffieHellman` +instance, except that functions take `Key` and `PrivateKey` objects as +arguments, and return them where indicated for. + +This is only valid for keys belonging to a cryptosystem that supports DHE +or a close analogue (i.e. `dsa`, `ecdsa` and `curve25519` keys). An attempt +to call this function on other keys will yield an `Error`. + +## Private keys + +### `parsePrivateKey(data[, format = 'auto'[, options]])` + +Parses a private key from a given data format and returns a new +`PrivateKey` object. + +Parameters + +- `data` -- Either a Buffer or String, containing the key +- `format` -- String name of format to use, valid options are: + - `auto`: choose automatically from all below + - `pem`: supports both PKCS#1 and PKCS#8 + - `ssh`, `openssh`: new post-OpenSSH 6.5 internal format, produced by + `ssh-keygen -o` + - `pkcs1`, `pkcs8`: variants of `pem` + - `rfc4253`: raw OpenSSH wire format + - `dnssec`: `.private` format output by `dnssec-keygen` etc. +- `options` -- Optional Object, extra options, with keys: + - `filename` -- Optional String, name for the key being parsed + (eg. the filename that was opened). Used to generate + Error messages + - `passphrase` -- Optional String, encryption passphrase used to decrypt an + encrypted PEM file + +### `generatePrivateKey(type[, options])` + +Generates a new private key of a certain key type, from random data. + +Parameters + +- `type` -- String, type of key to generate. Currently supported are `'ecdsa'` + and `'ed25519'` +- `options` -- optional Object, with keys: + - `curve` -- optional String, for `'ecdsa'` keys, specifies the curve to use. + If ECDSA is specified and this option is not given, defaults to + using `'nistp256'`. + +### `PrivateKey.isPrivateKey(obj)` + +Returns `true` if the given object is a valid `PrivateKey` object created by a +version of `sshpk` compatible with this one. + +Parameters + +- `obj` -- Object to identify + +### `PrivateKey#type` + +String, the type of key. Valid options are `rsa`, `dsa`, `ecdsa`. + +### `PrivateKey#size` + +Integer, "size" of the key in bits. For RSA/DSA this is the size of the modulus; +for ECDSA this is the bit size of the curve in use. + +### `PrivateKey#curve` + +Only present if `this.type === 'ecdsa'`, string containing the name of the +named curve used with this key. Possible values include `nistp256`, `nistp384` +and `nistp521`. + +### `PrivateKey#toBuffer([format = 'pkcs1'])` + +Convert the key into a given data format and return the serialized key as +a Buffer. + +Parameters + +- `format` -- String name of format to use, valid options are listed under + `parsePrivateKey`. Note that ED25519 keys default to `openssh` + format instead (as they have no `pkcs1` representation). + +### `PrivateKey#toString([format = 'pkcs1'])` + +Same as `this.toBuffer(format).toString()`. + +### `PrivateKey#toPublic()` + +Extract just the public part of this private key, and return it as a `Key` +object. + +### `PrivateKey#fingerprint([algorithm = 'sha256'])` + +Same as `this.toPublic().fingerprint()`. + +### `PrivateKey#createVerify([hashAlgorithm])` + +Same as `this.toPublic().createVerify()`. + +### `PrivateKey#createSign([hashAlgorithm])` + +Creates a `crypto.Sign` specialized to use this PrivateKey (and the correct +key algorithm to match it). The returned Signer has the same API as a regular +one, except that the `sign()` function takes no arguments, and returns a +`Signature` object. + +Parameters + +- `hashAlgorithm` -- optional String name of hash algorithm to use, any + supported by OpenSSL are valid, usually including + `sha1`, `sha256`. + +`v.sign()` Parameters + +- none + +### `PrivateKey#derive(newType)` + +Derives a related key of type `newType` from this key. Currently this is +only supported to change between `ed25519` and `curve25519` keys which are +stored with the same private key (but usually distinct public keys in order +to avoid degenerate keys that lead to a weak Diffie-Hellman exchange). + +Parameters + +- `newType` -- String, type of key to derive, either `ed25519` or `curve25519` + +## Fingerprints + +### `parseFingerprint(fingerprint[, options])` + +Pre-parses a fingerprint, creating a `Fingerprint` object that can be used to +quickly locate a key by using the `Fingerprint#matches` function. + +Parameters + +- `fingerprint` -- String, the fingerprint value, in any supported format +- `options` -- Optional Object, with properties: + - `algorithms` -- Array of strings, names of hash algorithms to limit + support to. If `fingerprint` uses a hash algorithm not on + this list, throws `InvalidAlgorithmError`. + - `hashType` -- String, the type of hash the fingerprint uses, either `ssh` + or `spki` (normally auto-detected based on the format, but + can be overridden) + - `type` -- String, the entity this fingerprint identifies, either `key` or + `certificate` + +### `Fingerprint.isFingerprint(obj)` + +Returns `true` if the given object is a valid `Fingerprint` object created by a +version of `sshpk` compatible with this one. + +Parameters + +- `obj` -- Object to identify + +### `Fingerprint#toString([format])` + +Returns a fingerprint as a string, in the given format. + +Parameters + +- `format` -- Optional String, format to use, valid options are `hex` and + `base64`. If this `Fingerprint` uses the `md5` algorithm, the + default format is `hex`. Otherwise, the default is `base64`. + +### `Fingerprint#matches(keyOrCertificate)` + +Verifies whether or not this `Fingerprint` matches a given `Key` or +`Certificate`. This function uses double-hashing to avoid leaking timing +information. Returns a boolean. + +Note that a `Key`-type Fingerprint will always return `false` if asked to match +a `Certificate` and vice versa. + +Parameters + +- `keyOrCertificate` -- a `Key` object or `Certificate` object, the entity to + match this fingerprint against + +## Signatures + +### `parseSignature(signature, algorithm, format)` + +Parses a signature in a given format, creating a `Signature` object. Useful +for converting between the SSH and ASN.1 (PKCS/OpenSSL) signature formats, and +also returned as output from `PrivateKey#createSign().sign()`. + +A Signature object can also be passed to a verifier produced by +`Key#createVerify()` and it will automatically be converted internally into the +correct format for verification. + +Parameters + +- `signature` -- a Buffer (binary) or String (base64), data of the actual + signature in the given format +- `algorithm` -- a String, name of the algorithm to be used, possible values + are `rsa`, `dsa`, `ecdsa` +- `format` -- a String, either `asn1` or `ssh` + +### `Signature.isSignature(obj)` + +Returns `true` if the given object is a valid `Signature` object created by a +version of `sshpk` compatible with this one. + +Parameters + +- `obj` -- Object to identify + +### `Signature#toBuffer([format = 'asn1'])` + +Converts a Signature to the given format and returns it as a Buffer. + +Parameters + +- `format` -- a String, either `asn1` or `ssh` + +### `Signature#toString([format = 'asn1'])` + +Same as `this.toBuffer(format).toString('base64')`. + +## Certificates + +`sshpk` includes basic support for parsing certificates in X.509 (PEM) format +and the OpenSSH certificate format. This feature is intended to be used mainly +to access basic metadata about certificates, extract public keys from them, and +also to generate simple self-signed certificates from an existing key. + +Notably, there is no implementation of CA chain-of-trust verification, and only +very minimal support for key usage restrictions. Please do the security world +a favour, and DO NOT use this code for certificate verification in the +traditional X.509 CA chain style. + +### `parseCertificate(data, format)` + +Parameters + + - `data` -- a Buffer or String + - `format` -- a String, format to use, one of `'openssh'`, `'pem'` (X.509 in a + PEM wrapper), or `'x509'` (raw DER encoded) + +### `createSelfSignedCertificate(subject, privateKey[, options])` + +Parameters + + - `subject` -- an Identity, the subject of the certificate + - `privateKey` -- a PrivateKey, the key of the subject: will be used both to be + placed in the certificate and also to sign it (since this is + a self-signed certificate) + - `options` -- optional Object, with keys: + - `lifetime` -- optional Number, lifetime of the certificate from now in + seconds + - `validFrom`, `validUntil` -- optional Dates, beginning and end of + certificate validity period. If given + `lifetime` will be ignored + - `serial` -- optional Buffer, the serial number of the certificate + - `purposes` -- optional Array of String, X.509 key usage restrictions + +### `createCertificate(subject, key, issuer, issuerKey[, options])` + +Parameters + + - `subject` -- an Identity, the subject of the certificate + - `key` -- a Key, the public key of the subject + - `issuer` -- an Identity, the issuer of the certificate who will sign it + - `issuerKey` -- a PrivateKey, the issuer's private key for signing + - `options` -- optional Object, with keys: + - `lifetime` -- optional Number, lifetime of the certificate from now in + seconds + - `validFrom`, `validUntil` -- optional Dates, beginning and end of + certificate validity period. If given + `lifetime` will be ignored + - `serial` -- optional Buffer, the serial number of the certificate + - `purposes` -- optional Array of String, X.509 key usage restrictions + +### `Certificate#subjects` + +Array of `Identity` instances describing the subject of this certificate. + +### `Certificate#issuer` + +The `Identity` of the Certificate's issuer (signer). + +### `Certificate#subjectKey` + +The public key of the subject of the certificate, as a `Key` instance. + +### `Certificate#issuerKey` + +The public key of the signing issuer of this certificate, as a `Key` instance. +May be `undefined` if the issuer's key is unknown (e.g. on an X509 certificate). + +### `Certificate#serial` + +The serial number of the certificate. As this is normally a 64-bit or wider +integer, it is returned as a Buffer. + +### `Certificate#purposes` + +Array of Strings indicating the X.509 key usage purposes that this certificate +is valid for. The possible strings at the moment are: + + * `'signature'` -- key can be used for digital signatures + * `'identity'` -- key can be used to attest about the identity of the signer + (X.509 calls this `nonRepudiation`) + * `'codeSigning'` -- key can be used to sign executable code + * `'keyEncryption'` -- key can be used to encrypt other keys + * `'encryption'` -- key can be used to encrypt data (only applies for RSA) + * `'keyAgreement'` -- key can be used for key exchange protocols such as + Diffie-Hellman + * `'ca'` -- key can be used to sign other certificates (is a Certificate + Authority) + * `'crl'` -- key can be used to sign Certificate Revocation Lists (CRLs) + +### `Certificate#getExtension(nameOrOid)` + +Retrieves information about a certificate extension, if present, or returns +`undefined` if not. The string argument `nameOrOid` should be either the OID +(for X509 extensions) or the name (for OpenSSH extensions) of the extension +to retrieve. + +The object returned will have the following properties: + + * `format` -- String, set to either `'x509'` or `'openssh'` + * `name` or `oid` -- String, only one set based on value of `format` + * `data` -- Buffer, the raw data inside the extension + +### `Certificate#getExtensions()` + +Returns an Array of all present certificate extensions, in the same manner and +format as `getExtension()`. + +### `Certificate#isExpired([when])` + +Tests whether the Certificate is currently expired (i.e. the `validFrom` and +`validUntil` dates specify a range of time that does not include the current +time). + +Parameters + + - `when` -- optional Date, if specified, tests whether the Certificate was or + will be expired at the specified time instead of now + +Returns a Boolean. + +### `Certificate#isSignedByKey(key)` + +Tests whether the Certificate was validly signed by the given (public) Key. + +Parameters + + - `key` -- a Key instance + +Returns a Boolean. + +### `Certificate#isSignedBy(certificate)` + +Tests whether this Certificate was validly signed by the subject of the given +certificate. Also tests that the issuer Identity of this Certificate and the +subject Identity of the other Certificate are equivalent. + +Parameters + + - `certificate` -- another Certificate instance + +Returns a Boolean. + +### `Certificate#fingerprint([hashAlgo])` + +Returns the X509-style fingerprint of the entire certificate (as a Fingerprint +instance). This matches what a web-browser or similar would display as the +certificate fingerprint and should not be confused with the fingerprint of the +subject's public key. + +Parameters + + - `hashAlgo` -- an optional String, any hash function name + +### `Certificate#toBuffer([format])` + +Serializes the Certificate to a Buffer and returns it. + +Parameters + + - `format` -- an optional String, output format, one of `'openssh'`, `'pem'` or + `'x509'`. Defaults to `'x509'`. + +Returns a Buffer. + +### `Certificate#toString([format])` + + - `format` -- an optional String, output format, one of `'openssh'`, `'pem'` or + `'x509'`. Defaults to `'pem'`. + +Returns a String. + +## Certificate identities + +### `identityForHost(hostname)` + +Constructs a host-type Identity for a given hostname. + +Parameters + + - `hostname` -- the fully qualified DNS name of the host + +Returns an Identity instance. + +### `identityForUser(uid)` + +Constructs a user-type Identity for a given UID. + +Parameters + + - `uid` -- a String, user identifier (login name) + +Returns an Identity instance. + +### `identityForEmail(email)` + +Constructs an email-type Identity for a given email address. + +Parameters + + - `email` -- a String, email address + +Returns an Identity instance. + +### `identityFromDN(dn)` + +Parses an LDAP-style DN string (e.g. `'CN=foo, C=US'`) and turns it into an +Identity instance. + +Parameters + + - `dn` -- a String + +Returns an Identity instance. + +### `identityFromArray(arr)` + +Constructs an Identity from an array of DN components (see `Identity#toArray()` +for the format). + +Parameters + + - `arr` -- an Array of Objects, DN components with `name` and `value` + +Returns an Identity instance. + + +Supported attributes in DNs: + +| Attribute name | OID | +| -------------- | --- | +| `cn` | `2.5.4.3` | +| `o` | `2.5.4.10` | +| `ou` | `2.5.4.11` | +| `l` | `2.5.4.7` | +| `s` | `2.5.4.8` | +| `c` | `2.5.4.6` | +| `sn` | `2.5.4.4` | +| `postalCode` | `2.5.4.17` | +| `serialNumber` | `2.5.4.5` | +| `street` | `2.5.4.9` | +| `x500UniqueIdentifier` | `2.5.4.45` | +| `role` | `2.5.4.72` | +| `telephoneNumber` | `2.5.4.20` | +| `description` | `2.5.4.13` | +| `dc` | `0.9.2342.19200300.100.1.25` | +| `uid` | `0.9.2342.19200300.100.1.1` | +| `mail` | `0.9.2342.19200300.100.1.3` | +| `title` | `2.5.4.12` | +| `gn` | `2.5.4.42` | +| `initials` | `2.5.4.43` | +| `pseudonym` | `2.5.4.65` | + +### `Identity#toString()` + +Returns the identity as an LDAP-style DN string. +e.g. `'CN=foo, O=bar corp, C=us'` + +### `Identity#type` + +The type of identity. One of `'host'`, `'user'`, `'email'` or `'unknown'` + +### `Identity#hostname` +### `Identity#uid` +### `Identity#email` + +Set when `type` is `'host'`, `'user'`, or `'email'`, respectively. Strings. + +### `Identity#cn` + +The value of the first `CN=` in the DN, if any. It's probably better to use +the `#get()` method instead of this property. + +### `Identity#get(name[, asArray])` + +Returns the value of a named attribute in the Identity DN. If there is no +attribute of the given name, returns `undefined`. If multiple components +of the DN contain an attribute of this name, an exception is thrown unless +the `asArray` argument is given as `true` -- then they will be returned as +an Array in the same order they appear in the DN. + +Parameters + + - `name` -- a String + - `asArray` -- an optional Boolean + +### `Identity#toArray()` + +Returns the Identity as an Array of DN component objects. This looks like: + +```js +[ { + "name": "cn", + "value": "Joe Bloggs" +}, +{ + "name": "o", + "value": "Organisation Ltd" +} ] +``` + +Each object has a `name` and a `value` property. The returned objects may be +safely modified. + +Errors +------ + +### `InvalidAlgorithmError` + +The specified algorithm is not valid, either because it is not supported, or +because it was not included on a list of allowed algorithms. + +Thrown by `Fingerprint.parse`, `Key#fingerprint`. + +Properties + +- `algorithm` -- the algorithm that could not be validated + +### `FingerprintFormatError` + +The fingerprint string given could not be parsed as a supported fingerprint +format, or the specified fingerprint format is invalid. + +Thrown by `Fingerprint.parse`, `Fingerprint#toString`. + +Properties + +- `fingerprint` -- if caused by a fingerprint, the string value given +- `format` -- if caused by an invalid format specification, the string value given + +### `KeyParseError` + +The key data given could not be parsed as a valid key. + +Properties + +- `keyName` -- `filename` that was given to `parseKey` +- `format` -- the `format` that was trying to parse the key (see `parseKey`) +- `innerErr` -- the inner Error thrown by the format parser + +### `KeyEncryptedError` + +The key is encrypted with a symmetric key (ie, it is password protected). The +parsing operation would succeed if it was given the `passphrase` option. + +Properties + +- `keyName` -- `filename` that was given to `parseKey` +- `format` -- the `format` that was trying to parse the key (currently can only + be `"pem"`) + +### `CertificateParseError` + +The certificate data given could not be parsed as a valid certificate. + +Properties + +- `certName` -- `filename` that was given to `parseCertificate` +- `format` -- the `format` that was trying to parse the key + (see `parseCertificate`) +- `innerErr` -- the inner Error thrown by the format parser + +Friends of sshpk +---------------- + + * [`sshpk-agent`](https://github.com/arekinath/node-sshpk-agent) is a library + for speaking the `ssh-agent` protocol from node.js, which uses `sshpk` diff --git a/node_modules/sshpk/bin/sshpk-conv b/node_modules/sshpk/bin/sshpk-conv new file mode 100644 index 00000000..e839ede5 --- /dev/null +++ b/node_modules/sshpk/bin/sshpk-conv @@ -0,0 +1,243 @@ +#!/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/node_modules/sshpk/bin/sshpk-sign b/node_modules/sshpk/bin/sshpk-sign new file mode 100644 index 00000000..673fc986 --- /dev/null +++ b/node_modules/sshpk/bin/sshpk-sign @@ -0,0 +1,191 @@ +#!/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/node_modules/sshpk/bin/sshpk-verify b/node_modules/sshpk/bin/sshpk-verify new file mode 100644 index 00000000..fc71a82c --- /dev/null +++ b/node_modules/sshpk/bin/sshpk-verify @@ -0,0 +1,167 @@ +#!/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/node_modules/sshpk/lib/algs.js b/node_modules/sshpk/lib/algs.js new file mode 100644 index 00000000..3b01e7d1 --- /dev/null +++ b/node_modules/sshpk/lib/algs.js @@ -0,0 +1,168 @@ +// 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/node_modules/sshpk/lib/certificate.js b/node_modules/sshpk/lib/certificate.js new file mode 100644 index 00000000..69323570 --- /dev/null +++ b/node_modules/sshpk/lib/certificate.js @@ -0,0 +1,410 @@ +// 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/node_modules/sshpk/lib/dhe.js b/node_modules/sshpk/lib/dhe.js new file mode 100644 index 00000000..a3c8032c --- /dev/null +++ b/node_modules/sshpk/lib/dhe.js @@ -0,0 +1,397 @@ +// 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/node_modules/sshpk/lib/ed-compat.js b/node_modules/sshpk/lib/ed-compat.js new file mode 100644 index 00000000..70732e1f --- /dev/null +++ b/node_modules/sshpk/lib/ed-compat.js @@ -0,0 +1,92 @@ +// 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/node_modules/sshpk/lib/errors.js b/node_modules/sshpk/lib/errors.js new file mode 100644 index 00000000..1cc09ec7 --- /dev/null +++ b/node_modules/sshpk/lib/errors.js @@ -0,0 +1,84 @@ +// 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/node_modules/sshpk/lib/fingerprint.js b/node_modules/sshpk/lib/fingerprint.js new file mode 100644 index 00000000..0004b376 --- /dev/null +++ b/node_modules/sshpk/lib/fingerprint.js @@ -0,0 +1,220 @@ +// 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/node_modules/sshpk/lib/formats/auto.js b/node_modules/sshpk/lib/formats/auto.js new file mode 100644 index 00000000..f32cd964 --- /dev/null +++ b/node_modules/sshpk/lib/formats/auto.js @@ -0,0 +1,124 @@ +// 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/node_modules/sshpk/lib/formats/dnssec.js b/node_modules/sshpk/lib/formats/dnssec.js new file mode 100644 index 00000000..a74ea9ce --- /dev/null +++ b/node_modules/sshpk/lib/formats/dnssec.js @@ -0,0 +1,287 @@ +// 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/node_modules/sshpk/lib/formats/openssh-cert.js b/node_modules/sshpk/lib/formats/openssh-cert.js new file mode 100644 index 00000000..766f3d39 --- /dev/null +++ b/node_modules/sshpk/lib/formats/openssh-cert.js @@ -0,0 +1,352 @@ +// 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/node_modules/sshpk/lib/formats/pem.js b/node_modules/sshpk/lib/formats/pem.js new file mode 100644 index 00000000..bbe78fcb --- /dev/null +++ b/node_modules/sshpk/lib/formats/pem.js @@ -0,0 +1,290 @@ +// 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/node_modules/sshpk/lib/formats/pkcs1.js b/node_modules/sshpk/lib/formats/pkcs1.js new file mode 100644 index 00000000..bc485500 --- /dev/null +++ b/node_modules/sshpk/lib/formats/pkcs1.js @@ -0,0 +1,373 @@ +// 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/node_modules/sshpk/lib/formats/pkcs8.js b/node_modules/sshpk/lib/formats/pkcs8.js new file mode 100644 index 00000000..2ca3ca7a --- /dev/null +++ b/node_modules/sshpk/lib/formats/pkcs8.js @@ -0,0 +1,631 @@ +// 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/node_modules/sshpk/lib/formats/putty.js b/node_modules/sshpk/lib/formats/putty.js new file mode 100644 index 00000000..344419f9 --- /dev/null +++ b/node_modules/sshpk/lib/formats/putty.js @@ -0,0 +1,99 @@ +// 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/node_modules/sshpk/lib/formats/rfc4253.js b/node_modules/sshpk/lib/formats/rfc4253.js new file mode 100644 index 00000000..52fddcb6 --- /dev/null +++ b/node_modules/sshpk/lib/formats/rfc4253.js @@ -0,0 +1,166 @@ +// 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/node_modules/sshpk/lib/formats/ssh-private.js b/node_modules/sshpk/lib/formats/ssh-private.js new file mode 100644 index 00000000..5e7eed88 --- /dev/null +++ b/node_modules/sshpk/lib/formats/ssh-private.js @@ -0,0 +1,262 @@ +// 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/node_modules/sshpk/lib/formats/ssh.js b/node_modules/sshpk/lib/formats/ssh.js new file mode 100644 index 00000000..c8e9c931 --- /dev/null +++ b/node_modules/sshpk/lib/formats/ssh.js @@ -0,0 +1,115 @@ +// 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/node_modules/sshpk/lib/formats/x509-pem.js b/node_modules/sshpk/lib/formats/x509-pem.js new file mode 100644 index 00000000..3155ef0b --- /dev/null +++ b/node_modules/sshpk/lib/formats/x509-pem.js @@ -0,0 +1,88 @@ +// 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/node_modules/sshpk/lib/formats/x509.js b/node_modules/sshpk/lib/formats/x509.js new file mode 100644 index 00000000..0144c444 --- /dev/null +++ b/node_modules/sshpk/lib/formats/x509.js @@ -0,0 +1,752 @@ +// 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/node_modules/sshpk/lib/identity.js b/node_modules/sshpk/lib/identity.js new file mode 100644 index 00000000..7d75b667 --- /dev/null +++ b/node_modules/sshpk/lib/identity.js @@ -0,0 +1,373 @@ +// 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/node_modules/sshpk/lib/index.js b/node_modules/sshpk/lib/index.js new file mode 100644 index 00000000..f76db791 --- /dev/null +++ b/node_modules/sshpk/lib/index.js @@ -0,0 +1,40 @@ +// 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/node_modules/sshpk/lib/key.js b/node_modules/sshpk/lib/key.js new file mode 100644 index 00000000..706f8340 --- /dev/null +++ b/node_modules/sshpk/lib/key.js @@ -0,0 +1,294 @@ +// 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/node_modules/sshpk/lib/private-key.js b/node_modules/sshpk/lib/private-key.js new file mode 100644 index 00000000..56008380 --- /dev/null +++ b/node_modules/sshpk/lib/private-key.js @@ -0,0 +1,246 @@ +// 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/node_modules/sshpk/lib/signature.js b/node_modules/sshpk/lib/signature.js new file mode 100644 index 00000000..aa8fdbb8 --- /dev/null +++ b/node_modules/sshpk/lib/signature.js @@ -0,0 +1,314 @@ +// 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/node_modules/sshpk/lib/ssh-buffer.js b/node_modules/sshpk/lib/ssh-buffer.js new file mode 100644 index 00000000..1dd286c8 --- /dev/null +++ b/node_modules/sshpk/lib/ssh-buffer.js @@ -0,0 +1,149 @@ +// 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/node_modules/sshpk/lib/utils.js b/node_modules/sshpk/lib/utils.js new file mode 100644 index 00000000..6b83a322 --- /dev/null +++ b/node_modules/sshpk/lib/utils.js @@ -0,0 +1,404 @@ +// 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/node_modules/sshpk/man/man1/sshpk-conv.1 b/node_modules/sshpk/man/man1/sshpk-conv.1 new file mode 100644 index 00000000..0887dce2 --- /dev/null +++ b/node_modules/sshpk/man/man1/sshpk-conv.1 @@ -0,0 +1,135 @@ +.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/node_modules/sshpk/man/man1/sshpk-sign.1 b/node_modules/sshpk/man/man1/sshpk-sign.1 new file mode 100644 index 00000000..749916ba --- /dev/null +++ b/node_modules/sshpk/man/man1/sshpk-sign.1 @@ -0,0 +1,81 @@ +.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/node_modules/sshpk/man/man1/sshpk-verify.1 b/node_modules/sshpk/man/man1/sshpk-verify.1 new file mode 100644 index 00000000..f79169d2 --- /dev/null +++ b/node_modules/sshpk/man/man1/sshpk-verify.1 @@ -0,0 +1,68 @@ +.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/node_modules/sshpk/package.json b/node_modules/sshpk/package.json new file mode 100644 index 00000000..9625b2fa --- /dev/null +++ b/node_modules/sshpk/package.json @@ -0,0 +1,96 @@ +{ + "_from": "sshpk@^1.7.0", + "_id": "sshpk@1.16.1", + "_inBundle": false, + "_integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "_location": "/sshpk", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "sshpk@^1.7.0", + "name": "sshpk", + "escapedName": "sshpk", + "rawSpec": "^1.7.0", + "saveSpec": null, + "fetchSpec": "^1.7.0" + }, + "_requiredBy": [ + "/http-signature" + ], + "_resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "_shasum": "fb661c0bef29b39db40769ee39fa70093d6f6877", + "_spec": "sshpk@^1.7.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\http-signature", + "author": { + "name": "Joyent, Inc" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "bugs": { + "url": "https://github.com/arekinath/node-sshpk/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Dave Eddy", + "email": "dave@daveeddy.com" + }, + { + "name": "Mark Cavage", + "email": "mcavage@gmail.com" + }, + { + "name": "Alex Wilson", + "email": "alex@cooperi.net" + } + ], + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "deprecated": false, + "description": "A library for finding and using SSH public keys", + "devDependencies": { + "benchmark": "^1.0.0", + "sinon": "^1.17.2", + "tape": "^3.5.0", + "temp": "^0.8.2" + }, + "directories": { + "bin": "./bin", + "lib": "./lib", + "man": "./man/man1" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/arekinath/node-sshpk#readme", + "license": "MIT", + "main": "lib/index.js", + "man": [ + "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\sshpk\\man\\man1\\sshpk-conv.1", + "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\sshpk\\man\\man1\\sshpk-sign.1", + "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\sshpk\\man\\man1\\sshpk-verify.1" + ], + "name": "sshpk", + "optionalDependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/joyent/node-sshpk.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "1.16.1" +} diff --git a/node_modules/statuses/HISTORY.md b/node_modules/statuses/HISTORY.md new file mode 100644 index 00000000..a1977b29 --- /dev/null +++ b/node_modules/statuses/HISTORY.md @@ -0,0 +1,65 @@ +1.5.0 / 2018-03-27 +================== + + * Add `103 Early Hints` + +1.4.0 / 2017-10-20 +================== + + * Add `STATUS_CODES` export + +1.3.1 / 2016-11-11 +================== + + * Fix return type in JSDoc + +1.3.0 / 2016-05-17 +================== + + * Add `421 Misdirected Request` + * perf: enable strict mode + +1.2.1 / 2015-02-01 +================== + + * Fix message for status 451 + - `451 Unavailable For Legal Reasons` + +1.2.0 / 2014-09-28 +================== + + * Add `208 Already Repored` + * Add `226 IM Used` + * Add `306 (Unused)` + * Add `415 Unable For Legal Reasons` + * Add `508 Loop Detected` + +1.1.1 / 2014-09-24 +================== + + * Add missing 308 to `codes.json` + +1.1.0 / 2014-09-21 +================== + + * Add `codes.json` for universal support + +1.0.4 / 2014-08-20 +================== + + * Package cleanup + +1.0.3 / 2014-06-08 +================== + + * Add 308 to `.redirect` category + +1.0.2 / 2014-03-13 +================== + + * Add `.retry` category + +1.0.1 / 2014-03-12 +================== + + * Initial release diff --git a/node_modules/statuses/LICENSE b/node_modules/statuses/LICENSE new file mode 100644 index 00000000..28a31618 --- /dev/null +++ b/node_modules/statuses/LICENSE @@ -0,0 +1,23 @@ + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/statuses/README.md b/node_modules/statuses/README.md new file mode 100644 index 00000000..0fe5720d --- /dev/null +++ b/node_modules/statuses/README.md @@ -0,0 +1,127 @@ +# Statuses + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +HTTP status utility for node. + +This module provides a list of status codes and messages sourced from +a few different projects: + + * The [IANA Status Code Registry](https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml) + * The [Node.js project](https://nodejs.org/) + * The [NGINX project](https://www.nginx.com/) + * The [Apache HTTP Server project](https://httpd.apache.org/) + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install statuses +``` + +## API + + + +```js +var status = require('statuses') +``` + +### var code = status(Integer || String) + +If `Integer` or `String` is a valid HTTP code or status message, then the +appropriate `code` will be returned. Otherwise, an error will be thrown. + + + +```js +status(403) // => 403 +status('403') // => 403 +status('forbidden') // => 403 +status('Forbidden') // => 403 +status(306) // throws, as it's not supported by node.js +``` + +### status.STATUS_CODES + +Returns an object which maps status codes to status messages, in +the same format as the +[Node.js http module](https://nodejs.org/dist/latest/docs/api/http.html#http_http_status_codes). + +### status.codes + +Returns an array of all the status codes as `Integer`s. + +### var msg = status[code] + +Map of `code` to `status message`. `undefined` for invalid `code`s. + + + +```js +status[404] // => 'Not Found' +``` + +### var code = status[msg] + +Map of `status message` to `code`. `msg` can either be title-cased or +lower-cased. `undefined` for invalid `status message`s. + + + +```js +status['not found'] // => 404 +status['Not Found'] // => 404 +``` + +### status.redirect[code] + +Returns `true` if a status code is a valid redirect status. + + + +```js +status.redirect[200] // => undefined +status.redirect[301] // => true +``` + +### status.empty[code] + +Returns `true` if a status code expects an empty body. + + + +```js +status.empty[200] // => undefined +status.empty[204] // => true +status.empty[304] // => true +``` + +### status.retry[code] + +Returns `true` if you should retry the rest. + + + +```js +status.retry[501] // => undefined +status.retry[503] // => true +``` + +[npm-image]: https://img.shields.io/npm/v/statuses.svg +[npm-url]: https://npmjs.org/package/statuses +[node-version-image]: https://img.shields.io/node/v/statuses.svg +[node-version-url]: https://nodejs.org/en/download +[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg +[travis-url]: https://travis-ci.org/jshttp/statuses +[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg +[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master +[downloads-image]: https://img.shields.io/npm/dm/statuses.svg +[downloads-url]: https://npmjs.org/package/statuses diff --git a/node_modules/statuses/codes.json b/node_modules/statuses/codes.json new file mode 100644 index 00000000..a09283a2 --- /dev/null +++ b/node_modules/statuses/codes.json @@ -0,0 +1,66 @@ +{ + "100": "Continue", + "101": "Switching Protocols", + "102": "Processing", + "103": "Early Hints", + "200": "OK", + "201": "Created", + "202": "Accepted", + "203": "Non-Authoritative Information", + "204": "No Content", + "205": "Reset Content", + "206": "Partial Content", + "207": "Multi-Status", + "208": "Already Reported", + "226": "IM Used", + "300": "Multiple Choices", + "301": "Moved Permanently", + "302": "Found", + "303": "See Other", + "304": "Not Modified", + "305": "Use Proxy", + "306": "(Unused)", + "307": "Temporary Redirect", + "308": "Permanent Redirect", + "400": "Bad Request", + "401": "Unauthorized", + "402": "Payment Required", + "403": "Forbidden", + "404": "Not Found", + "405": "Method Not Allowed", + "406": "Not Acceptable", + "407": "Proxy Authentication Required", + "408": "Request Timeout", + "409": "Conflict", + "410": "Gone", + "411": "Length Required", + "412": "Precondition Failed", + "413": "Payload Too Large", + "414": "URI Too Long", + "415": "Unsupported Media Type", + "416": "Range Not Satisfiable", + "417": "Expectation Failed", + "418": "I'm a teapot", + "421": "Misdirected Request", + "422": "Unprocessable Entity", + "423": "Locked", + "424": "Failed Dependency", + "425": "Unordered Collection", + "426": "Upgrade Required", + "428": "Precondition Required", + "429": "Too Many Requests", + "431": "Request Header Fields Too Large", + "451": "Unavailable For Legal Reasons", + "500": "Internal Server Error", + "501": "Not Implemented", + "502": "Bad Gateway", + "503": "Service Unavailable", + "504": "Gateway Timeout", + "505": "HTTP Version Not Supported", + "506": "Variant Also Negotiates", + "507": "Insufficient Storage", + "508": "Loop Detected", + "509": "Bandwidth Limit Exceeded", + "510": "Not Extended", + "511": "Network Authentication Required" +} diff --git a/node_modules/statuses/index.js b/node_modules/statuses/index.js new file mode 100644 index 00000000..4df469a0 --- /dev/null +++ b/node_modules/statuses/index.js @@ -0,0 +1,113 @@ +/*! + * statuses + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var codes = require('./codes.json') + +/** + * Module exports. + * @public + */ + +module.exports = status + +// status code to message map +status.STATUS_CODES = codes + +// array of status codes +status.codes = populateStatusesMap(status, codes) + +// status codes for redirects +status.redirect = { + 300: true, + 301: true, + 302: true, + 303: true, + 305: true, + 307: true, + 308: true +} + +// status codes for empty bodies +status.empty = { + 204: true, + 205: true, + 304: true +} + +// status codes for when you should retry the request +status.retry = { + 502: true, + 503: true, + 504: true +} + +/** + * Populate the statuses map for given codes. + * @private + */ + +function populateStatusesMap (statuses, codes) { + var arr = [] + + Object.keys(codes).forEach(function forEachCode (code) { + var message = codes[code] + var status = Number(code) + + // Populate properties + statuses[status] = message + statuses[message] = status + statuses[message.toLowerCase()] = status + + // Add to array + arr.push(status) + }) + + return arr +} + +/** + * Get the status code. + * + * Given a number, this will throw if it is not a known status + * code, otherwise the code will be returned. Given a string, + * the string will be parsed for a number and return the code + * if valid, otherwise will lookup the code assuming this is + * the status message. + * + * @param {string|number} code + * @returns {number} + * @public + */ + +function status (code) { + if (typeof code === 'number') { + if (!status[code]) throw new Error('invalid status code: ' + code) + return code + } + + if (typeof code !== 'string') { + throw new TypeError('code must be a number or string') + } + + // '403' + var n = parseInt(code, 10) + if (!isNaN(n)) { + if (!status[n]) throw new Error('invalid status code: ' + n) + return n + } + + n = status[code.toLowerCase()] + if (!n) throw new Error('invalid status message: "' + code + '"') + return n +} diff --git a/node_modules/statuses/package.json b/node_modules/statuses/package.json new file mode 100644 index 00000000..8604548c --- /dev/null +++ b/node_modules/statuses/package.json @@ -0,0 +1,90 @@ +{ + "_from": "statuses@~1.5.0", + "_id": "statuses@1.5.0", + "_inBundle": false, + "_integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "_location": "/statuses", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "statuses@~1.5.0", + "name": "statuses", + "escapedName": "statuses", + "rawSpec": "~1.5.0", + "saveSpec": null, + "fetchSpec": "~1.5.0" + }, + "_requiredBy": [ + "/express", + "/finalhandler", + "/http-errors", + "/send" + ], + "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "_shasum": "161c7dac177659fd9811f43771fa99381478628c", + "_spec": "statuses@~1.5.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/statuses/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "deprecated": false, + "description": "HTTP status utility", + "devDependencies": { + "csv-parse": "1.2.4", + "eslint": "4.19.1", + "eslint-config-standard": "11.0.0", + "eslint-plugin-import": "2.9.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-standard": "3.0.1", + "istanbul": "0.4.5", + "mocha": "1.21.5", + "raw-body": "2.3.2", + "stream-to-array": "2.3.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "HISTORY.md", + "index.js", + "codes.json", + "LICENSE" + ], + "homepage": "https://github.com/jshttp/statuses#readme", + "keywords": [ + "http", + "status", + "code" + ], + "license": "MIT", + "name": "statuses", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/statuses.git" + }, + "scripts": { + "build": "node scripts/build.js", + "fetch": "node scripts/fetch-apache.js && node scripts/fetch-iana.js && node scripts/fetch-nginx.js && node scripts/fetch-node.js", + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "update": "npm run fetch && npm run build" + }, + "version": "1.5.0" +} diff --git a/node_modules/string-width/index.d.ts b/node_modules/string-width/index.d.ts new file mode 100644 index 00000000..12b53097 --- /dev/null +++ b/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/node_modules/string-width/index.js b/node_modules/string-width/index.js new file mode 100644 index 00000000..a348067f --- /dev/null +++ b/node_modules/string-width/index.js @@ -0,0 +1,43 @@ +'use strict'; +const stripAnsi = require('strip-ansi'); +const isFullwidthCodePoint = require('is-fullwidth-code-point'); +const emojiRegex = require('emoji-regex'); + +const stringWidth = string => { + string = string.replace(emojiRegex(), ' '); + + if (typeof string !== 'string' || string.length === 0) { + return 0; + } + + string = stripAnsi(string); + + 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/node_modules/string-width/license b/node_modules/string-width/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/string-width/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/string-width/package.json b/node_modules/string-width/package.json new file mode 100644 index 00000000..ac4d49d9 --- /dev/null +++ b/node_modules/string-width/package.json @@ -0,0 +1,90 @@ +{ + "_from": "string-width@^4.2.0", + "_id": "string-width@4.2.0", + "_inBundle": false, + "_integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "_location": "/string-width", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "string-width@^4.2.0", + "name": "string-width", + "escapedName": "string-width", + "rawSpec": "^4.2.0", + "saveSpec": null, + "fetchSpec": "^4.2.0" + }, + "_requiredBy": [ + "/cliui", + "/wrap-ansi", + "/yargs" + ], + "_resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "_shasum": "952182c46cc7b2c313d1596e623992bd163b72b5", + "_spec": "string-width@^4.2.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\yargs", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/string-width/issues" + }, + "bundleDependencies": false, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "deprecated": false, + "description": "Get the visual width of a string - the number of columns required to display it", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/string-width#readme", + "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" + ], + "license": "MIT", + "name": "string-width", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/string-width.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "4.2.0" +} diff --git a/node_modules/string-width/readme.md b/node_modules/string-width/readme.md new file mode 100644 index 00000000..705f2060 --- /dev/null +++ b/node_modules/string-width/readme.md @@ -0,0 +1,50 @@ +# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width) + +> Get the visual width of a string - the number of columns required to display it + +Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. + +Useful to be able to measure the actual width of command-line output. + + +## Install + +``` +$ npm install string-width +``` + + +## Usage + +```js +const stringWidth = require('string-width'); + +stringWidth('a'); +//=> 1 + +stringWidth('古'); +//=> 2 + +stringWidth('\u001B[1m古\u001B[22m'); +//=> 2 +``` + + +## Related + +- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module +- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string +- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/string_decoder/.travis.yml b/node_modules/string_decoder/.travis.yml new file mode 100644 index 00000000..3347a725 --- /dev/null +++ b/node_modules/string_decoder/.travis.yml @@ -0,0 +1,50 @@ +sudo: false +language: node_js +before_install: + - npm install -g npm@2 + - test $NPM_LEGACY && npm install -g npm@latest-3 || npm install npm -g +notifications: + email: false +matrix: + fast_finish: true + include: + - node_js: '0.8' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: '0.10' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: '0.11' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: '0.12' + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 1 + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 2 + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 3 + env: + - TASK=test + - NPM_LEGACY=true + - node_js: 4 + env: TASK=test + - node_js: 5 + env: TASK=test + - node_js: 6 + env: TASK=test + - node_js: 7 + env: TASK=test + - node_js: 8 + env: TASK=test + - node_js: 9 + env: TASK=test diff --git a/node_modules/string_decoder/LICENSE b/node_modules/string_decoder/LICENSE new file mode 100644 index 00000000..778edb20 --- /dev/null +++ b/node_modules/string_decoder/LICENSE @@ -0,0 +1,48 @@ +Node.js is licensed for use as follows: + +""" +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. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node 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/node_modules/string_decoder/README.md b/node_modules/string_decoder/README.md new file mode 100644 index 00000000..5fd58315 --- /dev/null +++ b/node_modules/string_decoder/README.md @@ -0,0 +1,47 @@ +# string_decoder + +***Node-core v8.9.4 string_decoder for userland*** + + +[![NPM](https://nodei.co/npm/string_decoder.png?downloads=true&downloadRank=true)](https://nodei.co/npm/string_decoder/) +[![NPM](https://nodei.co/npm-dl/string_decoder.png?&months=6&height=3)](https://nodei.co/npm/string_decoder/) + + +```bash +npm install --save string_decoder +``` + +***Node-core string_decoder for userland*** + +This package is a mirror of the string_decoder implementation in Node-core. + +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.9.4/docs/api/). + +As of version 1.0.0 **string_decoder** uses semantic versioning. + +## Previous versions + +Previous version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10. + +## Update + +The *build/* directory contains a build script that will scrape the source from the [nodejs/node](https://github.com/nodejs/node) repo given a specific Node version. + +## Streams Working Group + +`string_decoder` is maintained by the Streams Working Group, which +oversees the development and maintenance of the Streams API within +Node.js. The responsibilities of the Streams Working Group include: + +* Addressing stream issues on the Node.js issue tracker. +* Authoring and editing stream documentation within the Node.js project. +* Reviewing changes to stream subclasses within the Node.js project. +* Redirecting changes to streams from the Node.js project to this + project. +* Assisting in the implementation of stream providers within Node.js. +* Recommending versions of `readable-stream` to be included in Node.js. +* Messaging about the future of streams to give the community advance + notice of changes. + +See [readable-stream](https://github.com/nodejs/readable-stream) for +more details. diff --git a/node_modules/string_decoder/lib/string_decoder.js b/node_modules/string_decoder/lib/string_decoder.js new file mode 100644 index 00000000..2e89e63f --- /dev/null +++ b/node_modules/string_decoder/lib/string_decoder.js @@ -0,0 +1,296 @@ +// 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. + +'use strict'; + +/**/ + +var Buffer = require('safe-buffer').Buffer; +/**/ + +var isEncoding = Buffer.isEncoding || function (encoding) { + encoding = '' + encoding; + switch (encoding && encoding.toLowerCase()) { + case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': + return true; + default: + return false; + } +}; + +function _normalizeEncoding(enc) { + if (!enc) return 'utf8'; + var retried; + while (true) { + switch (enc) { + case 'utf8': + case 'utf-8': + return 'utf8'; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return 'utf16le'; + case 'latin1': + case 'binary': + return 'latin1'; + case 'base64': + case 'ascii': + case 'hex': + return enc; + default: + if (retried) return; // undefined + enc = ('' + enc).toLowerCase(); + retried = true; + } + } +}; + +// Do not cache `Buffer.isEncoding` when checking encoding names as some +// modules monkey-patch it to support additional encodings +function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); + return nenc || enc; +} + +// StringDecoder provides an interface for efficiently splitting a series of +// buffers into a series of JS strings without breaking apart multi-byte +// characters. +exports.StringDecoder = StringDecoder; +function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case 'utf16le': + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case 'utf8': + this.fillLast = utf8FillLast; + nb = 4; + break; + case 'base64': + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer.allocUnsafe(nb); +} + +StringDecoder.prototype.write = function (buf) { + if (buf.length === 0) return ''; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) return ''; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ''; +}; + +StringDecoder.prototype.end = utf8End; + +// Returns only complete characters in a Buffer +StringDecoder.prototype.text = utf8Text; + +// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer +StringDecoder.prototype.fillLast = function (buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; +}; + +// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a +// continuation byte. If an invalid byte is detected, -2 is returned. +function utf8CheckByte(byte) { + if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; + return byte >> 6 === 0x02 ? -1 : -2; +} + +// Checks at most 3 bytes at the end of a Buffer in order to detect an +// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) +// needed to complete the UTF-8 character (if applicable) are returned. +function utf8CheckIncomplete(self, buf, i) { + var j = buf.length - 1; + if (j < i) return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) self.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) nb = 0;else self.lastNeed = nb - 3; + } + return nb; + } + return 0; +} + +// Validates as many continuation bytes for a multi-byte UTF-8 character as +// needed or are available. If we see a non-continuation byte where we expect +// one, we "replace" the validated continuation bytes we've seen so far with +// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding +// behavior. The continuation byte check is included three times in the case +// where all of the continuation bytes for a character exist in the same buffer. +// It is also done this way as a slight performance increase instead of using a +// loop. +function utf8CheckExtraBytes(self, buf, p) { + if ((buf[0] & 0xC0) !== 0x80) { + self.lastNeed = 0; + return '\ufffd'; + } + if (self.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 0xC0) !== 0x80) { + self.lastNeed = 1; + return '\ufffd'; + } + if (self.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 0xC0) !== 0x80) { + self.lastNeed = 2; + return '\ufffd'; + } + } + } +} + +// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. +function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; +} + +// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a +// partial character, the character's bytes are buffered until the required +// number of bytes are available. +function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) return buf.toString('utf8', i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString('utf8', i, end); +} + +// For UTF-8, a replacement character is added when ending on a partial +// character. +function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + '\ufffd'; + return r; +} + +// UTF-16LE typically needs two bytes per character, but even if we have an even +// number of bytes available, we need to check if we end on a leading/high +// surrogate. In that case, we need to wait for the next two bytes in order to +// decode the last character properly. +function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString('utf16le', i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 0xD800 && c <= 0xDBFF) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString('utf16le', i, buf.length - 1); +} + +// For UTF-16LE we do not explicitly append special replacement characters if we +// end on a partial character, we simply let v8 handle that. +function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString('utf16le', 0, end); + } + return r; +} + +function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) return buf.toString('base64', i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString('base64', i, buf.length - n); +} + +function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ''; + if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); + return r; +} + +// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) +function simpleWrite(buf) { + return buf.toString(this.encoding); +} + +function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ''; +} \ No newline at end of file diff --git a/node_modules/string_decoder/package.json b/node_modules/string_decoder/package.json new file mode 100644 index 00000000..1fc7e726 --- /dev/null +++ b/node_modules/string_decoder/package.json @@ -0,0 +1,59 @@ +{ + "_from": "string_decoder@~1.1.1", + "_id": "string_decoder@1.1.1", + "_inBundle": false, + "_integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "_location": "/string_decoder", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "string_decoder@~1.1.1", + "name": "string_decoder", + "escapedName": "string_decoder", + "rawSpec": "~1.1.1", + "saveSpec": null, + "fetchSpec": "~1.1.1" + }, + "_requiredBy": [ + "/readable-stream" + ], + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "_shasum": "9cf1611ba62685d7030ae9e4ba34149c3af03fc8", + "_spec": "string_decoder@~1.1.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\readable-stream", + "bugs": { + "url": "https://github.com/nodejs/string_decoder/issues" + }, + "bundleDependencies": false, + "dependencies": { + "safe-buffer": "~5.1.0" + }, + "deprecated": false, + "description": "The string_decoder module from Node core", + "devDependencies": { + "babel-polyfill": "^6.23.0", + "core-util-is": "^1.0.2", + "inherits": "^2.0.3", + "tap": "~0.4.8" + }, + "homepage": "https://github.com/nodejs/string_decoder", + "keywords": [ + "string", + "decoder", + "browser", + "browserify" + ], + "license": "MIT", + "main": "lib/string_decoder.js", + "name": "string_decoder", + "repository": { + "type": "git", + "url": "git://github.com/nodejs/string_decoder.git" + }, + "scripts": { + "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js", + "test": "tap test/parallel/*.js && node test/verify-dependencies" + }, + "version": "1.1.1" +} diff --git a/node_modules/strip-ansi/index.d.ts b/node_modules/strip-ansi/index.d.ts new file mode 100644 index 00000000..907fccc2 --- /dev/null +++ b/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/node_modules/strip-ansi/index.js b/node_modules/strip-ansi/index.js new file mode 100644 index 00000000..9a593dfc --- /dev/null +++ b/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/node_modules/strip-ansi/license b/node_modules/strip-ansi/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/strip-ansi/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/strip-ansi/package.json b/node_modules/strip-ansi/package.json new file mode 100644 index 00000000..2724c9db --- /dev/null +++ b/node_modules/strip-ansi/package.json @@ -0,0 +1,88 @@ +{ + "_from": "strip-ansi@^6.0.0", + "_id": "strip-ansi@6.0.0", + "_inBundle": false, + "_integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "_location": "/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "strip-ansi@^6.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "^6.0.0", + "saveSpec": null, + "fetchSpec": "^6.0.0" + }, + "_requiredBy": [ + "/cliui", + "/string-width", + "/wrap-ansi" + ], + "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "_shasum": "0b1571dd7669ccd4f3e06e14ef1eed26225ae532", + "_spec": "strip-ansi@^6.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\cliui", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "bundleDependencies": false, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "deprecated": false, + "description": "Strip ANSI escape codes from a string", + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.10.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "6.0.0" +} diff --git a/node_modules/strip-ansi/readme.md b/node_modules/strip-ansi/readme.md new file mode 100644 index 00000000..7c4b56d4 --- /dev/null +++ b/node_modules/strip-ansi/readme.md @@ -0,0 +1,46 @@ +# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) + +> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string + + +## Install + +``` +$ npm install strip-ansi +``` + + +## Usage + +```js +const stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` + + +## strip-ansi for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of strip-ansi and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-strip-ansi?utm_source=npm-strip-ansi&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + + +## Related + +- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module +- [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Streaming version of this module +- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes +- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + diff --git a/node_modules/strip-json-comments/index.js b/node_modules/strip-json-comments/index.js new file mode 100644 index 00000000..4e6576e6 --- /dev/null +++ b/node_modules/strip-json-comments/index.js @@ -0,0 +1,70 @@ +'use strict'; +var singleComment = 1; +var multiComment = 2; + +function stripWithoutWhitespace() { + return ''; +} + +function stripWithWhitespace(str, start, end) { + return str.slice(start, end).replace(/\S/g, ' '); +} + +module.exports = function (str, opts) { + opts = opts || {}; + + var currentChar; + var nextChar; + var insideString = false; + var insideComment = false; + var offset = 0; + var ret = ''; + var strip = opts.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace; + + for (var i = 0; i < str.length; i++) { + currentChar = str[i]; + nextChar = str[i + 1]; + + if (!insideComment && currentChar === '"') { + var escaped = str[i - 1] === '\\' && str[i - 2] !== '\\'; + if (!escaped) { + insideString = !insideString; + } + } + + if (insideString) { + continue; + } + + if (!insideComment && currentChar + nextChar === '//') { + ret += str.slice(offset, i); + offset = i; + insideComment = singleComment; + i++; + } else if (insideComment === singleComment && currentChar + nextChar === '\r\n') { + i++; + insideComment = false; + ret += strip(str, offset, i); + offset = i; + continue; + } else if (insideComment === singleComment && currentChar === '\n') { + insideComment = false; + ret += strip(str, offset, i); + offset = i; + } else if (!insideComment && currentChar + nextChar === '/*') { + ret += str.slice(offset, i); + offset = i; + insideComment = multiComment; + i++; + continue; + } else if (insideComment === multiComment && currentChar + nextChar === '*/') { + i++; + insideComment = false; + ret += strip(str, offset, i + 1); + offset = i + 1; + continue; + } + } + + return ret + (insideComment ? strip(str.substr(offset)) : str.substr(offset)); +}; diff --git a/node_modules/strip-json-comments/license b/node_modules/strip-json-comments/license new file mode 100644 index 00000000..654d0bfe --- /dev/null +++ b/node_modules/strip-json-comments/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/strip-json-comments/package.json b/node_modules/strip-json-comments/package.json new file mode 100644 index 00000000..291308fe --- /dev/null +++ b/node_modules/strip-json-comments/package.json @@ -0,0 +1,74 @@ +{ + "_from": "strip-json-comments@~2.0.1", + "_id": "strip-json-comments@2.0.1", + "_inBundle": false, + "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "_location": "/strip-json-comments", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "strip-json-comments@~2.0.1", + "name": "strip-json-comments", + "escapedName": "strip-json-comments", + "rawSpec": "~2.0.1", + "saveSpec": null, + "fetchSpec": "~2.0.1" + }, + "_requiredBy": [ + "/rc" + ], + "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "_shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a", + "_spec": "strip-json-comments@~2.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\rc", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/strip-json-comments/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Strip comments from JSON. Lets you use comments in your JSON files!", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/strip-json-comments#readme", + "keywords": [ + "json", + "strip", + "remove", + "delete", + "trim", + "comments", + "multiline", + "parse", + "config", + "configuration", + "conf", + "settings", + "util", + "env", + "environment" + ], + "license": "MIT", + "name": "strip-json-comments", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/strip-json-comments.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "2.0.1" +} diff --git a/node_modules/strip-json-comments/readme.md b/node_modules/strip-json-comments/readme.md new file mode 100644 index 00000000..0ee58dfe --- /dev/null +++ b/node_modules/strip-json-comments/readme.md @@ -0,0 +1,64 @@ +# strip-json-comments [![Build Status](https://travis-ci.org/sindresorhus/strip-json-comments.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-json-comments) + +> Strip comments from JSON. Lets you use comments in your JSON files! + +This is now possible: + +```js +{ + // rainbows + "unicorn": /* ❤ */ "cake" +} +``` + +It will replace single-line comments `//` and multi-line comments `/**/` with whitespace. This allows JSON error positions to remain as close as possible to the original source. + +Also available as a [gulp](https://github.com/sindresorhus/gulp-strip-json-comments)/[grunt](https://github.com/sindresorhus/grunt-strip-json-comments)/[broccoli](https://github.com/sindresorhus/broccoli-strip-json-comments) plugin. + + +## Install + +``` +$ npm install --save strip-json-comments +``` + + +## Usage + +```js +const json = '{/*rainbows*/"unicorn":"cake"}'; + +JSON.parse(stripJsonComments(json)); +//=> {unicorn: 'cake'} +``` + + +## API + +### stripJsonComments(input, [options]) + +#### input + +Type: `string` + +Accepts a string with JSON and returns a string without comments. + +#### options + +##### whitespace + +Type: `boolean` +Default: `true` + +Replace comments with whitespace instead of stripping them entirely. + + +## Related + +- [strip-json-comments-cli](https://github.com/sindresorhus/strip-json-comments-cli) - CLI for this module +- [strip-css-comments](https://github.com/sindresorhus/strip-css-comments) - Strip comments from CSS + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/supports-color/browser.js b/node_modules/supports-color/browser.js new file mode 100644 index 00000000..62afa3a7 --- /dev/null +++ b/node_modules/supports-color/browser.js @@ -0,0 +1,5 @@ +'use strict'; +module.exports = { + stdout: false, + stderr: false +}; diff --git a/node_modules/supports-color/index.js b/node_modules/supports-color/index.js new file mode 100644 index 00000000..0477d300 --- /dev/null +++ b/node_modules/supports-color/index.js @@ -0,0 +1,138 @@ +'use strict'; +const os = require('os'); +const hasFlag = require('has-flag'); + +const {env} = process; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never')) { + forceColor = 0; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = 1; +} +if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === true || env.FORCE_COLOR === 'true') { + forceColor = 1; + } else if (env.FORCE_COLOR === false || env.FORCE_COLOR === 'false') { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(stream) { + if (forceColor === 0) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (stream && !stream.isTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows + // release that supports 256 colors. Windows 10 build 14931 is the first release + // that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(process.versions.node.split('.')[0]) >= 8 && + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; +} + +function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) +}; diff --git a/node_modules/supports-color/license b/node_modules/supports-color/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/supports-color/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/supports-color/package.json b/node_modules/supports-color/package.json new file mode 100644 index 00000000..30e4bb50 --- /dev/null +++ b/node_modules/supports-color/package.json @@ -0,0 +1,85 @@ +{ + "_from": "supports-color@^6.1.0", + "_id": "supports-color@6.1.0", + "_inBundle": false, + "_integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "_location": "/supports-color", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "supports-color@^6.1.0", + "name": "supports-color", + "escapedName": "supports-color", + "rawSpec": "^6.1.0", + "saveSpec": null, + "fetchSpec": "^6.1.0" + }, + "_requiredBy": [ + "/concurrently" + ], + "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "_shasum": "0764abc69c63d5ac842dd4867e8d025e880df8f3", + "_spec": "supports-color@^6.1.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\concurrently", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "browser": "browser.js", + "bugs": { + "url": "https://github.com/chalk/supports-color/issues" + }, + "bundleDependencies": false, + "dependencies": { + "has-flag": "^3.0.0" + }, + "deprecated": false, + "description": "Detect whether a terminal supports color", + "devDependencies": { + "ava": "^0.25.0", + "import-fresh": "^2.0.0", + "xo": "^0.23.0" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js", + "browser.js" + ], + "homepage": "https://github.com/chalk/supports-color#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "license": "MIT", + "name": "supports-color", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/supports-color.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "6.1.0" +} diff --git a/node_modules/supports-color/readme.md b/node_modules/supports-color/readme.md new file mode 100644 index 00000000..d4cc58a6 --- /dev/null +++ b/node_modules/supports-color/readme.md @@ -0,0 +1,85 @@ +# supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color) + +> Detect whether a terminal supports color + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- + + +## Install + +``` +$ npm install supports-color +``` + + +## Usage + +```js +const supportsColor = require('supports-color'); + +if (supportsColor.stdout) { + console.log('Terminal stdout supports color'); +} + +if (supportsColor.stdout.has256) { + console.log('Terminal stdout supports 256 colors'); +} + +if (supportsColor.stderr.has16m) { + console.log('Terminal stderr supports 16 million colors (truecolor)'); +} +``` + + +## API + +Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported. + +The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag: + +- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors) +- `.level = 2` and `.has256 = true`: 256 color support +- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors) + + +## Info + +It obeys the `--color` and `--no-color` CLI flags. + +For situations where using `--color` is not possible, use the environment variable `FORCE_COLOR=1` (level 1), `FORCE_COLOR=2` (level 2), or `FORCE_COLOR=3` (level 3) to forcefully enable color, or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks. + +Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively. + + +## Security + +To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. + + +## Related + +- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +## License + +MIT diff --git a/node_modules/term-size/index.d.ts b/node_modules/term-size/index.d.ts new file mode 100644 index 00000000..a687ba58 --- /dev/null +++ b/node_modules/term-size/index.d.ts @@ -0,0 +1,21 @@ +declare namespace terminalSize { + interface Size { + columns: number; + rows: number; + } +} + +/** +Reliably get the terminal window size. + +@example +``` +import terminalSize = require('term-size'); + +terminalSize(); +//=> {columns: 143, rows: 24} +``` +*/ +declare function terminalSize(): terminalSize.Size; + +export = terminalSize; diff --git a/node_modules/term-size/index.js b/node_modules/term-size/index.js new file mode 100644 index 00000000..09804a47 --- /dev/null +++ b/node_modules/term-size/index.js @@ -0,0 +1,72 @@ +'use strict'; +const {execFileSync} = require('child_process'); +const path = require('path'); + +const exec = (command, arguments_, shell) => execFileSync(command, arguments_, {encoding: 'utf8', shell}).trim(); + +const create = (columns, rows) => ({ + columns: parseInt(columns, 10), + rows: parseInt(rows, 10) +}); + +module.exports = () => { + const {env, stdout, stderr} = process; + + if (stdout && stdout.columns && stdout.rows) { + return create(stdout.columns, stdout.rows); + } + + if (stderr && stderr.columns && stderr.rows) { + return create(stderr.columns, stderr.rows); + } + + // These values are static, so not the first choice + if (env.COLUMNS && env.LINES) { + return create(env.COLUMNS, env.LINES); + } + + if (process.platform === 'win32') { + try { + // Binary: https://github.com/sindresorhus/win-term-size + const size = exec(path.join(__dirname, 'vendor/windows/term-size.exe')).split(/\r?\n/); + + if (size.length === 2) { + return create(size[0], size[1]); + } + } catch (_) {} + } else { + if (process.platform === 'darwin') { + try { + // Binary: https://github.com/sindresorhus/macos-term-size + const size = exec(path.join(__dirname, 'vendor/macos/term-size'), [], true).split(/\r?\n/); + + if (size.length === 2) { + return create(size[0], size[1]); + } + } catch (_) {} + } + + // `resize` is preferred as it works even when all file descriptors are redirected + // https://linux.die.net/man/1/resize + try { + const size = exec('resize', ['-u']).match(/\d+/g); + + if (size.length === 2) { + return create(size[0], size[1]); + } + } catch (_) {} + + if (process.env.TERM) { + try { + const columns = exec('tput', ['cols']); + const rows = exec('tput', ['lines']); + + if (columns && rows) { + return create(columns, rows); + } + } catch (_) {} + } + } + + return create(80, 24); +}; diff --git a/node_modules/term-size/license b/node_modules/term-size/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/term-size/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/term-size/package.json b/node_modules/term-size/package.json new file mode 100644 index 00000000..426507a3 --- /dev/null +++ b/node_modules/term-size/package.json @@ -0,0 +1,75 @@ +{ + "_from": "term-size@^2.1.0", + "_id": "term-size@2.2.0", + "_inBundle": false, + "_integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "_location": "/term-size", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "term-size@^2.1.0", + "name": "term-size", + "escapedName": "term-size", + "rawSpec": "^2.1.0", + "saveSpec": null, + "fetchSpec": "^2.1.0" + }, + "_requiredBy": [ + "/boxen" + ], + "_resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "_shasum": "1f16adedfe9bdc18800e1776821734086fcc6753", + "_spec": "term-size@^2.1.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\boxen", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/term-size/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Reliably get the terminal window size (columns & rows)", + "devDependencies": { + "ava": "^2.4.0", + "execa": "^3.4.0", + "tsd": "^0.11.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts", + "vendor" + ], + "funding": "https://github.com/sponsors/sindresorhus", + "homepage": "https://github.com/sindresorhus/term-size#readme", + "keywords": [ + "terminal", + "size", + "console", + "window", + "width", + "height", + "columns", + "rows", + "lines", + "tty", + "redirected" + ], + "license": "MIT", + "name": "term-size", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/term-size.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.2.0" +} diff --git a/node_modules/term-size/readme.md b/node_modules/term-size/readme.md new file mode 100644 index 00000000..b69715de --- /dev/null +++ b/node_modules/term-size/readme.md @@ -0,0 +1,48 @@ +# term-size [![Build Status](https://travis-ci.org/sindresorhus/term-size.svg?branch=master)](https://travis-ci.org/sindresorhus/term-size) + +> Reliably get the terminal window size + +Because [`process.stdout.columns`](https://nodejs.org/api/tty.html#tty_writestream_columns) doesn't exist when run [non-interactively](http://www.tldp.org/LDP/abs/html/intandnonint.html), for example, in a child process or when piped. This module even works when all the TTY file descriptors are redirected! + +Confirmed working on macOS, Linux, and Windows. + +## Install + +``` +$ npm install term-size +``` + +## Usage + +```js +const termSize = require('term-size'); + +termSize(); +//=> {columns: 143, rows: 24} +``` + +## API + +### termSize() + +Returns an `object` with `columns` and `rows` properties. + +## Info + +The bundled macOS binary is signed and hardened. + +## Related + +- [term-size-cli](https://github.com/sindresorhus/term-size-cli) - CLI for this module + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/term-size/vendor/.DS_Store b/node_modules/term-size/vendor/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0e3ecd4375b6285a5a35ee700a18411433c777a5 GIT binary patch literal 8196 zcmeHMO>h)N6n<|LV19sf5JNyB3jqWYu;v_%>n>+7R^?GdH_)9;>dKW?oha#Ukges>{(8TWDnqHN`5}$c$o#dQAZSk zC<0Lgq6kD0h$8U+hyb10yeM}$_oXzdqXD9FrkVOBAmTszeGvSWVrc zP@D1qVG|EA8RE1=VM=4l>;Xel3{wo0<|L1Eb;4wb(-NgQpfm>zXT~r?K`}eo#f3Ux zQesp`5r`tNFakVxUjjKWAPZha{{C4e@7R8jNPLH}s_G?6mnkZh73wqTF|U*kjG*Xu z8if=5uFnX@GGV*l^PJhXkvVExr4hEe%X0(6cCCUiwoQvvh6ioe^h%vx(KUTBPFf1Y zL?f(ja`M4Mb38HC9G`4$Yoq3__SUH>Ravv8wd2reZsP3ZxvBG)rB4{X7ocXIk5?)k zbWXRXvtBMQwKj2_C1Z#9MneGs&VqFHy_xZ>mRiWKH&(f z@hK9AvYy*lu(*7L)n*MRTXc-T+V41N`>f>;W<95vbN!*fIur1oT|dDkT?LD3Q&B|smaV$h@6&3T5i0Iz(zO0(X-k<;Q}G2pl+g46 z$H-U?GgWEUwoB6o$7RUa6Jh7>J(@m5o020}{90@dyC2)9>nHilhYdgI&08+5>K08e zylBw773CP0?l(=#Y)o#GJ1V?wOeW-=N~g+NXrVKtABMq#JWRk#a0y<4SK%#q4?ch! z@G;ziFX1cr8oq%a;79lgeuiJ+clZ+l5o4(18mz~)xCtM??YIM*unl+PUVIcgum=z0 zQ`n1rcnl59qKOu|Si-Y7iRbV|d;{Oa%XkIf!FTa0zK=KXCVnE97Aq6>ad}^^@l$G5 zQZoFa7CU)IN_O`g_^&8=dxhlT>U--pY~I$~`taW5>^{!hxe9X4<&z+hWQkx;nH^#y zXV%oOU8k?t?k|&hKFJ4&Z`K)wlZGvm+8gyog?PdgajR|BRh7srWn1+oMPV^1Y0(oZ zv6odz*-mYjLOf+lq_kbzqY{%@wUl;f`xGK9TPmfUT1w^56oY@jysK~>ZW8Ne;5KpX z7x<0X_6IRd!Bv83>#+eh;5K4g6EW5nKMvp^j)tr|g&yXy zfIb%SJU)*X@FKo|FXJVA4PPe~zD@kQHjj6Q%8ZkU*DHCK^HM3Z7-Rvy-TC1cLT3&u zbDsG(()`%mm#lae=h%*?3$Ek2r)f<73@n2Z*x-Um=T8az$`^EsPdrbfVr8Fmg@qb( zR(D5@$`$sBK^9$AB|Wa^`G5D_zyB|~xI_*|5m-zS!0J>w)kz+gf0E31p6A+ex<={Z zh3idA6ed)ObevG6 Ang9R* literal 0 HcmV?d00001 diff --git a/node_modules/term-size/vendor/macos/.DS_Store b/node_modules/term-size/vendor/macos/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0L$QK_ zsH_E*vWi`F6~%%gRzwk2<(mnK1lHYspYM;|uVkLgojEgS&dmMIoik_7q>owr z<-O#|)8%pSX?_D7Po5aBU_>4{k{%OJXMwWu@}%WP#^=T3hcv|fNBG0|sB8|45f{N@ z7%wk~Cohm!4{5^RR+pa#s}n0e*TFE0h(8;T!cD>6AQhRjZl4QIxX<2fuq|6Cr9-vy8Z+w%j&pFan% zj7*MT3VbGikcZ=qPlYD{(&OcUb@3yR$uX3_8Xuk~58<_dw4gjFOY(;_!FA>3;p6Gz z?7?3Xcph$kd_f~=+U$`OV#>vpS4{xxmfI&Dg@V}NKstk02NMTC2Z6K@q>vBJC4A>= zfR+O3S#1<51*9;~?-FFW0rJ8qF+%?InFiX+|D*;i8x$TyX%LBtY!)$w5l*C~#?Sx_ zgBpl%9PTA^57z!Nvv;3&;3H{b<|0#2h6fQ1B1#q@1|rOlU^xL}2=apc8G!ePa^N}_ z46xrBAi_HM4(Oq0KnqN9 zdItiC{6zvQgh7aa5CI_qLIi{e2oVq>@V^v+0Qaotj`JM@=lZ$l*jfV1s}Y-qLXpnC zya`??^UE;DBkO_->9c!Iz~jb94$dL#GN?NW>KwB!XFYmZ40D;o!yI?_Y|$g2xqJ2u zxw?QSa&_L1-E%A~KndVq3b=a7fMX4yy|R&)p`ajJ<>h>s%y=0G62N>Oa_IuDFdi4Q z=KvRJgbNy9fa@$sys`$e?z?B51ETSObZi6-P|jKJ-7}kT3mrop$srep^-MwGu%0>h zIi352=aykTYwptqJiT%>-oWN_hxNXJG%pf7P(9tl!^4sARMqnU=G0;C2Fy)^xn`Jy z1M6voIcJ!w1vw&(o z@Q)&(K)`dajujlp@amdIXR+c@b6B`M9?eYT#G~>Y;LRQPrkorOE|0;@b{=n(EIhX* zXvTzvECWDNW0-6@BoII>jt95boW+ow0Z0au%87x510a~dHv;qSAP;W2`9ip&(PVJ% zk0HlKlIbaQY9faY?$jx;XYE)DBMzkp9Uda6JiZTvpMk}4=#d*j=;WBhrAK@teBTL3 zfA~N2K)oQ1jH73cqn*alp5ti$adgl)I(!@r#|!`80Pn8h9Wf3>-hHbB^xJ?-OYXh# zpYh?r&GsKLB6BeUGdcpPz|@XpxwFcfryn!Ko12kY8J&+mOg$LUXc+30K8r%>!J+f7 zyLCYx3>R%Rf-?F!;DPi+6b8KM2=d1PPuK__Y)5dwW4Kqvpokly_?f>*(J09gCl`m# ziZzCQGn9LfrKOpb+YHwr)bTp0ceWoC2G^9jHqP$KyZ)?NGA1iEuEyUeVb5Tfh1p*S z=2o@b+pYTwmnc!pv@ZQ{S{@r2PB(T~vWu`~|MDs|--qWmZl=ivG-(@$zEXO%&_(T7 zWp!`wB+K_=CRa3C^uG3c&f+9Ev==6SOBhWQg|p}^4r4KcO5re= zad^i>P9&4X;G~i!Axe->L{Vmh&!5TU;Ac4^n#wXHQ^XV@nVOPJNfyD%GNzUSB$7%p zMy7FFO6xk)ljt!(N3rl8&iFs;h(93dzZnq!ZKMU?M(}-+3^YLy5dft~23igU$|W%w zXf!G-$yaP)k>lIlI@2(f8{*cVBhO2yZLaf?6qdQ=dmg^S}(KQ zez_}wdo~;d&teWVDXfoQrN6(- z`TB?YOG~#X7rPHg1x;$uxmY&QYDH_v1yi!zWB-*7uNtdyw1R~#lS`hbwQ5BD$ax^xAt z_sI>fwF_D>z-x`JOy7f~S0WlD^7I9gG;+|Ee$u+Xh=GrE-+eodO>|P<#+MCeAAP+ewlgB&nn89v-9;rt@!8r zA9}{9>m(SHuV38U__la`JUwH_q^FbRm9vcZUHK-R667Imu+r=;YKdBHQuT@Br+gpn zQ`^z3x^1>pU`ggnU6+3?__=%R5tILXK+dfT^ zufr3-&VB!qU*bhuz1)yWR8QIT4enOCH8Wr3rI{2Ih4rUg?U$9DYqxXAw?p&Ls)8KT z(}CVuJt-=WtBaf(mbj{|+L?7#>E*iXLD`=V1vVLp8oC^oy60Jiku$GecbO89<=irb zE&ev+xzDF~pa)JN86uSCZM*NoZ~QP1DVMG;j={x6p1-#By&FUQVjQJ#ffPi3Ls@Q$;leoFkabMx! z_148Dy3q>PDo;IAGrXWxP`X5Vms|G2Tazr!+M49NuPQOFx2Uo{g~;AsNiOcw6KM#@ z^$wBwK(o-9=s9tLM$MLi&n2bpehue>{33F3wfKRyY9l-|{)9am*-$sDU2cc%$7vo0 zlbgR^J$_R5Ua0z=HrwOY2m9q@QTb9wwI`WyZrjNG7Cz}fWkSB&+<=y4pj$+)G-RbPvyZ}&1zse7}b_`%2I;=ZIC$%yYct<{;U)wbKZS@u;GJ8U$% zbu@26M`J&``0WjvTwAKIdB;w>!Ia_XX7Sg{tunLc;&0AqI{HhIuVnP_w66>Hib^a~ zb_i6^pLCin)#o7IR*o@MNpKSFb@axT@24phYJ9{gMgL9)6(#}%Nk_W8C zjRJe`%W2ErZ(ytX9=|tz<+-&1_x5f-Y3lTQ$L)mD6&3zr0W1Wph_uxh(+65mJPXSj z@57|gO`_O%S7svk{LoPYT4c&R$*lsVP zmo+>%Cx2S@)3c}65qfvDWp+oR7zNcbi{;DL?Y_D}kFXTm_N_IvAi=Qvx4?XA+?@`K z?+x9S<^`nHi&k|#^zM&ubo+Y5<*2p+$_d9>mAUMWI9+^Vm($~~0WFTH6E`#tJuGj} zoIo*amP>hV^zCS>oyEI&%lFHeJ7*j{+<#BM*uK{KBej`2P>put$W5ho6%?(>C9x@6 zw$sHAuG!V+IbFWVgeI5SzaXtC)K z0()8xk%oGUYv*7P)EFb@r)H4@UooN4SaY!HA$%G^uhHe%J4`A&UO=ls5-~Fd|7Kv& zz`mJ*<|ZZlv?8Z5A@ zYCX8%wD$e97aujRyt>kN*il)8+BMk@^;pqMQSo-UbiC_5!>iRO`gI$<&4C)RWe;kP zTu)EY>N%~LnzA)$Z?&oF_a=1m6fagtR(`?pbE}31YuB8KknN_<&cRJ^y_ff0gjkca z`p~XhRYqG6b`uzTr61$zR%n6l^2Ky1x-* zl^ZV}RA|4ZJ@0<3>UVR*hSz{flfaOOh_S%Y{Xb}(fu1_r9!<(XPX>x$l8t>zYz#h$ z&SC>=!j?cXK?rzy9F<7}|7o%%1k7_aow(%VQRv zU`!;!9fnRMI?r>)`+0fHorec9h(s430-o^GwFem4L_Zchn{!gVfG}gwz=X!35kNO1 z(#H%3l+qYfj-8~0O*B2#j!KK9up{Yg8zQ7YA%(@Fz>I_q*wQF4gG40m04X!n{aDc2FmF&vYz{U z--OOzF!SEKjbeG)DTk}*bJPpu9;6!1P4Ml!k%?Iz9h$VhT_mUF#w^dbUMeM9^!zK+ zG%Hf6q@?ZJEijom>UDbxkJy~ncYbsyVvkfrNXg*hrxM1xP50vMv-9jOzB8ayWXNAb zGUR_1lj6C3B;+x&qzrj*D3q`J@g)P-Qil9KP_zq!28#i>ghZ#wieM%K(`t!8OEk7T z8p}W;z{(aAH59>$ih)%z))j@t->2lKum75!+GcL>mGOY()zyK1mSg!MrIkw*rZKG9bNs90z_jjkOxRW6HB;_PXrEWr*SXMbfz8Q>X{?9#JJg~) zx;B>{P=0z(L2bvG#YzNsItAt1_hNa#$FiJFnYkA`u@}Ommb65X%pRw*cA52jDEhQ4 z4}YB)b|P<0huQ7m!GMh&3a8!nZXEnHqyA+<g> zQQtq-+W;)Fu|8_J(X;aq6^{tOJk5@6R4}>-DdilEY>zqAlC7ltgskcklpRwB8 zrQl04_WjM3bNY6BuC9Ik!@h*Uo(4>_{KVF#5Os3q@2|t|<7g8~ZtglMDz?uxN_3jB zQsIGwrdh33FX|Wj%58pes{SO|U&8HVsFZue{YU8>Mt#dF)BM9egA&$df%)ZiMaSQ( z`=Y%?Jl2K9C)R1(cGcPXQ`f3 zQmS%WE!K5b>P_uCLeHEq`{SWH)nE4z-W^Dp9=V78JQDqN;6=lS9s9p{I_?SCSZteg z`KFY1Zr_KwukV+ha*w%XM~DGuU~zE#c*j$N%f04P%RauZ8wb@t;z=8E=bIxI(5Y{3 z4waoHGD`l-s`&2?vp17fDh9U8M=ZKwQd*y@6Jht&>50U0$@TRrU)c`CGff?S7pF9T zuQ!h`mr=AigYzlc%(Sw+UrPT}OYP5V_J|F^-?aKB(a>-G@#<^_O?12KFJ6=t{@u@Rmu6T=1M@ljM^vBx^d+JxJ z>0I8~UR!0*^W|auI&G_uznPU>V9mN?>ojLu!$FOW`8N`?FNBnQYTNK2D$4p{@4V%2 zl%hZ0vD@4nyJQ}@Z`MZnYe|cWQPLVdtu|MNx(CkNvFhqOUz+cqSbk_x#6IcjVoiF@ zQ#r)RyywtO^v%5wo!E)X=FD1M6ej=R(3Bg|5iMpe%$7pU@}iaA3Y)ta!>>JEKKis0 zWar-{h(9OPuI(wg>CzTw|9oTpSJ&H%T8_T1pe(Ha2l5;sUzTq00GQxX%@j}gG21gGy=NQ zFUR<7m(O1=XyWmF8fAf5npbNcH^it??yP^2I{o%@`?J&gx=z0s^4h-bIXk`JKu~}6 zoc_$+B}K;TD>%5!%{^Y~0XH7d)!%ju6X12> z)g!l_CAOu;rRu-3zb;#PuGNHeHur;7*{_Dx-AK69%c1yV^HzUfsoaqAg_8T(dEni& zfd$EXE?(DqX0z$MY-8*(-Kya_-;KjwlW(Nwe~v1w-)2En#9vADcV&OxGP~@#SY>Tg z`~2k4f)s+$_k4q6pCuQ4yjH~h$BghHL_mmu5CI_qLIi{e2oVq>AVffjfDi#80zw3Y y2nZ1nA|OOSh=33QAp$}Kga`-`5F#K%K!|`40U-iH1cV3(5fCCEMBx7?0{;cPpo9ki literal 0 HcmV?d00001 diff --git a/node_modules/term-size/vendor/windows/term-size.exe b/node_modules/term-size/vendor/windows/term-size.exe new file mode 100644 index 0000000000000000000000000000000000000000..c7a170c96442547c1465f031f9017f4374110829 GIT binary patch literal 17408 zcmeHO3v^q>nI6g4iDD~~02@qkn#&%AI*_*;)(f-*0&EJjm8-Ovk_|qj$0nrx_n^ty+eL=UUa_-zByDqxj$ylpl z4*Sue7uROB9bwjjVuSHQ_8DLtfLVZ2fDKRuASAVon%xF8$$nlQ#}l10lY#rin5fYb z1M#5fmDcHpNRt0BW9<}(Ke7lT&~+M~vfCJY{WSP2s#5Z7k-hriqF}@Xpo%_KwcrbyzbfNX(I6cSp3OL2p|96=ctMvEw4^` zhw3PpZ8xS04|Y440r*tm{#wtOuA-!W zi%e5W)1Vl&yYZ;NBk}NU4kp{u|AMh-omd5FQeSm4I$oYN3)}{h)DB6RC%q#|X)P=p zdYbH`y(9kj)QSvRcim9t9s01?ApH$hMr-UAD2+Zf3}%aU`%UO5_fMl!os7L`{c>{h zdSK$4$-0TpI9U2gtQ$>nbgKl0MZ_SdHHHJk@EKsdBhjOa5=r=wYO>qdMqZmrv|1>m zTCkU+8l|yB2^^A}?B?`c=QB2H11dVcXe_=HQnT@1U7dXD9CYQMuU!*g{YZ!WO7!Tq z_rLvkRr*WV@fME9o9q`wk4&Z5L6nq3&?=KwnYGHMRV7+grd8!sMc0TmZz}+sxUy1r>3k=%v*#RiX|g&CaTb=J{+Ak zScl6%$@{USb-0Jv3WbeY5^yvpnhSjFuyyz{B96Yha+pLjuTZ|VS0BifYGIXs5Pjd^ zjehu7)}|jslSb<<8#>}Z+8cXOGDm-AkY+zc`ILD(`YR%vKVaolOX6!)>TZ5-v<#A! zc|2%`rBdsz)h{1+P8fE>KxTFB9mO8X5;VoKb3{(Xg&1u-vh!XU;k%{;eyg%`hcb_H z!Frz$x~f(A6C|3xz7*lR-slo$9sUm3o+eYGdtu17_D@*kKjO9L%C+|NvGcG}+IGmo z6N>q}(R~Jao81KQa;sfPPhjkt$Vg=QJOY!o!>VQ#w-dgju?9W~<-J767t4w95on$g&ck)rg|(3YUFxaZjVo4alr zd(H@g$+cJte72wA4j?aL>Hkz!%+-7hr|%^$${9+A*!wgBwWdLBHc_Q-1V!v{s*s3C zqBZstP~FWlZt?{*t7&0&VAU&E*1{Z0M+b8B zr?87wz_Z|z$FkVcbs$kn9h%*vBD^DO&jW{CZkJcTqrMnDYLZjR>URjgP{VWNsDQkR zsnR(#Aa3NE_P0aRD~TE!NlHtgrG7>?c0k6Y^ND;V$-yqGD>lh{k?eCoPMqqCXo%+{ zQ1>GQ*?E+Y>-m@}B*j!{>e=L0+7`79iX-5E^k`XvTbJZQxm6Phat>CRxnjHK@qsby zkF7AtMzTl-ko+qEv?`2yHu8C%{r=bp$xjs$f~GaIgC-y`48PPPd@ks*T3aoN zMKCNc5wI~bR=468j%Ot62NR=J7{#lQZz+hjjYp`NPraaQu-mTKU@uWitALQ7S4(TC zPN}7>RPW=nLlNDe(Sx=OP+py>{`cxnhCbm+%H*jJCgdy0iW8KL?0)>h=bFC15{6`s zkUu=XD^i7yZU>tqu%zM?;;V&JVH5g1d3mxjxm0jL)HHk_ZN-q{G>slbhx;izrxN6m z>^zoxc_Gk#2O?A2uUV;xAkJ4G(Np>*&RYdA#fX>mn4lpezs{$o{H`Fc$V^&0=<{TL1WP{iP47r` zQd_4p{?#U4MgZSvvNr?TV@W*MNef?n0iHSDz+3{zGaLF%Xjh<3TZB!y1P7 zFFIbU5viJJI&gD1ASCZ_UG{1C;CVB@P(Lt-%~&9JZhQ`E*|v%E~eiYy^_%7Nx~61CD)CP188 zx`n5?8EMo9XDZ_DA4lK%NV+PTc0`XnCsmSz1@nl5L^yO2z?Q&m?d>9Q2{yha3du1; zbi4|C$5{38$?LF@sijLmf#8)l@c9$c58@n<$XP*Yx!i>DG=fV8rZ>|$VS`-&Za;8o zFZ$ZDNxTmE&@@{=rf1*(t*Js9F~Gib8R8Qc960;Y2XUOv)4xD0Qrt8kv{U3#TTGAW^la;WUniF7V(WdYAuB;>?D?@cu!&y1Gl-5-=ST0EenP3%;l&_+hKQ9$ z6F*gb1VnVqJoFJE!!62r%JqVB7oCXXPta3#j$3yUt<5@IM6}bQbvVWwChKq;8Wafl zzomiv$MH$uHuQrYSEftPC}BZ4FFIx_c#tdD&K0aanEoQz6z4&WOy=m&O9`5x>cg?* zotDfKBgn05<`L$Oe~#C#=W`OTp;HqxOer>;Q{IfX9n2*UPPnujPe>c<@UK7}ckYM5 zW^Gc1-DsN>=OOX|25<&FOEPgSPFEoNW7i-#5Eweyj$w)?FGJtDYlz$5h72G2F~hBw zH~JJ|n6){j+%dkG+6yNPDS1l1<6!#RI0{;KIS(prNw3T~b78mM6(ga=By{I2u*!Re z4nUqdcr9e@IZ4na613BK@Sa(jXBDF6(s= z)PlVjRoa8k5&Yv@nSs{7v{)a&uG^hEFV^hyo4Ue_d^K{s1v&pIF&f}3T)>5k!K|5Ph#_dk&$s4fSuWs zSNfY6NC!St)y&Sid1M^F0LWt}U(-VxyHrMp_ZBFGdKyqCCbyyI9mx~R8QQ@x>B5kH zO_DdxgGTpWll7+^=l0rY{9=sjGo+o5%As}|@ls1g>|DycDYWs4LRsvmZXIoBIJs3I z3`zkd_fIe=?^9pFQO_JZE}4`@L9W5;P+4z^9gZB%N$Uh7NO4}!j#isl;uxQnNOnJ? z_Ye7iw;F|xBA9**If4CtOlrWkE9%1J0(9(hBhKVxV?sAk=C)>O8ck{`>BNDYwBkI; zXEAdumoNN%M>gPCC&GLysH&4V7-!>oLLf?YE!Y<>P>f3tMT#;j6w}gIr3!hk(qIDr zd#Cz(f;^?!Bwxo*Mc>E#olKnhH+e!?Ws~K2+hN}D>7G)n>9u$ zo;&f3jpXnT0M9#=jc@YsAf3-q)^X+aP#!xhABw!2DkPt%qzWkxyp?sjT$``VKjz}4 z%a<913-JC|?;j@qFmbWtW1;^^WX@eXY% zD>mRm20meoQGOv8yhBUcZq&y!KRWR~a7_o!VP-m$7p$ta?h4Ja?rJEB9gjB|%cP5{ z4~!`7=B2L<%r0m*Eqy6uj_xr;lNC$fi=;8fH}`6^HGj2+ocyKj0K>_;?znV`$Q_z2;wy9P^mb<3>y24h+5*AYu5h4bD%Lv*ZS z>2IVCC3aIbaLG-C_$)5Jfx z>0!|9*@=A~_PmW~*)RiS58u6M8&1E9LE;)CzP!s*sQ{muG=4g7fd5_Y4?LL#0owU> zP4)4d@(zUAEX^fbbL&Inze?l(xfYLm^5PNiG?ZC)wakhgkW$b+a=hVlqBI+u$NA9= z<^l)1ilzG_lhwz$RPTuVQ{Kqs8~o4dmjv=a(>RVaiY0m5iuWw=+WFuF|Bz1zp2qM1 zXOI>kMCMaMv{M^AS8>=snAnq^k8tJWWqzxlJotUX+BMZG*5u5LD3ZNQnnUrOrX!!G z>=I4hB#(#k)j@<4F2AN9=_owuMvY|O&=_^)*CNH4r;(4*-ykF<%5^vsL}n`ubSy28 z9ltZJ+-`=B^*0ZtIQev!ZXb}iz~id<4t_&>9erIBZ?&64r9+d{j?O_cpymSunT30R zSoZ}S`qc$Tu}G;->-9T&eMGNc*Xu)i{jy$9==DLp-mll=dY#nk@9FiEdi|JQKcd$U z>GfCjdPJ}9)$4oodXU%H9Yzu*ZlopxmG}AO?m~{_{^NXc)8sFY=H6#msA?7N4X99? zH_kr(Y$8ykTiT8}r1{Gg;Ee$4+b|{q=w{^!T%Y{eICs|2-x~qHZ&OcqcUQQ}J#hKr z>PolY&$_xoo*rLV@`U&|#hxx-z#9bC?KvHu3%F%*^;H`0b(_0Z>D-NeS2*kmGq%88 zg#XxAar|*?bg&~AI@s#Kt%2Y`K=gz{!4RzM>T^lG=u|AcT3isOUkfYO(z|K2Jar-N8N=D7g%=qG@GYeani4Gs9tDpeN#Yg?!Rhv7)18 zImXz^&7P3g9~=-vu0W3`%er!nbJeoem1`HW&R+an!4r=7B@sVmkb*%m+~@N9(c(X3 z@bqI4sy%M8V)crqEEm4V4@xe-=nsa&V$dsweLVr6*N0y~bbG{#&eoM39njtG3Q4{* zQnl+;j6Laau$KT+02{6+ngM=58~hnqJaAPF{h&hf^?5|E%jb`TJXaU7dbb;vg~bK^ zVy`PK27;om&(-5u9QJfezF>ff;u>E_in#nYL_DFboDn{FgCTK&Timo&@`Oc~B)W1^ zC~<^Oc^e>Q$+ zGJ2(?!W)n@&A+Tr+4Z9*TTP;g>i=4S24pjli?z>Al!pnCw!h|^nK2e z=Tz0G8!w{9>yW(;+-K=#s?j1EV?`FBx!8Ccs(RdrlDtm9p`@xdq6SUXofd&DLemeh z?NQYm3(%;ym}173xrNK_F4!(a3k$w(EE=odSD&hX9v0LWlbnYDj&W6`pGHECZ58AY z{z*XdY4AjLvLB?E{8$3|V?@C9HstggU&vE?T`{L^1)1r2RsDQE{jFq|<{zO?)*}K( zdKma_rMl75-e;-B^9D;Zp540bG;}g=1#rY$177+*j%sB6|o1!K3G` zxSFT-MnsG8{H;a(IL7}DbuM0R#A_Mi)mZG&TTS%E0L8;kbSYJ(bfZ?=eQEags%*f_JEYeDi5zz=%*S|b>-?uYt*2D#Zh zasziR=|K?zbn(;=Tpen%eLLkuv|#HPrhOk)sT=5Cz`dX$KTjK9r=_Y3y9OLPVPApi zSnegxlhBRD2tCm@=IueWUrzwWp{HHf6E!+5HYB1Rv0E%Ah{DD}zI+TwgZ46_MWNib zA(w<7>GQ^YX(eA;igagMijA$=c4IMQX)f|Ow1T%8yqA(N@J5a8AjQ_WmaF7{kI)aA zPSA7`O^3z28GG4sY4XM}UJ#xpJm8Nc;rDpvMm_^m)Zv=4S;$oGpK91Zw+d zI3J1Ny>c7oB@bucjCUe%rz^*Rx8d@x0^k6w0QdoefCmAO0lo*A0K5e_2C(2h@Uwuc z0jmI;0NVgx1N;+UCtw_K1n^q`6{7?_01RT?zzdK7e+Re+umkWA;1R&T0(JxT z0$u>T40s*z3&3vx(*PstfL%%6uWU>$(}zI*WzXe^01w~FxCwuD=bC{m5x=L|6>$4K z^^7?QN5b_BQN}!k>5y>u8tErH*0R6ln60?s?(4)YYJGT_&+nlY`wES8`nqpz4C00r zKdv*j1P}+8AGeVwyM9SQtH-tZ6f|2{&>D2P^@zZt2MYL=Ydh|pgP}gU5$3`X>mH%Q zBdrefa@*a`E#01ex-*3}h%}Rg4!_6K&+ZaBJ)u5d027uC8k2=ie;B5&arq-2_MmV^ zA#A6h-}{1>?r<4s%)dOQ+c$Gbv3ShrgULn1r@>>&5EE>~Z;r;Dq=AIEfcYpwGP zU0(W&K*nx1aD{NZk8MIbxC!SBLl^FmZ)IU)mu_8iL02Teal-{&1KoXYe}K&wT$_R+ ziCrcjT`|VkRe~mcnc(dY`2v!cwFzEiDRvFPJAlMS>u!Or^@;jRLZ7FvyMHTVUlDY2 z_HBV~@Lf1uJu8Hzklz!)FN&xY=-=1&EkI;u6M3l;cUI)a{dhq)RjQr z|0eW>H+P4mtajQR&z8TW2vnWp$hl*);XAsrnLd42Hv%|Y{(>Vg;$Y=~iEalI2hYy+ zU+_%-9@h-~^D6FU22Uh3FnnaB&upjQ@z*T;K5E^=I8)O-i(aOUHE6A29jpsaCtHP9 z3tP!npx=V$GPJ2YE4=#&Zc4a(>XV+|SJpv~0rDgk!uce?dLYe*bBPC%1I){C)MPcB zrV96GRctAs1~!mItJsC$Z3ImpUfV9vZ-q53^l&IZ>4j7YBVl$m`#k=Ixdt~hdC(4` z?qw0QDp@y|K|Gt-Jjl%2(8MXbxo!QBAoE_R2H#Wc{}*d<;SfFdJM=`7bIn^ hqbO<_h5KZNWJd%-pa>v#e$@H%J4bk&2>z_fe*q!}CAt6r literal 0 HcmV?d00001 diff --git a/node_modules/to-readable-stream/index.js b/node_modules/to-readable-stream/index.js new file mode 100644 index 00000000..554bfa5f --- /dev/null +++ b/node_modules/to-readable-stream/index.js @@ -0,0 +1,11 @@ +'use strict'; +const {Readable} = require('stream'); + +module.exports = input => ( + new Readable({ + read() { + this.push(input); + this.push(null); + } + }) +); diff --git a/node_modules/to-readable-stream/license b/node_modules/to-readable-stream/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/to-readable-stream/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/to-readable-stream/package.json b/node_modules/to-readable-stream/package.json new file mode 100644 index 00000000..bc2442fc --- /dev/null +++ b/node_modules/to-readable-stream/package.json @@ -0,0 +1,72 @@ +{ + "_from": "to-readable-stream@^1.0.0", + "_id": "to-readable-stream@1.0.0", + "_inBundle": false, + "_integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "_location": "/to-readable-stream", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "to-readable-stream@^1.0.0", + "name": "to-readable-stream", + "escapedName": "to-readable-stream", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/got" + ], + "_resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "_shasum": "ce0aa0c2f3df6adf852efb404a783e77c0475771", + "_spec": "to-readable-stream@^1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\got", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/to-readable-stream/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Convert a string/Buffer/Uint8Array to a readable stream", + "devDependencies": { + "ava": "*", + "get-stream": "^3.0.0", + "xo": "*" + }, + "engines": { + "node": ">=6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/to-readable-stream#readme", + "keywords": [ + "stream", + "readablestream", + "string", + "buffer", + "uint8array", + "from", + "into", + "to", + "transform", + "convert", + "readable", + "pull" + ], + "license": "MIT", + "name": "to-readable-stream", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/to-readable-stream.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "1.0.0" +} diff --git a/node_modules/to-readable-stream/readme.md b/node_modules/to-readable-stream/readme.md new file mode 100644 index 00000000..fc207c5c --- /dev/null +++ b/node_modules/to-readable-stream/readme.md @@ -0,0 +1,42 @@ +# to-readable-stream [![Build Status](https://travis-ci.org/sindresorhus/to-readable-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/to-readable-stream) + +> Convert a string/Buffer/Uint8Array to a [readable stream](https://nodejs.org/api/stream.html#stream_readable_streams) + + +## Install + +``` +$ npm install to-readable-stream +``` + + +## Usage + +```js +const toReadableStream = require('to-readable-stream'); + +toReadableStream('🦄🌈').pipe(process.stdout); +``` + + +## API + +### toReadableStream(input) + +Returns a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_readable_streams). + +#### input + +Type: `string` `Buffer` `Uint8Array` + +Value to convert to a stream. + + +## Related + +- [into-stream](https://github.com/sindresorhus/into-stream) - More advanced version of this module + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/to-regex-range/LICENSE b/node_modules/to-regex-range/LICENSE new file mode 100644 index 00000000..7cccaf9e --- /dev/null +++ b/node_modules/to-regex-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/to-regex-range/README.md b/node_modules/to-regex-range/README.md new file mode 100644 index 00000000..38887daf --- /dev/null +++ b/node_modules/to-regex-range/README.md @@ -0,0 +1,305 @@ +# to-regex-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/to-regex-range.svg?style=flat)](https://www.npmjs.com/package/to-regex-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![NPM total downloads](https://img.shields.io/npm/dt/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![Linux Build Status](https://img.shields.io/travis/micromatch/to-regex-range.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/to-regex-range) + +> Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save to-regex-range +``` + +
+What does this do? + +
+ +This libary generates the `source` string to be passed to `new RegExp()` for matching a range of numbers. + +**Example** + +```js +const toRegexRange = require('to-regex-range'); +const regex = new RegExp(toRegexRange('15', '95')); +``` + +A string is returned so that you can do whatever you need with it before passing it to `new RegExp()` (like adding `^` or `$` boundaries, defining flags, or combining it another string). + +
+ +
+ +
+Why use this library? + +
+ +### Convenience + +Creating regular expressions for matching numbers gets deceptively complicated pretty fast. + +For example, let's say you need a validation regex for matching part of a user-id, postal code, social security number, tax id, etc: + +* regex for matching `1` => `/1/` (easy enough) +* regex for matching `1` through `5` => `/[1-5]/` (not bad...) +* regex for matching `1` or `5` => `/(1|5)/` (still easy...) +* regex for matching `1` through `50` => `/([1-9]|[1-4][0-9]|50)/` (uh-oh...) +* regex for matching `1` through `55` => `/([1-9]|[1-4][0-9]|5[0-5])/` (no prob, I can do this...) +* regex for matching `1` through `555` => `/([1-9]|[1-9][0-9]|[1-4][0-9]{2}|5[0-4][0-9]|55[0-5])/` (maybe not...) +* regex for matching `0001` through `5555` => `/(0{3}[1-9]|0{2}[1-9][0-9]|0[1-9][0-9]{2}|[1-4][0-9]{3}|5[0-4][0-9]{2}|55[0-4][0-9]|555[0-5])/` (okay, I get the point!) + +The numbers are contrived, but they're also really basic. In the real world you might need to generate a regex on-the-fly for validation. + +**Learn more** + +If you're interested in learning more about [character classes](http://www.regular-expressions.info/charclass.html) and other regex features, I personally have always found [regular-expressions.info](http://www.regular-expressions.info/charclass.html) to be pretty useful. + +### Heavily tested + +As of April 07, 2019, this library runs [>1m test assertions](./test/test.js) against generated regex-ranges to provide brute-force verification that results are correct. + +Tests run in ~280ms on my MacBook Pro, 2.5 GHz Intel Core i7. + +### Optimized + +Generated regular expressions are optimized: + +* duplicate sequences and character classes are reduced using quantifiers +* smart enough to use `?` conditionals when number(s) or range(s) can be positive or negative +* uses fragment caching to avoid processing the same exact string more than once + +
+ +
+ +## Usage + +Add this library to your javascript application with the following line of code + +```js +const toRegexRange = require('to-regex-range'); +``` + +The main export is a function that takes two integers: the `min` value and `max` value (formatted as strings or numbers). + +```js +const source = toRegexRange('15', '95'); +//=> 1[5-9]|[2-8][0-9]|9[0-5] + +const regex = new RegExp(`^${source}$`); +console.log(regex.test('14')); //=> false +console.log(regex.test('50')); //=> true +console.log(regex.test('94')); //=> true +console.log(regex.test('96')); //=> false +``` + +## Options + +### options.capture + +**Type**: `boolean` + +**Deafault**: `undefined` + +Wrap the returned value in parentheses when there is more than one regex condition. Useful when you're dynamically generating ranges. + +```js +console.log(toRegexRange('-10', '10')); +//=> -[1-9]|-?10|[0-9] + +console.log(toRegexRange('-10', '10', { capture: true })); +//=> (-[1-9]|-?10|[0-9]) +``` + +### options.shorthand + +**Type**: `boolean` + +**Deafault**: `undefined` + +Use the regex shorthand for `[0-9]`: + +```js +console.log(toRegexRange('0', '999999')); +//=> [0-9]|[1-9][0-9]{1,5} + +console.log(toRegexRange('0', '999999', { shorthand: true })); +//=> \d|[1-9]\d{1,5} +``` + +### options.relaxZeros + +**Type**: `boolean` + +**Default**: `true` + +This option relaxes matching for leading zeros when when ranges are zero-padded. + +```js +const source = toRegexRange('-0010', '0010'); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> true +console.log(regex.test('-010')); //=> true +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> true +console.log(regex.test('010')); //=> true +console.log(regex.test('0010')); //=> true +``` + +When `relaxZeros` is false, matching is strict: + +```js +const source = toRegexRange('-0010', '0010', { relaxZeros: false }); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> false +console.log(regex.test('-010')); //=> false +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> false +console.log(regex.test('010')); //=> false +console.log(regex.test('0010')); //=> true +``` + +## Examples + +| **Range** | **Result** | **Compile time** | +| --- | --- | --- | +| `toRegexRange(-10, 10)` | `-[1-9]\|-?10\|[0-9]` | _132μs_ | +| `toRegexRange(-100, -10)` | `-1[0-9]\|-[2-9][0-9]\|-100` | _50μs_ | +| `toRegexRange(-100, 100)` | `-[1-9]\|-?[1-9][0-9]\|-?100\|[0-9]` | _42μs_ | +| `toRegexRange(001, 100)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|100` | _109μs_ | +| `toRegexRange(001, 555)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _51μs_ | +| `toRegexRange(0010, 1000)` | `0{0,2}1[0-9]\|0{0,2}[2-9][0-9]\|0?[1-9][0-9]{2}\|1000` | _31μs_ | +| `toRegexRange(1, 50)` | `[1-9]\|[1-4][0-9]\|50` | _24μs_ | +| `toRegexRange(1, 55)` | `[1-9]\|[1-4][0-9]\|5[0-5]` | _23μs_ | +| `toRegexRange(1, 555)` | `[1-9]\|[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _30μs_ | +| `toRegexRange(1, 5555)` | `[1-9]\|[1-9][0-9]{1,2}\|[1-4][0-9]{3}\|5[0-4][0-9]{2}\|55[0-4][0-9]\|555[0-5]` | _43μs_ | +| `toRegexRange(111, 555)` | `11[1-9]\|1[2-9][0-9]\|[2-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _38μs_ | +| `toRegexRange(29, 51)` | `29\|[34][0-9]\|5[01]` | _24μs_ | +| `toRegexRange(31, 877)` | `3[1-9]\|[4-9][0-9]\|[1-7][0-9]{2}\|8[0-6][0-9]\|87[0-7]` | _32μs_ | +| `toRegexRange(5, 5)` | `5` | _8μs_ | +| `toRegexRange(5, 6)` | `5\|6` | _11μs_ | +| `toRegexRange(1, 2)` | `1\|2` | _6μs_ | +| `toRegexRange(1, 5)` | `[1-5]` | _15μs_ | +| `toRegexRange(1, 10)` | `[1-9]\|10` | _22μs_ | +| `toRegexRange(1, 100)` | `[1-9]\|[1-9][0-9]\|100` | _25μs_ | +| `toRegexRange(1, 1000)` | `[1-9]\|[1-9][0-9]{1,2}\|1000` | _31μs_ | +| `toRegexRange(1, 10000)` | `[1-9]\|[1-9][0-9]{1,3}\|10000` | _34μs_ | +| `toRegexRange(1, 100000)` | `[1-9]\|[1-9][0-9]{1,4}\|100000` | _36μs_ | +| `toRegexRange(1, 1000000)` | `[1-9]\|[1-9][0-9]{1,5}\|1000000` | _42μs_ | +| `toRegexRange(1, 10000000)` | `[1-9]\|[1-9][0-9]{1,6}\|10000000` | _42μs_ | + +## Heads up! + +**Order of arguments** + +When the `min` is larger than the `max`, values will be flipped to create a valid range: + +```js +toRegexRange('51', '29'); +``` + +Is effectively flipped to: + +```js +toRegexRange('29', '51'); +//=> 29|[3-4][0-9]|5[0-1] +``` + +**Steps / increments** + +This library does not support steps (increments). A pr to add support would be welcome. + +## History + +### v2.0.0 - 2017-04-21 + +**New features** + +Adds support for zero-padding! + +### v1.0.0 + +**Optimizations** + +Repeating ranges are now grouped using quantifiers. rocessing time is roughly the same, but the generated regex is much smaller, which should result in faster matching. + +## Attribution + +Inspired by the python library [range-regex](https://github.com/dimka665/range-regex). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by micromatch.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") +* [repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element "Create an array by repeating the given value n times.") +* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string "Repeat the given string n times. Fastest implementation for repeating a string.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 63 | [jonschlinkert](https://github.com/jonschlinkert) | +| 3 | [doowb](https://github.com/doowb) | +| 2 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 07, 2019._ \ No newline at end of file diff --git a/node_modules/to-regex-range/index.js b/node_modules/to-regex-range/index.js new file mode 100644 index 00000000..77fbaced --- /dev/null +++ b/node_modules/to-regex-range/index.js @@ -0,0 +1,288 @@ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +const isNumber = require('is-number'); + +const toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } + + if (max === void 0 || min === max) { + return String(min); + } + + if (isNumber(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } + + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } + + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + + let a = Math.min(min, max); + let b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + + let isPadded = hasPadding(min) || hasPadding(max); + let state = { min, max, a, b }; + let positives = []; + let negatives = []; + + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { + state.result = `(?:${state.result})`; + } + + toRegexRange.cache[cacheKey] = state; + return state.result; +}; + +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; + let onlyPositive = filterPatterns(pos, neg, '', false, options) || []; + let intersected = filterPatterns(neg, pos, '-?', true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} + +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + + let stop = countNines(min, nines); + let stops = new Set([max]); + + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + + stop = countZeros(max + 1, zeros) - 1; + + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + + stops = [...stops]; + stops.sort(compare); + return stops; +} + +/** + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} + */ + +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } + + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; + + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + + if (startDigit === stopDigit) { + pattern += startDigit; + + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit, options); + + } else { + count++; + } + } + + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } + + return { pattern, count: [count], digits }; +} + +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; + + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } + + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } + + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + + for (let ele of arr) { + let { string } = ele; + + // only push if _both_ are negative... + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } + + // or _both_ are positive + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); + } + } + return result; +} + +/** + * Zip strings + */ + +function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + return arr; +} + +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} + +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} + +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} + +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); +} + +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; + } + return ''; +} + +function toCharacterClass(a, b, options) { + return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; +} + +function hasPadding(str) { + return /^-?(0+)\d/.test(str); +} + +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + + switch (diff) { + case 0: + return ''; + case 1: + return relax ? '0?' : '0'; + case 2: + return relax ? '0{0,2}' : '00'; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} + +/** + * Cache + */ + +toRegexRange.cache = {}; +toRegexRange.clearCache = () => (toRegexRange.cache = {}); + +/** + * Expose `toRegexRange` + */ + +module.exports = toRegexRange; diff --git a/node_modules/to-regex-range/package.json b/node_modules/to-regex-range/package.json new file mode 100644 index 00000000..2d628905 --- /dev/null +++ b/node_modules/to-regex-range/package.json @@ -0,0 +1,125 @@ +{ + "_from": "to-regex-range@^5.0.1", + "_id": "to-regex-range@5.0.1", + "_inBundle": false, + "_integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "_location": "/to-regex-range", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "to-regex-range@^5.0.1", + "name": "to-regex-range", + "escapedName": "to-regex-range", + "rawSpec": "^5.0.1", + "saveSpec": null, + "fetchSpec": "^5.0.1" + }, + "_requiredBy": [ + "/fill-range" + ], + "_resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "_shasum": "1648c44aae7c8d988a326018ed72f5b4dd0392e4", + "_spec": "to-regex-range@^5.0.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\fill-range", + "author": { + "name": "Jon Schlinkert", + "url": "https://github.com/jonschlinkert" + }, + "bugs": { + "url": "https://github.com/micromatch/to-regex-range/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Jon Schlinkert", + "url": "http://twitter.com/jonschlinkert" + }, + { + "name": "Rouven Weßling", + "url": "www.rouvenwessling.de" + } + ], + "dependencies": { + "is-number": "^7.0.0" + }, + "deprecated": false, + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", + "devDependencies": { + "fill-range": "^6.0.0", + "gulp-format-md": "^2.0.0", + "mocha": "^6.0.2", + "text-table": "^0.2.0", + "time-diff": "^0.3.1" + }, + "engines": { + "node": ">=8.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/micromatch/to-regex-range", + "keywords": [ + "bash", + "date", + "expand", + "expansion", + "expression", + "glob", + "match", + "match date", + "match number", + "match numbers", + "match year", + "matches", + "matching", + "number", + "numbers", + "numerical", + "range", + "ranges", + "regex", + "regexp", + "regular", + "regular expression", + "sequence" + ], + "license": "MIT", + "main": "index.js", + "name": "to-regex-range", + "repository": { + "type": "git", + "url": "git+https://github.com/micromatch/to-regex-range.git" + }, + "scripts": { + "test": "mocha" + }, + "verb": { + "layout": "default", + "toc": false, + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "helpers": { + "examples": { + "displayName": "examples" + } + }, + "related": { + "list": [ + "expand-range", + "fill-range", + "micromatch", + "repeat-element", + "repeat-string" + ] + } + }, + "version": "5.0.1" +} diff --git a/node_modules/toidentifier/LICENSE b/node_modules/toidentifier/LICENSE new file mode 100644 index 00000000..de22d159 --- /dev/null +++ b/node_modules/toidentifier/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/toidentifier/README.md b/node_modules/toidentifier/README.md new file mode 100644 index 00000000..7c8794e2 --- /dev/null +++ b/node_modules/toidentifier/README.md @@ -0,0 +1,61 @@ +# toidentifier + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][codecov-image]][codecov-url] + +> Convert a string of words to a JavaScript identifier + +## Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install toidentifier +``` + +## Example + +```js +var toIdentifier = require('toidentifier') + +console.log(toIdentifier('Bad Request')) +// => "BadRequest" +``` + +## API + +This CommonJS module exports a single default function: `toIdentifier`. + +### toIdentifier(string) + +Given a string as the argument, it will be transformed according to +the following rules and the new string will be returned: + +1. Split into words separated by space characters (`0x20`). +2. Upper case the first character of each word. +3. Join the words together with no separator. +4. Remove all non-word (`[0-9a-z_]`) characters. + +## License + +[MIT](LICENSE) + +[codecov-image]: https://img.shields.io/codecov/c/github/component/toidentifier.svg +[codecov-url]: https://codecov.io/gh/component/toidentifier +[downloads-image]: https://img.shields.io/npm/dm/toidentifier.svg +[downloads-url]: https://npmjs.org/package/toidentifier +[npm-image]: https://img.shields.io/npm/v/toidentifier.svg +[npm-url]: https://npmjs.org/package/toidentifier +[travis-image]: https://img.shields.io/travis/component/toidentifier/master.svg +[travis-url]: https://travis-ci.org/component/toidentifier + + +## + +[npm]: https://www.npmjs.com/ + +[yarn]: https://yarnpkg.com/ diff --git a/node_modules/toidentifier/index.js b/node_modules/toidentifier/index.js new file mode 100644 index 00000000..bba54114 --- /dev/null +++ b/node_modules/toidentifier/index.js @@ -0,0 +1,30 @@ +/*! + * toidentifier + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module exports. + * @public + */ + +module.exports = toIdentifier + +/** + * Trasform the given string into a JavaScript identifier + * + * @param {string} str + * @returns {string} + * @public + */ + +function toIdentifier (str) { + return str + .split(' ') + .map(function (token) { + return token.slice(0, 1).toUpperCase() + token.slice(1) + }) + .join('') + .replace(/[^ _0-9a-z]/gi, '') +} diff --git a/node_modules/toidentifier/package.json b/node_modules/toidentifier/package.json new file mode 100644 index 00000000..4d49eff7 --- /dev/null +++ b/node_modules/toidentifier/package.json @@ -0,0 +1,76 @@ +{ + "_from": "toidentifier@1.0.0", + "_id": "toidentifier@1.0.0", + "_inBundle": false, + "_integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "_location": "/toidentifier", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "toidentifier@1.0.0", + "name": "toidentifier", + "escapedName": "toidentifier", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/http-errors" + ], + "_resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "_shasum": "7e1be3470f1e77948bc43d94a3c8f4d7752ba553", + "_spec": "toidentifier@1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\http-errors", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/component/toidentifier/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Nick Baugh", + "email": "niftylettuce@gmail.com", + "url": "http://niftylettuce.com/" + } + ], + "deprecated": false, + "description": "Convert a string of words to a JavaScript identifier", + "devDependencies": { + "eslint": "4.19.1", + "eslint-config-standard": "11.0.0", + "eslint-plugin-import": "2.11.0", + "eslint-plugin-markdown": "1.0.0-beta.6", + "eslint-plugin-node": "6.0.1", + "eslint-plugin-promise": "3.7.0", + "eslint-plugin-standard": "3.1.0", + "mocha": "1.21.5", + "nyc": "11.8.0" + }, + "engines": { + "node": ">=0.6" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/component/toidentifier#readme", + "license": "MIT", + "name": "toidentifier", + "repository": { + "type": "git", + "url": "git+https://github.com/component/toidentifier.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "version": "1.0.0" +} diff --git a/node_modules/touch/LICENSE b/node_modules/touch/LICENSE new file mode 100644 index 00000000..05eeeb88 --- /dev/null +++ b/node_modules/touch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +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 +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/node_modules/touch/README.md b/node_modules/touch/README.md new file mode 100644 index 00000000..b5a361e6 --- /dev/null +++ b/node_modules/touch/README.md @@ -0,0 +1,52 @@ +# node-touch + +For all your node touching needs. + +## Installing + +```bash +npm install touch +``` + +## CLI Usage: + +See `man touch` + +This package exports a binary called `nodetouch` that works mostly +like the unix builtin `touch(1)`. + +## API Usage: + +```javascript +var touch = require("touch") +``` + +Gives you the following functions: + +* `touch(filename, options, cb)` +* `touch.sync(filename, options)` +* `touch.ftouch(fd, options, cb)` +* `touch.ftouchSync(fd, options)` + +All the `options` objects are optional. + +All the async functions return a Promise. If a callback function is +provided, then it's attached to the Promise. + +## Options + +* `force` like `touch -f` Boolean +* `time` like `touch -t ` Can be a Date object, or any parseable + Date string, or epoch ms number. +* `atime` like `touch -a` Can be either a Boolean, or a Date. +* `mtime` like `touch -m` Can be either a Boolean, or a Date. +* `ref` like `touch -r ` Must be path to a file. +* `nocreate` like `touch -c` Boolean + +If neither `atime` nor `mtime` are set, then both values are set. If +one of them is set, then the other is not. + +## cli + +This package creates a `nodetouch` command line executable that works +very much like the unix builtin `touch(1)` diff --git a/node_modules/touch/bin/nodetouch.js b/node_modules/touch/bin/nodetouch.js new file mode 100644 index 00000000..f78f0829 --- /dev/null +++ b/node_modules/touch/bin/nodetouch.js @@ -0,0 +1,112 @@ +#!/usr/bin/env node +const touch = require("../index.js") + +const usage = code => { + console[code ? 'error' : 'log']( + 'usage:\n' + + 'touch [-acfm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...' + ) + process.exit(code) +} + +const singleFlags = { + a: 'atime', + m: 'mtime', + c: 'nocreate', + f: 'force' +} + +const singleOpts = { + r: 'ref', + t: 'time' +} + +const files = [] +const args = process.argv.slice(2) +const options = {} +for (let i = 0; i < args.length; i++) { + const arg = args[i] + if (!arg.match(/^-/)) { + files.push(arg) + continue + } + + // expand shorthands + if (arg.charAt(1) !== '-') { + const expand = [] + for (let f = 1; f < arg.length; f++) { + const fc = arg.charAt(f) + const sf = singleFlags[fc] + const so = singleOpts[fc] + if (sf) + expand.push('--' + sf) + else if (so) { + const soslice = arg.slice(f + 1) + const soval = soslice.charAt(0) === '=' ? soslice : '=' + soslice + expand.push('--' + so + soval) + f = arg.length + } else if (arg !== '-' + fc) + expand.push('-' + fc) + } + if (expand.length) { + args.splice.apply(args, [i, 1].concat(expand)) + i-- + continue + } + } + + const argsplit = arg.split('=') + const key = argsplit.shift().replace(/^\-\-/, '') + const val = argsplit.length ? argsplit.join('=') : null + + switch (key) { + case 'time': + const timestr = val || args[++i] + // [-t [[CC]YY]MMDDhhmm[.SS]] + const parsedtime = timestr.match( + /^(([0-9]{2})?([0-9]{2}))?([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})(\.([0-9]{2}))?$/ + ) + if (!parsedtime) { + console.error('touch: out of range or illegal ' + + 'time specification: ' + + '[[CC]YY]MMDDhhmm[.SS]') + process.exit(1) + } else { + const y = +parsedtime[1] + const year = parsedtime[2] ? y + : y <= 68 ? 2000 + y + : 1900 + y + + const MM = +parsedtime[4] - 1 + const dd = +parsedtime[5] + const hh = +parsedtime[6] + const mm = +parsedtime[7] + const ss = +parsedtime[8] + + options.time = new Date(Date.UTC(year, MM, dd, hh, mm, ss)) + } + continue + + case 'ref': + options.ref = val || args[++i] + continue + + case 'mtime': + case 'nocreate': + case 'atime': + case 'force': + options[key] = true + continue + + default: + console.error('touch: illegal option -- ' + arg) + usage(1) + } +} + +if (!files.length) + usage() + +process.exitCode = 0 +Promise.all(files.map(f => touch(f, options))) + .catch(er => process.exitCode = 1) diff --git a/node_modules/touch/index.js b/node_modules/touch/index.js new file mode 100644 index 00000000..f942e42a --- /dev/null +++ b/node_modules/touch/index.js @@ -0,0 +1,224 @@ +'use strict' + +const EE = require('events').EventEmitter +const cons = require('constants') +const fs = require('fs') + +module.exports = (f, options, cb) => { + if (typeof options === 'function') + cb = options, options = {} + + const p = new Promise((res, rej) => { + new Touch(validOpts(options, f, null)) + .on('done', res).on('error', rej) + }) + + return cb ? p.then(res => cb(null, res), cb) : p +} + +module.exports.sync = module.exports.touchSync = (f, options) => + (new TouchSync(validOpts(options, f, null)), undefined) + +module.exports.ftouch = (fd, options, cb) => { + if (typeof options === 'function') + cb = options, options = {} + + const p = new Promise((res, rej) => { + new Touch(validOpts(options, null, fd)) + .on('done', res).on('error', rej) + }) + + return cb ? p.then(res => cb(null, res), cb) : p +} + +module.exports.ftouchSync = (fd, opt) => + (new TouchSync(validOpts(opt, null, fd)), undefined) + +const validOpts = (options, path, fd) => { + options = Object.create(options || {}) + options.fd = fd + options.path = path + + // {mtime: true}, {ctime: true} + // If set to something else, then treat as epoch ms value + const now = parseInt(new Date(options.time || Date.now()).getTime() / 1000) + if (!options.atime && !options.mtime) + options.atime = options.mtime = now + else { + if (true === options.atime) + options.atime = now + + if (true === options.mtime) + options.mtime = now + } + + let oflags = 0 + if (!options.force) + oflags = oflags | cons.O_RDWR + + if (!options.nocreate) + oflags = oflags | cons.O_CREAT + + options.oflags = oflags + return options +} + +class Touch extends EE { + constructor (options) { + super(options) + this.fd = options.fd + this.path = options.path + this.atime = options.atime + this.mtime = options.mtime + this.ref = options.ref + this.nocreate = !!options.nocreate + this.force = !!options.force + this.closeAfter = options.closeAfter + this.oflags = options.oflags + this.options = options + + if (typeof this.fd !== 'number') { + this.closeAfter = true + this.open() + } else + this.onopen(null, this.fd) + } + + emit (ev, data) { + // we only emit when either done or erroring + // in both cases, need to close + this.close() + return super.emit(ev, data) + } + + close () { + if (typeof this.fd === 'number' && this.closeAfter) + fs.close(this.fd, () => {}) + } + + open () { + fs.open(this.path, this.oflags, (er, fd) => this.onopen(er, fd)) + } + + onopen (er, fd) { + if (er) { + if (er.code === 'EISDIR') + this.onopen(null, null) + else if (er.code === 'ENOENT' && this.nocreate) + this.emit('done') + else + this.emit('error', er) + } else { + this.fd = fd + if (this.ref) + this.statref() + else if (!this.atime || !this.mtime) + this.fstat() + else + this.futimes() + } + } + + statref () { + fs.stat(this.ref, (er, st) => { + if (er) + this.emit('error', er) + else + this.onstatref(st) + }) + } + + onstatref (st) { + this.atime = this.atime && parseInt(st.atime.getTime()/1000, 10) + this.mtime = this.mtime && parseInt(st.mtime.getTime()/1000, 10) + if (!this.atime || !this.mtime) + this.fstat() + else + this.futimes() + } + + fstat () { + const stat = this.fd ? 'fstat' : 'stat' + const target = this.fd || this.path + fs[stat](target, (er, st) => { + if (er) + this.emit('error', er) + else + this.onfstat(st) + }) + } + + onfstat (st) { + if (typeof this.atime !== 'number') + this.atime = parseInt(st.atime.getTime()/1000, 10) + + if (typeof this.mtime !== 'number') + this.mtime = parseInt(st.mtime.getTime()/1000, 10) + + this.futimes() + } + + futimes () { + const utimes = this.fd ? 'futimes' : 'utimes' + const target = this.fd || this.path + fs[utimes](target, ''+this.atime, ''+this.mtime, er => { + if (er) + this.emit('error', er) + else + this.emit('done') + }) + } +} + +class TouchSync extends Touch { + open () { + try { + this.onopen(null, fs.openSync(this.path, this.oflags)) + } catch (er) { + this.onopen(er) + } + } + + statref () { + let threw = true + try { + this.onstatref(fs.statSync(this.ref)) + threw = false + } finally { + if (threw) + this.close() + } + } + + fstat () { + let threw = true + const stat = this.fd ? 'fstatSync' : 'statSync' + const target = this.fd || this.path + try { + this.onfstat(fs[stat](target)) + threw = false + } finally { + if (threw) + this.close() + } + } + + futimes () { + let threw = true + const utimes = this.fd ? 'futimesSync' : 'utimesSync' + const target = this.fd || this.path + try { + fs[utimes](target, this.atime, this.mtime) + threw = false + } finally { + if (threw) + this.close() + } + this.emit('done') + } + + close () { + if (typeof this.fd === 'number' && this.closeAfter) + try { fs.closeSync(this.fd) } catch (er) {} + } +} diff --git a/node_modules/touch/package.json b/node_modules/touch/package.json new file mode 100644 index 00000000..92ef62cc --- /dev/null +++ b/node_modules/touch/package.json @@ -0,0 +1,64 @@ +{ + "_from": "touch@^3.1.0", + "_id": "touch@3.1.0", + "_inBundle": false, + "_integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "_location": "/touch", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "touch@^3.1.0", + "name": "touch", + "escapedName": "touch", + "rawSpec": "^3.1.0", + "saveSpec": null, + "fetchSpec": "^3.1.0" + }, + "_requiredBy": [ + "/nodemon" + ], + "_resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "_shasum": "fe365f5f75ec9ed4e56825e0bb76d24ab74af83b", + "_spec": "touch@^3.1.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\nodemon", + "author": { + "name": "Isaac Z. Schlueter", + "email": "i@izs.me", + "url": "http://blog.izs.me/" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + }, + "bugs": { + "url": "https://github.com/isaacs/node-touch/issues" + }, + "bundleDependencies": false, + "dependencies": { + "nopt": "~1.0.10" + }, + "deprecated": false, + "description": "like touch(1) in node", + "devDependencies": { + "mutate-fs": "^1.1.0", + "tap": "^10.7.0" + }, + "files": [ + "index.js", + "bin/nodetouch.js" + ], + "homepage": "https://github.com/isaacs/node-touch#readme", + "license": "ISC", + "name": "touch", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-touch.git" + }, + "scripts": { + "postpublish": "git push origin --all; git push origin --tags", + "postversion": "npm publish", + "preversion": "npm test", + "test": "tap test/*.js --100 -J" + }, + "version": "3.1.0" +} diff --git a/node_modules/tough-cookie/LICENSE b/node_modules/tough-cookie/LICENSE new file mode 100644 index 00000000..22204e87 --- /dev/null +++ b/node_modules/tough-cookie/LICENSE @@ -0,0 +1,12 @@ +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/node_modules/tough-cookie/README.md b/node_modules/tough-cookie/README.md new file mode 100644 index 00000000..656a2555 --- /dev/null +++ b/node_modules/tough-cookie/README.md @@ -0,0 +1,527 @@ +[RFC6265](https://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js + +[![npm package](https://nodei.co/npm/tough-cookie.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/tough-cookie/) + +[![Build Status](https://travis-ci.org/salesforce/tough-cookie.png?branch=master)](https://travis-ci.org/salesforce/tough-cookie) + +# Synopsis + +``` javascript +var tough = require('tough-cookie'); +var Cookie = tough.Cookie; +var cookie = Cookie.parse(header); +cookie.value = 'somethingdifferent'; +header = cookie.toString(); + +var cookiejar = new tough.CookieJar(); +cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb); +// ... +cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) { + res.headers['cookie'] = cookies.join('; '); +}); +``` + +# Installation + +It's _so_ easy! + +`npm install tough-cookie` + +Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken. + +## Version Support + +Support for versions of node.js will follow that of the [request](https://www.npmjs.com/package/request) module. + +# API + +## tough + +Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound". + +**Note**: prior to 1.0.x, several of these functions took a `strict` parameter. This has since been removed from the API as it was no longer necessary. + +### `parseDate(string)` + +Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. + +### `formatDate(date)` + +Format a Date into a RFC1123 string (the RFC6265-recommended format). + +### `canonicalDomain(str)` + +Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects). + +### `domainMatch(str,domStr[,canonicalize=true])` + +Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match". + +The `canonicalize` parameter will run the other two parameters through `canonicalDomain` or not. + +### `defaultPath(path)` + +Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC. + +The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output. + +### `pathMatch(reqPath,cookiePath)` + +Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean. + +This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`. + +### `parse(cookieString[, options])` + +alias for `Cookie.parse(cookieString[, options])` + +### `fromJSON(string)` + +alias for `Cookie.fromJSON(string)` + +### `getPublicSuffix(hostname)` + +Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it. + +For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`. + +For further information, see http://publicsuffix.org/. This module derives its list from that site. This call is currently a wrapper around [`psl`](https://www.npmjs.com/package/psl)'s [get() method](https://www.npmjs.com/package/psl#pslgetdomain). + +### `cookieCompare(a,b)` + +For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). The sort algorithm is, in order of precedence: + +* Longest `.path` +* oldest `.creation` (which has a 1ms precision, same as `Date`) +* lowest `.creationIndex` (to get beyond the 1ms precision) + +``` javascript +var cookies = [ /* unsorted array of Cookie objects */ ]; +cookies = cookies.sort(cookieCompare); +``` + +**Note**: Since JavaScript's `Date` is limited to a 1ms precision, cookies within the same milisecond are entirely possible. This is especially true when using the `now` option to `.setCookie()`. The `.creationIndex` property is a per-process global counter, assigned during construction with `new Cookie()`. This preserves the spirit of the RFC sorting: older cookies go first. This works great for `MemoryCookieStore`, since `Set-Cookie` headers are parsed in order, but may not be so great for distributed systems. Sophisticated `Store`s may wish to set this to some other _logical clock_ such that if cookies A and B are created in the same millisecond, but cookie A is created before cookie B, then `A.creationIndex < B.creationIndex`. If you want to alter the global counter, which you probably _shouldn't_ do, it's stored in `Cookie.cookiesCreated`. + +### `permuteDomain(domain)` + +Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores. + +### `permutePath(path)` + +Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores. + + +## Cookie + +Exported via `tough.Cookie`. + +### `Cookie.parse(cookieString[, options])` + +Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed. + +The options parameter is not required and currently has only one property: + + * _loose_ - boolean - if `true` enable parsing of key-less cookies like `=abc` and `=`, which are not RFC-compliant. + +If options is not an object, it is ignored, which means you can use `Array#map` with it. + +Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response: + +``` javascript +if (res.headers['set-cookie'] instanceof Array) + cookies = res.headers['set-cookie'].map(Cookie.parse); +else + cookies = [Cookie.parse(res.headers['set-cookie'])]; +``` + +_Note:_ in version 2.3.3, tough-cookie limited the number of spaces before the `=` to 256 characters. This limitation has since been removed. +See [Issue 92](https://github.com/salesforce/tough-cookie/issues/92) + +### Properties + +Cookie object properties: + + * _key_ - string - the name or key of the cookie (default "") + * _value_ - string - the value of the cookie (default "") + * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()` + * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()` + * _domain_ - string - the `Domain=` attribute of the cookie + * _path_ - string - the `Path=` of the cookie + * _secure_ - boolean - the `Secure` cookie flag + * _httpOnly_ - boolean - the `HttpOnly` cookie flag + * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside) + * _creation_ - `Date` - when this cookie was constructed + * _creationIndex_ - number - set at construction, used to provide greater sort precision (please see `cookieCompare(a,b)` for a full explanation) + +After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes: + + * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied) + * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one. + * _creation_ - `Date` - **modified** from construction to when the cookie was added to the jar + * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute. + +### `Cookie([{properties}])` + +Receives an options object that can contain any of the above Cookie properties, uses the default for unspecified properties. + +### `.toString()` + +encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`. + +### `.cookieString()` + +encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '='). + +### `.setExpires(String)` + +sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set. + +### `.setMaxAge(number)` + +sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly. + +### `.expiryTime([now=Date.now()])` + +### `.expiryDate([now=Date.now()])` + +expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds. + +Max-Age takes precedence over Expires (as per the RFC). The `.creation` attribute -- or, by default, the `now` parameter -- is used to offset the `.maxAge` attribute. + +If Expires (`.expires`) is set, that's returned. + +Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents). + +### `.TTL([now=Date.now()])` + +compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply. + +The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned. + +### `.canonicalizedDomain()` + +### `.cdomain()` + +return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters. + +### `.toJSON()` + +For convenience in using `JSON.serialize(cookie)`. Returns a plain-old `Object` that can be JSON-serialized. + +Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are exported in ISO format (`.toISOString()`). + +**NOTE**: Custom `Cookie` properties will be discarded. In tough-cookie 1.x, since there was no `.toJSON` method explicitly defined, all enumerable properties were captured. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array. + +### `Cookie.fromJSON(strOrObj)` + +Does the reverse of `cookie.toJSON()`. If passed a string, will `JSON.parse()` that first. + +Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are parsed via `Date.parse()`, not the tough-cookie `parseDate`, since it's JavaScript/JSON-y timestamps being handled at this layer. + +Returns `null` upon JSON parsing error. + +### `.clone()` + +Does a deep clone of this cookie, exactly implemented as `Cookie.fromJSON(cookie.toJSON())`. + +### `.validate()` + +Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive. + +validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct: + +``` javascript +if (cookie.validate() === true) { + // it's tasty +} else { + // yuck! +} +``` + + +## CookieJar + +Exported via `tough.CookieJar`. + +### `CookieJar([store],[options])` + +Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used. + +The `options` object can be omitted and can have the following properties: + + * _rejectPublicSuffixes_ - boolean - default `true` - reject cookies with domains like "com" and "co.uk" + * _looseMode_ - boolean - default `false` - accept malformed cookies like `bar` and `=bar`, which have an implied empty name. + This is not in the standard, but is used sometimes on the web and is accepted by (most) browsers. + +Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods. + +### `.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))` + +Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.creation`, `.lastAccessed` and `.hostOnly` properties. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. `Store` errors aren't ignored by this option. + +As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual). + +### `.setCookieSync(cookieOrString, currentUrl, [{options}])` + +Synchronous version of `setCookie`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). + +### `.getCookies(currentUrl, [{options},] cb(err,cookies))` + +Retrieve the list of cookies that can be sent in a Cookie header for the current url. + +If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given. + +The `options` object can be omitted and can have the following properties: + + * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies. + * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`. + * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies + * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially). + * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the underlying store (the default `MemoryCookieStore` supports it). + +The `.lastAccessed` property of the returned cookies will have been updated. + +### `.getCookiesSync(currentUrl, [{options}])` + +Synchronous version of `getCookies`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). + +### `.getCookieString(...)` + +Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`. + +### `.getCookieStringSync(...)` + +Synchronous version of `getCookieString`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). + +### `.getSetCookieStrings(...)` + +Returns an array of strings suitable for **Set-Cookie** headers. Accepts the same options as `.getCookies()`. Simply maps the cookie array via `.toString()`. + +### `.getSetCookieStringsSync(...)` + +Synchronous version of `getSetCookieStrings`; only works with synchronous stores (e.g. the default `MemoryCookieStore`). + +### `.serialize(cb(err,serializedObject))` + +Serialize the Jar if the underlying store supports `.getAllCookies`. + +**NOTE**: Custom `Cookie` properties will be discarded. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array. + +See [Serialization Format]. + +### `.serializeSync()` + +Sync version of .serialize + +### `.toJSON()` + +Alias of .serializeSync() for the convenience of `JSON.stringify(cookiejar)`. + +### `CookieJar.deserialize(serialized, [store], cb(err,object))` + +A new Jar is created and the serialized Cookies are added to the underlying store. Each `Cookie` is added via `store.putCookie` in the order in which they appear in the serialization. + +The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. + +As a convenience, if `serialized` is a string, it is passed through `JSON.parse` first. If that throws an error, this is passed to the callback. + +### `CookieJar.deserializeSync(serialized, [store])` + +Sync version of `.deserialize`. _Note_ that the `store` must be synchronous for this to work. + +### `CookieJar.fromJSON(string)` + +Alias of `.deserializeSync` to provide consistency with `Cookie.fromJSON()`. + +### `.clone([store,]cb(err,newJar))` + +Produces a deep clone of this jar. Modifications to the original won't affect the clone, and vice versa. + +The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. Transferring between store types is supported so long as the source implements `.getAllCookies()` and the destination implements `.putCookie()`. + +### `.cloneSync([store])` + +Synchronous version of `.clone`, returning a new `CookieJar` instance. + +The `store` argument is optional, but must be a _synchronous_ `Store` instance if specified. If not passed, a new instance of `MemoryCookieStore` is used. + +The _source_ and _destination_ must both be synchronous `Store`s. If one or both stores are asynchronous, use `.clone` instead. Recall that `MemoryCookieStore` supports both synchronous and asynchronous API calls. + +### `.removeAllCookies(cb(err))` + +Removes all cookies from the jar. + +This is a new backwards-compatible feature of `tough-cookie` version 2.5, so not all Stores will implement it efficiently. For Stores that do not implement `removeAllCookies`, the fallback is to call `removeCookie` after `getAllCookies`. If `getAllCookies` fails or isn't implemented in the Store, that error is returned. If one or more of the `removeCookie` calls fail, only the first error is returned. + +### `.removeAllCookiesSync()` + +Sync version of `.removeAllCookies()` + +## Store + +Base class for CookieJar stores. Available as `tough.Store`. + +## Store API + +The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores. + +Stores should inherit from the base `Store` class, which is available as `require('tough-cookie').Store`. + +Stores are asynchronous by default, but if `store.synchronous` is set to `true`, then the `*Sync` methods on the of the containing `CookieJar` can be used (however, the continuation-passing style + +All `domain` parameters will have been normalized before calling. + +The Cookie store must have all of the following methods. + +### `store.findCookie(domain, path, key, cb(err,cookie))` + +Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned. + +Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error). + +### `store.findCookies(domain, path, cb(err,cookies))` + +Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above. + +If no cookies are found, the callback MUST be passed an empty array. + +The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done. + +As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only). + +### `store.putCookie(cookie, cb(err))` + +Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur. + +The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties. + +Pass an error if the cookie cannot be stored. + +### `store.updateCookie(oldCookie, newCookie, cb(err))` + +Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store. + +The `.lastAccessed` property will always be different between the two objects (to the precision possible via JavaScript's clock). Both `.creation` and `.creationIndex` are guaranteed to be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are selected for automatic deletion (e.g., least-recently-used, which is up to the store to implement). + +Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object. + +The `newCookie` and `oldCookie` objects MUST NOT be modified. + +Pass an error if the newCookie cannot be stored. + +### `store.removeCookie(domain, path, key, cb(err))` + +Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint). + +The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie. + +### `store.removeCookies(domain, path, cb(err))` + +Removes matching cookies from the store. The `path` parameter is optional, and if missing means all paths in a domain should be removed. + +Pass an error ONLY if removing any existing cookies failed. + +### `store.removeAllCookies(cb(err))` + +_Optional_. Removes all cookies from the store. + +Pass an error if one or more cookies can't be removed. + +**Note**: New method as of `tough-cookie` version 2.5, so not all Stores will implement this, plus some stores may choose not to implement this. + +### `store.getAllCookies(cb(err, cookies))` + +_Optional_. Produces an `Array` of all cookies during `jar.serialize()`. The items in the array can be true `Cookie` objects or generic `Object`s with the [Serialization Format] data structure. + +Cookies SHOULD be returned in creation order to preserve sorting via `compareCookies()`. For reference, `MemoryCookieStore` will sort by `.creationIndex` since it uses true `Cookie` objects internally. If you don't return the cookies in creation order, they'll still be sorted by creation time, but this only has a precision of 1ms. See `compareCookies` for more detail. + +Pass an error if retrieval fails. + +**Note**: not all Stores can implement this due to technical limitations, so it is optional. + +## MemoryCookieStore + +Inherits from `Store`. + +A just-in-memory CookieJar synchronous store implementation, used by default. Despite being a synchronous implementation, it's usable with both the synchronous and asynchronous forms of the `CookieJar` API. Supports serialization, `getAllCookies`, and `removeAllCookies`. + +## Community Cookie Stores + +These are some Store implementations authored and maintained by the community. They aren't official and we don't vouch for them but you may be interested to have a look: + +- [`db-cookie-store`](https://github.com/JSBizon/db-cookie-store): SQL including SQLite-based databases +- [`file-cookie-store`](https://github.com/JSBizon/file-cookie-store): Netscape cookie file format on disk +- [`redis-cookie-store`](https://github.com/benkroeger/redis-cookie-store): Redis +- [`tough-cookie-filestore`](https://github.com/mitsuru/tough-cookie-filestore): JSON on disk +- [`tough-cookie-web-storage-store`](https://github.com/exponentjs/tough-cookie-web-storage-store): DOM localStorage and sessionStorage + + +# Serialization Format + +**NOTE**: if you want to have custom `Cookie` properties serialized, add the property name to `Cookie.serializableProperties`. + +```js + { + // The version of tough-cookie that serialized this jar. + version: 'tough-cookie@1.x.y', + + // add the store type, to make humans happy: + storeType: 'MemoryCookieStore', + + // CookieJar configuration: + rejectPublicSuffixes: true, + // ... future items go here + + // Gets filled from jar.store.getAllCookies(): + cookies: [ + { + key: 'string', + value: 'string', + // ... + /* other Cookie.serializableProperties go here */ + } + ] + } +``` + +# Copyright and License + +BSD-3-Clause: + +```text + 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/node_modules/tough-cookie/lib/cookie.js b/node_modules/tough-cookie/lib/cookie.js new file mode 100644 index 00000000..32dc0f8d --- /dev/null +++ b/node_modules/tough-cookie/lib/cookie.js @@ -0,0 +1,1482 @@ +/*! + * 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 + * *DIGIT ( non-digit *OCTET ) + * or + * *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= 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 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=0.8" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/salesforce/tough-cookie", + "keywords": [ + "HTTP", + "cookie", + "cookies", + "set-cookie", + "cookiejar", + "jar", + "RFC6265", + "RFC2965" + ], + "license": "BSD-3-Clause", + "main": "./lib/cookie", + "name": "tough-cookie", + "repository": { + "type": "git", + "url": "git://github.com/salesforce/tough-cookie.git" + }, + "scripts": { + "cover": "nyc --reporter=lcov --reporter=html vows test/*_test.js", + "test": "vows test/*_test.js", + "version": "genversion lib/version.js && git add lib/version.js" + }, + "version": "2.5.0" +} diff --git a/node_modules/tree-kill/LICENSE b/node_modules/tree-kill/LICENSE new file mode 100644 index 00000000..aa86c2df --- /dev/null +++ b/node_modules/tree-kill/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Peter Krumins + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/tree-kill/README.md b/node_modules/tree-kill/README.md new file mode 100644 index 00000000..59a00ea1 --- /dev/null +++ b/node_modules/tree-kill/README.md @@ -0,0 +1,89 @@ +Tree Kill +========= + +Kill all processes in the process tree, including the root process. + +Examples +======= + +Kill all the descendent processes of the process with pid `1`, including the process with pid `1` itself: +```js +var kill = require('tree-kill'); +kill(1); +``` + +Send a signal other than SIGTERM.: +```js +var kill = require('tree-kill'); +kill(1, 'SIGKILL'); +``` + +Run a callback when done killing the processes. Passes an error argument if there was an error. +```js +var kill = require('tree-kill'); +kill(1, 'SIGKILL', function(err) { + // Do things +}); +``` + +You can also install tree-kill globally and use it as a command: +```sh +tree-kill 1 # sends SIGTERM to process 1 and its descendents +tree-kill 1 SIGTERM # same +tree-kill 1 SIGKILL # sends KILL instead of TERMINATE +``` + +Methods +======= + +## require('tree-kill')(pid, [signal], [callback]); + +Sends signal `signal` to all children processes of the process with pid `pid`, including `pid`. Signal defaults to `SIGTERM`. + +For Linux, this uses `ps -o pid --no-headers --ppid PID` to find the parent pids of `PID`. + +For Darwin/OSX, this uses `pgrep -P PID` to find the parent pids of `PID`. + +For Windows, this uses `'taskkill /pid PID /T /F'` to kill the process tree. Note that on Windows, sending the different kinds of POSIX signals is not possible. + +Install +======= + +With [npm](https://npmjs.org) do: + +``` +npm install tree-kill +``` + +License +======= + +MIT + +Changelog +========= + + +## [1.2.2] - 2019-12-11 +### Changed +- security fix: sanitize `pid` parameter to fix arbitrary code execution vulnerability + +## [1.2.1] - 2018-11-05 +### Changed +- added missing LICENSE file +- updated TypeScript definitions + +## [1.2.0] - 2017-09-19 +### Added +- TypeScript definitions +### Changed +- `kill(pid, callback)` works. Before you had to use `kill(pid, signal, callback)` + +## [1.1.0] - 2016-05-13 +### Added +- A `tree-kill` CLI + +## [1.0.0] - 2015-09-17 +### Added +- optional callback +- Darwin support diff --git a/node_modules/tree-kill/cli.js b/node_modules/tree-kill/cli.js new file mode 100644 index 00000000..1acb8158 --- /dev/null +++ b/node_modules/tree-kill/cli.js @@ -0,0 +1,14 @@ +#!/usr/bin/env node +kill = require('.') +try { + kill(process.argv[2], process.argv[3], function(err){ + if (err) { + console.log(err.message) + process.exit(1) + } + }) +} +catch (err) { + console.log(err.message) + process.exit(1) +} diff --git a/node_modules/tree-kill/index.d.ts b/node_modules/tree-kill/index.d.ts new file mode 100644 index 00000000..e0b13022 --- /dev/null +++ b/node_modules/tree-kill/index.d.ts @@ -0,0 +1,13 @@ +/** + * Kills process identified by `pid` and all its children + * + * @param pid + * @param signal 'SIGTERM' by default + * @param callback + */ +declare function treeKill(pid: number, callback?: (error?: Error) => void): void; +declare function treeKill(pid: number, signal?: string | number, callback?: (error?: Error) => void): void; + +declare namespace treeKill {} + +export = treeKill; diff --git a/node_modules/tree-kill/index.js b/node_modules/tree-kill/index.js new file mode 100644 index 00000000..8df6a0fb --- /dev/null +++ b/node_modules/tree-kill/index.js @@ -0,0 +1,118 @@ +'use strict'; + +var childProcess = require('child_process'); +var spawn = childProcess.spawn; +var exec = childProcess.exec; + +module.exports = function (pid, signal, callback) { + if (typeof signal === 'function' && callback === undefined) { + callback = signal; + signal = undefined; + } + + pid = parseInt(pid); + if (Number.isNaN(pid)) { + if (callback) { + return callback(new Error("pid must be a number")); + } else { + throw new Error("pid must be a number"); + } + } + + var tree = {}; + var pidsToProcess = {}; + tree[pid] = []; + pidsToProcess[pid] = 1; + + switch (process.platform) { + case 'win32': + exec('taskkill /pid ' + pid + ' /T /F', callback); + break; + case 'darwin': + buildProcessTree(pid, tree, pidsToProcess, function (parentPid) { + return spawn('pgrep', ['-P', parentPid]); + }, function () { + killAll(tree, signal, callback); + }); + break; + // case 'sunos': + // buildProcessTreeSunOS(pid, tree, pidsToProcess, function () { + // killAll(tree, signal, callback); + // }); + // break; + default: // Linux + buildProcessTree(pid, tree, pidsToProcess, function (parentPid) { + return spawn('ps', ['-o', 'pid', '--no-headers', '--ppid', parentPid]); + }, function () { + killAll(tree, signal, callback); + }); + break; + } +}; + +function killAll (tree, signal, callback) { + var killed = {}; + try { + Object.keys(tree).forEach(function (pid) { + tree[pid].forEach(function (pidpid) { + if (!killed[pidpid]) { + killPid(pidpid, signal); + killed[pidpid] = 1; + } + }); + if (!killed[pid]) { + killPid(pid, signal); + killed[pid] = 1; + } + }); + } catch (err) { + if (callback) { + return callback(err); + } else { + throw err; + } + } + if (callback) { + return callback(); + } +} + +function killPid(pid, signal) { + try { + process.kill(parseInt(pid, 10), signal); + } + catch (err) { + if (err.code !== 'ESRCH') throw err; + } +} + +function buildProcessTree (parentPid, tree, pidsToProcess, spawnChildProcessesList, cb) { + var ps = spawnChildProcessesList(parentPid); + var allData = ''; + ps.stdout.on('data', function (data) { + var data = data.toString('ascii'); + allData += data; + }); + + var onClose = function (code) { + delete pidsToProcess[parentPid]; + + if (code != 0) { + // no more parent processes + if (Object.keys(pidsToProcess).length == 0) { + cb(); + } + return; + } + + allData.match(/\d+/g).forEach(function (pid) { + pid = parseInt(pid, 10); + tree[parentPid].push(pid); + tree[pid] = []; + pidsToProcess[pid] = 1; + buildProcessTree(pid, tree, pidsToProcess, spawnChildProcessesList, cb); + }); + }; + + ps.on('close', onClose); +} diff --git a/node_modules/tree-kill/package.json b/node_modules/tree-kill/package.json new file mode 100644 index 00000000..79443446 --- /dev/null +++ b/node_modules/tree-kill/package.json @@ -0,0 +1,79 @@ +{ + "_from": "tree-kill@^1.2.2", + "_id": "tree-kill@1.2.2", + "_inBundle": false, + "_integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "_location": "/tree-kill", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "tree-kill@^1.2.2", + "name": "tree-kill", + "escapedName": "tree-kill", + "rawSpec": "^1.2.2", + "saveSpec": null, + "fetchSpec": "^1.2.2" + }, + "_requiredBy": [ + "/concurrently" + ], + "_resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "_shasum": "4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc", + "_spec": "tree-kill@^1.2.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\concurrently", + "author": { + "name": "Peteris Krumins", + "email": "peteris.krumins@gmail.com", + "url": "http://www.catonmat.net" + }, + "bin": { + "tree-kill": "cli.js" + }, + "bugs": { + "url": "https://github.com/pkrumins/node-tree-kill/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Todd Wolfson", + "email": "todd@twolfson.com", + "url": "http://twolfson.com/" + }, + { + "name": "William Hilton", + "email": "wmhilton@gmail.com", + "url": "http://wmhilton.com/" + }, + { + "name": "Fabrício Matté", + "url": "http://ultcombo.js.org/" + } + ], + "deprecated": false, + "description": "kill trees of processes", + "devDependencies": { + "mocha": "^2.2.5" + }, + "homepage": "https://github.com/pkrumins/node-tree-kill", + "keywords": [ + "tree", + "trees", + "process", + "processes", + "kill", + "signal" + ], + "license": "MIT", + "main": "index.js", + "name": "tree-kill", + "repository": { + "type": "git", + "url": "git://github.com/pkrumins/node-tree-kill.git" + }, + "scripts": { + "test": "mocha" + }, + "types": "index.d.ts", + "version": "1.2.2" +} diff --git a/node_modules/tslib/CopyrightNotice.txt b/node_modules/tslib/CopyrightNotice.txt new file mode 100644 index 00000000..2e4a05cf --- /dev/null +++ b/node_modules/tslib/CopyrightNotice.txt @@ -0,0 +1,15 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +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/node_modules/tslib/LICENSE.txt b/node_modules/tslib/LICENSE.txt new file mode 100644 index 00000000..fa7d1bdf --- /dev/null +++ b/node_modules/tslib/LICENSE.txt @@ -0,0 +1,12 @@ +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +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. \ No newline at end of file diff --git a/node_modules/tslib/README.md b/node_modules/tslib/README.md new file mode 100644 index 00000000..a3911fbe --- /dev/null +++ b/node_modules/tslib/README.md @@ -0,0 +1,142 @@ +# tslib + +This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions. + +This library is primarily used by the `--importHelpers` flag in TypeScript. +When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file: + +```ts +var __assign = (this && this.__assign) || Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; +}; +exports.x = {}; +exports.y = __assign({}, exports.x); + +``` + +will instead be emitted as something like the following: + +```ts +var tslib_1 = require("tslib"); +exports.x = {}; +exports.y = tslib_1.__assign({}, exports.x); +``` + +Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead. +For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`. + +# Installing + +For the latest stable version, run: + +## npm + +```sh +# TypeScript 2.3.3 or later +npm install --save tslib + +# TypeScript 2.3.2 or earlier +npm install --save tslib@1.6.1 +``` + +## yarn + +```sh +# TypeScript 2.3.3 or later +yarn add tslib + +# TypeScript 2.3.2 or earlier +yarn add tslib@1.6.1 +``` + +## bower + +```sh +# TypeScript 2.3.3 or later +bower install tslib + +# TypeScript 2.3.2 or earlier +bower install tslib@1.6.1 +``` + +## JSPM + +```sh +# TypeScript 2.3.3 or later +jspm install tslib + +# TypeScript 2.3.2 or earlier +jspm install tslib@1.6.1 +``` + +# Usage + +Set the `importHelpers` compiler option on the command line: + +``` +tsc --importHelpers file.ts +``` + +or in your tsconfig.json: + +```json +{ + "compilerOptions": { + "importHelpers": true + } +} +``` + +#### For bower and JSPM users + +You will need to add a `paths` mapping for `tslib`, e.g. For Bower users: + +```json +{ + "compilerOptions": { + "module": "amd", + "importHelpers": true, + "baseUrl": "./", + "paths": { + "tslib" : ["bower_components/tslib/tslib.d.ts"] + } + } +} +``` + +For JSPM users: + +```json +{ + "compilerOptions": { + "module": "system", + "importHelpers": true, + "baseUrl": "./", + "paths": { + "tslib" : ["jspm_packages/npm/tslib@1.13.0/tslib.d.ts"] + } + } +} +``` + + +# Contribute + +There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript. + +* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in. +* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls). +* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript). +* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter. +* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md). + +# Documentation + +* [Quick tutorial](http://www.typescriptlang.org/Tutorial) +* [Programming handbook](http://www.typescriptlang.org/Handbook) +* [Homepage](http://www.typescriptlang.org/) diff --git a/node_modules/tslib/package.json b/node_modules/tslib/package.json new file mode 100644 index 00000000..49da04ed --- /dev/null +++ b/node_modules/tslib/package.json @@ -0,0 +1,56 @@ +{ + "_from": "tslib@^1.9.0", + "_id": "tslib@1.13.0", + "_inBundle": false, + "_integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "_location": "/tslib", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "tslib@^1.9.0", + "name": "tslib", + "escapedName": "tslib", + "rawSpec": "^1.9.0", + "saveSpec": null, + "fetchSpec": "^1.9.0" + }, + "_requiredBy": [ + "/rxjs" + ], + "_resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "_shasum": "c881e13cc7015894ed914862d276436fa9a47043", + "_spec": "tslib@^1.9.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\rxjs", + "author": { + "name": "Microsoft Corp." + }, + "bugs": { + "url": "https://github.com/Microsoft/TypeScript/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Runtime library for TypeScript helper functions", + "homepage": "https://www.typescriptlang.org/", + "jsnext:main": "tslib.es6.js", + "keywords": [ + "TypeScript", + "Microsoft", + "compiler", + "language", + "javascript", + "tslib", + "runtime" + ], + "license": "0BSD", + "main": "tslib.js", + "module": "tslib.es6.js", + "name": "tslib", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/tslib.git" + }, + "sideEffects": false, + "typings": "tslib.d.ts", + "version": "1.13.0" +} diff --git a/node_modules/tslib/tslib.d.ts b/node_modules/tslib/tslib.d.ts new file mode 100644 index 00000000..4d7f724c --- /dev/null +++ b/node_modules/tslib/tslib.d.ts @@ -0,0 +1,37 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +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. +***************************************************************************** */ +export declare function __extends(d: Function, b: Function): void; +export declare function __assign(t: any, ...sources: any[]): any; +export declare function __rest(t: any, propertyNames: (string | symbol)[]): any; +export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any; +export declare function __param(paramIndex: number, decorator: Function): Function; +export declare function __metadata(metadataKey: any, metadataValue: any): Function; +export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any; +export declare function __generator(thisArg: any, body: Function): any; +export declare function __exportStar(m: any, exports: any): void; +export declare function __values(o: any): any; +export declare function __read(o: any, n?: number): any[]; +export declare function __spread(...args: any[][]): any[]; +export declare function __spreadArrays(...args: any[][]): any[]; +export declare function __await(v: any): any; +export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any; +export declare function __asyncDelegator(o: any): any; +export declare function __asyncValues(o: any): any; +export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray; +export declare function __importStar(mod: T): T; +export declare function __importDefault(mod: T): T | { default: T }; +export declare function __classPrivateFieldGet(receiver: T, privateMap: { has(o: T): boolean, get(o: T): V | undefined }): V; +export declare function __classPrivateFieldSet(receiver: T, privateMap: { has(o: T): boolean, set(o: T, value: V): any }, value: V): V; +export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void; \ No newline at end of file diff --git a/node_modules/tslib/tslib.es6.html b/node_modules/tslib/tslib.es6.html new file mode 100644 index 00000000..b122e41b --- /dev/null +++ b/node_modules/tslib/tslib.es6.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/node_modules/tslib/tslib.es6.js b/node_modules/tslib/tslib.es6.js new file mode 100644 index 00000000..7fdec025 --- /dev/null +++ b/node_modules/tslib/tslib.es6.js @@ -0,0 +1,218 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +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. +***************************************************************************** */ +/* global Reflect, Promise */ + +var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); +}; + +export function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} + +export var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + } + return __assign.apply(this, arguments); +} + +export function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +export function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +} + +export function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +} + +export function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} + +export function __awaiter(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()); + }); +} + +export function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +} + +export function __createBinding(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +} + +export function __exportStar(m, exports) { + for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; +} + +export function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} + +export function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; +} + +export function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; +} + +export function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; +}; + +export function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +} + +export function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +} + +export function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } +} + +export function __asyncValues(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +} + +export function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; +}; + +export function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result.default = mod; + return result; +} + +export function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; +} + +export function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); +} + +export function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; +} diff --git a/node_modules/tslib/tslib.html b/node_modules/tslib/tslib.html new file mode 100644 index 00000000..44c9ba51 --- /dev/null +++ b/node_modules/tslib/tslib.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/node_modules/tslib/tslib.js b/node_modules/tslib/tslib.js new file mode 100644 index 00000000..fbce0186 --- /dev/null +++ b/node_modules/tslib/tslib.js @@ -0,0 +1,284 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +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. +***************************************************************************** */ + +/* global global, define, System, Reflect, Promise */ +var __extends; +var __assign; +var __rest; +var __decorate; +var __param; +var __metadata; +var __awaiter; +var __generator; +var __exportStar; +var __values; +var __read; +var __spread; +var __spreadArrays; +var __await; +var __asyncGenerator; +var __asyncDelegator; +var __asyncValues; +var __makeTemplateObject; +var __importStar; +var __importDefault; +var __classPrivateFieldGet; +var __classPrivateFieldSet; +var __createBinding; +(function (factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); }); + } + else if (typeof module === "object" && typeof module.exports === "object") { + factory(createExporter(root, createExporter(module.exports))); + } + else { + factory(createExporter(root)); + } + function createExporter(exports, previous) { + if (exports !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports, "__esModule", { value: true }); + } + else { + exports.__esModule = true; + } + } + return function (id, v) { return exports[id] = previous ? previous(id, v) : v; }; + } +}) +(function (exporter) { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + + __extends = function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + + __assign = Object.assign || function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + + __rest = function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + + __decorate = function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + + __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } + }; + + __metadata = function (metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + }; + + __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()); + }); + }; + + __generator = function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + }; + + __createBinding = function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }; + + __exportStar = function (m, exports) { + for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; + }; + + __values = function (o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + + __read = function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } + finally { if (e) throw e.error; } + } + return ar; + }; + + __spread = function () { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + }; + + __spreadArrays = function () { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + }; + + __await = function (v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + }; + + __asyncGenerator = function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + }; + + __asyncDelegator = function (o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + }; + + __asyncValues = function (o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } + }; + + __makeTemplateObject = function (cooked, raw) { + if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + return cooked; + }; + + __importStar = function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; + }; + + __importDefault = function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; + }; + + __classPrivateFieldGet = function (receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); + }; + + __classPrivateFieldSet = function (receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; + }; + + exporter("__extends", __extends); + exporter("__assign", __assign); + exporter("__rest", __rest); + exporter("__decorate", __decorate); + exporter("__param", __param); + exporter("__metadata", __metadata); + exporter("__awaiter", __awaiter); + exporter("__generator", __generator); + exporter("__exportStar", __exportStar); + exporter("__createBinding", __createBinding); + exporter("__values", __values); + exporter("__read", __read); + exporter("__spread", __spread); + exporter("__spreadArrays", __spreadArrays); + exporter("__await", __await); + exporter("__asyncGenerator", __asyncGenerator); + exporter("__asyncDelegator", __asyncDelegator); + exporter("__asyncValues", __asyncValues); + exporter("__makeTemplateObject", __makeTemplateObject); + exporter("__importStar", __importStar); + exporter("__importDefault", __importDefault); + exporter("__classPrivateFieldGet", __classPrivateFieldGet); + exporter("__classPrivateFieldSet", __classPrivateFieldSet); +}); diff --git a/node_modules/tunnel-agent/LICENSE b/node_modules/tunnel-agent/LICENSE new file mode 100644 index 00000000..a4a9aee0 --- /dev/null +++ b/node_modules/tunnel-agent/LICENSE @@ -0,0 +1,55 @@ +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/node_modules/tunnel-agent/README.md b/node_modules/tunnel-agent/README.md new file mode 100644 index 00000000..bb533d56 --- /dev/null +++ b/node_modules/tunnel-agent/README.md @@ -0,0 +1,4 @@ +tunnel-agent +============ + +HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module. diff --git a/node_modules/tunnel-agent/index.js b/node_modules/tunnel-agent/index.js new file mode 100644 index 00000000..3ee9abc5 --- /dev/null +++ b/node_modules/tunnel-agent/index.js @@ -0,0 +1,244 @@ +'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/node_modules/tunnel-agent/package.json b/node_modules/tunnel-agent/package.json new file mode 100644 index 00000000..1233733b --- /dev/null +++ b/node_modules/tunnel-agent/package.json @@ -0,0 +1,55 @@ +{ + "_from": "tunnel-agent@^0.6.0", + "_id": "tunnel-agent@0.6.0", + "_inBundle": false, + "_integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "_location": "/tunnel-agent", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "tunnel-agent@^0.6.0", + "name": "tunnel-agent", + "escapedName": "tunnel-agent", + "rawSpec": "^0.6.0", + "saveSpec": null, + "fetchSpec": "^0.6.0" + }, + "_requiredBy": [ + "/request" + ], + "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "_shasum": "27a5dea06b36b04a0a9966774b290868f0fc40fd", + "_spec": "tunnel-agent@^0.6.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\request", + "author": { + "name": "Mikeal Rogers", + "email": "mikeal.rogers@gmail.com", + "url": "http://www.futurealoof.com" + }, + "bugs": { + "url": "https://github.com/mikeal/tunnel-agent/issues" + }, + "bundleDependencies": false, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "deprecated": false, + "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.", + "devDependencies": {}, + "engines": { + "node": "*" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/mikeal/tunnel-agent#readme", + "license": "Apache-2.0", + "main": "index.js", + "name": "tunnel-agent", + "optionalDependencies": {}, + "repository": { + "url": "git+https://github.com/mikeal/tunnel-agent.git" + }, + "version": "0.6.0" +} diff --git a/node_modules/tweetnacl/.npmignore b/node_modules/tweetnacl/.npmignore new file mode 100644 index 00000000..7d98dcbd --- /dev/null +++ b/node_modules/tweetnacl/.npmignore @@ -0,0 +1,4 @@ +.eslintrc +.travis.yml +bower.json +test diff --git a/node_modules/tweetnacl/AUTHORS.md b/node_modules/tweetnacl/AUTHORS.md new file mode 100644 index 00000000..6d74d406 --- /dev/null +++ b/node_modules/tweetnacl/AUTHORS.md @@ -0,0 +1,28 @@ +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 +* Peter Schwabe +* Sjaak Smetsers +* Tanja Lange +* Wesley Janssen + + +[Poly1305-donna](https://github.com/floodyberry/poly1305-donna) +-------------------------------------------------------------- + +* Andrew Moon (@floodyberry) diff --git a/node_modules/tweetnacl/CHANGELOG.md b/node_modules/tweetnacl/CHANGELOG.md new file mode 100644 index 00000000..92a4fdc5 --- /dev/null +++ b/node_modules/tweetnacl/CHANGELOG.md @@ -0,0 +1,221 @@ +TweetNaCl.js Changelog +====================== + + +v0.14.5 +------- + +* Fixed incomplete return types in TypeScript typings. +* Replaced COPYING.txt with LICENSE file, which now has public domain dedication + text from The Unlicense. License fields in package.json and bower.json have + been set to "Unlicense". The project was and will be in the public domain -- + this change just makes it easier for automated tools to know about this fact by + using the widely recognized and SPDX-compatible template for public domain + dedication. + + +v0.14.4 +------- + +* Added TypeScript type definitions (contributed by @AndSDev). +* Improved benchmarking code. + + +v0.14.3 +------- + +Fixed a bug in the fast version of Poly1305 and brought it back. + +Thanks to @floodyberry for promptly responding and fixing the original C code: + +> "The issue was not properly detecting if st->h was >= 2^130 - 5, coupled with +> [testing mistake] not catching the failure. The chance of the bug affecting +> anything in the real world is essentially zero luckily, but it's good to have +> it fixed." + +https://github.com/floodyberry/poly1305-donna/issues/2#issuecomment-202698577 + + +v0.14.2 +------- + +Switched Poly1305 fast version back to original (slow) version due to a bug. + + +v0.14.1 +------- + +No code changes, just tweaked packaging and added COPYING.txt. + + +v0.14.0 +------- + +* **Breaking change!** All functions from `nacl.util` have been removed. These + functions are no longer available: + + nacl.util.decodeUTF8 + nacl.util.encodeUTF8 + nacl.util.decodeBase64 + nacl.util.encodeBase64 + + If want to continue using them, you can include + package: + + + + + or + + var nacl = require('tweetnacl'); + nacl.util = require('tweetnacl-util'); + + However it is recommended to use better packages that have wider + compatibility and better performance. Functions from `nacl.util` were never + intended to be robust solution for string conversion and were included for + convenience: cryptography library is not the right place for them. + + Currently calling these functions will throw error pointing to + `tweetnacl-util-js` (in the next version this error message will be removed). + +* Improved detection of available random number generators, making it possible + to use `nacl.randomBytes` and related functions in Web Workers without + changes. + +* Changes to testing (see README). + + +v0.13.3 +------- + +No code changes. + +* Reverted license field in package.json to "Public domain". + +* Fixed typo in README. + + +v0.13.2 +------- + +* Fixed undefined variable bug in fast version of Poly1305. No worries, this + bug was *never* triggered. + +* Specified CC0 public domain dedication. + +* Updated development dependencies. + + +v0.13.1 +------- + +* Exclude `crypto` and `buffer` modules from browserify builds. + + +v0.13.0 +------- + +* Made `nacl-fast` the default version in NPM package. Now + `require("tweetnacl")` will use fast version; to get the original version, + use `require("tweetnacl/nacl.js")`. + +* Cleanup temporary array after generating random bytes. + + +v0.12.2 +------- + +* Improved performance of curve operations, making `nacl.scalarMult`, `nacl.box`, + `nacl.sign` and related functions up to 3x faster in `nacl-fast` version. + + +v0.12.1 +------- + +* Significantly improved performance of Salsa20 (~1.5x faster) and + Poly1305 (~3.5x faster) in `nacl-fast` version. + + +v0.12.0 +------- + +* Instead of using the given secret key directly, TweetNaCl.js now copies it to + a new array in `nacl.box.keyPair.fromSecretKey` and + `nacl.sign.keyPair.fromSecretKey`. + + +v0.11.2 +------- + +* Added new constant: `nacl.sign.seedLength`. + + +v0.11.1 +------- + +* Even faster hash for both short and long inputs (in `nacl-fast`). + + +v0.11.0 +------- + +* Implement `nacl.sign.keyPair.fromSeed` to enable creation of sign key pairs + deterministically from a 32-byte seed. (It behaves like + [libsodium's](http://doc.libsodium.org/public-key_cryptography/public-key_signatures.html) + `crypto_sign_seed_keypair`: the seed becomes a secret part of the secret key.) + +* Fast version now has an improved hash implementation that is 2x-5x faster. + +* Fixed benchmarks, which may have produced incorrect measurements. + + +v0.10.1 +------- + +* Exported undocumented `nacl.lowlevel.crypto_core_hsalsa20`. + + +v0.10.0 +------- + +* **Signature API breaking change!** `nacl.sign` and `nacl.sign.open` now deal + with signed messages, and new `nacl.sign.detached` and + `nacl.sign.detached.verify` are available. + + Previously, `nacl.sign` returned a signature, and `nacl.sign.open` accepted a + message and "detached" signature. This was unlike NaCl's API, which dealt with + signed messages (concatenation of signature and message). + + The new API is: + + nacl.sign(message, secretKey) -> signedMessage + nacl.sign.open(signedMessage, publicKey) -> message | null + + Since detached signatures are common, two new API functions were introduced: + + nacl.sign.detached(message, secretKey) -> signature + nacl.sign.detached.verify(message, signature, publicKey) -> true | false + + (Note that it's `verify`, not `open`, and it returns a boolean value, unlike + `open`, which returns an "unsigned" message.) + +* NPM package now comes without `test` directory to keep it small. + + +v0.9.2 +------ + +* Improved documentation. +* Fast version: increased theoretical message size limit from 2^32-1 to 2^52 + bytes in Poly1305 (and thus, secretbox and box). However this has no impact + in practice since JavaScript arrays or ArrayBuffers are limited to 32-bit + indexes, and most implementations won't allocate more than a gigabyte or so. + (Obviously, there are no tests for the correctness of implementation.) Also, + it's not recommended to use messages that large without splitting them into + smaller packets anyway. + + +v0.9.1 +------ + +* Initial release diff --git a/node_modules/tweetnacl/LICENSE b/node_modules/tweetnacl/LICENSE new file mode 100644 index 00000000..cf1ab25d --- /dev/null +++ b/node_modules/tweetnacl/LICENSE @@ -0,0 +1,24 @@ +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 diff --git a/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md b/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..a8eb4a9a --- /dev/null +++ b/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,20 @@ +# 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/node_modules/tweetnacl/README.md b/node_modules/tweetnacl/README.md new file mode 100644 index 00000000..ffb6871d --- /dev/null +++ b/node_modules/tweetnacl/README.md @@ -0,0 +1,459 @@ +TweetNaCl.js +============ + +Port of [TweetNaCl](http://tweetnacl.cr.yp.to) / [NaCl](http://nacl.cr.yp.to/) +to JavaScript for modern browsers and Node.js. Public domain. + +[![Build Status](https://travis-ci.org/dchest/tweetnacl-js.svg?branch=master) +](https://travis-ci.org/dchest/tweetnacl-js) + +Demo: + +**:warning: The library is stable and API is frozen, however it has not been +independently reviewed. If you can help reviewing it, please [contact +me](mailto:dmitry@codingrobots.com).** + +Documentation +============= + +* [Overview](#overview) +* [Installation](#installation) +* [Usage](#usage) + * [Public-key authenticated encryption (box)](#public-key-authenticated-encryption-box) + * [Secret-key authenticated encryption (secretbox)](#secret-key-authenticated-encryption-secretbox) + * [Scalar multiplication](#scalar-multiplication) + * [Signatures](#signatures) + * [Hashing](#hashing) + * [Random bytes generation](#random-bytes-generation) + * [Constant-time comparison](#constant-time-comparison) +* [System requirements](#system-requirements) +* [Development and testing](#development-and-testing) +* [Benchmarks](#benchmarks) +* [Contributors](#contributors) +* [Who uses it](#who-uses-it) + + +Overview +-------- + +The primary goal of this project is to produce a translation of TweetNaCl to +JavaScript which is as close as possible to the original C implementation, plus +a thin layer of idiomatic high-level API on top of it. + +There are two versions, you can use either of them: + +* `nacl.js` is the port of TweetNaCl with minimum differences from the + original + high-level API. + +* `nacl-fast.js` is like `nacl.js`, but with some functions replaced with + faster versions. + + +Installation +------------ + +You can install TweetNaCl.js via a package manager: + +[Bower](http://bower.io): + + $ bower install tweetnacl + +[NPM](https://www.npmjs.org/): + + $ npm install tweetnacl + +or [download source code](https://github.com/dchest/tweetnacl-js/releases). + + +Usage +----- + +All API functions accept and return bytes as `Uint8Array`s. If you need to +encode or decode strings, use functions from + or one of the more robust codec +packages. + +In Node.js v4 and later `Buffer` objects are backed by `Uint8Array`s, so you +can freely pass them to TweetNaCl.js functions as arguments. The returned +objects are still `Uint8Array`s, so if you need `Buffer`s, you'll have to +convert them manually; make sure to convert using copying: `new Buffer(array)`, +instead of sharing: `new Buffer(array.buffer)`, because some functions return +subarrays of their buffers. + + +### Public-key authenticated encryption (box) + +Implements *curve25519-xsalsa20-poly1305*. + +#### nacl.box.keyPair() + +Generates a new random key pair for box and returns it as an object with +`publicKey` and `secretKey` members: + + { + publicKey: ..., // Uint8Array with 32-byte public key + secretKey: ... // Uint8Array with 32-byte secret key + } + + +#### nacl.box.keyPair.fromSecretKey(secretKey) + +Returns a key pair for box with public key corresponding to the given secret +key. + +#### nacl.box(message, nonce, theirPublicKey, mySecretKey) + +Encrypt and authenticates message using peer's public key, our secret key, and +the given nonce, which must be unique for each distinct message for a key pair. + +Returns an encrypted and authenticated message, which is +`nacl.box.overheadLength` longer than the original message. + +#### nacl.box.open(box, nonce, theirPublicKey, mySecretKey) + +Authenticates and decrypts the given box with peer's public key, our secret +key, and the given nonce. + +Returns the original message, or `false` if authentication fails. + +#### nacl.box.before(theirPublicKey, mySecretKey) + +Returns a precomputed shared key which can be used in `nacl.box.after` and +`nacl.box.open.after`. + +#### nacl.box.after(message, nonce, sharedKey) + +Same as `nacl.box`, but uses a shared key precomputed with `nacl.box.before`. + +#### nacl.box.open.after(box, nonce, sharedKey) + +Same as `nacl.box.open`, but uses a shared key precomputed with `nacl.box.before`. + +#### nacl.box.publicKeyLength = 32 + +Length of public key in bytes. + +#### nacl.box.secretKeyLength = 32 + +Length of secret key in bytes. + +#### nacl.box.sharedKeyLength = 32 + +Length of precomputed shared key in bytes. + +#### nacl.box.nonceLength = 24 + +Length of nonce in bytes. + +#### nacl.box.overheadLength = 16 + +Length of overhead added to box compared to original message. + + +### Secret-key authenticated encryption (secretbox) + +Implements *xsalsa20-poly1305*. + +#### nacl.secretbox(message, nonce, key) + +Encrypt and authenticates message using the key and the nonce. The nonce must +be unique for each distinct message for this key. + +Returns an encrypted and authenticated message, which is +`nacl.secretbox.overheadLength` longer than the original message. + +#### nacl.secretbox.open(box, nonce, key) + +Authenticates and decrypts the given secret box using the key and the nonce. + +Returns the original message, or `false` if authentication fails. + +#### nacl.secretbox.keyLength = 32 + +Length of key in bytes. + +#### nacl.secretbox.nonceLength = 24 + +Length of nonce in bytes. + +#### nacl.secretbox.overheadLength = 16 + +Length of overhead added to secret box compared to original message. + + +### Scalar multiplication + +Implements *curve25519*. + +#### nacl.scalarMult(n, p) + +Multiplies an integer `n` by a group element `p` and returns the resulting +group element. + +#### nacl.scalarMult.base(n) + +Multiplies an integer `n` by a standard group element and returns the resulting +group element. + +#### nacl.scalarMult.scalarLength = 32 + +Length of scalar in bytes. + +#### nacl.scalarMult.groupElementLength = 32 + +Length of group element in bytes. + + +### Signatures + +Implements [ed25519](http://ed25519.cr.yp.to). + +#### nacl.sign.keyPair() + +Generates new random key pair for signing and returns it as an object with +`publicKey` and `secretKey` members: + + { + publicKey: ..., // Uint8Array with 32-byte public key + secretKey: ... // Uint8Array with 64-byte secret key + } + +#### nacl.sign.keyPair.fromSecretKey(secretKey) + +Returns a signing key pair with public key corresponding to the given +64-byte secret key. The secret key must have been generated by +`nacl.sign.keyPair` or `nacl.sign.keyPair.fromSeed`. + +#### nacl.sign.keyPair.fromSeed(seed) + +Returns a new signing key pair generated deterministically from a 32-byte seed. +The seed must contain enough entropy to be secure. This method is not +recommended for general use: instead, use `nacl.sign.keyPair` to generate a new +key pair from a random seed. + +#### nacl.sign(message, secretKey) + +Signs the message using the secret key and returns a signed message. + +#### nacl.sign.open(signedMessage, publicKey) + +Verifies the signed message and returns the message without signature. + +Returns `null` if verification failed. + +#### nacl.sign.detached(message, secretKey) + +Signs the message using the secret key and returns a signature. + +#### nacl.sign.detached.verify(message, signature, publicKey) + +Verifies the signature for the message and returns `true` if verification +succeeded or `false` if it failed. + +#### nacl.sign.publicKeyLength = 32 + +Length of signing public key in bytes. + +#### nacl.sign.secretKeyLength = 64 + +Length of signing secret key in bytes. + +#### nacl.sign.seedLength = 32 + +Length of seed for `nacl.sign.keyPair.fromSeed` in bytes. + +#### nacl.sign.signatureLength = 64 + +Length of signature in bytes. + + +### Hashing + +Implements *SHA-512*. + +#### nacl.hash(message) + +Returns SHA-512 hash of the message. + +#### nacl.hash.hashLength = 64 + +Length of hash in bytes. + + +### Random bytes generation + +#### nacl.randomBytes(length) + +Returns a `Uint8Array` of the given length containing random bytes of +cryptographic quality. + +**Implementation note** + +TweetNaCl.js uses the following methods to generate random bytes, +depending on the platform it runs on: + +* `window.crypto.getRandomValues` (WebCrypto standard) +* `window.msCrypto.getRandomValues` (Internet Explorer 11) +* `crypto.randomBytes` (Node.js) + +If the platform doesn't provide a suitable PRNG, the following functions, +which require random numbers, will throw exception: + +* `nacl.randomBytes` +* `nacl.box.keyPair` +* `nacl.sign.keyPair` + +Other functions are deterministic and will continue working. + +If a platform you are targeting doesn't implement secure random number +generator, but you somehow have a cryptographically-strong source of entropy +(not `Math.random`!), and you know what you are doing, you can plug it into +TweetNaCl.js like this: + + nacl.setPRNG(function(x, n) { + // ... copy n random bytes into x ... + }); + +Note that `nacl.setPRNG` *completely replaces* internal random byte generator +with the one provided. + + +### Constant-time comparison + +#### nacl.verify(x, y) + +Compares `x` and `y` in constant time and returns `true` if their lengths are +non-zero and equal, and their contents are equal. + +Returns `false` if either of the arguments has zero length, or arguments have +different lengths, or their contents differ. + + +System requirements +------------------- + +TweetNaCl.js supports modern browsers that have a cryptographically secure +pseudorandom number generator and typed arrays, including the latest versions +of: + +* Chrome +* Firefox +* Safari (Mac, iOS) +* Internet Explorer 11 + +Other systems: + +* Node.js + + +Development and testing +------------------------ + +Install NPM modules needed for development: + + $ npm install + +To build minified versions: + + $ npm run build + +Tests use minified version, so make sure to rebuild it every time you change +`nacl.js` or `nacl-fast.js`. + +### Testing + +To run tests in Node.js: + + $ npm run test-node + +By default all tests described here work on `nacl.min.js`. To test other +versions, set environment variable `NACL_SRC` to the file name you want to test. +For example, the following command will test fast minified version: + + $ NACL_SRC=nacl-fast.min.js npm run test-node + +To run full suite of tests in Node.js, including comparing outputs of +JavaScript port to outputs of the original C version: + + $ npm run test-node-all + +To prepare tests for browsers: + + $ npm run build-test-browser + +and then open `test/browser/test.html` (or `test/browser/test-fast.html`) to +run them. + +To run headless browser tests with `tape-run` (powered by Electron): + + $ npm run test-browser + +(If you get `Error: spawn ENOENT`, install *xvfb*: `sudo apt-get install xvfb`.) + +To run tests in both Node and Electron: + + $ npm test + +### Benchmarking + +To run benchmarks in Node.js: + + $ npm run bench + $ NACL_SRC=nacl-fast.min.js npm run bench + +To run benchmarks in a browser, open `test/benchmark/bench.html` (or +`test/benchmark/bench-fast.html`). + + +Benchmarks +---------- + +For reference, here are benchmarks from MacBook Pro (Retina, 13-inch, Mid 2014) +laptop with 2.6 GHz Intel Core i5 CPU (Intel) in Chrome 53/OS X and Xiaomi Redmi +Note 3 smartphone with 1.8 GHz Qualcomm Snapdragon 650 64-bit CPU (ARM) in +Chrome 52/Android: + +| | nacl.js Intel | nacl-fast.js Intel | nacl.js ARM | nacl-fast.js ARM | +| ------------- |:-------------:|:-------------------:|:-------------:|:-----------------:| +| salsa20 | 1.3 MB/s | 128 MB/s | 0.4 MB/s | 43 MB/s | +| poly1305 | 13 MB/s | 171 MB/s | 4 MB/s | 52 MB/s | +| hash | 4 MB/s | 34 MB/s | 0.9 MB/s | 12 MB/s | +| secretbox 1K | 1113 op/s | 57583 op/s | 334 op/s | 14227 op/s | +| box 1K | 145 op/s | 718 op/s | 37 op/s | 368 op/s | +| scalarMult | 171 op/s | 733 op/s | 56 op/s | 380 op/s | +| sign | 77 op/s | 200 op/s | 20 op/s | 61 op/s | +| sign.open | 39 op/s | 102 op/s | 11 op/s | 31 op/s | + +(You can run benchmarks on your devices by clicking on the links at the bottom +of the [home page](https://tweetnacl.js.org)). + +In short, with *nacl-fast.js* and 1024-byte messages you can expect to encrypt and +authenticate more than 57000 messages per second on a typical laptop or more than +14000 messages per second on a $170 smartphone, sign about 200 and verify 100 +messages per second on a laptop or 60 and 30 messages per second on a smartphone, +per CPU core (with Web Workers you can do these operations in parallel), +which is good enough for most applications. + + +Contributors +------------ + +See AUTHORS.md file. + + +Third-party libraries based on TweetNaCl.js +------------------------------------------- + +* [forward-secrecy](https://github.com/alax/forward-secrecy) — Axolotl ratchet implementation +* [nacl-stream](https://github.com/dchest/nacl-stream-js) - streaming encryption +* [tweetnacl-auth-js](https://github.com/dchest/tweetnacl-auth-js) — implementation of [`crypto_auth`](http://nacl.cr.yp.to/auth.html) +* [chloride](https://github.com/dominictarr/chloride) - unified API for various NaCl modules + + +Who uses it +----------- + +Some notable users of TweetNaCl.js: + +* [miniLock](http://minilock.io/) +* [Stellar](https://www.stellar.org/) diff --git a/node_modules/tweetnacl/nacl-fast.js b/node_modules/tweetnacl/nacl-fast.js new file mode 100644 index 00000000..5e4562fe --- /dev/null +++ b/node_modules/tweetnacl/nacl-fast.js @@ -0,0 +1,2388 @@ +(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/node_modules/tweetnacl/nacl-fast.min.js b/node_modules/tweetnacl/nacl-fast.min.js new file mode 100644 index 00000000..8bc47daa --- /dev/null +++ b/node_modules/tweetnacl/nacl-fast.min.js @@ -0,0 +1,2 @@ +!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>>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=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>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=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>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>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>>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=16&&(o=n-n%16,this.blocks(r,t,o),t+=o,n-=o),n){for(e=0;e=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 void): void; +} diff --git a/node_modules/tweetnacl/nacl.js b/node_modules/tweetnacl/nacl.js new file mode 100644 index 00000000..f72dd78d --- /dev/null +++ b/node_modules/tweetnacl/nacl.js @@ -0,0 +1,1175 @@ +(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/node_modules/tweetnacl/nacl.min.js b/node_modules/tweetnacl/nacl.min.js new file mode 100644 index 00000000..4484974e --- /dev/null +++ b/node_modules/tweetnacl/nacl.min.js @@ -0,0 +1 @@ +!function(r){"use strict";function n(r,n){return 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>>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>>=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>>=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>>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>>n|r.lo<>>n|r.hi<>>n|r.hi<>>n|r.lo<=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=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>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>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=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/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null", + "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js", + "test": "npm run test-node-all && npm run test-browser", + "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet", + "test-node": "tape test/*.js | faucet", + "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet" + }, + "types": "nacl.d.ts", + "version": "0.14.5" +} diff --git a/node_modules/type-fest/index.d.ts b/node_modules/type-fest/index.d.ts new file mode 100644 index 00000000..520df221 --- /dev/null +++ b/node_modules/type-fest/index.d.ts @@ -0,0 +1,20 @@ +// Basic +export * from './source/basic'; + +// Utilities +export {Except} from './source/except'; +export {Mutable} from './source/mutable'; +export {Merge} from './source/merge'; +export {MergeExclusive} from './source/merge-exclusive'; +export {RequireAtLeastOne} from './source/require-at-least-one'; +export {RequireExactlyOne} from './source/require-exactly-one'; +export {PartialDeep} from './source/partial-deep'; +export {ReadonlyDeep} from './source/readonly-deep'; +export {LiteralUnion} from './source/literal-union'; +export {Promisable} from './source/promisable'; +export {Opaque} from './source/opaque'; +export {SetOptional} from './source/set-optional'; +export {SetRequired} from './source/set-required'; + +// Miscellaneous +export {PackageJson} from './source/package-json'; diff --git a/node_modules/type-fest/license b/node_modules/type-fest/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/type-fest/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/type-fest/package.json b/node_modules/type-fest/package.json new file mode 100644 index 00000000..4c786feb --- /dev/null +++ b/node_modules/type-fest/package.json @@ -0,0 +1,83 @@ +{ + "_from": "type-fest@^0.8.1", + "_id": "type-fest@0.8.1", + "_inBundle": false, + "_integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "_location": "/type-fest", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "type-fest@^0.8.1", + "name": "type-fest", + "escapedName": "type-fest", + "rawSpec": "^0.8.1", + "saveSpec": null, + "fetchSpec": "^0.8.1" + }, + "_requiredBy": [ + "/boxen" + ], + "_resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "_shasum": "09e249ebde851d3b1e48d27c105444667f17b83d", + "_spec": "type-fest@^0.8.1", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\boxen", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/type-fest/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A collection of essential TypeScript types", + "devDependencies": { + "@sindresorhus/tsconfig": "^0.4.0", + "@typescript-eslint/eslint-plugin": "^2.2.0", + "@typescript-eslint/parser": "^2.2.0", + "eslint-config-xo-typescript": "^0.18.0", + "tsd": "^0.7.3", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.d.ts", + "source" + ], + "homepage": "https://github.com/sindresorhus/type-fest#readme", + "keywords": [ + "typescript", + "ts", + "types", + "utility", + "util", + "utilities", + "omit", + "merge", + "json" + ], + "license": "(MIT OR CC0-1.0)", + "name": "type-fest", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/type-fest.git" + }, + "scripts": { + "test": "xo && tsd" + }, + "version": "0.8.1", + "xo": { + "extends": "xo-typescript", + "extensions": [ + "ts" + ], + "rules": { + "import/no-unresolved": "off", + "@typescript-eslint/indent": "off" + } + } +} diff --git a/node_modules/type-fest/readme.md b/node_modules/type-fest/readme.md new file mode 100644 index 00000000..1824bdab --- /dev/null +++ b/node_modules/type-fest/readme.md @@ -0,0 +1,635 @@ +
+
+
+ type-fest +
+
+ A collection of essential TypeScript types +
+
+
+
+
+ +[![Build Status](https://travis-ci.com/sindresorhus/type-fest.svg?branch=master)](https://travis-ci.com/sindresorhus/type-fest) +[![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) + + +Many of the types here should have been built-in. You can help by suggesting some of them to the [TypeScript project](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md). + +Either add this package as a dependency or copy-paste the needed types. No credit required. 👌 + +PR welcome for additional commonly needed types and docs improvements. Read the [contributing guidelines](.github/contributing.md) first. + + +## Install + +``` +$ npm install type-fest +``` + +*Requires TypeScript >=3.2* + + +## Usage + +```ts +import {Except} from 'type-fest'; + +type Foo = { + unicorn: string; + rainbow: boolean; +}; + +type FooWithoutRainbow = Except; +//=> {unicorn: string} +``` + + +## API + +Click the type names for complete docs. + +### Basic + +- [`Primitive`](source/basic.d.ts) - Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive). +- [`Class`](source/basic.d.ts) - Matches a [`class` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes). +- [`TypedArray`](source/basic.d.ts) - Matches any [typed array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray), like `Uint8Array` or `Float64Array`. +- [`JsonObject`](source/basic.d.ts) - Matches a JSON object. +- [`JsonArray`](source/basic.d.ts) - Matches a JSON array. +- [`JsonValue`](source/basic.d.ts) - Matches any valid JSON value. +- [`ObservableLike`](source/basic.d.ts) - Matches a value that is like an [Observable](https://github.com/tc39/proposal-observable). + +### Utilities + +- [`Except`](source/except.d.ts) - Create a type from an object type without certain keys. This is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). +- [`Mutable`](source/mutable.d.ts) - Convert an object with `readonly` keys into a mutable object. The inverse of `Readonly`. +- [`Merge`](source/merge.d.ts) - Merge two types into a new type. Keys of the second type overrides keys of the first type. +- [`MergeExclusive`](source/merge-exclusive.d.ts) - Create a type that has mutually exclusive keys. +- [`RequireAtLeastOne`](source/require-at-least-one.d.ts) - Create a type that requires at least one of the given keys. +- [`RequireExactlyOne`](source/require-one.d.ts) - Create a type that requires exactly a single key of the given keys and disallows more. +- [`PartialDeep`](source/partial-deep.d.ts) - Create a deeply optional version of another type. Use [`Partial`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1401-L1406) if you only need one level deep. +- [`ReadonlyDeep`](source/readonly-deep.d.ts) - Create a deeply immutable version of an `object`/`Map`/`Set`/`Array` type. Use [`Readonly`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1415-L1420) if you only need one level deep. +- [`LiteralUnion`](source/literal-union.d.ts) - Create a union type by combining primitive types and literal types without sacrificing auto-completion in IDEs for the literal type part of the union. Workaround for [Microsoft/TypeScript#29729](https://github.com/Microsoft/TypeScript/issues/29729). +- [`Promisable`](source/promisable.d.ts) - Create a type that represents either the value or the value wrapped in `PromiseLike`. +- [`Opaque`](source/opaque.d.ts) - Create an [opaque type](https://codemix.com/opaque-types-in-javascript/). +- [`SetOptional`](source/set-optional.d.ts) - Create a type that makes the given keys optional. +- [`SetRequired`](source/set-required.d.ts) - Create a type that makes the given keys required. + +### Miscellaneous + +- [`PackageJson`](source/package-json.d.ts) - Type for [npm's `package.json` file](https://docs.npmjs.com/creating-a-package-json-file). + + +## Declined types + +*If we decline a type addition, we will make sure to document the better solution here.* + +- [`Diff` and `Spread`](https://github.com/sindresorhus/type-fest/pull/7) - The PR author didn't provide any real-world use-cases and the PR went stale. If you think this type is useful, provide some real-world use-cases and we might reconsider. +- [`Dictionary`](https://github.com/sindresorhus/type-fest/issues/33) - You only save a few characters (`Dictionary` vs `Record`) from [`Record`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1429-L1434), which is more flexible and well-known. Also, you shouldn't use an object as a dictionary. We have `Map` in JavaScript now. + + +## Tips + +### Built-in types + +There are many advanced types most users don't know about. + +- [`Partial`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1401-L1406) - Make all properties in `T` optional. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/KYOwrgtgBAMg9gcxsAbsANlA3gKClAeQDMiAaPKAEWACMwFz8BRAJxbhcagDEBDAF17ocAXxw4AliH7AWRXgGNgUAHJwAJsADCcEEQkJsFXgAcTK3hGAAuKAGd+LKQgDcFEx363wEGrLf46IjIaOi28EioGG5iOArovHZ2qhrAAIJmAEJgEuiaLEb4Jk4oAsoKuvoIYCwCErq2apo6egZQALyF+FCm5pY2UABETelmg1xFnrYAzAAM8xNQQZGh4cFR6AB0xEQUIm4UFa0IABRHVbYACrws-BJCADwjLVUAfACUXfhEHFBnug4oABrYAATygcCIhBoACtgAp+JsQaC7P9ju9Prhut0joCwCZ1GUAGpCMDKTrnAwAbWRPWSyMhKWalQMAF0Dtj8BIoSd8YSZCT0GSOu1OmAQJp9CBgOpPkc7uBgBzOfwABYSOybSnVWp3XQ0sF04FgxnPFkIVkdKB84mkpUUfCxbEsYD8GogKBqjUBKBiWIAen9UGut3u6CeqReBlePXQQQA7skwMl+HAoMU4CgJJoISB0ODeOmbvwIVC1cAcIGmdpzVApDI5IpgJscNL49WMiZsrl8id3lrzScsD0zBYrLZBgAVOCUOCdwa+95uIA) + + ```ts + interface NodeConfig { + appName: string; + port: number; + } + + class NodeAppBuilder { + private configuration: NodeConfig = { + appName: 'NodeApp', + port: 3000 + }; + + config(config: Partial) { + type NodeConfigKey = keyof NodeConfig; + + for (const key of Object.keys(config) as NodeConfigKey[]) { + const updateValue = config[key]; + + if (updateValue === undefined) { + continue; + } + + this.configuration[key] = updateValue; + } + + return this; + } + } + + // `Partial`` allows us to provide only a part of the + // NodeConfig interface. + new NodeAppBuilder().config({appName: 'ToDoApp'}); + ``` +
+ +- [`Required`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1408-L1413) - Make all properties in `T` required. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/AQ4SwOwFwUwJwGYEMDGNgGED21VQGJZwC2wA3gFCjXAzFJgA2A-AFzADOUckA5gNxUaIYjA4ckvGG07c+g6gF8KQkAgCuEFFDA5O6gEbEwUbLm2ESwABQIixACJIoSdgCUYAR3Vg4MACYAPGYuFvYAfACU5Ko0APRxwADKMBD+wFAAFuh2Vv7OSBlYGdmc8ABu8LHKsRyGxqY4oQT21pTCIHQMjOwA5DAAHgACxAAOjDAAdChYxL0ANLHUouKSMH0AEmAAhJhY6ozpAJ77GTCMjMCiV0ToSAb7UJPPC9WRgrEJwAAqR6MwSRQPFGUFocDgRHYxnEfGAowh-zgUCOwF6KwkUl6tXqJhCeEsxDaS1AXSYfUGI3GUxmc0WSneQA) + + ```ts + interface ContactForm { + email?: string; + message?: string; + } + + function submitContactForm(formData: Required) { + // Send the form data to the server. + } + + submitContactForm({ + email: 'ex@mple.com', + message: 'Hi! Could you tell me more about…', + }); + + // TypeScript error: missing property 'message' + submitContactForm({ + email: 'ex@mple.com', + }); + ``` +
+ +- [`Readonly`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1415-L1420) - Make all properties in `T` readonly. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/AQ4UwOwVwW2AZA9gc3mAbmANsA3gKFCOAHkAzMgGkOJABEwAjKZa2kAUQCcvEu32AMQCGAF2FYBIAL4BufDRABLCKLBcywgMZgEKZOoDCiCGSXI8i4hGEwwALmABnUVxXJ57YFgzZHSVF8sT1BpBSItLGEnJz1kAy5LLy0TM2RHACUwYQATEywATwAeAITjU3MAPnkrCJMXLigtUT4AClxgGztKbyDgaX99I1TzAEokr1BRAAslJwA6FIqLAF48TtswHp9MHDla9hJGACswZvmyLjAwAC8wVpm5xZHkUZDaMKIwqyWXYCW0oN4sNlsA1h0ug5gAByACyBQAggAHJHQ7ZBIFoXbzBjMCz7OoQP5YIaJNYQMAAdziCVaALGNSIAHomcAACoFJFgADKWjcSNEwG4vC4ji0wggEEQguiTnMEGALWAV1yAFp8gVgEjeFyuKICvMrCTgVxnst5jtsGC4ljsPNhXxGaAWcAAOq6YRXYDCRg+RWIcA5JSC+kWdCepQ+v3RYCU3RInzRMCGwlpC19NYBW1Ye08R1AA) + + ```ts + enum LogLevel { + Off, + Debug, + Error, + Fatal + }; + + interface LoggerConfig { + name: string; + level: LogLevel; + } + + class Logger { + config: Readonly; + + constructor({name, level}: LoggerConfig) { + this.config = {name, level}; + Object.freeze(this.config); + } + } + + const config: LoggerConfig = { + name: 'MyApp', + level: LogLevel.Debug + }; + + const logger = new Logger(config); + + // TypeScript Error: cannot assign to read-only property. + logger.config.level = LogLevel.Error; + + // We are able to edit config variable as we please. + config.level = LogLevel.Error; + ``` +
+ +- [`Pick`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1422-L1427) - From `T`, pick a set of properties whose keys are in the union `K`. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/AQ4SwOwFwUwJwGYEMDGNgEE5TCgNugN4BQoZwOUBAXMAM5RyQDmA3KeSFABYCuAtgCMISMHloMmENh04oA9tBjQJjFuzIBfYrOAB6PcADCcGElh1gEGAHcKATwAO6ebyjB5CTNlwFwSxFR0BX5HeToYABNgBDh5fm8cfBg6AHIKG3ldA2BHOOcfFNpUygJ0pAhokr4hETFUgDpswywkggAFUwA3MFtgAF5gQgowKhhVKTYKGuFRcXo1aVZgbTIoJ3RW3xhOmB6+wfbcAGsAHi3kgBpgEtGy4AAfG54BWfqAPnZm4AAlZUj4MAkMA8GAGB4vEgfMlLLw6CwPBA8PYRmMgZVgAC6CgmI4cIommQELwICh8RBgKZKvALh1ur0bHQABR5PYMui0Wk7em2ADaAF0AJS0AASABUALIAGQAogR+Mp3CROCAFBBwVC2ikBpj5CgBIqGjizLA5TAFdAmalImAuqlBRoVQh5HBgEy1eDWfs7J5cjzGYKhroVfpDEhHM4MV6GRR5NN0JrtnRg6BVirTFBeHAKYmYY6QNpdB73LmCJZBlSAXAubtvczeSmQMNSuMbmKNgBlHFgPEUNwusBIPAAQlS1xetTmxT0SDoESgdD0C4aACtHMwxytLrohawgA) + + ```ts + interface Article { + title: string; + thumbnail: string; + content: string; + } + + // Creates new type out of the `Article` interface composed + // from the Articles' two properties: `title` and `thumbnail`. + // `ArticlePreview = {title: string; thumbnail: string}` + type ArticlePreview = Pick; + + // Render a list of articles using only title and description. + function renderArticlePreviews(previews: ArticlePreview[]): HTMLElement { + const articles = document.createElement('div'); + + for (const preview of previews) { + // Append preview to the articles. + } + + return articles; + } + + const articles = renderArticlePreviews([ + { + title: 'TypeScript tutorial!', + thumbnail: '/assets/ts.jpg' + } + ]); + ``` +
+ +- [`Record`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1429-L1434) - Construct a type with a set of properties `K` of type `T`. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/AQ4ejYAUHsGcCWAXBMB2dgwGbAKYC2ADgDYwCeeemCaWArgE7ADGMxAhmuQHQBQoYEnJE8wALKEARnkaxEKdMAC8wAOS0kstGuAAfdQBM8ANzxlRjXQbVaWACwC0JPB0NqA3HwGgIwAJJoWozYHCxixnAsjAhStADmwESMMJYo1Fi4HMCIaPEu+MRklHj8gpqyoeHAAKJFFFTAAN4+giDYCIxwSAByHAR4AFw5SDF5Xm2gJBzdfQPD3WPxE5PAlBxdAPLYNQAelgh4aOHDaPQEMowrIAC+3oJ+AMKMrlrAXFhSAFZ4LEhC9g4-0BmA4JBISXgiCkBQABpILrJ5MhUGhYcATGD6Bk4Hh-jNgABrPDkOBlXyQAAq9ngYmJpOAAHcEOCRjAXqwYODfoo6DhakUSph+Uh7GI4P0xER4Cj0OSQGwMP8tP1hgAlX7swwAHgRl2RvIANALSA08ABtAC6AD4VM1Wm0Kow0MMrYaHYJjGYLLJXZb3at1HYnC43Go-QHQDcvA6-JsmEJXARgCDgMYWAhjIYhDAU+YiMAAFIwex0ZmilMITCGF79TLAGRsAgJYAAZRwSEZGzEABFTOZUrJ5Yn+jwnWgeER6HB7AAKJrADpdXqS4ZqYultTG6azVfqHswPBbtauLY7fayQ7HIbAAAMwBuAEoYw9IBq2Ixs9h2eFMOQYPQObALQKJgggABeYhghCIpikkKRpOQRIknAsZUiIeCttECBEP8NSMCkjDDAARMGziuIYxHwYOjDCMBmDNnAuTxA6irdCOBB1Lh5Dqpqn66tISIykawBnOCtqqC0gbjqc9DgpGkxegOliyfJDrRkAA) + + ```ts + // Positions of employees in our company. + type MemberPosition = 'intern' | 'developer' | 'tech-lead'; + + // Interface describing properties of a single employee. + interface Employee { + firstName: string; + lastName: string; + yearsOfExperience: number; + } + + // Create an object that has all possible `MemberPosition` values set as keys. + // Those keys will store a collection of Employees of the same position. + const team: Record = { + intern: [], + developer: [], + 'tech-lead': [], + }; + + // Our team has decided to help John with his dream of becoming Software Developer. + team.intern.push({ + firstName: 'John', + lastName: 'Doe', + yearsOfExperience: 0 + }); + + // `Record` forces you to initialize all of the property keys. + // TypeScript Error: "tech-lead" property is missing + const teamEmpty: Record = { + intern: null, + developer: null, + }; + ``` +
+ +- [`Exclude`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1436-L1439) - Exclude from `T` those types that are assignable to `U`. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/JYOwLgpgTgZghgYwgAgMrQG7QMIHsQzADmyA3gFDLIAOuUYAXMiAK4A2byAPsgM5hRQJHqwC2AI2gBucgF9y5MAE9qKAEoQAjiwj8AEnBAATNtGQBeZAAooWphu26wAGmS3e93bRC8IASgsAPmRDJRlyAHoI5ABRAA8ENhYjFFYOZGVVZBgoXFFkAAM0zh5+QRBhZhYJaAKAOkjogEkQZAQ4X2QAdwALCFbaemRgXmQtFjhOMFwq9K6ULuB0lk6U+HYwZAxJnQaYFhAEMGB8ZCIIMAAFOjAANR2IK0HGWISklIAedCgsKDwCYgAbQA5M9gQBdVzFQJ+JhiSRQMiUYYwayZCC4VHPCzmSzAspCYEBWxgFhQAZwKC+FpgJ43VwARgADH4ZFQSWSBjcZPJyPtDsdTvxKWBvr8rD1DCZoJ5HPopaYoK4EPhCEQmGKcKriLCtrhgEYkVQVT5Nr4fmZLLZtMBbFZgT0wGBqES6ghbHBIJqoBKFdBWQpjfh+DQbhY2tqiHVsbjLMVkAB+ZAAZiZaeQTHOVxu9ySjxNaujNwDVHNvzqbBGkBAdPoAfkQA) + + ```ts + interface ServerConfig { + port: null | string | number; + } + + type RequestHandler = (request: Request, response: Response) => void; + + // Exclude `null` type from `null | string | number`. + // In case the port is equal to `null`, we will use default value. + function getPortValue(port: Exclude): number { + if (typeof port === 'string') { + return parseInt(port, 10); + } + + return port; + } + + function startServer(handler: RequestHandler, config: ServerConfig): void { + const server = require('http').createServer(handler); + + const port = config.port === null ? 3000 : getPortValue(config.port); + server.listen(port); + } + ``` +
+ +- [`Extract`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1441-L1444) - Extract from `T` those types that are assignable to `U`. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/CYUwxgNghgTiAEAzArgOzAFwJYHtXzSwEdkQBJYACgEoAueVZAWwCMQYBuAKDDwGcM8MgBF4AXngBlAJ6scESgHIRi6ty5ZUGdoihgEABXZ888AN5d48ANoiAuvUat23K6ihMQ9ATE0BzV3goPy8GZjZOLgBfLi4Aejj4AEEICBwAdz54MAALKFQQ+BxEeAAHY1NgKAwoIKy0grr4DByEUpgccpgMaXgAaxBerCzi+B9-ZulygDouFHRsU1z8kKMYE1RhaqgAHkt4AHkWACt4EAAPbVRgLLWNgBp9gGlBs8uQa6yAUUuYPQwdgNpKM7nh7mMML4CgA+R5WABqUAgpDeVxuhxO1he0jsXGh8EoOBO9COx3BQPo2PBADckaR6IjkSA6PBqTgsMBzPsicdrEC7OJWXSQNwYvFEgAVTS9JLXODpeDpKBZFg4GCoWa8VACIJykAKiQWKy2YQOAioYikCg0OEMDyhRSy4DyxS24KhAAMjyi6gS8AAwjh5OD0iBFHAkJoEOksC1mnkMJq8gUQKDNttKPlnfrwYp3J5XfBHXqoKpfYkAOI4ansTxaeDADmoRSCCBYAbxhC6TDx6rwYHIRX5bScjA4bLJwoDmDwDkfbA9JMrVMVdM1TN69LgkTgwgkchUahqIA) + + ```ts + declare function uniqueId(): number; + + const ID = Symbol('ID'); + + interface Person { + [ID]: number; + name: string; + age: number; + } + + // Allows changing the person data as long as the property key is of string type. + function changePersonData< + Obj extends Person, + Key extends Extract, + Value extends Obj[Key] + > (obj: Obj, key: Key, value: Value): void { + obj[key] = value; + } + + // Tiny Andrew was born. + const andrew = { + [ID]: uniqueId(), + name: 'Andrew', + age: 0, + }; + + // Cool, we're fine with that. + changePersonData(andrew, 'name', 'Pony'); + + // Goverment didn't like the fact that you wanted to change your identity. + changePersonData(andrew, ID, uniqueId()); + ``` +
+ +- [`NonNullable`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1446-L1449) - Exclude `null` and `undefined` from `T`. +
+ + Example + + Works with strictNullChecks set to true. (Read more here) + + [Playground](https://typescript-play.js.org/?target=6#code/C4TwDgpgBACg9gJ2AOQK4FsBGEFQLxQDOwCAlgHYDmUAPlORtrnQwDasDcAUFwPQBU-WAEMkUOADMowqAGNWwwoSgATCBIqlgpOOSjAAFsOBRSy1IQgr9cKJlSlW1mZYQA3HFH68u8xcoBlHA8EACEHJ08Aby4oKDBUTFZSWXjEFEYcAEIALihkXTR2YSSIAB54JDQsHAA+blj4xOTUsHSACkMzPKD3HHDHNQQAGjSkPMqMmoQASh7g-oihqBi4uNIpdraxPAI2VhmVxrX9AzMAOm2ppnwoAA4ABifuE4BfKAhWSyOTuK7CS7pao3AhXF5rV48E4ICDAVAIPT-cGQyG+XTEIgLMJLTx7CAAdygvRCA0iCHaMwarhJOIQjUBSHaACJHk8mYdeLwxtdcVAAOSsh58+lXdr7Dlcq7A3n3J4PEUdADMcspUE53OluAIUGVTx46oAKuAIAFZGQwCYAKIIBCILjUxaDHAMnla+iodjcIA) + + ```ts + type PortNumber = string | number | null; + + /** Part of a class definition that is used to build a server */ + class ServerBuilder { + portNumber!: NonNullable; + + port(this: ServerBuilder, port: PortNumber): ServerBuilder { + if (port == null) { + this.portNumber = 8000; + } else { + this.portNumber = port; + } + + return this; + } + } + + const serverBuilder = new ServerBuilder(); + + serverBuilder + .port('8000') // portNumber = '8000' + .port(null) // portNumber = 8000 + .port(3000); // portNumber = 3000 + + // TypeScript error + serverBuilder.portNumber = null; + ``` +
+ +- [`Parameters`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1451-L1454) - Obtain the parameters of a function type in a tuple. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/GYVwdgxgLglg9mABAZwBYmMANgUwBQxgAOIUAXIgIZgCeA2gLoCUFAbnDACaIDeAUIkQB6IYgCypSlBxUATrMo1ECsJzgBbLEoipqAc0J7EMKMgDkiHLnU4wp46pwAPHMgB0fAL58+oSLARECEosLAA5ABUYG2QAHgAxJGdpVWREPDdMylk9ZApqemZEAF4APipacrw-CApEgBogkKwAYThwckQwEHUAIxxZJl4BYVEImiIZKF0oZRwiWVdbeygJmThgOYgcGFYcbhqApCJsyhtpWXcR1cnEePBoeDAABVPzgbTixFeFd8uEsClADcIxGiygIFkSEOT3SmTc2VydQeRx+ZxwF2QQ34gkEwDgsnSuFmMBKiAADEDjIhYk1Qm0OlSYABqZnYka4xA1DJZHJYkGc7yCbyeRA+CAIZCzNAYbA4CIAdxg2zJwVCkWirjwMswuEaACYmCCgA) + + ```ts + function shuffle(input: any[]): void { + // Mutate array randomly changing its' elements indexes. + } + + function callNTimes any> (func: Fn, callCount: number) { + // Type that represents the type of the received function parameters. + type FunctionParameters = Parameters; + + return function (...args: FunctionParameters) { + for (let i = 0; i < callCount; i++) { + func(...args); + } + } + } + + const shuffleTwice = callNTimes(shuffle, 2); + ``` +
+ +- [`ConstructorParameters`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1456-L1459) - Obtain the parameters of a constructor function type in a tuple. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/MYGwhgzhAECCBOAXAlqApgWQPYBM0mgG8AoaaFRENALmgkXmQDsBzAblOmCycTV4D8teo1YdO3JiICuwRFngAKClWENmLAJRFOZRAAtkEAHQq00ALzlklNBzIBfYk+KhIMAJJTEYJsDQAwmDA+mgAPAAq0GgAHnxMODCKTGgA7tCKxllg8CwQtL4AngDaALraFgB80EWa1SRkAA6MAG5gfNAB4FABPDJyCrQR9tDNyG0dwMGhtBhgjWEiGgA00F70vv4RhY3hEZXVVinpc42KmuJkkv3y8Bly8EPaDWTkhiZd7r3e8LK3llwGCMXGQWGhEOsfH5zJlsrl8p0+gw-goAAo5MAAW3BaHgEEilU0tEhmzQ212BJ0ry4SOg+kg+gBBiMximIGA0nAfAQLGk2N4EAAEgzYcYcnkLsRdDTvNEYkYUKwSdCme9WdM0MYwYhFPSIPpJdTkAAzDKxBUaZX+aAAQgsVmkCTQxuYaBw2ng4Ok8CYcotSu8pMur09iG9vuObxZnx6SN+AyUWTF8MN0CcZE4Ywm5jZHK5aB5fP4iCFIqT4oRRTKRLo6lYVNeAHpG50wOzOe1zHr9NLQ+HoABybsD4HOKXXRA1JCoKhBELmI5pNaB6Fz0KKBAodDYPAgSUTmqYsAALx4m5nC6nW9nGq14KtaEUA9gR9PvuNCjQ9BgACNvcwNBtAcLiAA) + + ```ts + class ArticleModel { + title: string; + content?: string; + + constructor(title: string) { + this.title = title; + } + } + + class InstanceCache any)> { + private ClassConstructor: T; + private cache: Map> = new Map(); + + constructor (ctr: T) { + this.ClassConstructor = ctr; + } + + getInstance (...args: ConstructorParameters): InstanceType { + const hash = this.calculateArgumentsHash(...args); + + const existingInstance = this.cache.get(hash); + if (existingInstance !== undefined) { + return existingInstance; + } + + return new this.ClassConstructor(...args); + } + + private calculateArgumentsHash(...args: any[]): string { + // Calculate hash. + return 'hash'; + } + } + + const articleCache = new InstanceCache(ArticleModel); + const amazonArticle = articleCache.getInstance('Amazon forests burining!'); + ``` +
+ +- [`ReturnType`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1461-L1464) – Obtain the return type of a function type. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/MYGwhgzhAECSAmICmBlJAnAbgS2E6A3gFDTTwD2AcuQC4AW2AdgOYAUAlAFzSbnbyEAvkWFFQkGJSQB3GMVI1sNZNwg10TZgG4S0YOUY0kh1es07d+xmvQBXYDXLpWi5UlMaWAGj0GjJ6BtNdkJdBQYIADpXZGgAXmgYpB1ScOwoq38aeN9DYxoU6GFRKzVoJjUwRjwAYXJbPPRuAFkwAAcAHgAxBodsAx9GWwBbACMMAD4cxhloVraOCyYjdAAzMDxoOut1e0d0UNIZ6WhWSPOwdGYIbiqATwBtAF0uaHudUQB6ACpv6ABpJBINqJdAbADW0Do5BOw3u5R2VTwMHIq2gAANtjZ0bkbHsnFCwJh8ONjHp0EgwEZ4JFoN9PkRVr1FAZoMwkDRYIjqkgOrosepoEgAB7+eAwAV2BxOLy6ACCVxgIrFEoMeOl6AACpcwMMORgIB1JRMiBNWKVdhruJKfOdIpdrtwFddXlzKjyACp3Nq842HaDIbL6BrZBIVGhIpB1EMYSLsmjmtWW-YhAA+qegAAYLKQLQj3ZsEsdccmnGcLor2Dn8xGedHGpEIBzEzspfsfMHDNAANTQACMVaIljV5GQkRA5DYmIpVKQAgAJARO9le33BDXIyi0YuLW2nJFGLqkOvxFB0YPdBSaLZ0IwNzyPkO8-xkGgsLh8Al427a3hWAhXwwHA8EHT5PmgAB1bAQBAANJ24adKWpft72RaBUTgRBUCAj89HAM8xCTaBjggABRQx0DuHJv25P9dCkWRZVIAAiBjoFImpmjlFBgA0NpsjadByDacgIDAEAIAAQmYpjoGYgAZSBsmGPw6DtZiiFA8CoJguDmAQmoZ2QvtUKQLdoAYmBTwgdEiCAA) + + ```ts + /** Provides every element of the iterable `iter` into the `callback` function and stores the results in an array. */ + function mapIter< + Elem, + Func extends (elem: Elem) => any, + Ret extends ReturnType + >(iter: Iterable, callback: Func): Ret[] { + const mapped: Ret[] = []; + + for (const elem of iter) { + mapped.push(callback(elem)); + } + + return mapped; + } + + const setObject: Set = new Set(); + const mapObject: Map = new Map(); + + mapIter(setObject, (value: string) => value.indexOf('Foo')); // number[] + + mapIter(mapObject, ([key, value]: [number, string]) => { + return key % 2 === 0 ? value : 'Odd'; + }); // string[] + ``` +
+ +- [`InstanceType`](https://github.com/Microsoft/TypeScript/blob/2961bc3fc0ea1117d4e53bc8e97fa76119bc33e3/src/lib/es5.d.ts#L1466-L1469) – Obtain the instance type of a constructor function type. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/MYGwhgzhAECSAmICmBlJAnAbgS2E6A3gFDTTwD2AcuQC4AW2AdgOYAUAlAFzSbnbyEAvkWFFQkGJSQB3GMVI1sNZNwg10TZgG4S0YOUY0kh1es07d+xmvQBXYDXLpWi5UlMaWAGj0GjJ6BtNdkJdBQYIADpXZGgAXmgYpB1ScOwoq38aeN9DYxoU6GFRKzVoJjUwRjwAYXJbPPRuAFkwAAcAHgAxBodsAx9GWwBbACMMAD4cxhloVraOCyYjdAAzMDxoOut1e0d0UNIZ6WhWSPOwdGYIbiqATwBtAF0uaHudUQB6ACpv6ABpJBINqJdAbADW0Do5BOw3u5R2VTwMHIq2gAANtjZ0bkbHsnFCwJh8ONjHp0EgwEZ4JFoN9PkRVr1FAZoMwkDRYIjqkgOrosepoEgAB7+eAwAV2BxOLy6ACCVxgIrFEoMeOl6AACpcwMMORgIB1JRMiBNWKVdhruJKfOdIpdrtwFddXlzKjyACp3Nq842HaDIbL6BrZBIVGhIpB1EMYSLsmjmtWW-YhAA+qegAAYLKQLQj3ZsEsdccmnGcLor2Dn8xGedHGpEIBzEzspfsfMHDNAANTQACMVaIljV5GQkRA5DYmIpVKQAgAJARO9le33BDXIyi0YuLW2nJFGLqkOvxFB0YPdBSaLZ0IwNzyPkO8-xkGgsLh8Al427a3hWAhXwwHA8EHT5PmgAB1bAQBAANJ24adKWpft72RaBUTgRBUCAj89HAM8xCTaBjggABRQx0DuHJv25P9dCkWRZVIAAiBjoFImpmjlFBgA0NpsjadByDacgIDAEAIAAQmYpjoGYgAZSBsmGPw6DtZiiFA8CoJguDmAQmoZ2QvtUKQLdoAYmBTwgdEiCAA) + + ```ts + class IdleService { + doNothing (): void {} + } + + class News { + title: string; + content: string; + + constructor(title: string, content: string) { + this.title = title; + this.content = content; + } + } + + const instanceCounter: Map = new Map(); + + interface Constructor { + new(...args: any[]): any; + } + + // Keep track how many instances of `Constr` constructor have been created. + function getInstance< + Constr extends Constructor, + Args extends ConstructorParameters + >(constructor: Constr, ...args: Args): InstanceType { + let count = instanceCounter.get(constructor) || 0; + + const instance = new constructor(...args); + + instanceCounter.set(constructor, count + 1); + + console.log(`Created ${count + 1} instances of ${Constr.name} class`); + + return instance; + } + + + const idleService = getInstance(IdleService); + // Will log: `Created 1 instances of IdleService class` + const newsEntry = getInstance(News, 'New ECMAScript proposals!', 'Last month...'); + // Will log: `Created 1 instances of News class` + ``` +
+ +- [`Omit`](https://github.com/microsoft/TypeScript/blob/71af02f7459dc812e85ac31365bfe23daf14b4e4/src/lib/es5.d.ts#L1446) – Constructs a type by picking all properties from T and then removing K. +
+ + Example + + + [Playground](https://typescript-play.js.org/?target=6#code/JYOwLgpgTgZghgYwgAgIImAWzgG2QbwChlks4BzCAVShwC5kBnMKUcgbmKYAcIFgIjBs1YgOXMpSFMWbANoBdTiW5woFddwAW0kfKWEAvoUIB6U8gDCUCHEiNkICAHdkYAJ69kz4GC3JcPG4oAHteKDABBxCYNAxsPFBIWEQUCAAPJG4wZABySUFcgJAAEzMLXNV1ck0dIuCw6EjBADpy5AB1FAQ4EGQAV0YUP2AHDy8wEOQbUugmBLwtEIA3OcmQnEjuZBgQqE7gAGtgZAhwKHdkHFGwNvGUdDIcAGUliIBJEF3kAF5kAHlML4ADyPBIAGjyBUYRQAPnkqho4NoYQA+TiEGD9EAISIhPozErQMG4AASK2gn2+AApek9pCSXm8wFSQooAJQMUkAFQAsgAZACiOAgmDOOSIJAQ+OYyGl4DgoDmf2QJRCCH6YvALQQNjsEGFovF1NyJWAy1y7OUyHMyE+yRAuFImG4Iq1YDswHxbRINjA-SgfXlHqVUE4xiAA) + + ```ts + interface Animal { + imageUrl: string; + species: string; + images: string[]; + paragraphs: string[]; + } + + // Creates new type with all properties of the `Animal` interface + // except 'images' and 'paragraphs' properties. We can use this + // type to render small hover tooltip for a wiki entry list. + type AnimalShortInfo = Omit; + + function renderAnimalHoverInfo (animals: AnimalShortInfo[]): HTMLElement { + const container = document.createElement('div'); + // Internal implementation. + return container; + } + ``` +
+ +You can find some examples in the [TypeScript docs](https://www.typescriptlang.org/docs/handbook/advanced-types.html#predefined-conditional-types). + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Jarek Radosz](https://github.com/CvX) +- [Dimitri Benin](https://github.com/BendingBender) + + +## License + +(MIT OR CC0-1.0) + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/type-fest/source/basic.d.ts b/node_modules/type-fest/source/basic.d.ts new file mode 100644 index 00000000..5969ce59 --- /dev/null +++ b/node_modules/type-fest/source/basic.d.ts @@ -0,0 +1,67 @@ +/// + +// TODO: This can just be `export type Primitive = not object` when the `not` keyword is out. +/** +Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive). +*/ +export type Primitive = + | null + | undefined + | string + | number + | boolean + | symbol + | bigint; + +// TODO: Remove the `= unknown` sometime in the future when most users are on TS 3.5 as it's now the default +/** +Matches a [`class` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes). +*/ +export type Class = new(...arguments_: Arguments) => T; + +/** +Matches any [typed array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray), like `Uint8Array` or `Float64Array`. +*/ +export type TypedArray = + | Int8Array + | Uint8Array + | Uint8ClampedArray + | Int16Array + | Uint16Array + | Int32Array + | Uint32Array + | Float32Array + | Float64Array + | BigInt64Array + | BigUint64Array; + +/** +Matches a JSON object. + +This type can be useful to enforce some input to be JSON-compatible or as a super-type to be extended from. Don't use this as a direct return type as the user would have to double-cast it: `jsonObject as unknown as CustomResponse`. Instead, you could extend your CustomResponse type from it to ensure your type only uses JSON-compatible types: `interface CustomResponse extends JsonObject { … }`. +*/ +export type JsonObject = {[key: string]: JsonValue}; + +/** +Matches a JSON array. +*/ +export interface JsonArray extends Array {} + +/** +Matches any valid JSON value. +*/ +export type JsonValue = string | number | boolean | null | JsonObject | JsonArray; + +declare global { + interface SymbolConstructor { + readonly observable: symbol; + } +} + +/** +Matches a value that is like an [Observable](https://github.com/tc39/proposal-observable). +*/ +export interface ObservableLike { + subscribe(observer: (value: unknown) => void): void; + [Symbol.observable](): ObservableLike; +} diff --git a/node_modules/type-fest/source/except.d.ts b/node_modules/type-fest/source/except.d.ts new file mode 100644 index 00000000..7dedbaa4 --- /dev/null +++ b/node_modules/type-fest/source/except.d.ts @@ -0,0 +1,22 @@ +/** +Create a type from an object type without certain keys. + +This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically. + +Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/30825) if you want to have the stricter version as a built-in in TypeScript. + +@example +``` +import {Except} from 'type-fest'; + +type Foo = { + a: number; + b: string; + c: boolean; +}; + +type FooWithoutA = Except; +//=> {b: string}; +``` +*/ +export type Except = Pick>; diff --git a/node_modules/type-fest/source/literal-union.d.ts b/node_modules/type-fest/source/literal-union.d.ts new file mode 100644 index 00000000..52e8de63 --- /dev/null +++ b/node_modules/type-fest/source/literal-union.d.ts @@ -0,0 +1,33 @@ +import {Primitive} from './basic'; + +/** +Allows creating a union type by combining primitive types and literal types without sacrificing auto-completion in IDEs for the literal type part of the union. + +Currently, when a union type of a primitive type is combined with literal types, TypeScript loses all information about the combined literals. Thus, when such type is used in an IDE with autocompletion, no suggestions are made for the declared literals. + +This type is a workaround for [Microsoft/TypeScript#29729](https://github.com/Microsoft/TypeScript/issues/29729). It will be removed as soon as it's not needed anymore. + +@example +``` +import {LiteralUnion} from 'type-fest'; + +// Before + +type Pet = 'dog' | 'cat' | string; + +const pet: Pet = ''; +// Start typing in your TypeScript-enabled IDE. +// You **will not** get auto-completion for `dog` and `cat` literals. + +// After + +type Pet2 = LiteralUnion<'dog' | 'cat', string>; + +const pet: Pet2 = ''; +// You **will** get auto-completion for `dog` and `cat` literals. +``` + */ +export type LiteralUnion< + LiteralType extends BaseType, + BaseType extends Primitive +> = LiteralType | (BaseType & {_?: never}); diff --git a/node_modules/type-fest/source/merge-exclusive.d.ts b/node_modules/type-fest/source/merge-exclusive.d.ts new file mode 100644 index 00000000..059bd2cb --- /dev/null +++ b/node_modules/type-fest/source/merge-exclusive.d.ts @@ -0,0 +1,39 @@ +// Helper type. Not useful on its own. +type Without = {[KeyType in Exclude]?: never}; + +/** +Create a type that has mutually exclusive keys. + +This type was inspired by [this comment](https://github.com/Microsoft/TypeScript/issues/14094#issuecomment-373782604). + +This type works with a helper type, called `Without`. `Without` produces a type that has only keys from `FirstType` which are not present on `SecondType` and sets the value type for these keys to `never`. This helper type is then used in `MergeExclusive` to remove keys from either `FirstType` or `SecondType`. + +@example +``` +import {MergeExclusive} from 'type-fest'; + +interface ExclusiveVariation1 { + exclusive1: boolean; +} + +interface ExclusiveVariation2 { + exclusive2: string; +} + +type ExclusiveOptions = MergeExclusive; + +let exclusiveOptions: ExclusiveOptions; + +exclusiveOptions = {exclusive1: true}; +//=> Works +exclusiveOptions = {exclusive2: 'hi'}; +//=> Works +exclusiveOptions = {exclusive1: true, exclusive2: 'hi'}; +//=> Error +``` +*/ +export type MergeExclusive = + (FirstType | SecondType) extends object ? + (Without & SecondType) | (Without & FirstType) : + FirstType | SecondType; + diff --git a/node_modules/type-fest/source/merge.d.ts b/node_modules/type-fest/source/merge.d.ts new file mode 100644 index 00000000..4b3920b7 --- /dev/null +++ b/node_modules/type-fest/source/merge.d.ts @@ -0,0 +1,22 @@ +import {Except} from './except'; + +/** +Merge two types into a new type. Keys of the second type overrides keys of the first type. + +@example +``` +import {Merge} from 'type-fest'; + +type Foo = { + a: number; + b: string; +}; + +type Bar = { + b: number; +}; + +const ab: Merge = {a: 1, b: 2}; +``` +*/ +export type Merge = Except> & SecondType; diff --git a/node_modules/type-fest/source/mutable.d.ts b/node_modules/type-fest/source/mutable.d.ts new file mode 100644 index 00000000..03d0dda7 --- /dev/null +++ b/node_modules/type-fest/source/mutable.d.ts @@ -0,0 +1,22 @@ +/** +Convert an object with `readonly` keys into a mutable object. Inverse of `Readonly`. + +This can be used to [store and mutate options within a class](https://github.com/sindresorhus/pageres/blob/4a5d05fca19a5fbd2f53842cbf3eb7b1b63bddd2/source/index.ts#L72), [edit `readonly` objects within tests](https://stackoverflow.com/questions/50703834), and [construct a `readonly` object within a function](https://github.com/Microsoft/TypeScript/issues/24509). + +@example +``` +import {Mutable} from 'type-fest'; + +type Foo = { + readonly a: number; + readonly b: string; +}; + +const mutableFoo: Mutable = {a: 1, b: '2'}; +mutableFoo.a = 3; +``` +*/ +export type Mutable = { + // For each `Key` in the keys of `ObjectType`, make a mapped type by removing the `readonly` modifier from the key. + -readonly [KeyType in keyof ObjectType]: ObjectType[KeyType]; +}; diff --git a/node_modules/type-fest/source/opaque.d.ts b/node_modules/type-fest/source/opaque.d.ts new file mode 100644 index 00000000..5311c1b9 --- /dev/null +++ b/node_modules/type-fest/source/opaque.d.ts @@ -0,0 +1,40 @@ +/** +Create an opaque type, which hides its internal details from the public, and can only be created by being used explicitly. + +The generic type parameter can be anything. It doesn't have to be an object. + +[Read more about opaque types.](https://codemix.com/opaque-types-in-javascript/) + +There have been several discussions about adding this feature to TypeScript via the `opaque type` operator, similar to how Flow does it. Unfortunately, nothing has (yet) moved forward: + - [Microsoft/TypeScript#15408](https://github.com/Microsoft/TypeScript/issues/15408) + - [Microsoft/TypeScript#15807](https://github.com/Microsoft/TypeScript/issues/15807) + +@example +``` +import {Opaque} from 'type-fest'; + +type AccountNumber = Opaque; +type AccountBalance = Opaque; + +function createAccountNumber(): AccountNumber { + return 2 as AccountNumber; +} + +function getMoneyForAccount(accountNumber: AccountNumber): AccountBalance { + return 4 as AccountBalance; +} + +// This will compile successfully. +getMoneyForAccount(createAccountNumber()); + +// But this won't, because it has to be explicitly passed as an `AccountNumber` type. +getMoneyForAccount(2); + +// You can use opaque values like they aren't opaque too. +const accountNumber = createAccountNumber(); + +// This will compile successfully. +accountNumber + 2; +``` +*/ +export type Opaque = Type & {readonly __opaque__: unique symbol}; diff --git a/node_modules/type-fest/source/package-json.d.ts b/node_modules/type-fest/source/package-json.d.ts new file mode 100644 index 00000000..3179e588 --- /dev/null +++ b/node_modules/type-fest/source/package-json.d.ts @@ -0,0 +1,501 @@ +import {LiteralUnion} from '..'; + +declare namespace PackageJson { + /** + A person who has been involved in creating or maintaining the package. + */ + export type Person = + | string + | { + name: string; + url?: string; + email?: string; + }; + + export type BugsLocation = + | string + | { + /** + The URL to the package's issue tracker. + */ + url?: string; + + /** + The email address to which issues should be reported. + */ + email?: string; + }; + + export interface DirectoryLocations { + /** + Location for executable scripts. Sugar to generate entries in the `bin` property by walking the folder. + */ + bin?: string; + + /** + Location for Markdown files. + */ + doc?: string; + + /** + Location for example scripts. + */ + example?: string; + + /** + Location for the bulk of the library. + */ + lib?: string; + + /** + Location for man pages. Sugar to generate a `man` array by walking the folder. + */ + man?: string; + + /** + Location for test files. + */ + test?: string; + + [directoryType: string]: unknown; + } + + export type Scripts = { + /** + Run **before** the package is published (Also run on local `npm install` without any arguments). + */ + prepublish?: string; + + /** + Run both **before** the package is packed and published, and on local `npm install` without any arguments. This is run **after** `prepublish`, but **before** `prepublishOnly`. + */ + prepare?: string; + + /** + Run **before** the package is prepared and packed, **only** on `npm publish`. + */ + prepublishOnly?: string; + + /** + Run **before** a tarball is packed (on `npm pack`, `npm publish`, and when installing git dependencies). + */ + prepack?: string; + + /** + Run **after** the tarball has been generated and moved to its final destination. + */ + postpack?: string; + + /** + Run **after** the package is published. + */ + publish?: string; + + /** + Run **after** the package is published. + */ + postpublish?: string; + + /** + Run **before** the package is installed. + */ + preinstall?: string; + + /** + Run **after** the package is installed. + */ + install?: string; + + /** + Run **after** the package is installed and after `install`. + */ + postinstall?: string; + + /** + Run **before** the package is uninstalled and before `uninstall`. + */ + preuninstall?: string; + + /** + Run **before** the package is uninstalled. + */ + uninstall?: string; + + /** + Run **after** the package is uninstalled. + */ + postuninstall?: string; + + /** + Run **before** bump the package version and before `version`. + */ + preversion?: string; + + /** + Run **before** bump the package version. + */ + version?: string; + + /** + Run **after** bump the package version. + */ + postversion?: string; + + /** + Run with the `npm test` command, before `test`. + */ + pretest?: string; + + /** + Run with the `npm test` command. + */ + test?: string; + + /** + Run with the `npm test` command, after `test`. + */ + posttest?: string; + + /** + Run with the `npm stop` command, before `stop`. + */ + prestop?: string; + + /** + Run with the `npm stop` command. + */ + stop?: string; + + /** + Run with the `npm stop` command, after `stop`. + */ + poststop?: string; + + /** + Run with the `npm start` command, before `start`. + */ + prestart?: string; + + /** + Run with the `npm start` command. + */ + start?: string; + + /** + Run with the `npm start` command, after `start`. + */ + poststart?: string; + + /** + Run with the `npm restart` command, before `restart`. Note: `npm restart` will run the `stop` and `start` scripts if no `restart` script is provided. + */ + prerestart?: string; + + /** + Run with the `npm restart` command. Note: `npm restart` will run the `stop` and `start` scripts if no `restart` script is provided. + */ + restart?: string; + + /** + Run with the `npm restart` command, after `restart`. Note: `npm restart` will run the `stop` and `start` scripts if no `restart` script is provided. + */ + postrestart?: string; + } & { + [scriptName: string]: string; + }; + + /** + Dependencies of the package. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or Git URL. + */ + export interface Dependency { + [packageName: string]: string; + } + + export interface NonStandardEntryPoints { + /** + An ECMAScript module ID that is the primary entry point to the program. + */ + module?: string; + + /** + A module ID with untranspiled code that is the primary entry point to the program. + */ + esnext?: + | string + | { + main?: string; + browser?: string; + [moduleName: string]: string | undefined; + }; + + /** + A hint to JavaScript bundlers or component tools when packaging modules for client side use. + */ + browser?: + | string + | { + [moduleName: string]: string | false; + }; + } + + export interface TypeScriptConfiguration { + /** + Location of the bundled TypeScript declaration file. + */ + types?: string; + + /** + Location of the bundled TypeScript declaration file. Alias of `types`. + */ + typings?: string; + } + + export interface YarnConfiguration { + /** + If your package only allows one version of a given dependency, and you’d like to enforce the same behavior as `yarn install --flat` on the command line, set this to `true`. + + Note that if your `package.json` contains `"flat": true` and other packages depend on yours (e.g. you are building a library rather than an application), those other packages will also need `"flat": true` in their `package.json` or be installed with `yarn install --flat` on the command-line. + */ + flat?: boolean; + + /** + Selective version resolutions. Allows the definition of custom package versions inside dependencies without manual edits in the `yarn.lock` file. + */ + resolutions?: Dependency; + } + + export interface JSPMConfiguration { + /** + JSPM configuration. + */ + jspm?: PackageJson; + } +} + +/** +Type for [npm's `package.json` file](https://docs.npmjs.com/creating-a-package-json-file). Also includes types for fields used by other popular projects, like TypeScript and Yarn. +*/ +export type PackageJson = { + /** + The name of the package. + */ + name?: string; + + /** + Package version, parseable by [`node-semver`](https://github.com/npm/node-semver). + */ + version?: string; + + /** + Package description, listed in `npm search`. + */ + description?: string; + + /** + Keywords associated with package, listed in `npm search`. + */ + keywords?: string[]; + + /** + The URL to the package's homepage. + */ + homepage?: LiteralUnion<'.', string>; + + /** + The URL to the package's issue tracker and/or the email address to which issues should be reported. + */ + bugs?: PackageJson.BugsLocation; + + /** + The license for the package. + */ + license?: string; + + /** + The licenses for the package. + */ + licenses?: Array<{ + type?: string; + url?: string; + }>; + + author?: PackageJson.Person; + + /** + A list of people who contributed to the package. + */ + contributors?: PackageJson.Person[]; + + /** + A list of people who maintain the package. + */ + maintainers?: PackageJson.Person[]; + + /** + The files included in the package. + */ + files?: string[]; + + /** + The module ID that is the primary entry point to the program. + */ + main?: string; + + /** + The executable files that should be installed into the `PATH`. + */ + bin?: + | string + | { + [binary: string]: string; + }; + + /** + Filenames to put in place for the `man` program to find. + */ + man?: string | string[]; + + /** + Indicates the structure of the package. + */ + directories?: PackageJson.DirectoryLocations; + + /** + Location for the code repository. + */ + repository?: + | string + | { + type: string; + url: string; + }; + + /** + Script commands that are run at various times in the lifecycle of the package. The key is the lifecycle event, and the value is the command to run at that point. + */ + scripts?: PackageJson.Scripts; + + /** + Is used to set configuration parameters used in package scripts that persist across upgrades. + */ + config?: { + [configKey: string]: unknown; + }; + + /** + The dependencies of the package. + */ + dependencies?: PackageJson.Dependency; + + /** + Additional tooling dependencies that are not required for the package to work. Usually test, build, or documentation tooling. + */ + devDependencies?: PackageJson.Dependency; + + /** + Dependencies that are skipped if they fail to install. + */ + optionalDependencies?: PackageJson.Dependency; + + /** + Dependencies that will usually be required by the package user directly or via another dependency. + */ + peerDependencies?: PackageJson.Dependency; + + /** + Package names that are bundled when the package is published. + */ + bundledDependencies?: string[]; + + /** + Alias of `bundledDependencies`. + */ + bundleDependencies?: string[]; + + /** + Engines that this package runs on. + */ + engines?: { + [EngineName in 'npm' | 'node' | string]: string; + }; + + /** + @deprecated + */ + engineStrict?: boolean; + + /** + Operating systems the module runs on. + */ + os?: Array>; + + /** + CPU architectures the module runs on. + */ + cpu?: Array>; + + /** + If set to `true`, a warning will be shown if package is installed locally. Useful if the package is primarily a command-line application that should be installed globally. + + @deprecated + */ + preferGlobal?: boolean; + + /** + If set to `true`, then npm will refuse to publish it. + */ + private?: boolean; + + /** + * A set of config values that will be used at publish-time. It's especially handy to set the tag, registry or access, to ensure that a given package is not tagged with 'latest', published to the global public registry or that a scoped module is private by default. + */ + publishConfig?: { + [config: string]: unknown; + }; +} & +PackageJson.NonStandardEntryPoints & +PackageJson.TypeScriptConfiguration & +PackageJson.YarnConfiguration & +PackageJson.JSPMConfiguration & { + [key: string]: unknown; +}; diff --git a/node_modules/type-fest/source/partial-deep.d.ts b/node_modules/type-fest/source/partial-deep.d.ts new file mode 100644 index 00000000..b962b84e --- /dev/null +++ b/node_modules/type-fest/source/partial-deep.d.ts @@ -0,0 +1,72 @@ +import {Primitive} from './basic'; + +/** +Create a type from another type with all keys and nested keys set to optional. + +Use-cases: +- Merging a default settings/config object with another object, the second object would be a deep partial of the default object. +- Mocking and testing complex entities, where populating an entire object with its keys would be redundant in terms of the mock or test. + +@example +``` +import {PartialDeep} from 'type-fest'; + +const settings: Settings = { + textEditor: { + fontSize: 14; + fontColor: '#000000'; + fontWeight: 400; + } + autocomplete: false; + autosave: true; +}; + +const applySavedSettings = (savedSettings: PartialDeep) => { + return {...settings, ...savedSettings}; +} + +settings = applySavedSettings({textEditor: {fontWeight: 500}}); +``` +*/ +export type PartialDeep = T extends Primitive + ? Partial + : T extends Map + ? PartialMapDeep + : T extends Set + ? PartialSetDeep + : T extends ReadonlyMap + ? PartialReadonlyMapDeep + : T extends ReadonlySet + ? PartialReadonlySetDeep + : T extends ((...arguments: any[]) => unknown) + ? T | undefined + : T extends object + ? PartialObjectDeep + : unknown; + +/** +Same as `PartialDeep`, but accepts only `Map`s and as inputs. Internal helper for `PartialDeep`. +*/ +interface PartialMapDeep extends Map, PartialDeep> {} + +/** +Same as `PartialDeep`, but accepts only `Set`s as inputs. Internal helper for `PartialDeep`. +*/ +interface PartialSetDeep extends Set> {} + +/** +Same as `PartialDeep`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `PartialDeep`. +*/ +interface PartialReadonlyMapDeep extends ReadonlyMap, PartialDeep> {} + +/** +Same as `PartialDeep`, but accepts only `ReadonlySet`s as inputs. Internal helper for `PartialDeep`. +*/ +interface PartialReadonlySetDeep extends ReadonlySet> {} + +/** +Same as `PartialDeep`, but accepts only `object`s as inputs. Internal helper for `PartialDeep`. +*/ +type PartialObjectDeep = { + [KeyType in keyof ObjectType]?: PartialDeep +}; diff --git a/node_modules/type-fest/source/promisable.d.ts b/node_modules/type-fest/source/promisable.d.ts new file mode 100644 index 00000000..71242a5d --- /dev/null +++ b/node_modules/type-fest/source/promisable.d.ts @@ -0,0 +1,23 @@ +/** +Create a type that represents either the value or the value wrapped in `PromiseLike`. + +Use-cases: +- A function accepts a callback that may either return a value synchronously or may return a promised value. +- This type could be the return type of `Promise#then()`, `Promise#catch()`, and `Promise#finally()` callbacks. + +Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/31394) if you want to have this type as a built-in in TypeScript. + +@example +``` +import {Promisable} from 'type-fest'; + +async function logger(getLogEntry: () => Promisable): Promise { + const entry = await getLogEntry(); + console.log(entry); +} + +logger(() => 'foo'); +logger(() => Promise.resolve('bar')); +``` +*/ +export type Promisable = T | PromiseLike; diff --git a/node_modules/type-fest/source/readonly-deep.d.ts b/node_modules/type-fest/source/readonly-deep.d.ts new file mode 100644 index 00000000..b8c04de2 --- /dev/null +++ b/node_modules/type-fest/source/readonly-deep.d.ts @@ -0,0 +1,59 @@ +import {Primitive} from './basic'; + +/** +Convert `object`s, `Map`s, `Set`s, and `Array`s and all of their keys/elements into immutable structures recursively. + +This is useful when a deeply nested structure needs to be exposed as completely immutable, for example, an imported JSON module or when receiving an API response that is passed around. + +Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/13923) if you want to have this type as a built-in in TypeScript. + +@example +``` +// data.json +{ + "foo": ["bar"] +} + +// main.ts +import {ReadonlyDeep} from 'type-fest'; +import dataJson = require('./data.json'); + +const data: ReadonlyDeep = dataJson; + +export default data; + +// test.ts +import data from './main'; + +data.foo.push('bar'); +//=> error TS2339: Property 'push' does not exist on type 'readonly string[]' +``` +*/ +export type ReadonlyDeep = T extends Primitive | ((...arguments: any[]) => unknown) + ? T + : T extends ReadonlyMap + ? ReadonlyMapDeep + : T extends ReadonlySet + ? ReadonlySetDeep + : T extends object + ? ReadonlyObjectDeep + : unknown; + +/** +Same as `ReadonlyDeep`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `ReadonlyDeep`. +*/ +interface ReadonlyMapDeep + extends ReadonlyMap, ReadonlyDeep> {} + +/** +Same as `ReadonlyDeep`, but accepts only `ReadonlySet`s as inputs. Internal helper for `ReadonlyDeep`. +*/ +interface ReadonlySetDeep + extends ReadonlySet> {} + +/** +Same as `ReadonlyDeep`, but accepts only `object`s as inputs. Internal helper for `ReadonlyDeep`. +*/ +type ReadonlyObjectDeep = { + readonly [KeyType in keyof ObjectType]: ReadonlyDeep +}; diff --git a/node_modules/type-fest/source/require-at-least-one.d.ts b/node_modules/type-fest/source/require-at-least-one.d.ts new file mode 100644 index 00000000..337379f9 --- /dev/null +++ b/node_modules/type-fest/source/require-at-least-one.d.ts @@ -0,0 +1,32 @@ +import {Except} from './except'; + +/** +Create a type that requires at least one of the given keys. The remaining keys are kept as is. + +@example +``` +import {RequireAtLeastOne} from 'type-fest'; + +type Responder = { + text?: () => string; + json?: () => string; + + secure?: boolean; +}; + +const responder: RequireAtLeastOne = { + json: () => '{"message": "ok"}', + secure: true +}; +``` +*/ +export type RequireAtLeastOne = + { + // For each Key in KeysType make a mapped type + [Key in KeysType]: ( + // …by picking that Key's type and making it required + Required> + ) + }[KeysType] + // …then, make intersection types by adding the remaining keys to each mapped type. + & Except; diff --git a/node_modules/type-fest/source/require-exactly-one.d.ts b/node_modules/type-fest/source/require-exactly-one.d.ts new file mode 100644 index 00000000..d8c71b74 --- /dev/null +++ b/node_modules/type-fest/source/require-exactly-one.d.ts @@ -0,0 +1,36 @@ +// TODO: Remove this when we target TypeScript >=3.5. +// eslint-disable-next-line @typescript-eslint/generic-type-naming +type _Omit = Pick>; + +/** +Create a type that requires exactly one of the given keys and disallows more. The remaining keys are kept as is. + +Use-cases: +- Creating interfaces for components that only need one of the keys to display properly. +- Declaring generic keys in a single place for a single use-case that gets narrowed down via `RequireExactlyOne`. + +The caveat with `RequireExactlyOne` is that TypeScript doesn't always know at compile time every key that will exist at runtime. Therefore `RequireExactlyOne` can't do anything to prevent extra keys it doesn't know about. + +@example +``` +import {RequireExactlyOne} from 'type-fest'; + +type Responder = { + text: () => string; + json: () => string; + secure: boolean; +}; + +const responder: RequireExactlyOne = { + // Adding a `text` key here would cause a compile error. + + json: () => '{"message": "ok"}', + secure: true +}; +``` +*/ +export type RequireExactlyOne = + {[Key in KeysType]: ( + Required> & + Partial, never>> + )}[KeysType] & _Omit; diff --git a/node_modules/type-fest/source/set-optional.d.ts b/node_modules/type-fest/source/set-optional.d.ts new file mode 100644 index 00000000..a9a256aa --- /dev/null +++ b/node_modules/type-fest/source/set-optional.d.ts @@ -0,0 +1,32 @@ +/** +Create a type that makes the given keys optional. The remaining keys are kept as is. The sister of the `SetRequired` type. + +Use-case: You want to define a single model where the only thing that changes is whether or not some of the keys are optional. + +@example +``` +import {SetOptional} from 'type-fest'; + +type Foo = { + a: number; + b?: string; + c: boolean; +} + +type SomeOptional = SetOptional; +// type SomeOptional = { +// a: number; +// b?: string; // Was already optional and still is. +// c?: boolean; // Is now optional. +// } +``` +*/ +export type SetOptional = + // Pick just the keys that are not optional from the base type. + Pick> & + // Pick the keys that should be optional from the base type and make them optional. + Partial> extends + // If `InferredType` extends the previous, then for each key, use the inferred type key. + infer InferredType + ? {[KeyType in keyof InferredType]: InferredType[KeyType]} + : never; diff --git a/node_modules/type-fest/source/set-required.d.ts b/node_modules/type-fest/source/set-required.d.ts new file mode 100644 index 00000000..2572bc12 --- /dev/null +++ b/node_modules/type-fest/source/set-required.d.ts @@ -0,0 +1,32 @@ +/** +Create a type that makes the given keys required. The remaining keys are kept as is. The sister of the `SetOptional` type. + +Use-case: You want to define a single model where the only thing that changes is whether or not some of the keys are required. + +@example +``` +import {SetRequired} from 'type-fest'; + +type Foo = { + a?: number; + b: string; + c?: boolean; +} + +type SomeRequired = SetRequired; +// type SomeRequired = { +// a?: number; +// b: string; // Was already required and still is. +// c: boolean; // Is now required. +// } +``` +*/ +export type SetRequired = + // Pick just the keys that are not required from the base type. + Pick> & + // Pick the keys that should be required from the base type and make them required. + Required> extends + // If `InferredType` extends the previous, then for each key, use the inferred type key. + infer InferredType + ? {[KeyType in keyof InferredType]: InferredType[KeyType]} + : never; diff --git a/node_modules/type-is/HISTORY.md b/node_modules/type-is/HISTORY.md new file mode 100644 index 00000000..8de21f7a --- /dev/null +++ b/node_modules/type-is/HISTORY.md @@ -0,0 +1,259 @@ +1.6.18 / 2019-04-26 +=================== + + * Fix regression passing request object to `typeis.is` + +1.6.17 / 2019-04-25 +=================== + + * deps: mime-types@~2.1.24 + - Add Apple file extensions from IANA + - Add extension `.csl` to `application/vnd.citationstyles.style+xml` + - Add extension `.es` to `application/ecmascript` + - Add extension `.nq` to `application/n-quads` + - Add extension `.nt` to `application/n-triples` + - Add extension `.owl` to `application/rdf+xml` + - Add extensions `.siv` and `.sieve` to `application/sieve` + - Add extensions from IANA for `image/*` types + - Add extensions from IANA for `model/*` types + - Add extensions to HEIC image types + - Add new mime types + - Add `text/mdx` with extension `.mdx` + * perf: prevent internal `throw` on invalid type + +1.6.16 / 2018-02-16 +=================== + + * deps: mime-types@~2.1.18 + - 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 extension `.mjs` to `application/javascript` + - Add extension `.wadl` to `application/vnd.sun.wadl+xml` + - Add extension `.gz` to `application/gzip` + - Add glTF types and extensions + - Add new mime types + - Update extensions `.md` and `.markdown` to be `text/markdown` + - Update font MIME types + - Update `text/hjson` to registered `application/hjson` + +1.6.15 / 2017-03-31 +=================== + + * deps: mime-types@~2.1.15 + - Add new mime types + +1.6.14 / 2016-11-18 +=================== + + * deps: mime-types@~2.1.13 + - Add new mime types + +1.6.13 / 2016-05-18 +=================== + + * deps: mime-types@~2.1.11 + - Add new mime types + +1.6.12 / 2016-02-28 +=================== + + * deps: mime-types@~2.1.10 + - Add new mime types + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + +1.6.11 / 2016-01-29 +=================== + + * deps: mime-types@~2.1.9 + - Add new mime types + +1.6.10 / 2015-12-01 +=================== + + * deps: mime-types@~2.1.8 + - Add new mime types + +1.6.9 / 2015-09-27 +================== + + * deps: mime-types@~2.1.7 + - Add new mime types + +1.6.8 / 2015-09-04 +================== + + * deps: mime-types@~2.1.6 + - Add new mime types + +1.6.7 / 2015-08-20 +================== + + * Fix type error when given invalid type to match against + * deps: mime-types@~2.1.5 + - Add new mime types + +1.6.6 / 2015-07-31 +================== + + * deps: mime-types@~2.1.4 + - Add new mime types + +1.6.5 / 2015-07-16 +================== + + * deps: mime-types@~2.1.3 + - Add new mime types + +1.6.4 / 2015-07-01 +================== + + * deps: mime-types@~2.1.2 + - Add new mime types + * perf: enable strict mode + * perf: remove argument reassignment + +1.6.3 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - Add new mime types + * perf: reduce try block size + * perf: remove bitwise operations + +1.6.2 / 2015-05-10 +================== + + * deps: mime-types@~2.0.11 + - Add new mime types + +1.6.1 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - Add new mime types + +1.6.0 / 2015-02-12 +================== + + * fix false-positives in `hasBody` `Transfer-Encoding` check + * support wildcard for both type and subtype (`*/*`) + +1.5.7 / 2015-02-09 +================== + + * fix argument reassignment + * deps: mime-types@~2.0.9 + - Add new mime types + +1.5.6 / 2015-01-29 +================== + + * deps: mime-types@~2.0.8 + - Add new mime types + +1.5.5 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - Add new mime types + - Fix missing extensions + - Fix various invalid MIME type entries + - Remove example template MIME types + - deps: mime-db@~1.5.0 + +1.5.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - Add new mime types + - deps: mime-db@~1.3.0 + +1.5.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - Add new mime types + - deps: mime-db@~1.2.0 + +1.5.2 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - Add new mime types + - deps: mime-db@~1.1.0 + +1.5.1 / 2014-09-07 +================== + + * Support Node.js 0.6 + * deps: media-typer@0.3.0 + * deps: mime-types@~2.0.1 + - Support Node.js 0.6 + +1.5.0 / 2014-09-05 +================== + + * fix `hasbody` to be true for `content-length: 0` + +1.4.0 / 2014-09-02 +================== + + * update mime-types + +1.3.2 / 2014-06-24 +================== + + * use `~` range on mime-types + +1.3.1 / 2014-06-19 +================== + + * fix global variable leak + +1.3.0 / 2014-06-19 +================== + + * improve type parsing + + - invalid media type never matches + - media type not case-sensitive + - extra LWS does not affect results + +1.2.2 / 2014-06-19 +================== + + * fix behavior on unknown type argument + +1.2.1 / 2014-06-03 +================== + + * switch dependency from `mime` to `mime-types@1.0.0` + +1.2.0 / 2014-05-11 +================== + + * support suffix matching: + + - `+json` matches `application/vnd+json` + - `*/vnd+json` matches `application/vnd+json` + - `application/*+json` matches `application/vnd+json` + +1.1.0 / 2014-04-12 +================== + + * add non-array values support + * expose internal utilities: + + - `.is()` + - `.hasBody()` + - `.normalize()` + - `.match()` + +1.0.1 / 2014-03-30 +================== + + * add `multipart` as a shorthand diff --git a/node_modules/type-is/LICENSE b/node_modules/type-is/LICENSE new file mode 100644 index 00000000..386b7b69 --- /dev/null +++ b/node_modules/type-is/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/type-is/README.md b/node_modules/type-is/README.md new file mode 100644 index 00000000..b85ef8f7 --- /dev/null +++ b/node_modules/type-is/README.md @@ -0,0 +1,170 @@ +# type-is + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Infer the content-type of a request. + +### Install + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install type-is +``` + +## API + +```js +var http = require('http') +var typeis = require('type-is') + +http.createServer(function (req, res) { + var istext = typeis(req, ['text/*']) + res.end('you ' + (istext ? 'sent' : 'did not send') + ' me text') +}) +``` + +### typeis(request, types) + +Checks if the `request` is one of the `types`. If the request has no body, +even if there is a `Content-Type` header, then `null` is returned. If the +`Content-Type` header is invalid or does not matches any of the `types`, then +`false` is returned. Otherwise, a string of the type that matched is returned. + +The `request` argument is expected to be a Node.js HTTP request. The `types` +argument is an array of type strings. + +Each type in the `types` array can be one of the following: + +- A file extension name such as `json`. This name will be returned if matched. +- A mime type such as `application/json`. +- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. + The full mime type will be returned if matched. +- A suffix such as `+json`. This can be combined with a wildcard such as + `*/vnd+json` or `application/*+json`. The full mime type will be returned + if matched. + +Some examples to illustrate the inputs and returned value: + + + +```js +// req.headers.content-type = 'application/json' + +typeis(req, ['json']) // => 'json' +typeis(req, ['html', 'json']) // => 'json' +typeis(req, ['application/*']) // => 'application/json' +typeis(req, ['application/json']) // => 'application/json' + +typeis(req, ['html']) // => false +``` + +### typeis.hasBody(request) + +Returns a Boolean if the given `request` has a body, regardless of the +`Content-Type` header. + +Having a body has no relation to how large the body is (it may be 0 bytes). +This is similar to how file existence works. If a body does exist, then this +indicates that there is data to read from the Node.js request stream. + + + +```js +if (typeis.hasBody(req)) { + // read the body, since there is one + + req.on('data', function (chunk) { + // ... + }) +} +``` + +### typeis.is(mediaType, types) + +Checks if the `mediaType` is one of the `types`. If the `mediaType` is invalid +or does not matches any of the `types`, then `false` is returned. Otherwise, a +string of the type that matched is returned. + +The `mediaType` argument is expected to be a +[media type](https://tools.ietf.org/html/rfc6838) string. The `types` argument +is an array of type strings. + +Each type in the `types` array can be one of the following: + +- A file extension name such as `json`. This name will be returned if matched. +- A mime type such as `application/json`. +- A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. + The full mime type will be returned if matched. +- A suffix such as `+json`. This can be combined with a wildcard such as + `*/vnd+json` or `application/*+json`. The full mime type will be returned + if matched. + +Some examples to illustrate the inputs and returned value: + + + +```js +var mediaType = 'application/json' + +typeis.is(mediaType, ['json']) // => 'json' +typeis.is(mediaType, ['html', 'json']) // => 'json' +typeis.is(mediaType, ['application/*']) // => 'application/json' +typeis.is(mediaType, ['application/json']) // => 'application/json' + +typeis.is(mediaType, ['html']) // => false +``` + +## Examples + +### Example body parser + +```js +var express = require('express') +var typeis = require('type-is') + +var app = express() + +app.use(function bodyParser (req, res, next) { + if (!typeis.hasBody(req)) { + return next() + } + + switch (typeis(req, ['urlencoded', 'json', 'multipart'])) { + case 'urlencoded': + // parse urlencoded body + throw new Error('implement urlencoded body parsing') + case 'json': + // parse json body + throw new Error('implement json body parsing') + case 'multipart': + // parse multipart body + throw new Error('implement multipart body parsing') + default: + // 415 error code + res.statusCode = 415 + res.end() + break + } +}) +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/type-is/master +[coveralls-url]: https://coveralls.io/r/jshttp/type-is?branch=master +[node-version-image]: https://badgen.net/npm/node/type-is +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/type-is +[npm-url]: https://npmjs.org/package/type-is +[npm-version-image]: https://badgen.net/npm/v/type-is +[travis-image]: https://badgen.net/travis/jshttp/type-is/master +[travis-url]: https://travis-ci.org/jshttp/type-is diff --git a/node_modules/type-is/index.js b/node_modules/type-is/index.js new file mode 100644 index 00000000..890ad76c --- /dev/null +++ b/node_modules/type-is/index.js @@ -0,0 +1,266 @@ +/*! + * type-is + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var typer = require('media-typer') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = typeofrequest +module.exports.is = typeis +module.exports.hasBody = hasbody +module.exports.normalize = normalize +module.exports.match = mimeMatch + +/** + * Compare a `value` content-type with `types`. + * Each `type` can be an extension like `html`, + * a special shortcut like `multipart` or `urlencoded`, + * or a mime type. + * + * If no types match, `false` is returned. + * Otherwise, the first `type` that matches is returned. + * + * @param {String} value + * @param {Array} types + * @public + */ + +function typeis (value, types_) { + var i + var types = types_ + + // remove parameters and normalize + var val = tryNormalizeType(value) + + // no type or invalid + if (!val) { + return false + } + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length - 1) + for (i = 0; i < types.length; i++) { + types[i] = arguments[i + 1] + } + } + + // no types, return the content type + if (!types || !types.length) { + return val + } + + var type + for (i = 0; i < types.length; i++) { + if (mimeMatch(normalize(type = types[i]), val)) { + return type[0] === '+' || type.indexOf('*') !== -1 + ? val + : type + } + } + + // no matches + return false +} + +/** + * Check if a request has a request body. + * A request with a body __must__ either have `transfer-encoding` + * or `content-length` headers set. + * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3 + * + * @param {Object} request + * @return {Boolean} + * @public + */ + +function hasbody (req) { + return req.headers['transfer-encoding'] !== undefined || + !isNaN(req.headers['content-length']) +} + +/** + * Check if the incoming request contains the "Content-Type" + * header field, and it contains any of the give mime `type`s. + * If there is no request body, `null` is returned. + * If there is no content type, `false` is returned. + * Otherwise, it returns the first `type` that matches. + * + * Examples: + * + * // With Content-Type: text/html; charset=utf-8 + * this.is('html'); // => 'html' + * this.is('text/html'); // => 'text/html' + * this.is('text/*', 'application/json'); // => 'text/html' + * + * // When Content-Type is application/json + * this.is('json', 'urlencoded'); // => 'json' + * this.is('application/json'); // => 'application/json' + * this.is('html', 'application/*'); // => 'application/json' + * + * this.is('html'); // => false + * + * @param {String|Array} types... + * @return {String|false|null} + * @public + */ + +function typeofrequest (req, types_) { + var types = types_ + + // no body + if (!hasbody(req)) { + return null + } + + // support flattened arguments + if (arguments.length > 2) { + types = new Array(arguments.length - 1) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i + 1] + } + } + + // request content type + var value = req.headers['content-type'] + + return typeis(value, types) +} + +/** + * Normalize a mime type. + * If it's a shorthand, expand it to a valid mime type. + * + * In general, you probably want: + * + * var type = is(req, ['urlencoded', 'json', 'multipart']); + * + * Then use the appropriate body parsers. + * These three are the most common request body types + * and are thus ensured to work. + * + * @param {String} type + * @private + */ + +function normalize (type) { + if (typeof type !== 'string') { + // invalid type + return false + } + + switch (type) { + case 'urlencoded': + return 'application/x-www-form-urlencoded' + case 'multipart': + return 'multipart/*' + } + + if (type[0] === '+') { + // "+json" -> "*/*+json" expando + return '*/*' + type + } + + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if `expected` mime type + * matches `actual` mime type with + * wildcard and +suffix support. + * + * @param {String} expected + * @param {String} actual + * @return {Boolean} + * @private + */ + +function mimeMatch (expected, actual) { + // invalid type + if (expected === false) { + return false + } + + // split types + var actualParts = actual.split('/') + var expectedParts = expected.split('/') + + // invalid format + if (actualParts.length !== 2 || expectedParts.length !== 2) { + return false + } + + // validate type + if (expectedParts[0] !== '*' && expectedParts[0] !== actualParts[0]) { + return false + } + + // validate suffix wildcard + if (expectedParts[1].substr(0, 2) === '*+') { + return expectedParts[1].length <= actualParts[1].length + 1 && + expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length) + } + + // validate subtype + if (expectedParts[1] !== '*' && expectedParts[1] !== actualParts[1]) { + return false + } + + return true +} + +/** + * Normalize a type and remove parameters. + * + * @param {string} value + * @return {string} + * @private + */ + +function normalizeType (value) { + // parse the type + var type = typer.parse(value) + + // remove the parameters + type.parameters = undefined + + // reformat it + return typer.format(type) +} + +/** + * Try to normalize a type and remove parameters. + * + * @param {string} value + * @return {string} + * @private + */ + +function tryNormalizeType (value) { + if (!value) { + return null + } + + try { + return normalizeType(value) + } catch (err) { + return null + } +} diff --git a/node_modules/type-is/package.json b/node_modules/type-is/package.json new file mode 100644 index 00000000..9e4da74d --- /dev/null +++ b/node_modules/type-is/package.json @@ -0,0 +1,85 @@ +{ + "_from": "type-is@~1.6.18", + "_id": "type-is@1.6.18", + "_inBundle": false, + "_integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "_location": "/type-is", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "type-is@~1.6.18", + "name": "type-is", + "escapedName": "type-is", + "rawSpec": "~1.6.18", + "saveSpec": null, + "fetchSpec": "~1.6.18" + }, + "_requiredBy": [ + "/body-parser", + "/express" + ], + "_resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "_shasum": "4e552cd05df09467dcbc4ef739de89f2cf37c131", + "_spec": "type-is@~1.6.18", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\express", + "bugs": { + "url": "https://github.com/jshttp/type-is/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com" + } + ], + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "deprecated": false, + "description": "Infer the content-type of a request.", + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.0.0" + }, + "engines": { + "node": ">= 0.6" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "homepage": "https://github.com/jshttp/type-is#readme", + "keywords": [ + "content", + "type", + "checking" + ], + "license": "MIT", + "name": "type-is", + "repository": { + "type": "git", + "url": "git+https://github.com/jshttp/type-is.git" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "version": "1.6.18" +} diff --git a/node_modules/typedarray-to-buffer/.airtap.yml b/node_modules/typedarray-to-buffer/.airtap.yml new file mode 100644 index 00000000..34177802 --- /dev/null +++ b/node_modules/typedarray-to-buffer/.airtap.yml @@ -0,0 +1,15 @@ +sauce_connect: true +loopback: airtap.local +browsers: + - name: chrome + version: latest + - name: firefox + version: latest + - name: safari + version: latest + - name: microsoftedge + version: latest + - name: ie + version: latest + - name: iphone + version: latest diff --git a/node_modules/typedarray-to-buffer/.travis.yml b/node_modules/typedarray-to-buffer/.travis.yml new file mode 100644 index 00000000..f25afbd2 --- /dev/null +++ b/node_modules/typedarray-to-buffer/.travis.yml @@ -0,0 +1,11 @@ +language: node_js +node_js: + - lts/* +addons: + sauce_connect: true + hosts: + - airtap.local +env: + global: + - secure: i51rE9rZGHbcZWlL58j3H1qtL23OIV2r0X4TcQKNI3pw2mubdHFJmfPNNO19ItfReu8wwQMxOehKamwaNvqMiKWyHfn/QcThFQysqzgGZ6AgnUbYx9od6XFNDeWd1sVBf7QBAL07y7KWlYGWCwFwWjabSVySzQhEBdisPcskfkI= + - secure: BKq6/5z9LK3KDkTjs7BGeBZ1KsWgz+MsAXZ4P64NSeVGFaBdXU45+ww1mwxXFt5l22/mhyOQZfebQl+kGVqRSZ+DEgQeCymkNZ6CD8c6w6cLuOJXiXwuu/cDM2DD0tfGeu2YZC7yEikP7BqEFwH3D324rRzSGLF2RSAAwkOI7bE= diff --git a/node_modules/typedarray-to-buffer/LICENSE b/node_modules/typedarray-to-buffer/LICENSE new file mode 100644 index 00000000..0c068cee --- /dev/null +++ b/node_modules/typedarray-to-buffer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/typedarray-to-buffer/README.md b/node_modules/typedarray-to-buffer/README.md new file mode 100644 index 00000000..35761fb5 --- /dev/null +++ b/node_modules/typedarray-to-buffer/README.md @@ -0,0 +1,85 @@ +# typedarray-to-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/typedarray-to-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/typedarray-to-buffer +[npm-image]: https://img.shields.io/npm/v/typedarray-to-buffer.svg +[npm-url]: https://npmjs.org/package/typedarray-to-buffer +[downloads-image]: https://img.shields.io/npm/dm/typedarray-to-buffer.svg +[downloads-url]: https://npmjs.org/package/typedarray-to-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Convert a typed array to a [Buffer](https://github.com/feross/buffer) without a copy. + +[![saucelabs][saucelabs-image]][saucelabs-url] + +[saucelabs-image]: https://saucelabs.com/browser-matrix/typedarray-to-buffer.svg +[saucelabs-url]: https://saucelabs.com/u/typedarray-to-buffer + +Say you're using the ['buffer'](https://github.com/feross/buffer) module on npm, or +[browserify](http://browserify.org/) and you're working with lots of binary data. + +Unfortunately, sometimes the browser or someone else's API gives you a typed array like +`Uint8Array` to work with and you need to convert it to a `Buffer`. What do you do? + +Of course: `Buffer.from(uint8array)` + +But, alas, every time you do `Buffer.from(uint8array)` **the entire array gets copied**. +The `Buffer` constructor does a copy; this is +defined by the [node docs](http://nodejs.org/api/buffer.html) and the 'buffer' module +matches the node API exactly. + +So, how can we avoid this expensive copy in +[performance critical applications](https://github.com/feross/buffer/issues/22)? + +***Simply use this module, of course!*** + +If you have an `ArrayBuffer`, you don't need this module, because +`Buffer.from(arrayBuffer)` +[is already efficient](https://nodejs.org/api/buffer.html#buffer_class_method_buffer_from_arraybuffer_byteoffset_length). + +## install + +```bash +npm install typedarray-to-buffer +``` + +## usage + +To convert a typed array to a `Buffer` **without a copy**, do this: + +```js +var toBuffer = require('typedarray-to-buffer') + +var arr = new Uint8Array([1, 2, 3]) +arr = toBuffer(arr) + +// arr is a buffer now! + +arr.toString() // '\u0001\u0002\u0003' +arr.readUInt16BE(0) // 258 +``` + +## how it works + +If the browser supports typed arrays, then `toBuffer` will **augment the typed array** you +pass in with the `Buffer` methods and return it. See [how does Buffer +work?](https://github.com/feross/buffer#how-does-it-work) for more about how augmentation +works. + +This module uses the typed array's underlying `ArrayBuffer` to back the new `Buffer`. This +respects the "view" on the `ArrayBuffer`, i.e. `byteOffset` and `byteLength`. In other +words, if you do `toBuffer(new Uint32Array([1, 2, 3]))`, then the new `Buffer` will +contain `[1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0]`, **not** `[1, 2, 3]`. And it still doesn't +require a copy. + +If the browser doesn't support typed arrays, then `toBuffer` will create a new `Buffer` +object, copy the data into it, and return it. There's no simple performance optimization +we can do for old browsers. Oh well. + +If this module is used in node, then it will just call `Buffer.from`. This is just for +the convenience of modules that work in both node and the browser. + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org). diff --git a/node_modules/typedarray-to-buffer/index.js b/node_modules/typedarray-to-buffer/index.js new file mode 100644 index 00000000..5fa394dd --- /dev/null +++ b/node_modules/typedarray-to-buffer/index.js @@ -0,0 +1,25 @@ +/** + * Convert a typed array to a Buffer without a copy + * + * Author: Feross Aboukhadijeh + * License: MIT + * + * `npm install typedarray-to-buffer` + */ + +var isTypedArray = require('is-typedarray').strict + +module.exports = function typedarrayToBuffer (arr) { + if (isTypedArray(arr)) { + // To avoid a copy, use the typed array's underlying ArrayBuffer to back new Buffer + var buf = Buffer.from(arr.buffer) + if (arr.byteLength !== arr.buffer.byteLength) { + // Respect the "view", i.e. byteOffset and byteLength, without doing a copy + buf = buf.slice(arr.byteOffset, arr.byteOffset + arr.byteLength) + } + return buf + } else { + // Pass through all other types to `Buffer.from` + return Buffer.from(arr) + } +} diff --git a/node_modules/typedarray-to-buffer/package.json b/node_modules/typedarray-to-buffer/package.json new file mode 100644 index 00000000..03f46e03 --- /dev/null +++ b/node_modules/typedarray-to-buffer/package.json @@ -0,0 +1,75 @@ +{ + "_from": "typedarray-to-buffer@^3.1.5", + "_id": "typedarray-to-buffer@3.1.5", + "_inBundle": false, + "_integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "_location": "/typedarray-to-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "typedarray-to-buffer@^3.1.5", + "name": "typedarray-to-buffer", + "escapedName": "typedarray-to-buffer", + "rawSpec": "^3.1.5", + "saveSpec": null, + "fetchSpec": "^3.1.5" + }, + "_requiredBy": [ + "/write-file-atomic" + ], + "_resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "_shasum": "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080", + "_spec": "typedarray-to-buffer@^3.1.5", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\write-file-atomic", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org/" + }, + "bugs": { + "url": "https://github.com/feross/typedarray-to-buffer/issues" + }, + "bundleDependencies": false, + "dependencies": { + "is-typedarray": "^1.0.0" + }, + "deprecated": false, + "description": "Convert a typed array to a Buffer without a copy", + "devDependencies": { + "airtap": "0.0.4", + "standard": "*", + "tape": "^4.0.0" + }, + "homepage": "http://feross.org", + "keywords": [ + "buffer", + "typed array", + "convert", + "no copy", + "uint8array", + "uint16array", + "uint32array", + "int16array", + "int32array", + "float32array", + "float64array", + "browser", + "arraybuffer", + "dataview" + ], + "license": "MIT", + "main": "index.js", + "name": "typedarray-to-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/typedarray-to-buffer.git" + }, + "scripts": { + "test": "standard && npm run test-node && npm run test-browser", + "test-browser": "airtap -- test/*.js", + "test-browser-local": "airtap --local -- test/*.js", + "test-node": "tape test/*.js" + }, + "version": "3.1.5" +} diff --git a/node_modules/typedarray-to-buffer/test/basic.js b/node_modules/typedarray-to-buffer/test/basic.js new file mode 100644 index 00000000..35210968 --- /dev/null +++ b/node_modules/typedarray-to-buffer/test/basic.js @@ -0,0 +1,50 @@ +var test = require('tape') +var toBuffer = require('../') + +test('convert to buffer from Uint8Array', function (t) { + if (typeof Uint8Array !== 'undefined') { + var arr = new Uint8Array([1, 2, 3]) + arr = toBuffer(arr) + + t.deepEqual(arr, Buffer.from([1, 2, 3]), 'contents equal') + t.ok(Buffer.isBuffer(arr), 'is buffer') + t.equal(arr.readUInt8(0), 1) + t.equal(arr.readUInt8(1), 2) + t.equal(arr.readUInt8(2), 3) + } else { + t.pass('browser lacks Uint8Array support, skip test') + } + t.end() +}) + +test('convert to buffer from another arrayview type (Uint32Array)', function (t) { + if (typeof Uint32Array !== 'undefined' && Buffer.TYPED_ARRAY_SUPPORT !== false) { + var arr = new Uint32Array([1, 2, 3]) + arr = toBuffer(arr) + + t.deepEqual(arr, Buffer.from([1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0]), 'contents equal') + t.ok(Buffer.isBuffer(arr), 'is buffer') + t.equal(arr.readUInt32LE(0), 1) + t.equal(arr.readUInt32LE(4), 2) + t.equal(arr.readUInt32LE(8), 3) + t.equal(arr instanceof Uint8Array, true) + } else { + t.pass('browser lacks Uint32Array support, skip test') + } + t.end() +}) + +test('convert to buffer from ArrayBuffer', function (t) { + if (typeof Uint32Array !== 'undefined' && Buffer.TYPED_ARRAY_SUPPORT !== false) { + var arr = new Uint32Array([1, 2, 3]).subarray(1, 2) + arr = toBuffer(arr) + + t.deepEqual(arr, Buffer.from([2, 0, 0, 0]), 'contents equal') + t.ok(Buffer.isBuffer(arr), 'is buffer') + t.equal(arr.readUInt32LE(0), 2) + t.equal(arr instanceof Uint8Array, true) + } else { + t.pass('browser lacks ArrayBuffer support, skip test') + } + t.end() +}) diff --git a/node_modules/undefsafe/.jscsrc b/node_modules/undefsafe/.jscsrc new file mode 100644 index 00000000..9e01c9be --- /dev/null +++ b/node_modules/undefsafe/.jscsrc @@ -0,0 +1,13 @@ +{ + "preset": "node-style-guide", + "requireCapitalizedComments": null, + "requireSpacesInAnonymousFunctionExpression": { + "beforeOpeningCurlyBrace": true, + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInNamedFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "excludeFiles": ["node_modules/**"], + "disallowSpacesInFunction": null +} diff --git a/node_modules/undefsafe/.jshintrc b/node_modules/undefsafe/.jshintrc new file mode 100644 index 00000000..b47f672f --- /dev/null +++ b/node_modules/undefsafe/.jshintrc @@ -0,0 +1,16 @@ +{ + "browser": false, + "camelcase": true, + "curly": true, + "devel": true, + "eqeqeq": true, + "forin": true, + "indent": 2, + "noarg": true, + "node": true, + "quotmark": "single", + "undef": true, + "strict": false, + "unused": true +} + diff --git a/node_modules/undefsafe/.npmignore b/node_modules/undefsafe/.npmignore new file mode 100644 index 00000000..5f6a848d --- /dev/null +++ b/node_modules/undefsafe/.npmignore @@ -0,0 +1,2 @@ +# .npmignore file +test/ diff --git a/node_modules/undefsafe/.travis.yml b/node_modules/undefsafe/.travis.yml new file mode 100644 index 00000000..a1ace24a --- /dev/null +++ b/node_modules/undefsafe/.travis.yml @@ -0,0 +1,18 @@ +sudo: false +language: node_js +cache: + directories: + - node_modules +notifications: + email: false +node_js: + - '4' +before_install: + - npm i -g npm@^2.0.0 +before_script: + - npm prune +after_success: + - npm run semantic-release +branches: + except: + - "/^v\\d+\\.\\d+\\.\\d+$/" diff --git a/node_modules/undefsafe/LICENSE b/node_modules/undefsafe/LICENSE new file mode 100644 index 00000000..caaf03ae --- /dev/null +++ b/node_modules/undefsafe/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright © 2016 Remy Sharp, http://remysharp.com + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/undefsafe/README.md b/node_modules/undefsafe/README.md new file mode 100644 index 00000000..46a706bc --- /dev/null +++ b/node_modules/undefsafe/README.md @@ -0,0 +1,63 @@ +# undefsafe + +Simple *function* for retrieving deep object properties without getting "Cannot read property 'X' of undefined" + +Can also be used to safely set deep values. + +## Usage + +```js +var object = { + a: { + b: { + c: 1, + d: [1,2,3], + e: 'remy' + } + } +}; + +console.log(undefsafe(object, 'a.b.e')); // "remy" +console.log(undefsafe(object, 'a.b.not.found')); // undefined +``` + +Demo: [https://jsbin.com/eroqame/3/edit?js,console](https://jsbin.com/eroqame/3/edit?js,console) + +## Setting + +```js +var object = { + a: { + b: [1,2,3] + } +}; + +// modified object +var res = undefsafe(object, 'a.b.0', 10); + +console.log(object); // { a: { b: [10, 2, 3] } } +console.log(res); // 1 - previous value +``` + +## Star rules in paths + +As of 1.2.0, `undefsafe` supports a `*` in the path if you want to search all of the properties (or array elements) for a particular element. + +The function will only return a single result, either the 3rd argument validation value, or the first positive match. For example, the following github data: + +```js +const githubData = { + commits: [{ + modified: [ + "one", + "two" + ] + }, /* ... */ ] + }; + +// first modified file found in the first commit +console.log(undefsafe(githubData, 'commits.*.modified.0')); + +// returns `two` or undefined if not found +console.log(undefsafe(githubData, 'commits.*.modified.*', 'two')); +``` diff --git a/node_modules/undefsafe/example.js b/node_modules/undefsafe/example.js new file mode 100644 index 00000000..ed93c23b --- /dev/null +++ b/node_modules/undefsafe/example.js @@ -0,0 +1,14 @@ +var undefsafe = require('undefsafe'); + +var object = { + a: { + b: { + c: 1, + d: [1, 2, 3], + e: 'remy' + } + } +}; + +console.log(undefsafe(object, 'a.b.e')); // "remy" +console.log(undefsafe(object, 'a.b.not.found')); // undefined diff --git a/node_modules/undefsafe/lib/undefsafe.js b/node_modules/undefsafe/lib/undefsafe.js new file mode 100644 index 00000000..74468780 --- /dev/null +++ b/node_modules/undefsafe/lib/undefsafe.js @@ -0,0 +1,125 @@ +'use strict'; + +function undefsafe(obj, path, value, __res) { + // I'm not super keen on this private function, but it's because + // it'll also be use in the browser and I wont *one* function exposed + function split(path) { + var res = []; + var level = 0; + var key = ''; + + for (var i = 0; i < path.length; i++) { + var c = path.substr(i, 1); + + if (level === 0 && (c === '.' || c === '[')) { + if (c === '[') { + level++; + i++; + c = path.substr(i, 1); + } + + if (key) { + // the first value could be a string + res.push(key); + } + key = ''; + continue; + } + + if (c === ']') { + level--; + key = key.slice(0, -1); + continue; + } + + key += c; + } + + res.push(key); + + return res; + } + + // bail if there's nothing + if (obj === undefined || obj === null) { + return undefined; + } + + var parts = split(path); + var key = null; + var type = typeof obj; + var root = obj; + var parent = obj; + + var star = + parts.filter(function(_) { + return _ === '*'; + }).length > 0; + + // we're dealing with a primitive + if (type !== 'object' && type !== 'function') { + return obj; + } else if (path.trim() === '') { + return obj; + } + + key = parts[0]; + var i = 0; + for (; i < parts.length; i++) { + key = parts[i]; + parent = obj; + + if (key === '*') { + // loop through each property + var prop = ''; + var res = __res || []; + + for (prop in parent) { + var shallowObj = undefsafe( + obj[prop], + parts.slice(i + 1).join('.'), + value, + res + ); + if (shallowObj && shallowObj !== res) { + if ((value && shallowObj === value) || value === undefined) { + if (value !== undefined) { + return shallowObj; + } + + res.push(shallowObj); + } + } + } + + if (res.length === 0) { + return undefined; + } + + return res; + } + + if (Object.getOwnPropertyNames(obj).indexOf(key) == -1) { + return undefined; + } + + obj = obj[key]; + if (obj === undefined || obj === null) { + break; + } + } + + // if we have a null object, make sure it's the one the user was after, + // if it's not (i.e. parts has a length) then give undefined back. + if (obj === null && i !== parts.length - 1) { + obj = undefined; + } else if (!star && value) { + key = path.split('.').pop(); + parent[key] = value; + } + return obj; +} + +if (typeof module !== 'undefined') { + module.exports = undefsafe; +} diff --git a/node_modules/undefsafe/package.json b/node_modules/undefsafe/package.json new file mode 100644 index 00000000..0688e3e0 --- /dev/null +++ b/node_modules/undefsafe/package.json @@ -0,0 +1,67 @@ +{ + "_from": "undefsafe@^2.0.2", + "_id": "undefsafe@2.0.3", + "_inBundle": false, + "_integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "_location": "/undefsafe", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "undefsafe@^2.0.2", + "name": "undefsafe", + "escapedName": "undefsafe", + "rawSpec": "^2.0.2", + "saveSpec": null, + "fetchSpec": "^2.0.2" + }, + "_requiredBy": [ + "/nodemon" + ], + "_resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "_shasum": "6b166e7094ad46313b2202da7ecc2cd7cc6e7aae", + "_spec": "undefsafe@^2.0.2", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\nodemon", + "author": { + "name": "Remy Sharp" + }, + "bugs": { + "url": "https://github.com/remy/undefsafe/issues" + }, + "bundleDependencies": false, + "dependencies": { + "debug": "^2.2.0" + }, + "deprecated": false, + "description": "Undefined safe way of extracting object properties", + "devDependencies": { + "semantic-release": "^4.3.5", + "tap": "^5.7.1", + "tap-only": "0.0.5" + }, + "directories": { + "test": "test" + }, + "homepage": "https://github.com/remy/undefsafe#readme", + "keywords": [ + "undefined" + ], + "license": "MIT", + "main": "lib/undefsafe.js", + "name": "undefsafe", + "prettier": { + "trailingComma": "none", + "singleQuote": true + }, + "repository": { + "type": "git", + "url": "git+https://github.com/remy/undefsafe.git" + }, + "scripts": { + "cover": "tap test/*.test.js --cov --coverage-report=lcov", + "semantic-release": "semantic-release pre && npm publish && semantic-release post", + "test": "tap test/**/*.test.js -R spec" + }, + "tonicExampleFilename": "example.js", + "version": "2.0.3" +} diff --git a/node_modules/unique-string/index.d.ts b/node_modules/unique-string/index.d.ts new file mode 100644 index 00000000..08959a68 --- /dev/null +++ b/node_modules/unique-string/index.d.ts @@ -0,0 +1,16 @@ +/** +Generate a unique random string. + +@returns A 32 character unique string. Matches the length of MD5, which is [unique enough](https://stackoverflow.com/a/2444336/64949) for non-crypto purposes. + +@example +``` +import uniqueString = require('unique-string'); + +uniqueString(); +//=> 'b4de2a49c8ffa3fbee04446f045483b2' +``` +*/ +declare function uniqueString(): string; + +export = uniqueString; diff --git a/node_modules/unique-string/index.js b/node_modules/unique-string/index.js new file mode 100644 index 00000000..5bc7787f --- /dev/null +++ b/node_modules/unique-string/index.js @@ -0,0 +1,4 @@ +'use strict'; +const cryptoRandomString = require('crypto-random-string'); + +module.exports = () => cryptoRandomString(32); diff --git a/node_modules/unique-string/license b/node_modules/unique-string/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/unique-string/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/unique-string/package.json b/node_modules/unique-string/package.json new file mode 100644 index 00000000..8a7e2290 --- /dev/null +++ b/node_modules/unique-string/package.json @@ -0,0 +1,72 @@ +{ + "_from": "unique-string@^2.0.0", + "_id": "unique-string@2.0.0", + "_inBundle": false, + "_integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "_location": "/unique-string", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "unique-string@^2.0.0", + "name": "unique-string", + "escapedName": "unique-string", + "rawSpec": "^2.0.0", + "saveSpec": null, + "fetchSpec": "^2.0.0" + }, + "_requiredBy": [ + "/configstore" + ], + "_resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "_shasum": "39c6451f81afb2749de2b233e3f7c5e8843bd89d", + "_spec": "unique-string@^2.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\configstore", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/unique-string/issues" + }, + "bundleDependencies": false, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "deprecated": false, + "description": "Generate a unique random string", + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "homepage": "https://github.com/sindresorhus/unique-string#readme", + "keywords": [ + "unique", + "string", + "random", + "text", + "id", + "identifier", + "slug", + "hex" + ], + "license": "MIT", + "name": "unique-string", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/unique-string.git" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "version": "2.0.0" +} diff --git a/node_modules/unique-string/readme.md b/node_modules/unique-string/readme.md new file mode 100644 index 00000000..9213f11e --- /dev/null +++ b/node_modules/unique-string/readme.md @@ -0,0 +1,32 @@ +# unique-string [![Build Status](https://travis-ci.org/sindresorhus/unique-string.svg?branch=master)](https://travis-ci.org/sindresorhus/unique-string) + +> Generate a unique random string + + +## Install + +``` +$ npm install unique-string +``` + + +## Usage + +```js +const uniqueString = require('unique-string'); + +uniqueString(); +//=> 'b4de2a49c8ffa3fbee04446f045483b2' +``` + + +## API + +### uniqueString() + +Returns a 32 character unique string. Matches the length of MD5, which is [unique enough](https://stackoverflow.com/a/2444336/64949) for non-crypto purposes. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/unpipe/HISTORY.md b/node_modules/unpipe/HISTORY.md new file mode 100644 index 00000000..85e0f8d7 --- /dev/null +++ b/node_modules/unpipe/HISTORY.md @@ -0,0 +1,4 @@ +1.0.0 / 2015-06-14 +================== + + * Initial release diff --git a/node_modules/unpipe/LICENSE b/node_modules/unpipe/LICENSE new file mode 100644 index 00000000..aed01382 --- /dev/null +++ b/node_modules/unpipe/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/unpipe/README.md b/node_modules/unpipe/README.md new file mode 100644 index 00000000..e536ad2c --- /dev/null +++ b/node_modules/unpipe/README.md @@ -0,0 +1,43 @@ +# unpipe + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Unpipe a stream from all destinations. + +## Installation + +```sh +$ npm install unpipe +``` + +## API + +```js +var unpipe = require('unpipe') +``` + +### unpipe(stream) + +Unpipes all destinations from a given stream. With stream 2+, this is +equivalent to `stream.unpipe()`. When used with streams 1 style streams +(typically Node.js 0.8 and below), this module attempts to undo the +actions done in `stream.pipe(dest)`. + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/unpipe.svg +[npm-url]: https://npmjs.org/package/unpipe +[node-image]: https://img.shields.io/node/v/unpipe.svg +[node-url]: http://nodejs.org/download/ +[travis-image]: https://img.shields.io/travis/stream-utils/unpipe.svg +[travis-url]: https://travis-ci.org/stream-utils/unpipe +[coveralls-image]: https://img.shields.io/coveralls/stream-utils/unpipe.svg +[coveralls-url]: https://coveralls.io/r/stream-utils/unpipe?branch=master +[downloads-image]: https://img.shields.io/npm/dm/unpipe.svg +[downloads-url]: https://npmjs.org/package/unpipe diff --git a/node_modules/unpipe/index.js b/node_modules/unpipe/index.js new file mode 100644 index 00000000..15c3d97a --- /dev/null +++ b/node_modules/unpipe/index.js @@ -0,0 +1,69 @@ +/*! + * unpipe + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = unpipe + +/** + * Determine if there are Node.js pipe-like data listeners. + * @private + */ + +function hasPipeDataListeners(stream) { + var listeners = stream.listeners('data') + + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].name === 'ondata') { + return true + } + } + + return false +} + +/** + * Unpipe a stream from all destinations. + * + * @param {object} stream + * @public + */ + +function unpipe(stream) { + if (!stream) { + throw new TypeError('argument stream is required') + } + + if (typeof stream.unpipe === 'function') { + // new-style + stream.unpipe() + return + } + + // Node.js 0.8 hack + if (!hasPipeDataListeners(stream)) { + return + } + + var listener + var listeners = stream.listeners('close') + + for (var i = 0; i < listeners.length; i++) { + listener = listeners[i] + + if (listener.name !== 'cleanup' && listener.name !== 'onclose') { + continue + } + + // invoke the listener + listener.call(stream) + } +} diff --git a/node_modules/unpipe/package.json b/node_modules/unpipe/package.json new file mode 100644 index 00000000..6dd5f2fd --- /dev/null +++ b/node_modules/unpipe/package.json @@ -0,0 +1,63 @@ +{ + "_from": "unpipe@1.0.0", + "_id": "unpipe@1.0.0", + "_inBundle": false, + "_integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "_location": "/unpipe", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "unpipe@1.0.0", + "name": "unpipe", + "escapedName": "unpipe", + "rawSpec": "1.0.0", + "saveSpec": null, + "fetchSpec": "1.0.0" + }, + "_requiredBy": [ + "/finalhandler", + "/raw-body" + ], + "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", + "_spec": "unpipe@1.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\raw-body", + "author": { + "name": "Douglas Christopher Wilson", + "email": "doug@somethingdoug.com" + }, + "bugs": { + "url": "https://github.com/stream-utils/unpipe/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Unpipe a stream from all destinations", + "devDependencies": { + "istanbul": "0.3.15", + "mocha": "2.2.5", + "readable-stream": "1.1.13" + }, + "engines": { + "node": ">= 0.8" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "index.js" + ], + "homepage": "https://github.com/stream-utils/unpipe#readme", + "license": "MIT", + "name": "unpipe", + "repository": { + "type": "git", + "url": "git+https://github.com/stream-utils/unpipe.git" + }, + "scripts": { + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" + }, + "version": "1.0.0" +} diff --git a/node_modules/update-notifier/check.js b/node_modules/update-notifier/check.js new file mode 100644 index 00000000..fc0ee9cb --- /dev/null +++ b/node_modules/update-notifier/check.js @@ -0,0 +1,28 @@ +/* eslint-disable unicorn/no-process-exit */ +'use strict'; +let updateNotifier = require('.'); + +const options = JSON.parse(process.argv[2]); + +updateNotifier = new updateNotifier.UpdateNotifier(options); + +(async () => { + // Exit process when offline + setTimeout(process.exit, 1000 * 30); + + const update = await updateNotifier.fetchInfo(); + + // Only update the last update check time on success + updateNotifier.config.set('lastUpdateCheck', Date.now()); + + if (update.type && update.type !== 'latest') { + updateNotifier.config.set('update', update); + } + + // Call process exit explicitly to terminate the child process, + // otherwise the child process will run forever, according to the Node.js docs + process.exit(); +})().catch(error => { + console.error(error); + process.exit(1); +}); diff --git a/node_modules/update-notifier/index.js b/node_modules/update-notifier/index.js new file mode 100644 index 00000000..d04847eb --- /dev/null +++ b/node_modules/update-notifier/index.js @@ -0,0 +1,187 @@ +'use strict'; +const {spawn} = require('child_process'); +const path = require('path'); +const {format} = require('util'); +const importLazy = require('import-lazy')(require); + +const configstore = importLazy('configstore'); +const chalk = importLazy('chalk'); +const semverDiff = importLazy('semver-diff'); +const latestVersion = importLazy('latest-version'); +const isNpm = importLazy('is-npm'); +const isInstalledGlobally = importLazy('is-installed-globally'); +const isYarnGlobal = importLazy('is-yarn-global'); +const hasYarn = importLazy('has-yarn'); +const boxen = importLazy('boxen'); +const xdgBasedir = importLazy('xdg-basedir'); +const isCi = importLazy('is-ci'); +const pupa = importLazy('pupa'); + +const ONE_DAY = 1000 * 60 * 60 * 24; + +class UpdateNotifier { + constructor(options = {}) { + this.options = options; + options.pkg = options.pkg || {}; + options.distTag = options.distTag || 'latest'; + + // Reduce pkg to the essential keys. with fallback to deprecated options + // TODO: Remove deprecated options at some point far into the future + options.pkg = { + name: options.pkg.name || options.packageName, + version: options.pkg.version || options.packageVersion + }; + + if (!options.pkg.name || !options.pkg.version) { + throw new Error('pkg.name and pkg.version required'); + } + + this.packageName = options.pkg.name; + this.packageVersion = options.pkg.version; + this.updateCheckInterval = typeof options.updateCheckInterval === 'number' ? options.updateCheckInterval : ONE_DAY; + this.disabled = 'NO_UPDATE_NOTIFIER' in process.env || + process.env.NODE_ENV === 'test' || + process.argv.includes('--no-update-notifier') || + isCi(); + this.shouldNotifyInNpmScript = options.shouldNotifyInNpmScript; + + if (!this.disabled) { + try { + const ConfigStore = configstore(); + this.config = new ConfigStore(`update-notifier-${this.packageName}`, { + optOut: false, + // Init with the current time so the first check is only + // after the set interval, so not to bother users right away + lastUpdateCheck: Date.now() + }); + } catch (_) { + // Expecting error code EACCES or EPERM + const message = + chalk().yellow(format(' %s update check failed ', options.pkg.name)) + + format('\n Try running with %s or get access ', chalk().cyan('sudo')) + + '\n to the local update config store via \n' + + chalk().cyan(format(' sudo chown -R $USER:$(id -gn $USER) %s ', xdgBasedir().config)); + + process.on('exit', () => { + console.error(boxen()(message, {align: 'center'})); + }); + } + } + } + + check() { + if ( + !this.config || + this.config.get('optOut') || + this.disabled + ) { + return; + } + + this.update = this.config.get('update'); + + if (this.update) { + // Use the real latest version instead of the cached one + this.update.current = this.packageVersion; + + // Clear cached information + this.config.delete('update'); + } + + // Only check for updates on a set interval + if (Date.now() - this.config.get('lastUpdateCheck') < this.updateCheckInterval) { + return; + } + + // Spawn a detached process, passing the options as an environment property + spawn(process.execPath, [path.join(__dirname, 'check.js'), JSON.stringify(this.options)], { + detached: true, + stdio: 'ignore' + }).unref(); + } + + async fetchInfo() { + const {distTag} = this.options; + const latest = await latestVersion()(this.packageName, {version: distTag}); + + return { + latest, + current: this.packageVersion, + type: semverDiff()(this.packageVersion, latest) || distTag, + name: this.packageName + }; + } + + notify(options) { + const suppressForNpm = !this.shouldNotifyInNpmScript && isNpm().isNpmOrYarn; + if (!process.stdout.isTTY || suppressForNpm || !this.update || this.update.current === this.update.latest) { + return this; + } + + options = Object.assign({ + isGlobal: isInstalledGlobally(), + isYarnGlobal: isYarnGlobal()() + }, options); + + let installCommand; + + if (options.isYarnGlobal) { + installCommand = `yarn global add ${this.packageName}`; + } else if (options.isGlobal) { + installCommand = `npm i -g ${this.packageName}`; + } else if (hasYarn()()) { + installCommand = `yarn add ${this.packageName}`; + } else { + installCommand = `npm i ${this.packageName}`; + } + + const defaultTemplate = 'Update available ' + + chalk().dim('{currentVersion}') + + chalk().reset(' → ') + + chalk().green('{latestVersion}') + + ' \nRun ' + chalk().cyan('{updateCommand}') + ' to update'; + + const template = options.message || defaultTemplate; + + options.boxenOptions = options.boxenOptions || { + padding: 1, + margin: 1, + align: 'center', + borderColor: 'yellow', + borderStyle: 'round' + }; + + const message = boxen()( + pupa()(template, { + packageName: this.packageName, + currentVersion: this.update.current, + latestVersion: this.update.latest, + updateCommand: installCommand + }), + options.boxenOptions + ); + + if (options.defer === false) { + console.error(message); + } else { + process.on('exit', () => { + console.error(message); + }); + + process.on('SIGINT', () => { + console.error(''); + process.exit(); + }); + } + + return this; + } +} + +module.exports = options => { + const updateNotifier = new UpdateNotifier(options); + updateNotifier.check(); + return updateNotifier; +}; + +module.exports.UpdateNotifier = UpdateNotifier; diff --git a/node_modules/update-notifier/license b/node_modules/update-notifier/license new file mode 100644 index 00000000..cea5a355 --- /dev/null +++ b/node_modules/update-notifier/license @@ -0,0 +1,9 @@ +Copyright Google + +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 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/node_modules/update-notifier/node_modules/chalk/index.d.ts b/node_modules/update-notifier/node_modules/chalk/index.d.ts new file mode 100644 index 00000000..7e22c45e --- /dev/null +++ b/node_modules/update-notifier/node_modules/chalk/index.d.ts @@ -0,0 +1,411 @@ +declare const enum LevelEnum { + /** + All colors disabled. + */ + None = 0, + + /** + Basic 16 colors support. + */ + Basic = 1, + + /** + ANSI 256 colors support. + */ + Ansi256 = 2, + + /** + Truecolor 16 million colors support. + */ + TrueColor = 3 +} + +/** +Basic foreground colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type ForegroundColor = + | 'black' + | 'red' + | 'green' + | 'yellow' + | 'blue' + | 'magenta' + | 'cyan' + | 'white' + | 'gray' + | 'grey' + | 'blackBright' + | 'redBright' + | 'greenBright' + | 'yellowBright' + | 'blueBright' + | 'magentaBright' + | 'cyanBright' + | 'whiteBright'; + +/** +Basic background colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type BackgroundColor = + | 'bgBlack' + | 'bgRed' + | 'bgGreen' + | 'bgYellow' + | 'bgBlue' + | 'bgMagenta' + | 'bgCyan' + | 'bgWhite' + | 'bgGray' + | 'bgGrey' + | 'bgBlackBright' + | 'bgRedBright' + | 'bgGreenBright' + | 'bgYellowBright' + | 'bgBlueBright' + | 'bgMagentaBright' + | 'bgCyanBright' + | 'bgWhiteBright'; + +/** +Basic colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type Color = ForegroundColor | BackgroundColor; + +declare type Modifiers = + | 'reset' + | 'bold' + | 'dim' + | 'italic' + | 'underline' + | 'inverse' + | 'hidden' + | 'strikethrough' + | 'visible'; + +declare namespace chalk { + type Level = LevelEnum; + + interface Options { + /** + Specify the color support for Chalk. + By default, color support is automatically detected based on the environment. + */ + level?: Level; + } + + interface Instance { + /** + Return a new Chalk instance. + */ + new (options?: Options): Chalk; + } + + /** + Detect whether the terminal supports color. + */ + interface ColorSupport { + /** + The color level used by Chalk. + */ + level: Level; + + /** + Return whether Chalk supports basic 16 colors. + */ + hasBasic: boolean; + + /** + Return whether Chalk supports ANSI 256 colors. + */ + has256: boolean; + + /** + Return whether Chalk supports Truecolor 16 million colors. + */ + has16m: boolean; + } + + interface ChalkFunction { + /** + Use a template string. + + @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) + + @example + ``` + import chalk = require('chalk'); + + log(chalk` + CPU: {red ${cpu.totalPercent}%} + RAM: {green ${ram.used / ram.total * 100}%} + DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} + `); + ``` + */ + (text: TemplateStringsArray, ...placeholders: unknown[]): string; + + (...text: unknown[]): string; + } + + interface Chalk extends ChalkFunction { + /** + Return a new Chalk instance. + */ + Instance: Instance; + + /** + The color support for Chalk. + By default, color support is automatically detected based on the environment. + */ + level: Level; + + /** + Use HEX value to set text color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.hex('#DEADED'); + ``` + */ + hex(color: string): Chalk; + + /** + Use keyword color value to set text color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.keyword('orange'); + ``` + */ + keyword(color: string): Chalk; + + /** + Use RGB values to set text color. + */ + rgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set text color. + */ + hsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set text color. + */ + hsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set text color. + */ + hwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + */ + ansi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(index: number): Chalk; + + /** + Use HEX value to set background color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgHex('#DEADED'); + ``` + */ + bgHex(color: string): Chalk; + + /** + Use keyword color value to set background color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgKeyword('orange'); + ``` + */ + bgKeyword(color: string): Chalk; + + /** + Use RGB values to set background color. + */ + bgRgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set background color. + */ + bgHsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set background color. + */ + bgHsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set background color. + */ + bgHwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + Use the foreground code, not the background code (for example, not 41, nor 101). + */ + bgAnsi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. + */ + bgAnsi256(index: number): Chalk; + + /** + Modifier: Resets the current color chain. + */ + readonly reset: Chalk; + + /** + Modifier: Make text bold. + */ + readonly bold: Chalk; + + /** + Modifier: Emitting only a small amount of light. + */ + readonly dim: Chalk; + + /** + Modifier: Make text italic. (Not widely supported) + */ + readonly italic: Chalk; + + /** + Modifier: Make text underline. (Not widely supported) + */ + readonly underline: Chalk; + + /** + Modifier: Inverse background and foreground colors. + */ + readonly inverse: Chalk; + + /** + Modifier: Prints the text, but makes it invisible. + */ + readonly hidden: Chalk; + + /** + Modifier: Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: Chalk; + + /** + Modifier: Prints the text only when Chalk has a color support level > 0. + Can be useful for things that are purely cosmetic. + */ + readonly visible: Chalk; + + readonly black: Chalk; + readonly red: Chalk; + readonly green: Chalk; + readonly yellow: Chalk; + readonly blue: Chalk; + readonly magenta: Chalk; + readonly cyan: Chalk; + readonly white: Chalk; + + /* + Alias for `blackBright`. + */ + readonly gray: Chalk; + + /* + Alias for `blackBright`. + */ + readonly grey: Chalk; + + readonly blackBright: Chalk; + readonly redBright: Chalk; + readonly greenBright: Chalk; + readonly yellowBright: Chalk; + readonly blueBright: Chalk; + readonly magentaBright: Chalk; + readonly cyanBright: Chalk; + readonly whiteBright: Chalk; + + readonly bgBlack: Chalk; + readonly bgRed: Chalk; + readonly bgGreen: Chalk; + readonly bgYellow: Chalk; + readonly bgBlue: Chalk; + readonly bgMagenta: Chalk; + readonly bgCyan: Chalk; + readonly bgWhite: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGray: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGrey: Chalk; + + readonly bgBlackBright: Chalk; + readonly bgRedBright: Chalk; + readonly bgGreenBright: Chalk; + readonly bgYellowBright: Chalk; + readonly bgBlueBright: Chalk; + readonly bgMagentaBright: Chalk; + readonly bgCyanBright: Chalk; + readonly bgWhiteBright: Chalk; + } +} + +/** +Main Chalk object that allows to chain styles together. +Call the last one as a method with a string argument. +Order doesn't matter, and later styles take precedent in case of a conflict. +This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. +*/ +declare const chalk: chalk.Chalk & chalk.ChalkFunction & { + supportsColor: chalk.ColorSupport | false; + Level: typeof LevelEnum; + Color: Color; + ForegroundColor: ForegroundColor; + BackgroundColor: BackgroundColor; + Modifiers: Modifiers; + stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; +}; + +export = chalk; diff --git a/node_modules/update-notifier/node_modules/chalk/license b/node_modules/update-notifier/node_modules/chalk/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/update-notifier/node_modules/chalk/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/update-notifier/node_modules/chalk/package.json b/node_modules/update-notifier/node_modules/chalk/package.json new file mode 100644 index 00000000..31547cb2 --- /dev/null +++ b/node_modules/update-notifier/node_modules/chalk/package.json @@ -0,0 +1,95 @@ +{ + "_from": "chalk@^3.0.0", + "_id": "chalk@3.0.0", + "_inBundle": false, + "_integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "_location": "/update-notifier/chalk", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "chalk@^3.0.0", + "name": "chalk", + "escapedName": "chalk", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/update-notifier" + ], + "_resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "_shasum": "3f73c2bf526591f574cc492c51e2456349f844e4", + "_spec": "chalk@^3.0.0", + "_where": "C:\\Users\\kevin\\Desktop\\mern-social\\node_modules\\update-notifier", + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "bundleDependencies": false, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "deprecated": false, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "^2.4.0", + "coveralls": "^3.0.7", + "execa": "^3.2.0", + "import-fresh": "^3.1.0", + "matcha": "^0.7.0", + "nyc": "^14.1.1", + "resolve-from": "^5.0.0", + "tsd": "^0.7.4", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "source", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "main": "source", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "test": "xo && nyc ava && tsd" + }, + "version": "3.0.0", + "xo": { + "rules": { + "unicorn/prefer-string-slice": "off", + "unicorn/prefer-includes": "off" + } + } +} diff --git a/node_modules/update-notifier/node_modules/chalk/readme.md b/node_modules/update-notifier/node_modules/chalk/readme.md new file mode 100644 index 00000000..877cb93b --- /dev/null +++ b/node_modules/update-notifier/node_modules/chalk/readme.md @@ -0,0 +1,304 @@ +

+
+
+ Chalk +
+
+
+

+ +> Terminal string styling done right + +[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) + + + + +## Highlights + +- Expressive API +- Highly performant +- Ability to nest styles +- [256/Truecolor color support](#256-and-truecolor-color-support) +- Auto-detects color support +- Doesn't extend `String.prototype` +- Clean and focused +- Actively maintained +- [Used by ~46,000 packages](https://www.npmjs.com/browse/depended/chalk) as of October 1, 2019 + + +## Install + +```console +$ npm install chalk +``` + + +## Usage + +```js +const chalk = require('chalk'); + +console.log(chalk.blue('Hello world!')); +``` + +Chalk comes with an easy to use composable API where you just chain and nest the styles you want. + +```js +const chalk = require('chalk'); +const log = console.log; + +// Combine styled and normal strings +log(chalk.blue('Hello') + ' World' + chalk.red('!')); + +// Compose multiple styles using the chainable API +log(chalk.blue.bgRed.bold('Hello world!')); + +// Pass in multiple arguments +log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); + +// Nest styles +log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); + +// Nest styles of the same type even (color, underline, background) +log(chalk.green( + 'I am a green line ' + + chalk.blue.underline.bold('with a blue substring') + + ' that becomes green again!' +)); + +// ES2015 template literal +log(` +CPU: ${chalk.red('90%')} +RAM: ${chalk.green('40%')} +DISK: ${chalk.yellow('70%')} +`); + +// ES2015 tagged template literal +log(chalk` +CPU: {red ${cpu.totalPercent}%} +RAM: {green ${ram.used / ram.total * 100}%} +DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} +`); + +// Use RGB colors in terminal emulators that support it. +log(chalk.keyword('orange')('Yay for orange colored text!')); +log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); +log(chalk.hex('#DEADED').bold('Bold gray!')); +``` + +Easily define your own themes: + +```js +const chalk = require('chalk'); + +const error = chalk.bold.red; +const warning = chalk.keyword('orange'); + +console.log(error('Error!')); +console.log(warning('Warning!')); +``` + +Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): + +```js +const name = 'Sindre'; +console.log(chalk.green('Hello %s'), name); +//=> 'Hello Sindre' +``` + + +## API + +### chalk.`